From 2fe6ca2f652e0c9a1f09f3fd2459145cbf250284 Mon Sep 17 00:00:00 2001 From: Vasily Petrov Date: Thu, 18 Jun 2026 01:18:29 +0300 Subject: [PATCH] init --- .../camera_effects/actor_move/crouch_down.anm | Bin 0 -> 1289 bytes .../actor_move/crouch_down_aim.anm | Bin 0 -> 1289 bytes .../camera_effects/actor_move/crouch_up.anm | Bin 0 -> 1289 bytes .../actor_move/crouch_up_aim.anm | Bin 0 -> 1289 bytes .../anims/camera_effects/actor_move/down.anm | Bin 0 -> 599 bytes .../camera_effects/actor_move/go_back.anm | Bin 0 -> 599 bytes .../camera_effects/actor_move/go_front.anm | Bin 0 -> 599 bytes .../anims/camera_effects/actor_move/jump.anm | Bin 0 -> 1151 bytes .../camera_effects/actor_move/landing.anm | Bin 0 -> 1289 bytes .../camera_effects/actor_move/landing2.anm | Bin 0 -> 2255 bytes .../camera_effects/actor_move/landingold.anm | Bin 0 -> 1289 bytes .../camera_effects/actor_move/strafe_left.anm | Bin 0 -> 2255 bytes .../actor_move/strafe_left_aim.anm | Bin 0 -> 1565 bytes .../actor_move/strafe_right.anm | Bin 0 -> 2255 bytes .../actor_move/strafe_right_aim.anm | Bin 0 -> 1565 bytes gamedata/configs/engine_external.ltx | 95 + .../environment/mod_environment_ixray.ltx | 12 + gamedata/configs/fonts.ltx | 107 + gamedata/configs/game_global.ltx | 69 + .../ixray_settings/default_controls.ltx | 64 + .../ixray_settings/default_settings.ltx | 0 .../configs/ixray_settings/rspec_default.ltx | 36 + .../configs/ixray_settings/rspec_extreme.ltx | 36 + .../configs/ixray_settings/rspec_high.ltx | 36 + gamedata/configs/ixray_settings/rspec_low.ltx | 36 + .../configs/ixray_settings/rspec_minimum.ltx | 36 + .../configs/ixray_settings/rspec_ultra.ltx | 36 + gamedata/configs/localization.ltx | 4 + gamedata/configs/mod_script_ixray.ltx | 3 + gamedata/configs/mod_system_ixray.ltx | 349 ++ gamedata/configs/mp/artefacthunt_game.ltx | 154 + .../configs/mp/capturetheartefact_game.ltx | 153 + gamedata/configs/mp/deathmatch_game.ltx | 200 + gamedata/configs/mp/teamdeathmatch_game.ltx | 159 + gamedata/configs/text/cze/st_achievement.xml | 372 ++ gamedata/configs/text/cze/st_characters.xml | 336 ++ .../configs/text/cze/st_dialog_manager.xml | 993 ++++ gamedata/configs/text/cze/st_dialogs.xml | 978 ++++ .../configs/text/cze/st_dialogs_jupiter.xml | 3885 +++++++++++++ .../configs/text/cze/st_dialogs_pripyat.xml | 906 +++ .../configs/text/cze/st_dialogs_zaton.xml | 3117 +++++++++++ .../configs/text/cze/st_generate_fnames.xml | 492 ++ .../configs/text/cze/st_generate_snames.xml | 4836 +++++++++++++++++ .../configs/text/cze/st_items_artefacts.xml | 153 + .../configs/text/cze/st_items_equipment.xml | 156 + gamedata/configs/text/cze/st_items_outfit.xml | 117 + gamedata/configs/text/cze/st_items_quest.xml | 369 ++ .../configs/text/cze/st_items_weapons.xml | 567 ++ .../text/cze/st_items_weapons_upgrades.xml | 2022 +++++++ gamedata/configs/text/cze/st_land_names.xml | 171 + gamedata/configs/text/cze/st_mp_mapdesc.xml | 126 + .../configs/text/cze/st_mp_speechmenu.xml | 57 + gamedata/configs/text/cze/st_mp_teamdesc.xml | 15 + .../configs/text/cze/st_quests_general.xml | 18 + .../configs/text/cze/st_quests_jupiter.xml | 687 +++ .../configs/text/cze/st_quests_pripyat.xml | 345 ++ gamedata/configs/text/cze/st_quests_zaton.xml | 780 +++ gamedata/configs/text/cze/st_subtitles.xml | 156 + gamedata/configs/text/cze/ui_st_credits.xml | 684 +++ gamedata/configs/text/cze/ui_st_inventory.xml | 303 ++ gamedata/configs/text/cze/ui_st_ixray.xml | 62 + .../configs/text/cze/ui_st_keybinding.xml | 225 + .../configs/text/cze/ui_st_loadscreen.xml | 474 ++ gamedata/configs/text/cze/ui_st_mm.xml | 936 ++++ gamedata/configs/text/cze/ui_st_mp.xml | 741 +++ gamedata/configs/text/cze/ui_st_other.xml | 501 ++ gamedata/configs/text/cze/ui_st_pda.xml | 279 + gamedata/configs/text/cze/ui_st_screen.xml | 348 ++ gamedata/configs/text/eng/st_achievement.xml | 372 ++ gamedata/configs/text/eng/st_characters.xml | 336 ++ .../configs/text/eng/st_dialog_manager.xml | 993 ++++ gamedata/configs/text/eng/st_dialogs.xml | 978 ++++ .../configs/text/eng/st_dialogs_jupiter.xml | 3885 +++++++++++++ .../configs/text/eng/st_dialogs_pripyat.xml | 906 +++ .../configs/text/eng/st_dialogs_zaton.xml | 3117 +++++++++++ .../configs/text/eng/st_generate_fnames.xml | 492 ++ .../configs/text/eng/st_generate_snames.xml | 4836 +++++++++++++++++ .../configs/text/eng/st_items_artefacts.xml | 153 + .../configs/text/eng/st_items_equipment.xml | 156 + gamedata/configs/text/eng/st_items_outfit.xml | 117 + gamedata/configs/text/eng/st_items_quest.xml | 369 ++ .../configs/text/eng/st_items_weapons.xml | 567 ++ .../text/eng/st_items_weapons_upgrades.xml | 2022 +++++++ gamedata/configs/text/eng/st_land_names.xml | 171 + gamedata/configs/text/eng/st_mp_mapdesc.xml | 126 + .../configs/text/eng/st_mp_speechmenu.xml | 57 + gamedata/configs/text/eng/st_mp_teamdesc.xml | 15 + .../configs/text/eng/st_quests_general.xml | 18 + .../configs/text/eng/st_quests_jupiter.xml | 687 +++ .../configs/text/eng/st_quests_pripyat.xml | 345 ++ gamedata/configs/text/eng/st_quests_zaton.xml | 780 +++ gamedata/configs/text/eng/st_subtitles.xml | 156 + gamedata/configs/text/eng/ui_st_credits.xml | 684 +++ gamedata/configs/text/eng/ui_st_inventory.xml | 303 ++ gamedata/configs/text/eng/ui_st_ixray.xml | 424 ++ .../configs/text/eng/ui_st_keybinding.xml | 225 + .../configs/text/eng/ui_st_loadscreen.xml | 474 ++ gamedata/configs/text/eng/ui_st_mm.xml | 936 ++++ gamedata/configs/text/eng/ui_st_mp.xml | 741 +++ gamedata/configs/text/eng/ui_st_other.xml | 501 ++ gamedata/configs/text/eng/ui_st_pda.xml | 279 + gamedata/configs/text/eng/ui_st_screen.xml | 348 ++ gamedata/configs/text/fra/st_achievement.xml | 372 ++ gamedata/configs/text/fra/st_characters.xml | 336 ++ .../configs/text/fra/st_dialog_manager.xml | 993 ++++ gamedata/configs/text/fra/st_dialogs.xml | 978 ++++ .../configs/text/fra/st_dialogs_jupiter.xml | 3885 +++++++++++++ .../configs/text/fra/st_dialogs_pripyat.xml | 906 +++ .../configs/text/fra/st_dialogs_zaton.xml | 3117 +++++++++++ .../configs/text/fra/st_generate_fnames.xml | 492 ++ .../configs/text/fra/st_generate_snames.xml | 4836 +++++++++++++++++ .../configs/text/fra/st_items_artefacts.xml | 153 + .../configs/text/fra/st_items_equipment.xml | 156 + gamedata/configs/text/fra/st_items_outfit.xml | 117 + gamedata/configs/text/fra/st_items_quest.xml | 369 ++ .../configs/text/fra/st_items_weapons.xml | 567 ++ .../text/fra/st_items_weapons_upgrades.xml | 2022 +++++++ gamedata/configs/text/fra/st_land_names.xml | 171 + gamedata/configs/text/fra/st_mp_mapdesc.xml | 126 + .../configs/text/fra/st_mp_speechmenu.xml | 57 + gamedata/configs/text/fra/st_mp_teamdesc.xml | 15 + .../configs/text/fra/st_quests_general.xml | 18 + .../configs/text/fra/st_quests_jupiter.xml | 687 +++ .../configs/text/fra/st_quests_pripyat.xml | 345 ++ gamedata/configs/text/fra/st_quests_zaton.xml | 780 +++ gamedata/configs/text/fra/st_subtitles.xml | 156 + gamedata/configs/text/fra/ui_st_credits.xml | 684 +++ gamedata/configs/text/fra/ui_st_inventory.xml | 303 ++ gamedata/configs/text/fra/ui_st_ixray.xml | 62 + .../configs/text/fra/ui_st_keybinding.xml | 225 + .../configs/text/fra/ui_st_loadscreen.xml | 474 ++ gamedata/configs/text/fra/ui_st_mm.xml | 939 ++++ gamedata/configs/text/fra/ui_st_mp.xml | 741 +++ gamedata/configs/text/fra/ui_st_other.xml | 501 ++ gamedata/configs/text/fra/ui_st_pda.xml | 279 + gamedata/configs/text/fra/ui_st_screen.xml | 348 ++ gamedata/configs/text/ger/st_achievement.xml | 372 ++ gamedata/configs/text/ger/st_characters.xml | 336 ++ .../configs/text/ger/st_dialog_manager.xml | 993 ++++ gamedata/configs/text/ger/st_dialogs.xml | 978 ++++ .../configs/text/ger/st_dialogs_jupiter.xml | 3885 +++++++++++++ .../configs/text/ger/st_dialogs_pripyat.xml | 906 +++ .../configs/text/ger/st_dialogs_zaton.xml | 3117 +++++++++++ .../configs/text/ger/st_generate_fnames.xml | 492 ++ .../configs/text/ger/st_generate_snames.xml | 4836 +++++++++++++++++ .../configs/text/ger/st_items_artefacts.xml | 153 + .../configs/text/ger/st_items_equipment.xml | 156 + gamedata/configs/text/ger/st_items_outfit.xml | 117 + gamedata/configs/text/ger/st_items_quest.xml | 369 ++ .../configs/text/ger/st_items_weapons.xml | 567 ++ .../text/ger/st_items_weapons_upgrades.xml | 2022 +++++++ gamedata/configs/text/ger/st_land_names.xml | 171 + gamedata/configs/text/ger/st_mp_mapdesc.xml | 126 + .../configs/text/ger/st_mp_speechmenu.xml | 57 + gamedata/configs/text/ger/st_mp_teamdesc.xml | 15 + .../configs/text/ger/st_quests_general.xml | 18 + .../configs/text/ger/st_quests_jupiter.xml | 687 +++ .../configs/text/ger/st_quests_pripyat.xml | 345 ++ gamedata/configs/text/ger/st_quests_zaton.xml | 780 +++ gamedata/configs/text/ger/st_subtitles.xml | 156 + gamedata/configs/text/ger/ui_st_credits.xml | 684 +++ gamedata/configs/text/ger/ui_st_inventory.xml | 303 ++ gamedata/configs/text/ger/ui_st_ixray.xml | 62 + .../configs/text/ger/ui_st_keybinding.xml | 225 + .../configs/text/ger/ui_st_loadscreen.xml | 474 ++ gamedata/configs/text/ger/ui_st_mm.xml | 936 ++++ gamedata/configs/text/ger/ui_st_mp.xml | 741 +++ gamedata/configs/text/ger/ui_st_other.xml | 501 ++ gamedata/configs/text/ger/ui_st_pda.xml | 279 + gamedata/configs/text/ger/ui_st_screen.xml | 348 ++ gamedata/configs/text/ita/st_achievement.xml | 372 ++ gamedata/configs/text/ita/st_characters.xml | 336 ++ .../configs/text/ita/st_dialog_manager.xml | 993 ++++ gamedata/configs/text/ita/st_dialogs.xml | 978 ++++ .../configs/text/ita/st_dialogs_jupiter.xml | 3885 +++++++++++++ .../configs/text/ita/st_dialogs_pripyat.xml | 906 +++ .../configs/text/ita/st_dialogs_zaton.xml | 3117 +++++++++++ .../configs/text/ita/st_generate_fnames.xml | 492 ++ .../configs/text/ita/st_generate_snames.xml | 4836 +++++++++++++++++ .../configs/text/ita/st_items_artefacts.xml | 153 + .../configs/text/ita/st_items_equipment.xml | 156 + gamedata/configs/text/ita/st_items_outfit.xml | 117 + gamedata/configs/text/ita/st_items_quest.xml | 369 ++ .../configs/text/ita/st_items_weapons.xml | 567 ++ .../text/ita/st_items_weapons_upgrades.xml | 2022 +++++++ gamedata/configs/text/ita/st_land_names.xml | 171 + gamedata/configs/text/ita/st_mp_mapdesc.xml | 126 + .../configs/text/ita/st_mp_speechmenu.xml | 57 + gamedata/configs/text/ita/st_mp_teamdesc.xml | 15 + .../configs/text/ita/st_quests_general.xml | 18 + .../configs/text/ita/st_quests_jupiter.xml | 687 +++ .../configs/text/ita/st_quests_pripyat.xml | 345 ++ gamedata/configs/text/ita/st_quests_zaton.xml | 780 +++ gamedata/configs/text/ita/st_subtitles.xml | 156 + gamedata/configs/text/ita/ui_st_credits.xml | 684 +++ gamedata/configs/text/ita/ui_st_inventory.xml | 303 ++ gamedata/configs/text/ita/ui_st_ixray.xml | 62 + .../configs/text/ita/ui_st_keybinding.xml | 225 + .../configs/text/ita/ui_st_loadscreen.xml | 474 ++ gamedata/configs/text/ita/ui_st_mm.xml | 936 ++++ gamedata/configs/text/ita/ui_st_mp.xml | 741 +++ gamedata/configs/text/ita/ui_st_other.xml | 501 ++ gamedata/configs/text/ita/ui_st_pda.xml | 279 + gamedata/configs/text/ita/ui_st_screen.xml | 348 ++ gamedata/configs/text/pol/st_achievement.xml | 372 ++ gamedata/configs/text/pol/st_characters.xml | 336 ++ .../configs/text/pol/st_dialog_manager.xml | 993 ++++ gamedata/configs/text/pol/st_dialogs.xml | 978 ++++ .../configs/text/pol/st_dialogs_jupiter.xml | 3885 +++++++++++++ .../configs/text/pol/st_dialogs_pripyat.xml | 906 +++ .../configs/text/pol/st_dialogs_zaton.xml | 3117 +++++++++++ .../configs/text/pol/st_generate_fnames.xml | 492 ++ .../configs/text/pol/st_generate_snames.xml | 4836 +++++++++++++++++ .../configs/text/pol/st_items_artefacts.xml | 153 + .../configs/text/pol/st_items_equipment.xml | 156 + gamedata/configs/text/pol/st_items_outfit.xml | 117 + gamedata/configs/text/pol/st_items_quest.xml | 369 ++ .../configs/text/pol/st_items_weapons.xml | 567 ++ .../text/pol/st_items_weapons_upgrades.xml | 2022 +++++++ gamedata/configs/text/pol/st_land_names.xml | 171 + gamedata/configs/text/pol/st_mp_mapdesc.xml | 126 + .../configs/text/pol/st_mp_speechmenu.xml | 57 + gamedata/configs/text/pol/st_mp_teamdesc.xml | 15 + .../configs/text/pol/st_quests_general.xml | 18 + .../configs/text/pol/st_quests_jupiter.xml | 687 +++ .../configs/text/pol/st_quests_pripyat.xml | 345 ++ gamedata/configs/text/pol/st_quests_zaton.xml | 780 +++ gamedata/configs/text/pol/st_subtitles.xml | 156 + gamedata/configs/text/pol/ui_st_credits.xml | 684 +++ gamedata/configs/text/pol/ui_st_inventory.xml | 303 ++ gamedata/configs/text/pol/ui_st_ixray.xml | 62 + .../configs/text/pol/ui_st_keybinding.xml | 225 + .../configs/text/pol/ui_st_loadscreen.xml | 474 ++ gamedata/configs/text/pol/ui_st_mm.xml | 936 ++++ gamedata/configs/text/pol/ui_st_mp.xml | 742 +++ gamedata/configs/text/pol/ui_st_other.xml | 501 ++ gamedata/configs/text/pol/ui_st_pda.xml | 279 + gamedata/configs/text/pol/ui_st_screen.xml | 348 ++ gamedata/configs/text/rus/ui_st_ixray.xml | 427 ++ gamedata/configs/text/rus/ui_st_mm.xml | 936 ++++ gamedata/configs/text/spa/st_achievement.xml | 372 ++ gamedata/configs/text/spa/st_characters.xml | 336 ++ .../configs/text/spa/st_dialog_manager.xml | 993 ++++ gamedata/configs/text/spa/st_dialogs.xml | 978 ++++ .../configs/text/spa/st_dialogs_jupiter.xml | 3885 +++++++++++++ .../configs/text/spa/st_dialogs_pripyat.xml | 906 +++ .../configs/text/spa/st_dialogs_zaton.xml | 3117 +++++++++++ .../configs/text/spa/st_generate_fnames.xml | 492 ++ .../configs/text/spa/st_generate_snames.xml | 4836 +++++++++++++++++ .../configs/text/spa/st_items_artefacts.xml | 153 + .../configs/text/spa/st_items_equipment.xml | 156 + gamedata/configs/text/spa/st_items_outfit.xml | 117 + gamedata/configs/text/spa/st_items_quest.xml | 369 ++ .../configs/text/spa/st_items_weapons.xml | 567 ++ .../text/spa/st_items_weapons_upgrades.xml | 2022 +++++++ gamedata/configs/text/spa/st_land_names.xml | 171 + gamedata/configs/text/spa/st_mp_mapdesc.xml | 126 + .../configs/text/spa/st_mp_speechmenu.xml | 57 + gamedata/configs/text/spa/st_mp_teamdesc.xml | 15 + .../configs/text/spa/st_quests_general.xml | 18 + .../configs/text/spa/st_quests_jupiter.xml | 687 +++ .../configs/text/spa/st_quests_pripyat.xml | 345 ++ gamedata/configs/text/spa/st_quests_zaton.xml | 780 +++ gamedata/configs/text/spa/st_subtitles.xml | 156 + gamedata/configs/text/spa/ui_st_credits.xml | 684 +++ gamedata/configs/text/spa/ui_st_inventory.xml | 303 ++ .../configs/text/spa/ui_st_keybinding.xml | 225 + .../configs/text/spa/ui_st_loadscreen.xml | 474 ++ gamedata/configs/text/spa/ui_st_mm.xml | 936 ++++ gamedata/configs/text/spa/ui_st_mp.xml | 741 +++ gamedata/configs/text/spa/ui_st_other.xml | 501 ++ gamedata/configs/text/spa/ui_st_pda.xml | 279 + gamedata/configs/text/spa/ui_st_screen.xml | 348 ++ gamedata/configs/ui/actor_menu.xml | 504 ++ gamedata/configs/ui/actor_menu_16.xml | 510 ++ gamedata/configs/ui/actor_menu_item.xml | 399 ++ gamedata/configs/ui/actor_menu_item_16.xml | 385 ++ gamedata/configs/ui/af_params.xml | 136 + gamedata/configs/ui/af_params_16.xml | 136 + gamedata/configs/ui/backend/arrowstepper.xml | 7 + gamedata/configs/ui/backend/combobox.xml | 9 + gamedata/configs/ui/backend/cursor.xml | 6 + gamedata/configs/ui/backend/custom_spin.xml | 10 + .../configs/ui/backend/custom_spin_horz.xml | 10 + gamedata/configs/ui/backend/hud_target.xml | 10 + gamedata/configs/ui/backend/trackbar.xml | 7 + gamedata/configs/ui/booster_params.xml | 166 + gamedata/configs/ui/booster_params_16.xml | 166 + gamedata/configs/ui/car_panel.xml | 40 + gamedata/configs/ui/car_panel_16.xml | 40 + gamedata/configs/ui/maingame.xml | 230 + gamedata/configs/ui/maingame_16.xml | 242 + gamedata/configs/ui/map_desc.xml | 49 + gamedata/configs/ui/map_desc_16.xml | 49 + gamedata/configs/ui/map_spots.xml | 838 +++ gamedata/configs/ui/map_spots_16.xml | 832 +++ gamedata/configs/ui/pda_character.xml | 57 + gamedata/configs/ui/pda_character_16.xml | 57 + gamedata/configs/ui/pda_contacts_new.xml | 35 + gamedata/configs/ui/pda_contacts_new_16.xml | 35 + gamedata/configs/ui/pda_spot.xml | 22 + gamedata/configs/ui/pda_spot_16.xml | 22 + gamedata/configs/ui/talk.xml | 87 + gamedata/configs/ui/talk_16.xml | 87 + .../textures_descr/mod_ui_icons_npc_ixray.xml | 5 + .../ui_actor_multiplayer_menu_screen.xml | 155 + .../configs/ui/textures_descr/ui_ixray_ex.xml | 48 + .../ui/textures_descr/ui_microphone.xml | 5 + .../textures_descr/ui_mm_loading_screen.xml | 10 + .../ui/textures_descr/ui_npc_monster.xml | 26 + gamedata/configs/ui/ui_custom_msgs.xml | 228 + gamedata/configs/ui/ui_game_fmp.xml | 6 + gamedata/configs/ui/ui_game_fmp_16.xml | 6 + gamedata/configs/ui/ui_keybinding.xml | 74 + gamedata/configs/ui/ui_mm_loading_screen.xml | 38 + .../configs/ui/ui_mm_loading_screen_16.xml | 44 + gamedata/configs/ui/ui_mm_main.xml | 117 + gamedata/configs/ui/ui_mm_main_16.xml | 121 + gamedata/configs/ui/ui_mm_mp.xml | 116 + gamedata/configs/ui/ui_mm_mp_16.xml | 173 + gamedata/configs/ui/ui_mm_mp_tabclient.xml | 145 + gamedata/configs/ui/ui_mm_mp_tabclient_16.xml | 145 + gamedata/configs/ui/ui_mm_mp_taboptions.xml | 277 + .../configs/ui/ui_mm_mp_taboptions_16.xml | 277 + gamedata/configs/ui/ui_mm_opt.xml | 830 +++ gamedata/configs/ui/ui_mm_opt_16.xml | 833 +++ gamedata/configs/ui/ui_mp_admin_menu.xml | 305 ++ gamedata/fonts/editors/robotomono.ttf | 3 + gamedata/fonts/eng/arial.ttf | 3 + gamedata/fonts/eng/arialbd.ttf | 3 + gamedata/fonts/eng/arialbi.ttf | 3 + gamedata/fonts/eng/ariali.ttf | 3 + gamedata/fonts/eng/arialn.ttf | 3 + gamedata/fonts/eng/arialnb.ttf | 3 + gamedata/fonts/eng/arialnbi.ttf | 3 + gamedata/fonts/eng/arialni.ttf | 3 + gamedata/fonts/eng/ariblk.ttf | 3 + gamedata/fonts/eng/consola.ttf | 3 + gamedata/fonts/eng/consolab.ttf | 3 + gamedata/fonts/eng/consolai.ttf | 3 + gamedata/fonts/eng/consolaz.ttf | 3 + gamedata/fonts/eng/graffiti1ctt.ttf | 3 + gamedata/fonts/eng/letterica.ttf | 3 + gamedata/fonts/eng/roboto.ttf | 3 + gamedata/fonts/eng/robotocondensed.ttf | 3 + gamedata/fonts/eng/robotomono-bold.ttf | 3 + gamedata/fonts/eng/robotomono-light.ttf | 3 + gamedata/fonts/eng/robotomono-medium.ttf | 3 + gamedata/fonts/eng/robotomono.ttf | 3 + gamedata/fonts/rus/arial.ttf | 3 + gamedata/fonts/rus/arialbd.ttf | 3 + gamedata/fonts/rus/arialbi.ttf | 3 + gamedata/fonts/rus/ariali.ttf | 3 + gamedata/fonts/rus/arialn.ttf | 3 + gamedata/fonts/rus/arialnb.ttf | 3 + gamedata/fonts/rus/arialnbi.ttf | 3 + gamedata/fonts/rus/arialni.ttf | 3 + gamedata/fonts/rus/ariblk.ttf | 3 + gamedata/fonts/rus/consola.ttf | 3 + gamedata/fonts/rus/consolab.ttf | 3 + gamedata/fonts/rus/consolai.ttf | 3 + gamedata/fonts/rus/consolaz.ttf | 3 + gamedata/fonts/rus/graffiti1ctt.ttf | 3 + gamedata/fonts/rus/letterica.ttf | 3 + gamedata/fonts/rus/roboto.ttf | 3 + gamedata/fonts/rus/robotocondensed.ttf | 3 + gamedata/fonts/rus/robotomono-bold.ttf | 3 + gamedata/fonts/rus/robotomono-light.ttf | 3 + gamedata/fonts/rus/robotomono-medium.ttf | 3 + gamedata/fonts/rus/robotomono.ttf | 3 + gamedata/scripts/.vscode/launch.json | 22 + gamedata/scripts/.vscode/settings.json | 5 + gamedata/scripts/alife_storage_manager.script | 218 + gamedata/scripts/bind_crow.script | 96 + gamedata/scripts/bind_monster.script | 321 ++ gamedata/scripts/bind_stalker.script | 597 ++ gamedata/scripts/gulag_general.script | 1023 ++++ gamedata/scripts/ixray_global.script | 49 + .../ixray_system/dynamic_callbacks.lua | 47 + gamedata/scripts/ixray_system/global.lua | 34 + gamedata/scripts/ixray_system/luapanda.lua | 3626 ++++++++++++ gamedata/scripts/ixray_system/socket.lua | 149 + gamedata/scripts/luaxml.script | 117 + gamedata/scripts/pda.script | 450 ++ gamedata/scripts/se_car.script | 37 + gamedata/scripts/se_item.script | 512 ++ gamedata/scripts/se_smart_cover.script | 153 + gamedata/scripts/sim_squad_scripted.script | 1058 ++++ gamedata/scripts/smart_terrain.script | 1427 +++++ gamedata/scripts/state_lib.script | 781 +++ .../scripts/state_mgr_animation_list.script | 751 +++ gamedata/scripts/task_functor.script | 176 + gamedata/scripts/task_objects.script | 364 ++ gamedata/scripts/ui_load_dialog.script | 365 ++ gamedata/scripts/ui_main_menu.script | 381 ++ gamedata/scripts/ui_mm_mp_join.script | 85 + gamedata/scripts/ui_mm_mp_options.script | 199 + gamedata/scripts/ui_mm_opt_controls.script | 34 + gamedata/scripts/ui_mm_opt_gameplay.script | 92 + gamedata/scripts/ui_mm_opt_main.script | 353 ++ gamedata/scripts/ui_mm_opt_sound.script | 49 + gamedata/scripts/ui_mm_opt_video.script | 77 + gamedata/scripts/ui_mm_opt_video_adv.script | 414 ++ gamedata/scripts/ui_mp_main.script | 628 +++ gamedata/scripts/ui_save_dialog.script | 238 + .../scripts/xr_animpoint_predicates.script | 266 + gamedata/scripts/xr_combat_ignore.script | 198 + gamedata/scripts/xr_effects.script | 3384 ++++++++++++ gamedata/scripts/xr_kamp.script | 432 ++ gamedata/shaders/d3d11/accum_base.ps.hlsl | 52 + gamedata/shaders/d3d11/accum_emissive.ps.hlsl | 7 + .../shaders/d3d11/accum_emissivel.ps.hlsl | 7 + .../shaders/d3d11/accum_emissivew.ps.hlsl | 6 + gamedata/shaders/d3d11/accum_indirect.ps.hlsl | 7 + gamedata/shaders/d3d11/accum_mask.vs.hlsl | 7 + gamedata/shaders/d3d11/accum_sun.ps.hlsl | 64 + gamedata/shaders/d3d11/accum_sun.vs.hlsl | 12 + gamedata/shaders/d3d11/accum_sun_mask.ps.hlsl | 18 + gamedata/shaders/d3d11/accum_volume.vs.hlsl | 13 + .../shaders/d3d11/accum_volumetric.ps.hlsl | 68 + .../shaders/d3d11/accum_volumetric.vs.hlsl | 43 + gamedata/shaders/d3d11/accum_volumetric.xml | 14 + .../shaders/d3d11/accum_volumetric_sun.lua | 15 + .../d3d11/accum_volumetric_sun.ps.hlsl | 92 + gamedata/shaders/d3d11/base_lplanes.ps.hlsl | 15 + gamedata/shaders/d3d11/base_lplanes.vs.hlsl | 27 + .../shaders/d3d11/base_lplanes_fft.ps.hlsl | 31 + gamedata/shaders/d3d11/bloom_build.ps.hlsl | 17 + gamedata/shaders/d3d11/bloom_filter.ps.hlsl | 33 + gamedata/shaders/d3d11/bloom_filter_f.ps.hlsl | 28 + .../shaders/d3d11/bloom_luminance_1.ps.hlsl | 21 + .../shaders/d3d11/bloom_luminance_2.ps.hlsl | 59 + .../shaders/d3d11/bloom_luminance_3.ps.hlsl | 59 + gamedata/shaders/d3d11/cgim.h | 65 + .../d3d11/chromatic_aberration.ps.hlsl | 13 + gamedata/shaders/d3d11/clouds.lua | 12 + gamedata/shaders/d3d11/clouds.ps.hlsl | 26 + gamedata/shaders/d3d11/clouds.vs.hlsl | 37 + gamedata/shaders/d3d11/combine_1.ps.hlsl | 57 + gamedata/shaders/d3d11/combine_1.vs.hlsl | 24 + gamedata/shaders/d3d11/combine_2.ps.hlsl | 31 + .../shaders/d3d11/combine_distort.ps.hlsl | 21 + gamedata/shaders/d3d11/combine_volumetric.lua | 10 + .../shaders/d3d11/combine_volumetric.ps.hlsl | 13 + gamedata/shaders/d3d11/common.hlsli | 19 + gamedata/shaders/d3d11/common_cbuffers.hlsli | 21 + gamedata/shaders/d3d11/common_defines.hlsli | 24 + gamedata/shaders/d3d11/common_functions.hlsli | 290 + gamedata/shaders/d3d11/common_iostructs.hlsli | 514 ++ gamedata/shaders/d3d11/common_policies.hlsli | 12 + gamedata/shaders/d3d11/common_samplers.hlsli | 67 + .../contrast_adaptive_sharpening.ps.hlsl | 66 + gamedata/shaders/d3d11/copy.ps.hlsl | 12 + gamedata/shaders/d3d11/copy_image.ps.hlsl | 6 + gamedata/shaders/d3d11/copy_p.ps.hlsl | 7 + gamedata/shaders/d3d11/debug_draw.lua | 14 + gamedata/shaders/d3d11/debug_draw.ps.hlsl | 20 + gamedata/shaders/d3d11/debug_draw.vs.hlsl | 26 + .../shaders/d3d11/debug_draw_nodepth.ps.hlsl | 14 + gamedata/shaders/d3d11/deffer_base.ps.hlsl | 72 + gamedata/shaders/d3d11/deffer_base.vs.hlsl | 58 + gamedata/shaders/d3d11/deffer_detail.vs.hlsl | 106 + gamedata/shaders/d3d11/deffer_impl.ps.hlsl | 162 + gamedata/shaders/d3d11/deffer_lod.vs.hlsl | 88 + gamedata/shaders/d3d11/deffer_model.vs.hlsl | 81 + .../shaders/d3d11/deffer_particle.ps.hlsl | 15 + .../shaders/d3d11/deffer_particle.vs.hlsl | 24 + gamedata/shaders/d3d11/depth_downs.ps.hlsl | 28 + gamedata/shaders/d3d11/details_lod.lua | 21 + gamedata/shaders/d3d11/distort.lua | 10 + gamedata/shaders/d3d11/distort.ps.hlsl | 19 + gamedata/shaders/d3d11/dof.hlsli | 80 + gamedata/shaders/d3d11/dumb.ps.hlsl | 7 + gamedata/shaders/d3d11/dumb.vs.hlsl | 11 + gamedata/shaders/d3d11/editor.vs.hlsl | 24 + .../shaders/d3d11/effects_bullet_tracer.lua | 7 + gamedata/shaders/d3d11/effects_flare.lua | 7 + gamedata/shaders/d3d11/effects_lightning.lua | 10 + .../shaders/d3d11/effects_lightplanes.lua | 12 + gamedata/shaders/d3d11/effects_rain.lua | 10 + gamedata/shaders/d3d11/effects_sun.lua | 9 + gamedata/shaders/d3d11/effects_sun.vs.hlsl | 15 + gamedata/shaders/d3d11/effects_wallmark.lua | 8 + .../shaders/d3d11/effects_wallmark.vs.hlsl | 15 + .../shaders/d3d11/effects_wallmarkblend.lua | 13 + .../shaders/d3d11/effects_wallmarkmult.lua | 13 + .../shaders/d3d11/effects_wallmarkset.lua | 12 + gamedata/shaders/d3d11/effects_water.lua | 62 + .../shaders/d3d11/effects_water_puddles.lua | 36 + .../shaders/d3d11/effects_waterryaska.lua | 62 + .../shaders/d3d11/effects_waterstuden.lua | 62 + gamedata/shaders/d3d11/fluid3d_stub.lua | 10 + gamedata/shaders/d3d11/fluid_advect.ps.hlsl | 14 + .../shaders/d3d11/fluid_advect_bfecc.ps.hlsl | 32 + .../d3d11/fluid_advect_bfecc_temp.ps.hlsl | 63 + .../shaders/d3d11/fluid_advect_temp.ps.hlsl | 15 + .../shaders/d3d11/fluid_advect_vel.ps.hlsl | 21 + .../shaders/d3d11/fluid_advect_vel_g.ps.hlsl | 3 + gamedata/shaders/d3d11/fluid_array.gs.hlsl | 21 + .../d3d11/fluid_array_dyn_oobb.gs.hlsl | 20 + .../shaders/d3d11/fluid_array_oobb.gs.hlsl | 23 + gamedata/shaders/d3d11/fluid_common.hlsli | 214 + .../shaders/d3d11/fluid_common_render.hlsli | 344 ++ .../shaders/d3d11/fluid_common_tricubic.hlsli | 233 + .../shaders/d3d11/fluid_confinement.ps.hlsl | 30 + .../shaders/d3d11/fluid_divergence.ps.hlsl | 42 + .../shaders/d3d11/fluid_draw_texture.ps.hlsl | 19 + .../shaders/d3d11/fluid_edge_detect.ps.hlsl | 83 + .../shaders/d3d11/fluid_edge_detect.vs.hlsl | 26 + gamedata/shaders/d3d11/fluid_gaussian.ps.hlsl | 22 + gamedata/shaders/d3d11/fluid_grid.vs.hlsl | 28 + .../shaders/d3d11/fluid_grid_dyn_oobb.vs.hlsl | 54 + .../shaders/d3d11/fluid_grid_oobb.vs.hlsl | 49 + gamedata/shaders/d3d11/fluid_jacobi.ps.hlsl | 44 + .../d3d11/fluid_obst_dynamic_oobb.ps.hlsl | 29 + .../d3d11/fluid_obst_static_oobb.ps.hlsl | 37 + .../shaders/d3d11/fluid_obststaticbox.ps.hlsl | 51 + gamedata/shaders/d3d11/fluid_project.ps.hlsl | 71 + .../shaders/d3d11/fluid_raycast_quad.ps.hlsl | 9 + .../shaders/d3d11/fluid_raycast_quad.vs.hlsl | 13 + .../d3d11/fluid_raycast_quad_fire.ps.hlsl | 4 + .../d3d11/fluid_raycastcopy_quad.ps.hlsl | 32 + .../d3d11/fluid_raycastcopy_quad_fire.ps.hlsl | 4 + .../shaders/d3d11/fluid_raydata_back.ps.hlsl | 13 + .../shaders/d3d11/fluid_raydata_back.vs.hlsl | 12 + .../shaders/d3d11/fluid_raydata_front.ps.hlsl | 25 + .../shaders/d3d11/fluid_raydata_front.vs.hlsl | 13 + .../d3d11/fluid_raydatacopy_quad.ps.hlsl | 8 + .../shaders/d3d11/fluid_vorticity.ps.hlsl | 19 + gamedata/shaders/d3d11/font2.ps.hlsl | 29 + gamedata/shaders/d3d11/forward_base.ps.hlsl | 99 + gamedata/shaders/d3d11/friendly_indicator.lua | 12 + gamedata/shaders/d3d11/fxaa.hlsli | 1318 +++++ gamedata/shaders/d3d11/fxaa_main.ps.hlsl | 28 + gamedata/shaders/d3d11/gamma_apply.ps.hlsl | 21 + gamedata/shaders/d3d11/gtao_filter.ps.hlsl | 69 + gamedata/shaders/d3d11/gtao_render.ps.hlsl | 183 + gamedata/shaders/d3d11/hud3d.ps.hlsl | 14 + gamedata/shaders/d3d11/hud3d.vs.hlsl | 27 + gamedata/shaders/d3d11/hud_crosshair.lua | 6 + gamedata/shaders/d3d11/hud_crosshair.vs.hlsl | 23 + gamedata/shaders/d3d11/hud_font.lua | 9 + gamedata/shaders/d3d11/hud_font.ps.hlsl | 13 + gamedata/shaders/d3d11/hud_font2.lua | 9 + gamedata/shaders/d3d11/hud_font2.ps.hlsl | 11 + gamedata/shaders/d3d11/hud_movie.lua | 11 + gamedata/shaders/d3d11/hud_p3d.lua | 9 + gamedata/shaders/d3d11/lod.ps.hlsl | 56 + gamedata/shaders/d3d11/lod.vs.hlsl | 42 + gamedata/shaders/d3d11/mark_adjust.hlsli | 0 gamedata/shaders/d3d11/mblur.hlsli | 9 + .../d3d11/metalic_roughness_ambient.hlsli | 172 + .../d3d11/metalic_roughness_base.hlsli | 231 + .../d3d11/metalic_roughness_light.hlsli | 79 + .../shaders/d3d11/model_clockarrow_h.ps.hlsl | 45 + .../shaders/d3d11/model_clockarrow_m.ps.hlsl | 45 + .../shaders/d3d11/model_clockarrow_s.ps.hlsl | 45 + .../shaders/d3d11/model_compassarrow.ps.hlsl | 45 + gamedata/shaders/d3d11/model_distort.vs.hlsl | 71 + .../shaders/d3d11/model_distort4ghost.vs.hlsl | 69 + .../shaders/d3d11/model_distort4glass.vs.hlsl | 70 + .../shaders/d3d11/model_distort_inv.vs.hlsl | 69 + .../shaders/d3d11/model_exohealth.ps.hlsl | 50 + .../shaders/d3d11/model_exoscreen.ps.hlsl | 33 + .../d3d11/model_green_conditionbar.ps.hlsl | 39 + .../d3d11/model_green_energybar.ps.hlsl | 38 + .../shaders/d3d11/model_pda_screen.ps.hlsl | 59 + .../shaders/d3d11/model_scope_gauss.ps.hlsl | 119 + gamedata/shaders/d3d11/model_scope_lense.lua | 31 + .../shaders/d3d11/model_scope_lense.ps.hlsl | 29 + .../d3d11/model_scope_lense_lerp.ps.hlsl | 38 + .../d3d11/model_scope_lense_night.ps.hlsl | 31 + .../d3d11/model_tricolor_conditionbar.ps.hlsl | 26 + .../shaders/d3d11/models_clockarrow_h.lua | 12 + .../d3d11/models_clockarrow_h_screen.lua | 12 + .../shaders/d3d11/models_clockarrow_m.lua | 12 + .../d3d11/models_clockarrow_m_screen.lua | 12 + .../shaders/d3d11/models_clockarrow_s.lua | 12 + .../d3d11/models_clockarrow_s_screen.lua | 12 + gamedata/shaders/d3d11/models_collimator.lua | 11 + gamedata/shaders/d3d11/models_collimsight.lua | 11 + .../shaders/d3d11/models_compass_arrow.lua | 12 + .../d3d11/models_compass_arrow_screen.lua | 12 + gamedata/shaders/d3d11/models_compscreen.lua | 18 + gamedata/shaders/d3d11/models_condition.lua | 14 + .../d3d11/models_digiclock_hh_screen.lua | 18 + .../d3d11/models_digiclock_hl_screen.lua | 18 + .../d3d11/models_digiclock_mh_screen.lua | 18 + .../d3d11/models_digiclock_ml_screen.lua | 18 + .../shaders/d3d11/models_energy_gauss.lua | 14 + gamedata/shaders/d3d11/models_exohealth.lua | 14 + gamedata/shaders/d3d11/models_exoscreen01.lua | 11 + gamedata/shaders/d3d11/models_laserray.lua | 11 + gamedata/shaders/d3d11/models_lense_scope.lua | 12 + .../d3d11/models_lfo_glass_lens_weapons.lua | 14 + .../d3d11/models_lfo_light_dot_weapons.lua | 11 + gamedata/shaders/d3d11/models_lightplanes.lua | 11 + gamedata/shaders/d3d11/models_pautina.lua | 23 + gamedata/shaders/d3d11/models_pda.lua | 18 + gamedata/shaders/d3d11/models_reflex_lens.lua | 14 + .../shaders/d3d11/models_reflex_lens.ps.hlsl | 90 + .../shaders/d3d11/models_reflex_lens.vs.hlsl | 51 + .../shaders/d3d11/models_reflex_reticle.lua | 11 + .../d3d11/models_reflex_reticle.ps.hlsl | 41 + .../d3d11/models_reflex_reticle.vs.hlsl | 51 + gamedata/shaders/d3d11/models_selflight.lua | 18 + .../shaders/d3d11/models_selflight_det.lua | 23 + gamedata/shaders/d3d11/models_selflightl.lua | 18 + gamedata/shaders/d3d11/models_selflightw.xml | 17 + gamedata/shaders/d3d11/models_xanomaly.lua | 34 + gamedata/shaders/d3d11/models_xdistort.lua | 26 + .../shaders/d3d11/models_xdistortcolor.lua | 25 + .../shaders/d3d11/models_xdistortcolorl.lua | 26 + .../d3d11/models_xdistortcolorlinv.lua | 26 + gamedata/shaders/d3d11/models_xdistortinv.lua | 26 + gamedata/shaders/d3d11/models_xmonolith.lua | 35 + gamedata/shaders/d3d11/models_xwindows.lua | 35 + gamedata/shaders/d3d11/models_zoom.lua | 25 + gamedata/shaders/d3d11/models_zoom_gauss.lua | 25 + gamedata/shaders/d3d11/models_zoom_lerp.lua | 25 + gamedata/shaders/d3d11/models_zoomnight.lua | 25 + gamedata/shaders/d3d11/parallax_mark.ps.hlsl | 105 + gamedata/shaders/d3d11/parallax_mark.vs.hlsl | 49 + gamedata/shaders/d3d11/particle-clip.vs.hlsl | 27 + gamedata/shaders/d3d11/particle.ps.hlsl | 32 + gamedata/shaders/d3d11/particle.vs.hlsl | 45 + gamedata/shaders/d3d11/particle_add.ps.hlsl | 39 + .../shaders/d3d11/particle_alphaonly.ps.hlsl | 14 + .../shaders/d3d11/particle_distort.ps.hlsl | 32 + .../d3d11/particle_distort_hard.ps.hlsl | 2 + gamedata/shaders/d3d11/particle_hard.ps.hlsl | 2 + .../shaders/d3d11/particle_s-aadd.ps.hlsl | 16 + gamedata/shaders/d3d11/particle_s-add.ps.hlsl | 16 + .../shaders/d3d11/particle_s-blend.ps.hlsl | 16 + gamedata/shaders/d3d11/particle_s-mul.ps.hlsl | 15 + gamedata/shaders/d3d11/particles_add.lua | 14 + gamedata/shaders/d3d11/particles_xadd.lua | 37 + gamedata/shaders/d3d11/particles_xdistort.lua | 19 + gamedata/shaders/d3d11/pnv.hlsli | 57 + gamedata/shaders/d3d11/portal.lua | 7 + gamedata/shaders/d3d11/portal.ps.hlsl | 7 + gamedata/shaders/d3d11/portal.vs.hlsl | 29 + gamedata/shaders/d3d11/postprocess.lua | 32 + gamedata/shaders/d3d11/postprocess.ps.hlsl | 27 + gamedata/shaders/d3d11/postprocess_cm.ps.hlsl | 38 + .../shaders/d3d11/rain_apply_gloss.ps.hlsl | 13 + .../shaders/d3d11/rain_apply_normal.ps.hlsl | 10 + gamedata/shaders/d3d11/rain_layer.ps.hlsl | 26 + .../shaders/d3d11/rain_patch_normal.ps.hlsl | 124 + .../d3d11/rain_patch_normal_new.ps.hlsl | 113 + gamedata/shaders/d3d11/reflections.hlsli | 279 + gamedata/shaders/d3d11/saturation.ps.hlsl | 15 + .../shaders/d3d11/scope_lense_mask.ps.hlsl | 14 + .../shaders/d3d11/scope_lense_mask.vs.hlsl | 41 + .../d3d11/screenspacecontactshadows.hlsl | 66 + gamedata/shaders/d3d11/selflight.lua | 12 + gamedata/shaders/d3d11/selflight2.lua | 18 + gamedata/shaders/d3d11/shadow.hlsli | 660 +++ gamedata/shaders/d3d11/shadow_base.ps.hlsl | 12 + gamedata/shaders/d3d11/shadow_base.vs.hlsl | 18 + gamedata/shaders/d3d11/shadow_lod.vs.hlsl | 25 + gamedata/shaders/d3d11/shadow_model.vs.hlsl | 54 + .../shaders/d3d11/shared/cloudconfig.hlsli | 11 + gamedata/shaders/d3d11/shared/common.hlsli | 79 + .../shaders/d3d11/shared/waterconfig.hlsli | 55 + gamedata/shaders/d3d11/shared/watermove.hlsli | 30 + gamedata/shaders/d3d11/shared/wmark.hlsli | 26 + gamedata/shaders/d3d11/simple.ps.hlsl | 13 + gamedata/shaders/d3d11/simple_color.ps.hlsl | 6 + gamedata/shaders/d3d11/skin.hlsli | 357 ++ gamedata/shaders/d3d11/sky.ps.hlsl | 49 + gamedata/shaders/d3d11/sky.vs.hlsl | 35 + gamedata/shaders/d3d11/sload.hlsli | 204 + gamedata/shaders/d3d11/smaa.hlsli | 1131 ++++ .../shaders/d3d11/smaa_bweight_calc.ps.hlsl | 42 + .../shaders/d3d11/smaa_bweight_calc.vs.hlsl | 44 + .../shaders/d3d11/smaa_edge_detect.ps.hlsl | 42 + .../shaders/d3d11/smaa_edge_detect.vs.hlsl | 43 + .../d3d11/smaa_neighbour_blend.ps.hlsl | 37 + .../d3d11/smaa_neighbour_blend.vs.hlsl | 43 + gamedata/shaders/d3d11/snowing_main.ps.hlsl | 63 + gamedata/shaders/d3d11/ssao.ps.hlsl | 99 + gamedata/shaders/d3d11/ssao_blur.ps.hlsl | 37 + gamedata/shaders/d3d11/ssao_calc.ps.hlsl | 25 + gamedata/shaders/d3d11/sslr_filter.ps.hlsl | 118 + gamedata/shaders/d3d11/sslr_render.ps.hlsl | 138 + gamedata/shaders/d3d11/sslr_temporal.ps.hlsl | 158 + gamedata/shaders/d3d11/stub_default.lua | 9 + gamedata/shaders/d3d11/stub_default.ps.hlsl | 12 + gamedata/shaders/d3d11/stub_default.vs.hlsl | 13 + .../shaders/d3d11/stub_default_ma.ps.hlsl | 20 + .../d3d11/stub_fullscreen_triangle.vs.hlsl | 21 + .../shaders/d3d11/stub_notransform.vs.hlsl | 14 + .../d3d11/stub_notransform_2uv.vs.hlsl | 15 + .../d3d11/stub_notransform_aa_aa.vs.hlsl | 30 + .../d3d11/stub_notransform_build.vs.hlsl | 25 + .../d3d11/stub_notransform_filter.vs.hlsl | 29 + .../d3d11/stub_notransform_postpr.vs.hlsl | 29 + .../shaders/d3d11/stub_notransform_t.vs.hlsl | 25 + .../d3d11/stub_notransform_t_font.vs.hlsl | 20 + .../d3d11/stub_notransform_t_m2.vs.hlsl | 25 + .../d3d11/stub_notransform_t_m4.vs.hlsl | 25 + .../d3d11/stub_notransform_t_ma.vs.hlsl | 21 + .../d3d11/stub_notransform_t_scaled.vs.hlsl | 21 + .../shaders/d3d11/stub_screen_space.vs.hlsl | 17 + gamedata/shaders/d3d11/stub_srgb.ps.hlsl | 9 + gamedata/shaders/d3d11/taa_render.ps.hlsl | 216 + gamedata/shaders/d3d11/tess.ds.hlsl | 79 + gamedata/shaders/d3d11/tess.hlsli | 113 + gamedata/shaders/d3d11/tess.hs.hlsl | 60 + gamedata/shaders/d3d11/test.gs.hlsl | 17 + gamedata/shaders/d3d11/vignette.ps.hlsl | 9 + gamedata/shaders/d3d11/water.ps.hlsl | 162 + gamedata/shaders/d3d11/water.vs.hlsl | 94 + gamedata/shaders/d3d11/water_puddles.ps.hlsl | 124 + gamedata/shaders/d3d11/water_puddles.vs.hlsl | 34 + gamedata/shaders/d3d11/waterd.ps.hlsl | 43 + gamedata/shaders/d3d11/wmark.vs.hlsl | 26 + gamedata/shaders/d3d11/yuv2rgb.ps.hlsl | 19 + gamedata/shaders/d3d11/zfill.lua | 15 + gamedata/shaders/d3d11/zfill2.lua | 15 + gamedata/shaders/editor/accum_base.ps.hlsl | 51 + gamedata/shaders/editor/accum_mask.vs.hlsl | 8 + gamedata/shaders/editor/accum_volume.vs.hlsl | 18 + gamedata/shaders/editor/common.hlsli | 247 + gamedata/shaders/editor/deffer_base.ps.hlsl | 64 + gamedata/shaders/editor/deffer_base.vs.hlsl | 25 + gamedata/shaders/editor/deffer_detail.vs.hlsl | 63 + gamedata/shaders/editor/deffer_impl.ps.hlsl | 142 + gamedata/shaders/editor/deffer_model.vs.hlsl | 50 + gamedata/shaders/editor/dumb.ps.hlsl | 7 + gamedata/shaders/editor/effects_water.lua | 32 + gamedata/shaders/editor/font2.ps.hlsl | 18 + gamedata/shaders/editor/forward_base.ps.hlsl | 48 + gamedata/shaders/editor/hmodel.hlsli | 48 + gamedata/shaders/editor/hud3d.ps.hlsl | 13 + gamedata/shaders/editor/hud3d.vs.hlsl | 25 + gamedata/shaders/editor/hud_crosshair.lua | 6 + gamedata/shaders/editor/hud_font.lua | 7 + gamedata/shaders/editor/hud_font.ps.hlsl | 15 + gamedata/shaders/editor/hud_font2.lua | 7 + gamedata/shaders/editor/hud_movie.lua | 7 + gamedata/shaders/editor/hud_p3d.lua | 7 + gamedata/shaders/editor/impl_dt.ps.hlsl | 35 + gamedata/shaders/editor/impl_dt.vs.hlsl | 31 + gamedata/shaders/editor/lmodel.hlsli | 28 + gamedata/shaders/editor/model_def_hq.ps.hlsl | 12 + gamedata/shaders/editor/model_def_hq.vs.hlsl | 23 + gamedata/shaders/editor/model_env_hq.ps.hlsl | 23 + gamedata/shaders/editor/model_env_hq.vs.hlsl | 31 + gamedata/shaders/editor/particle.ps.hlsl | 13 + gamedata/shaders/editor/particle.vs.hlsl | 27 + .../shaders/editor/particle_distort.ps.hlsl | 25 + .../shaders/editor/particle_distort.vs.hlsl | 30 + .../shaders/editor/particles_xdistort.lua | 10 + gamedata/shaders/editor/portal.lua | 7 + gamedata/shaders/editor/portal.ps.hlsl | 8 + gamedata/shaders/editor/portal.vs.hlsl | 19 + .../shaders/editor/shared/cloudconfig.hlsli | 11 + gamedata/shaders/editor/shared/common.hlsli | 65 + .../shaders/editor/shared/waterconfig.hlsli | 55 + .../shaders/editor/shared/watermove.hlsli | 29 + gamedata/shaders/editor/shared/wmark.hlsli | 23 + gamedata/shaders/editor/simple_color.ps.hlsl | 6 + gamedata/shaders/editor/simple_color.vs.hlsl | 19 + gamedata/shaders/editor/skin.hlsli | 226 + gamedata/shaders/editor/skin_main.hlsli | 100 + gamedata/shaders/editor/sky.ps.hlsl | 22 + gamedata/shaders/editor/sky.vs.hlsl | 31 + gamedata/shaders/editor/sky2.ps | 23 + gamedata/shaders/editor/sky2.vs | 31 + gamedata/shaders/editor/sload.hlsli | 82 + gamedata/shaders/editor/water.ps.hlsl | 136 + gamedata/shaders/editor/water.vs.hlsl | 83 + gamedata/shaders/editor/yuv2rgb.ps.hlsl | 25 + gamedata/shaders/r1/.lua | 39 + gamedata/shaders/r1/add_point.ps.hlsl | 18 + gamedata/shaders/r1/add_ppa.ps.hlsl | 20 + gamedata/shaders/r1/add_spot.ps.hlsl | 17 + gamedata/shaders/r1/avg2.ps.hlsl | 20 + gamedata/shaders/r1/avg4.ps.hlsl | 26 + gamedata/shaders/r1/base_laser.ps.hlsl | 20 + gamedata/shaders/r1/base_lplanes.ps.hlsl | 17 + gamedata/shaders/r1/base_lplanes.vs.hlsl | 25 + gamedata/shaders/r1/base_lplanes_fft.ps.hlsl | 31 + gamedata/shaders/r1/blur2.lua | 7 + gamedata/shaders/r1/blur4.lua | 9 + gamedata/shaders/r1/clouds.lua | 10 + gamedata/shaders/r1/clouds.ps.hlsl | 21 + gamedata/shaders/r1/clouds.vs.hlsl | 37 + gamedata/shaders/r1/common.hlsli | 160 + gamedata/shaders/r1/detail.ps.hlsl | 19 + gamedata/shaders/r1/detail_still.vs.hlsl | 68 + gamedata/shaders/r1/detail_wave.vs.hlsl | 82 + gamedata/shaders/r1/details_lod.lua | 23 + gamedata/shaders/r1/editor.vs.hlsl | 19 + gamedata/shaders/r1/effects_lightplanes.lua | 9 + gamedata/shaders/r1/effects_wallmarkblend.lua | 19 + gamedata/shaders/r1/effects_wallmarkmult.lua | 18 + gamedata/shaders/r1/effects_wallmarkset.lua | 16 + gamedata/shaders/r1/effects_water.lua | 27 + gamedata/shaders/r1/effects_waterryaska.lua | 28 + gamedata/shaders/r1/effects_waterstuden.lua | 28 + gamedata/shaders/r1/font2.ps.hlsl | 18 + gamedata/shaders/r1/fxaa.hlsli | 1309 +++++ gamedata/shaders/r1/fxaa_luma.ps.hlsl | 17 + gamedata/shaders/r1/fxaa_main.ps.hlsl | 34 + gamedata/shaders/r1/fxaa_main.vs.hlsl | 25 + gamedata/shaders/r1/hud3d.ps.hlsl | 13 + gamedata/shaders/r1/hud3d.vs.hlsl | 25 + gamedata/shaders/r1/hud_crosshair.lua | 6 + gamedata/shaders/r1/hud_font.lua | 7 + gamedata/shaders/r1/hud_font.ps.hlsl | 15 + gamedata/shaders/r1/hud_font2.lua | 7 + gamedata/shaders/r1/hud_movie.lua | 7 + gamedata/shaders/r1/hud_p3d.lua | 7 + gamedata/shaders/r1/impl.ps.hlsl | 29 + gamedata/shaders/r1/impl.vs.hlsl | 26 + gamedata/shaders/r1/impl_dt.ps.hlsl | 34 + gamedata/shaders/r1/impl_dt.vs.hlsl | 29 + gamedata/shaders/r1/impl_dt_hq.ps.hlsl | 48 + gamedata/shaders/r1/impl_l.ps.hlsl | 22 + gamedata/shaders/r1/impl_l.vs.hlsl | 21 + gamedata/shaders/r1/impl_point.vs.hlsl | 13 + gamedata/shaders/r1/impl_spot.vs.hlsl | 13 + gamedata/shaders/r1/lmap.ps.hlsl | 31 + gamedata/shaders/r1/lmap.vs.hlsl | 29 + gamedata/shaders/r1/lmap_dt.ps.hlsl | 36 + gamedata/shaders/r1/lmap_dt.vs.hlsl | 33 + gamedata/shaders/r1/lmap_l.ps.hlsl | 24 + gamedata/shaders/r1/lmap_l.vs.hlsl | 23 + gamedata/shaders/r1/lmap_point.vs.hlsl | 13 + gamedata/shaders/r1/lmap_spot.vs.hlsl | 13 + gamedata/shaders/r1/lmape.ps.hlsl | 33 + gamedata/shaders/r1/lmape.vs.hlsl | 33 + gamedata/shaders/r1/lod.ps.hlsl | 34 + gamedata/shaders/r1/lod.vs.hlsl | 64 + .../shaders/r1/model_clockarrow_h.ps.hlsl | 39 + .../shaders/r1/model_clockarrow_m.ps.hlsl | 39 + .../shaders/r1/model_clockarrow_s.ps.hlsl | 39 + .../shaders/r1/model_compassarrow.ps.hlsl | 39 + gamedata/shaders/r1/model_compscreen.ps.hlsl | 20 + gamedata/shaders/r1/model_def_hq.ps.hlsl | 29 + gamedata/shaders/r1/model_def_hq.vs.hlsl | 41 + gamedata/shaders/r1/model_def_lplanes.vs.hlsl | 28 + gamedata/shaders/r1/model_def_lq.ps.hlsl | 22 + gamedata/shaders/r1/model_def_lq.vs.hlsl | 34 + gamedata/shaders/r1/model_def_lqs.vs.hlsl | 33 + gamedata/shaders/r1/model_def_point.vs.hlsl | 21 + gamedata/shaders/r1/model_def_shadow.vs.hlsl | 21 + gamedata/shaders/r1/model_def_spot.vs.hlsl | 21 + .../shaders/r1/model_digiclock_hh.ps.hlsl | 25 + .../shaders/r1/model_digiclock_hl.ps.hlsl | 25 + .../shaders/r1/model_digiclock_mh.ps.hlsl | 25 + .../shaders/r1/model_digiclock_ml.ps.hlsl | 25 + gamedata/shaders/r1/model_distort.vs.hlsl | 28 + gamedata/shaders/r1/model_distort2t.vs.hlsl | 30 + .../shaders/r1/model_distort4ghost.vs.hlsl | 28 + .../shaders/r1/model_distort4glass.vs.hlsl | 28 + gamedata/shaders/r1/model_distort_inv.vs.hlsl | 28 + gamedata/shaders/r1/model_env.ps.hlsl | 21 + gamedata/shaders/r1/model_env_hq.ps.hlsl | 32 + gamedata/shaders/r1/model_env_hq.vs.hlsl | 41 + gamedata/shaders/r1/model_env_lq.ps.hlsl | 24 + gamedata/shaders/r1/model_env_lq.vs.hlsl | 35 + gamedata/shaders/r1/model_env_sl.ps.hlsl | 23 + gamedata/shaders/r1/model_exohealth.ps.hlsl | 25 + gamedata/shaders/r1/model_exoscreen.ps.hlsl | 22 + .../r1/model_green_conditionbar.ps.hlsl | 22 + .../shaders/r1/model_green_energybar.ps.hlsl | 26 + gamedata/shaders/r1/model_pda_screen.ps.hlsl | 30 + gamedata/shaders/r1/model_scope_gauss.ps.hlsl | 36 + gamedata/shaders/r1/model_scope_lense.ps.hlsl | 36 + .../shaders/r1/model_scope_lense_lerp.ps.hlsl | 36 + .../r1/model_scope_lense_night.ps.hlsl | 36 + gamedata/shaders/r1/model_shadow.ps.hlsl | 13 + .../r1/model_tricolor_conditionbar.ps.hlsl | 23 + gamedata/shaders/r1/models_clockarrow_h.lua | 12 + .../shaders/r1/models_clockarrow_h_screen.lua | 16 + gamedata/shaders/r1/models_clockarrow_m.lua | 12 + .../shaders/r1/models_clockarrow_m_screen.lua | 16 + gamedata/shaders/r1/models_clockarrow_s.lua | 12 + .../shaders/r1/models_clockarrow_s_screen.lua | 16 + gamedata/shaders/r1/models_collimator.lua | 10 + gamedata/shaders/r1/models_collimsight.lua | 9 + gamedata/shaders/r1/models_compass_arrow.lua | 12 + .../r1/models_compass_arrow_screen.lua | 16 + gamedata/shaders/r1/models_compscreen.lua | 15 + gamedata/shaders/r1/models_condition.lua | 12 + .../shaders/r1/models_digiclock_hh_screen.lua | 15 + .../shaders/r1/models_digiclock_hl_screen.lua | 15 + .../shaders/r1/models_digiclock_mh_screen.lua | 15 + .../shaders/r1/models_digiclock_ml_screen.lua | 15 + gamedata/shaders/r1/models_energy_gauss.lua | 12 + gamedata/shaders/r1/models_exohealth.lua | 12 + gamedata/shaders/r1/models_exoscreen01.lua | 10 + gamedata/shaders/r1/models_laserray.lua | 9 + gamedata/shaders/r1/models_lense_scope.lua | 12 + gamedata/shaders/r1/models_lenses.lua | 9 + .../r1/models_lfo_light_dot_weapons.lua | 9 + gamedata/shaders/r1/models_lightplanes.lua | 9 + gamedata/shaders/r1/models_magazine.lua | 12 + gamedata/shaders/r1/models_pautina.lua | 31 + gamedata/shaders/r1/models_pda.lua | 14 + gamedata/shaders/r1/models_reflex_reticle.lua | 9 + gamedata/shaders/r1/models_selflight.lua | 13 + gamedata/shaders/r1/models_selflight_det.lua | 13 + gamedata/shaders/r1/models_selflightl.lua | 13 + gamedata/shaders/r1/models_xanomaly.lua | 89 + gamedata/shaders/r1/models_xdistort.lua | 10 + gamedata/shaders/r1/models_xdistortcolor.lua | 21 + gamedata/shaders/r1/models_xdistortcolorl.lua | 21 + .../shaders/r1/models_xdistortcolorlinv.lua | 21 + gamedata/shaders/r1/models_xdistortinv.lua | 21 + gamedata/shaders/r1/models_xglass.lua | 44 + gamedata/shaders/r1/models_xglass2.lua | 44 + gamedata/shaders/r1/models_xlens.lua | 44 + gamedata/shaders/r1/models_xmonolith.lua | 44 + gamedata/shaders/r1/models_xwindows.lua | 44 + gamedata/shaders/r1/models_zoom.lua | 12 + gamedata/shaders/r1/models_zoom_gauss.lua | 13 + gamedata/shaders/r1/models_zoom_lerp.lua | 13 + gamedata/shaders/r1/models_zoomnight.lua | 13 + gamedata/shaders/r1/parallax_mark.ps.hlsl | 100 + gamedata/shaders/r1/parallax_mark.vs.hlsl | 49 + gamedata/shaders/r1/particle.ps.hlsl | 16 + gamedata/shaders/r1/particle.vs.hlsl | 28 + gamedata/shaders/r1/particle2t.ps.hlsl | 19 + gamedata/shaders/r1/particle_add.vs.hlsl | 28 + .../shaders/r1/particle_alphaonly.ps.hlsl | 13 + gamedata/shaders/r1/particle_distort.ps.hlsl | 17 + gamedata/shaders/r1/particles_add.lua | 9 + gamedata/shaders/r1/particles_xadd.lua | 21 + gamedata/shaders/r1/particles_xdistort.lua | 10 + gamedata/shaders/r1/pnv.hlsli | 53 + gamedata/shaders/r1/portal.lua | 7 + gamedata/shaders/r1/portal.ps.hlsl | 8 + gamedata/shaders/r1/portal.vs.hlsl | 19 + gamedata/shaders/r1/postprocess.lua | 9 + gamedata/shaders/r1/postprocess.ps.hlsl | 35 + gamedata/shaders/r1/postprocess_cm.lua | 25 + .../shaders/r1/postprocess_cm_pre.ps.hlsl | 31 + gamedata/shaders/r1/postprocess_d.lua | 10 + gamedata/shaders/r1/postprocess_d.ps.hlsl | 39 + gamedata/shaders/r1/postprocess_dcm.lua | 26 + gamedata/shaders/r1/selflight.lua | 19 + gamedata/shaders/r1/shared/cloudconfig.hlsli | 11 + gamedata/shaders/r1/shared/common.hlsli | 69 + gamedata/shaders/r1/shared/waterconfig.hlsli | 55 + gamedata/shaders/r1/shared/watermove.hlsli | 30 + gamedata/shaders/r1/shared/wmark.hlsli | 23 + gamedata/shaders/r1/simple.ps.hlsl | 12 + gamedata/shaders/r1/simple.vs.hlsl | 19 + gamedata/shaders/r1/simple_color.ps.hlsl | 6 + gamedata/shaders/r1/simple_color.vs.hlsl | 19 + gamedata/shaders/r1/simple_point.vs.hlsl | 13 + gamedata/shaders/r1/simple_spot.vs.hlsl | 13 + gamedata/shaders/r1/skin.hlsli | 277 + gamedata/shaders/r1/skin_main.hlsli | 100 + gamedata/shaders/r1/sky.ps.hlsl | 22 + gamedata/shaders/r1/sky.vs.hlsl | 31 + gamedata/shaders/r1/tree_s.vs.hlsl | 63 + gamedata/shaders/r1/tree_s_dt.vs.hlsl | 67 + gamedata/shaders/r1/tree_s_point.vs.hlsl | 41 + gamedata/shaders/r1/tree_s_spot.vs.hlsl | 41 + gamedata/shaders/r1/tree_test.vs.hlsl | 62 + gamedata/shaders/r1/tree_w.vs.hlsl | 62 + gamedata/shaders/r1/tree_w_dt.vs.hlsl | 67 + gamedata/shaders/r1/tree_w_point.vs.hlsl | 41 + gamedata/shaders/r1/tree_w_spot.vs.hlsl | 41 + gamedata/shaders/r1/tree_wave.vs.hlsl | 62 + gamedata/shaders/r1/tree_wave_dt.vs.hlsl | 67 + gamedata/shaders/r1/tree_wave_point.vs.hlsl | 41 + gamedata/shaders/r1/tree_wave_spot.vs.hlsl | 41 + gamedata/shaders/r1/vert.ps.hlsl | 19 + gamedata/shaders/r1/vert.vs.hlsl | 29 + gamedata/shaders/r1/vert_dt.ps.hlsl | 24 + gamedata/shaders/r1/vert_dt.vs.hlsl | 35 + gamedata/shaders/r1/vert_l.ps.hlsl | 12 + gamedata/shaders/r1/vert_l.vs.hlsl | 22 + gamedata/shaders/r1/vert_point.vs.hlsl | 13 + gamedata/shaders/r1/vert_spot.vs.hlsl | 13 + gamedata/shaders/r1/water.ps.hlsl | 56 + gamedata/shaders/r1/water.vs.hlsl | 76 + gamedata/shaders/r1/waterd.ps.hlsl | 30 + gamedata/shaders/r1/waterd.vs.hlsl | 27 + gamedata/shaders/r1/wmark.ps.hlsl | 20 + gamedata/shaders/r1/wmark.vs.hlsl | 65 + gamedata/shaders/r1/wmark_point.vs.hlsl | 15 + gamedata/shaders/r1/wmark_spot.vs.hlsl | 15 + gamedata/shaders/r1/wmarkmult.ps.hlsl | 15 + gamedata/shaders/r1/yuv2rgb.ps.hlsl | 25 + gamedata/shaders/r2/.lua | 38 + gamedata/shaders/r2/accum_base.ps.hlsl | 51 + gamedata/shaders/r2/accum_emissive.ps.hlsl | 6 + gamedata/shaders/r2/accum_emissivel.ps.hlsl | 6 + gamedata/shaders/r2/accum_indirect.ps.hlsl | 22 + gamedata/shaders/r2/accum_mask.vs.hlsl | 7 + gamedata/shaders/r2/accum_sun.ps.hlsl | 44 + gamedata/shaders/r2/accum_sun_mask.ps.hlsl | 11 + gamedata/shaders/r2/accum_volume.vs.hlsl | 20 + gamedata/shaders/r2/accum_volumetric.lua | 12 + gamedata/shaders/r2/accum_volumetric.ps.hlsl | 76 + gamedata/shaders/r2/accum_volumetric.vs.hlsl | 32 + .../r2/accum_volumetric_sun_cascade.lua | 10 + .../r2/accum_volumetric_sun_cascade.ps.hlsl | 108 + gamedata/shaders/r2/avg4.ps.hlsl | 26 + gamedata/shaders/r2/base_lplanes.ps.hlsl | 17 + gamedata/shaders/r2/base_lplanes.vs.hlsl | 24 + gamedata/shaders/r2/base_lplanes_fft.ps.hlsl | 33 + gamedata/shaders/r2/bloom_build.ps.hlsl | 26 + gamedata/shaders/r2/bloom_filter.ps.hlsl | 51 + gamedata/shaders/r2/bloom_filter_f.ps.hlsl | 21 + gamedata/shaders/r2/bloom_luminance_1.ps.hlsl | 39 + gamedata/shaders/r2/bloom_luminance_2.ps.hlsl | 73 + gamedata/shaders/r2/bloom_luminance_3.ps.hlsl | 84 + .../shaders/r2/chromatic_aberration.ps.hlsl | 15 + gamedata/shaders/r2/clouds.lua | 9 + gamedata/shaders/r2/clouds.ps.hlsl | 20 + gamedata/shaders/r2/clouds.vs.hlsl | 31 + gamedata/shaders/r2/combine_1.ps.hlsl | 63 + gamedata/shaders/r2/combine_1.vs.hlsl | 22 + gamedata/shaders/r2/combine_2.ps.hlsl | 48 + gamedata/shaders/r2/combine_volumetric.lua | 8 + .../shaders/r2/combine_volumetric.ps.hlsl | 8 + gamedata/shaders/r2/common.hlsli | 350 ++ gamedata/shaders/r2/copy.ps.hlsl | 7 + gamedata/shaders/r2/copy_p.ps.hlsl | 7 + gamedata/shaders/r2/deffer_base.ps.hlsl | 33 + gamedata/shaders/r2/deffer_base.vs.hlsl | 31 + gamedata/shaders/r2/deffer_detail.vs.hlsl | 81 + gamedata/shaders/r2/deffer_impl.ps.hlsl | 52 + gamedata/shaders/r2/deffer_lod.vs.hlsl | 53 + gamedata/shaders/r2/deffer_model.vs.hlsl | 62 + gamedata/shaders/r2/deffer_particle.ps.hlsl | 27 + gamedata/shaders/r2/deffer_particle.vs.hlsl | 37 + gamedata/shaders/r2/depth.ps.hlsl | 7 + gamedata/shaders/r2/depth_downs.ps.hlsl | 34 + gamedata/shaders/r2/details_lod.lua | 8 + gamedata/shaders/r2/distort.lua | 7 + gamedata/shaders/r2/distort.ps.hlsl | 20 + gamedata/shaders/r2/dof.hlsli | 202 + gamedata/shaders/r2/dumb.ps.hlsl | 7 + gamedata/shaders/r2/dumb.vs.hlsl | 15 + gamedata/shaders/r2/editor.vs.hlsl | 19 + gamedata/shaders/r2/effects_lightplanes.lua | 22 + gamedata/shaders/r2/effects_sun.lua | 6 + gamedata/shaders/r2/effects_sun.vs.hlsl | 28 + gamedata/shaders/r2/effects_wallmarkblend.lua | 10 + gamedata/shaders/r2/effects_wallmarkmult.lua | 10 + gamedata/shaders/r2/effects_wallmarkset.lua | 9 + gamedata/shaders/r2/effects_water.lua | 47 + gamedata/shaders/r2/effects_waterryaska.lua | 47 + gamedata/shaders/r2/effects_waterstuden.lua | 47 + gamedata/shaders/r2/fencode.hlsli | 32 + gamedata/shaders/r2/font2.ps.hlsl | 18 + gamedata/shaders/r2/forward_base.ps.hlsl | 47 + gamedata/shaders/r2/fxaa.hlsli | 1308 +++++ gamedata/shaders/r2/fxaa_luma.ps.hlsl | 13 + gamedata/shaders/r2/fxaa_main.ps.hlsl | 33 + gamedata/shaders/r2/fxaa_main.vs.hlsl | 25 + gamedata/shaders/r2/hmodel.hlsli | 47 + gamedata/shaders/r2/hmodel_f.hlsli | 65 + gamedata/shaders/r2/hud3d.ps.hlsl | 13 + gamedata/shaders/r2/hud3d.vs.hlsl | 25 + gamedata/shaders/r2/hud_crosshair.lua | 6 + gamedata/shaders/r2/hud_font.lua | 7 + gamedata/shaders/r2/hud_font.ps.hlsl | 15 + gamedata/shaders/r2/hud_font2.lua | 7 + gamedata/shaders/r2/hud_movie.lua | 7 + gamedata/shaders/r2/hud_p3d.lua | 7 + gamedata/shaders/r2/lmodel.hlsli | 58 + gamedata/shaders/r2/lod.ps.hlsl | 32 + gamedata/shaders/r2/lod.vs.hlsl | 47 + gamedata/shaders/r2/mblur.hlsli | 46 + .../shaders/r2/model_clockarrow_h.ps.hlsl | 44 + .../shaders/r2/model_clockarrow_m.ps.hlsl | 44 + .../shaders/r2/model_clockarrow_s.ps.hlsl | 44 + .../shaders/r2/model_compassarrow.ps.hlsl | 44 + gamedata/shaders/r2/model_compscreen.ps.hlsl | 52 + gamedata/shaders/r2/model_def_lplanes.vs.hlsl | 67 + gamedata/shaders/r2/model_def_lq.ps.hlsl | 20 + gamedata/shaders/r2/model_def_lq.vs.hlsl | 68 + .../shaders/r2/model_digiclock_hh.ps.hlsl | 49 + .../shaders/r2/model_digiclock_hl.ps.hlsl | 49 + .../shaders/r2/model_digiclock_mh.ps.hlsl | 49 + .../shaders/r2/model_digiclock_ml.ps.hlsl | 49 + gamedata/shaders/r2/model_distort.vs.hlsl | 67 + gamedata/shaders/r2/model_distort2t.vs.hlsl | 69 + .../shaders/r2/model_distort4ghost.vs.hlsl | 70 + .../shaders/r2/model_distort4glass.vs.hlsl | 69 + gamedata/shaders/r2/model_distort_inv.vs.hlsl | 67 + gamedata/shaders/r2/model_env_lq.ps.hlsl | 24 + gamedata/shaders/r2/model_env_lq.vs.hlsl | 70 + gamedata/shaders/r2/model_exohealth.ps.hlsl | 46 + gamedata/shaders/r2/model_exoscreen.ps.hlsl | 31 + .../r2/model_green_conditionbar.ps.hlsl | 35 + .../shaders/r2/model_green_energybar.ps.hlsl | 36 + gamedata/shaders/r2/model_pda_screen.ps.hlsl | 58 + gamedata/shaders/r2/model_scope_gauss.ps.hlsl | 78 + gamedata/shaders/r2/model_scope_lense.ps.hlsl | 69 + gamedata/shaders/r2/model_scope_lense.vs.hlsl | 55 + .../shaders/r2/model_scope_lense_lerp.ps.hlsl | 54 + .../r2/model_scope_lense_night.ps.hlsl | 45 + .../r2/model_tricolor_conditionbar.ps.hlsl | 24 + gamedata/shaders/r2/models_clockarrow_h.lua | 12 + .../shaders/r2/models_clockarrow_h_screen.lua | 12 + gamedata/shaders/r2/models_clockarrow_m.lua | 12 + .../shaders/r2/models_clockarrow_m_screen.lua | 12 + gamedata/shaders/r2/models_clockarrow_s.lua | 12 + .../shaders/r2/models_clockarrow_s_screen.lua | 12 + gamedata/shaders/r2/models_collimator.lua | 10 + gamedata/shaders/r2/models_collimsight.lua | 9 + gamedata/shaders/r2/models_compass_arrow.lua | 12 + .../r2/models_compass_arrow_screen.lua | 12 + gamedata/shaders/r2/models_compscreen.lua | 13 + gamedata/shaders/r2/models_condition.lua | 13 + .../shaders/r2/models_digiclock_hh_screen.lua | 14 + .../shaders/r2/models_digiclock_hl_screen.lua | 14 + .../shaders/r2/models_digiclock_mh_screen.lua | 14 + .../shaders/r2/models_digiclock_ml_screen.lua | 14 + gamedata/shaders/r2/models_energy_gauss.lua | 13 + gamedata/shaders/r2/models_exohealth.lua | 13 + gamedata/shaders/r2/models_exoscreen01.lua | 9 + gamedata/shaders/r2/models_laserray.lua | 9 + gamedata/shaders/r2/models_lense_scope.lua | 11 + .../r2/models_lfo_light_dot_weapons.lua | 9 + gamedata/shaders/r2/models_lightplanes.lua | 9 + gamedata/shaders/r2/models_metallreflect.lua | 44 + gamedata/shaders/r2/models_pautina.lua | 31 + gamedata/shaders/r2/models_pda.lua | 14 + gamedata/shaders/r2/models_reflex_reticle.lua | 9 + gamedata/shaders/r2/models_selflight.lua | 13 + gamedata/shaders/r2/models_selflight_det.lua | 13 + gamedata/shaders/r2/models_selflightl.lua | 13 + gamedata/shaders/r2/models_xanomaly.lua | 21 + gamedata/shaders/r2/models_xdistort.lua | 21 + gamedata/shaders/r2/models_xdistortcolor.lua | 21 + gamedata/shaders/r2/models_xdistortcolorl.lua | 21 + .../shaders/r2/models_xdistortcolorlinv.lua | 21 + gamedata/shaders/r2/models_xdistortinv.lua | 21 + gamedata/shaders/r2/models_xglass.lua | 22 + gamedata/shaders/r2/models_xglass2.lua | 39 + gamedata/shaders/r2/models_xlens.lua | 39 + gamedata/shaders/r2/models_xmonolith.lua | 38 + gamedata/shaders/r2/models_xwindows.lua | 38 + gamedata/shaders/r2/models_zoom.lua | 16 + gamedata/shaders/r2/models_zoom_gauss.lua | 16 + gamedata/shaders/r2/models_zoom_lerp.lua | 16 + gamedata/shaders/r2/models_zoomnight.lua | 16 + gamedata/shaders/r2/parallax_mark.ps.hlsl | 100 + gamedata/shaders/r2/parallax_mark.vs.hlsl | 49 + gamedata/shaders/r2/particle-clip.vs.hlsl | 28 + gamedata/shaders/r2/particle.ps.hlsl | 42 + gamedata/shaders/r2/particle.vs.hlsl | 39 + gamedata/shaders/r2/particle2t.ps.hlsl | 19 + gamedata/shaders/r2/particle_add.ps.hlsl | 40 + .../shaders/r2/particle_alphaonly.ps.hlsl | 13 + gamedata/shaders/r2/particle_distort.ps.hlsl | 34 + gamedata/shaders/r2/particle_s-aadd.ps.hlsl | 18 + gamedata/shaders/r2/particle_s-add.ps.hlsl | 17 + gamedata/shaders/r2/particle_s-blend.ps.hlsl | 17 + gamedata/shaders/r2/particle_s-mul.ps.hlsl | 16 + gamedata/shaders/r2/particles_add.lua | 10 + gamedata/shaders/r2/particles_xadd.lua | 23 + gamedata/shaders/r2/particles_xdistort.lua | 11 + gamedata/shaders/r2/pnv.hlsli | 57 + gamedata/shaders/r2/portal.lua | 7 + gamedata/shaders/r2/portal.ps.hlsl | 6 + gamedata/shaders/r2/portal.vs.hlsl | 27 + gamedata/shaders/r2/postprocess.lua | 23 + gamedata/shaders/r2/postprocess.ps.hlsl | 34 + gamedata/shaders/r2/postprocess_cm.ps.hlsl | 44 + gamedata/shaders/r2/saturation.ps.hlsl | 15 + gamedata/shaders/r2/selflight.lua | 9 + gamedata/shaders/r2/selflight2.lua | 13 + gamedata/shaders/r2/shadow.hlsli | 252 + gamedata/shaders/r2/shadow_base.ps.hlsl | 15 + gamedata/shaders/r2/shadow_base.vs.hlsl | 22 + gamedata/shaders/r2/shadow_lod.vs.hlsl | 28 + gamedata/shaders/r2/shadow_model.vs.hlsl | 58 + gamedata/shaders/r2/shared/cloudconfig.hlsli | 11 + gamedata/shaders/r2/shared/common.hlsli | 66 + gamedata/shaders/r2/shared/waterconfig.hlsli | 55 + gamedata/shaders/r2/shared/watermove.hlsli | 30 + gamedata/shaders/r2/shared/wmark.hlsli | 24 + gamedata/shaders/r2/simple.ps.hlsl | 12 + gamedata/shaders/r2/simple.vs.hlsl | 17 + gamedata/shaders/r2/simple_color.ps.hlsl | 6 + gamedata/shaders/r2/simple_color.vs.hlsl | 19 + gamedata/shaders/r2/skin.hlsli | 225 + gamedata/shaders/r2/sky.ps.hlsl | 20 + gamedata/shaders/r2/sky.vs.hlsl | 27 + gamedata/shaders/r2/sload.hlsli | 155 + gamedata/shaders/r2/smaa.hlsli | 1139 ++++ gamedata/shaders/r2/smaa_bweight_calc.ps.hlsl | 28 + gamedata/shaders/r2/smaa_edge_detect.ps.hlsl | 29 + .../shaders/r2/smaa_neighbour_blend.ps.hlsl | 22 + gamedata/shaders/r2/ssao.ps.hlsl | 107 + gamedata/shaders/r2/ssao_blur.ps.hlsl | 38 + gamedata/shaders/r2/ssao_calc.ps.hlsl | 24 + gamedata/shaders/r2/stub_default.ps.hlsl | 13 + .../r2/stub_notransform_t_font.vs.hlsl | 27 + gamedata/shaders/r2/vert.ps.hlsl | 18 + gamedata/shaders/r2/vert.vs.hlsl | 52 + gamedata/shaders/r2/vignette.ps.hlsl | 9 + gamedata/shaders/r2/water.ps.hlsl | 95 + gamedata/shaders/r2/water.vs.hlsl | 88 + gamedata/shaders/r2/water_soft.ps.hlsl | 2 + gamedata/shaders/r2/water_soft.vs.hlsl | 2 + gamedata/shaders/r2/waterd.ps.hlsl | 50 + gamedata/shaders/r2/waterd.vs.hlsl | 51 + gamedata/shaders/r2/waterd_soft.ps.hlsl | 2 + gamedata/shaders/r2/waterd_soft.vs.hlsl | 2 + gamedata/shaders/r2/wmark.vs.hlsl | 30 + gamedata/shaders/r2/yuv2rgb.ps.hlsl | 25 + gamedata/shaders/shared/cloudconfig.hlsli | 11 + gamedata/shaders/shared/common.hlsli | 58 + gamedata/shaders/shared/waterconfig.hlsli | 55 + gamedata/shaders/shared/watermove.hlsli | 30 + gamedata/shaders/shared/wmark.hlsli | 24 + gamedata/shaders/start_rename.ps1 | 30 + gamedata/sounds/device/torch_click.ogg | 3 + gamedata/sounds/device/torch_click_off.ogg | 3 + gamedata/textures/ed/bar/add.dds | 3 + gamedata/textures/ed/bar/aimap.dds | 3 + gamedata/textures/ed/bar/angle.dds | 3 + gamedata/textures/ed/bar/arcball.dds | 3 + gamedata/textures/ed/bar/asnap.dds | 3 + gamedata/textures/ed/bar/axismove.dds | 3 + gamedata/textures/ed/bar/axisx.dds | 3 + gamedata/textures/ed/bar/axisy.dds | 3 + gamedata/textures/ed/bar/axisz.dds | 3 + gamedata/textures/ed/bar/axiszx.dds | 3 + gamedata/textures/ed/bar/build_all.dds | 3 + gamedata/textures/ed/bar/cform.dds | 3 + gamedata/textures/ed/bar/cslocal.dds | 3 + gamedata/textures/ed/bar/delete.dds | 3 + gamedata/textures/ed/bar/eye.dds | 3 + gamedata/textures/ed/bar/favorite_off.dds | 3 + gamedata/textures/ed/bar/favorite_on.dds | 3 + gamedata/textures/ed/bar/freefly.dds | 3 + gamedata/textures/ed/bar/ggraph.dds | 3 + gamedata/textures/ed/bar/grid.dds | 3 + gamedata/textures/ed/bar/gsnap.dds | 3 + gamedata/textures/ed/bar/menu.dds | 3 + gamedata/textures/ed/bar/move.dds | 3 + gamedata/textures/ed/bar/movetosnap.dds | 3 + gamedata/textures/ed/bar/msnap.dds | 3 + gamedata/textures/ed/bar/new.dds | 3 + gamedata/textures/ed/bar/nsnap.dds | 3 + gamedata/textures/ed/bar/nuscale.dds | 3 + gamedata/textures/ed/bar/open.dds | 3 + gamedata/textures/ed/bar/open_gamedata.dds | 3 + gamedata/textures/ed/bar/osnap.dds | 3 + gamedata/textures/ed/bar/planemove.dds | 3 + gamedata/textures/ed/bar/play_clean_game.dds | 3 + gamedata/textures/ed/bar/play_in_editor.dds | 3 + gamedata/textures/ed/bar/play_pc.dds | 3 + gamedata/textures/ed/bar/redo.dds | 3 + gamedata/textures/ed/bar/reload_configs.dds | 3 + gamedata/textures/ed/bar/rotate.dds | 3 + gamedata/textures/ed/bar/save.dds | 3 + gamedata/textures/ed/bar/save_xr.dds | 3 + gamedata/textures/ed/bar/scale.dds | 3 + gamedata/textures/ed/bar/scale_grid.dds | 3 + gamedata/textures/ed/bar/select.dds | 3 + gamedata/textures/ed/bar/source/aimap.png | Bin 0 -> 55673 bytes gamedata/textures/ed/bar/source/angle.png | Bin 0 -> 671 bytes gamedata/textures/ed/bar/source/angle.svg | 4 + .../textures/ed/bar/source/btn_folderopen.bmp | Bin 0 -> 824 bytes gamedata/textures/ed/bar/source/buildall.png | Bin 0 -> 931 bytes gamedata/textures/ed/bar/source/camera.svg | 4 + gamedata/textures/ed/bar/source/cform.png | Bin 0 -> 838 bytes .../textures/ed/bar/source/game_graph.png | Bin 0 -> 475 bytes gamedata/textures/ed/bar/source/globe.svg | 5 + gamedata/textures/ed/bar/source/grid.png | Bin 0 -> 619 bytes gamedata/textures/ed/bar/source/grid.svg | 7 + gamedata/textures/ed/bar/source/menu.png | Bin 0 -> 546 bytes gamedata/textures/ed/bar/source/menu.svg | 5 + gamedata/textures/ed/bar/source/move.png | Bin 0 -> 625 bytes gamedata/textures/ed/bar/source/new.bmp | Bin 0 -> 774 bytes gamedata/textures/ed/bar/source/open.bmp | Bin 0 -> 774 bytes gamedata/textures/ed/bar/source/pilot.svg | 1 + .../textures/ed/bar/source/playcleangame.png | Bin 0 -> 3241 bytes .../ed/bar/source/playineditorplay.png | Bin 0 -> 3171 bytes gamedata/textures/ed/bar/source/playpc.png | Bin 0 -> 3213 bytes .../ed/bar/source/prop_favoriteoff.png | Bin 0 -> 715 bytes .../ed/bar/source/prop_favoriteon.png | Bin 0 -> 775 bytes gamedata/textures/ed/bar/source/quad.svg | 5 + gamedata/textures/ed/bar/source/rcrefresh.bmp | Bin 0 -> 822 bytes gamedata/textures/ed/bar/source/rotate.png | Bin 0 -> 757 bytes gamedata/textures/ed/bar/source/rotate.svg | 6 + gamedata/textures/ed/bar/source/save.bmp | Bin 0 -> 774 bytes .../ed/bar/source/scale-grid-snap.svg | 5 + gamedata/textures/ed/bar/source/scale.png | Bin 0 -> 653 bytes gamedata/textures/ed/bar/source/scale.svg | 6 + .../textures/ed/bar/source/scale_grid.png | Bin 0 -> 628 bytes gamedata/textures/ed/bar/source/select.png | Bin 0 -> 721 bytes gamedata/textures/ed/bar/source/select.svg | 3 + .../ed/bar/source/space_restrictor.png | Bin 0 -> 518 bytes gamedata/textures/ed/bar/source/speed.svg | 8 + gamedata/textures/ed/bar/source/square.svg | 3 + .../textures/ed/bar/source/surface-snap.svg | 9 + .../textures/ed/bar/source/terminated.png | Bin 0 -> 3076 bytes .../ed/bar/source/toolbarleftgroup.png | Bin 0 -> 2129 bytes .../ed/bar/source/toolbarmiddlegroup.png | Bin 0 -> 1898 bytes .../ed/bar/source/toolbarrightgroup.png | Bin 0 -> 2157 bytes gamedata/textures/ed/bar/source/translate.svg | 8 + .../ed/bar/source/translaterotate2d.svg | 4 + .../ed/bar/source/translaterotate3d.svg | 3 + gamedata/textures/ed/bar/srestrictor.dds | 3 + gamedata/textures/ed/bar/terminated.dds | 3 + gamedata/textures/ed/bar/undo.dds | 3 + gamedata/textures/ed/bar/validate.dds | 3 + gamedata/textures/ed/bar/viewb.dds | 3 + gamedata/textures/ed/bar/viewfront.dds | 3 + gamedata/textures/ed/bar/viewleft.dds | 3 + gamedata/textures/ed/bar/viewreset.dds | 3 + gamedata/textures/ed/bar/viewright.dds | 3 + gamedata/textures/ed/bar/viewtop.dds | 3 + gamedata/textures/ed/bar/vsnap.dds | 3 + gamedata/textures/ed/bar/weatherprop.dds | 3 + gamedata/textures/ed/bar/weatherprop.thm | Bin 0 -> 138 bytes gamedata/textures/ed/bar/win_header_close.dds | 3 + gamedata/textures/ed/bar/win_header_logo.dds | 3 + gamedata/textures/ed/bar/win_header_max.dds | 3 + gamedata/textures/ed/bar/win_header_min.dds | 3 + .../textures/ed/bar/win_header_restore.dds | 3 + gamedata/textures/ed/bar/win_preferences.dds | 3 + gamedata/textures/ed/bar/x.dds | 3 + gamedata/textures/ed/bar/y.dds | 3 + gamedata/textures/ed/bar/z.dds | 3 + gamedata/textures/ed/bar/zoom.dds | 3 + gamedata/textures/ed/bar/zoomsel.dds | 3 + gamedata/textures/ed/bar/zx.dds | 3 + .../textures/ed/content_browser/backup.dds | 3 + gamedata/textures/ed/content_browser/cmd.dds | 3 + .../textures/ed/content_browser/dialogs.dds | 3 + gamedata/textures/ed/content_browser/dll.dds | 3 + .../textures/ed/content_browser/env_mod.dds | 3 + gamedata/textures/ed/content_browser/exe.dds | 3 + gamedata/textures/ed/content_browser/file.dds | 3 + .../textures/ed/content_browser/folder.dds | 3 + .../textures/ed/content_browser/image.dds | 3 + .../textures/ed/content_browser/level.dds | 3 + gamedata/textures/ed/content_browser/log.dds | 3 + .../textures/ed/content_browser/multi.dds | 3 + .../textures/ed/content_browser/object.dds | 3 + gamedata/textures/ed/content_browser/ogg.dds | 3 + .../textures/ed/content_browser/search.dds | 3 + gamedata/textures/ed/content_browser/seq.dds | 3 + gamedata/textures/ed/content_browser/tga.dds | 3 + gamedata/textures/ed/content_browser/thm.dds | 3 + gamedata/textures/ed/content_browser/wav.dds | 3 + gamedata/textures/ed/ed_actor.dds | 3 + gamedata/textures/ed/ed_actor.thm | Bin 0 -> 138 bytes gamedata/textures/ed/ed_ai_arrows_01.dds | 3 + gamedata/textures/ed/ed_ai_arrows_01.thm | Bin 0 -> 138 bytes gamedata/textures/ed/ed_ai_arrows_02.dds | 3 + gamedata/textures/ed/ed_ai_arrows_02.thm | Bin 0 -> 138 bytes gamedata/textures/ed/ed_ai_arrows_03.dds | 3 + gamedata/textures/ed/ed_ai_arrows_03.thm | Bin 0 -> 138 bytes gamedata/textures/ed/ed_axis.dds | 3 + gamedata/textures/ed/ed_axis.thm | Bin 0 -> 138 bytes gamedata/textures/ed/ed_dummy_bump#.dds | 3 + gamedata/textures/ed/ed_dummy_bump.dds | 3 + gamedata/textures/ed/ed_dummy_bump.thm | Bin 0 -> 138 bytes gamedata/textures/ed/ed_mp.dds | 3 + gamedata/textures/ed/ed_mp.thm | Bin 0 -> 138 bytes gamedata/textures/ed/ed_nodata.dds | 3 + .../textures/ed/ed_not_existing_texture.dds | 3 + .../textures/ed/ed_not_existing_texture.thm | Bin 0 -> 138 bytes gamedata/textures/ed/plugins/lua.dds | 3 + gamedata/textures/ed/plugins/python.dds | 3 + gamedata/textures/fx/fx_noise2.dds | 3 + gamedata/textures/fx/fx_noise2.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_acid_mine.dds | 3 + gamedata/textures/grad/grad_acid_mine.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_acidic.dds | 3 + gamedata/textures/grad/grad_acidic.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_acidic_mine.dds | 3 + gamedata/textures/grad/grad_acidic_mine.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_electra_mine.dds | 3 + gamedata/textures/grad/grad_electra_mine.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_electric_mine.dds | 3 + gamedata/textures/grad/grad_electric_mine.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_nightvision_1.dds | 3 + gamedata/textures/grad/grad_nightvision_1.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_nightvision_2.dds | 3 + gamedata/textures/grad/grad_nightvision_2.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_nightvision_3.dds | 3 + gamedata/textures/grad/grad_nightvision_3.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_psi.dds | 3 + gamedata/textures/grad/grad_psi.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_psy.dds | 3 + gamedata/textures/grad/grad_psy.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_radiation.dds | 3 + gamedata/textures/grad/grad_radiation.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_rainbow.dds | 3 + gamedata/textures/grad/grad_rainbow.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_steam_mine.dds | 3 + gamedata/textures/grad/grad_steam_mine.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_thermal.dds | 3 + gamedata/textures/grad/grad_thermal.thm | Bin 0 -> 138 bytes gamedata/textures/grad/grad_thermal_mine.dds | 3 + gamedata/textures/grad/grad_thermal_mine.thm | Bin 0 -> 138 bytes .../internal_firetransferfunction.dds | 3 + .../textures/intro/intro_no_start_picture.dds | 3 + .../textures/lights/lights_blamplight.dds | 3 + .../textures/lights/lights_blamplight.thm | Bin 0 -> 138 bytes gamedata/textures/lights/lights_fanblade3.dds | 3 + gamedata/textures/lights/lights_fanblade3.thm | Bin 0 -> 138 bytes gamedata/textures/mtl/mtl_pod_green_bump.dds | 3 + gamedata/textures/shaders/blue_noise_3x3.dds | 3 + gamedata/textures/shaders/r2_material.dds | 3 + gamedata/textures/shaders/shaders_sunmask.dds | 3 + .../shaders/smaa/smaa_area_tex_dx10.dds | 3 + .../shaders/smaa/smaa_area_tex_dx9.dds | 3 + .../textures/shaders/smaa/smaa_search_tex.dds | 3 + gamedata/textures/shaders/snowmask/snow.dds | 3 + gamedata/textures/shaders/snowmask/snow.thm | Bin 0 -> 164 bytes .../textures/shaders/snowmask/snow_bump#.dds | 3 + .../textures/shaders/snowmask/snow_bump.dds | 3 + .../textures/shaders/snowmask/snow_bump.thm | Bin 0 -> 163 bytes gamedata/textures/ui/ui_flags.dds | 3 + gamedata/textures/ui/ui_grid_alt.dds | 3 + gamedata/textures/ui/ui_ix-ray_team_logo.dds | 3 + gamedata/textures/ui/ui_ix-ray_team_logo.thm | Bin 0 -> 138 bytes gamedata/textures/ui/ui_ixray_ex.dds | 3 + gamedata/textures/ui/ui_ixray_ex.thm | Bin 0 -> 138 bytes .../textures/ui/ui_ixray_mutant_portrets.dds | 3 + .../textures/ui/ui_ixray_mutant_portrets.thm | Bin 0 -> 138 bytes gamedata/textures/ui/ui_microphone.dds | 3 + gamedata/textures/ui/ui_microphone.thm | Bin 0 -> 138 bytes gamedata/textures/ui/ui_voice.dds | 3 + gamedata/textures/ui/ui_voice.thm | Bin 0 -> 138 bytes gamedata/textures/water/water_caustic.01.dds | 3 + gamedata/textures/water/water_caustic.02.dds | 3 + gamedata/textures/water/water_caustic.03.dds | 3 + gamedata/textures/water/water_caustic.04.dds | 3 + gamedata/textures/water/water_caustic.05.dds | 3 + gamedata/textures/water/water_caustic.06.dds | 3 + gamedata/textures/water/water_caustic.07.dds | 3 + gamedata/textures/water/water_caustic.08.dds | 3 + gamedata/textures/water/water_caustic.09.dds | 3 + gamedata/textures/water/water_caustic.10.dds | 3 + gamedata/textures/water/water_caustic.11.dds | 3 + gamedata/textures/water/water_caustic.12.dds | 3 + gamedata/textures/water/water_caustic.13.dds | 3 + gamedata/textures/water/water_caustic.14.dds | 3 + gamedata/textures/water/water_caustic.15.dds | 3 + gamedata/textures/water/water_caustic.16.dds | 3 + gamedata/textures/water/water_caustic.17.dds | 3 + gamedata/textures/water/water_caustic.18.dds | 3 + gamedata/textures/water/water_caustic.19.dds | 3 + gamedata/textures/water/water_caustic.20.dds | 3 + gamedata/textures/water/water_caustic.21.dds | 3 + gamedata/textures/water/water_caustic.22.dds | 3 + gamedata/textures/water/water_caustic.23.dds | 3 + gamedata/textures/water/water_caustic.24.dds | 3 + gamedata/textures/water/water_caustic.25.dds | 3 + gamedata/textures/water/water_caustic.26.dds | 3 + gamedata/textures/water/water_caustic.27.dds | 3 + gamedata/textures/water/water_caustic.28.dds | 3 + gamedata/textures/water/water_caustic.29.dds | 3 + gamedata/textures/water/water_caustic.30.dds | 3 + gamedata/textures/water/water_caustic.31.dds | 3 + gamedata/textures/water/water_caustic.32.dds | 3 + gamedata/textures/water/water_caustic.dds | 3 + gamedata/textures/water/water_caustic.seq | 33 + gamedata/textures/water/water_caustic.thm | Bin 0 -> 138 bytes ixr_addons/e4s/addon.init | 0 1473 files changed, 251771 insertions(+) create mode 100644 gamedata/anims/camera_effects/actor_move/crouch_down.anm create mode 100644 gamedata/anims/camera_effects/actor_move/crouch_down_aim.anm create mode 100644 gamedata/anims/camera_effects/actor_move/crouch_up.anm create mode 100644 gamedata/anims/camera_effects/actor_move/crouch_up_aim.anm create mode 100644 gamedata/anims/camera_effects/actor_move/down.anm create mode 100644 gamedata/anims/camera_effects/actor_move/go_back.anm create mode 100644 gamedata/anims/camera_effects/actor_move/go_front.anm create mode 100644 gamedata/anims/camera_effects/actor_move/jump.anm create mode 100644 gamedata/anims/camera_effects/actor_move/landing.anm create mode 100644 gamedata/anims/camera_effects/actor_move/landing2.anm create mode 100644 gamedata/anims/camera_effects/actor_move/landingold.anm create mode 100644 gamedata/anims/camera_effects/actor_move/strafe_left.anm create mode 100644 gamedata/anims/camera_effects/actor_move/strafe_left_aim.anm create mode 100644 gamedata/anims/camera_effects/actor_move/strafe_right.anm create mode 100644 gamedata/anims/camera_effects/actor_move/strafe_right_aim.anm create mode 100644 gamedata/configs/engine_external.ltx create mode 100644 gamedata/configs/environment/mod_environment_ixray.ltx create mode 100644 gamedata/configs/fonts.ltx create mode 100644 gamedata/configs/game_global.ltx create mode 100644 gamedata/configs/ixray_settings/default_controls.ltx create mode 100644 gamedata/configs/ixray_settings/default_settings.ltx create mode 100644 gamedata/configs/ixray_settings/rspec_default.ltx create mode 100644 gamedata/configs/ixray_settings/rspec_extreme.ltx create mode 100644 gamedata/configs/ixray_settings/rspec_high.ltx create mode 100644 gamedata/configs/ixray_settings/rspec_low.ltx create mode 100644 gamedata/configs/ixray_settings/rspec_minimum.ltx create mode 100644 gamedata/configs/ixray_settings/rspec_ultra.ltx create mode 100644 gamedata/configs/localization.ltx create mode 100644 gamedata/configs/mod_script_ixray.ltx create mode 100644 gamedata/configs/mod_system_ixray.ltx create mode 100644 gamedata/configs/mp/artefacthunt_game.ltx create mode 100644 gamedata/configs/mp/capturetheartefact_game.ltx create mode 100644 gamedata/configs/mp/deathmatch_game.ltx create mode 100644 gamedata/configs/mp/teamdeathmatch_game.ltx create mode 100644 gamedata/configs/text/cze/st_achievement.xml create mode 100644 gamedata/configs/text/cze/st_characters.xml create mode 100644 gamedata/configs/text/cze/st_dialog_manager.xml create mode 100644 gamedata/configs/text/cze/st_dialogs.xml create mode 100644 gamedata/configs/text/cze/st_dialogs_jupiter.xml create mode 100644 gamedata/configs/text/cze/st_dialogs_pripyat.xml create mode 100644 gamedata/configs/text/cze/st_dialogs_zaton.xml create mode 100644 gamedata/configs/text/cze/st_generate_fnames.xml create mode 100644 gamedata/configs/text/cze/st_generate_snames.xml create mode 100644 gamedata/configs/text/cze/st_items_artefacts.xml create mode 100644 gamedata/configs/text/cze/st_items_equipment.xml create mode 100644 gamedata/configs/text/cze/st_items_outfit.xml create mode 100644 gamedata/configs/text/cze/st_items_quest.xml create mode 100644 gamedata/configs/text/cze/st_items_weapons.xml create mode 100644 gamedata/configs/text/cze/st_items_weapons_upgrades.xml create mode 100644 gamedata/configs/text/cze/st_land_names.xml create mode 100644 gamedata/configs/text/cze/st_mp_mapdesc.xml create mode 100644 gamedata/configs/text/cze/st_mp_speechmenu.xml create mode 100644 gamedata/configs/text/cze/st_mp_teamdesc.xml create mode 100644 gamedata/configs/text/cze/st_quests_general.xml create mode 100644 gamedata/configs/text/cze/st_quests_jupiter.xml create mode 100644 gamedata/configs/text/cze/st_quests_pripyat.xml create mode 100644 gamedata/configs/text/cze/st_quests_zaton.xml create mode 100644 gamedata/configs/text/cze/st_subtitles.xml create mode 100644 gamedata/configs/text/cze/ui_st_credits.xml create mode 100644 gamedata/configs/text/cze/ui_st_inventory.xml create mode 100644 gamedata/configs/text/cze/ui_st_ixray.xml create mode 100644 gamedata/configs/text/cze/ui_st_keybinding.xml create mode 100644 gamedata/configs/text/cze/ui_st_loadscreen.xml create mode 100644 gamedata/configs/text/cze/ui_st_mm.xml create mode 100644 gamedata/configs/text/cze/ui_st_mp.xml create mode 100644 gamedata/configs/text/cze/ui_st_other.xml create mode 100644 gamedata/configs/text/cze/ui_st_pda.xml create mode 100644 gamedata/configs/text/cze/ui_st_screen.xml create mode 100644 gamedata/configs/text/eng/st_achievement.xml create mode 100644 gamedata/configs/text/eng/st_characters.xml create mode 100644 gamedata/configs/text/eng/st_dialog_manager.xml create mode 100644 gamedata/configs/text/eng/st_dialogs.xml create mode 100644 gamedata/configs/text/eng/st_dialogs_jupiter.xml create mode 100644 gamedata/configs/text/eng/st_dialogs_pripyat.xml create mode 100644 gamedata/configs/text/eng/st_dialogs_zaton.xml create mode 100644 gamedata/configs/text/eng/st_generate_fnames.xml create mode 100644 gamedata/configs/text/eng/st_generate_snames.xml create mode 100644 gamedata/configs/text/eng/st_items_artefacts.xml create mode 100644 gamedata/configs/text/eng/st_items_equipment.xml create mode 100644 gamedata/configs/text/eng/st_items_outfit.xml create mode 100644 gamedata/configs/text/eng/st_items_quest.xml create mode 100644 gamedata/configs/text/eng/st_items_weapons.xml create mode 100644 gamedata/configs/text/eng/st_items_weapons_upgrades.xml create mode 100644 gamedata/configs/text/eng/st_land_names.xml create mode 100644 gamedata/configs/text/eng/st_mp_mapdesc.xml create mode 100644 gamedata/configs/text/eng/st_mp_speechmenu.xml create mode 100644 gamedata/configs/text/eng/st_mp_teamdesc.xml create mode 100644 gamedata/configs/text/eng/st_quests_general.xml create mode 100644 gamedata/configs/text/eng/st_quests_jupiter.xml create mode 100644 gamedata/configs/text/eng/st_quests_pripyat.xml create mode 100644 gamedata/configs/text/eng/st_quests_zaton.xml create mode 100644 gamedata/configs/text/eng/st_subtitles.xml create mode 100644 gamedata/configs/text/eng/ui_st_credits.xml create mode 100644 gamedata/configs/text/eng/ui_st_inventory.xml create mode 100644 gamedata/configs/text/eng/ui_st_ixray.xml create mode 100644 gamedata/configs/text/eng/ui_st_keybinding.xml create mode 100644 gamedata/configs/text/eng/ui_st_loadscreen.xml create mode 100644 gamedata/configs/text/eng/ui_st_mm.xml create mode 100644 gamedata/configs/text/eng/ui_st_mp.xml create mode 100644 gamedata/configs/text/eng/ui_st_other.xml create mode 100644 gamedata/configs/text/eng/ui_st_pda.xml create mode 100644 gamedata/configs/text/eng/ui_st_screen.xml create mode 100644 gamedata/configs/text/fra/st_achievement.xml create mode 100644 gamedata/configs/text/fra/st_characters.xml create mode 100644 gamedata/configs/text/fra/st_dialog_manager.xml create mode 100644 gamedata/configs/text/fra/st_dialogs.xml create mode 100644 gamedata/configs/text/fra/st_dialogs_jupiter.xml create mode 100644 gamedata/configs/text/fra/st_dialogs_pripyat.xml create mode 100644 gamedata/configs/text/fra/st_dialogs_zaton.xml create mode 100644 gamedata/configs/text/fra/st_generate_fnames.xml create mode 100644 gamedata/configs/text/fra/st_generate_snames.xml create mode 100644 gamedata/configs/text/fra/st_items_artefacts.xml create mode 100644 gamedata/configs/text/fra/st_items_equipment.xml create mode 100644 gamedata/configs/text/fra/st_items_outfit.xml create mode 100644 gamedata/configs/text/fra/st_items_quest.xml create mode 100644 gamedata/configs/text/fra/st_items_weapons.xml create mode 100644 gamedata/configs/text/fra/st_items_weapons_upgrades.xml create mode 100644 gamedata/configs/text/fra/st_land_names.xml create mode 100644 gamedata/configs/text/fra/st_mp_mapdesc.xml create mode 100644 gamedata/configs/text/fra/st_mp_speechmenu.xml create mode 100644 gamedata/configs/text/fra/st_mp_teamdesc.xml create mode 100644 gamedata/configs/text/fra/st_quests_general.xml create mode 100644 gamedata/configs/text/fra/st_quests_jupiter.xml create mode 100644 gamedata/configs/text/fra/st_quests_pripyat.xml create mode 100644 gamedata/configs/text/fra/st_quests_zaton.xml create mode 100644 gamedata/configs/text/fra/st_subtitles.xml create mode 100644 gamedata/configs/text/fra/ui_st_credits.xml create mode 100644 gamedata/configs/text/fra/ui_st_inventory.xml create mode 100644 gamedata/configs/text/fra/ui_st_ixray.xml create mode 100644 gamedata/configs/text/fra/ui_st_keybinding.xml create mode 100644 gamedata/configs/text/fra/ui_st_loadscreen.xml create mode 100644 gamedata/configs/text/fra/ui_st_mm.xml create mode 100644 gamedata/configs/text/fra/ui_st_mp.xml create mode 100644 gamedata/configs/text/fra/ui_st_other.xml create mode 100644 gamedata/configs/text/fra/ui_st_pda.xml create mode 100644 gamedata/configs/text/fra/ui_st_screen.xml create mode 100644 gamedata/configs/text/ger/st_achievement.xml create mode 100644 gamedata/configs/text/ger/st_characters.xml create mode 100644 gamedata/configs/text/ger/st_dialog_manager.xml create mode 100644 gamedata/configs/text/ger/st_dialogs.xml create mode 100644 gamedata/configs/text/ger/st_dialogs_jupiter.xml create mode 100644 gamedata/configs/text/ger/st_dialogs_pripyat.xml create mode 100644 gamedata/configs/text/ger/st_dialogs_zaton.xml create mode 100644 gamedata/configs/text/ger/st_generate_fnames.xml create mode 100644 gamedata/configs/text/ger/st_generate_snames.xml create mode 100644 gamedata/configs/text/ger/st_items_artefacts.xml create mode 100644 gamedata/configs/text/ger/st_items_equipment.xml create mode 100644 gamedata/configs/text/ger/st_items_outfit.xml create mode 100644 gamedata/configs/text/ger/st_items_quest.xml create mode 100644 gamedata/configs/text/ger/st_items_weapons.xml create mode 100644 gamedata/configs/text/ger/st_items_weapons_upgrades.xml create mode 100644 gamedata/configs/text/ger/st_land_names.xml create mode 100644 gamedata/configs/text/ger/st_mp_mapdesc.xml create mode 100644 gamedata/configs/text/ger/st_mp_speechmenu.xml create mode 100644 gamedata/configs/text/ger/st_mp_teamdesc.xml create mode 100644 gamedata/configs/text/ger/st_quests_general.xml create mode 100644 gamedata/configs/text/ger/st_quests_jupiter.xml create mode 100644 gamedata/configs/text/ger/st_quests_pripyat.xml create mode 100644 gamedata/configs/text/ger/st_quests_zaton.xml create mode 100644 gamedata/configs/text/ger/st_subtitles.xml create mode 100644 gamedata/configs/text/ger/ui_st_credits.xml create mode 100644 gamedata/configs/text/ger/ui_st_inventory.xml create mode 100644 gamedata/configs/text/ger/ui_st_ixray.xml create mode 100644 gamedata/configs/text/ger/ui_st_keybinding.xml create mode 100644 gamedata/configs/text/ger/ui_st_loadscreen.xml create mode 100644 gamedata/configs/text/ger/ui_st_mm.xml create mode 100644 gamedata/configs/text/ger/ui_st_mp.xml create mode 100644 gamedata/configs/text/ger/ui_st_other.xml create mode 100644 gamedata/configs/text/ger/ui_st_pda.xml create mode 100644 gamedata/configs/text/ger/ui_st_screen.xml create mode 100644 gamedata/configs/text/ita/st_achievement.xml create mode 100644 gamedata/configs/text/ita/st_characters.xml create mode 100644 gamedata/configs/text/ita/st_dialog_manager.xml create mode 100644 gamedata/configs/text/ita/st_dialogs.xml create mode 100644 gamedata/configs/text/ita/st_dialogs_jupiter.xml create mode 100644 gamedata/configs/text/ita/st_dialogs_pripyat.xml create mode 100644 gamedata/configs/text/ita/st_dialogs_zaton.xml create mode 100644 gamedata/configs/text/ita/st_generate_fnames.xml create mode 100644 gamedata/configs/text/ita/st_generate_snames.xml create mode 100644 gamedata/configs/text/ita/st_items_artefacts.xml create mode 100644 gamedata/configs/text/ita/st_items_equipment.xml create mode 100644 gamedata/configs/text/ita/st_items_outfit.xml create mode 100644 gamedata/configs/text/ita/st_items_quest.xml create mode 100644 gamedata/configs/text/ita/st_items_weapons.xml create mode 100644 gamedata/configs/text/ita/st_items_weapons_upgrades.xml create mode 100644 gamedata/configs/text/ita/st_land_names.xml create mode 100644 gamedata/configs/text/ita/st_mp_mapdesc.xml create mode 100644 gamedata/configs/text/ita/st_mp_speechmenu.xml create mode 100644 gamedata/configs/text/ita/st_mp_teamdesc.xml create mode 100644 gamedata/configs/text/ita/st_quests_general.xml create mode 100644 gamedata/configs/text/ita/st_quests_jupiter.xml create mode 100644 gamedata/configs/text/ita/st_quests_pripyat.xml create mode 100644 gamedata/configs/text/ita/st_quests_zaton.xml create mode 100644 gamedata/configs/text/ita/st_subtitles.xml create mode 100644 gamedata/configs/text/ita/ui_st_credits.xml create mode 100644 gamedata/configs/text/ita/ui_st_inventory.xml create mode 100644 gamedata/configs/text/ita/ui_st_ixray.xml create mode 100644 gamedata/configs/text/ita/ui_st_keybinding.xml create mode 100644 gamedata/configs/text/ita/ui_st_loadscreen.xml create mode 100644 gamedata/configs/text/ita/ui_st_mm.xml create mode 100644 gamedata/configs/text/ita/ui_st_mp.xml create mode 100644 gamedata/configs/text/ita/ui_st_other.xml create mode 100644 gamedata/configs/text/ita/ui_st_pda.xml create mode 100644 gamedata/configs/text/ita/ui_st_screen.xml create mode 100644 gamedata/configs/text/pol/st_achievement.xml create mode 100644 gamedata/configs/text/pol/st_characters.xml create mode 100644 gamedata/configs/text/pol/st_dialog_manager.xml create mode 100644 gamedata/configs/text/pol/st_dialogs.xml create mode 100644 gamedata/configs/text/pol/st_dialogs_jupiter.xml create mode 100644 gamedata/configs/text/pol/st_dialogs_pripyat.xml create mode 100644 gamedata/configs/text/pol/st_dialogs_zaton.xml create mode 100644 gamedata/configs/text/pol/st_generate_fnames.xml create mode 100644 gamedata/configs/text/pol/st_generate_snames.xml create mode 100644 gamedata/configs/text/pol/st_items_artefacts.xml create mode 100644 gamedata/configs/text/pol/st_items_equipment.xml create mode 100644 gamedata/configs/text/pol/st_items_outfit.xml create mode 100644 gamedata/configs/text/pol/st_items_quest.xml create mode 100644 gamedata/configs/text/pol/st_items_weapons.xml create mode 100644 gamedata/configs/text/pol/st_items_weapons_upgrades.xml create mode 100644 gamedata/configs/text/pol/st_land_names.xml create mode 100644 gamedata/configs/text/pol/st_mp_mapdesc.xml create mode 100644 gamedata/configs/text/pol/st_mp_speechmenu.xml create mode 100644 gamedata/configs/text/pol/st_mp_teamdesc.xml create mode 100644 gamedata/configs/text/pol/st_quests_general.xml create mode 100644 gamedata/configs/text/pol/st_quests_jupiter.xml create mode 100644 gamedata/configs/text/pol/st_quests_pripyat.xml create mode 100644 gamedata/configs/text/pol/st_quests_zaton.xml create mode 100644 gamedata/configs/text/pol/st_subtitles.xml create mode 100644 gamedata/configs/text/pol/ui_st_credits.xml create mode 100644 gamedata/configs/text/pol/ui_st_inventory.xml create mode 100644 gamedata/configs/text/pol/ui_st_ixray.xml create mode 100644 gamedata/configs/text/pol/ui_st_keybinding.xml create mode 100644 gamedata/configs/text/pol/ui_st_loadscreen.xml create mode 100644 gamedata/configs/text/pol/ui_st_mm.xml create mode 100644 gamedata/configs/text/pol/ui_st_mp.xml create mode 100644 gamedata/configs/text/pol/ui_st_other.xml create mode 100644 gamedata/configs/text/pol/ui_st_pda.xml create mode 100644 gamedata/configs/text/pol/ui_st_screen.xml create mode 100644 gamedata/configs/text/rus/ui_st_ixray.xml create mode 100644 gamedata/configs/text/rus/ui_st_mm.xml create mode 100644 gamedata/configs/text/spa/st_achievement.xml create mode 100644 gamedata/configs/text/spa/st_characters.xml create mode 100644 gamedata/configs/text/spa/st_dialog_manager.xml create mode 100644 gamedata/configs/text/spa/st_dialogs.xml create mode 100644 gamedata/configs/text/spa/st_dialogs_jupiter.xml create mode 100644 gamedata/configs/text/spa/st_dialogs_pripyat.xml create mode 100644 gamedata/configs/text/spa/st_dialogs_zaton.xml create mode 100644 gamedata/configs/text/spa/st_generate_fnames.xml create mode 100644 gamedata/configs/text/spa/st_generate_snames.xml create mode 100644 gamedata/configs/text/spa/st_items_artefacts.xml create mode 100644 gamedata/configs/text/spa/st_items_equipment.xml create mode 100644 gamedata/configs/text/spa/st_items_outfit.xml create mode 100644 gamedata/configs/text/spa/st_items_quest.xml create mode 100644 gamedata/configs/text/spa/st_items_weapons.xml create mode 100644 gamedata/configs/text/spa/st_items_weapons_upgrades.xml create mode 100644 gamedata/configs/text/spa/st_land_names.xml create mode 100644 gamedata/configs/text/spa/st_mp_mapdesc.xml create mode 100644 gamedata/configs/text/spa/st_mp_speechmenu.xml create mode 100644 gamedata/configs/text/spa/st_mp_teamdesc.xml create mode 100644 gamedata/configs/text/spa/st_quests_general.xml create mode 100644 gamedata/configs/text/spa/st_quests_jupiter.xml create mode 100644 gamedata/configs/text/spa/st_quests_pripyat.xml create mode 100644 gamedata/configs/text/spa/st_quests_zaton.xml create mode 100644 gamedata/configs/text/spa/st_subtitles.xml create mode 100644 gamedata/configs/text/spa/ui_st_credits.xml create mode 100644 gamedata/configs/text/spa/ui_st_inventory.xml create mode 100644 gamedata/configs/text/spa/ui_st_keybinding.xml create mode 100644 gamedata/configs/text/spa/ui_st_loadscreen.xml create mode 100644 gamedata/configs/text/spa/ui_st_mm.xml create mode 100644 gamedata/configs/text/spa/ui_st_mp.xml create mode 100644 gamedata/configs/text/spa/ui_st_other.xml create mode 100644 gamedata/configs/text/spa/ui_st_pda.xml create mode 100644 gamedata/configs/text/spa/ui_st_screen.xml create mode 100644 gamedata/configs/ui/actor_menu.xml create mode 100644 gamedata/configs/ui/actor_menu_16.xml create mode 100644 gamedata/configs/ui/actor_menu_item.xml create mode 100644 gamedata/configs/ui/actor_menu_item_16.xml create mode 100644 gamedata/configs/ui/af_params.xml create mode 100644 gamedata/configs/ui/af_params_16.xml create mode 100644 gamedata/configs/ui/backend/arrowstepper.xml create mode 100644 gamedata/configs/ui/backend/combobox.xml create mode 100644 gamedata/configs/ui/backend/cursor.xml create mode 100644 gamedata/configs/ui/backend/custom_spin.xml create mode 100644 gamedata/configs/ui/backend/custom_spin_horz.xml create mode 100644 gamedata/configs/ui/backend/hud_target.xml create mode 100644 gamedata/configs/ui/backend/trackbar.xml create mode 100644 gamedata/configs/ui/booster_params.xml create mode 100644 gamedata/configs/ui/booster_params_16.xml create mode 100644 gamedata/configs/ui/car_panel.xml create mode 100644 gamedata/configs/ui/car_panel_16.xml create mode 100644 gamedata/configs/ui/maingame.xml create mode 100644 gamedata/configs/ui/maingame_16.xml create mode 100644 gamedata/configs/ui/map_desc.xml create mode 100644 gamedata/configs/ui/map_desc_16.xml create mode 100644 gamedata/configs/ui/map_spots.xml create mode 100644 gamedata/configs/ui/map_spots_16.xml create mode 100644 gamedata/configs/ui/pda_character.xml create mode 100644 gamedata/configs/ui/pda_character_16.xml create mode 100644 gamedata/configs/ui/pda_contacts_new.xml create mode 100644 gamedata/configs/ui/pda_contacts_new_16.xml create mode 100644 gamedata/configs/ui/pda_spot.xml create mode 100644 gamedata/configs/ui/pda_spot_16.xml create mode 100644 gamedata/configs/ui/talk.xml create mode 100644 gamedata/configs/ui/talk_16.xml create mode 100644 gamedata/configs/ui/textures_descr/mod_ui_icons_npc_ixray.xml create mode 100644 gamedata/configs/ui/textures_descr/ui_actor_multiplayer_menu_screen.xml create mode 100644 gamedata/configs/ui/textures_descr/ui_ixray_ex.xml create mode 100644 gamedata/configs/ui/textures_descr/ui_microphone.xml create mode 100644 gamedata/configs/ui/textures_descr/ui_mm_loading_screen.xml create mode 100644 gamedata/configs/ui/textures_descr/ui_npc_monster.xml create mode 100644 gamedata/configs/ui/ui_custom_msgs.xml create mode 100644 gamedata/configs/ui/ui_game_fmp.xml create mode 100644 gamedata/configs/ui/ui_game_fmp_16.xml create mode 100644 gamedata/configs/ui/ui_keybinding.xml create mode 100644 gamedata/configs/ui/ui_mm_loading_screen.xml create mode 100644 gamedata/configs/ui/ui_mm_loading_screen_16.xml create mode 100644 gamedata/configs/ui/ui_mm_main.xml create mode 100644 gamedata/configs/ui/ui_mm_main_16.xml create mode 100644 gamedata/configs/ui/ui_mm_mp.xml create mode 100644 gamedata/configs/ui/ui_mm_mp_16.xml create mode 100644 gamedata/configs/ui/ui_mm_mp_tabclient.xml create mode 100644 gamedata/configs/ui/ui_mm_mp_tabclient_16.xml create mode 100644 gamedata/configs/ui/ui_mm_mp_taboptions.xml create mode 100644 gamedata/configs/ui/ui_mm_mp_taboptions_16.xml create mode 100644 gamedata/configs/ui/ui_mm_opt.xml create mode 100644 gamedata/configs/ui/ui_mm_opt_16.xml create mode 100644 gamedata/configs/ui/ui_mp_admin_menu.xml create mode 100644 gamedata/fonts/editors/robotomono.ttf create mode 100644 gamedata/fonts/eng/arial.ttf create mode 100644 gamedata/fonts/eng/arialbd.ttf create mode 100644 gamedata/fonts/eng/arialbi.ttf create mode 100644 gamedata/fonts/eng/ariali.ttf create mode 100644 gamedata/fonts/eng/arialn.ttf create mode 100644 gamedata/fonts/eng/arialnb.ttf create mode 100644 gamedata/fonts/eng/arialnbi.ttf create mode 100644 gamedata/fonts/eng/arialni.ttf create mode 100644 gamedata/fonts/eng/ariblk.ttf create mode 100644 gamedata/fonts/eng/consola.ttf create mode 100644 gamedata/fonts/eng/consolab.ttf create mode 100644 gamedata/fonts/eng/consolai.ttf create mode 100644 gamedata/fonts/eng/consolaz.ttf create mode 100644 gamedata/fonts/eng/graffiti1ctt.ttf create mode 100644 gamedata/fonts/eng/letterica.ttf create mode 100644 gamedata/fonts/eng/roboto.ttf create mode 100644 gamedata/fonts/eng/robotocondensed.ttf create mode 100644 gamedata/fonts/eng/robotomono-bold.ttf create mode 100644 gamedata/fonts/eng/robotomono-light.ttf create mode 100644 gamedata/fonts/eng/robotomono-medium.ttf create mode 100644 gamedata/fonts/eng/robotomono.ttf create mode 100644 gamedata/fonts/rus/arial.ttf create mode 100644 gamedata/fonts/rus/arialbd.ttf create mode 100644 gamedata/fonts/rus/arialbi.ttf create mode 100644 gamedata/fonts/rus/ariali.ttf create mode 100644 gamedata/fonts/rus/arialn.ttf create mode 100644 gamedata/fonts/rus/arialnb.ttf create mode 100644 gamedata/fonts/rus/arialnbi.ttf create mode 100644 gamedata/fonts/rus/arialni.ttf create mode 100644 gamedata/fonts/rus/ariblk.ttf create mode 100644 gamedata/fonts/rus/consola.ttf create mode 100644 gamedata/fonts/rus/consolab.ttf create mode 100644 gamedata/fonts/rus/consolai.ttf create mode 100644 gamedata/fonts/rus/consolaz.ttf create mode 100644 gamedata/fonts/rus/graffiti1ctt.ttf create mode 100644 gamedata/fonts/rus/letterica.ttf create mode 100644 gamedata/fonts/rus/roboto.ttf create mode 100644 gamedata/fonts/rus/robotocondensed.ttf create mode 100644 gamedata/fonts/rus/robotomono-bold.ttf create mode 100644 gamedata/fonts/rus/robotomono-light.ttf create mode 100644 gamedata/fonts/rus/robotomono-medium.ttf create mode 100644 gamedata/fonts/rus/robotomono.ttf create mode 100644 gamedata/scripts/.vscode/launch.json create mode 100644 gamedata/scripts/.vscode/settings.json create mode 100644 gamedata/scripts/alife_storage_manager.script create mode 100644 gamedata/scripts/bind_crow.script create mode 100644 gamedata/scripts/bind_monster.script create mode 100644 gamedata/scripts/bind_stalker.script create mode 100644 gamedata/scripts/gulag_general.script create mode 100644 gamedata/scripts/ixray_global.script create mode 100644 gamedata/scripts/ixray_system/dynamic_callbacks.lua create mode 100644 gamedata/scripts/ixray_system/global.lua create mode 100644 gamedata/scripts/ixray_system/luapanda.lua create mode 100644 gamedata/scripts/ixray_system/socket.lua create mode 100644 gamedata/scripts/luaxml.script create mode 100644 gamedata/scripts/pda.script create mode 100644 gamedata/scripts/se_car.script create mode 100644 gamedata/scripts/se_item.script create mode 100644 gamedata/scripts/se_smart_cover.script create mode 100644 gamedata/scripts/sim_squad_scripted.script create mode 100644 gamedata/scripts/smart_terrain.script create mode 100644 gamedata/scripts/state_lib.script create mode 100644 gamedata/scripts/state_mgr_animation_list.script create mode 100644 gamedata/scripts/task_functor.script create mode 100644 gamedata/scripts/task_objects.script create mode 100644 gamedata/scripts/ui_load_dialog.script create mode 100644 gamedata/scripts/ui_main_menu.script create mode 100644 gamedata/scripts/ui_mm_mp_join.script create mode 100644 gamedata/scripts/ui_mm_mp_options.script create mode 100644 gamedata/scripts/ui_mm_opt_controls.script create mode 100644 gamedata/scripts/ui_mm_opt_gameplay.script create mode 100644 gamedata/scripts/ui_mm_opt_main.script create mode 100644 gamedata/scripts/ui_mm_opt_sound.script create mode 100644 gamedata/scripts/ui_mm_opt_video.script create mode 100644 gamedata/scripts/ui_mm_opt_video_adv.script create mode 100644 gamedata/scripts/ui_mp_main.script create mode 100644 gamedata/scripts/ui_save_dialog.script create mode 100644 gamedata/scripts/xr_animpoint_predicates.script create mode 100644 gamedata/scripts/xr_combat_ignore.script create mode 100644 gamedata/scripts/xr_effects.script create mode 100644 gamedata/scripts/xr_kamp.script create mode 100644 gamedata/shaders/d3d11/accum_base.ps.hlsl create mode 100644 gamedata/shaders/d3d11/accum_emissive.ps.hlsl create mode 100644 gamedata/shaders/d3d11/accum_emissivel.ps.hlsl create mode 100644 gamedata/shaders/d3d11/accum_emissivew.ps.hlsl create mode 100644 gamedata/shaders/d3d11/accum_indirect.ps.hlsl create mode 100644 gamedata/shaders/d3d11/accum_mask.vs.hlsl create mode 100644 gamedata/shaders/d3d11/accum_sun.ps.hlsl create mode 100644 gamedata/shaders/d3d11/accum_sun.vs.hlsl create mode 100644 gamedata/shaders/d3d11/accum_sun_mask.ps.hlsl create mode 100644 gamedata/shaders/d3d11/accum_volume.vs.hlsl create mode 100644 gamedata/shaders/d3d11/accum_volumetric.ps.hlsl create mode 100644 gamedata/shaders/d3d11/accum_volumetric.vs.hlsl create mode 100644 gamedata/shaders/d3d11/accum_volumetric.xml create mode 100644 gamedata/shaders/d3d11/accum_volumetric_sun.lua create mode 100644 gamedata/shaders/d3d11/accum_volumetric_sun.ps.hlsl create mode 100644 gamedata/shaders/d3d11/base_lplanes.ps.hlsl create mode 100644 gamedata/shaders/d3d11/base_lplanes.vs.hlsl create mode 100644 gamedata/shaders/d3d11/base_lplanes_fft.ps.hlsl create mode 100644 gamedata/shaders/d3d11/bloom_build.ps.hlsl create mode 100644 gamedata/shaders/d3d11/bloom_filter.ps.hlsl create mode 100644 gamedata/shaders/d3d11/bloom_filter_f.ps.hlsl create mode 100644 gamedata/shaders/d3d11/bloom_luminance_1.ps.hlsl create mode 100644 gamedata/shaders/d3d11/bloom_luminance_2.ps.hlsl create mode 100644 gamedata/shaders/d3d11/bloom_luminance_3.ps.hlsl create mode 100644 gamedata/shaders/d3d11/cgim.h create mode 100644 gamedata/shaders/d3d11/chromatic_aberration.ps.hlsl create mode 100644 gamedata/shaders/d3d11/clouds.lua create mode 100644 gamedata/shaders/d3d11/clouds.ps.hlsl create mode 100644 gamedata/shaders/d3d11/clouds.vs.hlsl create mode 100644 gamedata/shaders/d3d11/combine_1.ps.hlsl create mode 100644 gamedata/shaders/d3d11/combine_1.vs.hlsl create mode 100644 gamedata/shaders/d3d11/combine_2.ps.hlsl create mode 100644 gamedata/shaders/d3d11/combine_distort.ps.hlsl create mode 100644 gamedata/shaders/d3d11/combine_volumetric.lua create mode 100644 gamedata/shaders/d3d11/combine_volumetric.ps.hlsl create mode 100644 gamedata/shaders/d3d11/common.hlsli create mode 100644 gamedata/shaders/d3d11/common_cbuffers.hlsli create mode 100644 gamedata/shaders/d3d11/common_defines.hlsli create mode 100644 gamedata/shaders/d3d11/common_functions.hlsli create mode 100644 gamedata/shaders/d3d11/common_iostructs.hlsli create mode 100644 gamedata/shaders/d3d11/common_policies.hlsli create mode 100644 gamedata/shaders/d3d11/common_samplers.hlsli create mode 100644 gamedata/shaders/d3d11/contrast_adaptive_sharpening.ps.hlsl create mode 100644 gamedata/shaders/d3d11/copy.ps.hlsl create mode 100644 gamedata/shaders/d3d11/copy_image.ps.hlsl create mode 100644 gamedata/shaders/d3d11/copy_p.ps.hlsl create mode 100644 gamedata/shaders/d3d11/debug_draw.lua create mode 100644 gamedata/shaders/d3d11/debug_draw.ps.hlsl create mode 100644 gamedata/shaders/d3d11/debug_draw.vs.hlsl create mode 100644 gamedata/shaders/d3d11/debug_draw_nodepth.ps.hlsl create mode 100644 gamedata/shaders/d3d11/deffer_base.ps.hlsl create mode 100644 gamedata/shaders/d3d11/deffer_base.vs.hlsl create mode 100644 gamedata/shaders/d3d11/deffer_detail.vs.hlsl create mode 100644 gamedata/shaders/d3d11/deffer_impl.ps.hlsl create mode 100644 gamedata/shaders/d3d11/deffer_lod.vs.hlsl create mode 100644 gamedata/shaders/d3d11/deffer_model.vs.hlsl create mode 100644 gamedata/shaders/d3d11/deffer_particle.ps.hlsl create mode 100644 gamedata/shaders/d3d11/deffer_particle.vs.hlsl create mode 100644 gamedata/shaders/d3d11/depth_downs.ps.hlsl create mode 100644 gamedata/shaders/d3d11/details_lod.lua create mode 100644 gamedata/shaders/d3d11/distort.lua create mode 100644 gamedata/shaders/d3d11/distort.ps.hlsl create mode 100644 gamedata/shaders/d3d11/dof.hlsli create mode 100644 gamedata/shaders/d3d11/dumb.ps.hlsl create mode 100644 gamedata/shaders/d3d11/dumb.vs.hlsl create mode 100644 gamedata/shaders/d3d11/editor.vs.hlsl create mode 100644 gamedata/shaders/d3d11/effects_bullet_tracer.lua create mode 100644 gamedata/shaders/d3d11/effects_flare.lua create mode 100644 gamedata/shaders/d3d11/effects_lightning.lua create mode 100644 gamedata/shaders/d3d11/effects_lightplanes.lua create mode 100644 gamedata/shaders/d3d11/effects_rain.lua create mode 100644 gamedata/shaders/d3d11/effects_sun.lua create mode 100644 gamedata/shaders/d3d11/effects_sun.vs.hlsl create mode 100644 gamedata/shaders/d3d11/effects_wallmark.lua create mode 100644 gamedata/shaders/d3d11/effects_wallmark.vs.hlsl create mode 100644 gamedata/shaders/d3d11/effects_wallmarkblend.lua create mode 100644 gamedata/shaders/d3d11/effects_wallmarkmult.lua create mode 100644 gamedata/shaders/d3d11/effects_wallmarkset.lua create mode 100644 gamedata/shaders/d3d11/effects_water.lua create mode 100644 gamedata/shaders/d3d11/effects_water_puddles.lua create mode 100644 gamedata/shaders/d3d11/effects_waterryaska.lua create mode 100644 gamedata/shaders/d3d11/effects_waterstuden.lua create mode 100644 gamedata/shaders/d3d11/fluid3d_stub.lua create mode 100644 gamedata/shaders/d3d11/fluid_advect.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_advect_bfecc.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_advect_bfecc_temp.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_advect_temp.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_advect_vel.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_advect_vel_g.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_array.gs.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_array_dyn_oobb.gs.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_array_oobb.gs.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_common.hlsli create mode 100644 gamedata/shaders/d3d11/fluid_common_render.hlsli create mode 100644 gamedata/shaders/d3d11/fluid_common_tricubic.hlsli create mode 100644 gamedata/shaders/d3d11/fluid_confinement.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_divergence.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_draw_texture.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_edge_detect.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_edge_detect.vs.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_gaussian.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_grid.vs.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_grid_dyn_oobb.vs.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_grid_oobb.vs.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_jacobi.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_obst_dynamic_oobb.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_obst_static_oobb.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_obststaticbox.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_project.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_raycast_quad.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_raycast_quad.vs.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_raycast_quad_fire.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_raycastcopy_quad.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_raycastcopy_quad_fire.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_raydata_back.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_raydata_back.vs.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_raydata_front.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_raydata_front.vs.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_raydatacopy_quad.ps.hlsl create mode 100644 gamedata/shaders/d3d11/fluid_vorticity.ps.hlsl create mode 100644 gamedata/shaders/d3d11/font2.ps.hlsl create mode 100644 gamedata/shaders/d3d11/forward_base.ps.hlsl create mode 100644 gamedata/shaders/d3d11/friendly_indicator.lua create mode 100644 gamedata/shaders/d3d11/fxaa.hlsli create mode 100644 gamedata/shaders/d3d11/fxaa_main.ps.hlsl create mode 100644 gamedata/shaders/d3d11/gamma_apply.ps.hlsl create mode 100644 gamedata/shaders/d3d11/gtao_filter.ps.hlsl create mode 100644 gamedata/shaders/d3d11/gtao_render.ps.hlsl create mode 100644 gamedata/shaders/d3d11/hud3d.ps.hlsl create mode 100644 gamedata/shaders/d3d11/hud3d.vs.hlsl create mode 100644 gamedata/shaders/d3d11/hud_crosshair.lua create mode 100644 gamedata/shaders/d3d11/hud_crosshair.vs.hlsl create mode 100644 gamedata/shaders/d3d11/hud_font.lua create mode 100644 gamedata/shaders/d3d11/hud_font.ps.hlsl create mode 100644 gamedata/shaders/d3d11/hud_font2.lua create mode 100644 gamedata/shaders/d3d11/hud_font2.ps.hlsl create mode 100644 gamedata/shaders/d3d11/hud_movie.lua create mode 100644 gamedata/shaders/d3d11/hud_p3d.lua create mode 100644 gamedata/shaders/d3d11/lod.ps.hlsl create mode 100644 gamedata/shaders/d3d11/lod.vs.hlsl create mode 100644 gamedata/shaders/d3d11/mark_adjust.hlsli create mode 100644 gamedata/shaders/d3d11/mblur.hlsli create mode 100644 gamedata/shaders/d3d11/metalic_roughness_ambient.hlsli create mode 100644 gamedata/shaders/d3d11/metalic_roughness_base.hlsli create mode 100644 gamedata/shaders/d3d11/metalic_roughness_light.hlsli create mode 100644 gamedata/shaders/d3d11/model_clockarrow_h.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_clockarrow_m.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_clockarrow_s.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_compassarrow.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_distort.vs.hlsl create mode 100644 gamedata/shaders/d3d11/model_distort4ghost.vs.hlsl create mode 100644 gamedata/shaders/d3d11/model_distort4glass.vs.hlsl create mode 100644 gamedata/shaders/d3d11/model_distort_inv.vs.hlsl create mode 100644 gamedata/shaders/d3d11/model_exohealth.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_exoscreen.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_green_conditionbar.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_green_energybar.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_pda_screen.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_scope_gauss.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_scope_lense.lua create mode 100644 gamedata/shaders/d3d11/model_scope_lense.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_scope_lense_lerp.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_scope_lense_night.ps.hlsl create mode 100644 gamedata/shaders/d3d11/model_tricolor_conditionbar.ps.hlsl create mode 100644 gamedata/shaders/d3d11/models_clockarrow_h.lua create mode 100644 gamedata/shaders/d3d11/models_clockarrow_h_screen.lua create mode 100644 gamedata/shaders/d3d11/models_clockarrow_m.lua create mode 100644 gamedata/shaders/d3d11/models_clockarrow_m_screen.lua create mode 100644 gamedata/shaders/d3d11/models_clockarrow_s.lua create mode 100644 gamedata/shaders/d3d11/models_clockarrow_s_screen.lua create mode 100644 gamedata/shaders/d3d11/models_collimator.lua create mode 100644 gamedata/shaders/d3d11/models_collimsight.lua create mode 100644 gamedata/shaders/d3d11/models_compass_arrow.lua create mode 100644 gamedata/shaders/d3d11/models_compass_arrow_screen.lua create mode 100644 gamedata/shaders/d3d11/models_compscreen.lua create mode 100644 gamedata/shaders/d3d11/models_condition.lua create mode 100644 gamedata/shaders/d3d11/models_digiclock_hh_screen.lua create mode 100644 gamedata/shaders/d3d11/models_digiclock_hl_screen.lua create mode 100644 gamedata/shaders/d3d11/models_digiclock_mh_screen.lua create mode 100644 gamedata/shaders/d3d11/models_digiclock_ml_screen.lua create mode 100644 gamedata/shaders/d3d11/models_energy_gauss.lua create mode 100644 gamedata/shaders/d3d11/models_exohealth.lua create mode 100644 gamedata/shaders/d3d11/models_exoscreen01.lua create mode 100644 gamedata/shaders/d3d11/models_laserray.lua create mode 100644 gamedata/shaders/d3d11/models_lense_scope.lua create mode 100644 gamedata/shaders/d3d11/models_lfo_glass_lens_weapons.lua create mode 100644 gamedata/shaders/d3d11/models_lfo_light_dot_weapons.lua create mode 100644 gamedata/shaders/d3d11/models_lightplanes.lua create mode 100644 gamedata/shaders/d3d11/models_pautina.lua create mode 100644 gamedata/shaders/d3d11/models_pda.lua create mode 100644 gamedata/shaders/d3d11/models_reflex_lens.lua create mode 100644 gamedata/shaders/d3d11/models_reflex_lens.ps.hlsl create mode 100644 gamedata/shaders/d3d11/models_reflex_lens.vs.hlsl create mode 100644 gamedata/shaders/d3d11/models_reflex_reticle.lua create mode 100644 gamedata/shaders/d3d11/models_reflex_reticle.ps.hlsl create mode 100644 gamedata/shaders/d3d11/models_reflex_reticle.vs.hlsl create mode 100644 gamedata/shaders/d3d11/models_selflight.lua create mode 100644 gamedata/shaders/d3d11/models_selflight_det.lua create mode 100644 gamedata/shaders/d3d11/models_selflightl.lua create mode 100644 gamedata/shaders/d3d11/models_selflightw.xml create mode 100644 gamedata/shaders/d3d11/models_xanomaly.lua create mode 100644 gamedata/shaders/d3d11/models_xdistort.lua create mode 100644 gamedata/shaders/d3d11/models_xdistortcolor.lua create mode 100644 gamedata/shaders/d3d11/models_xdistortcolorl.lua create mode 100644 gamedata/shaders/d3d11/models_xdistortcolorlinv.lua create mode 100644 gamedata/shaders/d3d11/models_xdistortinv.lua create mode 100644 gamedata/shaders/d3d11/models_xmonolith.lua create mode 100644 gamedata/shaders/d3d11/models_xwindows.lua create mode 100644 gamedata/shaders/d3d11/models_zoom.lua create mode 100644 gamedata/shaders/d3d11/models_zoom_gauss.lua create mode 100644 gamedata/shaders/d3d11/models_zoom_lerp.lua create mode 100644 gamedata/shaders/d3d11/models_zoomnight.lua create mode 100644 gamedata/shaders/d3d11/parallax_mark.ps.hlsl create mode 100644 gamedata/shaders/d3d11/parallax_mark.vs.hlsl create mode 100644 gamedata/shaders/d3d11/particle-clip.vs.hlsl create mode 100644 gamedata/shaders/d3d11/particle.ps.hlsl create mode 100644 gamedata/shaders/d3d11/particle.vs.hlsl create mode 100644 gamedata/shaders/d3d11/particle_add.ps.hlsl create mode 100644 gamedata/shaders/d3d11/particle_alphaonly.ps.hlsl create mode 100644 gamedata/shaders/d3d11/particle_distort.ps.hlsl create mode 100644 gamedata/shaders/d3d11/particle_distort_hard.ps.hlsl create mode 100644 gamedata/shaders/d3d11/particle_hard.ps.hlsl create mode 100644 gamedata/shaders/d3d11/particle_s-aadd.ps.hlsl create mode 100644 gamedata/shaders/d3d11/particle_s-add.ps.hlsl create mode 100644 gamedata/shaders/d3d11/particle_s-blend.ps.hlsl create mode 100644 gamedata/shaders/d3d11/particle_s-mul.ps.hlsl create mode 100644 gamedata/shaders/d3d11/particles_add.lua create mode 100644 gamedata/shaders/d3d11/particles_xadd.lua create mode 100644 gamedata/shaders/d3d11/particles_xdistort.lua create mode 100644 gamedata/shaders/d3d11/pnv.hlsli create mode 100644 gamedata/shaders/d3d11/portal.lua create mode 100644 gamedata/shaders/d3d11/portal.ps.hlsl create mode 100644 gamedata/shaders/d3d11/portal.vs.hlsl create mode 100644 gamedata/shaders/d3d11/postprocess.lua create mode 100644 gamedata/shaders/d3d11/postprocess.ps.hlsl create mode 100644 gamedata/shaders/d3d11/postprocess_cm.ps.hlsl create mode 100644 gamedata/shaders/d3d11/rain_apply_gloss.ps.hlsl create mode 100644 gamedata/shaders/d3d11/rain_apply_normal.ps.hlsl create mode 100644 gamedata/shaders/d3d11/rain_layer.ps.hlsl create mode 100644 gamedata/shaders/d3d11/rain_patch_normal.ps.hlsl create mode 100644 gamedata/shaders/d3d11/rain_patch_normal_new.ps.hlsl create mode 100644 gamedata/shaders/d3d11/reflections.hlsli create mode 100644 gamedata/shaders/d3d11/saturation.ps.hlsl create mode 100644 gamedata/shaders/d3d11/scope_lense_mask.ps.hlsl create mode 100644 gamedata/shaders/d3d11/scope_lense_mask.vs.hlsl create mode 100644 gamedata/shaders/d3d11/screenspacecontactshadows.hlsl create mode 100644 gamedata/shaders/d3d11/selflight.lua create mode 100644 gamedata/shaders/d3d11/selflight2.lua create mode 100644 gamedata/shaders/d3d11/shadow.hlsli create mode 100644 gamedata/shaders/d3d11/shadow_base.ps.hlsl create mode 100644 gamedata/shaders/d3d11/shadow_base.vs.hlsl create mode 100644 gamedata/shaders/d3d11/shadow_lod.vs.hlsl create mode 100644 gamedata/shaders/d3d11/shadow_model.vs.hlsl create mode 100644 gamedata/shaders/d3d11/shared/cloudconfig.hlsli create mode 100644 gamedata/shaders/d3d11/shared/common.hlsli create mode 100644 gamedata/shaders/d3d11/shared/waterconfig.hlsli create mode 100644 gamedata/shaders/d3d11/shared/watermove.hlsli create mode 100644 gamedata/shaders/d3d11/shared/wmark.hlsli create mode 100644 gamedata/shaders/d3d11/simple.ps.hlsl create mode 100644 gamedata/shaders/d3d11/simple_color.ps.hlsl create mode 100644 gamedata/shaders/d3d11/skin.hlsli create mode 100644 gamedata/shaders/d3d11/sky.ps.hlsl create mode 100644 gamedata/shaders/d3d11/sky.vs.hlsl create mode 100644 gamedata/shaders/d3d11/sload.hlsli create mode 100644 gamedata/shaders/d3d11/smaa.hlsli create mode 100644 gamedata/shaders/d3d11/smaa_bweight_calc.ps.hlsl create mode 100644 gamedata/shaders/d3d11/smaa_bweight_calc.vs.hlsl create mode 100644 gamedata/shaders/d3d11/smaa_edge_detect.ps.hlsl create mode 100644 gamedata/shaders/d3d11/smaa_edge_detect.vs.hlsl create mode 100644 gamedata/shaders/d3d11/smaa_neighbour_blend.ps.hlsl create mode 100644 gamedata/shaders/d3d11/smaa_neighbour_blend.vs.hlsl create mode 100644 gamedata/shaders/d3d11/snowing_main.ps.hlsl create mode 100644 gamedata/shaders/d3d11/ssao.ps.hlsl create mode 100644 gamedata/shaders/d3d11/ssao_blur.ps.hlsl create mode 100644 gamedata/shaders/d3d11/ssao_calc.ps.hlsl create mode 100644 gamedata/shaders/d3d11/sslr_filter.ps.hlsl create mode 100644 gamedata/shaders/d3d11/sslr_render.ps.hlsl create mode 100644 gamedata/shaders/d3d11/sslr_temporal.ps.hlsl create mode 100644 gamedata/shaders/d3d11/stub_default.lua create mode 100644 gamedata/shaders/d3d11/stub_default.ps.hlsl create mode 100644 gamedata/shaders/d3d11/stub_default.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_default_ma.ps.hlsl create mode 100644 gamedata/shaders/d3d11/stub_fullscreen_triangle.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform_2uv.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform_aa_aa.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform_build.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform_filter.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform_postpr.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform_t.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform_t_font.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform_t_m2.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform_t_m4.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform_t_ma.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_notransform_t_scaled.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_screen_space.vs.hlsl create mode 100644 gamedata/shaders/d3d11/stub_srgb.ps.hlsl create mode 100644 gamedata/shaders/d3d11/taa_render.ps.hlsl create mode 100644 gamedata/shaders/d3d11/tess.ds.hlsl create mode 100644 gamedata/shaders/d3d11/tess.hlsli create mode 100644 gamedata/shaders/d3d11/tess.hs.hlsl create mode 100644 gamedata/shaders/d3d11/test.gs.hlsl create mode 100644 gamedata/shaders/d3d11/vignette.ps.hlsl create mode 100644 gamedata/shaders/d3d11/water.ps.hlsl create mode 100644 gamedata/shaders/d3d11/water.vs.hlsl create mode 100644 gamedata/shaders/d3d11/water_puddles.ps.hlsl create mode 100644 gamedata/shaders/d3d11/water_puddles.vs.hlsl create mode 100644 gamedata/shaders/d3d11/waterd.ps.hlsl create mode 100644 gamedata/shaders/d3d11/wmark.vs.hlsl create mode 100644 gamedata/shaders/d3d11/yuv2rgb.ps.hlsl create mode 100644 gamedata/shaders/d3d11/zfill.lua create mode 100644 gamedata/shaders/d3d11/zfill2.lua create mode 100644 gamedata/shaders/editor/accum_base.ps.hlsl create mode 100644 gamedata/shaders/editor/accum_mask.vs.hlsl create mode 100644 gamedata/shaders/editor/accum_volume.vs.hlsl create mode 100644 gamedata/shaders/editor/common.hlsli create mode 100644 gamedata/shaders/editor/deffer_base.ps.hlsl create mode 100644 gamedata/shaders/editor/deffer_base.vs.hlsl create mode 100644 gamedata/shaders/editor/deffer_detail.vs.hlsl create mode 100644 gamedata/shaders/editor/deffer_impl.ps.hlsl create mode 100644 gamedata/shaders/editor/deffer_model.vs.hlsl create mode 100644 gamedata/shaders/editor/dumb.ps.hlsl create mode 100644 gamedata/shaders/editor/effects_water.lua create mode 100644 gamedata/shaders/editor/font2.ps.hlsl create mode 100644 gamedata/shaders/editor/forward_base.ps.hlsl create mode 100644 gamedata/shaders/editor/hmodel.hlsli create mode 100644 gamedata/shaders/editor/hud3d.ps.hlsl create mode 100644 gamedata/shaders/editor/hud3d.vs.hlsl create mode 100644 gamedata/shaders/editor/hud_crosshair.lua create mode 100644 gamedata/shaders/editor/hud_font.lua create mode 100644 gamedata/shaders/editor/hud_font.ps.hlsl create mode 100644 gamedata/shaders/editor/hud_font2.lua create mode 100644 gamedata/shaders/editor/hud_movie.lua create mode 100644 gamedata/shaders/editor/hud_p3d.lua create mode 100644 gamedata/shaders/editor/impl_dt.ps.hlsl create mode 100644 gamedata/shaders/editor/impl_dt.vs.hlsl create mode 100644 gamedata/shaders/editor/lmodel.hlsli create mode 100644 gamedata/shaders/editor/model_def_hq.ps.hlsl create mode 100644 gamedata/shaders/editor/model_def_hq.vs.hlsl create mode 100644 gamedata/shaders/editor/model_env_hq.ps.hlsl create mode 100644 gamedata/shaders/editor/model_env_hq.vs.hlsl create mode 100644 gamedata/shaders/editor/particle.ps.hlsl create mode 100644 gamedata/shaders/editor/particle.vs.hlsl create mode 100644 gamedata/shaders/editor/particle_distort.ps.hlsl create mode 100644 gamedata/shaders/editor/particle_distort.vs.hlsl create mode 100644 gamedata/shaders/editor/particles_xdistort.lua create mode 100644 gamedata/shaders/editor/portal.lua create mode 100644 gamedata/shaders/editor/portal.ps.hlsl create mode 100644 gamedata/shaders/editor/portal.vs.hlsl create mode 100644 gamedata/shaders/editor/shared/cloudconfig.hlsli create mode 100644 gamedata/shaders/editor/shared/common.hlsli create mode 100644 gamedata/shaders/editor/shared/waterconfig.hlsli create mode 100644 gamedata/shaders/editor/shared/watermove.hlsli create mode 100644 gamedata/shaders/editor/shared/wmark.hlsli create mode 100644 gamedata/shaders/editor/simple_color.ps.hlsl create mode 100644 gamedata/shaders/editor/simple_color.vs.hlsl create mode 100644 gamedata/shaders/editor/skin.hlsli create mode 100644 gamedata/shaders/editor/skin_main.hlsli create mode 100644 gamedata/shaders/editor/sky.ps.hlsl create mode 100644 gamedata/shaders/editor/sky.vs.hlsl create mode 100644 gamedata/shaders/editor/sky2.ps create mode 100644 gamedata/shaders/editor/sky2.vs create mode 100644 gamedata/shaders/editor/sload.hlsli create mode 100644 gamedata/shaders/editor/water.ps.hlsl create mode 100644 gamedata/shaders/editor/water.vs.hlsl create mode 100644 gamedata/shaders/editor/yuv2rgb.ps.hlsl create mode 100644 gamedata/shaders/r1/.lua create mode 100644 gamedata/shaders/r1/add_point.ps.hlsl create mode 100644 gamedata/shaders/r1/add_ppa.ps.hlsl create mode 100644 gamedata/shaders/r1/add_spot.ps.hlsl create mode 100644 gamedata/shaders/r1/avg2.ps.hlsl create mode 100644 gamedata/shaders/r1/avg4.ps.hlsl create mode 100644 gamedata/shaders/r1/base_laser.ps.hlsl create mode 100644 gamedata/shaders/r1/base_lplanes.ps.hlsl create mode 100644 gamedata/shaders/r1/base_lplanes.vs.hlsl create mode 100644 gamedata/shaders/r1/base_lplanes_fft.ps.hlsl create mode 100644 gamedata/shaders/r1/blur2.lua create mode 100644 gamedata/shaders/r1/blur4.lua create mode 100644 gamedata/shaders/r1/clouds.lua create mode 100644 gamedata/shaders/r1/clouds.ps.hlsl create mode 100644 gamedata/shaders/r1/clouds.vs.hlsl create mode 100644 gamedata/shaders/r1/common.hlsli create mode 100644 gamedata/shaders/r1/detail.ps.hlsl create mode 100644 gamedata/shaders/r1/detail_still.vs.hlsl create mode 100644 gamedata/shaders/r1/detail_wave.vs.hlsl create mode 100644 gamedata/shaders/r1/details_lod.lua create mode 100644 gamedata/shaders/r1/editor.vs.hlsl create mode 100644 gamedata/shaders/r1/effects_lightplanes.lua create mode 100644 gamedata/shaders/r1/effects_wallmarkblend.lua create mode 100644 gamedata/shaders/r1/effects_wallmarkmult.lua create mode 100644 gamedata/shaders/r1/effects_wallmarkset.lua create mode 100644 gamedata/shaders/r1/effects_water.lua create mode 100644 gamedata/shaders/r1/effects_waterryaska.lua create mode 100644 gamedata/shaders/r1/effects_waterstuden.lua create mode 100644 gamedata/shaders/r1/font2.ps.hlsl create mode 100644 gamedata/shaders/r1/fxaa.hlsli create mode 100644 gamedata/shaders/r1/fxaa_luma.ps.hlsl create mode 100644 gamedata/shaders/r1/fxaa_main.ps.hlsl create mode 100644 gamedata/shaders/r1/fxaa_main.vs.hlsl create mode 100644 gamedata/shaders/r1/hud3d.ps.hlsl create mode 100644 gamedata/shaders/r1/hud3d.vs.hlsl create mode 100644 gamedata/shaders/r1/hud_crosshair.lua create mode 100644 gamedata/shaders/r1/hud_font.lua create mode 100644 gamedata/shaders/r1/hud_font.ps.hlsl create mode 100644 gamedata/shaders/r1/hud_font2.lua create mode 100644 gamedata/shaders/r1/hud_movie.lua create mode 100644 gamedata/shaders/r1/hud_p3d.lua create mode 100644 gamedata/shaders/r1/impl.ps.hlsl create mode 100644 gamedata/shaders/r1/impl.vs.hlsl create mode 100644 gamedata/shaders/r1/impl_dt.ps.hlsl create mode 100644 gamedata/shaders/r1/impl_dt.vs.hlsl create mode 100644 gamedata/shaders/r1/impl_dt_hq.ps.hlsl create mode 100644 gamedata/shaders/r1/impl_l.ps.hlsl create mode 100644 gamedata/shaders/r1/impl_l.vs.hlsl create mode 100644 gamedata/shaders/r1/impl_point.vs.hlsl create mode 100644 gamedata/shaders/r1/impl_spot.vs.hlsl create mode 100644 gamedata/shaders/r1/lmap.ps.hlsl create mode 100644 gamedata/shaders/r1/lmap.vs.hlsl create mode 100644 gamedata/shaders/r1/lmap_dt.ps.hlsl create mode 100644 gamedata/shaders/r1/lmap_dt.vs.hlsl create mode 100644 gamedata/shaders/r1/lmap_l.ps.hlsl create mode 100644 gamedata/shaders/r1/lmap_l.vs.hlsl create mode 100644 gamedata/shaders/r1/lmap_point.vs.hlsl create mode 100644 gamedata/shaders/r1/lmap_spot.vs.hlsl create mode 100644 gamedata/shaders/r1/lmape.ps.hlsl create mode 100644 gamedata/shaders/r1/lmape.vs.hlsl create mode 100644 gamedata/shaders/r1/lod.ps.hlsl create mode 100644 gamedata/shaders/r1/lod.vs.hlsl create mode 100644 gamedata/shaders/r1/model_clockarrow_h.ps.hlsl create mode 100644 gamedata/shaders/r1/model_clockarrow_m.ps.hlsl create mode 100644 gamedata/shaders/r1/model_clockarrow_s.ps.hlsl create mode 100644 gamedata/shaders/r1/model_compassarrow.ps.hlsl create mode 100644 gamedata/shaders/r1/model_compscreen.ps.hlsl create mode 100644 gamedata/shaders/r1/model_def_hq.ps.hlsl create mode 100644 gamedata/shaders/r1/model_def_hq.vs.hlsl create mode 100644 gamedata/shaders/r1/model_def_lplanes.vs.hlsl create mode 100644 gamedata/shaders/r1/model_def_lq.ps.hlsl create mode 100644 gamedata/shaders/r1/model_def_lq.vs.hlsl create mode 100644 gamedata/shaders/r1/model_def_lqs.vs.hlsl create mode 100644 gamedata/shaders/r1/model_def_point.vs.hlsl create mode 100644 gamedata/shaders/r1/model_def_shadow.vs.hlsl create mode 100644 gamedata/shaders/r1/model_def_spot.vs.hlsl create mode 100644 gamedata/shaders/r1/model_digiclock_hh.ps.hlsl create mode 100644 gamedata/shaders/r1/model_digiclock_hl.ps.hlsl create mode 100644 gamedata/shaders/r1/model_digiclock_mh.ps.hlsl create mode 100644 gamedata/shaders/r1/model_digiclock_ml.ps.hlsl create mode 100644 gamedata/shaders/r1/model_distort.vs.hlsl create mode 100644 gamedata/shaders/r1/model_distort2t.vs.hlsl create mode 100644 gamedata/shaders/r1/model_distort4ghost.vs.hlsl create mode 100644 gamedata/shaders/r1/model_distort4glass.vs.hlsl create mode 100644 gamedata/shaders/r1/model_distort_inv.vs.hlsl create mode 100644 gamedata/shaders/r1/model_env.ps.hlsl create mode 100644 gamedata/shaders/r1/model_env_hq.ps.hlsl create mode 100644 gamedata/shaders/r1/model_env_hq.vs.hlsl create mode 100644 gamedata/shaders/r1/model_env_lq.ps.hlsl create mode 100644 gamedata/shaders/r1/model_env_lq.vs.hlsl create mode 100644 gamedata/shaders/r1/model_env_sl.ps.hlsl create mode 100644 gamedata/shaders/r1/model_exohealth.ps.hlsl create mode 100644 gamedata/shaders/r1/model_exoscreen.ps.hlsl create mode 100644 gamedata/shaders/r1/model_green_conditionbar.ps.hlsl create mode 100644 gamedata/shaders/r1/model_green_energybar.ps.hlsl create mode 100644 gamedata/shaders/r1/model_pda_screen.ps.hlsl create mode 100644 gamedata/shaders/r1/model_scope_gauss.ps.hlsl create mode 100644 gamedata/shaders/r1/model_scope_lense.ps.hlsl create mode 100644 gamedata/shaders/r1/model_scope_lense_lerp.ps.hlsl create mode 100644 gamedata/shaders/r1/model_scope_lense_night.ps.hlsl create mode 100644 gamedata/shaders/r1/model_shadow.ps.hlsl create mode 100644 gamedata/shaders/r1/model_tricolor_conditionbar.ps.hlsl create mode 100644 gamedata/shaders/r1/models_clockarrow_h.lua create mode 100644 gamedata/shaders/r1/models_clockarrow_h_screen.lua create mode 100644 gamedata/shaders/r1/models_clockarrow_m.lua create mode 100644 gamedata/shaders/r1/models_clockarrow_m_screen.lua create mode 100644 gamedata/shaders/r1/models_clockarrow_s.lua create mode 100644 gamedata/shaders/r1/models_clockarrow_s_screen.lua create mode 100644 gamedata/shaders/r1/models_collimator.lua create mode 100644 gamedata/shaders/r1/models_collimsight.lua create mode 100644 gamedata/shaders/r1/models_compass_arrow.lua create mode 100644 gamedata/shaders/r1/models_compass_arrow_screen.lua create mode 100644 gamedata/shaders/r1/models_compscreen.lua create mode 100644 gamedata/shaders/r1/models_condition.lua create mode 100644 gamedata/shaders/r1/models_digiclock_hh_screen.lua create mode 100644 gamedata/shaders/r1/models_digiclock_hl_screen.lua create mode 100644 gamedata/shaders/r1/models_digiclock_mh_screen.lua create mode 100644 gamedata/shaders/r1/models_digiclock_ml_screen.lua create mode 100644 gamedata/shaders/r1/models_energy_gauss.lua create mode 100644 gamedata/shaders/r1/models_exohealth.lua create mode 100644 gamedata/shaders/r1/models_exoscreen01.lua create mode 100644 gamedata/shaders/r1/models_laserray.lua create mode 100644 gamedata/shaders/r1/models_lense_scope.lua create mode 100644 gamedata/shaders/r1/models_lenses.lua create mode 100644 gamedata/shaders/r1/models_lfo_light_dot_weapons.lua create mode 100644 gamedata/shaders/r1/models_lightplanes.lua create mode 100644 gamedata/shaders/r1/models_magazine.lua create mode 100644 gamedata/shaders/r1/models_pautina.lua create mode 100644 gamedata/shaders/r1/models_pda.lua create mode 100644 gamedata/shaders/r1/models_reflex_reticle.lua create mode 100644 gamedata/shaders/r1/models_selflight.lua create mode 100644 gamedata/shaders/r1/models_selflight_det.lua create mode 100644 gamedata/shaders/r1/models_selflightl.lua create mode 100644 gamedata/shaders/r1/models_xanomaly.lua create mode 100644 gamedata/shaders/r1/models_xdistort.lua create mode 100644 gamedata/shaders/r1/models_xdistortcolor.lua create mode 100644 gamedata/shaders/r1/models_xdistortcolorl.lua create mode 100644 gamedata/shaders/r1/models_xdistortcolorlinv.lua create mode 100644 gamedata/shaders/r1/models_xdistortinv.lua create mode 100644 gamedata/shaders/r1/models_xglass.lua create mode 100644 gamedata/shaders/r1/models_xglass2.lua create mode 100644 gamedata/shaders/r1/models_xlens.lua create mode 100644 gamedata/shaders/r1/models_xmonolith.lua create mode 100644 gamedata/shaders/r1/models_xwindows.lua create mode 100644 gamedata/shaders/r1/models_zoom.lua create mode 100644 gamedata/shaders/r1/models_zoom_gauss.lua create mode 100644 gamedata/shaders/r1/models_zoom_lerp.lua create mode 100644 gamedata/shaders/r1/models_zoomnight.lua create mode 100644 gamedata/shaders/r1/parallax_mark.ps.hlsl create mode 100644 gamedata/shaders/r1/parallax_mark.vs.hlsl create mode 100644 gamedata/shaders/r1/particle.ps.hlsl create mode 100644 gamedata/shaders/r1/particle.vs.hlsl create mode 100644 gamedata/shaders/r1/particle2t.ps.hlsl create mode 100644 gamedata/shaders/r1/particle_add.vs.hlsl create mode 100644 gamedata/shaders/r1/particle_alphaonly.ps.hlsl create mode 100644 gamedata/shaders/r1/particle_distort.ps.hlsl create mode 100644 gamedata/shaders/r1/particles_add.lua create mode 100644 gamedata/shaders/r1/particles_xadd.lua create mode 100644 gamedata/shaders/r1/particles_xdistort.lua create mode 100644 gamedata/shaders/r1/pnv.hlsli create mode 100644 gamedata/shaders/r1/portal.lua create mode 100644 gamedata/shaders/r1/portal.ps.hlsl create mode 100644 gamedata/shaders/r1/portal.vs.hlsl create mode 100644 gamedata/shaders/r1/postprocess.lua create mode 100644 gamedata/shaders/r1/postprocess.ps.hlsl create mode 100644 gamedata/shaders/r1/postprocess_cm.lua create mode 100644 gamedata/shaders/r1/postprocess_cm_pre.ps.hlsl create mode 100644 gamedata/shaders/r1/postprocess_d.lua create mode 100644 gamedata/shaders/r1/postprocess_d.ps.hlsl create mode 100644 gamedata/shaders/r1/postprocess_dcm.lua create mode 100644 gamedata/shaders/r1/selflight.lua create mode 100644 gamedata/shaders/r1/shared/cloudconfig.hlsli create mode 100644 gamedata/shaders/r1/shared/common.hlsli create mode 100644 gamedata/shaders/r1/shared/waterconfig.hlsli create mode 100644 gamedata/shaders/r1/shared/watermove.hlsli create mode 100644 gamedata/shaders/r1/shared/wmark.hlsli create mode 100644 gamedata/shaders/r1/simple.ps.hlsl create mode 100644 gamedata/shaders/r1/simple.vs.hlsl create mode 100644 gamedata/shaders/r1/simple_color.ps.hlsl create mode 100644 gamedata/shaders/r1/simple_color.vs.hlsl create mode 100644 gamedata/shaders/r1/simple_point.vs.hlsl create mode 100644 gamedata/shaders/r1/simple_spot.vs.hlsl create mode 100644 gamedata/shaders/r1/skin.hlsli create mode 100644 gamedata/shaders/r1/skin_main.hlsli create mode 100644 gamedata/shaders/r1/sky.ps.hlsl create mode 100644 gamedata/shaders/r1/sky.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_s.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_s_dt.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_s_point.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_s_spot.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_test.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_w.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_w_dt.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_w_point.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_w_spot.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_wave.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_wave_dt.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_wave_point.vs.hlsl create mode 100644 gamedata/shaders/r1/tree_wave_spot.vs.hlsl create mode 100644 gamedata/shaders/r1/vert.ps.hlsl create mode 100644 gamedata/shaders/r1/vert.vs.hlsl create mode 100644 gamedata/shaders/r1/vert_dt.ps.hlsl create mode 100644 gamedata/shaders/r1/vert_dt.vs.hlsl create mode 100644 gamedata/shaders/r1/vert_l.ps.hlsl create mode 100644 gamedata/shaders/r1/vert_l.vs.hlsl create mode 100644 gamedata/shaders/r1/vert_point.vs.hlsl create mode 100644 gamedata/shaders/r1/vert_spot.vs.hlsl create mode 100644 gamedata/shaders/r1/water.ps.hlsl create mode 100644 gamedata/shaders/r1/water.vs.hlsl create mode 100644 gamedata/shaders/r1/waterd.ps.hlsl create mode 100644 gamedata/shaders/r1/waterd.vs.hlsl create mode 100644 gamedata/shaders/r1/wmark.ps.hlsl create mode 100644 gamedata/shaders/r1/wmark.vs.hlsl create mode 100644 gamedata/shaders/r1/wmark_point.vs.hlsl create mode 100644 gamedata/shaders/r1/wmark_spot.vs.hlsl create mode 100644 gamedata/shaders/r1/wmarkmult.ps.hlsl create mode 100644 gamedata/shaders/r1/yuv2rgb.ps.hlsl create mode 100644 gamedata/shaders/r2/.lua create mode 100644 gamedata/shaders/r2/accum_base.ps.hlsl create mode 100644 gamedata/shaders/r2/accum_emissive.ps.hlsl create mode 100644 gamedata/shaders/r2/accum_emissivel.ps.hlsl create mode 100644 gamedata/shaders/r2/accum_indirect.ps.hlsl create mode 100644 gamedata/shaders/r2/accum_mask.vs.hlsl create mode 100644 gamedata/shaders/r2/accum_sun.ps.hlsl create mode 100644 gamedata/shaders/r2/accum_sun_mask.ps.hlsl create mode 100644 gamedata/shaders/r2/accum_volume.vs.hlsl create mode 100644 gamedata/shaders/r2/accum_volumetric.lua create mode 100644 gamedata/shaders/r2/accum_volumetric.ps.hlsl create mode 100644 gamedata/shaders/r2/accum_volumetric.vs.hlsl create mode 100644 gamedata/shaders/r2/accum_volumetric_sun_cascade.lua create mode 100644 gamedata/shaders/r2/accum_volumetric_sun_cascade.ps.hlsl create mode 100644 gamedata/shaders/r2/avg4.ps.hlsl create mode 100644 gamedata/shaders/r2/base_lplanes.ps.hlsl create mode 100644 gamedata/shaders/r2/base_lplanes.vs.hlsl create mode 100644 gamedata/shaders/r2/base_lplanes_fft.ps.hlsl create mode 100644 gamedata/shaders/r2/bloom_build.ps.hlsl create mode 100644 gamedata/shaders/r2/bloom_filter.ps.hlsl create mode 100644 gamedata/shaders/r2/bloom_filter_f.ps.hlsl create mode 100644 gamedata/shaders/r2/bloom_luminance_1.ps.hlsl create mode 100644 gamedata/shaders/r2/bloom_luminance_2.ps.hlsl create mode 100644 gamedata/shaders/r2/bloom_luminance_3.ps.hlsl create mode 100644 gamedata/shaders/r2/chromatic_aberration.ps.hlsl create mode 100644 gamedata/shaders/r2/clouds.lua create mode 100644 gamedata/shaders/r2/clouds.ps.hlsl create mode 100644 gamedata/shaders/r2/clouds.vs.hlsl create mode 100644 gamedata/shaders/r2/combine_1.ps.hlsl create mode 100644 gamedata/shaders/r2/combine_1.vs.hlsl create mode 100644 gamedata/shaders/r2/combine_2.ps.hlsl create mode 100644 gamedata/shaders/r2/combine_volumetric.lua create mode 100644 gamedata/shaders/r2/combine_volumetric.ps.hlsl create mode 100644 gamedata/shaders/r2/common.hlsli create mode 100644 gamedata/shaders/r2/copy.ps.hlsl create mode 100644 gamedata/shaders/r2/copy_p.ps.hlsl create mode 100644 gamedata/shaders/r2/deffer_base.ps.hlsl create mode 100644 gamedata/shaders/r2/deffer_base.vs.hlsl create mode 100644 gamedata/shaders/r2/deffer_detail.vs.hlsl create mode 100644 gamedata/shaders/r2/deffer_impl.ps.hlsl create mode 100644 gamedata/shaders/r2/deffer_lod.vs.hlsl create mode 100644 gamedata/shaders/r2/deffer_model.vs.hlsl create mode 100644 gamedata/shaders/r2/deffer_particle.ps.hlsl create mode 100644 gamedata/shaders/r2/deffer_particle.vs.hlsl create mode 100644 gamedata/shaders/r2/depth.ps.hlsl create mode 100644 gamedata/shaders/r2/depth_downs.ps.hlsl create mode 100644 gamedata/shaders/r2/details_lod.lua create mode 100644 gamedata/shaders/r2/distort.lua create mode 100644 gamedata/shaders/r2/distort.ps.hlsl create mode 100644 gamedata/shaders/r2/dof.hlsli create mode 100644 gamedata/shaders/r2/dumb.ps.hlsl create mode 100644 gamedata/shaders/r2/dumb.vs.hlsl create mode 100644 gamedata/shaders/r2/editor.vs.hlsl create mode 100644 gamedata/shaders/r2/effects_lightplanes.lua create mode 100644 gamedata/shaders/r2/effects_sun.lua create mode 100644 gamedata/shaders/r2/effects_sun.vs.hlsl create mode 100644 gamedata/shaders/r2/effects_wallmarkblend.lua create mode 100644 gamedata/shaders/r2/effects_wallmarkmult.lua create mode 100644 gamedata/shaders/r2/effects_wallmarkset.lua create mode 100644 gamedata/shaders/r2/effects_water.lua create mode 100644 gamedata/shaders/r2/effects_waterryaska.lua create mode 100644 gamedata/shaders/r2/effects_waterstuden.lua create mode 100644 gamedata/shaders/r2/fencode.hlsli create mode 100644 gamedata/shaders/r2/font2.ps.hlsl create mode 100644 gamedata/shaders/r2/forward_base.ps.hlsl create mode 100644 gamedata/shaders/r2/fxaa.hlsli create mode 100644 gamedata/shaders/r2/fxaa_luma.ps.hlsl create mode 100644 gamedata/shaders/r2/fxaa_main.ps.hlsl create mode 100644 gamedata/shaders/r2/fxaa_main.vs.hlsl create mode 100644 gamedata/shaders/r2/hmodel.hlsli create mode 100644 gamedata/shaders/r2/hmodel_f.hlsli create mode 100644 gamedata/shaders/r2/hud3d.ps.hlsl create mode 100644 gamedata/shaders/r2/hud3d.vs.hlsl create mode 100644 gamedata/shaders/r2/hud_crosshair.lua create mode 100644 gamedata/shaders/r2/hud_font.lua create mode 100644 gamedata/shaders/r2/hud_font.ps.hlsl create mode 100644 gamedata/shaders/r2/hud_font2.lua create mode 100644 gamedata/shaders/r2/hud_movie.lua create mode 100644 gamedata/shaders/r2/hud_p3d.lua create mode 100644 gamedata/shaders/r2/lmodel.hlsli create mode 100644 gamedata/shaders/r2/lod.ps.hlsl create mode 100644 gamedata/shaders/r2/lod.vs.hlsl create mode 100644 gamedata/shaders/r2/mblur.hlsli create mode 100644 gamedata/shaders/r2/model_clockarrow_h.ps.hlsl create mode 100644 gamedata/shaders/r2/model_clockarrow_m.ps.hlsl create mode 100644 gamedata/shaders/r2/model_clockarrow_s.ps.hlsl create mode 100644 gamedata/shaders/r2/model_compassarrow.ps.hlsl create mode 100644 gamedata/shaders/r2/model_compscreen.ps.hlsl create mode 100644 gamedata/shaders/r2/model_def_lplanes.vs.hlsl create mode 100644 gamedata/shaders/r2/model_def_lq.ps.hlsl create mode 100644 gamedata/shaders/r2/model_def_lq.vs.hlsl create mode 100644 gamedata/shaders/r2/model_digiclock_hh.ps.hlsl create mode 100644 gamedata/shaders/r2/model_digiclock_hl.ps.hlsl create mode 100644 gamedata/shaders/r2/model_digiclock_mh.ps.hlsl create mode 100644 gamedata/shaders/r2/model_digiclock_ml.ps.hlsl create mode 100644 gamedata/shaders/r2/model_distort.vs.hlsl create mode 100644 gamedata/shaders/r2/model_distort2t.vs.hlsl create mode 100644 gamedata/shaders/r2/model_distort4ghost.vs.hlsl create mode 100644 gamedata/shaders/r2/model_distort4glass.vs.hlsl create mode 100644 gamedata/shaders/r2/model_distort_inv.vs.hlsl create mode 100644 gamedata/shaders/r2/model_env_lq.ps.hlsl create mode 100644 gamedata/shaders/r2/model_env_lq.vs.hlsl create mode 100644 gamedata/shaders/r2/model_exohealth.ps.hlsl create mode 100644 gamedata/shaders/r2/model_exoscreen.ps.hlsl create mode 100644 gamedata/shaders/r2/model_green_conditionbar.ps.hlsl create mode 100644 gamedata/shaders/r2/model_green_energybar.ps.hlsl create mode 100644 gamedata/shaders/r2/model_pda_screen.ps.hlsl create mode 100644 gamedata/shaders/r2/model_scope_gauss.ps.hlsl create mode 100644 gamedata/shaders/r2/model_scope_lense.ps.hlsl create mode 100644 gamedata/shaders/r2/model_scope_lense.vs.hlsl create mode 100644 gamedata/shaders/r2/model_scope_lense_lerp.ps.hlsl create mode 100644 gamedata/shaders/r2/model_scope_lense_night.ps.hlsl create mode 100644 gamedata/shaders/r2/model_tricolor_conditionbar.ps.hlsl create mode 100644 gamedata/shaders/r2/models_clockarrow_h.lua create mode 100644 gamedata/shaders/r2/models_clockarrow_h_screen.lua create mode 100644 gamedata/shaders/r2/models_clockarrow_m.lua create mode 100644 gamedata/shaders/r2/models_clockarrow_m_screen.lua create mode 100644 gamedata/shaders/r2/models_clockarrow_s.lua create mode 100644 gamedata/shaders/r2/models_clockarrow_s_screen.lua create mode 100644 gamedata/shaders/r2/models_collimator.lua create mode 100644 gamedata/shaders/r2/models_collimsight.lua create mode 100644 gamedata/shaders/r2/models_compass_arrow.lua create mode 100644 gamedata/shaders/r2/models_compass_arrow_screen.lua create mode 100644 gamedata/shaders/r2/models_compscreen.lua create mode 100644 gamedata/shaders/r2/models_condition.lua create mode 100644 gamedata/shaders/r2/models_digiclock_hh_screen.lua create mode 100644 gamedata/shaders/r2/models_digiclock_hl_screen.lua create mode 100644 gamedata/shaders/r2/models_digiclock_mh_screen.lua create mode 100644 gamedata/shaders/r2/models_digiclock_ml_screen.lua create mode 100644 gamedata/shaders/r2/models_energy_gauss.lua create mode 100644 gamedata/shaders/r2/models_exohealth.lua create mode 100644 gamedata/shaders/r2/models_exoscreen01.lua create mode 100644 gamedata/shaders/r2/models_laserray.lua create mode 100644 gamedata/shaders/r2/models_lense_scope.lua create mode 100644 gamedata/shaders/r2/models_lfo_light_dot_weapons.lua create mode 100644 gamedata/shaders/r2/models_lightplanes.lua create mode 100644 gamedata/shaders/r2/models_metallreflect.lua create mode 100644 gamedata/shaders/r2/models_pautina.lua create mode 100644 gamedata/shaders/r2/models_pda.lua create mode 100644 gamedata/shaders/r2/models_reflex_reticle.lua create mode 100644 gamedata/shaders/r2/models_selflight.lua create mode 100644 gamedata/shaders/r2/models_selflight_det.lua create mode 100644 gamedata/shaders/r2/models_selflightl.lua create mode 100644 gamedata/shaders/r2/models_xanomaly.lua create mode 100644 gamedata/shaders/r2/models_xdistort.lua create mode 100644 gamedata/shaders/r2/models_xdistortcolor.lua create mode 100644 gamedata/shaders/r2/models_xdistortcolorl.lua create mode 100644 gamedata/shaders/r2/models_xdistortcolorlinv.lua create mode 100644 gamedata/shaders/r2/models_xdistortinv.lua create mode 100644 gamedata/shaders/r2/models_xglass.lua create mode 100644 gamedata/shaders/r2/models_xglass2.lua create mode 100644 gamedata/shaders/r2/models_xlens.lua create mode 100644 gamedata/shaders/r2/models_xmonolith.lua create mode 100644 gamedata/shaders/r2/models_xwindows.lua create mode 100644 gamedata/shaders/r2/models_zoom.lua create mode 100644 gamedata/shaders/r2/models_zoom_gauss.lua create mode 100644 gamedata/shaders/r2/models_zoom_lerp.lua create mode 100644 gamedata/shaders/r2/models_zoomnight.lua create mode 100644 gamedata/shaders/r2/parallax_mark.ps.hlsl create mode 100644 gamedata/shaders/r2/parallax_mark.vs.hlsl create mode 100644 gamedata/shaders/r2/particle-clip.vs.hlsl create mode 100644 gamedata/shaders/r2/particle.ps.hlsl create mode 100644 gamedata/shaders/r2/particle.vs.hlsl create mode 100644 gamedata/shaders/r2/particle2t.ps.hlsl create mode 100644 gamedata/shaders/r2/particle_add.ps.hlsl create mode 100644 gamedata/shaders/r2/particle_alphaonly.ps.hlsl create mode 100644 gamedata/shaders/r2/particle_distort.ps.hlsl create mode 100644 gamedata/shaders/r2/particle_s-aadd.ps.hlsl create mode 100644 gamedata/shaders/r2/particle_s-add.ps.hlsl create mode 100644 gamedata/shaders/r2/particle_s-blend.ps.hlsl create mode 100644 gamedata/shaders/r2/particle_s-mul.ps.hlsl create mode 100644 gamedata/shaders/r2/particles_add.lua create mode 100644 gamedata/shaders/r2/particles_xadd.lua create mode 100644 gamedata/shaders/r2/particles_xdistort.lua create mode 100644 gamedata/shaders/r2/pnv.hlsli create mode 100644 gamedata/shaders/r2/portal.lua create mode 100644 gamedata/shaders/r2/portal.ps.hlsl create mode 100644 gamedata/shaders/r2/portal.vs.hlsl create mode 100644 gamedata/shaders/r2/postprocess.lua create mode 100644 gamedata/shaders/r2/postprocess.ps.hlsl create mode 100644 gamedata/shaders/r2/postprocess_cm.ps.hlsl create mode 100644 gamedata/shaders/r2/saturation.ps.hlsl create mode 100644 gamedata/shaders/r2/selflight.lua create mode 100644 gamedata/shaders/r2/selflight2.lua create mode 100644 gamedata/shaders/r2/shadow.hlsli create mode 100644 gamedata/shaders/r2/shadow_base.ps.hlsl create mode 100644 gamedata/shaders/r2/shadow_base.vs.hlsl create mode 100644 gamedata/shaders/r2/shadow_lod.vs.hlsl create mode 100644 gamedata/shaders/r2/shadow_model.vs.hlsl create mode 100644 gamedata/shaders/r2/shared/cloudconfig.hlsli create mode 100644 gamedata/shaders/r2/shared/common.hlsli create mode 100644 gamedata/shaders/r2/shared/waterconfig.hlsli create mode 100644 gamedata/shaders/r2/shared/watermove.hlsli create mode 100644 gamedata/shaders/r2/shared/wmark.hlsli create mode 100644 gamedata/shaders/r2/simple.ps.hlsl create mode 100644 gamedata/shaders/r2/simple.vs.hlsl create mode 100644 gamedata/shaders/r2/simple_color.ps.hlsl create mode 100644 gamedata/shaders/r2/simple_color.vs.hlsl create mode 100644 gamedata/shaders/r2/skin.hlsli create mode 100644 gamedata/shaders/r2/sky.ps.hlsl create mode 100644 gamedata/shaders/r2/sky.vs.hlsl create mode 100644 gamedata/shaders/r2/sload.hlsli create mode 100644 gamedata/shaders/r2/smaa.hlsli create mode 100644 gamedata/shaders/r2/smaa_bweight_calc.ps.hlsl create mode 100644 gamedata/shaders/r2/smaa_edge_detect.ps.hlsl create mode 100644 gamedata/shaders/r2/smaa_neighbour_blend.ps.hlsl create mode 100644 gamedata/shaders/r2/ssao.ps.hlsl create mode 100644 gamedata/shaders/r2/ssao_blur.ps.hlsl create mode 100644 gamedata/shaders/r2/ssao_calc.ps.hlsl create mode 100644 gamedata/shaders/r2/stub_default.ps.hlsl create mode 100644 gamedata/shaders/r2/stub_notransform_t_font.vs.hlsl create mode 100644 gamedata/shaders/r2/vert.ps.hlsl create mode 100644 gamedata/shaders/r2/vert.vs.hlsl create mode 100644 gamedata/shaders/r2/vignette.ps.hlsl create mode 100644 gamedata/shaders/r2/water.ps.hlsl create mode 100644 gamedata/shaders/r2/water.vs.hlsl create mode 100644 gamedata/shaders/r2/water_soft.ps.hlsl create mode 100644 gamedata/shaders/r2/water_soft.vs.hlsl create mode 100644 gamedata/shaders/r2/waterd.ps.hlsl create mode 100644 gamedata/shaders/r2/waterd.vs.hlsl create mode 100644 gamedata/shaders/r2/waterd_soft.ps.hlsl create mode 100644 gamedata/shaders/r2/waterd_soft.vs.hlsl create mode 100644 gamedata/shaders/r2/wmark.vs.hlsl create mode 100644 gamedata/shaders/r2/yuv2rgb.ps.hlsl create mode 100644 gamedata/shaders/shared/cloudconfig.hlsli create mode 100644 gamedata/shaders/shared/common.hlsli create mode 100644 gamedata/shaders/shared/waterconfig.hlsli create mode 100644 gamedata/shaders/shared/watermove.hlsli create mode 100644 gamedata/shaders/shared/wmark.hlsli create mode 100644 gamedata/shaders/start_rename.ps1 create mode 100644 gamedata/sounds/device/torch_click.ogg create mode 100644 gamedata/sounds/device/torch_click_off.ogg create mode 100644 gamedata/textures/ed/bar/add.dds create mode 100644 gamedata/textures/ed/bar/aimap.dds create mode 100644 gamedata/textures/ed/bar/angle.dds create mode 100644 gamedata/textures/ed/bar/arcball.dds create mode 100644 gamedata/textures/ed/bar/asnap.dds create mode 100644 gamedata/textures/ed/bar/axismove.dds create mode 100644 gamedata/textures/ed/bar/axisx.dds create mode 100644 gamedata/textures/ed/bar/axisy.dds create mode 100644 gamedata/textures/ed/bar/axisz.dds create mode 100644 gamedata/textures/ed/bar/axiszx.dds create mode 100644 gamedata/textures/ed/bar/build_all.dds create mode 100644 gamedata/textures/ed/bar/cform.dds create mode 100644 gamedata/textures/ed/bar/cslocal.dds create mode 100644 gamedata/textures/ed/bar/delete.dds create mode 100644 gamedata/textures/ed/bar/eye.dds create mode 100644 gamedata/textures/ed/bar/favorite_off.dds create mode 100644 gamedata/textures/ed/bar/favorite_on.dds create mode 100644 gamedata/textures/ed/bar/freefly.dds create mode 100644 gamedata/textures/ed/bar/ggraph.dds create mode 100644 gamedata/textures/ed/bar/grid.dds create mode 100644 gamedata/textures/ed/bar/gsnap.dds create mode 100644 gamedata/textures/ed/bar/menu.dds create mode 100644 gamedata/textures/ed/bar/move.dds create mode 100644 gamedata/textures/ed/bar/movetosnap.dds create mode 100644 gamedata/textures/ed/bar/msnap.dds create mode 100644 gamedata/textures/ed/bar/new.dds create mode 100644 gamedata/textures/ed/bar/nsnap.dds create mode 100644 gamedata/textures/ed/bar/nuscale.dds create mode 100644 gamedata/textures/ed/bar/open.dds create mode 100644 gamedata/textures/ed/bar/open_gamedata.dds create mode 100644 gamedata/textures/ed/bar/osnap.dds create mode 100644 gamedata/textures/ed/bar/planemove.dds create mode 100644 gamedata/textures/ed/bar/play_clean_game.dds create mode 100644 gamedata/textures/ed/bar/play_in_editor.dds create mode 100644 gamedata/textures/ed/bar/play_pc.dds create mode 100644 gamedata/textures/ed/bar/redo.dds create mode 100644 gamedata/textures/ed/bar/reload_configs.dds create mode 100644 gamedata/textures/ed/bar/rotate.dds create mode 100644 gamedata/textures/ed/bar/save.dds create mode 100644 gamedata/textures/ed/bar/save_xr.dds create mode 100644 gamedata/textures/ed/bar/scale.dds create mode 100644 gamedata/textures/ed/bar/scale_grid.dds create mode 100644 gamedata/textures/ed/bar/select.dds create mode 100644 gamedata/textures/ed/bar/source/aimap.png create mode 100644 gamedata/textures/ed/bar/source/angle.png create mode 100644 gamedata/textures/ed/bar/source/angle.svg create mode 100644 gamedata/textures/ed/bar/source/btn_folderopen.bmp create mode 100644 gamedata/textures/ed/bar/source/buildall.png create mode 100644 gamedata/textures/ed/bar/source/camera.svg create mode 100644 gamedata/textures/ed/bar/source/cform.png create mode 100644 gamedata/textures/ed/bar/source/game_graph.png create mode 100644 gamedata/textures/ed/bar/source/globe.svg create mode 100644 gamedata/textures/ed/bar/source/grid.png create mode 100644 gamedata/textures/ed/bar/source/grid.svg create mode 100644 gamedata/textures/ed/bar/source/menu.png create mode 100644 gamedata/textures/ed/bar/source/menu.svg create mode 100644 gamedata/textures/ed/bar/source/move.png create mode 100644 gamedata/textures/ed/bar/source/new.bmp create mode 100644 gamedata/textures/ed/bar/source/open.bmp create mode 100644 gamedata/textures/ed/bar/source/pilot.svg create mode 100644 gamedata/textures/ed/bar/source/playcleangame.png create mode 100644 gamedata/textures/ed/bar/source/playineditorplay.png create mode 100644 gamedata/textures/ed/bar/source/playpc.png create mode 100644 gamedata/textures/ed/bar/source/prop_favoriteoff.png create mode 100644 gamedata/textures/ed/bar/source/prop_favoriteon.png create mode 100644 gamedata/textures/ed/bar/source/quad.svg create mode 100644 gamedata/textures/ed/bar/source/rcrefresh.bmp create mode 100644 gamedata/textures/ed/bar/source/rotate.png create mode 100644 gamedata/textures/ed/bar/source/rotate.svg create mode 100644 gamedata/textures/ed/bar/source/save.bmp create mode 100644 gamedata/textures/ed/bar/source/scale-grid-snap.svg create mode 100644 gamedata/textures/ed/bar/source/scale.png create mode 100644 gamedata/textures/ed/bar/source/scale.svg create mode 100644 gamedata/textures/ed/bar/source/scale_grid.png create mode 100644 gamedata/textures/ed/bar/source/select.png create mode 100644 gamedata/textures/ed/bar/source/select.svg create mode 100644 gamedata/textures/ed/bar/source/space_restrictor.png create mode 100644 gamedata/textures/ed/bar/source/speed.svg create mode 100644 gamedata/textures/ed/bar/source/square.svg create mode 100644 gamedata/textures/ed/bar/source/surface-snap.svg create mode 100644 gamedata/textures/ed/bar/source/terminated.png create mode 100644 gamedata/textures/ed/bar/source/toolbarleftgroup.png create mode 100644 gamedata/textures/ed/bar/source/toolbarmiddlegroup.png create mode 100644 gamedata/textures/ed/bar/source/toolbarrightgroup.png create mode 100644 gamedata/textures/ed/bar/source/translate.svg create mode 100644 gamedata/textures/ed/bar/source/translaterotate2d.svg create mode 100644 gamedata/textures/ed/bar/source/translaterotate3d.svg create mode 100644 gamedata/textures/ed/bar/srestrictor.dds create mode 100644 gamedata/textures/ed/bar/terminated.dds create mode 100644 gamedata/textures/ed/bar/undo.dds create mode 100644 gamedata/textures/ed/bar/validate.dds create mode 100644 gamedata/textures/ed/bar/viewb.dds create mode 100644 gamedata/textures/ed/bar/viewfront.dds create mode 100644 gamedata/textures/ed/bar/viewleft.dds create mode 100644 gamedata/textures/ed/bar/viewreset.dds create mode 100644 gamedata/textures/ed/bar/viewright.dds create mode 100644 gamedata/textures/ed/bar/viewtop.dds create mode 100644 gamedata/textures/ed/bar/vsnap.dds create mode 100644 gamedata/textures/ed/bar/weatherprop.dds create mode 100644 gamedata/textures/ed/bar/weatherprop.thm create mode 100644 gamedata/textures/ed/bar/win_header_close.dds create mode 100644 gamedata/textures/ed/bar/win_header_logo.dds create mode 100644 gamedata/textures/ed/bar/win_header_max.dds create mode 100644 gamedata/textures/ed/bar/win_header_min.dds create mode 100644 gamedata/textures/ed/bar/win_header_restore.dds create mode 100644 gamedata/textures/ed/bar/win_preferences.dds create mode 100644 gamedata/textures/ed/bar/x.dds create mode 100644 gamedata/textures/ed/bar/y.dds create mode 100644 gamedata/textures/ed/bar/z.dds create mode 100644 gamedata/textures/ed/bar/zoom.dds create mode 100644 gamedata/textures/ed/bar/zoomsel.dds create mode 100644 gamedata/textures/ed/bar/zx.dds create mode 100644 gamedata/textures/ed/content_browser/backup.dds create mode 100644 gamedata/textures/ed/content_browser/cmd.dds create mode 100644 gamedata/textures/ed/content_browser/dialogs.dds create mode 100644 gamedata/textures/ed/content_browser/dll.dds create mode 100644 gamedata/textures/ed/content_browser/env_mod.dds create mode 100644 gamedata/textures/ed/content_browser/exe.dds create mode 100644 gamedata/textures/ed/content_browser/file.dds create mode 100644 gamedata/textures/ed/content_browser/folder.dds create mode 100644 gamedata/textures/ed/content_browser/image.dds create mode 100644 gamedata/textures/ed/content_browser/level.dds create mode 100644 gamedata/textures/ed/content_browser/log.dds create mode 100644 gamedata/textures/ed/content_browser/multi.dds create mode 100644 gamedata/textures/ed/content_browser/object.dds create mode 100644 gamedata/textures/ed/content_browser/ogg.dds create mode 100644 gamedata/textures/ed/content_browser/search.dds create mode 100644 gamedata/textures/ed/content_browser/seq.dds create mode 100644 gamedata/textures/ed/content_browser/tga.dds create mode 100644 gamedata/textures/ed/content_browser/thm.dds create mode 100644 gamedata/textures/ed/content_browser/wav.dds create mode 100644 gamedata/textures/ed/ed_actor.dds create mode 100644 gamedata/textures/ed/ed_actor.thm create mode 100644 gamedata/textures/ed/ed_ai_arrows_01.dds create mode 100644 gamedata/textures/ed/ed_ai_arrows_01.thm create mode 100644 gamedata/textures/ed/ed_ai_arrows_02.dds create mode 100644 gamedata/textures/ed/ed_ai_arrows_02.thm create mode 100644 gamedata/textures/ed/ed_ai_arrows_03.dds create mode 100644 gamedata/textures/ed/ed_ai_arrows_03.thm create mode 100644 gamedata/textures/ed/ed_axis.dds create mode 100644 gamedata/textures/ed/ed_axis.thm create mode 100644 gamedata/textures/ed/ed_dummy_bump#.dds create mode 100644 gamedata/textures/ed/ed_dummy_bump.dds create mode 100644 gamedata/textures/ed/ed_dummy_bump.thm create mode 100644 gamedata/textures/ed/ed_mp.dds create mode 100644 gamedata/textures/ed/ed_mp.thm create mode 100644 gamedata/textures/ed/ed_nodata.dds create mode 100644 gamedata/textures/ed/ed_not_existing_texture.dds create mode 100644 gamedata/textures/ed/ed_not_existing_texture.thm create mode 100644 gamedata/textures/ed/plugins/lua.dds create mode 100644 gamedata/textures/ed/plugins/python.dds create mode 100644 gamedata/textures/fx/fx_noise2.dds create mode 100644 gamedata/textures/fx/fx_noise2.thm create mode 100644 gamedata/textures/grad/grad_acid_mine.dds create mode 100644 gamedata/textures/grad/grad_acid_mine.thm create mode 100644 gamedata/textures/grad/grad_acidic.dds create mode 100644 gamedata/textures/grad/grad_acidic.thm create mode 100644 gamedata/textures/grad/grad_acidic_mine.dds create mode 100644 gamedata/textures/grad/grad_acidic_mine.thm create mode 100644 gamedata/textures/grad/grad_electra_mine.dds create mode 100644 gamedata/textures/grad/grad_electra_mine.thm create mode 100644 gamedata/textures/grad/grad_electric_mine.dds create mode 100644 gamedata/textures/grad/grad_electric_mine.thm create mode 100644 gamedata/textures/grad/grad_nightvision_1.dds create mode 100644 gamedata/textures/grad/grad_nightvision_1.thm create mode 100644 gamedata/textures/grad/grad_nightvision_2.dds create mode 100644 gamedata/textures/grad/grad_nightvision_2.thm create mode 100644 gamedata/textures/grad/grad_nightvision_3.dds create mode 100644 gamedata/textures/grad/grad_nightvision_3.thm create mode 100644 gamedata/textures/grad/grad_psi.dds create mode 100644 gamedata/textures/grad/grad_psi.thm create mode 100644 gamedata/textures/grad/grad_psy.dds create mode 100644 gamedata/textures/grad/grad_psy.thm create mode 100644 gamedata/textures/grad/grad_radiation.dds create mode 100644 gamedata/textures/grad/grad_radiation.thm create mode 100644 gamedata/textures/grad/grad_rainbow.dds create mode 100644 gamedata/textures/grad/grad_rainbow.thm create mode 100644 gamedata/textures/grad/grad_steam_mine.dds create mode 100644 gamedata/textures/grad/grad_steam_mine.thm create mode 100644 gamedata/textures/grad/grad_thermal.dds create mode 100644 gamedata/textures/grad/grad_thermal.thm create mode 100644 gamedata/textures/grad/grad_thermal_mine.dds create mode 100644 gamedata/textures/grad/grad_thermal_mine.thm create mode 100644 gamedata/textures/internal/internal_firetransferfunction.dds create mode 100644 gamedata/textures/intro/intro_no_start_picture.dds create mode 100644 gamedata/textures/lights/lights_blamplight.dds create mode 100644 gamedata/textures/lights/lights_blamplight.thm create mode 100644 gamedata/textures/lights/lights_fanblade3.dds create mode 100644 gamedata/textures/lights/lights_fanblade3.thm create mode 100644 gamedata/textures/mtl/mtl_pod_green_bump.dds create mode 100644 gamedata/textures/shaders/blue_noise_3x3.dds create mode 100644 gamedata/textures/shaders/r2_material.dds create mode 100644 gamedata/textures/shaders/shaders_sunmask.dds create mode 100644 gamedata/textures/shaders/smaa/smaa_area_tex_dx10.dds create mode 100644 gamedata/textures/shaders/smaa/smaa_area_tex_dx9.dds create mode 100644 gamedata/textures/shaders/smaa/smaa_search_tex.dds create mode 100644 gamedata/textures/shaders/snowmask/snow.dds create mode 100644 gamedata/textures/shaders/snowmask/snow.thm create mode 100644 gamedata/textures/shaders/snowmask/snow_bump#.dds create mode 100644 gamedata/textures/shaders/snowmask/snow_bump.dds create mode 100644 gamedata/textures/shaders/snowmask/snow_bump.thm create mode 100644 gamedata/textures/ui/ui_flags.dds create mode 100644 gamedata/textures/ui/ui_grid_alt.dds create mode 100644 gamedata/textures/ui/ui_ix-ray_team_logo.dds create mode 100644 gamedata/textures/ui/ui_ix-ray_team_logo.thm create mode 100644 gamedata/textures/ui/ui_ixray_ex.dds create mode 100644 gamedata/textures/ui/ui_ixray_ex.thm create mode 100644 gamedata/textures/ui/ui_ixray_mutant_portrets.dds create mode 100644 gamedata/textures/ui/ui_ixray_mutant_portrets.thm create mode 100644 gamedata/textures/ui/ui_microphone.dds create mode 100644 gamedata/textures/ui/ui_microphone.thm create mode 100644 gamedata/textures/ui/ui_voice.dds create mode 100644 gamedata/textures/ui/ui_voice.thm create mode 100644 gamedata/textures/water/water_caustic.01.dds create mode 100644 gamedata/textures/water/water_caustic.02.dds create mode 100644 gamedata/textures/water/water_caustic.03.dds create mode 100644 gamedata/textures/water/water_caustic.04.dds create mode 100644 gamedata/textures/water/water_caustic.05.dds create mode 100644 gamedata/textures/water/water_caustic.06.dds create mode 100644 gamedata/textures/water/water_caustic.07.dds create mode 100644 gamedata/textures/water/water_caustic.08.dds create mode 100644 gamedata/textures/water/water_caustic.09.dds create mode 100644 gamedata/textures/water/water_caustic.10.dds create mode 100644 gamedata/textures/water/water_caustic.11.dds create mode 100644 gamedata/textures/water/water_caustic.12.dds create mode 100644 gamedata/textures/water/water_caustic.13.dds create mode 100644 gamedata/textures/water/water_caustic.14.dds create mode 100644 gamedata/textures/water/water_caustic.15.dds create mode 100644 gamedata/textures/water/water_caustic.16.dds create mode 100644 gamedata/textures/water/water_caustic.17.dds create mode 100644 gamedata/textures/water/water_caustic.18.dds create mode 100644 gamedata/textures/water/water_caustic.19.dds create mode 100644 gamedata/textures/water/water_caustic.20.dds create mode 100644 gamedata/textures/water/water_caustic.21.dds create mode 100644 gamedata/textures/water/water_caustic.22.dds create mode 100644 gamedata/textures/water/water_caustic.23.dds create mode 100644 gamedata/textures/water/water_caustic.24.dds create mode 100644 gamedata/textures/water/water_caustic.25.dds create mode 100644 gamedata/textures/water/water_caustic.26.dds create mode 100644 gamedata/textures/water/water_caustic.27.dds create mode 100644 gamedata/textures/water/water_caustic.28.dds create mode 100644 gamedata/textures/water/water_caustic.29.dds create mode 100644 gamedata/textures/water/water_caustic.30.dds create mode 100644 gamedata/textures/water/water_caustic.31.dds create mode 100644 gamedata/textures/water/water_caustic.32.dds create mode 100644 gamedata/textures/water/water_caustic.dds create mode 100644 gamedata/textures/water/water_caustic.seq create mode 100644 gamedata/textures/water/water_caustic.thm create mode 100644 ixr_addons/e4s/addon.init diff --git a/gamedata/anims/camera_effects/actor_move/crouch_down.anm b/gamedata/anims/camera_effects/actor_move/crouch_down.anm new file mode 100644 index 0000000000000000000000000000000000000000..cd1f843eb67bd17ccd9e48d3952be0e90b1b53da GIT binary patch literal 1289 zcmZP&WME)qWq<&FF!jNam4T6wlOg5DoedE21_mVPqw{)uXGe!E1F|4PL*25eJ32c! z?9haH`}%gAJ>!EetQPWe8_*DR;WLFC7OPjSLKi-Fd4u`cGiT6+lRhPxy?^%(T^Q0=9(be8L=?m+sdnV)GKifzOuMykyXc)k_K@*uAs?N5aGAB>*@!EetQPWe8_*DR;WLFC7OPjSLKi-Fd4u`cGiT6+lRhPxy?^%(T^QdKVTi>0ja5 ziN#B@J6N_;#Y><-z~Uu{Fh(qagt2%Dq8h_XAYm+C0tsXB5=fY2FExO4p`}R>AG?=; z!q~jjfZa(OCZ(Qz0?4dA|c_uOPzo%;q@Ii$CmIcE?Htrczj+;w5YC6TmVC!%LMv4{gKlC7_QmyaWJpL1YX7 literal 0 HcmV?d00001 diff --git a/gamedata/anims/camera_effects/actor_move/crouch_up.anm b/gamedata/anims/camera_effects/actor_move/crouch_up.anm new file mode 100644 index 0000000000000000000000000000000000000000..11c75d1b58c45b26c23865dc1cd90a60b4f7741f GIT binary patch literal 1289 zcmb`{ze@sP7zgmLgKwg< zymYal$T+1RYeiEOf=MkF4&8M^_V!(b-gkK6J3Kreo`)CRfXfZ%bbUY7X*XQ1cFfoA zbSGEPbVEbsOjK1T(HufqO>G%bRSF7mXDntE&5#(&voFV15ivFwCEsp3Eykr=eY|Lz zVjO-8dtWORF>drdC3IqweohkzO3(ACMo7uvlNJ9V1HTvcM@Vb3oFk-}!o6KYB-JlHSwiZ&7(5}Qj^)kFzmS0Z z7$E_VUP1!qyo6*GIU=NZTm6ub;`Q|dLb_S%)mtVh&Jces9;zunBh};pBPDkHjFgYE zDZxmxDdEbKB_t@<1}E8lx3GA~tCS>-P*Qa`z)0A(i-?N{oK27^0jEAjg3i7Ni^E7? De;{sv literal 0 HcmV?d00001 diff --git a/gamedata/anims/camera_effects/actor_move/crouch_up_aim.anm b/gamedata/anims/camera_effects/actor_move/crouch_up_aim.anm new file mode 100644 index 0000000000000000000000000000000000000000..754ece6037903d3411c7532dd65ea59e7abf8bc0 GIT binary patch literal 1289 zcmZP&WME)qWq<&FF!jNam4T6wlOg5DoedE21_mVPqw{)uXGe!E1F|4PL*25eJ32c! z?9haH`}%gAJ>!EetQPWe8_*DR;WLFC7OPjSLKi-Fd4u`cGiT6+lRhPxy?^%(T^Q6oIiJy?) ziN#AiBjJIBN%m3$P!|w1pgakSD{Nlk(6h#p@EAVmT4Rl+86ZP2W9g_R)>t}dfhFNFFl@k9Jb>c> G(@Ox+r(MDT literal 0 HcmV?d00001 diff --git a/gamedata/anims/camera_effects/actor_move/down.anm b/gamedata/anims/camera_effects/actor_move/down.anm new file mode 100644 index 0000000000000000000000000000000000000000..a1d9d86d0596b456a03dc51506c965a55e0d8f1c GIT binary patch literal 599 zcmZP&WMJ@TVt@cSF!jNam4T6wg<+yp<1&bN0|OES35SJVwPQdQWN3g0huUKi1`44I zgUru=+N_Gj{8J)Mc38{@sSXRpFdt$FR`V~NRMx~|{sEvc7V|->v6v4r1grTFvq5A7 vGStb~x)6)`Aaz*G2MOZ{ACNdm63zS=u@6?*&2PYNegkRdw<@lZq1b!?1x<=s literal 0 HcmV?d00001 diff --git a/gamedata/anims/camera_effects/actor_move/go_back.anm b/gamedata/anims/camera_effects/actor_move/go_back.anm new file mode 100644 index 0000000000000000000000000000000000000000..b6a8321837ef8cdd8725673cbbfb5ccf109792b1 GIT binary patch literal 599 zcmZP&WMJ@TVt@cSF!jNam4T6wg<+yp<1&bN0|OES35SJVwPQdQWN3g0huUKi1`44I zgUru=+N_Gje2_2}^C7|*=0gm@YW}5@%9>crKVl%XAB*{$S1;Wg7K&j$#1O3JL(B$| r4JZ&OfW>@}IxOacgmHuqNE{@IX?_EC^MS$`?g#6}9{vz1+L#XjH`#~I literal 0 HcmV?d00001 diff --git a/gamedata/anims/camera_effects/actor_move/go_front.anm b/gamedata/anims/camera_effects/actor_move/go_front.anm new file mode 100644 index 0000000000000000000000000000000000000000..9abf914fc6209fbbd455c8a6b6111697b6be8dbb GIT binary patch literal 599 zcmZP&WMJ@TVt@cSF!jNam4T6wg<+yp<1&bN0|OES35SJVwPQdQWN3g0huUKi1`44I zgUru=+N_Gje2_2}^C7|*=0gm@YW}5@%9>crpPs+P4vYCG8ZOv|g<_ZwF$Amm5VJvK r0}2ERU@;%04vYC9VI1KD5(i0Qn%{uke4sFf`@y=ghd)G$Hs%8W^rVND literal 0 HcmV?d00001 diff --git a/gamedata/anims/camera_effects/actor_move/jump.anm b/gamedata/anims/camera_effects/actor_move/jump.anm new file mode 100644 index 0000000000000000000000000000000000000000..d7de13cb9ad4b841b7390bad792585b8121cfd3e GIT binary patch literal 1151 zcmb`_y=uZ>6vpvKPzV$U7Z*Y6C6p5JBb9V4IC=-|+_mewC~*<27a{0iCT*SCMTf?* zLq(-`pra0oIc8``9*01aA@C=h{PJ>;0$$?quH^Z#y-y$()9|!g+Fn=i-I80Dbq9Zh z^0HPXdG6F$c89P$==WKkI}Xe1)hd|9{&)H0P<5?WA@;-c%4k_3dw%>~A@+yHqYMdt zc9wZ96MJ#7E)u%{quI@7nw`6$e+`LU<`cVQVwX(plK;gH*adR#?)VY4E1lYv&h3iW zKNCGWvR%m^2R0bL$1<~jWGBRa+>9o~zR%U&w?jJvJiik=&>3^PincS*ZrQ%$&2V#Q W-*J7z?B-9C+Rb)}+PfF_o!L(cK|&G$ literal 0 HcmV?d00001 diff --git a/gamedata/anims/camera_effects/actor_move/landing.anm b/gamedata/anims/camera_effects/actor_move/landing.anm new file mode 100644 index 0000000000000000000000000000000000000000..d92aa66995c5de860e34326d9b0ac16a94219336 GIT binary patch literal 1289 zcmZP&WME)qWq<&FF!jNam4T6wlOg5DoedE21_mSu67KBiuw_6NWN3g0bJ(E?GcY{Z zaQ2K3x-irbY{IKot->aJ_RJY_FmKwd%sBo8q(Oy^p=8;h5klp=R^ zc3^m^p^42LirH%{2n@NtP22dcQrAdZejyBl5 zw4&4+o0l}wcVqDqt4a(g^=d%R)zoo literal 0 HcmV?d00001 diff --git a/gamedata/anims/camera_effects/actor_move/landing2.anm b/gamedata/anims/camera_effects/actor_move/landing2.anm new file mode 100644 index 0000000000000000000000000000000000000000..8fe69258f36264b7098f6ea1ab33833cc899d90f GIT binary patch literal 2255 zcmb`|O-K}B9LMqh9)yX^4C;`For=0h5mA}$Z01Y1wSz&>>miVcN>{rCl{6U92nn$W zVfa>A#CRwvoS9~`M9mIst58IkQP3eUccm8zy7c^;AbXzQWue)_!k33(<}?3!hE@=b zYZM&IfB(%_=20kANOeEn-VeG-i+}N0S*xY(q<^AWnY|QgwJbSTyhukTQYkriHPwsN zTDf!*+MZw5Zx_pXV9(OhiByf8`2w?<206F4)VbnH?M6)$&D*LaXWGzn7ik`o0*aG+1Y6)o5{%e59}`K=Gpx3u~^*X49tV9m~#f^!D`i9 zbYLEwL^04-KiCd1&pWi$1?H!kO2kQ&Ip1KP@qqcz z5P85naXdZ<%$wI7ae#RuHst{G_w^SXU|w~)ZxEPUnJ*7>HaB^cq-}?sn^7?5^f@WA zVov(yC@?4UumQ|z^ra8Xt7?jp!2Ir$wMk$;X8-ho`NAs02j)~7GJrXmmI2IZ|1krY zlc^cNoO+8R*xVGVIqWT=!V}QkUB`DS5A?``F2SYD`NgBp#A;=4q10;upnOAV-!<{z zlsTvGBT-;Z-&*+T%U>>TFkn#Wk literal 0 HcmV?d00001 diff --git a/gamedata/anims/camera_effects/actor_move/landingold.anm b/gamedata/anims/camera_effects/actor_move/landingold.anm new file mode 100644 index 0000000000000000000000000000000000000000..084bb11a3d8272d1bfc2b5a7b4bea845c4545062 GIT binary patch literal 1289 zcmZP&WME)qWq<&FF!jNam4T6wlOg5DoedE21_mVP_`cPuv!lb70a=itVQyhAP?*CG zO?aa(x5e2rKIpb(vp0gd04#UlHDtZC6@TUIm=`5(wyDq@>slND9Is56)!O`95BV=B?g8@ zU{b>H5(5JlwuHyPpkRi@OTe^Zip5L7FmJ%(rOpe&n@RRk11JX3(j>z!M;mNjT2X3^ z%}W~TyRpR5f906nSiQ8w3Y(W4{#jx15`)7YOYB~106Ln4gvY=jWQom7XWRB*@zQa5 m$vs%SWZ0~;3!9f30yF<7pWj-qbS78N@J!se&w=+T7?S*7lSTDXWWR3kZUe_LQ_zi zYLQI3uo*MygL>l&LQppKoh0R<1X=A2wm+HNN^+N&$=Y8<^d z#=A{5{)mp&ZSnu-z^ZLz0KQRAL_SX;0qjw`dVBQ@e3z#p4 z`neL#{Gcdk0rLm-AHM?glSaOGA<$IhPbHT-AaJNuFV*r_Vra0F7yd%32_4(rsd5G5M;pYL==hH<2aJNwF w4v#2phEnSU4;;;W=WX{FWL{N{W+;gWnxQoJ6wOc)el$Z#45Ar&+{L>2KltT!2><{9 literal 0 HcmV?d00001 diff --git a/gamedata/anims/camera_effects/actor_move/strafe_left_aim.anm b/gamedata/anims/camera_effects/actor_move/strafe_left_aim.anm new file mode 100644 index 0000000000000000000000000000000000000000..d2c6def77eac09836b0354cd489f18f13cc4f04c GIT binary patch literal 1565 zcmZP&WMB|wV}Jk=F!jNam4T6wn<3@LoedE21_mT}GHn0O&W;XS24q2o2H6J_cXf7f z*r5sklYYGG>=_?);qI9XyMczF3%i!Q*|mDrDsfq|L^2u3xF4kC9nlRAFl+q07zh3 z12P2N?Exz)cVY>EMO98au>?T;fJ3|ImHBusJuG=Ovg ztwDi6{$LLPpaU^d0LUNM0{|H2q?7>+0yfsz0wCr+P#7}>I562@O92AcL55(YfH(ct l*iwK4yET?9z|at3i7f>j5CD}%=viRJ`3XC*2LQG*004>kjymHAV>vMbkT)aA9NvTThpRKMQX=$GJ@l|e-|#DStR^iF6VsrFjuWo zY9y$y_UIC27%NqG?eeUbTgvy^w;Su?vDjhd50$ksRcXd!!6PF6mN;vU7LUvL zLG?9S9h33hZRgGYWKzcFmwMWyDC4G{fH_kt$#_R^lnM;ii%Qhk&Pbwfy^IsBtDXMj zE*bY$)HwN}IvL-LFLkIL8HaBq?00WZ$@t)wC1W=K^Z3M-<-R#*1M`pf z);YlZ^_uNmq;#3eFQe6(`JRc#HZcD%d)fx(C&zwJOPcxf!kHW}|9rh83(UDoV9qfx z=NOoC49qzO<{Z;N{DXP)SfC1+UszF~Sex_k+R6|xztgfW1k5i#42OXE{BDCb(dPVC z_iz<3FB&aeiEL@O?dq2Q!94l|%4Cq0M+d|C@E)G%!E0z_B*x zFMhgdU_Mt~t(kwKy@B~W#lU=;VqpHYT%b1R3lsx$YA*xKU0Myyy-GB5UX9H&*qmS& zF}L=Y$^GK=f3R@~m|xs9MX_f7Bv_FL=C7J_yovnGALy8*3r)L2-S=$~V6F z9h&e>*XLGe&-kDVSN&wN1{#7c{N>CCtJSMkp$n@!ZUGu{23`0_w!hW;ckj@JFN)6u zI*`L2%_Xasm|D!5DTyu&^5yDPTIj-{06+jF?=v*~zmvZcO8{(-=h=lN0B(t@?ZOfO zulH~QRbvEz{=@w{u>`==4+%T51VHGOUpue_!07|2JFo=6+wPq0SONg#OVR=$#hXbH zO8}Jd9{>ttqyS}c5hW}EurSO-2}=Oftx;CO5&(a67=eahq=31l`xLPRz!}CckW0|x zbYFC%0?7fe3X%#?QUFk>0ZRZtgfRjDB#b2hpoXBQUXU=B0Du^R5deQC_piee0F!Db ztiuujd~7W1um`{@+$mrS&}xwF$nebn|C_M{!1aG1VT=Gs0SaRY02zoO=m7vS8+!n3 z!IA?00aarO0FW@2008=93-$omf-?XbOu_y~_CAm;ptc)J0Q`zO3>3x)fUmEf?#2=T zA=6ib3_%Zo=C#VZu>`=xwd=5z0SpWHu@!<04FaIz7(ELxFtk`=4S)tyECB!jtscript = ixray_global + >class_registrators = ixray_global.register diff --git a/gamedata/configs/mod_system_ixray.ltx b/gamedata/configs/mod_system_ixray.ltx new file mode 100644 index 0000000..0ee2b02 --- /dev/null +++ b/gamedata/configs/mod_system_ixray.ltx @@ -0,0 +1,349 @@ +; This is due to the fact that GSC has prescribed the sound of a gun being pulled out +; w_knife.ltx +![wpn_knife] +snd_draw = weapons\draw_silent + +![inventory] +slot_persistent_4 = false ;grenades + +slot_persistent_13 = false ;backpack +slot_active_13 = false + +![actor_look_cam_psp] +!offset +!autoaim_speed_y +!autoaim_speed_x + +offset_right = -0.4,0.2,0.0 +offset_left = 0.314,0.2,0.0 +use_inertion = true + +;actor.ltx +![actor] +player_hud_default = actor_hud_05 + +;m_burer.ltx +![m_burer_e] +icon = ui_npc_monster_burer + +;items.ltx +![bread] +use_text = st_eat + +![kolbasa] +use_text = st_eat + +![conserva] +use_text = st_eat + +![vodka] +use_text = st_drink + +![device_torch] +sound_activate = device\torch_click +sound_deactivate = device\torch_click_off + +;device.ltx +;![detector_simple_hud] +;anm_bore = dev_detector_1_idle_bore +;anm_bore_16x9 = dev_detector_1_idle_bore_ws, dev_detector_1_idle_bore +; +;![detector_advanced_hud] +;anm_bore = dev_detector_2_idle_bore +;anm_bore_16x9 = dev_detector_2_idle_bore_ws, dev_detector_1_idle_bore +; +;![detector_elite_hud] +;anm_bore = dev_detector_3_idle_bore +;anm_bore_16x9 = dev_detector_3_idle_bore_ws, dev_detector_1_idle_bore +; +;![detector_scientific_hud] +;anm_bore = dev_detector_3_idle_bore +;anm_bore_16x9 = dev_detector_3_idle_bore_ws, dev_detector_1_idle_bore + +;w_f1.ltx +![grenade_f1] +detonation_threshold_hit= 0.3 +explosion_on_hit = true +explosion_hit_types = 6, 8 +explosive_while_not_activated = true + +;w_rgd5.ltx +![grenade_rgd5] +detonation_threshold_hit = 0.3 +explosion_on_hit = true +explosion_hit_types = 6, 8 +explosive_while_not_activated = true + +;helicopter.ltx +![helicopter] +ssa_dyn_factor = 0.001 +ssa_d_cam = 300.0 + +;prefetch_mp.ltx +; FreeMP mode +[prefetch_objects_fmp]:prefetch_objects_mp +[prefetch_visuals_fmp]:prefetch_visuals_mp + +[prefetch_objects_freemp]:prefetch_objects_mp +[prefetch_visuals_freemp]:prefetch_visuals_mp + +[night_vision_base] +snd_night_vision_on = weapons\nv_start +snd_night_vision_off = weapons\nv_off +snd_night_vision_idle = weapons\nv_loop +snd_night_vision_broken = weapons\nv_off + +night_vision_disabled_maps = ai_test,ai_test2, andy_test_ + +;creatures/monsters.ltx +![monsters_common] +corpse_remove_game_time_interval = 24 ; in hours +stay_after_death_time_interval = 36 ; in hours + +;defines.ltx +![hud_base] ; Gunslinger Style +;наклоны Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð¿Ñ€Ð¸ ходьбе +hud_move_speed_rot = 3 ;ÑкороÑть доворота до заданного угла +hud_move_speed_pos = 2 ;ÑкороÑть Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ð¾ заданной позиции +hud_move_stabilize_factor = 3.5 ;во Ñколько раз быÑтрее возвращаемÑÑ Ð² нейтральное положение при идле +hud_move_weaponhide_factor = 3.5 ;во Ñколько раз быÑтрее возвращаемÑÑ Ð² нейтральное положение при убирании Ð¾Ñ€ÑƒÐ¶Ð¸Ñ +hud_move_unzoom_factor = 2.0 +hud_move_slow_factor = 0.5 ;во Ñколько раз менÑть амплитуду при шаге +hud_move_crouch_factor = 0.5 ;во Ñколько раз менÑть амплитуду при приÑÑде +hud_move_slow_crouch_factor = 0.3 ;во Ñколько раз менÑть амплитуду при полном приÑÑде + +;задаютÑÑ Ð¼Ð°ÐºÑимальные Ð¾Ñ‚ÐºÐ»Ð¾Ð½ÐµÐ½Ð¸Ñ Ð¾Ñ‚ центрального в разных режимах ходьбы +;Ðддитивно! + +;Ñтрейф влево +hud_move_left_offset_pos = -0.03,-0.018,0 +hud_move_left_offset_rot = 0,0,-3.5 + +hud_move_left_offset_pos_16x9 = -0.03,-0.018,0 +hud_move_left_offset_rot_16x9 = 0,0,-3.5 + +;Ñтрейф вправо +hud_move_right_offset_pos = 0.03,-0.005,0 +hud_move_right_offset_rot = 0,0,5 + +hud_move_right_offset_pos_16x9 = 0.03,-0.005,0 +hud_move_right_offset_rot_16x9 = 0,0,5 + +;движение вперед +hud_move_forward_offset_pos = 0,-0.005,-0.035 +hud_move_forward_offset_rot = 0,0,0 + +hud_move_forward_offset_pos_16x9 = 0,-0.005,-0.035 +hud_move_forward_offset_rot_16x9 = 0,0,0 + +;движение назад +hud_move_back_offset_pos = 0,-0.005,0.045 +hud_move_back_offset_rot = 0,0,0 + +hud_move_back_offset_pos_16x9 = 0,-0.005,0.045 +hud_move_back_offset_rot_16x9 = 0,0,0 + +;прыжок +hud_move_jump_offset_pos = 0,0.05,0.03 +hud_move_jump_offset_rot = 0,-10,-10 + +hud_move_jump_offset_pos_16x9 = 0,0.05,0.03 +hud_move_jump_offset_rot_16x9 = 0,-10,-10 + +;падение +hud_move_fall_offset_pos = 0,-0.05,0.06 +hud_move_fall_offset_rot = 0,5,0 + +hud_move_fall_offset_pos_16x9 = 0,-0.05,0.06 +hud_move_fall_offset_rot_16x9 = 0,5,0 + +;приземление - Ð¿ÐµÑ€Ð²Ð°Ñ Ñ„Ð°Ð·Ð° +hud_move_landing_offset_pos = 0,-0.2,0.03 +hud_move_landing_offset_rot = 0,-5,10 + +hud_move_landing_offset_pos_16x9 = 0,-0.2,0.03 +hud_move_landing_offset_rot_16x9 = 0,-5,10 + +;приземление - Ð²Ñ‚Ð¾Ñ€Ð°Ñ Ñ„Ð°Ð·Ð° +hud_move_landing2_offset_pos = 0,-0.3,0.03 +hud_move_landing2_offset_rot = 0,-13,20 + +hud_move_landing2_offset_pos_16x9 = 0,-0.3,0.03 +hud_move_landing2_offset_rot_16x9 = 0,-13,20 + +;переход из Ñтойки в приÑÑд +to_crouch_time = 0.15 +hud_move_to_crouch_offset_pos = 0,-0.02, 0 +hud_move_to_crouch_offset_rot = 0,1.5,-4 + +hud_move_to_crouch_offset_pos_16x9 = 0,-0.02, 0 +hud_move_to_crouch_offset_rot_16x9 = 0,1.5,-4 + +;переход из приÑÑда в Ñтойку +from_crouch_time = 0.15 +hud_move_from_crouch_offset_pos = 0,-0.008,0 +hud_move_from_crouch_offset_rot = 0,-0.8,3 + +hud_move_from_crouch_offset_pos_16x9 = 0,-0.008,0 +hud_move_from_crouch_offset_rot_16x9 = 0,-0.8,3 + +;переход из приÑÑда в низкий приÑÑд +to_slow_crouch_time = 0.15 +hud_move_to_slow_crouch_offset_pos = 0,-0.05, 0 +hud_move_to_slow_crouch_offset_rot = 0,1,-2 + +hud_move_to_slow_crouch_offset_pos_16x9 = 0,-0.05, 0 +hud_move_to_slow_crouch_offset_rot_16x9 = 0,1,-2 + +;переход из низкого приÑÑда в приÑÑд +from_slow_crouch_time = 0.15 +hud_move_from_slow_crouch_offset_pos = 0,0.02,0 +hud_move_from_slow_crouch_offset_rot = 0,-1,2 + +hud_move_from_slow_crouch_offset_pos_16x9 = 0,0.02,0 +hud_move_from_slow_crouch_offset_rot_16x9 = 0,-1,2 + +;переход из обычного в наклон влево +to_llookout_time = 0.15 +hud_move_to_llookout_offset_pos = -0.01, 0, 0 +hud_move_to_llookout_offset_rot = 0,0,0 +hud_move_to_llookout_offset_pos_16x9 = -0.01, 0, 0 +hud_move_to_llookout_offset_rot_16x9 = 0,0,0 + +;переход из наклона влево в обычный +from_llookout_time = 0.15 +hud_move_from_llookout_offset_pos = -0.01, 0, 0 +hud_move_from_llookout_offset_rot = 0,0,0 +hud_move_from_llookout_offset_pos_16x9 = -0.01, 0, 0 +hud_move_from_llookout_offset_rot_16x9 = 0,0,0 + + +;переход из обычного в наклон вправо +to_rlookout_time = 0.15 +hud_move_to_rlookout_offset_pos = 0.01, 0, 0 +hud_move_to_rlookout_offset_rot = 0,0,0 +hud_move_to_rlookout_offset_pos_16x9 = 0.01, 0, 0 +hud_move_to_rlookout_offset_rot_16x9 = 0,0,0 + +;переход из наклона вправо в обычный +from_rlookout_time = 0.15 +hud_move_from_rlookout_offset_pos = 0.01, 0, 0 +hud_move_from_rlookout_offset_rot = 0,0,0 +hud_move_from_rlookout_offset_pos_16x9 = 0.01, 0, 0 +hud_move_from_rlookout_offset_rot_16x9 = 0,0,0 + +;наклон влево (поÑтоÑÐ½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð°) +hud_move_llookout_offset_speed_factor = 2.8 +hud_move_llookout_offset_pos = -0.045, -0.03, 0 +hud_move_llookout_offset_pos_16x9 = -0.045, -0.03, 0 +hud_move_llookout_offset_rot = 0, 0, -9 +hud_move_llookout_offset_rot_16x9 = 0, 0, -9 + +;наклон вправо (поÑтоÑÐ½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð°) +hud_move_rlookout_offset_speed_factor = 2.8 +hud_move_rlookout_offset_pos = 0.04, -0.01, 0 +hud_move_rlookout_offset_pos_16x9 = 0.04, -0.01, 0 +hud_move_rlookout_offset_rot = 0, 0, 10 +hud_move_rlookout_offset_rot_16x9 = 0, 0, 10 + + +;аналогично Ð´Ð»Ñ Ð¿Ñ€Ð¸Ñ†ÐµÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ +;переход из Ñтойки в приÑÑд +hud_aim_move_to_crouch_offset_pos = 0,0.003, 0 +hud_aim_move_to_crouch_offset_rot = 0,0.3,-0.5 + +hud_aim_move_to_crouch_offset_pos_16x9 = 0,0.003, 0 +hud_aim_move_to_crouch_offset_rot_16x9 = 0,0.3,-0.5 + +;переход из приÑÑда в Ñтойку +hud_aim_move_from_crouch_offset_pos = 0,-0.003,0 +hud_aim_move_from_crouch_offset_rot = 0,-0.3,0.5 + +hud_aim_move_from_crouch_offset_pos_16x9 = 0,-0.003,0 +hud_aim_move_from_crouch_offset_rot_16x9 = 0,-0.3,0.5 + +;переход из приÑÑда в низкий приÑÑд +hud_aim_move_to_slow_crouch_offset_pos = 0,0.001, 0 +hud_aim_move_to_slow_crouch_offset_rot = 0,0.3,-0.5 + +hud_aim_move_to_slow_crouch_offset_pos_16x9 = 0,0.002, 0 +hud_aim_move_to_slow_crouch_offset_rot_16x9 = 0,0.3,-0.5 + +;переход из низкого приÑÑда в приÑÑд +hud_aim_move_from_slow_crouch_offset_pos = 0,-0.001,0 +hud_aim_move_from_slow_crouch_offset_rot = 0,-0.3,0.5 + +hud_aim_move_from_slow_crouch_offset_pos_16x9 = 0,-0.001,0 +hud_aim_move_from_slow_crouch_offset_rot_16x9 = 0,-0.3,0.5 + +;переход из обычного в наклон влево +hud_aim_move_to_llookout_offset_pos = -0.003, 0, 0 +hud_aim_move_to_llookout_offset_rot = 0,0,-0.6 +hud_aim_move_to_llookout_offset_pos_16x9 = -0.003, 0, 0 +hud_aim_move_to_llookout_offset_rot_16x9 = 0,0,-0.6 + +;переход из наклона влево в обычный +hud_aim_move_from_llookout_offset_pos = 0, 0, 0 +hud_aim_move_from_llookout_offset_rot = 0,0,-1 +hud_aim_move_from_llookout_offset_pos_16x9 = 0, 0, 0 +hud_aim_move_from_llookout_offset_rot_16x9 = 0,0,-1 + + +;переход из обычного в наклон вправо +hud_aim_move_to_rlookout_offset_pos = 0.003, 0, 0 +hud_aim_move_to_rlookout_offset_rot = 0,0,0.6 +hud_aim_move_to_rlookout_offset_pos_16x9 = 0.003, 0, 0 +hud_aim_move_to_rlookout_offset_rot_16x9 = 0,0,0.6 + +;переход из наклона вправо в обычный +hud_aim_move_from_rlookout_offset_pos = 0, 0, 0 +hud_aim_move_from_rlookout_offset_rot = 0,0,1 +hud_aim_move_from_rlookout_offset_pos_16x9 = 0, 0, 0 +hud_aim_move_from_rlookout_offset_rot_16x9 = 0,0,1 + +hud_collision_enabled = true +hud_collision_offset_pos = 0,-0.5,0 +hud_collision_offset_pos_16x9 = 0,-0.5,0 +hud_collision_offset_rot = -0.8,0,0 +hud_collision_offset_rot_16x9 = -0.8,0,0 + +;effectors.ltx +![bobbing_effector] ; Gunslinger Style + +;Ñпринт +sprint_amplitude = 0.014 +sprint_speed = 10.0 + +;бег +run_amplitude = 0.0075 +run_speed = 10.0 +zoom_run_amplitude = 0.005 +zoom_run_speed = 7.0 + +;замедление/прицеливание +walk_amplitude = 0.005 +walk_speed = 7.0 +zoom_walk_amplitude = 0.005 +zoom_walk_speed = 7.0 + +;приÑÑд +crouch_amplitude = 0.0056 +crouch_speed = 7.5 +zoom_crouch_amplitude = 0.0056 +zoom_crouch_speed = 7.5 + +;приÑÑд+замедление +slow_crouch_amplitude = 0.0042 +slow_crouch_speed = 5.625 +zoom_slow_crouch_amplitude = 0.0042 +zoom_slow_crouch_speed = 5.625 + +;Ñ‚Ñжелое дыхание +limp_amplitude = 0.011 +limp_speed = 6.0 +zoom_limp_amplitude = 0.007 +zoom_limp_speed = 6.0 + + +;СкороÑть Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð°Ð¼Ð¿Ð»Ð¸Ñ‚ÑƒÐ´Ñ‹ раÑкачки при Ñмене режима Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ +amplitude_delta = 0.01 \ No newline at end of file diff --git a/gamedata/configs/mp/artefacthunt_game.ltx b/gamedata/configs/mp/artefacthunt_game.ltx new file mode 100644 index 0000000..d31493b --- /dev/null +++ b/gamedata/configs/mp/artefacthunt_game.ltx @@ -0,0 +1,154 @@ +[artefacthunt_gamedata] +artefact = mp_af_electra_flash + +artefact_spawn_effect = anomaly2\electra2_blast +artefact_disappear_effect = anomaly2\gravity_blast_01 + +teambase_particle_0 = static\net_base_red +teambase_particle_1 = static\net_base_green +teambase_particle_2 = static\net_base_blue + +spawn_cost = -1500;-2500;-10000 + +[artefacthunt_base_cost]:deathmatch_base_cost + +[artefacthunt_team1] +team_idx = 0 + +pistols = mp_wpn_pm, mp_wpn_fort, mp_wpn_walther, mp_wpn_beretta, mp_wpn_sig220, mp_wpn_usp, mp_wpn_desert_eagle + +shotgun = mp_wpn_bm16, mp_wpn_toz34, mp_wpn_wincheaster1300, mp_wpn_spas12, mp_wpn_protecta +assault = mp_wpn_ak74u, mp_wpn_ak74, mp_wpn_abakan, mp_wpn_groza, mp_wpn_val, mp_wpn_pkm, mp_wpn_fn2000; +sniper_rifles = mp_wpn_vintorez, mp_wpn_svd, mp_wpn_gauss +heavy_weapons = mp_wpn_rpg7, mp_wpn_rg-6 + +granades = mp_grenade_rgd5,mp_grenade_f1, mp_grenade_gd-05, mp_ammo_vog-25, mp_ammo_m209, mp_ammo_og-7b, mp_ammo_9x18_fmj,mp_ammo_9x18_pmm, mp_ammo_9x19_fmj,mp_ammo_9x19_pbp, mp_ammo_9x19_fmj_4mp5, mp_ammo_9x19_pbp_4mp5, mp_ammo_5.45x39_fmj,mp_ammo_5.45x39_ap,mp_ammo_5.56x45_ss190,mp_ammo_5.56x45_ap,mp_ammo_7.62x54_7h1,mp_ammo_9x39_pab9,mp_ammo_9x39_ap,mp_ammo_11.43x23_fmj,mp_ammo_11.43x23_hydro,mp_ammo_12x70_buck,mp_ammo_12x76_zhekan,mp_ammo_gauss,mp_ammo_pkm_100; +outfits = mp_scientific_outfit, mp_military_stalker_outfit, mp_exo_outfit +equipment = mp_medkit, mp_energy_drink, mp_device_torch, mp_bandage, mp_antirad, mp_drug_coagulant, mp_drug_radioprotector, mp_wpn_addon_silencer, mp_wpn_addon_scope, mp_wpn_addon_scope_susat, mp_wpn_addon_silencer, mp_wpn_addon_grenade_launcher, mp_wpn_addon_grenade_launcher_m203; + +skins = mp_team_green_1, mp_team_green_2, mp_team_green_3, mp_team_green_4, mp_team_green_addon_fr, mp_team_green_addon_uk + + +default_items = mp_wpn_knife, mp_wpn_pm, mp_device_torch + +;//ñîîòâåòñòâèå èêîíîê îáîîðóäîâàíèþ +mp_exo_outfit = mp_team_green_armor_exo +mp_scientific_outfit = mp_team_green_armor_sci +mp_military_stalker_outfit = mp_team_green_armor_military + +;//money amounts +money_start = 180 +money_min = 0 + +kill_rival = 300;400 +kill_self = -100 +kill_team = -250 + +target_rival = 750 +target_team = -500 +target_succeed = 1000;850;750;1000 +target_succeed_all = 750;500; +target_failed = 300;250;100; + +round_win = 200 +round_loose = 100 +round_draw = 0 + +round_loose_minor = 100 +round_win_minor = 150 +clear_run_bonus = 350;200;150 + +kill_while_invincible = 0.5 + +mp_wpn_pb_cost = 0 + +;//---- indicator data -------- +indicator_r1 = 0.2 +indicator_r2 = 0.2 + +indicator_x = 0.0 +indicator_y = 0.4 +indicator_z = 0.0 + +indicator_shader = friendly_indicator +indicator_texture = ui\ui_greenteam + +invincible_shader = friendly_indicator +invincible_texture = ui\ui_skull + +[artefacthunt_team2] +team_idx = 1 + +pistols = mp_wpn_pb, mp_wpn_hpsa, mp_wpn_colt1911, mp_wpn_beretta, mp_wpn_sig220, mp_wpn_usp, mp_wpn_desert_eagle + +shotgun = mp_wpn_bm16, mp_wpn_toz34, mp_wpn_wincheaster1300, mp_wpn_spas12, mp_wpn_protecta +assault = mp_wpn_mp5, mp_wpn_l85, mp_wpn_lr300, mp_wpn_sig550, mp_wpn_g36, mp_wpn_pkm, mp_wpn_fn2000; +sniper_rifles = mp_wpn_vintorez, mp_wpn_svu, mp_wpn_gauss +heavy_weapons = mp_wpn_rpg7, mp_wpn_rg-6 + +granades = mp_grenade_rgd5,mp_grenade_f1, mp_grenade_gd-05, mp_ammo_vog-25, mp_ammo_m209, mp_ammo_og-7b, mp_ammo_9x18_fmj,mp_ammo_9x18_pmm, mp_ammo_9x19_fmj,mp_ammo_9x19_pbp, mp_ammo_9x19_fmj_4mp5, mp_ammo_9x19_pbp_4mp5, mp_ammo_5.45x39_fmj,mp_ammo_5.45x39_ap,mp_ammo_5.56x45_ss190,mp_ammo_5.56x45_ap,mp_ammo_7.62x54_7h1,mp_ammo_9x39_pab9,mp_ammo_9x39_ap,mp_ammo_11.43x23_fmj,mp_ammo_11.43x23_hydro,mp_ammo_12x70_buck,mp_ammo_12x76_zhekan,mp_ammo_gauss, mp_ammo_pkm_100; +outfits = mp_scientific_outfit, mp_military_stalker_outfit, mp_exo_outfit +equipment = mp_medkit, mp_energy_drink, mp_device_torch, mp_bandage, mp_antirad, mp_drug_coagulant, mp_drug_radioprotector, mp_wpn_addon_silencer, mp_wpn_addon_scope, mp_wpn_addon_scope_susat, mp_wpn_addon_silencer, mp_wpn_addon_grenade_launcher, mp_wpn_addon_grenade_launcher_m203; + +skins = mp_team_blue_1, mp_team_blue_2, mp_team_blue_3, mp_team_blue_4, mp_team_blue_addon_de, mp_team_blue_addon_us + +default_items = mp_wpn_knife, mp_wpn_pb, mp_device_torch + +;//ñîîòâåòñòâèå èêîíîê îáîîðóäîâàíèþ +mp_exo_outfit = mp_team_blue_armor_exo +mp_military_stalker_outfit = mp_team_blue_armor_military +mp_scientific_outfit = mp_team_blue_armor_sci + +;//money amounts +money_start = 180 +money_min = 0 + +kill_rival = 300;400 +kill_self = -100 +kill_team = -250 + +target_rival = 750 +target_team = -500 +target_succeed = 1000;850;750;1000 +target_succeed_all = 750;500; +target_failed = 300;250;100; + +round_win = 200 +round_loose = 100 +round_draw = 0 + +round_loose_minor = 100 +round_win_minor = 150 +clear_run_bonus = 350;200;150 + +kill_while_invincible = 0.5 + +mp_wpn_pm_cost = 0 + +;//---- indicator data -------- +indicator_r1 = 0.2 +indicator_r2 = 0.2 + +indicator_x = 0.0 +indicator_y = 0.5 +indicator_z = 0.0 + +indicator_shader = friendly_indicator +indicator_texture = ui\ui_blueteam + +invincible_shader = friendly_indicator +invincible_texture = ui\ui_skull + +;------------------------------------------------------------------------------- +[ahunt_messages_menu]:tdm_messages_menu +menu_0 = ahunt_menu_0 +menu_1 = ahunt_menu_1 + +[ahunt_menu_0]:tdm_menu_0 +phrase_5 = speech_guardartifact, keep_ +phrase_6 = speech_takeartifact, take_ + +[ahunt_menu_1]:tdm_menu_1 +phrase_8 = speech_icoverartifact, cover_ +phrase_9 = speech_covermeartifact, artefact_ + diff --git a/gamedata/configs/mp/capturetheartefact_game.ltx b/gamedata/configs/mp/capturetheartefact_game.ltx new file mode 100644 index 0000000..8f72359 --- /dev/null +++ b/gamedata/configs/mp/capturetheartefact_game.ltx @@ -0,0 +1,153 @@ +[capturetheartefact_gamedata] +spawn_cost = -1500;-2500;-10000 +not_free_ammo = mp_ammo_vog-25, mp_ammo_m209, mp_ammo_og-7b + +[capturetheartefact_base_cost]:deathmatch_base_cost + +[capturetheartefact_team1] +artefact = mp_af_cta_green +artefact_spawn_effect = anomaly2\electra2_blast + +team_idx = 0 + +pistols = mp_wpn_pm, mp_wpn_fort, mp_wpn_walther, mp_wpn_beretta, mp_wpn_sig220, mp_wpn_usp, mp_wpn_desert_eagle + +shotgun = mp_wpn_bm16, mp_wpn_toz34, mp_wpn_wincheaster1300, mp_wpn_spas12, mp_wpn_protecta +assault = mp_wpn_ak74u, mp_wpn_ak74, mp_wpn_abakan, mp_wpn_groza, mp_wpn_val, mp_wpn_pkm, mp_wpn_fn2000; +sniper_rifles = mp_wpn_vintorez, mp_wpn_svd, mp_wpn_gauss +heavy_weapons = mp_wpn_rpg7, mp_wpn_rg-6 + +granades = mp_grenade_rgd5,mp_grenade_f1, mp_grenade_gd-05, mp_ammo_vog-25, mp_ammo_m209, mp_ammo_og-7b, mp_ammo_9x18_fmj,mp_ammo_9x18_pmm, mp_ammo_9x19_fmj,mp_ammo_9x19_pbp, mp_ammo_9x19_fmj_4mp5, mp_ammo_9x19_pbp_4mp5, mp_ammo_5.45x39_fmj,mp_ammo_5.45x39_ap,mp_ammo_5.56x45_ss190,mp_ammo_5.56x45_ap,mp_ammo_7.62x54_7h1,mp_ammo_9x39_pab9,mp_ammo_9x39_ap,mp_ammo_11.43x23_fmj,mp_ammo_11.43x23_hydro,mp_ammo_12x70_buck,mp_ammo_12x76_zhekan,mp_ammo_gauss, mp_ammo_pkm_100; +outfits = mp_scientific_outfit, mp_military_stalker_outfit, mp_exo_outfit +equipment = mp_medkit, mp_energy_drink, mp_device_torch, mp_bandage, mp_antirad, mp_drug_coagulant, mp_drug_radioprotector, mp_wpn_addon_silencer, mp_wpn_addon_scope, mp_wpn_addon_scope_susat, mp_wpn_addon_silencer, mp_wpn_addon_grenade_launcher, mp_wpn_addon_grenade_launcher_m203; + + +skins = mp_team_green_1, mp_team_green_2, mp_team_green_3, mp_team_green_4, mp_team_green_addon_fr, mp_team_green_addon_uk + + +default_items = mp_wpn_knife, mp_wpn_pm, mp_device_torch + +;//ñîîòâåòñòâèå èêîíîê îáîîðóäîâàíèþ +mp_exo_outfit = mp_team_green_armor_exo +mp_scientific_outfit = mp_team_green_armor_sci +mp_military_stalker_outfit = mp_team_green_armor_military + +;//money amounts +money_start = 450 +money_min = 0 + +kill_rival = 300;400 +kill_self = -100 +kill_team = -250 + +target_rival = 750 +target_team = -500 +target_succeed = 1000;850;750;1000 +target_succeed_all = 750;500; +target_failed = 300;250;100; + +round_win = 200 +round_loose = 100 +round_draw = 0 + +round_loose_minor = 100 +round_win_minor = 150 +clear_run_bonus = 350;200;150 + +kill_while_invincible = 0.5 + +mp_wpn_pb_cost = 0 + +;//---- indicator data -------- +indicator_r1 = 0.2 +indicator_r2 = 0.2 + +indicator_x = 0.0 +indicator_y = 0.4 +indicator_z = 0.0 + +indicator_shader = friendly_indicator +indicator_texture = ui\ui_greenteam + +invincible_shader = friendly_indicator +invincible_texture = ui\ui_skull + +[capturetheartefact_team2] +team_idx = 1 + +artefact = mp_af_cta_blue +artefact_spawn_effect = anomaly2\electra2_blast + +pistols = mp_wpn_pb, mp_wpn_hpsa, mp_wpn_colt1911, mp_wpn_beretta, mp_wpn_sig220, mp_wpn_usp, mp_wpn_desert_eagle + +shotgun = mp_wpn_bm16, mp_wpn_toz34, mp_wpn_wincheaster1300, mp_wpn_spas12, mp_wpn_protecta +assault = mp_wpn_mp5, mp_wpn_l85, mp_wpn_lr300, mp_wpn_sig550, mp_wpn_g36, mp_wpn_pkm, mp_wpn_fn2000; +sniper_rifles = mp_wpn_vintorez, mp_wpn_svu, mp_wpn_gauss +heavy_weapons = mp_wpn_rpg7, mp_wpn_rg-6 + +granades = mp_grenade_rgd5,mp_grenade_f1, mp_grenade_gd-05, mp_ammo_vog-25, mp_ammo_m209, mp_ammo_og-7b, mp_ammo_9x18_fmj,mp_ammo_9x18_pmm, mp_ammo_9x19_fmj,mp_ammo_9x19_pbp, mp_ammo_9x19_fmj_4mp5, mp_ammo_9x19_pbp_4mp5, mp_ammo_5.45x39_fmj,mp_ammo_5.45x39_ap,mp_ammo_5.56x45_ss190,mp_ammo_5.56x45_ap,mp_ammo_7.62x54_7h1,mp_ammo_9x39_pab9,mp_ammo_9x39_ap,mp_ammo_11.43x23_fmj,mp_ammo_11.43x23_hydro,mp_ammo_12x70_buck,mp_ammo_12x76_zhekan,mp_ammo_gauss, mp_ammo_pkm_100; +outfits = mp_scientific_outfit, mp_military_stalker_outfit, mp_exo_outfit +equipment = mp_medkit, mp_energy_drink, mp_device_torch, mp_bandage, mp_antirad, mp_drug_coagulant, mp_drug_radioprotector, mp_wpn_addon_silencer, mp_wpn_addon_scope, mp_wpn_addon_scope_susat, mp_wpn_addon_silencer, mp_wpn_addon_grenade_launcher, mp_wpn_addon_grenade_launcher_m203; + + +skins = mp_team_blue_1, mp_team_blue_2, mp_team_blue_3, mp_team_blue_4, mp_team_blue_addon_de, mp_team_blue_addon_us + +default_items = mp_wpn_knife, mp_wpn_pb;, mp_device_torch + +;//ñîîòâåòñòâèå èêîíîê îáîîðóäîâàíèþ +mp_exo_outfit = mp_team_blue_armor_exo +mp_military_stalker_outfit = mp_team_blue_armor_military +mp_scientific_outfit = mp_team_blue_armor_sci + +;//money amounts +money_start = 450 +money_min = 0 + +kill_rival = 300;400 +kill_self = -100 +kill_team = -250 + +target_rival = 750 +target_team = -500 +target_succeed = 1000;850;750;1000 +target_succeed_all = 750;500; +target_failed = 300;250;100; + +round_win = 200 +round_loose = 100 +round_draw = 0 + +round_loose_minor = 100 +round_win_minor = 150 +clear_run_bonus = 350;200;150 + +kill_while_invincible = 0.5 + +mp_wpn_pm_cost = 0 + +;//---- indicator data -------- +indicator_r1 = 0.2 +indicator_r2 = 0.2 + +indicator_x = 0.0 +indicator_y = 0.5 +indicator_z = 0.0 + +indicator_shader = friendly_indicator +indicator_texture = ui\ui_blueteam + +invincible_shader = friendly_indicator +invincible_texture = ui\ui_skull + +;------------------------------------------------------------------------------- +[capturetheartefact_messages_menu] +sounds_path = characters_voice\multiplayer\ +team_prefix = team_ + +menu_0 = cta_menu_0 +menu_1 = cta_menu_1 + +[cta_menu_0]:ahunt_menu_0 +phrase_7 = speech_returntheartefact, return_ + +[cta_menu_1]:ahunt_menu_1 \ No newline at end of file diff --git a/gamedata/configs/mp/deathmatch_game.ltx b/gamedata/configs/mp/deathmatch_game.ltx new file mode 100644 index 0000000..fc52eba --- /dev/null +++ b/gamedata/configs/mp/deathmatch_game.ltx @@ -0,0 +1,200 @@ +#include "mp_ranks.ltx" +#include "mp_bonuses.ltx" + +[buy_menu_items_place] + +lst_pistol = mp_wpn_pm, mp_wpn_pb, mp_wpn_fort, mp_wpn_walther, mp_wpn_colt1911, mp_wpn_usp, mp_wpn_sig220, mp_wpn_desert_eagle, mp_wpn_hpsa, mp_wpn_beretta +lst_pistol_ammo = mp_ammo_9x18_fmj, mp_ammo_9x18_pmm, mp_ammo_9x19_fmj, mp_ammo_9x19_pbp, mp_ammo_11.43x23_fmj, mp_ammo_11.43x23_hydro + +lst_rifle = mp_wpn_bm16, mp_wpn_wincheaster1300, mp_wpn_spas12, mp_wpn_protecta, mp_wpn_ak74u, mp_wpn_ak74, mp_wpn_mp5, mp_wpn_l85, mp_wpn_lr300, mp_wpn_abakan, mp_wpn_sig550, mp_wpn_groza, mp_wpn_g36, mp_wpn_fn2000, mp_wpn_val, mp_wpn_vintorez, mp_wpn_svd, mp_wpn_svu,mp_wpn_gauss, mp_wpn_rpg7, mp_wpn_rg-6, mp_wpn_pkm, mp_wpn_toz34 +lst_rifle_ammo = mp_ammo_vog-25, mp_ammo_m209, mp_ammo_og-7b, mp_ammo_gauss, mp_ammo_9x19_fmj_4mp5, mp_ammo_9x19_pbp_4mp5, mp_ammo_5.45x39_fmj, mp_ammo_5.45x39_ap, mp_ammo_5.56x45_ss190, mp_ammo_5.56x45_ap, mp_ammo_7.62x54_7h1, mp_ammo_9x39_pab9, mp_ammo_9x39_ap, mp_ammo_12x70_buck, mp_ammo_12x76_zhekan, mp_ammo_pkm_100 + +lst_outfit = mp_exo_outfit, mp_scientific_outfit, mp_military_stalker_outfit +lst_medkit = mp_medkit, mp_medkit_scientic, mp_medkit_army +lst_granade = mp_grenade_f1, mp_grenade_rgd5, mp_grenade_gd-05 +lst_others = mp_energy_drink, mp_bandage, mp_antirad, mp_drug_coagulant, mp_drug_radioprotector, mp_detector_advanced, mp_device_torch, mp_wpn_addon_scope, mp_wpn_addon_scope_susat, mp_wpn_addon_silencer, mp_wpn_addon_grenade_launcher, mp_wpn_addon_grenade_launcher_m203, mp_wpn_binoc +lst_shop = +lst_player_bag = mp_wpn_knife + + +[deathmatch_gamedata] +;actor spawn effect +;actor_spawn_effect = anomaly2\electra2_blast +not_free_ammo = mp_ammo_vog-25, mp_ammo_m209, mp_ammo_og-7b + +[deathmatch_base_cost] +mp_wpn_knife = 0 + +mp_wpn_pm = 0 +mp_wpn_pb = 0 +mp_wpn_fort = 350,0,0,0,0 +mp_wpn_hpsa = 350,0,0,0,0 +mp_wpn_colt1911 = 500,350,0,0,0; +mp_wpn_walther = 500,350,0,0,0; +mp_wpn_beretta = 600,450,350 +mp_wpn_sig220 = 650,500,400 +mp_wpn_usp = 700,550,450 +mp_wpn_desert_eagle = 800,650,550 + +mp_wpn_bm16 = 250 +mp_wpn_toz34 = 500 ;600 +mp_wpn_wincheaster1300 = 600 ;700; +mp_wpn_spas12 = 700 ;1000; +mp_wpn_protecta = 1200 ;1500 + +mp_wpn_ak74u = 480 ;600; +mp_wpn_pkm = 1300 ;1500; +mp_wpn_mp5 = 480 ;600; +mp_wpn_ak74 = 550 ;600 ;650 +mp_wpn_l85 = 650 ;620 ;700; +mp_wpn_abakan = 750 ;800 +mp_wpn_lr300 = 750 ;850 +mp_wpn_groza = 1000 ;1200 +mp_wpn_sig550 = 950 ;1100 +mp_wpn_val = 1200 ;1300 +mp_wpn_g36 = 1300 ;1400 +mp_wpn_fn2000 = 1500 ;1600; + +mp_wpn_vintorez = 950 ;1100 +mp_wpn_svu = 1300 ;1500 +mp_wpn_svd = 1300 ;1500 +mp_wpn_gauss = 1800 ;2000 + +mp_wpn_rpg7 = 1200 +mp_wpn_rg-6 = 750 + + +mp_grenade_f1 = 250; +mp_grenade_rgd5 = 100; +mp_grenade_gd-05 = 50 ;100 +mp_ammo_vog-25 = 450 ;500; +mp_ammo_m209 = 450 ;500; +mp_ammo_og-7b = 1200 ;1500 + + +mp_ammo_9x18_fmj = 0, 0, 0, 0, 0 +mp_ammo_9x18_pmm = 0, 0, 0, 0, 0 + +mp_ammo_9x19_fmj = 25, 0, 0, 0, 0 +mp_ammo_9x19_pbp = 50, 0, 0, 0, 0 +mp_ammo_9x19_fmj_4mp5 = 35 +mp_ammo_9x19_pbp_4mp5 = 60 + +mp_ammo_11.43x23_fmj = 50, 50, 0, 0, 0 +mp_ammo_11.43x23_hydro = 75, 50, 0, 0, 0 + +;----- + +mp_ammo_5.45x39_fmj = 35;75 +mp_ammo_5.45x39_ap = 60;100 + +mp_ammo_5.56x45_ss190 = 60;100 +mp_ammo_5.56x45_ap = 85;150 + +mp_ammo_7.62x54_7h1 = 200; +;mp_ammo_7.62x54_ap = 165; +;mp_ammo_7.62x54_7h14 = 200; +mp_ammo_pkm_100 = 350; + +mp_ammo_9x39_pab9 = 100;125 +mp_ammo_9x39_ap = 125;175 + +mp_ammo_12x70_buck = 50;100 +mp_ammo_12x76_zhekan = 75 +mp_ammo_gauss = 250;500 + + +mp_exo_outfit = 1250 ;1500;1250;1500 +mp_scientific_outfit = 250;300;350 +mp_military_stalker_outfit = 700 ;750;850 + +mp_medkit = 250 +mp_medkit_scientic = 350 +mp_medkit_army = 500 + +mp_energy_drink = 100 +mp_bandage = 25 +mp_antirad = 50 + +mp_drug_coagulant = 100 +mp_drug_radioprotector = 100 + + +mp_detector_advanced = 50 +mp_device_torch = 0 +mp_wpn_addon_scope = 200 ;250;150 +mp_wpn_addon_scope_susat = 250;150 +mp_wpn_addon_silencer = 250 ;150 +mp_wpn_addon_grenade_launcher = 350;300 +mp_wpn_addon_grenade_launcher_m203 = 350;300 +mp_wpn_binoc = 200 + + +[deathmatch_team0] +team_idx = 1 + +pistols = mp_wpn_pm, mp_wpn_pb, mp_wpn_fort, mp_wpn_hpsa, mp_wpn_walther, mp_wpn_colt1911, mp_wpn_beretta, mp_wpn_sig220, mp_wpn_usp, mp_wpn_desert_eagle + +shotgun = mp_wpn_bm16, mp_wpn_toz34, mp_wpn_wincheaster1300, mp_wpn_spas12, mp_wpn_protecta +assault = mp_wpn_ak74u, mp_wpn_mp5, mp_wpn_l85, mp_wpn_ak74, mp_wpn_abakan, mp_wpn_lr300, mp_wpn_groza, mp_wpn_sig550, mp_wpn_val, mp_wpn_g36, mp_wpn_pkm, mp_wpn_fn2000; +sniper_rifles = mp_wpn_vintorez, mp_wpn_svu, mp_wpn_svd, mp_wpn_gauss +heavy_weapons = mp_wpn_rpg7, mp_wpn_rg-6 + +granades = mp_grenade_rgd5,mp_grenade_f1, mp_grenade_gd-05, mp_ammo_vog-25, mp_ammo_m209, mp_ammo_og-7b, mp_ammo_9x18_fmj,mp_ammo_9x18_pmm, mp_ammo_9x19_fmj,mp_ammo_9x19_pbp, mp_ammo_9x19_fmj_4mp5, mp_ammo_9x19_pbp_4mp5, mp_ammo_5.45x39_fmj,mp_ammo_5.45x39_ap,mp_ammo_5.56x45_ss190,mp_ammo_5.56x45_ap,mp_ammo_7.62x54_7h1,mp_ammo_9x39_pab9,mp_ammo_9x39_ap,mp_ammo_11.43x23_fmj,mp_ammo_11.43x23_hydro,mp_ammo_12x70_buck,mp_ammo_12x76_zhekan,mp_ammo_gauss, mp_ammo_pkm_100 +outfits = mp_scientific_outfit, mp_military_stalker_outfit, mp_exo_outfit +equipment = mp_medkit, mp_energy_drink, mp_bandage, mp_antirad, mp_device_torch, mp_drug_coagulant, mp_drug_radioprotector, mp_wpn_addon_silencer, mp_wpn_addon_scope, mp_wpn_addon_scope_susat, mp_wpn_addon_silencer, mp_wpn_addon_grenade_launcher, mp_wpn_addon_grenade_launcher_m203; + +;//ãðóïïû àìóíèöèè (èñïîëüçóþòñÿ â íàãðàäàõ) +gid_exo_outfit = mp_exo_outfit +gid_gauss_rifle = mp_wpn_gauss +gid_double_barred = mp_wpn_bm16, mp_wpn_toz34 +gid_hand_grenades = mp_grenade_rgd5, mp_grenade_f1 +gid_cool_weapons = mp_wpn_fn2000, mp_wpn_g36, mp_wpn_gauss, mp_wpn_groza, mp_wpn_pkm, mp_wpn_rg-6, mp_wpn_rpg7, mp_wpn_sig550, mp_wpn_spas12, mp_wpn_svd, mp_wpn_svu, mp_wpn_val + +skins = mp_team_green_1, mp_team_green_2, mp_team_green_3, mp_team_green_4, mp_team_green_addon_fr, mp_team_green_addon_uk + + + +;//ñîîòâåòñòâèå èêîíîê îáîðóäîâàíèþ +mp_exo_outfit = mp_team_green_armor_exo +mp_scientific_outfit = mp_team_green_armor_sci +mp_military_stalker_outfit = mp_team_green_armor_military + +;//money amounts +money_start = 300 +money_min = 0 + +kill_rival = 300;400 +kill_self = 0 +kill_team = 0 + +target_rival = 0 +target_team = 0 +target_succeed = 0 +target_succeed_all = 0 + +round_win = 100 +round_loose = 50 +round_draw = 50 + +round_loose_minor = 0 +round_win_minor = 0 + +clear_run_bonus = 200 + +mp_wpn_pm_cost = 0 + +default_items = mp_wpn_knife, mp_wpn_pm, mp_device_torch +;//---- indicator data -------- +indicator_r1 = 0.2 +indicator_r2 = 0.2 + +indicator_x = 0.0 +indicator_y = 0.5 +indicator_z = 0.0 + +indicator_shader = friendly_indicator +indicator_texture = ui\ui_blueteam + +invincible_shader = friendly_indicator +invincible_texture = ui\ui_skull diff --git a/gamedata/configs/mp/teamdeathmatch_game.ltx b/gamedata/configs/mp/teamdeathmatch_game.ltx new file mode 100644 index 0000000..abd9340 --- /dev/null +++ b/gamedata/configs/mp/teamdeathmatch_game.ltx @@ -0,0 +1,159 @@ +[teamdeathmatch_base_cost]:deathmatch_base_cost + +;//Green + +[teamdeathmatch_team1] +team_idx = 0 + +pistols = mp_wpn_pm, mp_wpn_fort, mp_wpn_walther, mp_wpn_beretta, mp_wpn_sig220, mp_wpn_usp, mp_wpn_desert_eagle + +shotgun = mp_wpn_bm16, mp_wpn_toz34, mp_wpn_wincheaster1300, mp_wpn_spas12, mp_wpn_protecta +assault = mp_wpn_ak74u, mp_wpn_ak74, mp_wpn_abakan, mp_wpn_groza, mp_wpn_val, mp_wpn_pkm, mp_wpn_fn2000; +sniper_rifles = mp_wpn_vintorez, mp_wpn_svd, mp_wpn_gauss +heavy_weapons = mp_wpn_rpg7, mp_wpn_rg-6 + +granades = mp_grenade_rgd5,mp_grenade_f1, mp_grenade_gd-05, mp_ammo_vog-25, mp_ammo_m209, mp_ammo_og-7b, mp_ammo_9x18_fmj,mp_ammo_9x18_pmm, mp_ammo_9x19_fmj,mp_ammo_9x19_pbp, mp_ammo_9x19_fmj_4mp5, mp_ammo_9x19_pbp_4mp5, mp_ammo_5.45x39_fmj,mp_ammo_5.45x39_ap,mp_ammo_5.56x45_ss190,mp_ammo_5.56x45_ap,mp_ammo_7.62x54_7h1,mp_ammo_9x39_pab9,mp_ammo_9x39_ap,mp_ammo_11.43x23_fmj,mp_ammo_11.43x23_hydro,mp_ammo_12x70_buck,mp_ammo_12x76_zhekan,mp_ammo_gauss, mp_ammo_pkm_100; +outfits = mp_scientific_outfit, mp_military_stalker_outfit, mp_exo_outfit +equipment = mp_medkit, mp_energy_drink, mp_device_torch, mp_bandage, mp_antirad, mp_drug_coagulant, mp_drug_radioprotector, mp_wpn_addon_silencer, mp_wpn_addon_scope, mp_wpn_addon_scope_susat, mp_wpn_addon_silencer, mp_wpn_addon_grenade_launcher, mp_wpn_addon_grenade_launcher_m203; + +;//mp_medkit_scientic, mp_medkit_army, mp_energy_drink, mp_bandage, mp_antirad, +skins = mp_team_green_1, mp_team_green_2, mp_team_green_3, mp_team_green_4, mp_team_green_addon_fr, mp_team_green_addon_uk + + +default_items = mp_wpn_knife, mp_wpn_pm, mp_device_torch + +;//ñîîòâåòñòâèå èêîíîê îáîîðóäîâàíèþ +mp_exo_outfit = mp_team_green_armor_exo +mp_scientific_outfit = mp_team_green_armor_sci +mp_military_stalker_outfit = mp_team_green_armor_military + +;//money amounts +money_start = 300 +money_min = 0 + +kill_rival = 300;400 +kill_self = 0 +kill_team = -250 + +target_rival = 0 +target_team = 0 +target_succeed = 0 +target_succeed_all = 0 + +round_win = 100 +round_loose = 50 +round_draw = 50 + +round_loose_minor = 0 +round_win_minor = 0 +clear_run_bonus = 200 + +kill_while_invincible = 0.5 + +mp_wpn_pb_cost = 0 + +;//---- indicator data -------- +indicator_r1 = 0.2 +indicator_r2 = 0.2 + +indicator_x = 0.0 +indicator_y = 0.5 +indicator_z = 0.0 + +indicator_shader = friendly_indicator +indicator_texture = ui\ui_greenteam + +invincible_shader = friendly_indicator +invincible_texture = ui\ui_skull + + +;//Blue +[teamdeathmatch_team2] +team_idx = 1 + +pistols = mp_wpn_pb, mp_wpn_hpsa, mp_wpn_colt1911, mp_wpn_beretta, mp_wpn_sig220, mp_wpn_usp, mp_wpn_desert_eagle + +shotgun = mp_wpn_bm16, mp_wpn_toz34, mp_wpn_wincheaster1300, mp_wpn_spas12, mp_wpn_protecta +assault = mp_wpn_mp5, mp_wpn_l85, mp_wpn_lr300, mp_wpn_sig550, mp_wpn_g36, mp_wpn_pkm, mp_wpn_fn2000; +sniper_rifles = mp_wpn_vintorez, mp_wpn_svu, mp_wpn_gauss +heavy_weapons = mp_wpn_rpg7, mp_wpn_rg-6 + +granades = mp_grenade_rgd5,mp_grenade_f1, mp_grenade_gd-05, mp_ammo_vog-25, mp_ammo_m209, mp_ammo_og-7b, mp_ammo_9x18_fmj,mp_ammo_9x18_pmm, mp_ammo_9x19_fmj,mp_ammo_9x19_pbp, mp_ammo_9x19_fmj_4mp5, mp_ammo_9x19_pbp_4mp5, mp_ammo_5.45x39_fmj,mp_ammo_5.45x39_ap,mp_ammo_5.56x45_ss190,mp_ammo_5.56x45_ap,mp_ammo_7.62x54_7h1,mp_ammo_9x39_pab9,mp_ammo_9x39_ap,mp_ammo_11.43x23_fmj,mp_ammo_11.43x23_hydro,mp_ammo_12x70_buck,mp_ammo_12x76_zhekan,mp_ammo_gauss, mp_ammo_pkm_100; +outfits = mp_scientific_outfit, mp_military_stalker_outfit, mp_exo_outfit +equipment = mp_medkit, mp_energy_drink, mp_device_torch, mp_bandage, mp_antirad, mp_drug_coagulant, mp_drug_radioprotector, mp_wpn_addon_silencer, mp_wpn_addon_scope, mp_wpn_addon_scope_susat, mp_wpn_addon_silencer, mp_wpn_addon_grenade_launcher, mp_wpn_addon_grenade_launcher_m203; + +skins = mp_team_blue_1, mp_team_blue_2, mp_team_blue_3, mp_team_blue_4, mp_team_blue_addon_de, mp_team_blue_addon_us + +default_items = mp_wpn_knife, mp_wpn_pb, mp_device_torch + +;//ñîîòâåòñòâèå èêîíîê îáîîðóäîâàíèþ +mp_exo_outfit = mp_team_blue_armor_exo +mp_military_stalker_outfit = mp_team_blue_armor_military +mp_scientific_outfit = mp_team_blue_armor_sci + +;//money amounts +money_start = 300 +money_min = 0 + +kill_rival = 300;400 +kill_self = -100 +kill_team = -250 + +target_rival = 0 +target_team = 0 +target_succeed = 0 +target_succeed_all = 0 + +round_win = 100 +round_loose = 50 +round_draw = 50 + +round_loose_minor = 0 +round_win_minor = 0 +clear_run_bonus = 200 + +kill_while_invincible = 0.5 + +mp_wpn_pm_cost = 0 + +;//---- indicator data -------- +indicator_r1 = 0.2 +indicator_r2 = 0.2 + +indicator_x = 0.0 +indicator_y = 0.5 +indicator_z = 0.0 + +indicator_shader = friendly_indicator +indicator_texture = ui\ui_blueteam + +invincible_shader = friendly_indicator +invincible_texture = ui\ui_skull + +;------------------------------------------------------------------------------- +[tdm_messages_menu] +menu_0 = tdm_menu_0 +menu_1 = tdm_menu_1 +sounds_path = characters_voice\multiplayer\ +team_prefix = team_ + +[tdm_menu_0] +phrase_0 = speech_attack, attack_ +phrase_1 = speech_retreat, retreat_ +phrase_2 = speech_holdpos, hold_ +phrase_3 = speech_report, report_ +phrase_4 = speech_silence, silence_ +;Hold Artefact! +;Take Artefact! + +[tdm_menu_1] +phrase_0 = speech_roger, roger_ +phrase_1 = speech_no, no_ +phrase_2 = speech_needhelp, help_ +phrase_3 = speech_noenemy, clear_ +phrase_4 = speech_holdingpos, camp_ +phrase_5 = speech_sticktogether, together_ +phrase_6 = speech_followme, follow_ +phrase_7 = speech_needmoney, money_ +;Cover you, take artefact! +;Taking artefact, cover me! diff --git a/gamedata/configs/text/cze/st_achievement.xml b/gamedata/configs/text/cze/st_achievement.xml new file mode 100644 index 0000000..fd62d2f --- /dev/null +++ b/gamedata/configs/text/cze/st_achievement.xml @@ -0,0 +1,372 @@ + + + + Tvùj nepøítel se musí cítit opravdu poníženì, když se nechal už desetkrát po sobì zabít, aniž by mezitím zabil tebe! Ty to však nedìláš z krutosti - chceš mu jen dát pøíležitost k procvièování. + + + Ještì musíš dozrát + + + Smrt ti kráèí v patách! Dokážeš zabít dvì mouchy jednou ranou... obì je prostøelit Gaussovou puškou. + + + Špíz + + + Tvùj klidný a vypoèítavý pøístup je zhoubou nepøátel. Povedlo se ti zasáhnout dva cíle, každý jednou patronou z dvouhlavòové brokovnice. A to vše bìhem jen nìkolika vteøin! + + + Dvì rány, dvì tìla + + + Víš všechno, co musí správný stalker umìt. Proto jsi taky první stalkerovskou legendou! + + + Spoleèenský šplhoun + + + Dobývat se dovnitø exoskeletu nožem? Ano, tvým koníèkem je stanovovat si obtížné cíle a potom je pøekonávat. + + + Otvírák na konzervy + + + Mysleli si, že už tì dostali, ale jak šerednì se jen mýlili! Povedlo se ti oddìlat jich pìt v øadì, pøestože už ti smrt šlapala na paty. + + + Nezmar + + + To ale byla adrenalinová jízda! Umíš zasypat nepøátele smrští kulek - pìt záøezù v pìti vteøinách. Neuvìøitelné! + + + Nespoutaný hnìv + + + No teda! Máš úchvatnou mušku! Bez jediného úmrtí se to podaøilo støelit dva nepøátele do oka. + + + Trefa do bílého + + + Jen a se schovávají za rohy, jen a si nastražují léèky, tebe to nezastaví. Dokážeš sundat pohybující se cíl, klidnì i bez míøení! + + + Bleskové reflexy + + + Mùže si utíkat, jak se mu zachce. Tvoje výstøely ho nakonec doženou. + + + Zastavte bìžce + + + Povedlo se ti bez zemøení oddìlat dvacet pøátel v øadì! Tomu se øíká krvavá lázeò! + + + Masakr + + + Ano, byli sice tøi, a ano, mìli odstøelovaèské pušky. Ale ne, tvým schopnostem se vyrovnat nedokázali. + + + Ostrostøelec + + + Barbarské metody jsou dobré leda tak pro nepøátele. Ty dokážeš s pøehledem vyhrát a nevystøelit u toho jedinou ránu. + + + Posel míru + + + Skuteènému odstøelovaèi nedìlá vzdálenost problém. Dovedeš trefit cíl o velikosti mince na 120 metrù. + + + Smrtící pøesnost + + + Nepøítel tì sice nakonec dostal, ale ten odjištìný granát ho pak docela pøekvapil! + + + Tu máš nìco na památku + + + Povraždili ti kámoše a tvou pomstu si objektivnì zasloužili. Mrtvoly tøí nepøátel za tøi mrtvé kamarády - hezky spravedlivì. + + + Mstitel + + + Pro svého kamaráda jsi jako strážný andìl! Už dvakrát díky tobì unikl smrti, když nesl artefakt. + + + Cherubín + + + Povedlo se ti pøece jenom získat pár bodù a tím zachránit nejen svou èest, ale i èest celého vašeho týmu. + + + Zachránce cti + + + Copak opravdu víš, kde a kdy se pøíští artefakt objeví? Tak èi onak, povedlo se ti ho zvednout pouhých pár vteøin po objevení. + + + Stalkerovská intuice + + + To byla ale klika - odrovnat nepøítele poslední kulkou v zásobníku! No hlavnì že to se nakonec povedlo. + + + Šastlivec + + + Máš na úètì osm nepøátel v øadì. Laka je nastavena vysoko - teï a ukážou, co v nich je. + + + Èerná listina + + + Díky tvé opatrnosti a obezøetnosti tì nikdo nedokázal zabít. Podaøilo se ti celou hru zùstat naživu a zároveò získat pøes patnáct bodù. + + + Paranoik + + + Nestojíš o nevyžádanou pozornost, a tak za všech okolností používáš tlumiè. Proè nepøíteli prozrazovat, z které strany pøilétne smrt? + + + Tichá smrt + + + Znáš jednoduchý zpùsob jak zlikvidovat nepøátele - jednoduše jít a získat dvakrát víc bodù než kdokoliv z nich. + + + Drtivá pøevaha + + + Tvùj smìlý plán na neprodlené získání artefaktu se shledal s úspìchem! Povedlo se ti zabodovat v prvních tøech minutách hry. + + + Blitzkrieg + + + Vaši nepøátelé si k výhøe ani nepøièichli, vyhráli jste na plné èáøe a oni nezískali ani jediný artefakt. Takhle vypadá týmová spolupráce! + + + Kanár + + + Na špièce každé kategorie figurovala tatáž osoba - ty! Nejvíc záøezù, nejvíc získaných artefaktù a nejménì úmrtí. Jen tak dál! + + + Všestrannost + + + Tvé zruènosti s nožem se nikdo nevyrovná! Vykucháním tøí nepøátel bìhem dvaceti vteøin se ti podaøilo dokázat, že správný zabiják nepotøebuje støelný prach. + + + Bìs + + + Každá, by sebelepší zbroj má nìkde skulinku. A ty víš, jak tuhle skulinku najít - prostì nepøítele støelíš do oka! + + + Achillova pata + + + Z nepøátelských kulek si nic nedìláš! Prostì jimi bez poskvrnky projdeš a pak to nepøíteli spoèítáš! + + + Rychlejší než výstøel + + + Jsi ochoten zkoumat nejnovìjší dìní v Zónì. Posunul jsi naše znalosti o Zónì o kus dál tím, že jsi našel nové anomální útvary, které vìda doposud neznala. + + + Prùzkumník + + + Stalkeøi si tì teï váží více.\nJako ocenìní tvých èinù ti v osobní schránce ve stanici Janov nechali nìjakou munici. + + + Nesnažíš se vyhýbat nebezpeèným mutantùm, místo toho je zabíjíš a vedeš si v tom dobøe. Dobøí lovci se mezi stalkery tìší velké úctì. + + + Lovec mutantù + + + Stalkeøi si tì teï váží více.\nJako projev uznání ti v osobní schránce ve Skadovsku zanechali zdravotnický materiál. + + + Odhalil jsi záhadu mizejicích stalkerù ve Skadovsku: na vinì tentokrát nebyli mutanti, ale mnohem zákeønìjší nepøítel – èlovìk. Tvá úspìšná honba za pravdou ti vydobyla respekt mezi stalkery. + + + Detektiv + + + Stalkeøi si tì teï víc váží.\nPožádali obchodníka Hejkala, aby ti poskytl slevu.\nFousáè ti od nynìjška nabídne za artefakty tu nejlepší možnou cenu. + + + Ukázal jsi banditùm a jejich veliteli Sultánovi, kdo je tady šéfem, a ostatní stalkeøi si tì za to oblíbili. Ve Skadovsku budeš vždy vítán. + + + Jeden z nás + + + Vydobyl sis respekt banditù.\nObchodník Hejkal ti ze strachu, že by mohl být tvým dalším terèem, poskytl slevu.\nFousáè ti dle dohody bude odvádìt èást svého zisku. + + + Pomohl jsi Sultánovi pøelstít stalkery a pøevzít kontrolu nad Fousáèovými obchody. V Zatonu jsi teï obávanou a respektovanou osobností. + + + Šéf + + + Stalkeøi se rozhodli, že Strakáèovu koøist, kterou získal díky lžím a podvodùm, pøedají nìkomu, kdo si ji zaslouží. Najdeš ji ve své osobní schránce v Janovì. + + + Pøedal jsi toho bídáka spravedlnosti. Strakáè podvedl a oklamal mnoho stalkerù a teï dostal, co si zasloužil. + + + Posel spravedlnosti + + + Stalkeøi si tì teï váží více.\nBanditi se tì budou snažit dostat, kdykoliv vstoupíš do Zóny. + + + Našel jsi všechny typy artefaktù, které výzkumníci Zóny znají. Tím sis vydobyl respekt stalkerù a pozornost ze strany banditù. + + + Hledaè artefaktù + + + Kardan dokáže provést jedineèné úpravy, namontováním hydraulických servomotorových posilovaèù ti umožní rychlý pohyb v exoskeletu. + + + Kardan teï má všechny nástroje, které by mohl potøebovat. To mu umožní provádìt nová a složitìjší vylepšení. + + + Machr pøes zbranì + + + Nitrák ovládá unikátní úpravy taktické pøilby: dokáže pøidat infraèervený skener schopný detekovat lidské bytosti ve tvém okolí. + + + Nitrák má všechny nástroje, o kterých by technik Zóny mohl snít. Nyní mùže provádìt hi-tech úpravy. + + + Hi-tech profík + + + Díky své zkušenosti se ti daøí nacházet vzácné artefakty èastìji. + + + Teoreticky ve støedu Zóny nezùstala žádná oblast, kterou bys ještì nenavštívil. Byl jsi témìø u všech místních anomálií. + + + Ostøílený stalker + + + Tvé vùdcovské schopnosti zvyšují šance týmu na pøežití. + + + Mìl jsi na starost týmovou práci, proto jsi poskládal velkou družinu a dokázal ji dobøe vést. + + + Vùdce + + + Svoboda, Povinnost, volní stalkeøi a dokonce i banditi již poznali tvé vyjednávací schopnosti a díky tomu si tì váží. + + + Problémy dokážeš øešit bez krve. Kdo potøebuje hrubou sílu, když stejnì dobøe mùže posloužit i pár dobøe volených slov? Pøesto by sis mìl dávat pozor na lidi, kteøí nejdøív støílejí a až pak se ptají. + + + Diplomat + + + S vìdci jsi strávil tolik èasu, že tì lidé èasto považují za vìdeckého pracovníka. V bunkrech vìdcù tì považují za jednoho ze svých. + + + Vìdecký pracovník + + + Tvé vztahy s Povinností se zlepšily. Pokud se dostaneš do problémù, bojovníci Povinnosti se ti pokusí pomoci.\nNitrák, technik se vztahy k Povinnosti, ti nabídl slevu.\nTvé vztahy se Svobodou upadly.\nHavajan, obchodník upøednostòující Svobodu, teï za své zboží bude chtít více. + + + Nìkolikrát jsi Povinnosti pomohl a díky tomu sis vydobyl uznání bojovníkù Povinnosti i jejich pøátel. Pamatuj však na to, že v Zónì nežijí jen pøíznivci Povinnosti. + + + Pøítel Povinnosti + + + \nTvé vztaky se Svobodou se zlepšily. Pokud se dostaneš do potíží, bojovníci Svobody se ti pokusí pomoci.\nHavajan, obchodník se vztahem ke Svobodì, ti nabídl slevu.\nTvé vztahy s Povinností se zhoršily.\nNitrák, technik upøednostòující Povinnost, teï za své služby bude chtít více. + + + Nìkolikrát jsi Svobodì pomohl a díky tomu sis vydobyl uznání bojovníkù Svobody i jejich pøátel. Pamatuj však na to, že v Zónì nežijí jen pøíznivci Svobody. + + + Pøítel Svobody + + + Stalkeøi v Janovì oceòují rovnováhu sil mezi Povinností a Svobodou, díky èemuž ti technici i obchodníci poskytli slevu. + + + Nepøiklonil ses k žádné z frakcí a vždy vystupuješ jako svobodný stalker. Nenadìlal sis žádné nepøátele, ale nemáš ani pøátele. + + + Nezaujatý + + + Obchodníci ti nabízejí vzácnìjší a dražší zboží. + + + Aèkoliv víš, co znamená být švorc, v souèasné dobì si v oblastí financí nevedeš špatnì. Spíš naopak, tvoje bohatství je znaèné a obchodníci si zákazníkù tvého postavení velice cení. + + + Solventní klient + + + Poté, co jsi získal poznámky, našel Støelec nový dùvod žít a dosáhnout svého cíle, a to stojí, co to stojí. + + + Tvá prozíravost se vyplatila: po nalezení poznámek ve skrýších Støelcových skupin sis je nechal, dokud jsi nenašel jejich právoplatného majitele. + + + Strážce tajemství + + + Díky užití anabolických pilulek jsi dokázal pøežít emisi, aniž by ses pøed ní skryl. Úèinky této události na tvou psychiku nejsou jasné, ale v hlavì máš podivné ticho. Zdá se, že už nedokážeš slyšet konstantní proud myšlenek. + + + Poznamenán Zónou + + + Obchodník Hejkal ti nabídl slevu za to, že jsi jeho nejlepším informátorem a partnerem. + + + Kdykoliv se ti do rukou dostanou nìjaké informace, dokážeš najít jejich správného kupce. Pøi prodeji informací tìm, kdo je potøebují, samozøejmì myslíš hlavnì na sebe. + + + Pøekupník informací + + + Tvé vztahy se stalkery se zlepšily. Pokud se dostaneš do potíží, stalkeøi se ti pokusí pomoci.\nZdravotníci stalkerù souhlasili s tím, že ti své zboží budou prodávat za nákupní ceny. + + + Kdykoliv se stalkeøi dostanou do problémù, jsi pøipraven jim pomoci. Aèkoliv jejich frakce není pøíliš jednotná, v neoficiálním bratrstvu stalkerù od nynìjška máš své pøátele, kteøí ti pomohou nejen v boji. + + + Pøítel stalkerù + + + Díky øadì nových informací dokázali profesoøi Hermann a Ozerskij vynalézt nový, experimentální lék na bázi antibiotik. + + + Jsi-li pøi zdraví, mùžeš pøežít emisi i bez použití léèiv. + + + Profesoru Hermannovi pøipadáš natolik užiteèný, že ti nabídl zdravotnické potøeby a výbavu, které jsou obvykle urèeny jen pro osádku bunkru.\nNovikov si na tebe tak zvykl, že už po tobì nechce peníze za modifikaèní práce, staèí mu jen peníze na souèástky. + + diff --git a/gamedata/configs/text/cze/st_characters.xml b/gamedata/configs/text/cze/st_characters.xml new file mode 100644 index 0000000..fdb77ac --- /dev/null +++ b/gamedata/configs/text/cze/st_characters.xml @@ -0,0 +1,336 @@ + + + + Spodek + + + Váòo + + + Podplukovník Šulga + + + Loki + + + Havajec + + + Kostihoj + + + Seòka + + + Zulu + + + Strejda Jar + + + Topol + + + Palcát + + + Duch + + + Had + + + Sup + + + Nitrák + + + Pastièkáø + + + Pazourek + + + Generál Taèenko + + + Poruèík Bunèuk + + + Plukovník Kosmaè + + + Poruèík Zacharèuk + + + Špína + + + Duplet + + + Chirurg + + + Lebzna + + + Kolík + + + Kostìj + + + Mrtvola + + + Chodec + + + Broòa + + + Srp + + + Mrož + + + Kliïas + + + Foma + + + Profesor Ozerskij + + + Novikov + + + Profesor Hermann + + + Èetaø Šliaèin + + + Poruèík Sergejev + + + Èetaø Valjušok + + + Èetaø Ostrovskij + + + Kapitán Klimenko + + + Poruèík Sokolov + + + Kapitán Tarasov + + + Plukovník Kovalskij + + + Poruèík Podorožnij + + + Poruèík Skelja + + + Èetaø Merkulov + + + Poruèík Stecenko + + + Èetaø Jarmošuk + + + Poruèík Rogovec + + + Poruèík Smirnov + + + Støelec + + + Barèuk + + + Major Dìgtarev + + + Trpaslík + + + Šišák + + + Grizzly + + + Torba + + + Mitjaj + + + Poruèík Gavrilenko + + + Pazourek + + + Gajduk + + + Garik + + + Poruèík Kirilov + + + Serbin + + + Šakal + + + Èipera + + + Rejpal + + + Kanón + + + Gonta + + + Kladivoun + + + Høeben + + + Hejkal + + + Tetøev + + + Danila + + + Sultán + + + Morgan + + + Boxer + + + Spartakus + + + Fousáè + + + Kardan + + + Goblin + + + Dub + + + Pianista + + + Travaø + + + Kirzaè + + + Tank + + + Rypák + + + Sekerák + + + Kapr + + + Noe + + + Navigátor + + + Strašák + + + Poruèík Drapej + + + Praporèík Umerov + + + Pahejl + + + Hák + + + Hrbáè + + + Majron + + + Bárka + + + Petrucha + + + Šídlo + + + Major Èepurnij + + + Praporèík Valentir + + + Rotmistr Morozov + + + Nadporuèík Smoljak + + + Tøíska + + + Rotný Gazda + + + Kapitán Furtes + + + Rotmistr Švejko + + diff --git a/gamedata/configs/text/cze/st_dialog_manager.xml b/gamedata/configs/text/cze/st_dialog_manager.xml new file mode 100644 index 0000000..866d946 --- /dev/null +++ b/gamedata/configs/text/cze/st_dialog_manager.xml @@ -0,0 +1,993 @@ + + + + V Zatonu je jedno místo, kde jsou pod vodou žhavý anomálie. Øíká se tomu Bojler, protože ze zemì vychází spousta páry. A pokud si myslíš, že pára nic není, tak mysli ještì jednou. Zkušení stalkeøi øíkají, že takový výpary tì sundaj stejnì dobøe jako normální žárová anomálie, pokud ne hùø. Teplota je možná kapku menší, ale provaøí tì to skrz naskrz do mìkka. Co se týèe artefaktù, našli normální, ohnivej typ. + + + V lomu je prej dobrý místo, spousta artefaktù, i když anomálií taky dost. Dole je spousta bublin z plynovejch anomálií, pálí to do oèí, i když máš gas masku. + + + Popelištì je u starýho høbitova kousek od Kopaèe. Je tam spousta žárovejch anomálií a obèas nìjaký zombice. Lidi se tomu snažej vyhejbat, ale obèas se tam dají najít nìjaký artefakty. + + + Na parkovišti se prej našly artefakty. Furt jsou tam auta z první havárie v Èernobylu - svítí z nich radiace, až to nièí mìøáky. Navíc je tam taky hromada elektrickejch anomálií. + + + V Jedovatým lesíku, kde jsou stromy ponièený kyselinou. Prej je tam spousta plynovejch anomálií. V luftu je tolik plynu, že nevidíš rovnì, ale s trochou štìstí a zkušeností najdeš artefakty. + + + Pokud hledáš artefakty, jdi po kyselinovejch. Ty nejsnáz najdeš v Betonových lázních. Nebudeš mít moc velkou konkurenci, nikdo tam moc neleze, protože je to blízko budovy Jupiteru. + + + Kousek od Jupiteru se propadla silnice. Øíká se tam tomu Asfalt, protože se silnice roztavila. V díøe je spousta anomálií - žárový promíchaný s gravitaèníma. A jelikož jsou tam dva druhy anomálií, budou tam i rùzný artefakty. + + + Za cementárnou je malej pøístav. Zmìnilo se to tam na hroznou smrdící bažinu, voda je plná plynovejch anomálií. Už to ani není voda, spíš nìco jako naøedìná kyselina. Døív se tam daly obèas najít artefakty, ale teï je to tam samej mutant. + + + Podívej se do starý cementárny. Spousta anomálií, ale stojí to za to. Jasnì, jsou místa, kde se dají artefakty najít snáz, ale hledá je tam spousta lidí. V cementárnì ti budou konkurovat akorát tarbíci, to když vlezeš do podzemí. + + + Mìl by ses podívat poblíž Dubovic. To je ta vìc, co roste u kopcù, nad plynovejma anomáliema. Øíká se tomu tak, protože nìjakej vìdátor zkoumal kùru toho stromu a vycházelo mu, že je to dub i borovice. Pokud tam chceš ale hledat artefakty, budeš potøebovat dobrou chemickou ochranu. A taky si vezmi spoustu munice, v tìch kopcích žije spousta psích smeèek. + + + Nìkdy nemusíš skákat kvùli artefaktu do anomálií. Prej se jeden typ dá najít normálnì na otevøený ploše. Tenhle stalker mìl detektor, kterej zaèal blbnout, tak se rozhodl, že vymìní baterky. Ale jakmile to udìlal, detektor furt nìco ukazoval a najednou prásk, artefakt mu spadnul pøímo do klína. Ten mìl štìstí, co? Taková je Zóna: nìkdy tì potrestá, nìkdy odmìní. + + + Slyšel jsem od zkušených stalkerù, že se obèas artefakty dostanou ven z anomálií. Když ti zaène detektor pípat a ty ho vytáhneš, ale stejnì nic nevidíš. To znamená, že kolem tebe probìhnul potulnej artefakt a nemá smysl ho honit, protože jen Zóna rozhodne, komu ho nadìlí. + + + V Pripjati zatím nikdo artefakty nehledal. Všichni stalkeøi, co znám, tam byli jen chvilku, takže si radši dávají pozor. + + + Nevím, jestli nìkdo zná dobrý místa. Pripja zatím není moc dobøe prozkoumaná. + + + Já bych se podíval do podzemí. Pod mìstem je prej tuna artefaktù. + + + O týhle oblasti nikdo nic moc neví. Akorát Garik obèas nìco vypráví. Prej je tady místo, kde z kyselinový anomálie roste popínavý víno, vysoký jako desetipatrovej barák. Možná si z nás dìlal srandu, ale pokud na to narazíš, koukni tam po artefaktech. + + + Nejjistìjší místo je kyselinová bažina. Je plná gravitaèních anomálií, ale ty snadno odhalíš. Staèí koukat na vodní hladinu a nemùžeš je minout. Plynový anomálie jsou otravnìjší, a to doslova. Když tì nìjaká sejme, není to sranda, vìø mi. Prožírá se to zbrojí rychlejc než koncentrovaná kyselina sírová. + + + Ve vypálený farmì nahoøe na kopci je spousta anomálií. Obèas se tam dají najít ohnivý artefakty. Podívej se do barákù: v tom, ve kterým je po emisi nejvíc anomálií, bude nejspíš i nìjakej artefakt. + + + Nejspíš je jich spousta v jeskyních pod vypálenou farmou. Když jdeš po kopci s detektorem, furt øve a øve. Dostat se tam je snadný, staèí skoèit dírou dolù. Ale dostat se ven už je horší, se všema tìma anomáliema. Vìtšinou Vortexy a Kyselina. Prej je v tý díøe i nìco jako kometa. Prostì plnej pytel pøekvapení, ale to znamená, že tam budou i rùzný artefakty. + + + Vidìl jsi anomálii Cirkus? Velká trampolína, kolem který lítají dokola dvì komety. Fakt úžasná podívaná, ale nejlíp z dálky, protože cirkus je horkej jako prase, je tam i spousta žárovejch anomálií. Zas ale je tam taky spousta artefaktù, jen je hlídá hnusnej ohnivej poltergeist, kterej se tì pokusí osmažit, pokud pøilezeš moc blízko. + + + Pokud máš zájem o gravitaèní artefakty, hledej anomálii Paøát. Najdeš to snadno, anomálie ožraly terén tak dobøe, že pùlka kopce zmizela. Otevøelo se tam i pár jeskyní a hned se v nich usadili snorkové. Naštìstí moc èasto ven nelezou. + + + V Zónì, vole, v Zónì. Jen to nevzdávej. + + + Skvìlá otázka. Øekni mi, až zjistíš odpovìï! + + + Kde, kdy, proè... pamatuj: když najdeš nalezištì, nech si ho pro sebe. + + + Kde bych mohl najít nìjaký artefakty? + + + Už jsem ti to øíkal. + + + Ne, nic dalšího nevím. + + + To je všechno, co vím. Zeptej se nìkoho jinýho. + + + Jak se vede? + + + Zdravím. + + + Ahoj, stalkere. + + + Ahoj. + + + Co chceš? + + + Co je? + + + Tak mluv. + + + Dobrý odpoledne, pane majore! + + + Dobrý odpoledne! + + + Poslouchám, pane majore! + + + Jo, nazdar. + + + Co je? + + + Á, náš hrdina. + + + Hej, stalkere, kam tak spìcháš? + + + Ahoj + + + Hej + + + Nazdar, vole. + + + Nazdárek + + + Hej! + + + Pomoz mi, brácho... + + + Zachraò mì, brácho, umírám... + + + Potøebuju zdravotníka! + + + Lékárnièku!... rychle! + + + Pomoz mi, kámo... sakra to bolí! + + + Dej mi lékárnièku... rychle, lékárnièku... + + + Vole... argh... no tak, pomoz mi! + + + Hej, potøebuju lékárnièku... rychle... + + + Pomoz mi, stalkere... lékárnièku, prosím... + + + Jsem zranìnej... pomoc! + + + Potøebuju lékárnièku! + + + Lékárnièku! + + + Slyšels nìco o tý èistièce východnì od Skadovska? Prej tam v noci nìco divnýho svítí... Fakt divnýho i na Zónu. Nevím, co to je, ale podle mì má smysl se tam jít podívat. Mohlo by to být nìco cennýho, ale zas, má smysl kvùli tomu riskovat prdel? To je otázka... + + + Tady jsou jen starý rozpadlý vraky. Tøeba ta kolona vozidel u Mostu Pøeobraženského - všechno je tam prorezlý skrz nasrkz, vèetnì mostu. Spousta lidí by se tam ráda podívala, ale je tam spousta snorkù a anomálií... + + + Slyšels, že Sultán chtìl pøevzít Fousáèùv kšeft? Skadovsk není pro jeho nenažranou prdel dost velký, tak si chtìl ukousnout vìtší sousto... Ale my øekli: "Nic takovýho, frajere!" Fousáè mu s našima chlapama ukázal, zaè je toho loket. Sultánovým hrdloøezùm tady pšenka nepokvete... + + + No teda, slyšels to? Ten šmejd Sultán dostal do spárù Fousáèe... nevím, co pøesnì mu udìlal, ale teï ho má pod palcem. Co se s tou Zónou jen dìje? Pokud to takhle pùjde dál, bude za chvíli ze Skadovsku banditská základna. + + + Už jsi slyšel o Oáze, brácho? Prej je to místo, který se nedá snadno najít, a i když víš, kde to je, tak dostat se tam je ještì horší. Prej tam má být nìkde jezero. Když do nìj vlezeš, ze všeho tì vyléèí, všechny rány se ti okamžitì zahojí! Ale, nemá smysl o tom jen tak kecat. Vidìls, kolik zelenejch stalkerù sem pøichází, sem do centra Zóny? Nìkterý hledaj artefakty, jiný jsou zvìdaví, ale spousta jich chce najít Oázu. Prej je schovaná nìkde tady poblíž.... + + + Zóna prej brzo skonèí... nìkdo našel Oázu a sebral z ní artefakt, srdce Oázy. Teï se Zóna pøesune do jiný dimenze a žádnej stalker už se z ní nikdy nedostane... dìlám si srandu, vole. Ale prej fakt našli nìjakej novej typ artefaktu. Vìdátoøi si s ním právì hrajou ve svým bunkru. + + + Slyšels o Topolovi? Našel nìjakou díru a zavedl do ní svý chlapy. Jejich dobrodružství skonèilo, když jim mozky oblbnul kontrolor. Skonèili by v nemocnici, nebejt jednoho stalkera, kterej tam s nima byl. Když se Topol probral z omámení, sedìl ten stalker hned vedle kontrolora a odøezával mu uši. + + + Slyšels o vesnici Kopaèi? Když došlo k první havárce v Èernobylu, schytala to ta dìdina tak zle, že se ji rozhodli celou zasypat. Teï je tam místo barákù jen hromada radioaktivní hlíny. I pøed havárií to prej bylo zlovìstný místo, dìsím se toho, jaký je to tam teï. Všichni z toho mají takovej vítr, že se tam nikomu nechce jít a prozkoumat to. Ale co když se všichni pletou? Tøeba je to úplnej zlatej dùl na artefakty! + + + Víš, v Janovì jsou jen dva stalkeøi, který dokážou vycítit, že se blíží emise. Náš zdravotník Kostihoj a Zulus, bejvalej èlen Povinnosti. To bejvalej platí teprv chvilku... když Povinnost pøišla do Janovský stanice, už tam byli lidi od Svobody. Jak se dalo èekat, rychle to zaèalo bejt zlý. Obì frakce utrpìly velký ztráty, dokonce i pár svobodnejch stalkerù to schytalo od zatoulanejch kulku. Tehdy jim Zulus øekl, že se blíží emise. Jelikož nemìla Povinnost ani Svoboda na výbìr, vyhlásili pøímìøí a zakopali se ve stanici. Když to všechno skonèilo, odešel Zulus z Povinnosti a usadil se u vìže poblíž stanice. + + + Slyšel jsem spoustu divnejch historek... nemìl bys vìøit každýmu žvástu. Vypravìèù je v Zónì v poslední dobì víc než mutantù. Ale co je divný, pár stalkerù z Janova tvrdí, že vidìli UFO. Prej to vypadalo jako èernej talíø, tak pìt metrù v prùmìru. Jiní tvrdìj, že to na dálku vypadalo jako letadlo a že to teda asi letadlo bylo. Co je ale zajímavý, jeden z oèitejch svìdkù je bejvalej pilot a ten tvrdí, že nikdy v životì nic takovýho nevidìl. + + + V poslední dobì jsem slyšel akorát špatný zprávy. Dobøí chlapi mizej jeden za druhým, a když najdem jejich mrtvoly, není v nich ani kapka krve. To musej bejt ti zasraný upíøi, kdo jinej? Fakt rád bych našel jejich hnízdo a osolil ty svinì olovem! Brzo budem muset chodit s ochrankou i na hajzl, víš? Osamìlý stalkeøi to nedaj. + + + Slyšel jsem novou historku. Chlapi ze svobody prej sehnali PDA legendárního zakladatele Povinnosti. A víš co? Ukázalo se, že svý chlapy podvedl, tvrdil jim, že je armáda v Zónì opustila. Vymyslel si to, aby si z nich mohl udìlat vlastní frakci! Ale takový vìci v Zónì nevydržej. Chvíli po tom se ten hrdina dostal do prostorový bubliny a skonèil. Tak už to chodí.. a to jsem pøemýšlel, že se k Povinnosti pøidám! Pche, a si ty svoje rádoby vlastenecký kecy hlásaj sami. + + + Ten novej oddíl Povinnosti, však víš... zjevili se jako kouzlem, z nièeho nic. Uvažuj o tom: skupina Povinnosti odejde z Janova a když se vrátìj, je jich tøikrát tolik. To se klonujou nebo co? I když od Povinnosti by se to dalo èekat. Rozeznáš je od sebe akorát podle výložek! + + + Ten novej oddíl Svobody, však víš... zjevili se jako kouzlem, z nièeho nic. Uvažuj o tom: skupina Povinnosti odejde z Janova a když se vrátìj, je jich tøikrát tolik. Napadlo mì, že se množej dìlením! Co myslíš? To maj z tý trávy, kterou hulej, za chvíli zakoøenìj a pak se budou rozmnožovat vegetativnì! + + + Znáš Gontu a jeho partu? Nìjakou dobu je celkem pronásledovala smùla, po tom co zmizel Danila a Rejpal byl zranìnej. Ale teï se jim zas daøí. Dìlaj pro vìdátory, mìøej pro nì nìco. Dobrý, ne? Pohodová práce a navíc tak možná èasem získaj oficiální povolení. + + + Slyšels o stalkerech, kterým se øíká Mía, Torba a Grizzly? Prej maj kšeft pro vìdátory, dìlaj za nì nìjaký mìøení. Co je to za blbost? Podle mì ti vìdátoøi jedou v nìjaký špínì. Ale aspoò maj chlapi teïka chvilku klid. Možná dokonce i seženou oficiální povolenky. + + + Znáš Spartaka a jeho partu? Tak ty už ve Skadovsku nepotkáš, teï hlídaj vìdátorskej bunkr. A proè ne, o mutanty se dokážou postarat a vìdìj, jak zahnat bandity. Vìda je dùležitá vìc, ale potøebuje trochu klidu a míru. + + + Vidìls ty žoldáky, co se flákají kolem èistièky? V poslední dobì urèitì ne. Vyrazili do Jupiteru hlídat vìdátorskej bunkr. Pøed tím to tam hlídali nìjací jiní žoldáci, ale nìco se jim prej stalo. A to podle mì není nic špatnýho! Když zmizej nìjací žoldáci, pøijdou místo nich jiný a taky zmizej... ještì párkrát do kola a zbavíme se všech žoldákù ze Zatonu. + + + Vìdátorskej bunkr teï prej hlídaj odvážný bojovníci Povinnosti... co z toho asi maj? Opravdu vìøej, že se jim ti vìdátoøi oplatìj plasmovou bouchaèkou, aby mohli jít na lov tarbíkù? Prd hlídají, bude v tom nìjaká špína... + + + Vìdátorskej bunkr teï prej hlídá Svoboda. Copak nemaj vìdátoøi strach, že jim nìkdo vykouøí labinu? A myslím to doslova, haha. Ale má to jednu výhodu. Pokud si nìkdo zkusí zaútoèit na bunkr, budou se muset nejdøív prodrat kouøovou clonou a neusmát se k smrti! + + + Už jsi byl v Jupiteru, továrnì na elektroniku? Pìknì nepøíjemný místo. Nikdo neví, co se tam vlastnì dìje. Mutanti a anomálie jsou tam jako všude jinde... ale furt mám pocit, že se tam dìje nìco hnusnýho. Instinkt mi øíká, tam bude nìjakej prùser. + + + Hele, nejseš ty ten, kdo odhalil skadovskýho zdravotníka? Jsem ti za to vdìènej. Taky jsem mohl skonèit jako jeho další pacient... všichni jsme si mysleli, že to byli mutanti, ale zjevnì dokážou bejt lidi stejný svinì. Holt, v Zónì se všichni žerem navzájem, co? + + + Na to bych se tì mìl ptát já. Po tom, co jsi vlezl do tìch tunelù pod Jupiterem, jsem slyšel, že ses dostal až do støedu Zóny. Byl z toho poøádnej poprask. Tak tucet lidí mìl sto chutí vyrazit za tebou. Nitrák je ale uklidnil - øekl jim, že jsou brány v tunelu zavøený a že on je nedokáže otevøít. Jasnì, bylo tady pár magorù, kteøí chtìli ty brány vyhodit do luftu, ale ještì poøád nesehnali dost dynamitu. A ani nevymysleli, jak tam dole budou dejchat. + + + Slyšel jsi tu novinku o Garikovi? To je stalker, kterej døív makal pro vìdátory. Už není narušitel, dostal oficiální povolenku pro práci v Zónì, vìø tomu nebo ne! No, myslíš si asi, že mìl sebrat koøist a vrátit se domù, co? No místo toho se ten magor vydal do Pripjati. Všichni si mysleli, že už je po nìm, ale ne. Zvládnul to, i když stalkerùm to k nièemu nebude. Narazil na nìjaký vojáky. Teï je s nima za dobøe, když má povolenku, ale normální stalkeøi tam stejnì nesmí. + + + No... Svoboda a Povinnost spolu zas bojujou, tentokrát o nìjakou velkou skrýš. Prej je tam dost vybavení pro tøi pìchotní divize. Èert ví, kdo to tam schoval, ale ta bitka, to je nìco. Vydráždilo to všechny stalkery v Janovì, ale naštìstí se do boje nepøidali, jinak by to byl masakr. Øekl bych, že Povinnost prohrála, protože to tam teï hlídaj oddíly Svobody. + + + No... Svoboda a Povinnost spolu zas bojujou, tentokrát o nìjakou velkou skrýš. Prej je tam dost vybavení pro tøi pìchotní divize. Èert ví, kdo to tam schoval, ale ta bitka, to je nìco. Vydráždilo to všechny stalkery v Janovì, ale naštìstí se do boje nepøidali, jinak by to byl masakr. Øekl bych, že Svoboda prohrála, protože to tam teï hlídaj oddíly Povinnosti. + + + V poslední dobì se nìco stalo. Parta stalkerù zkoumala tunely pod Jupiterem a na nìco narazila. Nebo spíš na nìkoho. Nejdøív jim bouchaèky samy vyletìly z rukou a pak na nì zaèalo lítat všechno svinstvo v okolí. Nemìli tušení, co se tam sakra stalo, ale pøišli tam o dva chlapy. + + + V tunelech severnì od Jupiteru byl prej nìjakej nebezpeènej zmutovanej šmejd. Pastièkáø tam poslal na prùzkum jednoho stalkera. Ukázalo se, že tam mìli hnízdo bjureøi. Proè mìli? Protože ten stalker všechny bjurery vyhubil. Sám samojedinej... dokonce vypadal tak trochu jako ty, podle popisu, akorát že byl o hlavu vìtší a nosil sebou nìkolik granátometù. + + + Stalkeøi skonèili... z bažin vylízaj pøíšery. Stalkeøi u cementárny vidìli, jak s sebou potvory táhnou jednoho z našich. Bylo jich nejmíò tucet, obrovský hnusný svinì. Vypadali jako upíøi, akorát byli dvakrát vìtší a mnohem rychlejší. Modlíme se, aby Pastièkáø vymyslel, jak si s tìma svinìma poradit... + + + Už jsi slyšel o bažinnejch upírech? Tìch z bažin? No, je po nich. Pastièkáø se o nì postaral. Ne osobnì, najal na to nìjaký stalkery. Prej dali dohromady partu tak deseti lidí, proèesali bažinu a co vyskoèilo, dostalo dávku pøímo do palice. Teï už tam prej nežijou ani žáby. + + + Sotva se zaèalo povídat, že tady øádí chiméra, tak ji nìkdo oddìlal. Mutanti døív zabíjeli stalkery po tuctech, ale vypadá to, že se karta obrací, koneènì. Taky jsem slyšel, že tu chiméru oddìlal zkušenej lovec, kterej zabil dohromady víc mutantù než ty a já komárù. + + + Už jsi slyšel, jaký lidi teï verbuje Svoboda? Tøeba ten týpek jménem Pazourek, strašnej frajer, furt se chlubil vším možným... no a ukázalo se, že je to pìknì hnusnej šmejd. Nechal svýho kámoše zdechnout v anomálii, sebral jeho koøist a odešel. Pozdìjc se zjistilo, že v Zatonu ta svinì nakrmila chiméru celou partou lovcù. Myslel jsem si o Svobodì dobrý vìci... sakra, radši zùstanu na vlastní pìst, než mít takový "kámoše". + + + No, prej sundali tu chiméru v Zatonu. Gontova parta s nìjakým stalkerem. Hele, nebyl jsi to náhodou ty? Možná bys mi to mohl popsat z první ruky? Jo a mimochodem, fakt dík, o jednu lidožravou bestii míò! + + + Nevím, jestli tì to zajímá, ale máme tady Noa, nejvìtšího magora, jakýho jsi kdy potkal. Má pìknì hnusnou loï... teda prej mu ji za tejden postavila parta ilegálù. Dávej si na nìj bacha, nejdøív støílí a pak se ani neobtìžuje ptát se. Do prdele s tím debilem, to øíkám já. + + + Znáš toho frajera Hnitýho? Pìknì práskanej týpek. Prodává ty nejlepší bouchaèky široko daleko. By mì fakt zajímalo, jak je sem dostává. Chci øíct, jak sebou mùžeš táhnout Vintara, aby si toho nìkdo nevšimnul? Kam si ho narveš? To je skoro jak nìjaký kouzlo, vole. + + + Povídá se, že Sultán šlápnul do pìknì hlubokýho hovna. Chtìl sundat Fousáèe a ovládnout jeho kšeft, ale ukousl si víc, než dokázal sežvejkat. Místo toho dostal pìknì do rypáku. Èekají ho tìžký èasy, jeho vlastní parta se na nìj kouká pìknì hladovì. Už není taková tìžká váha, jako kdysi. + + + Povídá se, že Sultán nìjak ovládnul Fousáèe a šéfuje jeho kšeftu. To je dobøe, Sultán má teï vìtší moc, ale nejlepší na tom je, že brzo budeme šéfovat Skadovsku podle sebe. To bude krása. Chceš se schovat pøed emisí? Nima problema, tavaryš, ale naval poplatek! + + + Hele, už jsi slyšel o Oáze? Si to pøedstav, místo, který tì okamžitì vyléèí ze všech zranìní a nemocí. To musí bejt nìjakej trik... nebo kouzlo. Ale mì napadlo ještì i nìco jinýho. Povídá se teï hodnì o Oáze, ale už ani slovo o Plnièi pøání jak kdysi. Možná je Oáza nìèí pøání, který se naplnilo? + + + Mezi vìdátorama se povídá o nìjakým artefaktu, kterej nìkdo pøitáhnul z Oázy. Ale tohle je zajímavý, jakmile to prostudujou, budou mít lék na rakovinu! To je nìco! + + + Stejný sraèky, jen novej den... všichni vyprávìj ty starý historky o støedu Zóny. Jako tøeba tu o Oáze, což má bejt místo, který tì okamžitì vyléèí ze všechno možnýho a doplní ti energii. To je naprosto idiotskej kec, ale dobøe se to poslouchá. Zvláš když nìkdo mluví o tom, kde to je. Jo, pøál bych si, aby takový místo fakt existovalo... zachránili bysme spoustu našich chlapù. + + + Slyšel jsem, že prej nìkdo fakt našel Oázu. Nikdy by mì nenapadlo, že opravdu existuje, ale fakta jsou svinì. Našli tam nìjakej artefakt. Vìdátoøi ho právì studujou. Možná podle nìj udìlají nìjaký super léèebný zaøízení... našim chlapùm by se nìco takovýho fakt hodilo. + + + Kopaèi. Nic novýho v Zónì, ale pro mì to nový je. Jen si to pøedstav, celá dìdina s barákama zasypanýma až po støechy do hlíny... Táhne se to až od 1986... baráky byly tak nasáklý radiací, že je radši zahrabali. Nepøíjemná pøedstava... + + + Znáš tu historku o tom, jak jsme s Povinností skonèili spoleènì v Janovì? Mùže za to Zulus. Tenkrát patøil k Povinnosti a dokázal vyèenichat blížící se emisi jako nikdo druhej... Ale my do Janova pøišli jako první, teda hned po stalkerech. Sotva jsme mìli èas zapálit si pár jointù, když se objevili ti debilní vojáèci a zaèali na nás mávat bouchaèkama. Naposled jsem takovej masakr vidìl na Smeáku tak pøed rokem. Hromada mrtvejch na obou stranách. A náš specialista na emise mezi nima, a je mu zemì lehká. A nejednou zaèal Zulus øvát: "Emise! Blíží se emise, krejte se!" No co jsme mìli dìlat, vykopnout je a nechat je zdechnout? Povinnost nebo ne, furt jsou to lidi. A tak tady teï žijem: když je ticho, hádáme se, ale když pøijde emise, sedíme bok po boku. Zulus nakonec z Povinnosti odešel. Teï prej žije jako poustevník poblíž Janova. + + + Není to nic novýho ani tajnýho, ale technik Kardan se brzo uchlastá k smrti. Prej když pøišel do Skadovsku, byl celkem v klidu, chlastal jen obèas, nebo kvùli radiaci. Ale pozdìjc zaèal hltat koøalku jako vzteklej, znièil ho smutek, když mu chcípli dva kamarádi. Asi si byli fakt blízcí. + + + No, znám jednu zábavnou historku. Jeden týpek vyprávìl, že nad Janovem lítalo Ufo. Zóna fakt dokáže dohnat lidi k šílenství, co? Jakoby jim nestaèili poltergeisti a kontroloøi, ne, oni prostì bez starejch historek o ufounech nevydržej. No aspoò že tady nemáme žádný šílený psioniky, co by zaøíkávali ïábla z vodky. Pøedstav si takovýho: "Mocnej Etanole, vyžeò z koøaly zlo! Zachovej jen èistej chlast!! Haha. + + + Slyšel jsi o vesnici Kopaèi? Když došlo k prvnímu prùseru v Èernobylu, schytala to ta dìdina tak hodnì, že ji radši celou zasypali. Teï jsou tam místo barákù jen hromady radioaktivní hlíny. Prej to bylo i pøed havárkou strašidelný místo, èert ví, jaký je to tam teï. Nikdo si netroufá to tam jít zkontrolovat. + + + Není to nic novýho, ale možná jsi to ještì neslyšel. Nevlezli jsme do postele se Svobodou, protože bysme se chtìli zahøát. Mùžou za to okolnosti. Když jsme sem dorazili, vyskoèila na nás odevšad Svoboda. Ztráty byly tìžký na obou stranách, ale pomalu jsme nad tìma mizernejma anarchistama získávali navrch... ale uprostøed nejvìtšího boje Zulus ucítil, že se blíží emise. Nikdy se neplete, víš... Nemìli jsme na vybranou, museli jsme vyhlásit pøímìøí. Co ale nechápu, proè Zulus po tom incidentu odešel z Povinnosti... + + + Naši prùzkumníci nedávno ohlásili, že vidìli nad Janovskou stanicí neidentifikovaný lítající objekt. Prostì UFO. Než se zeptáš na nìjakou blbost, UFO nejni jen lítající talíø s maranama. Mùže to být cokoli lítajícího, od kusu lepenky po meteorologickou sondu, prostì to akorát svìdci nedokázali identifikovat. Je ti to jasný? + + + Ty jsi pøinesl Lokimu to PDA, co? Ty vole, to byl prùser. Legendární zakladatel Povinnosti generál Taèenko podvedl svý vojáky, udìlal z nich úplný debily. Rozbil rádio, aby se jim nikdo z venku nedovolal, a založil si vlastní partu... jen aby chcípnul jako úplnej retard v blbý prostorový bublinì! Takovou blbost by si nikdo nedokázal vymyslet! + + + Vidìls ten novej oddíl tìch blbejch vojclù? Nemùžou to bejt posily z jejich základny - ideologie jim ještì nevypálila zbytek mozku. Ale jsou moc dobøe cvièení, aby to byli obyèejní stalkeøi. Èert ví. Nemohli by být od Monolitu? Já vím, zní to bláznivì! + + + Vidìls naše nový bojovníky? Jo, ty jsi je sem vlastnì pøived, co? Seš dobrej. A ti chlapi jsou celkem v pohodì, akorát kapku nervózní. Za pár mìsícù se ale jejich mozky osvobodìj. Zaènou brát náš zpùsob života vážnì a brzo budou jako my. + + + Máme skvìlý nový rekruty, oddíl døívìjších monoliákù. A nejsou to žádní zelenáèi, naopak, zkušení bojovníci. Samozøejmì mají v hlavách ještì kapku vymeteno, ale to je v pohodì. Máme na nì pøipravenej základní kurz ideologie, to jim ty blbosti Monolitu z palic vyžene. + + + Svoboda prej naverbovala døívìjší partu z Monolitu. Tìžko tomu uvìøit, ale fakt maj novej oddíl a ten rozhodnì nepøišel z venku. Asi jsou dost zoufalí... nebo jim ty drogy úplnì vypálily mozky. Co naverbujou pøíštì, brigádu zombíkù? Prapor bjurerù? + + + V týhle oblasti bude brzo zase zákon a poøádek. Povinnost pøevzala kontrolu nad klíèovejma lokacema. Zabezpeèili jsme silnou pozici v Janovì a u vìdeckýho bunkru máme non stop strážní oddíl. Je na èase, aby se Svoboda sbalila a vypadla - anarchisty tady nevidíme rádi. + + + Nejnovìjší div svìta - støízlivej Kardan. Dokážeš tomu uvìøit, že pøestal chlastat? Lidi ze Skadovsku se ho ptali, jestli se dostal k èíslu horký linky anonymních alkoholikù a on jim na to øek: "Potøeboval jsem jediný èíslo, šedesát dva." + + + Myslím, že to ty jsi pomohl našim chlapùm sehnat práci pro vìdátory, co? Díky. Je fajn vidìt u bunkru naše chlapy místo tìch mizernejch žoldákù. Jen tak dál! + + + No hele... napakovali jsme se na skrýši Povinnosti. Teï tu skrýš používáme na nìco lepšího, jako vìzení pro povinnosácký šmejdy, maèkáme z nich všechna tajemství. Hehe. Jo a dík za ten tip na poplašnej systém, bez posil bysme nemìli šanci. + + + Další vítìzství pro Povinnost! Ti anarchisti si ukousli moc velký sousto... vplazili se do našeho tajnýho skladištì a mysleli si, že jim to projde. Ale prd! Pøekvapili jsme je a postøíleli jako vzteklý psy. + + + Není nic novýho, že je Svoboda banda mizerù, ale odhalili jsme nìco zajímavýho o jednom z jejich nejdùležitìjších magorù. Ten hajzlík si v Povinnosti øíkal Pazourek, ale pøedtím byl stalker Strakáè. Aspoò tak si øíkal, když pøišel do Zatonu a málem zaved partu lovcù mutantùm pøímo do tlamy. Navlíkl to tak, že je chiméra málem sežrala, zatímco ta svinì posbírala jejich vybavení a šla do Janova. Když se pøidal k Povinnosti, hodil svýho paráka do anomálie, aby mu mohl sebrat artefakt. No prostì typickej Svoboïák. + + + Noe vede novej projekt stavby lodì. Nejnovìjší atrakce v Zatonu - stalker jménem Noe. Zkušenej, motivovanej a naprostej magor. Jeho poslední šílenej nápad je zachránit všechny stalkery pøed Apokalypsou. A tak pøedìlává starou bárku na "Archu". Fakt totální magor. Pokud se za ním budeš chtít stavit, dej si bacha, a ho nenaštveš. Jinak je celkem neškodnej. + + + Už jsi byl u Èipery? Teï je ve Skadovsku. Fakt profík obchodník. Mùže ti sehnat úplnì všechno. Teda, skoro všechno. V poslední dobì se soustøeïuje na bouchaèky a obleky, ale jen ty nejlepší! Speciální kousky, experimentální typy, ruènì vyrábìný zboží... není to levný, ale proè by taky mìlo? Exkluzivita za to stojí! + + + Vìdìls, že Navigátor používá novou trasu mezi Zatonem a Jupiterem? Døív to trvalo docela dlouho, musels vyšplhat na kopec, vyhnout se anomáliím a tak dál. Teï je to úplná pohoda. Není to žádná výprava, spíš procházka parkem, navíc to trvá sotva polovinu èasu. Ale Navigátor se nechlubí, že by to našel sám, nìjakej stalker mu to prej ukázal na mapì. Ne zadarmo, samozøejmì, ale moc za to nechtìl. + + + Abych pravdu øekl, celkem nic. + + + V Zónì je vždycky nìco novýho, staèí koukat kolem sebe. + + + No, ty seš tady novej. A to bude asi tak všechno. + + + Co je v Zónì novýho? + + + Nevím o nièem dalším, co by tì mohlo zajímat. + + + Rád bych ti ještì nìco øekl, ale nic jinýho se ke mnì nedoneslo. + + + Øekl jsem ti všechno, co vím. + + + Hrm... Možná by ses mìl zeptat Tetøeva ve Skadovsku. Hledal nìkoho, kdo by mu píchnul s jedním problémem. Stalkeøi mizej beze stop. Všichni z toho vinìj upíry, protože když už pak nìkdo najde tìlo, je bez kapièky krve. Ale tohle je nìjaký divný... sbíraj lidi skoro každej den. A to upíøi normálnì nedìlaj... Tetøev dokonce na ty upíry najal zkušenýho lovce. + + + Víš, když stalker potøebuje prachy, má dvì možnosti: najít artefakty a prodat je pøekupníkùm za 30 kopìjek z rublu, nebo makat pro vìdátory. Vždycky vymýšlej nìco, co by pro nì mohl nìjakej stalker udìlat, a už je tøeba donýst nìjakej vzácnej artefakt, nebo zdechlinu mutanta. Ale hlavnì když se s tebou zkamarádìj, mùžou ti vydat oficiální povolenku pro pobyt v Zónì, fakt pravou. Pøedstav si, jak jdeš kolem vojenský pozice, s báglem plným koøisti, a ti blbové ti ještì musej salutovat! Krásná pøedstava. Bunkr vìdátorù je západnì od Janovský stanice. Už pro nì jeden stalker maká, ale možná najmou dalšího. + + + Jak úspìšnìj seš, to záleží na tom, co dìláš. Pokud ti nevadí lovit mutanty, budeš mít spoustu možností. Stav se v podzemí Janova a ptej se na Pastièkáøe - dává slušný prachy za likvidování mutantù, ale nemùžeš jít odstøelit prvního èokla, kterýho potkáš, a èekat odmìnu. Pastièkáø ti dá zakázku na urèitý potvory, který dìlaj problémy pøi sbírání artefaktù, nebo lezou na místa, kam se stalkeøi schovávaj pøed emisema. + + + Chlapi jako ty chodìj do Skadovska za Fousáèem. Nabízí celkem slušný prachy za artefakty... ale nìco ti øeknu, smysl pro kšeft má nulovej. Nechce se o svý zisky podìlit s mocnejma lidma... a to se mu brzo hnusnì vymstí. Chápeš? + + + Pokud potøebuješ prachy, stav se za Hejkalem. Kšeftuje se vším, co chlap ve Skadovsku potøebuje - informace, bouchaèky, co tì napadne. Jestli máš nìco horkýho a cennýho, jako je dokument nebo PDA nìjakýho stalkera, dotáhni to Hejkalovi a dostaneš prachy. Taky mùžeš vydìlat slušný prachy, když budeš plnit jeho osobní zakázky. Prostì se ho zeptej, co je potøeba udìlat. + + + Mìl by ses stavit za Gontou. Se svou partou vypráví zajímavej pøíbìh. Nedávno se u Zatonu objevila chiméra, tak Gonta se svejma lidma vyrazil za ní. Rozdìlili se do dvou týmù, aby tu bestii vystopovali a poslali jednoho lovce hledat hnízdo upírù. Když chiméru koneènì vyèmuchali, bylo jich celkem málo, tak pøibrali dalšího stalkera Strakáèe. Nevím, co se tam podìlalo, ale vìtšina lidí tvrdí, že Strakáè prásknul do bot, jakmile chiméru zahlídnul. Gonta se odtamtud sotva dostal, jeden z jeho chlapù je vážnì zranìnej. Ale chiméra tam furt pobíhá, takže Gonta hledá chlapy, kteøí by mu s tím píchli. + + + To je snadný, pokud chceš poøádný prachy, musíš za Sultánem. To je místní boss, takže pokud nejseš ostýchavej, nìco ti dohodí. + + + Pokud seš dobrej stalker, teda jestli umíš hledat artefakty, pokecej s Fousáèem. Je tady celkem uznávanej. Jedinej chlap ve Skadovsku, kterej ti dá za artefakty dobrou cenu. Má kontakty na pašeráky, který je vynesou ven ze Zóny. Kromì toho je to dobrej chlap... vždycky ochotnej poradit, nebo dohodit nìjakou fušku. + + + Ve Skadovsku je pøekupník jménem Hejkal. Není to moc fajn chlap. Furt si stìžuje, jak všechny artefakty konèej u Fousáèe a ne u nìj, ale pokud potøebuješ prachy, stav se za ním, tøeba ti nìco nabídne. Ten hajzlík nekšeftuje jen s municí. Taky ti mùže nìco prozradit, prodat, koupit od tebe, nebo ti zaplatit za vìci, který ho zajímají. Najdeš ho na druhý pøední palubì. Urèitì se nìjak domluvíte. + + + Mùžeš se zeptat Vana, poflakuje se v janovským baru. Nechal se chytnout od banditù, od tý doby se už tøikrát zkoušel vyplatit z dluhù. Je zkušenej, dokáže najít anomálii se zavøenejma oèima... ale furt se dostává do nìjakýho prùseru. Pár lidí mu už radilo, aby se sbalil a zmizel. Zóna je moc velká, banditi ho nenajdou, ale ten vùl je až moc pyšnej a nechce zdrhat. A lidí, který by mu byli ochotný pomoct s banditama, tady moc nenajde. + + + Vykašli se na práci... Banditi jsou v poslední dobì jak urvaný z øetìzu. Uvìznili Míu a chtìj za nìj výkupný. Mía je jeden z prvních stalkerù, co se v Janovì objevili, vybudoval to tady, aby se mìli lidi kde schovávat pøed emisema, a teï, když potøebuje pomoc, na nìj všichni serou. Nemá smysl ptát se Svobody nebo Povinnosti, ty maj spoustu práce se støílením se navzájem... ale ostatní, ti by sakra mìli nìco udìlat! Ale co se nervuju... Míova vlastní parta neví, jak ho osvobodit. Pokud jim chceš pomoct, stav se za Grizzlym, najdeš ho v baru stanice. + + + Nitrák, janovskej technik, potøebuje pracovní materiály. Je dobrej s bouchaèkama i elektronikou, pokud to nevíš. Ale nìkdy mu ruce nestaèí, potøebuje správný materiály a tak se vyptává, kdo by mu je dones. Problém je v tom, že bezpeèný místa už jsou vybraný a zbytek je moc nebezpeènej. Nitrák doufá, že najde nìkoho ochotnýho riskovat, ale urèitì za to dobøe zaplatí. + + + Strejda Jar v janovský stanici prej hledá málo zvìdavýho stalkera, kterej by mu s nìèím pomohl. Nevím, proè se nezeptá svejch kámošù z Povinnosti... ale je to pohodovej staøík, zkus si s ním pokecat, tøeba se nìjak domluvíte. + + + Hrm... Nikoho takovýho neznám. + + + To bych taky rád vìdìl. + + + Jak to mám sakra vìdìt? + + + Nevíš o nìkom, kdo by pro mì mohl mít práci? + + + Na to už ses mì ptal. + + + Nic novýho nevím. + + + Na to už jsem ti odpovídal. + + + Dobrý, dík. + + + Potøeboval bych poradit. + + + Povídej. + + + Tak se vymáèkni. + + + Mluv. + + + Poslouchám. + + + Pomoc! + + + Vem si tuhle lékárnièku. + + + Sorry, nic nemám. + + + Chápu. + + + Kam se chystáš? + + + Mùžu jít s tebou? + + + Jasnì. Víc lidí, víc srandy. + + + Ne, promiò. Jdu svou vlastní cestou. + + + Tak jdeme. + + + Potøebuju se nìkam dostat. Mùžeš mì tam za nìjakou odmìnu dostat? + + + Klidnì. Kam bys chtìl jít? Staèí øíct. + + + Souhlasím. Jdeme. + + + Zmìnil jsem názor. + + + Ne, zrovna teï mám rozdìlanou nìjakou jinou práci. + + + Jen se tak poflakuju. + + + Vlastnì nikam, jen odpoèívám. + + + Vypadám snad, že se nìkam chystám? Neøekl bych... + + + Stopuju mutanty. + + + Sleduju pár sráèù. Svinì zasraný... + + + Snažím se najít pár žoldákù. Jsou to fakt svinì... + + + Povìsil jsem se na partu fanatikù. Bojovníci Monolitu, možná je znáš... + + + Snažím se dostat pár zombií. Je jich tu jako krys... + + + OK. Bude to stát + + + Však to znáš, zmìnil jsem názor. + + + Tolik nemám. + + + Ou, asi nic. + + + Sleduju nìkolik mutantù. Nìkdo jim musí ukázat, kam patøí. + + + Pronásleduju nìkolik místních zloèincù. + + + Vyšel jsem si na lov žoldákù. Musí splatit své dluhy. + + + Chci dostat ty šílence z Monolitu. + + + Chci najít pár lidí, kteøí mi dluží. + + + Právì teï nedìlám nic. + + + Lovím mutanty, snažím se to tady od nich vyèistit. + + + Mám práci, sleduju skupinku banditù. + + + Mým cílem jsou žoldáci. Jdu po jejich stopách. + + + Jdu po bandì z Monolitu. + + + Pronásleduju ty svinì ze Svobody, už teï jsou z nich mrtvoly... + + + Pátrám po artefaktech. + + + Nesbírám tady houby... spíš artefakty. + + + Hledám artefakty. + + + Mám namíøeno k anomálii Hoøák, k té vedle lesíka. + + + Vyrážím k severnímu jezeru... na chvíli zmizím z poloostrova. + + + Míøím za severní jezero – leží tam slušné táboøištì. + + + Míøím do lesù za severním jezerem. + + + Mám namíøeno do lesíka západnì od pily. + + + Mám namíøeno ke kopci západnì od bažiny. Žádná z bahenních špín se tam ke mnì nedostane. + + + Míøím k vysílací stanici. Na západ od ní leží pìkné místeèko. + + + Mám namíøeno do lesù západnì od Dubovic... klidnì pojï se mnou, spoleènost mi nevadí. + + + Do lesíka mezi Železným lesem a dílnami + + + Smìrem k velkému mostu... východnì od nìj prý leží bezpeèné a klidné místo. + + + K parkovišti jižnì od starého èlunu + + + Nic zvláštního, jen procházím. Chystám se utáboøit na kopci východnì od Skadovska. + + + K lesíku mezi Izumrodnojem a èerpací stanicí. + + + Ke køižovatce nedaleko továrny na zpracování odpadu. + + + K anomálii Hoøák. + + + K lovecké stanici. Nachází se tam nìkolik budov, asi jsi je už vidìl. V jedné z nich jsou i pece – zajímalo by mì, co se tam vlastnì dìlo. + + + K lesíku západnì od vypáleného statku + + + K lesíku východnì od anomálie Hoøák + + + K pahorku jižnì od vypáleného statku + + + K malému lesíku jižnì od vypáleného statku + + + Mám namíøeno na západ od Skadovska... tam, kde konèí potrubí. + + + Mám namíøeno na místo asi uprostøed cesty mezi Skadovskem a rýpací stanicí. + + + K bažinám nedaleko starého èlunu + + + K potoku nedaleko anomálie Jizva + + + K èerpací stanici. + + + K rokli Dubovice + + + Chci hledat artefakty v anomálii Paøát. + + + Míøím ke kopci západnì od anomálie Hoøák. + + + K anomálii Železný les + + + Jdu hledat artefakty do anomálie Železný les. + + + Jdu do bažin. Jasnì, v tìch výparech se nebude dýchat nejlíp, ale artefakty za to stojí. + + + Jdu do dílen rozvodny. Nìkdo mi øíkal, že se tam dá dobøe skrýt pøed emisí, takže to vyzkouším. + + + Asi znáš nedalekou pilu a pøesnì tam mám namíøeno. Chci se podívat, jestli tam nenajdu nìco zajímavého. + + + Myslel jsem, že bych si na chvíli odpoèinul tady v letovisku Izumrudnoj. Urèitì je to krásné místo... pro masožravé divoèáky! Ha Ha! Stejnì si myslím, že se tam na chvíli utáboøím. + + + K mostu. Myslím, že na mapì se jmenuje Most Pøeobraženského. + + + K rýpací stanici. Vsadím se, že se tam ještì dá najit pár cenností. + + + Ke starému èlunu. + + + Chci se porozhlédnout na vypáleném statku, možná by se tam mohlo objevit pár artefaktù. + + + K jižní plošinì + + + K díøe u èerpací stanice + + + Mám namíøeno k vysílací stanici Krug – musím najít bezpeèné místo, na kterém bych se mohl skrýt pøed emisí. Bohužel tam ale nejspíš narazím na spoustu pøíšer. + + + Mám namíøeno k vysílací stanici Krug – musím najít bezpeèné místo, na kterém bych se mohl skrýt pøed emisí. Bohužel tam ale nejspíš narazím na spoustu pøíšer. + + + Chci se podívat za artefakty blízko Dubovic. Doufám, že èokli se zdrží v zátoce. + + + K žumpì... však víš, továrnì na zpracování odpadu. Pøed emisí jsi tam v bezpeèí jako nikde jinde. + + + Mám namíøeno k lodnímu molu na severním jezeøe. Jakmile se tam dostanu, uvidím, co dál. + + + Chci se dostat k dokùm s jeøáby. Prý je to pìkné místo k táboøení. + + + Chystám se hledat artefakty v anomálii Hoøák. Doufám, že mùj oblek tuhle krátkou tropickou dovolenou pøežije. + + + K anomálii Jizva + + + Chci si vyzkoušet, jak moje vybavení dokáže vzdorovat ohni a navíc se porozhlédnout po artefaktech. Proto míøím k anomálii Cirkus. + + + K lovecké stanici + + + Chystám se utáboøit u Ševèenka. Je tam klid od emisí a mutanti to tam s útoky mají složitìjší. + + + Chystám se utáboøit u Ševèenka. Je tam klid od emisí a mutanti to tam s útoky mají složitìjší. + + + Chci se dostat k dokùm s jeøáby. Pìkné místo na táboøení. + + + Chci se zbavit své koøisti a dát si pár piv. Proto míøím do Skadovsku. + + + Míøím k vojenskému kontrolnímu bodu vedle továrny Jupiter. + + + Ke skladišti kontejnérù + + + Mám namíøeno na nenápadné místo mezi skladištìm kontejnérù a jižním tunelem. + + + Do stanice Janov. Koneènì si odpoèinu. + + + K tunelu severnì od vesnice Kopaèi. + + + Míøím na opravdu strašné místo, do vesnice Kopaèi. Nebo spíš k tomu, co z ní zbylo. Pro jistotu jsem pøibral nìkolik antiradiaèních pøípravkù a munice navíc, asi je budu potøebovat. + + + K cementárnì. Mìl bych tam mít dobrý rozhled a nikdo se ke mnì nemùže pøiplížit. + + + K cementárnì. Porozhlédnu se v suterénu. + + + K rozvodnì nedaleko Janova + + + Míøím na jedno místo nedaleko jižního železnièního tunelu. + + + Míøím k chladicímu zaøízení nedaleko továrny Jupiter. + + + Míøím ke komplexu Volkhov, ulovím si pár zombie. + + + Do bunkru, toho v komplexu Volkhov. + + + K anomálnímu lesíku nedaleko lomu. Možná tam najdu pár artefaktù. + + + Jdu k lomu, zùstalo tam pár dodávek stavebních dìlníkù. + + + Mezi lomem a stanicí Janov je jedno takové místeèko, na kterém bych se na chvilku ukryl. + + + Míøím k východnímu tunelu, procházejícímu pod továrnou Jupiter. + + + K anomálii Asfalt. Aspoò zjistím, jestli je mùj oblek žáruvzdorný. + + + Jdu hledat artefakty k anomálii Blata. Sehnal jsem si nìjaké protijedy, bohužel mì asi nemine setkání s pøíšerami. + + + K ventilaènímu zaøízení mezi továrnou a skladištìm kontejnerù. Proè? To kdybych vìdìl... + + + Míøím do dílen v Jupiteru. Možná tam zjistím, proè má to místo tak špatnou povìst. + + + Jdu na samé dno lomu. Stalkeøi øíkají, že se tam dá najít mnoho artefaktù. + + + Na parkovištì, na kterém stojí spousta starých aut. Snad v elektrických anomáliích najdu nìjaké artefakty. + + + Mezi komplexem Volkhov a skladištìm kontejnerù je jedno pìkné místeèko a pøesnì tam mám namíøeno. + + + Do bunkru vìdcù + + + K chladicí vìži severozápadnì od stanice Janov. + + + Smìrem k továrnì Jupiter, ale nemám v plánu jít dovnitø. Porozhlédnu se po administrativních budovách a pak se uvidí. + + + Jdu k anomálii Popelištì, nachází se za vesnicí Kopaèi. + + + Míøím do dílen Jupiteru. Údajnì v té oblasti spadl vrtulník, tak bych ho rád prozkoumal. + + + Míøím k polorozpadlému vlaku stojícímu mezi komplexem Volkhov a parkovištìm. + + + Míøím k jižnímu tunelu, abych byl v bezpeèí, kdyby pøišla emise. + + + Míøím k jednomu místu mezi Janovem a vesnicí Kopaèi. + + + Míøím k jednomu místu nedaleko kanálu, jižnì od cementárny. + + + Míøím na jedno místo blízko kanálu, severnì od továrny Jupiter. + + + Chystám se prohlédnout si lom. + + + Chystám se prohlédnout si lom. + + + Chystám se prohlédnout si oblast severnì od Janova. + + + Smìrem ke komplexu Volkhov. Mezi komplexem a vesnicí Kopaèi je jedno pìkné místo pro rozložení tábora. + + + Ale, jen tak procházím... Jdu smìrem ke skladišti kontejnerù. + + + Snažím se zmapovat oblast. Zrovna se chystám zjistit, co se nachází jižnì od vojenského kontrolního stanovištì. + + + K heliportu, tomu mezi továrnou a skladištìm kontejnerù. + + + Jdu na jedno místo u železnice, jižnì od stanice Janov. + + + Na místo severnì od stanice Janov + + + Do anomálního lesíku + + + Na jedno místo jižnì od AA komplexu + + + K chladicímu bazénu hned u betonových lázní + + + Chystám se prozkoumat okolí továrny. + + + Chystám se prozkoumat okolí továrny. + + + Na dvùr za prádelnou + + + Do prádelny, nejbezpeènìjšího místa v okolí. + + + Do nemocnice. Doufám, že po cestì nenarazím na ty šílence z Monolitu... + + + Do knihkupectví... Slyšel jsem, že se v nìm dá dobøe schovat pøed emisí. + + + Chci se podívat na místní atrakci – symbol Pøátelství národù. Nachází se nedaleko knihkupectví. + + + Do starého obchodu s potravinami. Sice už tam neprodávají èerstvý chleba, ale jako úkryt pøed emisí poslouží dobøe. + + + Do Beryozky + + + Ke staré mateøské školce + + + Na námìstí pøed kinem, poblíž Prométeova monumentu + + + Míøím ke školní budovì. Slyšel jsem, že se hemží monstry, ale pomùže v pøípadì, že se objeví emise. + + + Míøím ke starému servisu. V prvním patøe by mìla být anomálie a snad i nìjaké artefakty. + + + Rozhlížím se tady. Zrovna mám namíøeno do starého potravináøství. + + + Rozhlížím se tady. Zrovna mám namíøeno do starého potravináøství. + + + Prozkoumávám oblast. Zrovna se chystám projít tu budovu za ubytovnou. + + + Chci se porozhlédnout po centru veøejných služeb. Myslím, že se tomu øíkalo Jubilejnyj. + + + Hledám tady nìjaké anomálie. Slyšel jsem, že na dvoøe, na západ od školky, je ohnivá anomálie. + + + Ále, jen procházím mìstem. Zrovna mám namíøeno k ubytovnì. + + + Ále, jen procházím mìstem. Zrovna mám namíøeno k ubytovnì. + + + Ále, jen procházím mìstem. Zrovna mám namíøeno k ubytovnì. + + + Jenom se tak potuluju, zrovna mám namíøeno k pøístavu u øeky. Doufám, že nenarazím na ty fanatiky z Monolitu. + + + Hledám nìjaké místo v Pripjati s fùrou artefaktù, kde nenarazím na monstra a bojovníky Monolitu... Hehe... Teï vážnì, jdu se podívat na jednu anomálii jižnì od pøístavu, o které jsem slyšel. + + + Smìrem ke kinu Prométeus. + + + Na námìstí pøed kinem, poblíž Prométeova monumentu. + + + Chci se jen na chvíli ukrýt a popadnout dech. Severnì od školky je jedno klidné místeèko, které by k tomu mìlo být ideální. + + + Jižnì od ubytovny. + + + Míøím na jedno místo mezi školkou a ubytovnou. + + + Existuje takové místo - lidi mu øíkají Jizva - na kterém zemì vypadá, jako by do ní nìkdo zasekl sekeru. Lidé tam našli artefakty, ale jakmile tam vstoupíš, zaènou se dít divné vìci. Ta vìc ti vleze hluboko do mozku a skoro zapomínáš, že máš dýchat, natož odtamtud rychle vypadnout. + + + Víš, kde je èerpací stanice? Je napájena gravitaèními anomáliemi, pro zkušeného stalkera to ale nebude problém. Staèí, když budeš házet šrouby jako obvykle. Narazíš tam i na radiaci, venku i uvnitø – jako bys procházel kolem obrovské kupy obohaceného uranu. + + + Máme tady starou rozvodnu, které se nìkdy øíká Železný les. Pochopíš, až to místo uvidíš. Místní øíkají, že po pøíchodu emise tam našli hromadu artefaktù. Není to zas tak nebezpeèné, jen trochu radiace a hlavnì elektrické anomálie... Pohybuje se tam i nìkolik pøízrakù, a pokud se pøed nimi okamžitì neukryješ, je po tobì. + + + Práce? Abych byl upøímný, o žádné nevím. Ale pokud chceš vypomoci Svobodì, zajdi za naším šéfem do Janova. Jdi do východního køídla a ptej se po Lokim – to je on. Pamatuj, že pokud vìøíš v pokrok lidstva, ve vìtší uvìdomìní a význam darù Zóny, rozhodnì nebudeš zklamán. + + + Netuším. Ale pokud najdeš nìco, co nám pomùže v našem boji proti Zónì a tìm, kteøí se domnívají, že je to spíše dar než prokletí, zajdi za velitelem expedièních jednotek Povinnosti, jmenuje se podplukovník Šulga. Má na starost stanici Janov a najdeš ho v severním køídle. Jedno vím jistì – žádného civilistu, který pomùže Povinnosti, nemine slušná odmìna. + + + Všichni mluví o nìjakých divných vìcech, které se dìjí ve staré chladicí vìži. Pokud si naladíš bìžnou frekvenci, mùžeš zaslechnout útržky volání o pomoc, zní to jako by se nìjaký mrzák snažil dostat z anomálie. Pokud se zeptáš na souøadnice, nikdo se neozve. Nejdivnìjší na tom všem je ten zvuk. To rušení snad ani nejde popsat... + + + K místu na pùl cesty mezi Skadovskem a Ševèenkem. + + + Do Jupiteru. Nejspíš ale nepùjdu moc hluboko dovnitø. + + diff --git a/gamedata/configs/text/cze/st_dialogs.xml b/gamedata/configs/text/cze/st_dialogs.xml new file mode 100644 index 0000000..7b0fed8 --- /dev/null +++ b/gamedata/configs/text/cze/st_dialogs.xml @@ -0,0 +1,978 @@ + + + + Hele, mìl bych dotaz... + + + Tak to vybal. + + + Co si myslíš o Èiperovi? + + + O Èiperovi? Jednoho krásnýho dne si toho kokota odchytíme i se zbožím, odvedeme si ho na òáký tichý místo a pìknì mu zvalchujeme záda! + + + Nevíš nìco o Oáze? + + + Jó, to je povedená historka. V zásadì jde o to, že borci ze Smeáku si vymysleli pøíbìh o Oáze a dali si sakra záležet, aby byl uvìøitelnej a aby obsahoval i popis cesty. Pak se posadili na zadky a hezky èekali. No a co se nestalo? Napochodovalo jim tam tolik dùvìøivejch mamlasù, že když je všechny voškubali, byli v balíku a odešli ze Zóny. Kdo by se jim divil? Jsou na celej život zajištìní. Zùstal tu jenom jeden z nich, jakejsi Jogín. + + + Že když tam pøijdeš, doèista se uzdravíš ze všeho. Zní to celkem slibnì - kdybych už nemìl kocoviny ani hemoroidy, to bych si nechal líbit! Najdi Oázu, zaøiï si tam láznì a jsi vysmátej. + + + Proè bych o ní mìl nìco vìdìt? Jsou to jenom žvásty pro debily. Pravej chlap takový píèovinì nevìøí. Si to pøedstav... sedíš si takhle v hospodì s pìknì vychlazeným kouskem, kolem tebe se žvanìj stalkeøi a dohadujou se, kde ta Oáza vlastnì je. Každej z nich pøísahá na vlastní babièku, že na tom místì byl... ale kde pøesnì to má bejt, to se z nìjakýho dùvodu neshodnou. + + + Neznáš nìjakého Strakáèe? + + + Ale jo... staèil mi jeden pohled, abych poznal, že je to totální vùl. I mezi stalkerama se o nìm povídá, že je totální vùl. Ale kde ho najít, to fakt nevím. Jestli tì tak zajímá, budeš si ho muset najít sám. + + + Ne... jsi první, od koho to jméno slyším. + + + Nevíš, kdo mi mohl ukrást vìci z osobní skøíòky? + + + Leda krysa. Mìl by ses optat papalášù na Janovì, ty jsou v lovení krys fakt dobrý. + + + Kdo by dokázal dešifrovat nìjaká data? + + + No, prej že Nitrák z Janova je dobrej. Když ještì nepracoval pro Povinnost, naši chlapi si u nìj párkrát nechali hacknout PDA cizích stalkerù... Jó, starý zlatý èasy. + + + Mì se na tyhle vìdecký sraèièky neptej, šéfiku. Radši si sežeò hackera. Pár let jsem šel sedìl a jednoho jsem potkal v lochu, ale kromì nìj žádnýho neznám. Když mì pustili ven, jemu poøád ještì zbejval bùr... + + + Mám PDA toho obchodníka z Povinnosti. Kdo by o nìj mohl mít zájem? + + + Na Skadovsku bydlí obchodník, øíkají mu Hejkal. Platí fakt slušnì a chlapi mu èas od èasu støelej i nìjaký to PDA. Nemá žádný vlezlý otázky, to se taky cení. + + + Prakticky kdokoliv, kámo. Vždy si to vem: lidi z jeho vlastní frakce by toho sráèe pohøbili zaživa, ostatní frakce by spustily solidní rotyku, akorát Hejkal na Zatonu dokáže zaøídit, aby to PDA zmizelo. S tim rozdílem, že jenom Hejkal bude vìdìt, kde se to PDA zase objeví... volba je na tobì. + + + Kde se tu dá sehnat náøadí? + + + Jestli potøebuješ chirurgický náèiní, prolezl bych nemocnice a záchranky. Jestli potøebuješ stavaøský náøadí, mrkni se do lomu u Jupitera. No a jestli potøebuješ kleštì, kladiva a tak, prohledej nìjakou dílnu. + + + Proè bych to jako mìl vìdìt? Dokážu ze stalkerù vytøískat prachy i bez náøadí, sleduj... Klídek, jenom si dìlám prdel. + + + Kdo umí odblokovat pamìový modul? + + + Dobrá otázka! Já jsem totiž místní specialista, že jo? Ha! Jseš blbej, vole? Poptej se u nìjakejch vìdcù nebo technikù... pøece vážnì nevìøíš, že bych se v takových vìcech vyznal. + + + Øeknu ti to takhle: naposledy, co jsem odemykal pamìovej modul, byl jsem ještì na základce a ten pamìovej modul byla tøíapùlpalcová disketa. S timhle bìž votravovat jiný experty. + + + Kdo by se dokázal vloupat do ocelového kontejneru? + + + Znáš Kardana ze Skadovsku? No tak ten se onehdá ztøískal, popadl páèidlo a zaèal po celý lodi honit jednoho magora. Jak ale znám Kardana, dokázal by to páèidlo použít i k užiteènìjším úèelùm. Tøeba by i vylomil sejf. + + + Se správným vybaveníèkem bych to zmáknul tøeba i já, ale kdo má sebou do Zóny tahat náøadí? Zajdi za technikama, vole, ty jsou v takových vìcech dobrý. + + + Sháním jistého Pahejla. Nevíš, kde bych ho mohl najít? + + + Co já vim. Optej se na Skadovsku u Sultána. Takovej boss bude vìdìt, kde má svý potlouky. + + + Jo, o tomhle hovadu už jsem slyšel. Normálnì se vometá kolem Zatonu, takže tady ho nehledej. + + + Nevíš nic o tìch zøícených vrtulnících? + + + Koho by mohly zajímat informace o zakladateli Povinnosti? + + + A koho by takový echo nezajímalo? Máš vznìtlivý informace, kamaráde, nejrozumnìjší bude obrátit se na Hejkala ze Skadovsku. Tak si vydìláš pìkný prachy, ale zároveò si nenadìláš nepøátele. + + + Ne. Vžij se do mý kùže: nalevo mám Povinnost, napravo Svobodu, za prdelí stalkery. A ty èekáš, že budu sledovat oblohu? + + + Hoši øíkali, že nìjakej vrtulník se zamotal do drátù v Železným lese. Jenomže tam narazíš i na kopu jiných vìcí... døív nebo pozdìjc vlezeš do anomálie nebo ti poltergeist rozmázne lebku. + + + Jo, pár chlapù vidìlo, jak se jeden vrtulník zøítil na plošinu. Vtip je ale v tom, že tam nevede žádná cesta. Ten vrtulník prej letìl divnì šejdrem, skoro jako kdyby si pilot nìco šlehnul. + + + Slyšel jsem, že jeden vrtulník si chtìl hrát na ponorku a švihnul to sebou do bažin. Jak se dalo èekat, daleko nedoplul. A voda z bažin taky není zrovna dobrá na zdraví - jedy, chemikálie a další sraèky. + + + Nepohybuje se tu armáda? + + + Kdo by mohl mít zájem o mapu míst mezi Zatonem a Jupiterem? + + + Navigátor, si myslim... je to tady v okolí hlavní prùvodce. Bylo by fajn, kdyby mìl i nìjaký mapy a neøídil se poøád jenom hvìzdama jako teï. + + + Chlapi prej vidìli družstvo vojákù, jak si to šine z jižní plošiny pøímo smìrem k žoldáckýmu táboru. Bylo jim jasno, že tam se zaènou vìci srát, a tak radši vypadli pryè. + + + Nìkdo mi vyprávìl, jak se banda vojenských dutohlavù snažila vytahat svùj vercajk z vrtulníku, co se jim zaboøil do bažin. Si to pøedstav: pìt hošanù v uniformách poskakuje v moèále a snaží se neušpinit... ti museli nadával tak, že by se i námoøník stydìl. + + + Jeden borec mi povídal, jak sledoval jistýho stalkera, aby ho potom mohl oškubat. Najednou zaslechl výstøely a tak. Ukázalo se, že armáda tam bojuje se žoldákama. Borec zalehl a pøeèkal pøestøelku, jenomže ten stalker mu mezitim vzal roha. Smùla, co? + + + No, jeden kámoš zažil docela srandovní scénu. Pøedstav si tu loï, co má na palubì mlejn, a pøed ní si to rázuje Noe, celej rozpálenej, na plnou hubu nadává. Deset vojclù couvá a snaží se uklidit co nejdál od nìj. Kámoš se tenkrát pìknì zasmál, pak je zas nechal svýmu osudu a odešel. + + + Ne, tady to bejvá dost ošemetný. Všude chlapi s nabitýma puškama a další srandy... nemám èas zkoumat, kdo z nich patøí k armádì nebo kdo pro zmìnu k Povinnosti. + + + Víš, jak se dá dostat do Pripjati? + + + Koho bych si mohl najmout na ochranu vìdcù? + + + He he, já a chlapi ti rádi posloužíme! Zaøídíme tìm vìdcùm takovou ochranu, jakou ještì nezažili! Stalkeøi a mutanti budou posraný až za ušima, všichni se vìdcùm budou vyhejbat obloukem! Zacáluješ každej tejden na ruku a jsme dohodnutí. Nezapomeò na vánoèní pøíplatek! + + + Pìšky, kámo. Hezky se projdi do Jupiteru a zeptej se tam, protože ze Zatonu do Pripjati žádná pøímá cesta nevede. To je vìdecky dokázáno. + + + Hele, vole, vypadám snad jako nìjakej zasranej prùvodce? Mám na èele vytetováno „Zde se mùžete ptát na kokotiny,“ nebo co? Bìž se optat Navigátor, ten je za takový odpovìdi placenej. + + + Ne... beztak bych tam nemìl co dìlat. Nejsou tam stalkeøi, co by se dali oškubat! + + + Mùžeš mi doporuèit nìkoho, kdo tady nemá pøíliš závazkù a chtìl by vyrazit do Pripjati? + + + Pripja neni místo pro lidi, jako jsme my. Vždy si to vem, samý mutanti a anomálie... teda stejnì jako ve zbytku Zóny, s tím rozdílem, že tam není koho okrást. Až se do Pripjati nasáèkujou stalkeøi, dej nám echo a my tam dorazíme, abysme zachovali pøirozenou rovnováhu. + + + Nemám tušení, kámo. Sorry. + + + Našel jsem divnou pušku. Nevíš, kdo by o ní mohl nìco vìdìt? + + + Bejt tebou, zeptám se technikù. Je to jejich práce, vyznat se v takových vìcech, ne? + + + Co já vím. Na Skadovsku mají nìjakýho Cardana, prej je to technickej génius a kdesi cosi. Zeptej se tøeba jeho... i když podle mì je to jen starej ožrala. + + + Kde by se dal najmout nìkdo, kdo by vìdcùm pomohl s mìøením? + + + To je snadný - svìø to našim chlapùm. Teda ne že by vystudovali nìjakou školu ani nic takovýho, ale dej jim libovolnýho chlapa a oni mu vezmou míry odshora až dolù. Až si ho namìøej, už staèí jenom vykopat pìknej hrobeèek, a to taky zvládneme! + + + Našel jsem zvláštní artefakt. Doporuèil bys mi kupce? + + + Tak zvláštní artefakt, povídáš? To se na to podívejme... Podej mi ho, a si ho mùžu prohlídnout... Ha, klídek! Dìlám si prdel. Ale bejt tebou, tak to moc neukazuju. Ne každej má takovej smysl pro humor jak já. + + + Ty si vìøíš, když tady tak máváš artefaktem. Respekt. Takže ti poradím: chlap, kterýho potøebuješ, se jmenuje Fousáè a sídlí na Skadovsku. Nikdo neví, jak pašuje artefakty ze Zóny, ale koupí od tebe prakticky cokoliv. + + + Nedaleko odsud jsem našel hnízdo upírù. Co budeme dìlat? + + + Ech, máme snad na výbìr? Vypadneme odsud, to udìláme! + + + Zapomeò, že jsem nìco øekl. + + + Mìl bych jednu otázeèku... + + + Ptej se. + + + Co si myslíš o Èiperovi? + + + O Èiperovi? Toho neznám. Možná je v jiným družstvu, ne? + + + Neslyšel jsi nìco o Oáze? + + + Stalkerovská pohádka. To jsou celý stalkeøi: vymýšlejí si píèoviny, potom jim sami uvìøej a zaènou je hledat! Bejt tebou, prostì to pøehlížím. Tyhlety báchorky jsou nakažlivý: uvìøíš jedný a zanedlouho budeš vìøit, že Plniè pøání doopravdy existoval. + + + Myslíš to místo, kde se všechny rány zázraènì hojí a kde se ti magicky obnoví veškerá energie? Mám pro tebe novinku, kamaráde: nic takovýho neexistuje. Stalkeøi si to vymysleli, aby Zóna nepùsobila tak nebezpeènì. Krutá realita se má tak, že v Zónì žádný bezpeèný místo nenajdeš. Dávej si pozor a za každých okolností zùstaò pøi zemi - snílci tady v Zónì dlouho nepøežijou. + + + Jasnì. Nacházejí se tam hromady artefaktù, který se vyvažujou zlatem, a navíc ti lítají prakticky samy do huby, zatímco ty se válíš v bahnì a necháš se masírovat... to byl vtip, mimochodem. Já na Oázu nevìøím, i když by to bylo pìkný místo. Dala by se tam postavit nemocnice, kde by nemuseli bejt žádný doktoøi. Lidi by prostì pøišli a automaticky se uzdravili. Ty vole, to je úlet. + + + Nepotkal jsi stalkera jménem Strakáè? + + + Mám co dìlat, abych si zapamatoval jména lidí z Povinnosti, a ty se mì ptáš ještì na stalkery? Mají základnu na Skadovsku, zeptej se tam. + + + Nepotkal. + + + Nevíš, kdo mi mohl ukrást vìci z osobní skøíòky? + + + Ha, vidíš? Na základnì Povinnosti by se nic takovýho stát nemohlo, ale tady se to hemží hovadama ze Svobody. Pátrej mezi nima. + + + Kdo by mi mohl pomoct s dešifrováním dat? + + + Na janovským nádraží mají technika, jmenuje se Nitrák. S elektronikou je fakt dobrej. Kdysi jsem zapomnìl heslo od svýho PDA a on ho hacknul bìhem pìti vteøin! + + + Zajdi si do Janova. Tam se poptej po Nitrákovi, ten je na tohle machr. + + + Mám PDA toho obchodníka z Povinnosti. Kdo by o nìj mohl mít zájem? + + + Obchodníka z Povinnosti? To není možný! No ale jestli pøece jenom máš nìjaký info, mìl bys ho pøedat podplukovníku Šulgovi. Ten už si s tím poradí. + + + Kde se tu dá sehnat náøadí? + + + Kousek odsud je celá továrna. Teï už samozøejmì bude dost vybrakovaná, ale stejnì by ses mohl podívat do jejích skladù. + + + Bejt tebou, zaènu u opuštìných dílen. Nìco by se taky mohlo najít v obchodech. + + + Tady nemáme nic než anomálie a mutanty. Cha! Do anomálií bych se radši nedíval a bjureøi s kontrolorama ti taky žádný náøadí neprodají! + + + Teï jsi mnì pøipomnìl, že tady kousek pod mostem stojí vlak. Takový vlaky jsem vídal už døív, cestujou v nich technický specialisti. Tøeba najdeš nìjaký náøadí tam. + + + Kdo by zvládl odblokovat pamìový modul? + + + Nitrák - to je jedinej chlap na janovským nádraží, kterej se v takových vìcech vyzná. + + + To se budeš muset optat technika. A jedinej ucházející technik široko daleko je Nitrák z Janova. + + + Kdo by se mohl vloupat do ocelového kontejneru? + + + Prej že stalkeøi mají nìjakýho technika. Chlastá jako Dán, ale ve svý práci se vyzná. Zkus to u nìj. + + + Cha, to je jako kdybys to na mì zkusil s trezorem. S ocelovou srandou si neporadí urèitì ani Nitrák... leda by mìla elektronickej zámek, to by pak byla jiná. + + + Hledám jistého Pahejla, patøí ke stalkerùm. Nevíš, kde by byl k nalezení? + + + Proè se nezeptáš stalkerù? Všechny svoje lidi znají. O Hejlovi, nebo jak se to jmenuje, jsem nikdy neslyšel. + + + Víš nìco o tìch ztroskotaných vrtulnících? + + + Kdo by mìl zájem o informace týkající se zakladatele Povinnosti? + + + Urèitì náš velitel. Nahlas všechno, co víš, Šulgovi a vysloužíš si vdìk celý Povinnosti. + + + Jo, naši prùzkumníci zahlídli vojenskou helikoptéru, jak se snaží pøistát na ploše za Jupiterem. Prej se jim snažili signalizovat, aby zmìnili kurs, ale pilot mìl asi plný ruce práce s nìèim jiným. Doufám, že se ti bagouni v pohodì dostali pøes to minový pole. + + + Tady nic nevíme. Máme celkem omezený zprávy... zkus se zeptat našich lidí u Janova. + + + Jedna naše hlídka nahlásila, že jakási vojenská helikoptéra se pokoušela nouzovì pøistát na ploše u Jupiteru. Bohužel se nepovedlo a vrtulník prolítl støechou pøímo do tovární haly. Nemohl to nikdo pøežít - a naše hlídka po nehodì nezachytila žádný nouzový volání. + + + Nevidìli jste tu nìjaké vojáky? + + + Kdo by mohl mít zájem o mapu míst mezi Zatonem a Jupiterem? + + + Nìkdo, komu by se hodila. A teï narážím na Navigátora - dìlá tu prùvodce na cestì mezi Janovem a Skadovskem. Ty mapy by mu urèitì pøišly vhod. + + + Vojáky? Tady jsem žádný nevidìl. Je ale pravda, že v tìhle místech moc èasu netrávíme. + + + Nedávno jsme vidìli mrtvolu vojáka v minovým poli. Nejspíš patøil k tìm týpkùm, co se zøítili v tom vrtulníku. Do mašiny se vejde až osm lidí plus posádka a ti se logicky museli nìjak dostat pryè. Nikdo si ale nevšiml, kam šli. + + + Jeden cápek v uniformì vyøizoval cosi s vìdci v bunkru. Pøišel teprv nedávno. Víc nevím. + + + Nedávno jsme vidìli nìjakýho vojáka, jak vchází do budovy poblíž protiletadlového komplexu Volchov. Je ale celkem možný, že to byl jenom zombík v uniformì. + + + Stalkeøi se s jednou vojenskou jednotkou potkali u Jupiteru. Podle popisu to vypadalo na výsadkáøe. Doprovázel je neznámej stalker a mìli namíøeno k Pripjati. Popis zní celkem spolehlivì, ale z vlastních zkušeností vím, že podobným historkám se nedá moc vìøit. + + + Víš, kudy se dá dojít do Pripjati? + + + Koho si mùžu najmout na ochranu vìdcù? + + + Nikdo neposkytne lepší ochranu než Povinnost. Bìž se do Janova domluvit s podplukovníkem Šulgou. Urèitì to nìjak vymyslíte. + + + Kdepak. Sice pro nì pracujou lidi ze Svobody, ale mi se do toho nehodláme plést. Celej den poslouchat, jak ti idioti melou jednu hovadinu za druhou... to už je lepší umøít. + + + Povinnost nemá zatím žádný dùvod, proè hledat cestu do Pripjati. Ale stejnì hromadíme informace. Máme tøeba nepotvrzený zprávy, že zpod Jupitera vedou pøímo do Pripjati podzemní chodby. Jenomže ovìøit tyhle informace, to by vyžadovalo dùkladnì prozkoumat každou píï továrny. + + + Ne. Jestli sháníš podobný informace, budeš si muset promluvit s civilním prùvodcem. Naši prùzkumníci mají své práce až po hlavu. + + + Naši prùzkumníci prùbìžnì hledají bezpeèné cesty do Pripjati, ale zatím bezvýslednì. + + + Mohl bys mi doporuèit nìkoho, koho tady nic nedrží a kdo by chtìl vyrazit do Pripjati? + + + Povinnost má v týhle oblasti omezený možnosti. Zeptej se našich na Janovì. + + + Šušká se, že u vìdcù v bunkru bydlí i nìjakej typan od armády. Zkejsnul tam a nemá se jak dostat pryè. Vìdci totiž slouží termíny na dvanáct až osmnáct mìsícù, ti s nim nepùjdou, a on se nezvedne a nepùjde pìšky sám až na okraj Zóny. Zeptej se ho, tøeba by šel s tebou . + + + Zkus se poptat mezi lidma, co toužej po dobrodružství. Napøíklad na janovským nádraží žije jeden stalker, jakejsi Váòo. Je mu jedno, do jakýho prùseru se zase dostane, a tøeba by mohl bejt i užiteènej - je to frajer, dokáže najít cestu skrz anomálii klidnì i se zavøenýma oèima. + + + Uspoøádej náborovou kampaò v ústavu pro duševnì choré... A nebo bych pro tebe mìl lepší alternativu - bojovníci Monolitu. Což mi pøipomíná, nedávno jsme jedno jejich družstvo zahlídli poblíž protiletecký základny. Ti nejspíš budou znát cestu do Pripjati... Hele, vole, doufám, že mì nebereš vážnì. + + + Poptej se po dobrovolnících u nás v Povinnosti. Co tøeba Tulák? Tomu ještì nepøidìlili misi, tak by ho podplukovník možná mohl poslat s tebou. + + + Oba dva víme, že nejlepší bojovníky najdeš u Povinnosti. Bohužel, v tuhle chvíli máme jiný starosti. + + + Našel jsem zvláštní pušku. Neznáš nìkoho, kdo by o ní mohl cokoliv vìdìt? + + + No maucta! To je poøádný dìlo! To sis vyrábìl sám, nebo jsi to vážnì našel? Nic podobnýho jsem jaktìživ nevidìl... no, zeptej se u technikù. + + + Koho bych si mohl najmout, aby provádìl mìøení pro vìdce? + + + To je blbá otázka - Povinnost, jak jinak. Máme spoustu zkušených chlapù a s vìdcema jsme spolupracovali už døív. Zajdi za podplukovníkem Šulgou. Urèitì pro tu práci splaší nìjaký volný družstvo. + + + Kdo by se tam chtìl motat, když bunkr stráží Svoboda? Tihle zasraný pacifisti jsou vìtšinu èasu tak zhulený, že je šance tak fifty, fifty, jestli odbouchnou nepøítele nebo nìkoho z vlastních. + + + Našel jsem podivný artefakt. Doporuèíš mi kupce? + + + Artefakty jsou všechny podivný. A nedoporuèuju ti tahat tenhle kousek jen tak s sebou. Pøedej ho znalcùm a pus ho z hlavy. + + + Mìl bys ho ukázat stalkerùm – ti se v tìhle hovadinkách vyznaj. A nebo ještì líp, ukaž ho tomu èlovìku, komu stalkeøi sami prodávají artefakty. + + + Kousek odsud jsem našel hnízdo upírù. Co budeme dìlat? + + + Družstva Povinnosti se momentálnì nevìnují úklidovým akcím v týhle oblasti. Hnízda budou muset poèkat. + + + Jako kdybych nic neøekl. + + + Poslyš, mìl bych dotaz... + + + Vyval to. + + + Co si myslíš o Èiperovi? + + + O tom jsem toho moc neslyšel. Radši se poptej u stalkerù... k tìm patøí, nebo ne? + + + Neslyšel jsi nic o Oáze? + + + Ledacos... musim uznat, že historka je to pìkná. Palác v pustinách, ostrov v mlze, zámek v oblacích... Šambala, Eden... Oáza. Každej svobodnej èlovìk má nìco, o èem s ní. Tak už to hold chodí. + + + No, jeden stalker mi kdysi vyprávìl zajímavej pøíbìh. To byl myslím první èlovìk, od kterýho jsem slyšel o Oáze. Øíkal mi, že podle legendy se ti tam uzdraví všechny zranìní, uklidníš se a uvolníš se, skoro jako kdybys už nebyl v Zónì. Od tý doby jsem ho nevidìl... teprv po nìkolika dnech jsem si vzpomnìl, že kdysi kulhal, ale když ode mì odcházel, tak šel zpøíma. Jo, a taky vypadal o pìknou øádku let mladší. + + + Jo, stalkeøi mi od ní dokonce dali souøadnice... desatery rùzný souøadnice. Když si je zakreslím na mapu, vznikne okruh sahající od Vypalovaèe až k elektrárnì, zhruba uprostøed pak je Janov. Je dost možný, že v Oáze stojíme pøímo tady a teï, tak si to užij! + + + Neznáš stalkera jménem Strakáè? + + + Kdepak. Já moc svobodných stalkerù neznám. + + + Strakáè? Ne, ale má suprový jméno. + + + Nevíš, kdo mi mohl ukrást vìci z osobní skøíòky? + + + Ne, takový lidi u nás nemáme. Jsou tu týpci, co si z tvýho chleba ukrojej krajíc, když se nedíváš, nebo ti upijou trochu koøalky, ale vyložený zlodìje fakt ne... + + + Kdo mi mùže pomoct s dešifrováním dat? + + + Øíká se, že Nitrák z Janova je machr pøes rùzný kombinace a algoritmy. Nejsem si ale jistej, nikdy jsem s ním nemluvil. Pracuje pro Povinnost, a tak si na nás svobodný moc èasu neudìlá. + + + Nejsem expert pøes místní experty... Až pøíštì pùjdeš do Janova, zeptej se tam našich. Urèitì ti poradìj. + + + Mám PDA toho obchodníka z Povinnosti. Kdo by o nìj mohl mít zájem? + + + To zní lákavì! Ukázal bych ho Lokimu, to je náš šéf. Bydlí v Janovì. Však on už zaøídí, aby se svobodný lidi dozvìdìli, jakou pakáž do svých øad pøijímá Povinnost. + + + Kde se tady dá sehnat náøadí? + + + V továrnì, vole, kde jinde? Není tam zrovna moc živo, ale až uvidíš sklady, spraví se ti nálada. Je v nich trochu bezpeènìjc a dá se tam najít solidní vercajck. + + + To je dobrá otázka, èéèe. Zkusíme se nad ní zamyslet... Kde bys shánìl náøadí, kdybys nebyl v Zónì? No jestli nejsi úplnì vymatlanej, zašel bys ho koupit do obchodu. Jestli si, vlezeš do nìjaký dílny. Nemám pravdu? V Zónì je to úplnì stejný - musíš se jít nìkam podívat. Jednodušší už to bejt nemùže, stalkere! + + + Náøadí? Ty vole, to je nìjaký krycí slovo? Hele, tady nemáme žádný chlupatý, mùžeš mluvit otevøenì. Poèkat... tys to myslel vážnì? Tak v tom pøípadì fakt nevim. + + + Slyšel jsem, že jeden z našich chlapù kdysi hledal náøadí a vlezl do toho vagónu pod mostem. Našel tam starou Teslu... jo a taky povídal, že to tam není žádná prdel... Proè ti tohle vlastnì povídám? Jo, protože tam zahlídl nìjaký náøadí na podlaze, ale nakonec ho tam nechal. Bylo to moc nebezpeèný. + + + Kdo umí odblokovat pamìový modul? + + + To by mìl zvládnout Novikov, ten z vìdeckýho bunkru. Je rychlej, dobrej a zdvoøilej. Pak ještì v Janovì sídlí Nitrák, ten nohsled Povinnosti. Je levnej a nešikovnej, i když tohle by mohl zvládnout. + + + Asi nìjakej zkušenej technik. Ten místní dìlá spíš do hejblátek a mechanismù, takže jestli tomu pamìovýmu modulu nepotøebuješ vymìnit hlaveò, zkus to radši v Jupiteru. + + + Kdo by se dokázal vloupat do ocelového kontejneru? + + + Kdosi mi kdysi doporuèoval Kardana, toho ze Skadovsku. Prej že ten se ve svý práci vyzná, i když je vìtšinu èasu totálnì našrot. Tøeba ti s tou vloupávaèkou pomùže. + + + Myslíš nìkoho, kdo se vylamováním ocelových dveøí živí? V tom pøípadì ti místní technik Nitrák nepomùže. Ten se vlamuje spíš do cizí elektroniky. + + + Hledám stalkera jménem Pahejl. Nevíš, kde bych ho našel? + + + To mi nic neøíká... bejt tebou, zeptám se jiných stalkerù. + + + Nevíš nic o tìch ztroskotaných vrtulnících? + + + Koho by mohly zajímat informace o zakladateli Povinnosti? + + + Rozhodnì Likoho. To je náš velitel, sídlí v Janovì. I kdyby nevìdìl, co s tìma informacema má dìlat, poøád mu je dej - hlavní je, aby se k nim nedostala Povinnost. Dokážeš si pøedstavit, jaký množství propagandy by z toho uvaøili? Bolí mì hlava, jen co na to pomyslím. + + + Jo. Znáš tu historku o vrtulníku uprostøed minovýho pole? Ve struènosti jde o to, že zelený mozky sebou švihly pøímo na rezervní pøistávací plochu, kterou jiný zelený mozky pøed šesti járama podminovaly. Nìkdo si myslí, že ztroskotali z èistý hlouposti, ale já bych za tím hledal nìco jinýho. Pøeber si to takhle: teï mají hoši v baganèatách jistotu, že jim do vrtulníku nikdo nepoleze. Splnìj si svou misi, jednoduše se k nìmu vrátìj, trochu ho zalátaj a tradá! Mùžou letìt. To by mì zajímalo, o co v tý jejich misi jde... + + + Nejsem zdejší, vím leda velký hovno. Poptej se radši v Janovì - naši lidi ti povyprávìj všechno, co potøebuješ vìdìt, a nádavkem ti pøihodìj ještì všechno, co vìdìt nepotøebuješ. + + + Jo, pár chlapù onehdá zahlídlo vrtulník, co letìl tak jako fakt divnì. A pøistání nemìl taky zrovna hladký - plácnul s sebou pøímo na støechu jedný haly v Jupiteru. Prej se tou støechou proboøil pøímo dovnitø a pak ho zasypala poøádná hromada bordelu. + + + Nevidìli jste tu armádu? + + + Koho by mohla zajímat mapa míst mezi Zatonem a Jupiterem? + + + Každopádnì Navigátora. Dìlá tady stalkerùm hlavního prùvodce. Jestli chceš hodit øeè o mapách, hledáš jeho. + + + To chce klid, vole. Nemáme tu fízly, ani bagouny, ani lidový milice a nic takovýho. V Zónì jseš v naprostým bezpeèí. + + + Ne, ale chlapi mi øíkali, že zahlídli nìjakou vojenskou jednotku, jak klièkuje minovým polem za pøistávací plochou. Nejdøív jim chtìli píchnout, ale pak se na nì vysrali. Vojclùm se nedá vìøit, ani co by se za nehet vešlo. Nikdy nevíš, kdy jim rupne v bednì a oni tì støelej do zad. + + + Sám jsem nikoho nepotkal, ale proslejchá se, že jednoho zoldáta mají vìdci v tom svým bunkru. Ozerskij, ten biolog, povídal, že k nim pøišel od toho vrtulníku, co spadnul do továrny... koluje takovej vtip, že prej si vìdci koneènì našli pokusnýho králíka. + + + Osobnì ne, ale nìco se povídá mezi svobodnýma stalkerama. Prej že zahlídli jednoho vojcla u protiletecký základny Volchov. Stopro jde o zombíka nebo nìjakýho probuzenýho ducha... co myslíš? + + + Ne. Jeden borec si navymejšlel, že vidìl sedm vojákù a jednoho svobodnýho stalkera, kterej je vedl houštím za rádiozávodem smìrem na Pripja. Trávu už jsme v Zónì nemìli ani nepamatuju, takže to musely bejt èistý lži. + + + Víš, jak se dostat do Pripjati? + + + Koho bych si mohl najmout na ochranu vìdcù? + + + Svobodu. Jinými slovy nás. S vìdcama spolupracujeme neustále, takže pohlídat je by pro nás byla hraèka. Zeptej se v Janovì našeho šéfa Lokiho. Urèitì nebude mít nic proti. + + + No nevim, èéèe. Ke mnì se doneslo, že vìdátoøi si najali družstvo Povinnosti, který pro nì teï maká. Rádi bysme ty obrejlence pohlídali, ale èumìt od rána do veèera na ty nafouklý ksichty z Povinnosti? To nám za to nestojí. + + + Prej se tam dá projít z Jupitera... jakože z tý továrny, ne z planety! Ha ha ha! Ten se povedl, to musíš uznat! + + + Nemám sebemenší potuchy. Furt nemám èas, abych se tam podíval. Zkusil bych to v táboøe u Navigátora. Je to svobodnej stalker a v tìhle místech se vyzná jak nikdo jinej. + + + Brácho, kdybych to vìdìl, už bych tam dávno byl. Zdrhnout pøed Povinností, vojenskýma a vším tím støílením, to by bylo bájo. + + + Doporuèíš mi nìkoho, kdo tu nemá moc závazkù a kdo by se chtìl vydat do Pripjati? + + + Sorry, kámo. V Zatonu nikoho takovýho neznám. Poradil bych ti, aby ses zeptal našich v Janovì. + + + Víš, kde mají vìdci bunkr, že jo? No, tak nedávno se jim to tam zaèalo vymykat z rukou. Nejdøív se Garik, ten stalker, rozhodl odejít do Pripjati a teï se o totéž pokouší ten vojáèek. Garik je samotáø a zakládá si na tom, ale ten voják... to je pøesnì ten, koho hledáš. + + + Pro mì za mì zkus tøeba Vana z Janova. Je to fajnovej chlap a kdyby chtìl, mohl by se už dávno pøidat ke Svobodì. Ale asi se nechce motat do rubaèek s Povinností... nebo jakejchkoli jinejch rubaèek. Je to ale jeho názor a my ho respektujeme! + + + No jasnì. Pár našich chlapù zahlídlo dole u vyschlýho jezera jakousi partu - pøesnì takový lidi, jaký hledáš. Urèitì znají Pripja jako vlastní boty a navíc se zdá, že pro nikoho nepracujou. A urèitì budou pìknì nebojácný, jsou to totiž kreténi z Monolitu! + + + Jo. Tulák, velitel našich nováèkù... pøestává se mu mezi náma líbit. Jeho hoši se pøizpùsobili jedna báseò, ale on se furt tváøí jak zaraženej prd. Zeptej se ho. Nerad vidím, když musí férovej chlap tvrdnout nìkde, kde ho to neba. + + + Nemám tucha. + + + Našel jsem zvláštní pušku. Neznáš nìkoho, kdo by o ní mohl nìco vìdìt? + + + Manuál u ní asi pøibalenej nebyl, co? Nebyl? Tak v tom pøípadì nevím. + + + Vìdci potøebují provést pár mìøení. Kdo by se na to dal najmout? + + + Naši hoši by to mìli zmáknout. Ve Svobodì máme dost chytrých mozkù a když nìco nevíme, zeptáme se v bunkru. Milerádi posloužíme pro prospìch vìdy! Zeptej se v Janovì Lokiho, urèitì ti øekne to samý. + + + Já bych to s chlapama celkem rád namìøil, ale pøed bunkrem teï hlídkuje Povinnost. Nezcvoknout z vìdátorù je husarskej kousek sám o sobì, ale tvrdnout tam každej den celej den, to rozhodnì nemùže bejt zdravý. + + + Našel jsem zvláštní artefakt. Nedoporuèil bys mi kupce? + + + Poptej se po sbìratelích, kámo. V Janovì žádnýho nenajdeš, vždy sem se bojí chodit i lecjakej stalker. Nejlepší bude zeptat se v Zatonu, tam bejvá trochu vìtší klid. + + + Znáš Fousáèe, toho barmana z tábora svobodnejch stalkerù? Skupuje artefakty a ani tì pøitom tolik neoškube. Milej chlap, a se na nìj díváš z jakýhokoliv úhlu. Je vážnì škoda, že nepracuje pro nás. + + + Kousek odsud jsem našel hnízdo upírù. Co budeme dìlat? + + + Ty vole, musíš varovat svobodný stalkery! Nìkde v tìch konèinách mají svùj tábor. Živý bytosti ze Zóny se sice musej ochraòovat, ale tady už bych mìl spíš obavy o životy lidí. + + + OK, kašli na to. + + + Mám pár otázek... + + + Ptej se. + + + Co si myslíš o Èiperovi? + + + S tím jsem ještì nemìl tu èest. Zeptej se borcù ze Skadovsku. + + + Neslyšel jsi nic o Oáze? + + + O Oáze jsem slyšel úplnì všechno! Je to báchorka, povídaèka! Každej stalker si od ní slibuje nìco úplnì jinýho a každej zároveò tvrdí, že zná její pøesný souøadnice. Škoda, že jediná vìc, kterou mají všechny ty místa spoleènýho, je mizerná pøístupnost. + + + No, povídá se, že se ti tam okamžitì zahojej všechny zranìní a že budeš do nìkolika minut zas plnej elánu. V Oáze prej zmizí každá nemoc nebo choroba, a dokonce i otrava záøením! Jediná vìc, kterou si nikdo není jist, je, kde to vlastnì je. Mám ti to prozradit? Uprostøed Zóny! Ale tahle informace musí zùstat mezi náma dvìma! Nikomu ani muk! + + + Slyšel jsem, že všichni mutanti, který tam potkáš, kolem tebe jen neškodnì projdou. Taky se tam prej nachází artefakt, kterýmu se øíká srdce Oázy. Nikdo neví, co pøesnì dìlá, ale jedno je jistý: nemìl by ses ho dotknout. Kdo by ho ukradnul, ten už by v Zónì nikdy nenašel klidu... A kde ta Oáza vlastnì je? Každej pøece ví, že pod ruským kolem v Pripjati! Vždy to je jasný jako facka! + + + Neznáš stalkera jménem Strakáè? + + + Jasnì, že znám... ale kde je teï, to nevím. + + + Hmm... to mi nic neøíká. + + + Nevíš, kdo mi mohl ukrást vìci z osobní skøíòky? + + + Ehm... ne? Zeptej se veteránù z Janova, ti by ti tøeba mohli pomoct. + + + Kdo mi mùže pomoct s dešifrováním dat? + + + Janovskej Nitrák! Kdo jinej? Ten tyhle komplikovaný technický sraèièky miluje... hrabe se v nich mnohem radši než ve zbraních. + + + Nikoho takovýho neznám. Poptej se v Janovì - mají tam jakýhosi experta. + + + Mám PDA toho obchodníka z Povinnosti. Kdo by o nìj mohl mít zájem? + + + Znáš Hejkala ze Skadovsku? Ten by se na nìj urèitì moc rád podíval. Rád se sere do citlivých záležitostí... + + + Na Skadovsku za Zatonem bejval týpek jménem Hejkal. Kšeftoval s informacema... tøeba by o tvý PDA mìl zájem. + + + Kde se tu dá sehnat náøadí? + + + Jeden stalker mi vyprávìl, že jeho dìda pracoval pøed šestaosmdesátým na rozvodnì. Prej tam mívali všelijaký vybavení, takže bych si tipnul, že se tam dá najít i náøadí. Dneska už nejspíš bude zrezlý jak prdel, ale stejnì bys to tam mohl zkusit. + + + Znáš tu pilu v lese na kopci? Mìlo by tam bejt i nìjaký náøadí, leda by ho nìkdo zèóroval ještì pøed tebou. O tom ale silnì pochybuju - èím víc se k tomu místu pøiblížíš, tím vìtší chu máš nasrat si do kalhot a vzít nohy na ramena. A musí se nechat, že tam jsou i daleko dìsivìjší vìci než jenom záøení... + + + Tak Jupiter máš kousek za prdelí, tam urèitì nìjaký náøadí bude. K hlavní tovární hale bych se ale osobnì moc nepøibližoval... naskakuje mi z ní husina. Radši to zkus ve skladech, v tìch úplnì na kraji továrny. + + + V Pripjati údajnì existuje nìkolik míst, kde se dají najít všemožný technický srandy. Jedním z nich je ten starej sovìtskej koloniál. Jediný místo, kde se za starejch èasù dalo sehnat nìco užiteènýho. + + + Jak to jako mám vìdìt? Prohledej starý dílny nebo obchody, tam by mohlo bejt nìco použitelnýho. + + + Upøímnì øeèeno, poslední místo, kde jsem vidìl solidní náøadí, byl Sidorovièùv bunkr v Kordonu. Jasnì, muselo se za nìj platit, ale bylo nový a nijak zvláš drahý. + + + Øeknu ti to takhle, kámo. Nepøišel jsem do Zóny hledat náøadí. Zapoj mozek, k èemu ti bude dobrý radioaktivní kladivo? + + + Povídá se, že rùzný hejblata a srandièky se dají posbírat ve starým domì služeb. Tøeba tam najdeš i náøadí. Ale máš to jako se vším ostatním: jedinej zpùsob, jak se dostat k tìm libovým vìcem, je pøijít první. + + + Dobrá otázka... bejt tebou, mrknu se do toho starýho vlaku pod mostem. Neptej se proè. Cítím v kostech, že by tam mohlo nìco bejt. + + + Kdo dokáže odemknout pamìový modul? + + + Okamžíèek... Hmm... Nitrák z Janova by to urèitì mìl zvládnout. Kromì nìho už mì napadá jenom Novikov, ten technik od vìdcù. Celkem profík. Musíš si ale v hlavì srovnat priority, protože Nitrák je o mnohem levnìjší. + + + No, potøebuješ technika, ale tady nemáme nikoho jinýho než Kardana. Problém je v tom, že ten si po nìkolika letech s flaškou u huby pøíliš nerozumí se složitou elektronikou. Bejt tebou, optám se v Jupiteru - tam na to mají odborníky. + + + Kdo by se dokázal dostat do ocelového kontejneru? + + + Kardan ze Skadovsku. Tipoval bych. Mìl bys vidìt, jak se dokáže proøezat zámkem. Radost pohledìt. + + + Nejspíš nìjakej technik, ne? Nitrák to ale nejspíš nezvládne, ten je spíš na jemnìjší práci. + + + Ha, na tohle se ptáš v Pripjati? Nech si poradit a zkus štìstí radši nìkde dál od støedu Zóny. + + + Hledám stalkera jménem Pahejl. Nevíš, kde by se dal najít? + + + Zeptej se Fousáèe, toho barmana ze Skadovsku. Ten má o stalkerech pøehled. + + + Pahejl? Co já vim, kudy camrá. Zeptej se v Zatonu, tam tráví vìtšinu èasu. + + + Nevíš nìco o tìch zøícených vrtulnících? + + + Koho by mohly zajímat informace o zakladateli Povinnosti? + + + Hodil bych øeè s Hejkalem ze Skadovsku, ten kšeftuje s informacema. Dal bych ruku do ohnì za to, že spolehlivý echo o takovýhle legendì hu zaujme. + + + Jeden z nich jsem sám vidìl... ne že by se zrovna øítil, ale zrovna nejlíp taky neletìl. Mlátil sebou ze strany na stranu, až nakonec pøistál na tý náhorní plošinì za Zatonem. Mohla by bejt sranda skoèit se podívat, jestli nìkdo nepøežil... kdybych ale vìdìl, jak se tam nahoru dostat. I když, možná by to vìdìl Noe z bárky psychotikù... + + + Slyšel jsem, že pár armádních vrtulníkù sebou seklo nedaleko odsud... Lidi øíkali rùzný vìci, ale tohleto si pamatuju jasnì - prej že ten vrtulník pøistál na rezervní pøistávací ploše, kterou vojenský sami pøed pár lety podminovali. Tomu se øíká ironie osudu. Kdo jinému jámu kopá, sám do ní padá. Tady to máš na vlastní oèi. + + + Kámoš mi vyprávìl jednu historku... vyrazil do Železnýho lesa na lov artefaktù a jakmile se zanoøil pod stromy, uslyšel za sebou dìsnou øachu. Otoèil se, aby zjistil, co se dìje, a uvidìl vrtulník, jak se plnou rychlostí øítí pøímo na nìj a cestou poráží stožáry, a tak dále. Kámoš to støelil kolmo do houští... se divím, že nenabìhl pøímo do nìjaký anomálky. Železnej les najdeš bez problémù, je vidìt na míle daleko. Jenomže se to v nìm hemží poltergeistema, tak si dávej poøádnýho bacha. + + + Jeden prej pøistál na jižní plošinì, jenomže dostat se tam nahoru není žádná prdel. Ale taky jsem slyšel, že kdosi nahoøe na plošinì zahlídl Noema, což znamená, že ten starej psychouš tam zná cestu. + + + Já sám jsem žádnej nevidìl, ale prej že jeden sebou prásknul pøímo do fabriky... nikdo to ale nešel omrknout. Je to tam moc nebezpeèný. + + + Jeden stalker mi povídal, že vidìl nìkolik vojenskej vrtulníkù, co se dostaly do nìjakýho prùseru. Jednomu vyšlehly plameny z motoru a ten stroj pak zahuèel do bažiny plný anomálií. Odsud se tam dá dostat snadno, akorát že bažiny jsou ztìlesnìnej zlej sen. To není místo pro soudnýho èlovìka. + + + Nezahlídli jste tu vojáky? + + + Kdo by mohl mít zájem o mapu míst mezi Zatonem a Jupiterem? + + + Navigátor, kdo jinej? Však víš, místní prùvodce. Neustále pendluje mezi Skadovskem a Janovem, takže tu tvojí mapu rozhodnì užije. + + + Tady nejsme v Zatonu ani v Jupiteru, takže ta mapa ti je na dvì vìci. Zeptej se pøímo na tìch dvou místech a tøeba pochodíš líp. + + + Sám jsem nic nevidìl, ale povídá se o tom, že parta vojákù slezla z jižního svahu náhorní plošiny - z tý strany od èistièky. Prej to nejdøív zkoušeli hezky podle pøíruèky a chtìli se slaòovat, nebo cosi. Ale nakonec to hezky sjeli po prdeli! Haha! Novej sport!Bobování v Zónì! + + + Ve Skadovsku jsem zaslechl historku, jak nìkdo zahlídl si tak pìt vojclù, kterak vylejzají z kanalizaèního tunelu v bažinách. Byli prej doslova zasraný od hlavy až k patì a jeden z nich vypadal k nerozeznání od bažinnýho upíra. Odshora dolù pokrytej zeleným blivajzem. + + + Osobnì ne, ale mùj kámoš vidìl u zpracovací fabriky jednu vojenskou jednotku bojovat se žoldákama. Než si stihl najít flek s pìkným výhledem, bylo už po srandì, protože zelený mozky ustoupily. Na žádný stranì ani jeden mrtvej... kurva klika, co? + + + Nìkdo vidìl skupinku plus mínus deseti vojákù, jak se motá kolem Noemovy bárky. Soudì podle toho, že ten psychouš byl u toho a dejchal, museli se s nim na nìèem dohodnout... jak typický. Samozøejmì že Noema se nikdo neptal, co po nìm chtìli. Èlovìk nikdy nemùže vìdìt, jak se ten starej zkurvysyn zachová. + + + Pøed pár nocema jsem slyšel poøádnej výbuch a pak mi chlapi v Janovì povìdìli, že v minovým poli zahlídli tuhýho vojáka a za nim prázdnou vojenskou helikoptéru. Nejspíš v tý tmì nepoznali, do èeho to pøistáli, a nakráèeli si to pøímo do min. Nikdo neví, kolik jich od tama vyvázlo naživu, ale ten borec urèitì nepøiletìl sám. + + + Žádný vojáky jsem nevidìl... ale šušká se, že nìkdo ve vojenskym mundùru teï bydlí u vìdcù. Prej že ho našel Garik, ten stalker, když se vydal do raketový základny hledat ztracený kámoše. Oba dva víme, že základna je doslova napìchovaná zombíkama, který nemají lidský návštìvy zrovna v lásce, takže Garik ho prakticky zachránil pøed jistou smrtí. + + + Ne, ale slyšel jsem, že nìkdo zahlídl vojáka poblíž protiletecký základny Volchov. Ne že bych tomu sám vìøil... ten èlovìk mohl lhát, nebo tøeba nedokáže rozeznat vojáka od zombíka. + + + Vojáky? No, mezi lidmi se povídá, že „celá vojenská jednotka vedená stalkerem“ si to rázovala smìrem k Jupiteru. Ale pøece bys nevìnoval pozornost takovým drbùm. + + + Víš, jak se dostat do Pripjati? + + + Koho bych si mohl najmout na ochranu vìdcù? + + + Znáš Spartaka a jeho partu? Vždy víš, ty stalkery ze Zatonu? Jsou to fajn lidi a v boji se taky neztratìj. Tìžko bys hledal ostøílenìjší šíbry. Mám pocit, že hlídání vìdcù by se jim mohlo líbit. + + + Nepotkal jsi v dílnách u rozvodny Sekerákovy chlapy? Mají sice svý mouchy, ostatnì jako všichni žoldáci, ale aspoò se nejdøív ptají a teprv potom støílej. Tipuju, že kdybys je pro tuhle práci ukecal, vìdci by koneènì mìli lehký spaní a dokonce i stalkeøi by si vydechli. Všichni budou šastný, idylka. + + + Ehm... nikdo mì nenapadá. Soráè. + + + Jediný, co vim jistì, je, že odsud ze Zatonu tam žádná cesta nevede. Každej, kdo se pakoval do Pripjati, to nejdøív vzal pøes Jupiter. Tam by ses mìl poptat. + + + No, šušká se, že do Pripjati vedou tajný podzemní chodby z Jupiteru. Problém je tak trochu v tom, že tyhle povídaèky se zaèínaj vynoøovat až tak po druhý rundì, a v takovým stádiu už se Jupiter zdá pìknì dìsivej a nikomu se tam nechce. + + + Jak to mám vìdìt, vole? Nemìl bych nìjaký snazší otázky? Já ti leda tak doporuèím, aby ses zašel zeptat Navigárora - jestli ti nìkdo dokáže poradit, tak je to on. + + + Ha! Kdybych znal cestu do Pripjati, dávno už bych tady netvrdnul! Proè myslíš, že jsem se vydal ke støedu Zóny? Ty vole, Pripja je jeden artefakt vedle druhýho! Kdo se tam dostane první, je vysmátej na celej život! + + + Nemùžeš mi doporuèit nìkoho, kdo tu nemá moc závazkù a chtìl by vyrazit do Pripjati? + + + Tady u nás nikoho takovýho nesplašíš. Všichni, kdo chtìli vyrazit blíž ke støedu Zóny, už dávno odešli do Jupiteru. Bejt tebou, zkusím to tam. + + + Už jsi slyšel o tom vojákovi, co se nasáèkoval k vìdcùm? Podle mì by s tebou klidnì šel, nemá tím co ztratit. Vìdci ještì nìjakou dobu domù nepùjdou a sám se do Kordonu nedostane, takže možná mu doèista hrábne a nechá se od tebe ukecat na Pripja! + + + Znáš Vana, toho z janovskýho nádraží? Je to férovej chlap, dobrej stalker a nechá si nabulíkovat cokoliv. Je to taky blázen, co se víc vyzná v anomáliích než v lidech... poøád ho jenom nìkdo využívá, a to se nezmìní, dokud neodejde. + + + Hele, vole, chlapi nedávno zahlídli jakýsi družstvo u protiletadlový základny, na jih od vyschlýho jezera. Patrnì nešlo o obyèejný stalkery, ani Povinnost, ani svobodu - byli to fešáci z Monolitu! Takže jestli potøebuješ svézt do Pripjati, zkus to u nich! Haha! Neber mì vážnì, dìlám si prdel. + + + Znáš Chodce, myslím toho velitele novýho družstva Svobody? Kdybys vidìl ten jeho kyselej ksicht, trklo by ti, že Janov není místo pro nìj. Bìž s nim hodit pokec. Tøeba se nechá ukecat. + + + Znáš Chodce, myslím toho velitele novýho družstva Povinnosti? Kdybys vidìl ten jeho kyselej ksicht, trklo by ti, že Janov není místo pro nìj. Bìž s nim hodit pokec. Tøeba se nechá ukecat. + + + Hmm... nikdo mì nenapadá. + + + Našel jsem zvláštní pušku. Neznáš nìkoho, kdo by toho o ní vìdìl víc? + + + Co já vim? Zeptej se profíkù... jako že technikù nebo tak... + + + Zeptej se ve Skadovsku Kardana, za to nic nedáš. Vìnuje je zbraním a je to fakt machr... a možná mu i po tom všem chlastání pøežilo pár mozkových bunìk. + + + Vìdci potøebují provést pár mìøení. Kdo by se na to dal najmout? + + + Znáš Gontu, toho lovce? Hádám, že jemu a jeho chlapùm by nevadilo makat pro vìdce. A kdyby se do vìci náhodou zaèali srát mutanti, tak tihle chlapi jsou pøesnì to, co potøebuješ. + + + Znáš Grizzlyho, Torbu a Mitjaje? Všichni jsou to stalkeøi z Janova. Pracujou jako trojka a jsou fest dobrý! Na takovouhle práci by byli jako stvoøený... jen jestli se Mitjaj zase nezapletl do nìjakýho prùseru. + + + Netuším, vole. Máme tady až po uši vlastních starostí. + + + Našel jsem zvláštní artefakt. Nedoporuèil bys mi kupce? + + + To asi ne. Našinci kupujou jen známý a ovìøený vìci. Zeptej se v Zatonu, ten je blíž k okraji Zóny a tak všelijak. + + + Ukázal bych ho Fousáèovi, tomu hospodskýmu ze Skadovsku. Ten prej spolupracuje se sbìrateli z venkovního svìta, který se mùžou po divnejch vìcech utlouct. + + + Kousek odsud jsem našel doupì upírù. Co budeme dìlat? + + + Ty vole, musíš bìžet do Skadovsku a povìdìt to Fousáèovi! Protože buï je vykosíme, nebo nám natrhají nový díry do prdelí. + + + Už nic. + + + Kde je tu nejbližší tábor stalkerù? + + + Jseš debil, nebo co? Já se v táborech stalkerù nevyznám... ale nejbližší tábor odsud je Skadovsk. Dám ti k nìmu souøadnice a dokonce za nì nebudu nic chtít. Super, že jo? + + + Kde je tu nejbližší tábor stalkerù? + + + Pošlu ti souøadnice do PDA... jedinej podstatnej tábor v okolí je Skadovsk. + + + Zatím se mìj. + + + O nìjakých havárkách jsem slyšel... Ale víc o tom nevím, na klepy nejsem. Sorry, pokud jsem ti nepomohl. + + + Chlape, i bez tvých vrtulníkù mám co dìlat... Hele, vybourat s helikoptérou asi nebude zrovna pøíjemné, ale to je tak všechno, co ti k tomu mùžu øíct. + + + O èem to mluvíš, vole? Asi hulíš nìco fakt hodnì tvrdýho, pokud jsi tady vidìl vrtulníky, protože na tomhle místì nemaj co dìlat. + + + Huh? Ne, chlape, takové kraviny mì nezajímají. Mé práci rozšiøování informací nijak nemùže. Však víš, co myslím. + + + Naše hlídka vidìla nìjaké klesající helikoptéry, ale bližší podrobnosti byly hlášeny pøímo podplukovníkovi. Jde o nìjaké tajné vìci a radši o tom nechci nic vìdìt. + + + Kde bych našel oblek s uzavøeným dýchacím modulem? + + + Nejsem si jistý, ale dostatek prachù dokáže zázraky – samozøejmì pokud víš, jak je investovat. Promluv si s Èiperou... Pokud se s ním dohodneš, dokáže sehnat cokoliv. A já doufám, že se ti to podaøí... tìch pár dní bez nìj by Skadovsku urèitì prospìlo... + + + Jak bych to sakra mìl vìdìt? Ani já tady nejsem dlouho... Radši se zeptej v Zatonu, naši kámoši tam mají rozhozeny vlastní sítì. + + + Nemám páru. Proè, chceš snad do té anomálie strkat svùj nos? Koukni, pokud narazíš na nìjaký artefakt, dej nám vìdìt. Budem tam døív, než øekneš švec... Abysme ti pogratulovali k dobré práci! Ha ha ha! + + + Kde bych našel oblek s uzavøeným dýchacím modulem? + + + Jak bych to mìl vìdìt? Poèkat... tady v Skadovsku žije jeden chlápek, který prý mùže sehnat všechno, co chceš. Sedí na horním poschodí, øíkaj mu Èipera. + + + Ne, v takovým divným obleku tady rozhodnì nikdo nechodí.. Možná by ses mohl zeptat v Zatonu, je trošku blíž civilizaci. + + + Netuším, kde bys nìco takového mohl najít.. Takové obleky jsou vzácný i mezi èleny Povinnosti. Vydávaj je jen kvùli odlišení v boji nebo pøi operacích probíhajících v anomálních oblastech. + + + Kde bych našel oblek s uzavøeným dýchacím modulem? + + + Zaslechl jsem, jak se stalkeøi o takovém èlovìku s konexemi baví, øíkali mu Èipera nebo nìjak tak. Dokáže sehnat skoro všechno. Však víš: výbavu, støelce a podobné kraviny... ale drogy ne. Vysedává ve Skadovsku, pokud bys za ním chtìl zajít. + + + Dobrá otázka, chlape... Tady ve Svobodì nic takového nenosíme... Být tebou, zeptal bych se stalkerù v Zatonu. Tam bys mohl najít nìkoho, kdo se tìmihle vìcmi zabývá. + + + Heh, na co takový krám potøebuješ? Je to k nièemu. I když... Možná by se mohl hodit. Líp se s ním dýchá a slunce tak nesvítí do oèí... Možná bych si ho taky mohl poøídit. Hej, nevíš, kde bych ho sehnal? + + + Kde bych našel oblek s uzavøeným dýchacím modulem? + + + No, tipnul bych to na Èiperu. Tøetí poschodí ve Skadovsku. Ten chlápek dokáže sehnat sníh i na posraný poušti... Jeho služby ale nìco stojej. + + + Poèkej... V Zatonu kdysi takový chlápek bejval, pracoval s Èiperou. Zkus se podívat, jestli tam poøád je. Slyšel jsem, že se zamìøuje na vìtší vìci. + + + Kámo, ty o tom mluvíš, jako by to byly nìjaké tužky do kanceláøe... Nikdo ti to neøekne jistì. Takové vìci se objeví jen tu a tam... Pokud to najdeš, budeš mít fakt štìstí. + + + Mìj se. + + + Zatím. + + + Èaues. + + diff --git a/gamedata/configs/text/cze/st_dialogs_jupiter.xml b/gamedata/configs/text/cze/st_dialogs_jupiter.xml new file mode 100644 index 0000000..bcb3c3b --- /dev/null +++ b/gamedata/configs/text/cze/st_dialogs_jupiter.xml @@ -0,0 +1,3885 @@ + + + + Co chceš? + + + Potøebuju mluvit se Spodkem. Jde o Váòùv dluh. + + + Tak bìž dál. + + + Dobøe. + + + Jen se tak procházím. + + + Tohle není žádná promenáda, vole. Vypadni do pøírody. + + + Nevíš, kdo mi mohl ukrást vìci z osobní skøíòky? + + + Ne, ale já mám teï jiný starosti. Tys pøišel o pár hmotných statkù, ale já bych mohl pøijít o život... + + + Krádeže, faleš... Ty vole, kam to ten svìt spìje? Nikoho jsem nezahlídl, ale a už do udìlal kdokoliv, touhle dobou bude dávno za humnama. + + + Pojïme za Zulusem. + + + Jasan. Cestou bysme se mìli stavit u Havajce a vykoupit od nìj moji zbroj. + + + Pojïme. + + + Já bych moc rád, ale nerad bych prakticky nahatej napochodoval do emise. Poèkáme ještì chvíli. + + + Jestli se chceme dostat do Pripjati, potøebujeme obleky s uzavøeným rozvodem kyslíku. + + + Ty vole, to je jak naschvál! Pøesnì takovej oblek jsem mìl... ty si mùžeš zavøít ksicht do tý svý pece a budeš dejchat v pohodì, jenže já ten oblek støelil Havajcovi. Teï už ho zpátky nekoupím, potøeboval bych pìt litrù a jsem švorc. + + + Mùžeme ho koupit z mých penìz. + + + Jako že jen tak? Dìláš si prdel? + + + Na, tady máš pìt tisíc. + + + Teï jsi mi vážnì zachránil kejhák, kamaráde! Teï s tebou pùjdu klidnì i do pekel! + + + Rád bych za nìj zaplatil, ale pìt tisíc nemám. + + + Moc si to nevyèítej, to se stane každýmu. Vìø mi, já to znám. + + + Budu nad tím uvažovat. + + + No jasnì... vždy jsou to tvoje prachy. + + + A ty mi ty prachy dáš? + + + Organizuju výpravu do Pripjati. Pùjdeš se mnou? + + + Tys mi pomohl, kamaráde, tak teï já pomùžu tobì. + + + Rád bych, brácho, ale nemùžu vocaï odejít, když mám na krku ten dluh. Nebylo by to správný, nehledì na to, že kdybysme je pak cestou potkali, odstøelili by mì jak prašivýho psa. Tìm hadùm je jedno, koho zabijou... + + + Tak co, pøipraven vyrazit do Pripjati? + + + Pøipraven, nažhaven a tak dále! + + + Pojï dál. Co mi chceš? + + + Dluh jsi zaplatil, teï mi zmiz z oèí. + + + Byli to namyšlení hazjlové. Zasloužili si umøít. + + + Ty peníze jsem zaplatil, takže teï už nic nedlužíš. + + + Ty vole, fakt dík! To ti nikdy nezapomenu. + + + Zrovna slavnì ne, musel jsem jim splatit i úroky. + + + To je zlý... ale po mnì by chtìli ještì víc, to mi vìø. Každopádnì díky za pomoc! Tohle ti nikdy nezapomenu. + + + Zatím jsem tam nebyl. + + + Pospìš si, než zaènou chtít ještì víc. + + + Stavil jsem se za nimi, ale chtìjí kromì dluhu splatit i úroky. + + + To se jako posrali, nebo co? Vždy jsem sotva dal dohromady tu pùvodní sumu... co kdybys je pøesvìdèil, aby ty úroky smazali? Budeš k tomu potøebovat poøádnou zbraò. Násilí je to jediný, co respektujou. + + + Jak to bylo s tím dluhem? + + + Nó... mìl jsem starej oblek, kterej už se zaèínal prošoupávat, tak jsem si øekl, že si koupím novej. A jako na potvoru nìkdo zrovinka prodával zbrusu novou nádheru. Mìla uzavøenej rozvod kyslíku a tak všechno... jenomže a jsem poèítal svý prachy zleva, zprava, poøád jsem jich mìl málo. V tu chvíli se ke mnì Spodek, to je ten prodavaè, nakloní a øíká: „Klid, Váòo. Zbytek mi zaplatíš pozdìjš.“ A já si øíkám: „To je ale milej chlap.“ A pak víš. + + + A pak co? + + + Prodal jsem mu svùj oblek, pobral jsem všechny prachy a jdu za nim. Spodek na to: „Paráda, Váòo, ale co bude s úrokama?“ Øíkam si: „Jo, dyk má pravdu... ještì mu musim splatit úroky...“ Nìkde jsem splašil ještì další prachy a donesl jsem mu je. Sotva mu je dám, povídá: „Zatímco jsi byl pryè, nahromadily se tu další úroky, Váòo.“ Jenomže ty úroky rostou rak rychle, že je nestíhám dohnat! Novej oblek jsem musel zastavit a zbranì taky... + + + Tak co teï? + + + Chci mu zaplatit tìma prachama, co jsem si vydìlal. Spodek si potrpí na svojí povìst... jenže se bojím. Nemohl bys za nim zajít radši ty a dát mu ty prachy za mì? + + + S radostí. + + + Ale jedna taková drobnost... Až za nim pùjdeš, pøiprav si na oèi poøádnej kvér, nebo tak nìco. Ukaž jim, že s tebou by si nemìli zahrávat, a možná k tobì budou mít i respekt. + + + Já to nìjak zvládnu. + + + Teï na to nemám èas. + + + To by staèilo. + + + Takže... mohl bys skoèit za Spodkem a splatit mùj dluh? + + + Dobøe, dobøe, nestøílej! Hned ti zaplatím... ech, promiò. Myslel jsem, že jsi nìkdo jinej. + + + Jak jsi dopadl u banditù? + + + Nazdar, èéèe. Jsem rád, že ses vrátil! + + + Hej! + + + Máme návštìvu... Òákej stalker chce hodit pokec se Šišákem. Copak, pøinášíš dary, nebo jsi tu kvùli kšeftùm? Šup, šup, vymáèkni se, kamaráde. + + + Neèekal bych, že se vrátíš... tak co mi neseš? + + + Co ještì chceš probrat, stalkere? + + + Co potøebuješ? Už tì nebaví pobíhat po Zónì s napakovanýma kapsama? Tak od toho ti mùžeme odpomoct. + + + Chci mluvit s tvým šéfem. + + + Hele, vole, na tyhle píèovinky nemám èas. Zmiz mi z oèí, pronto! Padej, nebo tì trochu popoženu brokovnicí. + + + Dobøe, dobøe, už jdu. + + + Jde mi o toho stalkera, co jste zajali. Chci mluvit s vaším šéfem. + + + Hmm... tak to bìž dál. Ale ne abys na nás nìco zkoušel, nebo si tì zpacifikujeme. Jdi pøímo za nosem a pak projdi tou mezerou mezi kontajnerama. Pobrals to? + + + Jo. + + + Jen jsem tak šel kolem. Už zas mizím. + + + Jde mi o toho stalkera, co jste zajali. Chci mluvit s vaším šéfem. + + + Co ještì chceš? Odprejskni! + + + OK... + + + Hele, ty hazlíku, snažíš se mì urazit, nebo co? Pøinesl sis pytel penìz, abys mohl zacvakat za svýho kámoše, a mnì nedáš ani rubl za bezpeènej prùchod? To je od tebe ale ošklivý. Rozumíme si? + + + O jaké èástce mluvíme? Nezapomeò, že se ještì potøebuju dostat na základnu. + + + Ha, ty jsi vážnì vtipnej! Tady nejsme v žádným bordelu, vole, nemáme rozepsanej ceník služeb... Vobra kapsy, debile! + + + Dobøe, ber. + + + Už odcházím. + + + Cože? To mi jako chceš sebrat všechen lup? Ani nápad! + + + Výkupné jsem zaplatil. Dál není o èem se bavit. + + + Fajn, stalkere, my máme odpracováno. Zas abysme šli. + + + Díky, chlapi! Zatím se mìjte. + + + Poèkejte! Mùžou se tu skrývat ještì další banditi. + + + Tož abychom šli, ne? Páprda to nepøežil, ale nemùžeš øíct, že bychom se nesnažili... + + + Poèkejte, ještì není po všem! + + + Pochopil! + + + Pojï se mnou do Pripjati. + + + Ne, radši bych tu mìl zùstat a dohlídnout, aby se Mitjaj nedostal do žádnýho prùseru. + + + Hej, stalkere! Tisícerý díky za to, jaks vysekal Mitjaje ven! Už jsme zaèali sestavovat vlastní družstvo... Tu máš, vezmi si tohle jako výraz našich díkù. + + + Hej, stalkere! Tisícerý díky za to, jaks vysekal Mitjaje ven! Jsi fakt zvíøe, takhle odrovnat všechny bandity bez cizí pomoci... Tu máš, vezmi si tohle jako výraz našich díkù. + + + Hej, stalkere! Tisícerý díky za to, jaks vysekal Mitjaje ven! Osobnì jsem neèekal, že zaplacení výkupnýho fakt zabere... Urèitì by se ti teï hodily prachy, tak si vezmi tyhle. Jako výraz díkù. + + + Hej, stalkere! Tisícerý díky za to, jaks vysekal Mitjaje ven! Mìl jsem naprostou pravdu, banditùm èlovìk nesmí ustoupit ani o píï! Musíš si na nì poøádnì dupnout... a na to jsi ty jako stvoøenej. Na, vezmi si tohle. Každej dostal svùj podíl, takže toho moc nezbylo, ale jsme ti fakt vdìèný. + + + Jak to dopadlo s tím výkupným? + + + Poøád na tom pracuju. + + + Tak jak je? Kdy si koneènì došlápneš na ty bandity? + + + Už brzo. + + + To sis to rozmyslel, nebo jsou ti banditi pøíliš tvrdej oøíšek? Nenech se vystresovat, pracuj si klidnì svým tempem, ale moc to neprotahuj. Nechceme, aby jim došla trpìlivost a oni Mitjaje popravili. + + + Já to nìjak vymyslím. Všechno bude fajn. + + + S profíkem tvýho kalibru je radost spolupracovat, stalkere! + + + Kurva, pøišli jsme o dobrýho chlapa... Chudák Mitjaj... Nedokázali jsme ho zachránit, to jsme teda kámoši! + + + Co nadìláš? + + + Pojï se mnou do Pripjati. + + + Jediný dùvod, proè jsem se chodil, bylo, aby si kluci mìli s kým pokecat. Radši zùstanu s nimi. + + + Hele, díky za Mitjaje... Právì jsme se tam chystali zanést výkupné. Nakonec to ale dopadlo fakt dobøe, to se ti nedá upøít... + + + Hele, díky za Mitjaje... Jak se ti je povedlo pøesvìdèit? Èlovìèe, od tebe bych se mohl uèit. + + + Hele, díky za Mitjaje... No nemìl jsem pravdu? Vyjednávání je klíèem k úspìchu. + + + Hele, díky za Mitjaje... poøád si myslím, že vyjednávání by bylo lepší, ale takhle to nakonec taky nedopadlo špatnì. A to je hlavní. + + + Vypadni. Teï na tebe nemám náladu. + + + Dobøe, hlavnì klid. + + + Nazdar, profíku! + + + Nebohý Mitjaj... byl poøád ještì mladý tele... celej život mìl pøed sebou. + + + Co nadìláš? + + + Paráda, tak jsme tu všichni. Grizzly už mi o tobì povìdìl. Plán je jednoduchej - hoši se rozestoupìj na stanovištích v oblouku kolem cíle a já ze svý pozice odstøelím hlídaèe. To je signál k zahájení útoku. Nezapomeò, kde máš ostatní, a pak už jen dìlej, co uznáš za vhodný. Na místì už si urèitì vymyslíš vlastní postup... Pøipraven? + + + Budu na to myslet. Pojïme. + + + Ještì si to rozmyslím. + + + Nechtìl by ses se mnou projít do Pripjati, Mitjaji? + + + Vìdci verbují pár nových lidí. Jak by se ti líbilo pro nì pracovat? + + + O jakou práci jde? + + + Hlídání jejich bunkru. + + + Èlovìèe, radši ne. To dobrodrùžo s banditama mi staèilo. Teï se chvíli budu válet na prdeli a vydejchávat to. + + + Chodil bys k anomáliím a dìlal mìøení. + + + Hmm... to zní zajímavì. Pro vìdce už jsem párkrát dìlal... a že jseš to ty, tak jo. Jdu do toho. Vezmu Grizzlyho a Torbu a vyrazíme k bunkru. + + + Povìz mi, jak tì zajali. + + + Ani se neptej! Moje vlastní blbost. Banditi mì pøedtím varovali, jenže já na nì kašlal... Zaèali po mnì chtít výpalný, jakože podíl na koøisti, ale já si øekl: Vždy Zóna nikomu nepatøí, tak co bych jim platil? + + + Øekli jsme jim s klukama, a si vylížou, víš co, a skoro už se zdálo, že nám to prošlo. Ale banditi jsou kurvy vynalízavý, a tak si na nás poèíhali. Nevím, co mì to napadlo za kokotinu jít hledat artefakty na vlastní pìst, každopádnì na mì vyskoèili a svázali mi ruce døív, než jsem stihl vùbec sáhnout po bouchaèce. Tak nìjak se to stalo. + + + Díky, žes za mì zaplatil výkupný! To ti nezapomenu. + + + Díky za záchranu, stalkere. To ti nezapomenu. + + + Díky, žes mi pomohl splatit výkupný! + + + Díky, žes mì pomohl vysvobodit! + + + Díky za pomoc, stalkere... Až se vrátíš, mí kamarádi se ti urèitì nìjak odvdìèej. Co kdybysme šli na základnu spolu? Bude to tak rychlejší. + + + Tak pojï. + + + Bìž napøed, já se stavím pozdìji. Ještì si tu potøebuju nìco vyøídit. + + + Ty vole, už jsem se bál, že tam zaøvu... Fakt Grizzly s Tobrou najali tolik lidí? Svatá krávo! Takovou megapøestøelku jsem jaktìživ nevidìl! Nemohli bysme už radši jít pryè? + + + Poèkej ještì. Mùžou se tu potulovat další bandité. + + + Jasnì, jdeme. + + + Ty vole, už jsem myslel, že moje dny jsou seètený... Já zírám, takhle pokosit všechny bandity úplnì sám! Jsi fakt hustej! Tohle mi nikdo nikdy neuvìøí... Tak co, pùjdeme už pryè? + + + Poèkej ještì. Poøád tu mohl nìkdo zùstat. + + + Jo. Mizíme odsud. + + + Díky, stalkere! Pojïme rychle pryè, než si to banditi rozmyslej. + + + Jdeme. + + + Musíme odsud vypadnout! Rychle! + + + Nesmíme pøistoupit na požadavky banditù. Problém si žádá násilný øešení! + + + Moje slova! Znám pár týpkù, co nám ochotnì pomùžou... a tobì taky zaplatíme, jestli nemáš nic proti týmový akci. + + + Mùžu jít s vámi. + + + Bezva! Znám partièku stalkerù, který sloužili v policejní zásahový jednotce. Setkáš se s nimi na dohodnutým místì v jednu hodinu v noci. Budou na tebe èekat. + + + OK. + + + Torba má pravdu. Nemá smysl vyprovokovat jatka, když mají zajatce. Musíme vyjednávat. + + + Hmm, možná že máte pravdu. Prùser je v tom, že když se tam ukážu já s Torbou, banditi nás nebudou chtít nechat odejít, protože nepøistoupili na jejich hru. Øíkali, že až nás pøíštì uvidìj, rozpáøou nás jak prasata. Ale kdybys nám dìlal prostøedníka... + + + S radostí posloužím. Dejte mi ten artefakt. + + + Buï opatrnej. + + + Já to zvládnu. + + + Takhle bysme se mohli hádat donekoneèna. Úspìch závisí na tom, kdo bude udávat tón. Já to s tìma hajzlama vyøídím sám. + + + Fíha, tak to jsem neèekal. Pøeju hodnì štìstí. + + + Co nevidìt se vrátím. + + + Souhlas. Ale potøebuju se pøedem pøipravit. + + + Stalkere, nechtìl bys našeho kámoše Mitjaje vysekat z prùseru? + + + Co se stalo? + + + Mitjaj si to pìknì zavaøil. Banditi si na nás zaèali vyskakoval a dožadovali se, abysme jim dávali podíl ze všech artefaktù, co najdeme. Øekli jsme jim, a si škubnou, protože stalkeøi pøece nejsou nièí kurvy... Jenže oni pak toho chudáka pøepadli, když vyrazil lovit na vlastní pìst. Teï ho držej a chtìj za nìj výkupný. + + + Co budete dìlat? + + + Torba navrhuje, abysme jim jako výkupný dali nìjakej artefakt... ale já øíkám, a si naserou! Pøece nebudou stalkeøi posluhovat banditùm... ten artefakt bychom mìli prodat, za ty prachy najmout poøádnou bandu a vzít bandity útokem. + + + Ještì se k tomu vrátíme pozdìji. + + + Tak co, pùjdeš s náma zachránit Mitjaje? Torba si furt myslí, že bysme tìm banditùm mìli zaplatit artefaktem. A já poøád trvám na to, abychom je pomlátili. Jenže k tomu bychom museli artefakt prodat a najmout za nìj pár chlapù... zatím jsme se ještì nerozhodli. + + + Pøipraven? Dáme ti artefakt, ty pùjdeš a vykoupíš s nim Mitjaje. Potkáme se pak v baru. + + + Už jsi byl u tìch banditù? + + + Ještì ne, zatím se rozehøívám. + + + Jo, ale nijak to nedopadlo. Stavím se, až budu vìdìt, na èem jsme. + + + Nedávno jsem byl v Oáze a našel jsem tam artefakt. Nemìl bys o nìj zájem? + + + Ha. Tahej si za nos nìkoho jinýho, mladej! O Oáze jsem toho slyšel leccos, ale zatim jsem nepotkal NIKOHO, kdo tam doopravdy byl. Nic ve zlým, ale nìjak ti to nebaštím. + + + Mám dokumenty z Jupiteru. + + + Jo, vezmi si je všechny. + + + Jo, vezmi si ten pøíkaz k evakuaci. + + + Jo, vezmi si zápisy ze schùzí. + + + Jo, vezmi si rozpis zásilek. + + + Jo, vezmi si tu zprávu ze staré opravny. + + + Snad jindy. + + + Nevíš, kdo mi mohl ukrást vìci z osobní skøíòky? + + + Moji lidi ne, o tom nepochybuju. Tøeba to byl nìkdo ze Svobody. Kdybysme celej Janov øídili my, nic takovýho by se tu stát nemohlo. + + + Øekni mi nìco o Povinnosti. + + + A co pøesnì tì zajímá? + + + Co tu vlastnì dìláte? + + + To samý, co všude jinde. Chráníme stalkery pøed všemožnou havìtí. Sám si vidìl, kolik se tady motá mutantù. A nejsou to žádný roztomilý štìòata jako ty z Kordonu, kdepak! Tak napøíklad já jsem vèera v noci na vlastní oèi vidìl chiméru. Už se stmívalo, tak jsem se za ní nehnal... A to výèet problémù u mutantù nekonèí. Musíme taky prozkoumat opuštìný laboratoøe a posbírat tam rùzný dùkazy døív, než se k nim dostanou ty magoøi ze Svobody. + + + Co tì pøivádí do støedu Zóny? + + + Dìláš si prdel? Co sem pøivádí tebe? Když budu hádat, tak bych øekl, že jsme tu oba ze stejných dùvodù. Støed Zóny byl vždycky záhadným a nedostupným místem. Doufali jsme, že tu najdeme odpovìdi na všechny svý otázky. Oba jsme chtìli zjistit, jak Zóna vznikla a jak se naopak dá znièit. A proto jakmile jsme se doslechli, že nìkdo zrušil Vypalovaè mozkù, sbalili jsme se a vyrazili ke støedu. + + + A co jsi zjistil? + + + Hromadu vìcí, ale jsou tajný. Mùžu ti leda naznaèit, že Zóna skrývá víc, než se na první pohled zdá. Pár našincù má za to, že Zóna je jako rakovinnej nádor a že se musí za každou cenu znièit. Já jsem ale leccos vidìl a jsem toho názoru, že Zóna je velikánskej živej organismus a my jsme takový bakterie, co se na nìm pøiživujou. Ani kdybysme dali dohromady armády všech státù z celý planety, nedokázali bychom Zónu znièit. Proto musíme bejt chytøejší, najít pøíèinu, proè Zóna existuje, a odstranit tu. + + + Co když pøíèinu Zóny odstranit nedokážete? + + + No, tak v takovým pøípadì budeme muset vymyslet nìco jinýho. Ale poøád máme nadìji. Musíme se soustøedit na své povinnosti a zùstat optimistiètí. + + + Jak ses dostal k Povinnosti? + + + To je nudnej pøíbìh, ve kterým nefiguruje žádný hrdinství. Jakmile se Zóna objevila, øekli jsme si spolu s mým kámošem Leòou, že se na ni zajdeme podívat. V tý dobì jsem dìlal armádního dùstojníka a Leòa pracoval pro tajnou službu. Mlíko u huby nám teda rozhodnì neteklo, ale i tak jsme se nechali pìknì zøídit. Nìkolik hodin jsme se plahoèili špínou a vlastní krví, než nás našla Povinnost. Já pøežil, Leòa ne. V Zónì jsem nemìl žádný kamarády, a tak už jsem zùstal u Povinnosti. Už od zaèátku mám proti Zónì jistý výhrady. + + + Jak vycházíte se Svobodou? + + + Oficiálnì spolu válèíme, nicménì život ve støedu Zóny se øídí vlastními pravidly. Tady je jenom málo bezpeèných míst a ani Svoboda, ani Povinnost nemá k dispozici dost mužù. Jakej teda má smysl se mezi sebou zabíjet? Proto tu platí nevyøèený pravidlo, že se navzájem nebudeme plést do cesty. Mimo Janov ale tohle pravidlo neplatí: tam zuøí skuteèná válka. + + + Jako bych nic neøekl. + + + Ehm... dobøe. + + + Chtìl bych prohodit pár slov o Pazourkovi. Je ze Svobody. + + + Lidi ze Svobody jsou mi ukradený. Hlavnì když se nám nemotají do cesty. + + + Pazourek, rovnìž známý jako Strakáè, vypekl pár stalkerù ze Zatonu, štípl jim koøist a vytratil se. + + + No a? Vùbec mì to nepøekvapuje, tihle hajzlové ze Svobody jsou schopní všeho. + + + Ještì nìco - v lomu jsem potkal jednoho stalkera. Ještì než umøel, stihl mi øíct, že ho Pazourek nechal vìzet v anomálii, sebral jeho vìci a zdrhnul. + + + Á, tak takovýhle svinstvo mu stalkeøi jen tak nezapomenou... ani ve Svobodì ne. Díky za echo. Však mi už ho vhodnì využijeme. + + + Už na nìj mám dost špíny. Vždy ten kretén je tak vymatlanej, že se tím dokonce otevøenì chlubí! + + + Tímhle Svobodì pìknì podryjeme povìst. Díky za info. Však mi už ho vhodnì využijeme. + + + Kašli na to. + + + No jak myslíš. + + + Mám PDA vašeho zásobovacího dùstojníka Morgana. + + + Souhlas. + + + Budu nad tím uvažovat. + + + Souhlasím. + + + Jasnì + + + Tak se na nìj podívejme... takže ten parchant nás šulil a zastøešoval se naším jménem, hmm? Kdyby se to dostalo ven, naše dobrá povìst je v hajzlu. Co bys øekl na to, že od tebe to PDA vykoupím? Nebudu škudlit, co bys øekl na 4 000? + + + To je ovšem vážnì obvinìní. Ukaž mi to PDA. + + + Tady je. + + + Lhal bych, kdybych tvrdil, že jsem ho nepodezíral... teï mu to ale mùžu øíct do oèí. Díky, stalkere! Doufám, že o tomto rozhovoru se nikdo nikdy nedoslechne. Mám pro tebe drobnou odmìnu - koneckoncù jsi Povinnosti zachránil povìst. + + + Zatím bych si ho rád nechal. + + + A další... velmi zajímavé... pøidám si to do složek. + + + Tu máš. + + + Díky! Drobná odmìna za tvoje starosti... + + + Rád bych si ho nechal na památku. + + + Potkal jsem pár chlapù, co by se chtìli pøidat k Povinnosti. + + + Schopní muži jsou u nás vždycky vítáni. Øekni jim, a se staví za mnou. Nìjak se domluvíme. + + + Akorát taková drobnost... jsou to bývalí èlenové Monolitu. + + + Jak to myslíš, „bývalí“ èlenové? Podle mých zkušeností se lidi z Monolitu dìlí jenom do dvou skupin: aktivní èlenové a mrtví èlenové. O „bývalých“ slyším poprvý. + + + Patrnì je nìkdo myšlenkovì ovládal. Nepamatují si totiž nic, co se jim pøihodilo od chvíle, kdy vyrazili smìr elektrárna Èernobyl. Teï už vùbec nejsou nepøátelští, akorát poøád nevìdí, co si poèít. + + + Tak jestli už nejsou nepøátelští, to rád slyším. Mohl bych jim sehnat nìjakou jednoduchou práci, kterou zvládne i pošuk, a poèkat, než si to dají v hlavì do poøádku. Jenže jsem poøád trochu na vážkách... zaruèíš se mi za nì? + + + Jistì, dùvìøuju jim. + + + Hmm... jenomže já nedùvìøuju tobì... zatím. Nezlob se. + + + Dobøe, ale pamatuj, že jestli nìco poserou, zodpovídáš se mi za nì. V první øadì si ale pøiznejme, že sami se do Janova nedostanou. Vezmeš si teda partu mých chlapù a zavedeš je k tìm Monoliákùm. Oni si je proklepnou a jestli bude všechno v cajku, pøijmeme je do Povinnosti. Dej vìdìt, až budeš chtít vyrazit. + + + Ne, pøíliš jim nevìøím. + + + Do naší frakce nepøijímáme jen tak kohokoliv. + + + Já mùžu jít. Zavedu vaše lidi k tomu družstvu Monolitu. + + + Dobrá. Pošlu s tebou dva chlapy. + + + Fajn. + + + Nechme to na pozdìji. Ještì nìco mám. + + + Poèkej! Ty si dìlej, co chceš, ale já nehodlám svý chlapce vystavovat emisi. + + + Našel jsem PDA zakladatele Povinnosti. Máš o nìj zájem? + + + To se na to povídejme... tak takhle se to odehrálo... ostatní by to ale vìdìt nemuseli. Bude nejlíp, když tohle PDA už nikdo nikdy neuvidí. Jen a legenda o zakladateli Povinnosti zùstane hezky taková, jak je. Prodáš mi to PDA? + + + Vezmi si ho. + + + Díky. Tady máš odmìnu. + + + Zvážím tvou nabídku. + + + Vezmi si to zakladatelovo PDA. + + + Díky! Hodnì jsi mi tím pomohl. Tady máš odmìnu. + + + Potøebuju pár bojovníkù, co by byli ochotni pracovat pro vìdce. Nemáš nìjaké? + + + Vìdcùm vždycky rádi pomùžeme. Co potøebují? + + + Shání nìkoho, kdo by jim bránil bunkr. + + + Dobrá, pošlu tam pár klukù. + + + Dobrá, pošlu tam pár klukù. + + + Rád bych pomohl, ale vìdci už zamìstnávají Svobodu. Kdybychom tam poslali naše družstvo, jenom bychom dál pøilévali olej do již tak divokého ohnì. + + + Chtìl bych vyrazit do Pripjati. Nedal bys mi pro tuhle misi pár støelcù? + + + Máme nedostatek lidí i na vlastní mise! Promluv si s Chodcem - vypadá, jako kdyby se v Povinnosti necítil dvakrát nejlíp, takže se od tebe možná nechá ukecat. + + + Máme nedostatek lidí i na vlastní mise! Pøece nikoho nepošlu na beznadìjnou výpravu. + + + Mluv rychle, vypadni ještì rychleji. Co chceš? + + + Poslouchám. + + + Rád tì vidím živýho. + + + Mám dokumenty z Jupiteru. + + + Pochybuju, že by v nich bylo nìco zajímavýho. Fabrika byla vykradená dávno pøedtím, než se k ní dostali stalkeøi. I když... hmm, tohle jsou ucházející data. Poslyš, rád bych to nìkomu ukázal. Prodal bys mi to? + + + Jo, vezmi si je všechny. + + + Jo, vezmi si ten pøíkaz k evakuaci. + + + Jo, vezmi si zápisy ze schùzí. + + + Jo, vezmi si rozpis zásilek. + + + Jo, vezmi si tu zprávu ze staré opravny. + + + Snad jindy. + + + Nevíš, kdo mi mohl ukrást vìci z osobní skøíòky? + + + Nejsem žádnej hlídaè, co by ti mìl hlídat skøíòku! Mí chlapi ti urèitì nic neštípli. Tak nízko by se nesnížili. + + + Povìz mi nìco o Svobodì. + + + To by bylo dlouhý vyprávìní. Co chceš slyšet? + + + Co tu vlastnì dìláte? + + + Dáváme pozor, aby rùzný papaláši netutlali žádný informace pøed poctivým lidem. Víš, jak vìci chodìj - jakmile se objeví nìjaká nová laboratoø nebo tajný dokumenty, který by mohly osvìtlit taje Zóny, okamžitì se zorganizuje vojenskej výsadek, kterej všechno do posledního smítka vyluxuje. Existuje jedinej zpùsob, jak nìco zjistit - bejt tam první. + + + Co tì pøivedlo do støedu Zóny? + + + No, kluci si to tady chtìli trochu prohlídnout. Ha, dìlám si srandu. Tady se otevírá pøíležitost najít vìci, který svìt ještì nikdy nevidìl. Nepáchla jsem zatím ani armáda ani stalkeøi, takže na každým rohu se dá potkat nìco novýho. + + + Našli už jste nìco? + + + Pár zamèených dveøí a nìkolik divnejch novejch artefaktù. + + + Jak ses dostal ke Svobodì? + + + Kamarádil jsem se s vùdcema Svobody ještì v dobách, kdy žádná Zóna neexistovala. Tenkrát to ještì nebejvali vùdci, ale regulérní hipíci! Když jsem se pak vypravil do Zóny na lov artefaktù a narazil jsem na známý tváøe, øekl jsem si, proè se nepøidat k nìkomu, koho aspoò znám. + + + Co si myslíš o Povinnosti? + + + Jsou to hovada, to si myslím. Co jim to pøelítlo pøes nos, že chtìjí Zónu znièit? Vždy nežere žádný neobnovitelný suroviny, nerozrùstá se, nic... Mohli bysme se tu v klidu vyvalit a studovat Zónu až do skonání vìkù. Pomysli na to, kolik úžasných vìdeckých prùlomù tady ještì èeká. Napøíklad po celou historii lidstva jsme nedokázali pochopit, jak mùže fungovat nìco jako antigravitace. A v Zónì se ti antigravitaèní pøístroje povalujou jen tak po zemi! Vykouøit odsud Povinnost nadobro by bylo super, ale kéž by to bylo tak jednoduchý. Mimochodem, nenech se zmást tím, jak spolu tady v Janovì vycházíme. Ve skuteènosti jsme ve válce... akorát, že Janov jsme prohlásili za neutrální území. Víš, jak to funguje. + + + No nic, kašli na to. + + + Nic se nestalo. + + + Chtìl jsem se poptat na jednoho z tvých stalkerù. + + + Fakt? Tak si posluž. Doufám, že nechceš na nikoho bonzovat. + + + Tvùj stalker Pazourek vystupuje v Zatonu pod jménem Strakáè. Shánìjí se po nìm stalkeøi za to, že je vypekl a oškubal o tvrdì vydøený lup. + + + A to èekáš, že ti to zbaštím? + + + Jenom si poslechni, co se vykládá v baru. Nejdøív podvedl ty stalkery a teï vám lže do oèí. + + + Hele, klid. Zavolám Fousáèovi a uvidím, co a jak. Jestli mi nekecáš, vyøídím si to s Pazourkem po Svobodovsku. + + + Hmm... já jsem se divil, kde ten artefakt splašil tak rychle. To znamená, že pùlka jeho historky byly totální bláboly. Hodím øeè s klukama. Jestli mi nekecáš, vyøídíme si to s Pazourkem po Svobodovsku. + + + Tak dík. + + + Dobøe. + + + Souhlas. + + + Budu o tom uvažovat. + + + Ber. + + + Dobrá. + + + Potkal jsem skupinu bojovníkù, kteøí se chtìjí pøidat ke Svobodì. + + + Výbornì, nový tváøe vždycky vítáme. Jestli jsou dost dobrý, mùžou se pøidat. + + + Je v tom ale drobný háèek - døív patøili k Monolitu. + + + Drobnej háèek? Na èleny Monolitu se nejradši dívám skrz puškohled. Jinej kontakt nepøipadá v úvahu. + + + Tihle jsou neškodní. Ukázalo se, že jim asi nìkdo ovládal myšlenky. Nemapatují si nic, co se jim pøihodilo od chvíle, kdy odešli do Èernobylu. A netuší, co teï mají dìlat. + + + Sorry, ale tomu se mi nechce vìøit. Co když mi zámìrnì lžeš? + + + No, možná by neškodilo si s nima promluvit a zjistit, co jsou zaè. Pošlu s tebou pár mých klukù. Omrknou je a jestli všechno dopadne oukej, nabereme ty tvý Monoliáky do Svobody. + + + Co kdyby sis nasral? Vážnì se mi snažíš nakukat, abysme do Svobody pøijímali takovou verbež? + + + Pøišel jsem ohlednì tìch èlenù Monolitu, co je máte naverbovat. + + + Chlapi mùžou vrazit. + + + Dobøe, tak a jdou za mnou. + + + Až za chvíli. + + + Poèkáme chvilku. Emise nejsou zdravý. + + + Našel jsem PDA zakladatele Povinnosti. Mìl bys zájem? + + + No, pokud na nìm je nìco užiteènýho... No ty vole, to mi poser záda! Poøád Zónu zaplavujou tou svojí prašivou propagandou, ale jak se zdá, jejich minulost je ve skuteènosti plná sraèek. Poslyš, moc rád bych si tohle PDA dùkladnì proèetl. Dobøe ti za nìj zaplatím. + + + Vezmi si ho. + + + Díkes. Tady máš prachy. + + + Nechám si to projít hlavou. + + + Vezmi si to PDA zakladatele Povinnosti. + + + Díkes. Tady máš prachy. + + + Vìdci potøebují naverbovat pár lidí. Nemohl bys jim nìkoho poslat? + + + To záleží, o jakou práci jde. + + + Potøebujou, aby jim nìkdo hlídal bunkr. + + + Jasnì, pošlu tam pár klukù. + + + Jasnì, pošlu tam pár klukù. + + + Milerád bych pomohl, ale pro vìdce už fachá Povinnost. Máme jich plný zuby už tady z Janova, takže zdvoøile odmítneme. Díky. + + + Jdu do Pripjati. Nedal bys mi s sebou nìjaké družstvo? + + + Zeptej se toho novýho rekruta - Chodce. Necítí se tu spokojenì, takže možná líp pochodí s tebou. + + + Mít nìkoho, koho bych mohl postrádat, tak klidnì. Ale nemám, sorry. Máme tu dost vlastních starostí. + + + Tak co mi povíš? + + + Kvùli èemu jsi pøišel? + + + Rád tì vidím, èéèe! Ve Svobodì se o tobì povídají samý dobrý vìci. Co pro tebe mùžu udìlat? + + + V železnièním tunelu jsem našel divný pøedmìt. Nemáš o nìj zájem? + + + Hmm, ne. Je to šmejd. Vypadá to jak artefakt, ale nemá to žádný úèinky. Obvykle tyhle hebly pøenecháváme vìdcùm. + + + V Zatonu jsem našel divný pøedmìt. Nemáš o nìj zájem? + + + Co si s tím jako mám poèít? Já se prakticky nezajímám ani o normální artefakty, rozumíš... Ukaž to vìdcùm, ty za podobný nesmysly dobøe platìj. + + + Sháním lidi, co by byli ochotní hlídat vìdcùm bunkr. Nevíš o nìkom? + + + Neseženeš nikoho lepšího než Svobodu. Pøípadnì by ses mohl zkusit dohodnout se stalkerama, ale tìm se èasto nedá vìøit, ani co by se za nehet vešlo. Když tì podrazej, kde je potom najdeš? A rozhodnì bych nedoporuèoval obrátit na Povinnost. Ti fanatici jsou dobrý leda tak na kosení mutantù a tím to hasne. + + + Sháním lidi, kteøí by provádìli mìøení pro vìdce. Znáš nìkoho? + + + Jasòaèka! Skoè za Lokim, ten ti urèitì pomùže. Tady by ses mohl domluvit s nìkym z øad stalkerù, ale tìm se obèas nedá moc vìøit. + + + Nìkdo mi vykradl skøíòku. Nevíš, kdo to mohl být? + + + Ty vole, kam tohle místo spìje? Pochybuju, že to byl nìkdo z Povinnosti, protože ta má se svých øadách zjednanej pøísnej poøádek. Moc pøísnej na mùj vkus. Ve Svobodì tvojí veteš zas nikdo nepotøebuje, tudíž vina padá na stalkery. + + + Nedávno jsem potkal družstvo Monolitu. + + + Fíha, já na vlastní oèi žádný nevidìl! I když chlapi mi zas vyprávìli nejeden pøíbìh, ze kterýho stydla krev v žilách. Ty Monoliáci jsou prej totální magoøi. Nedali se asi snadno, co? + + + Já jsem s nimi nebojoval, jsou úplnì mírumilovní. Povídali mi, že se cítí, jako kdyby jim nìkdo stáhl pásku z oèí a oni koneènì mohli ovládat své konèetiny. Vùbec netuší, co teï mají dìlat, tak se jim snažím najít místo v nìjaké frakci nebo jiné uplatnìní. + + + Teda, to je mi novina. No, stalkeøi nepøicházejí v úvahu, protože ti by je po pøedchozích zkušenostech s Monolitem asi rovnou odpráskli... Zkus se zeptat Lokiho. Když se navleèou do uniforem Svobody, nikdo jim nezkøiví ani vlásek. + + + Koho by mohly zajímat pravdivé informace o zakladateli Povinnosti? + + + To vážnì nevím. Hodnì záleží, nakolik se tyhle pravdivý informace lišej od oficiálního postoje Povinnosti. Ukaž je Lokimu, ten ti to poví na rovinu. + + + Mám u sebe PDA zásobovacího dùstojníka Povinnosti. Co ty na to? + + + Ani za zlatý prase. Všechen jeho sortiment si dokážu obstarat odjinud za mnohem menší ceny. A tìžko tam bude nìco jinýho, co by mì zaujalo. + + + Kdo by se mnou chtìl vyrazit do Pripjati? + + + Do Pripjati? No páni! Mám chu všechno tu zabalit a zvednout plachty, ale fakt mám fùru práce... + + + Do Pripjati? No páni! Popros Lokiho o pár lidí. Férovýho chlapa jako ty urèitì neodmítne. + + + Pøišel sis odfrknout? Pití nemám nic extra, ale místo je to tu pøíjemný a pøátelský! + + + Mám tu všecièko, co si kdy mùžeš pøát! Co sháníš? Dal by sis nìco na zub, potøebuješ svlažit hrdlo, chtìl by sis trochu zastøílet? + + + Sháním lidi, co by byli ochotní hlídat vìdcùm bunkr. Nevíš o nìkom? + + + Zeptej se stalkerù. Urèitì jsou celí žhaví, až zase budou moct udìlat nìco pro vìdátory. Tím by vlastnì získali oficiální povolení k pobytu v Zónì. + + + Sháním lidi, kteøí by provádìli mìøení pro vìdce. Znáš nìkoho? + + + Radil bych ti, abys to nesvìøoval nezkušeným stalkerùm. Za prvé nic nenajdou a za druhé by se jim taky mohlo nìco ztratit... jestli mi rozumíš. + + + Potkal jsem jedno družstvo Monolitu a rád bych se tì na nìco zeptal. + + + Abych pravdu øekl, kdykoliv potkám nìkoho, kdo narazil na bojovníky Monolitu, v polovinì pøípadù má skvìlý odvìtrávací systém a žádný puls. Ty oproti tomu vypadáš celkem živì. Na co že ses to chtìl zeptat? + + + Tohle družstvo je úplnì jiné. Mluvili se mnou, nemusel jsem s nimi bojovat. + + + Nekecej! + + + Nekecám. Líèili mi, že se cítí, jako kdyby jim právì spadla páska z oèí. Nevìdìli, co mají dìlat, a ptali se mì na radu. + + + V tom pøípadì bych jim radil, aby se vyhýbali stalkerùm, protože ti mají moc dobrou pamì a rozhodnì je nenechají jen tak žít. Možná by jim pomohlo, kdybys jim sehnal místo v jedné z frakcí. Ovšem nevím, jestli od toho Svoboda s Povinností nedají ruce pryè. + + + Mám PDA s informacemi o zakladateli Povinnosti. Nemìl bys o nìj zájem? + + + V drbech já nejedu, a to si pamatuj. Jestli chceš prodávat informace, obra se na Hejkala. Ten se v nich doslova rochní. Ale pøihlédneme-li k tomu, o jaké informace jde, možná by o nì mìli zájem i Loki nebo Šulga. + + + Sehnal jsem PDA zásobovacího dùstojníka Povinnosti. Chceš ho? + + + Cosi mi øíká, že to PDA by mi mohlo zaøídit potíže s Povinností, a o ty nestojím. Zkus to radši u Hejkala. + + + Potøebuju zdravotníka. + + + Tak se na to podívejme... + + + Hned je to lepší. + + + Kdo by chtìl vyrazit do Pripjati? + + + Promluv si s tím stalkerem Vanem. Je to rovnej a férovej chlap a to mu zadìlává na nejeden problém. + + + U nás žádné šílence nemáme, kamaráde, budeš se muset poptat jinde. + + + Sháníš léèiva, nebo sis jen pøišel pokecat? + + + Nìkdo mi ukradl vìci ze skøíòky. Nevíš, kdo to mohl být? + + + Víš, jak se ten stalker jmenuje? + + + Je tady relativnì nový... Jak se jen krucinál jmenoval? Že by Hejl? Ne, poèkat, zaèínalo to na P... Bylo to nìco mrtvého... Pahejl! To je ono! Jmenuje se Pahejl! + + + Jak válíš, kámo? + + + Zdar. Potøebuju s tebou projednat cosi dùležitého. + + + Paráda. Tak to se nejdøív napijeme! Pøece musíme k dùležitým vìcem pøistupovat serióznì! + + + Dobøe, nalej mi. + + + Ne, na chlast nìjak nemám chu. + + + Tak voèemže sis to chtìl pokecat? + + + Chystám se vyrazit do Prijpati podzemním tunelem, co vede zpod Jupiteru. Nitrák mi prý dokáže otevøít vchod. + + + Hmm... jít do Pripjati podzemím. Parádní nápad. To si zaslouží zapít! + + + Na zdraví. + + + Kurva, ta píše. Doufám, že na tu výpravu nechceš jít sám, že ne? Kdepak, to by nešlo... Pùjdu tam s tebou... a budeme potøebovat další spoleènost! Èlovìk nikdy neví, kdy se mu bude hodit pár dùvìryhodnejch kámošù. + + + Nitrák mi doporuèil, abych si sestavil družstvo... + + + Jo, to je suprovej nápad... Tož abysme si pøipili na zdar mise! + + + Až do dna! + + + Hele, ale zvládnul bych i to sám, abys vìdìl... tak tøeba v Zatonu jsem úplnì bez pomoci vyèistil hnízdo upírù... staèilo pár vhodnì narafièených kanystrù. + + + Páni. Respekt, vole. Pøipijeme si na to, abysme poøád mìli po ruce òákej ten kanystr! + + + Ámen! + + + Dùvìryhodných, jo? Tady je tolik šmejdù, až to bolí. V Zatonu jsem potkal obchodníka, ale ukázalo se, že je od Povinnosti... + + + No neke? Tak Povinnost nám hnije zevnitø, jo? Kam to ten svìt dospìl? Hele, radši to spláchneme, abys to pustil z hlavy. + + + Moudrá slova. Na zdraví! + + + Hmm... dobrá, že jo? Družstvo je fajnovej nápad, ale k tomu musíme bejt ještì aspoò tøi. Napadá tì ještì nìkdo? + + + Seženu ještì pár lidí... Taky nesmíme zapomenout na obleky s uzavøeným rozvodem kyslíku. + + + Jasnì, bezpeènost pøedevším... Což mi pøipomíná: o mì nemìj péèi... protože oblek mám parádní. Musíme je ale obstarat ostatním a to nebude prdel. Takový obleky èlovìk nevidí zrovna dennì. Tak na zdárný hledání! + + + Na hledání! + + + Znáš toho podivína, co si øíká Noe? Zamknul se na øíèní bárce se spoustou výbavy... Uvítání si pøedstavuje tak, že po tobì zaène pálit z brokovnice. + + + Jo, toho jsem už òákou dobu nevidìl. Kdysi jsme dìlali spolu. Byl to skvìlej støelec... je fakt ostuda, že to s nim šlo takhle z kopce. Pøipijeme si na nìj a jeho duševní zdraví! + + + Na Noema! + + + Onehdá jsem v Janovì potkal Vana. Zadlužil se banditùm a nedokázal to splatit... No tak jsem mu vypomohl. + + + Super, když se k nám pøidá, cesta nám urèitì uteèe rychlejc! A navíc nám mùže dìlat mezka! Na Vana! + + + Mluvíš mi z duše, kamaráde. + + + U vìdcù v bunkru pøebývá nìjaký voják... nemá nic lepšího na práci, tak by tøeba souhlasil. + + + Jo, zoldát by se hodil. Pøipijeme si na to, aby se k nám pøidal! + + + Tak. + + + Teï nebudeš vìøit vlastním uším. Nedávno jsem pomohl lidem z Monolitu... Koneènì jim totiž vypadly ty klíny z hlavy a oni najednou nevìdìli, co si mají sami poèít. Tak jsem jim pomohl a teï si válejí šunky v Janovì. + + + Hmm... ta vodka ti nìjak rychle nalezla do hlavy, ha ha! Ale co, alkohol v malých dávkách neškodí v libovolným množství. + + + Svatá pravda. + + + Tak. To by mìli bejt všichni. Teï je hlavní, abysme v tom podzemí nezabloudili. + + + Bez obav, sehnal jsem plány. + + + Paráda. Pøipijeme si znova na zdar naší výpravy. + + + Nazdar! + + + Bez obav, kamaráde... Onehdá jsem našel Oázu. Správnì, tu Oázu, do který se nikdo nemohl dostat. + + + Kurva, ty si teda zálesák. S tebou se dostaneme do Pripjati, ani se nestihneme rozkoukat. Na zdraví! + + + Na zdraví! + + + Zdravíèko. + + + Myslím, že už máme dost lidí. Mùžeme jít. + + + Fakticky? Další pár rukou by neuškodil. + + + Fakticky. Jdeme. + + + Máš pravdu. Zkusím najít pár dalších lidí. + + + Sláva! Vyrážíme, panstvo! + + + Pojïte! + + + Støelci jsou jakože fajn, ale nezapomnìl jsi na ochranu? Hehe, tak jsem to nemyslel... Chci øíct, že potøebuješ oblek s uzavøeným rozvodem kyslíku. Tvojí mrtvolu nikam tahat nehodlám - už tak se s kvérem a municí døu jako mezek. + + + Jasnì, zbroj mám. + + + Pøeèkáme to tady. Emise škodí zdraví! + + + Kde by se dali najít bojovníci do party? + + + Poptej se kolem Jupitera... Chlapùm, co zùstali na Zatonu, se do Pripjati urèitì chtít nebude. Potøebujeme borce, který tady nic nedrží... Musejí se ochotnì pøidat k nìèemu, co je - pøiznejme si to - dost zoufalá akce. Nepamatuješ se, že bys nìkoho takovýho potkal? Tøeba je ti kdosi dlužnej nebo znáš nìkoho, kdo se ještì neusadil... + + + Už máme dost lidí. Zas to nemusíme pøehánìt a sestavovat celý batalion. Taktika malých družstev, znáš to. + + + Co si myslíš o Chodci? + + + Typové z Monolitu bejvaj dost fanatický, ukrutný bojovníci... Ale v bejvalejch èlenech se už tak nevyznám. Tulák vypadá zvenèí klidnì, ale zdání mùže klamat. + + + Supr! Zbroj Monolitu. Kdes ji proboha splašil? + + + Mìli akci dva v jednom. Tohle je Tulák, bývalý èlen Monolitu. + + + To jsem netušil, že existujou „bejvalí“ Monoliáci. No, co už. Uvidíme, jak se bude tváøit, až pùjde do tuhýho. + + + Jak ti pøipadá Sokolov? + + + Ten borec nosí interesantní oblek, jakože vìdeckej a tak. Podobnej kousek jsem nevidìl aspoò nìkolik let. + + + To je Sokolov, kopilot z havarovaného vojenského vrtulníku. + + + Podle toho, jak se nese, jsem poznal, že nebude žádnej vìdec. Dobrej voják se vždycky hodí. + + + Jak dlouho se znáš s Vanem? + + + Párkrát jsme zakalili v baru. Je to prej èestnej, optimistickej a vùbec dobrej stalker... Ale nechá si cokoliv nabulíkovat a to je v Zónì fatální chyba. + + + Takže Váòo do toho jde s náma, jo? Bezva, aspoò máme nìkoho, kdo potáhne bágly. Haha, neboj, kámo. To jsem øekl jenom z prdele. + + + Nevíš, kdo mi mohl ukrást vìci z osobní skøíòky? + + + Tebe nìkdo okradl? To nasere. Nevím, co ti na to mám øíct. Nikoho podezøelýho jsem tu nezahlídl... ale kdybych nìco zjistil, urèitì ti dám vìdìt. Nikdo na základnì nestojíme o hady. + + + Slyšel jsem, že se tu nedávno støílelo. + + + Jo, to jsem byl já. Nìkolik idiotù si øeklo, že zachlastají na vìži. Jenomže se tam pohádali, nebo já nevím co, zaèali po sobì hulákat a vùbec. Vystøelil jsem do vzduchu pár ran ze starýho dobrýho kulometu a oni odtáhli k rozvodnì. Tak skonèilo setkání dementù, hehe. + + + Rozhodl jsem se, že vám dám ten artefakt z Oázy. + + + Moudrá volba. Podej mi ho, prosím. + + + Tady je. + + + Úchvatné! Musíme ten div okamžitì prostudovat... A mimochodem, dìkuji ti za tvé služby. Tady máš mzdu. + + + Nepotøebujete s nìèím pomoct? + + + Ne, dìkuji. Už pro nás pracuje jedno družstvo stalkerù. Aèkoliv... existuje taková teorie, pøesnìji øeèeno spíš legenda... slyšel jsi nìkdy o Oáze? + + + Zkusím tu Oázu najít. + + + Nezlobte se, ale teï mám kopu jiných starostí. + + + Ne, neslyšel. + + + Pak tedy poslouchej. Mluví o ní mnoho lidí, ovšem zøejmì nikdo ji doopravdy nevidìl. Funguje podobnì jako léèivé prameny. Když do ní vejdeš, zacelí se ti rány a znovu nabudeš energii. Mezi stalkery koluje spousta historek, jedna neuvìøitelnìjší než druhá... Nìkdo tvrdí, že Oázu spatøil ve snu, avšak já se jako vìdec musím ptát: „Jak jsi poznal, že to byla Oáza?“ Jestli tì to zaujalo, zkus ji najít... Nemùžu ti sice slíbit žádnou tuènou odmìnu, nicménì jestli Oáza opravdu existuje, její objev by popohnal naše výzkumy mílovými kroky vpøed. + + + Našel jsem Oázu. + + + Skuteènì? Ona vážnì existuje? Nemìj mì prosím za skeptika, ale pøinesl jsi s sebou nìjaký dùkaz? + + + Ano. Našel jsem cosi, co pøipomíná artefakt. + + + Podej mi to, rychle! + + + Tu máte. + + + Úchvatné! Musíme ten div okamžitì prostudovat... A mimochodem, dìkuji ti za tvé služby. Tady máš mzdu. + + + Kdepak. Mùže se mi to ještì hodit. + + + To je od tebe ale nadmíru sobecké. Navíc i nebezpeèné. Neznáme pøesné vlastnosti tohoto artefaktu. Co si poèneš, když po probuzení zjistíš, že jsi pøestal cítit nohy? Nebo že ti zelená kùže? Ujišuji tì, že nejlepší místo pro takovéto objekty je v rukou vìdcù. Alespoò se snažíme chránit pøed jejich úèinky. + + + Na mì tyhle výhrùžky nezaberou. Artefakt si nechávám. + + + No dobøe, vezmìte si ho. + + + Nepøinesl. + + + Vùbec nic? A co mám podle tebe zkoumat? Víš, èím se vìdci liší od ostatních lidí? Pøece tím, že my trváme na tom, aby byla každá teorie podložena fakty! Potøebuji dùkaz! + + + Dobøe, vrátím se tam. + + + Tahle práce mì už tak stála dost èasu. Teï se nemùžu vracet. + + + Jestli tì nezajímá nabízený plat, tak pomysli na všechny ty možnosti, které by Oáza otevøela medicínì! Pokud se nepletu, samá podstava Oázy je anomální... je jedním z mnoha projevù Zóny. Je-li tomu tak doopravdy, jde o vùbec první anomálii s léèivými úèinky! + + + Co tì sem pøivádí? + + + Potkal jsi ty žoldáky, kteøí nás brání? + + + Je pøíjemné opìt se shledat s jinou inteligentní bytostí. Jak ti mohu pomoci? + + + Vìøil bys tomu? Nìkdo pøímo pøed naším bunkrem pozabíjel žoldáky, kteøí nás mìli hlídat! + + + Hermanne, víš nìco o Oáze? + + + Oáze? Che! To je èistá a neøedìná lež! Lidi rádi vìøí v univerzální všelék, a tak si vymýšlejí takovéto pohádky. Vìøte mi, Oáza není nic jiného než výplod nìèí nevybouøené fantasie. + + + Mluví o ní hodnì lidí. + + + Podezøele hodnì. Ale nikdo z nich tam osobnì nebyl. Já se držím vìdeckého pøístupu: dokud se o nìèem nedokáže, že to existuje, neexistuje to. + + + Takže výmysl... chápu. + + + Dobrá, jdeme. + + + Bezva. Vrátíme se døív, než bys øekl „upír“. Ha! + + + To se uvidí. + + + Bezva... poèkáme, než pøejde ta emise, a potom vyrazíme. + + + Pøeju pìknej den, stalkere. Jsem nìjakej Strejda Jar... Asi budeš zmoženej z cesty, co? Když už jsi tady, dej si nìco k zakousnutí. Ukázal ses tu v pravou chvíli - potøeboval bych s nìèím píchnout. Ve svým vìku už si nìco sám neobstarám. Jó, to za mlada... + + + Co, už jsi svìží? Nemáš chu na procházku? Pøece pomùžeš starýmu dìdkovi... + + + Jak jde život? Den ode dne vypadáš líp. + + + O jakou práci jde? + + + Je to jednoduchý jako facka. Stavíme se spolu v Kopaèi, to je kousek vocaï. Zbytek pochopíš, až tam budeme. + + + Proè ti nepomùžou kámoši ze Svobody? + + + Nechci je s tím zatìžovat. Tohle zvládneme sami ve dvou, no problemo. + + + Nešel bys se mnou do Pripjati? + + + Kdepak... jó, bejt tak mladší... pamatuju, že jsem chodíval na Sibiø a zpátky. Dneska podnikám jen kratší výlety. Asi už na mì leze stáøí. + + + Mìj se. + + + Poèkej. Jestli máš namíøeno do Janova, co kdybychom šli spolu? Když má èlovìk spoleènost, cesta líp utíká... + + + Díky, ale radši pùjdu sám. + + + Tak na Janov! + + + Dík, žes pomohl starýmu dìdkovi. Vezmi si tohle. A jestli máš nìjakej dotaz, ptej se. Pokusim se odpovìdìt. + + + Proè sis nenechal pomoct od Svobody? + + + Jakej má smysl znepøátelit žoldáky a Svobodu? Jednu válku už na krku máme a ta nám staèí. Jde o mojí osobní záležitost, tak proè je do toho tahat, ne? + + + Co se tu vlastnì stalo? + + + Pár kluèinù mì pøišlo zabít... Byl jsem zrovna zalezlej v køoví a vìnoval jsem se bohulibý èinnosti, když se objevila partièka žoldákù. Jejich velitel žvanil do svýho PDA cosi o ústøední laboratoøi v Pripjati, naléhavej rozkaz, a kdesi cosi... Já debil pak šlápl na vìtvièku a upozornil jsem je na sebe. Popadl jsem pušku a vzal jsem nohy na ramena, ale od tý doby mì pronásleduje pocit, že si pro mì nakonec pøijdou. Taková cena se dneska platí za odposlouchávání. + + + Hlavní je, aby ses nièím nenechal vyvést z míry. Buï tiše a pojï za mnou... Když budeme jako myšky a nebudeme se hejbat, všechno pùjde jako po másle. + + + Chápu. + + + Musíme odsud vypadnout. Vysvìtlím pozdìji. + + + Jasnì. + + + Sestavuju partu, která se mnou pùjde do Pripjati. Nechceš se pøidat? + + + Zní to lákavì, ale ne, díky. Vìdci slíbili, že mi seženou povolenku k pobytu v Zónì a navíc neplatìj špatnì. Nezlob se, ale radši zùstanu tady. + + + Mùžeme vyrazit na mìøení anomálií? + + + My mùžeme kdykoliv, hlavnì když nás budeš krejt. K jaký anomálii jdeme? + + + Pùjdeme na Blata. + + + Vezmeme to kolem Kopaèi k Popelišti. + + + Poèkej, zèistajasna jsem si to rozmyslel. + + + Což o to, my jsme pøipravený. Ale radši bysme mìli poèkat,než pøejde ta emise. + + + Dobøe. + + + Máme namìøeno, pojïte pryè. + + + Mnì se to tu taky nezamlouvá. Kam dál? + + + Na Blata. + + + Vezmeme to kolem Kopaèi k Popelišti. + + + K vìdcùm do bunkru + + + Poèkejte, pøemýšlím. + + + Mùžeme se už vrátit k bunkru? + + + Staèí jenom øíct. + + + V tom pøípadì jdeme. + + + Dobøe, jenom mi dej ještì vteøinku. + + + Mìl bych pár otázek. + + + Ptej se. Jsem jedno velký ucho. + + + To je zatím všechno. + + + Jak pokraèujete s misí pro vìdce? + + + Aha, ty myslíš ten tunel... Je v nìm cosi divnýho, nìjakej cizí artefakt nebo tak nìco. Celý to místo je strašnì divný. Nejdøív jsem byl úplnì v klidu a najednou slyším hlasy v hlavì... Navíc se to tam hemžilo tarbíkama, ale o ty nemìj obavy. S tìma si snadno poradíme. + + + Vy už jste tam byli? + + + Jo, ale nešli jsme daleko. Chtìli jsme namìøit nìco pro Hermanna, když najednou se odkudsi vyvalilo stádo tarbíkù. Vrátili jsme je zpátky a vìdci se zaèali nad našima mìøeníma tak rozplývat, až jsem myslel, že se úplnì rozteèou. Teï po nás chtìjí, abysme prohledali celej tunel odshora až dolù, ale já dovnitø nelezu! Bìž si tam sám, my tì akorát budeme krejt. + + + No jasnì. + + + Nìjak si poradíme, s mìøením už máme zkušenosti. + + + Odkud máte zkušenosti s mìøením? + + + Upøímnì - mìøení je jenom honosný slovo pro obyèejnej kuøinec. Mìøili jsme akorát jednou - anomální pole psí-energie v tom zasraným tunelu. Jakmile jsme tenkrát zapnuli pøístroje, z každý díry se na nás vyvalili tarbíci. Palcát od tama jen tak tak vyváznul v jednom kuse. + + + Nepøišlo vám to zvláštní? + + + Ne, proè by mìlo? Zóna nemá ráda hluk, takže tohle je úplnì normální. Jednou mi to vysvìtloval Ozerskij, mùžeš si to u nìj sám ovìøit. Zeptej se ho na všechno, tøeba ví nìco dalšího, ale pøed náma to tají. + + + Rozumím. + + + Aha. + + + Co øíkáš na ty lidi, kteøí žijí v tom bunkru? + + + Povím ti, to je teda povedená partièka. Dva vìdci - Hermann, to je tam hlavní kápo, a Ozerskij. Zamìstnávají Novikova, kterej se stará o techniku, a Garika jako prùvodce. No a pak ještì nás - najali si nás teprv nedávno, abysme pro nì provádìli mìøení a dìlali jiný vìdátorský nesmysle. Jo a Garik do bunkru pøed pár dnama pøivlekl nìkoho od armády. To už budou všichni. + + + Povìz mi nìco o Hermannovi. + + + Hermann tomu všemu šéfuje. Dìlával profesora v nìjakým institutu, nejspíš tajným... Expedici zorganizoval právì on a nechal si sem dopravit bunkr jen krátce po tom, co nìkdo vypnul Vypalovaè mozkù. To on taky naverboval nás a Garika. Platí dobøe a dokonce slíbil, že nám sežene oficiální povolení ke vstupu do Zóny. + + + Chci se zeptat ještì na nìco dalšího. + + + Povìz mi nìco o Ozerském. + + + Solidní, pøíjemnej chlap a zároveò pravá ruka velkýho papaláše. Èas od èasu si od nìj Hermann nechává radit. Nic víc o nìm ale nevím. My se vìtšinou domlouváme s Hermannem. + + + Povìz mi nìco o Novikovi. + + + Ty vole, to je snad Einstein na dovolený. Kdykoliv je potøeba nainstalovat nìjakou serepetièku, ví pøesnì, co dìlat. Sotva bys našel nìkoho lepšího než jeho. Nevím, odkud se tady vzal, ale poznáš na nìm, že v Zónì není žádný máslo. Ví o ní víc než kdokoliv z nás. + + + Povìz mi nìco o Garikovi. + + + Garik je skvìlej chlap. Byl jeden z vùbec prvních lidí, co sem pøišli. Vykládal mi, že pøišel úplnì ve stejnou chvíli, když tady vysazovali vìdce, a tak se k nim rovnou pøidal. Poslední dobou se zaèíná nudit, protože vysedávání na prdeli už ho nebere. Jenomže nemùže odejít, dokud mu neskonèí smlouva. Jestli tì zajímají podrobnosti, stav se za ním. + + + Povìz mi o tom vojákovi. + + + Che. Garik ho našel, jak utíkal pøed tlupou zombíkù. Mìl kliku, že natrefil zrovna na Garika, protože kdokoliv jinej by ho od pohledu oddìlal. Od tý doby nevychází u bunkru a já se mu vùbec nevidím. + + + Co tu dìlají ti žoldáci? + + + Ti zavšivení hrdloøezové tu hlídají bunkr. Ukázali se tu pøed pár dnama, prohodili pár slov s Hermannem a už tu zùstali. Z Hermanna mám dojem, že z nich taky nemá velkou radost... Jejich velitel si øíká Špína a je to neopakovatelná osobnost. + + + Povìz mi nìco o tìchto konèinách. + + + No, nedaleko odsud je opuštìná vojenská základna... severnì od ní najdeš vesnièku Kopaèi. Když od ní pùjdeš na východ, dojdeš na vlakový nádraží, kde se usadili stalkeøi. Jo a na trati zùstal vìzet starej vlak... ale vìø mi, k nìmu není radno se pøibližovat. + + + Øekni mi nìco o té vojenské základnì. + + + Ale co bych ti povídal... veškerý cennosti už jsou dávno rozkradený, takže dneska tam nezbývá snad nic s výjimkou mutantù a zombíkù. Taky tam mívali malej bunkr - akorát dost velkej na to, abys v nìm pøeèkal emisi. + + + Øekni mi nìco o té vesnici. + + + No, vesnice je trochu silný slovo - zùstalo tam jen pár hald. V šestaosmdesátým zavalili domy zemí, aby z nich neutíkalo záøení. Dneska tam nikdo nechodí, protože to místo je nezdravý a navíc tam není nic cennýho. + + + Øekni mi nìco o tom nádraží. + + + Nemohl bys mi øíct nìco bližšího o tom vlaku? + + + No, jestli jsi na janovským nádraží ještì nebyl, rozhodnì stojí za návštìvu. Mùžeš tam do sebe kopnout pár kouskù, pokecat se stalkerama... plus je to jediný bezpeèný místo široko daleko, když pominu náš bunkr. + + + Koukám, že máš novou výzbroj. + + + A jakou! Ode dneška jsme oficiálnì známí jako vìdeckej výzkumnej tým Jiskra! Ale nemysli si, že teï když se z nás stali vìdci, jsme na tebe zapomnìli. Haha! Obrátil jsem se na „kolegy“ , dlouze jsme o tobì diskutovali a dospìli jsme k závìru... že sis zasloužil tuhle srandu, kamaráde! Až nìkdy nabìhneš do anomálie nebo až tì zaskoèí emise, chraò Bùh, vzpomeò si na nás a pošli nám dìkovný psaní. Rádi si ho pøeèteme, to mi vìø! + + + Nazdar. + + + Zdravím. + + + Mùžeme vyrazit, nebo mám ještì chvíli poèkat? + + + Už jsem myslel, že v tìch tunelech zùstanu jako tupá zombie! Jak se mùžu svýmu zachránci odvdìèit? + + + Nechtìl by sis trochu protáhnout nohy? + + + Zdar, brácho. + + + To ti nezapomeneme. Máš to u nás. + + + Cosi mi øíká, že tady jsme skonèili a že bysme mìli co nejrychlejc vypadnout. + + + Tak co mi o tom tunelu povíš? + + + Není tu vùbec žádnej prach, ani jediný smítko. Hermann tvrdí, že je to kvùli tý Tesle, ale mnì se tomu nechce vìøit. + + + Zeptej se šéfa. Já nevim, co ti smím øíct a co si mám naopak nechat pro sebe. + + + Co jste našli, když jste mìøili to psí pole? + + + Všiml jsem si, že na zemi byly stopy. Vypadaly jako lidský, ale jakej magor by se tady promenádoval bos? + + + Nejdøív se ti zamotá hlava a pak se všechno kolem tebe zaène tak podivnì kroutit. To dìlá to zasraný psi pole. Dokážeš si to pøedstavit? + + + Tak co jsi našel pod zemí? + + + Nic moc, jenom pár mrtvých tarbíkù. + + + Cha... ne že by jich kdekoliv jinde v Zónì byl nedostatek. + + + Není ti nic? + + + Jsem v poøádku, ale jen díky tobì! Jako podìkování ti pošlu jedny souøadnice. Najdeš na nich pár vìci, klidnì si je všechny vezmi. Není toho moc, ale dávám ti to od srdce. + + + Jak ti je? + + + Ty vole, fakt dík! Díky tobì jsem... nevím, co na to øíct. Tady máš souøadnice od naší skrýše. Abys vìdìl, že nejsem nevdìèník. + + + Žiješ? + + + Díky, tohle ti nezapomenu. Na, tohle jsou souøadnice od naší skrýše. Zasloužíš si je. + + + Mozek funguje? + + + Ty vole, co já vidìl, když jsem byl... Celej život si to ponesu s sebou. + + + Takže zpátky do bunkru? + + + Si piš! + + + Tak pojïte. + + + Jdi napøed, já tì doženu. + + + Jsou tví lidi pøipraveni? Mùžeme vyrazit k tunelu? + + + Staèí øíct. + + + Øíkám. Tak jdeme. + + + Poèkejte ještì chvíli. + + + Pùjdu sám. Potkáme se na místì. + + + Pùjdu sám. Potkáme se na místì. + + + Ne. Nevìøíme ti a èas jsou peníze. Buï pùjdeš s náma, nebo zùstáváme tady. + + + V tom pøípadì pùjdeme spoleènì. + + + V tom pøípadì si ještì poèkejte. + + + Ani nápad... bìhem emise ven nelezu. + + + Tak jsme tady. + + + Dáme se do toho? + + + No rozhodnì. + + + Dej mi chvíli, než se rozkoukám. + + + Co po mì kurva chceš? + + + Nic, jenom tak procházím. + + + Tak pokraèuj. + + + Dobøe. + + + Zklidni hormon, debile. + + + Do toho ti nic není! + + + Ech...ahoj... + + + Èipera mi vylíèil, jaká jsi úlisná svinì. Musel už jsi obrat nejednoho stalkera... + + + Co to meleš? Nikdá jsem nic takovýho neprovedl! Èipera to nemá v hlavì v poøádku! + + + Co jsi o mì povìdìl banditùm? Jak to, že na mì èekali v pøístavu pod jeøábem? + + + Musel sis mì s nìkým splést. S banditama já se nepaktuju! + + + Èipera mi o tobì povídal... radím ti, abys mi tu bouchaèku dal dobrovolnì. Obìma nám to usnadníš. + + + Co ti to nakecal? Nemám u sebe nic cizího! + + + Bìž se vyvìtrat, kamaráde... + + + Pomoz mi, brácho. Potøebuju lékárnièku! + + + Nejdøív mi prozraï, kam jsi schoval moje vìci! + + + Je mi to fakt líto, ale potøeboval jsem prachy... Všechno ti povím, hlavnì mi pomoz! Slibuju, že už se to nebude opakovat! Polepšil jsem se! + + + Tak dobøe. + + + Díky, kámo! Ty krámy jsem ukryl do svý skrýše ve stokách. Kus za rozvodnou. + + + Aha. + + + Nevìøím ti. Žádnou lékárnièku nedostaneš. + + + Tu máš. + + + Nic nebude. + + + Díkes. Neèekal jsem, že mi pomùžeš... + + + Koho bych mohl najmout na ochranu vìdcù? + + + Povinnost, koho jiného? Koneckoncù, právì Povinnost má nejlepší bojovníky v celý Zónì! Stráže s tìžkýma zbranìma - hmm? + + + Nezamìstnávají už náhodou Svobodu? V tom pøípadì fakt nevím. Chtìl jsem ti navrhnout Povinnost, ale ta s nima zrovna nevychází. + + + Vìdci potøebují provést pár mìøení. Kdo by se na to dal najmout? + + + Zeptej se Šulgy. Ne že by jeho chlapi byli zrovna výkvìt inteligence, ale pár rozumných hochù se tam najde. + + + Poøád ještì platí Svobodì za ochranu? Jestli jo, ani se nepokoušej najímat Povinnost... A tím jsem prakticky vyèerpal všechny rady. + + + Sotva jsme se dostali k podchodu, výtah pøestal fungovat. + + + Ha, jeli jste totiž na poslední fungující generátor. A ten byl navíc záložní. Bylo štìstí, že jsem ho vùbec nahodil. Pak odvedl svou práci a chcípnul. Mìl bys bejt rád, že vám to nevypnulo v pùlce cesty. Ten výtah nemìl žádnej nouzovej východ! + + + Nevíš, kdo mi mohl ukrást vìci z osobní skøíòky? + + + Co já vím, sakra! K tomu ti mùžu akorát øíct, že kdyby v Janovì šéfoval Šulga, nikdy by se to stát nemohlo. + + + Dokážeš se vlámat do ocelového kontejneru? + + + Hele, nejsem žádnej kasaø. Na kovy mì neužije... Ale až tì bude trápit elektronika, staèí zavolat. + + + Skupinka bezproblémových èlenù Monolitu hledá nový domov. Kdo by jim mohl pomoct? + + + Dìláš si srandu? Ti lidi jsou prej zvíøata... No, stalkeøi je rozhodnì neuvítají s otevøenou náruèí. Nejspíš by ses mìl obrátit na Šulgu. Když podplukovník rozhodne, že se mùžou pøidat k Povinnosti, nikdo se jich ani nedotkne. Možná by se pro nì našla i nìjaká práce. + + + Dokážeš rozšifrovat èernou skøíòku? + + + Mrknu se na to... tak tohle bude fuška. Potrvá mi to odhadem tøi hodiny a pøijde tì to draho. Nejdøív to vyøeším a pak se domluvíme na podrobnostech. Bìž zatím nìkam pryè, a se mùžu soustøedit. + + + Mrknu se na to... tak tohle bude fuška. Potrvá mi to odhadem tøi hodiny a pøijde tì to draho. Nejdøív to vyøeším a pak se domluvíme na podrobnostech. Mohl bys mi mezitím sehnat potøebný souèástky? Vydìláš si pár babek a navíc ti dám slevu. + + + Co zas? Ještì poøád na tom dìlám. Krucinál, ta èerná skøíòka je zlej sen... + + + Už jsem si s tou skøíòkou poradil. Ale byla to sviòská práce, to mi vìø... + + + Co jsem dlužen? + + + Minimálnì tøi tácy. + + + Tu máš. + + + Tolik nemám. + + + No, kdybys mi sehnal pár souèástek, dám ti slevu. + + + Dìkuji, pøijïte zas. + + + To mi pøipadá dost drahé. Ještì si to rozmyslím. + + + Dám ti slevu. Staèí mi 2850,-. + + + Dám ti slevu. Staèí mi 2700,-. + + + Dám ti slevu. Staèí mi 2550,-. + + + Dám ti slevu. Staèí mi 2400,-. + + + Dám ti slevu. Staèí mi 2250,-. + + + Dám ti velkou slevu. Staèí mi 2100,-. + + + Dám ti slevu. Staèí mi 1950,-. + + + Dám ti slevu. Staèí mi 1800,-. + + + Udìlám ti jedineènou cenu. Pouhých 1650,-. + + + He he, samozøejmì nevím, co s tou nahrávkou hodláš dìlat, ale doufám, že ti to za takovou pálku stojí. + + + To nech na mnì. + + + Poøád na tý èerný skøíòce makám... Co kdybys byl užiteènej a pøinesl mi ty souèástky? + + + Myslíš Seòka? Když jsem se jednou vracel pøes Zaton, nasáèkoval se ke mnì a už se mnou zùstal... Je to profesionální ožrala s letitýma zkušenostma... cha! Pøíležitostnì mi dìlá poslíèka. + + + Koho by mohly zajímat informace o zakladateli Povinnosti? + + + Šulgu, jak jinak... Povinnost si na svý dìjiny potrpí. Víš, co se øíká: peèlivì studuj historii, protože se opakuje v kruzích. Nejdùležitìjší je, aby se tyhle informace nedostaly do pracek Svobody, protože ta by je bezpochyby pøekroutila k obrazu svýmu. Ne kvùli nepøejícnosti, ale kvùli slabý pamìti... + + + Pøinesl jsem ti to náøadí. + + + Supr... a který pro mì máš? + + + To na základní práce. + + + Paráda! Teï už potøebuju jenom náøadí na jemnou práci a kalibrování. + + + To na jemnou práci. + + + Paráda! Teï už potøebuju jenom náøadí na základní práce a kalibrování. + + + To na kalibrování. + + + Paráda! Teï už potøebuju jenom náøadí na základní práce a taky nìco na jemnìjší prácièky. + + + Zatím žádné. + + + Bezva! Už jenom kalibraèní náøadí a mám vystaráno. + + + Bezva! Už jenom náøadí na jemnou práci a mám vystaráno. + + + Bezva! Už jenom náøadí na základní práce a mám vystaráno. + + + No sakra! Kdes to všechno splašil? + + + Kdybys potøeboval náøadí, mùžu ti ho sehnat. + + + To bys byl moc hodnej. V tuhle chvíli si pøipadám jak v dobì kamenný. Jedinej rozdíl je v tom, že místo šamanský hole mám pájeèku... kdybych mìl poøádný náøadí, mohl bych se pustit i do kvalitních vylepšení. A pro tebe by z toho urèitì taky nìco káplo. + + + Dobøe, podívám se po nìm. + + + Rozmyslel jsem si to. + + + Dobrej nápad. Já budu moct dìlat vylepšení a ty si pøivydìláš. + + + Mám PDA toho obchodníka z Povinnosti. Kdo by o nìj mohl mít zájem? + + + Obchodníka z Povinnosti? Nekecej... Dej to PDA Šulgovi, on už si to nìjak poøeší. Ale Svobodì ani muk, kapišto? Staèí, když se dozvìdìj o jediným kreténovi, a zneužijou to k pošpinìní celý frakce. + + + Našel jsem pár dokumentù. Popisuje se v nich cesta do Pripjati. + + + Tak ukaž... jo, jo, aha... Takže když to shrnu, existuje podzemní prùchod nadepsanej Pripja 1, kterej se táhne pod celou Pripjatí. Z jednoho konce vyúsuje zamèenou pøepážkou v pøepravním oddìlení Jupiteru. No to mì poser! Podle textu se zdá, že ten podchod uzamkli, napustili plynem a odstøihli od nìj proud. Mohl bych se pokusit nahodit starej generátor a deaktivovat zámek. Jenomže... + + + Jenomže já do Jupiteru nevlezu bez ochrannýho odìvu. Tobì bych doporuèoval, abys ani nepomyslel na to, že bys do toho podzemí mohl jít sám. Budeš si s sebou muset vzít aspoò pár kámošù. Všichni budete potøebovat obleky s uzavøenými rozvody kyslíku, protože jinak tam dole nepøežijete ani pár vteøin... Poslouchej, ve vìži nedaleko odsud bydlí týpek jménem Zulus. Zkus se s ním domluvit. Jestli mu padneš do oka, mohl by ti pomoct se sestavováním družstva. + + + Mluvil jsi o materiálech... + + + Jo, jasnì. Tady je skoro nemožný sehnat materiály, který potøebuju k práci s rádiovou technikou. Spotøeboval už jsem všechno, co jsem dokázal vyhrabat, a další zásoby tady nikdo nerozváží, protože víc penìz se dá vydìlat prodejem zbraní... Slyšel jsem ale, že možná nìco zùstalo na cementárnì. + + + Mám ty materiály, vezmi si je. Prohledal jsem celou cementárnu odshora dolù! + + + No teda, ty mì udivuješ! Povìsím si sem lísteèek: odteï mi, coby mùj oblíbenec, neplatíš za práci na opravách ani vylepšeních! + + + Povedlo se mi najít pár tìch materiálù. Tady je máš. + + + Páni! Právì sis zasloužil tunu slev, kamaráde! + + + Zkusím ti ty materiály sehnat. + + + To by bylo skvìlý! Kdybys našel nìco jako kalafunu nebo kondenzátory, pøines mi to... byl bych sakra vdìènej i za trochu textolitu. Nemùžu ti naslibovat hory penìz, ale rozhodnì u mì dostaneš slevu. + + + K èemu ty materiály potøebuješ? + + + Pracuju sice s bouchaèkama a jinou výstrojí... Èlovìk si musí nìjak vydìlávat na chleba, he he... Ale v srdci jsem radioamatér. Znáš ten pocit, kdy seskládáš rùzný souèástky dohromady a ono to zaène fungovat? Vzpomínám si, jak jsem jednou smontoval rušièku. Byla vážnì užiteèná, zapínal jsem jí vždycky, když jsem nemohl usnout kvùli hlášením z baru. + + + Co by dìlaly souèástky k rádiu v cementárnì? + + + Cementárna je jenom taková pøezdívka... cement se tam pøestal vyrábìt dávno pøed havárií Èernobylu. Vyházeli odtamtud, co se dalo, a ve vyklizených halách zaèali montovat elektrický spotøebièe. + + + V Jupiteru jsem našel pár dokumentù. Chceš se na nì mrknout? + + + Tak... nevidím nic zajímavýho. Samý úøednický bláboly. + + + Hmm... sem tam se najde nìjaká zajímavost, ale nedokážu z toho nic vyèíst. Potøebovali bychom kompletní informace. Zajdi se podívat na místa, o kterých se tam píše. + + + Už bych fakt potøeboval òáký materiály. Vždy takhle se nedá pracovat! ... Á, nazdar. Co si pøeješ? + + + Zdravím! Sháníš se po technikovi? Nemám tady sice skoro žádný materiály, ale poøád ti dovedu spravit vybavení a provést pár základních vylepšení. + + + Tak hele, poslouchej. Napadlo mì, že... všechny materiály, který bych potøeboval, jsou urèitì v cementárnì a akorát tam chytají prach. Kdykoliv na to pomyslím, mám chu vyskoèit z kùže. + + + Zdar! Rozbilo se ti nìco, nebo sis našetøil pár chechtákù na vylepšení? Nezapomeò, že u mì máš doživotní slevu! + + + Zdravíèko, kamaráde. Jak ti mùžu pomoct? Nezapomeò, že ti vždycky udìlám krásnou cenu. + + + Umìl bys odblokovat pamìový modul? + + + Snad jo... ještì nikdy jsem to nezkoušel, takže budu potøebovat aspoò tøi hoïky. Ale milerád se o to pokusím. Když to vezmu kol a kolem, udìlám ti dobrou cenu. Pouhou tisícovku. + + + Rád si poèkám, takže si plácneme! + + + Super! Hned se dám to práce a ty si zatím odpoèiò. Dám ti vìdìt, až skonèím. + + + Tolik u sebe nemám. + + + No kdyby sis to rozmyslel, tak se vra. Ale za míò penìz ti to neudìlám. + + + Ještì si to rozmyslím. + + + Øíkal jsem ti, že na to budu potøebovat tak tøi hodiny. Tisícovka je dobrá cena. Bejt tebou, tak to beru. + + + Povedlo se odblokovat ten modul? + + + Ne, poøád na tom dìlám. Nemìj strach, jakmile skonèím, dám ti vìdìt. + + + Copak? Tys ten modul nedostal? Posílal jsem Seòku, aby ti ho donesl - asi jste se museli minout cestou. Ale o nic jsi nepøišel. Když pominu údaje o hloubce zeminy a hustotì vegetaèního pokryvu, byly tam už jenom souøadnice tøí vysílaèù. Pøepošlu ti je na PDA. + + + Zkoušel jsi ty chiméry najít? + + + Ta zranìná vyrazila k Zatonu. Gontova skupinka jí je v patách... ale prej že by jim neuškodilo, kdyby s nima šel i zkušenej lovec. Kdybys jim skoèil píchnout, urèitì bych se ti nìjak odvdìèil... Ta druhá, teda ta, co zabila Lišáka... no, tak tu jsem ztratil. Doèista se vypaøila. Chudák Lišák, byl to dobrej chlap... Asi už se na nìm ale podepisovalo stáøí. + + + No, s tou zranìnou ses vypoøádal ty. Ta druhá, teda ta, co zabila Lišáka... no, tak tu jsem ztratil. Doèista se vypaøila. Chudák Lišák, byl to dobrej chlap... Asi už se na nìm ale podepisovalo stáøí. + + + Èím se živíš? + + + Jsem lovec a donedávna jsem ještì lovil mutanty, kteøí by mohli ohrožovat stalkery. Dneska už jenom pøijímám rozkazy a pøedávám je mladším lovcùm. Taky je cvièím a uèím je taktiky lovu. + + + Povìz mi nìco o lovu mutantù. + + + Na každýho mutanta se musí trochu jinak. Jedna taktika platí na bjurery a poltergeisty, úplnì jiná platí na kontrolory. A chiméry jsou úplnì speciální pøíklad. + + + Povìz mi nìco o bjurerech. + + + Takovej bjurer útoèí pomocí gravitace... když se k nim pøiblížíš, odpálkuje tì a když jsi od nìho dost daleko, zaène po tobì házet vìci. Ideální je držet si ho tak na støední vzdálenost a hlavnì nezastavovat, leda bys mìl abnormální touhu dostat nìèím tìžkým po palici. Dávej si pozor a zbyteènì se neužeò! Bjureøi dokážou soustøedit gravitaèní impulsy a s jejich pomocí ti zkusí vyrvat zbraò z ruky. Když budeš zesláblej, nemusel bys ji udržet. + + + Povìz mi nìco o poltergeistech. + + + Existujou dva typy poltergeistù. Ten první po nepøíteli vrhá pomocí gravitace pøedmìty,oproti tomu ten druhej pracuje s ohnìm a snaží se svý obìti upálit zaživa. Nezkušení lovci se kolem nich snažej klièkovat a vyhejbat se jejich útokùm... Fígl ale spoèívá v tom, že poltergeisti vidí a slyší trochu jinak, než jsme zvyklí. Oni se totiž orientujou pomocí gravitaèního pole a cítí, kdykoliv se v nìm nìjaká vìc pohybuje. Když tohle víš, mùžeš to využít ve svùj prospìch. Zkušenej lovec, jakmile uvidí poltergeista, okamžitì ztuhne. Vystøelí a zase ztuhne. Vystøelí, ztuhne... a tak dál až do haleluja. + + + Povìz mi nìco o kontrolorech. + + + Kontroloøi proti tobì použijou tvojí vlastní hlavu. Až budeš nìjakýho lovit, je podstatný neustále se krýt. Když tì nevidí, nedokáže ti totiž napadnout myšlenky. Navíc jsou celkem pomalí, takže až pùjde do tuhýho, nasaï granáty. + + + Povìz mi nìco o chimérách. + + + To jsou velmi nebezpeèní noèní dravci. Pod rouškou temnoty se tì pokusí dostat za prdel a potom na tebe hupsnou zezadu. Proto když víš, že po vás jde chiméra, neustále se otáèej a krej záda svým kámošùm. + + + Povìz mi nìco o pseudoobrech. + + + Nejtìžší vìc na lovu pseudoobrù je prostì je zabít. Ty bestie dokážou schytat nehorázný množství ran, aniž by je to jakkoliv rozhodilo! Napadá mì snad jen to, že na blízko se proti nim vyplatí brokovnice. Hlavnì pamatuj, že pseudoobr dokáže jedinou ranou urvat ze zemì cokoliv, co není zalitý betonem. Útoè vždycky z vrchu... a pohlídej si, abys stál na nìèem, co se nedá tak snadno rozbít. + + + Ale nic, kašli na to. + + + Proè už nechodíš lovit? + + + Už stárnu, èlovìèe. Pøesnì kvùli tomu umøel i Lišák... to byl mùj parák a kámoš. Spoleènì jsme skolili nejednu potvoru, bok po boku. Pak jsme jednou v Zatonu narazili na dvì chiméry, což je zvíøe, který v Zónì už osmnáct mìsícù nikdo nevidìl. Jedna strhla Lišáka k zemi døív, než jsem vùbec stihl vytasit brokovnici. Když jsem pak tu druhou zranil, obì utekly... doufám, že za tohle pøijdou do pekla! + + + Nevíš, kdo mi mohl ukrást vìci z osobní skøíòky? + + + Hmm... to fakt netuším... Mezi lovcema se nám takový vìci nestávají. Zato když nìkoho poøádnì nasereš, mùžeš zjistit, že zaèíná šetøit municí zrovna ve chvíli, kdy ti na záda dejchá krvežiznivej upír. + + + Zoufalá doba si žádá zoufalý opatøení... Soudì podle toho, co vím o upírech, øekl bych, že nìkolik z nich nebylo doma, protože zrovna lovili. Ale když teï nemají žádnej bezpeènej pelech, kam by se mohli vrátit, už by stalkery nemìli otravovat. + + + Nemìl bys ještì nìjakou práci? + + + Jistì. Pøed pár dny se skupinka stalkerù vydala do tunelù severnì od fabriky a narazila tam na doupì mutantù. Všichni mìli tak nahnáno, že mi ani nedokázali popsat, co za mutanty to bylo. Pravda ale je, že dva stalkeøi se odtamtud už živí nedostali. Když se vrátili zpátky do Janova, všichni zaèali vyšilovat a vyhlásili odmìnu 5000 rublù pro kohokoliv, kdo se sebere a to doupì vyèistí. Je to ale nebezpeèná práce, tak se rozhodni sám. Pùjdeš do toho? + + + Pùjdu. + + + Jsi stateènej chlap. Hodnì štìstí, budeš ho potøebovat. + + + Zatím ne. + + + Nedivím se ti. Pochybuju, že by si vùbec nìkdo troufl na celý hnízdo mutantù. + + + Tu samou, co pøedtím. Blíže nespecifikovaní mutanti v tunelech severnì od Jupiteru. Odmìna 5000. Tak nakonec do toho pùjdeš? + + + Stalkeøi se momentálnì obávají tìch mutantù, co se uhnízdili v tunelech. + + + Ti mutanti z tunelù byli zmutovaní trpaslíci. Teï jsou to mrtví zmutovaní trpaslíci. + + + Hádal bych, že šlo o bjurery. To by vysvìtlovalo, proè si z toho v Janovì všichni nasrali do gatí... No ale jestli už je stejnì po nich, zasloužíš si odmìnu. + + + Hádal bych, že šlo o bjurery. Ty, co nedávno odrovnali dva stalkery. To by vysvìtlovalo, proè na jejich hlavy lidi z Janova vypsali odmìnu... No ale jestli už je stejnì po nich, zasloužíš si odmìnu. + + + Mùžu se pustit do té chiméry. + + + Výbornì. Ten lovec, co tu sviòu zahlídl, se s ní potkal za setmìní. Mìla namíøeno k ventilaènímu komplexu. Chiméry jsou noèní, teritoriální dravci, takže je pravdìpodobný, že zrovna šla na svý lovištì... Doporuèoval bych ti poèkat, než padne tma, a pak jí hledat právì tam. Na druhou stranu je pravda, že ve tmì jsou chiméry aktivnìjší. Dávej si bacha a lovu zdar! + + + Chiméra to má za sebou. + + + Dìkuju... dìkuju! Pomstil jsi Lišáka a já si koneènì mùžu spokojenì vydechnout. Vezmi si tyhle prachy, zasloužíš si je. Jo a ještì nìco... tady máš mojí brokovnici. Tys mi daroval nìco mnohem dùležitìjšího - po dlouhý dobì klid. + + + Jsem Pastièkáø. Ty se mi pøedstavovat nemusíš. + + + Co tì sem pøivádí? + + + Dík, že ses stavil. Sháním spolehlivýho, zkušenýho lovce a v Janovì sotva seženu nìkoho lepšího než tebe. Nemùžu tu chiméru nechat znovu utéct. Ne po tom všem, co se stalo... Dám ti za to všechny svý úspory: 10 000 rublù. Chci ale, aby sis dál poøádnì záležet. Musíme pomstít Lišáka! + + + Na kolenou tì prosím, abys tu chiméru oddìlal. Jestli ti je jedno, že ta bestie sužuje Janov, udìlej to aspoò pro peníze... 10 000 je solidní mìní. + + + Jak to vypadá s tou chimérou? Èas hraje proti nám, kdykoliv se mùže sebrat a odejít do nových loviš. + + + Rád tì vidím! Co novýho? + + + Nemáš pro mì nìjakou práci? + + + Ale jasnì... Na Blatech za cementárnou byla spatøena skupina bažinných upírù. Prozatím se zdá, že nevycházejí z bažiny. Ale místní stalkeøi by se chtìli ujistit, že odtama už nikdy nevylezou... jestli mi rozumíš. Odmìna za celou skupinu jsou 3 000. Co na to øíkáš? + + + Jdu do toho. + + + Super. Šastnej lov. + + + Teï ne. + + + Tvoje volba... Dokud si tu práci nevezmou jiní lovci, poøád si to ještì mùžeš rozmyslet. + + + Poøád tu samou... myslím tu skupinu upírù na Blatech za cementárnou. Odmìna 3000. Jdeš do toho? + + + V tuhle chvíli nemám nic jinýho než ty upíry na Blatech. + + + Pobil jsem ty upíry z bažin. + + + Koneènì si stalkeøi trochu vydechnou. Tady máš dohodnutou odmìnu. + + + Bezva. Zdejší stalkeøi budou mít radost, že se zbavili nežádoucích sousedù. Dokonce se pro tebe složili na odmìnu, pøesnì to jsou 3000. Tu máš, vezmi si je. + + + Zabili jsme s Gontou tu zatonskou chiméru. + + + Tisíceré díky. Èím míò se tu tìch bestií toulá, tím líp pro nás pro všechny. Kdybys tak ještì mohl vystopovat tu druhou... + + + Díky, žes vyøídil i tu druhou potvoru. Je uklidòující vìdìt, že už chiméry nemùžou pøipravit o život dalšího stalkera. + + + Vysvìtli mi, jak jsi zabil toho kontrolora. + + + Poslouchej a uè se, kamaráde, poslouchej a uè se... jdu si takhle do svý skrýše, abych si vyzvedl pár vìcí, a najednou zmerèím, že pøímo na ní si vysedává kontrolor. Popadnu teda kovovej poklop, kterej se válel na zemi, a kryju si s ním hlavu, zatímco se plížím k tý potvoøe. Než se stihl probrat a rozkoukat, už jsem mu do hlavy vyprázdnil polovièku zásobníku. On se nasere a pokusí se mi ovládnout myšlenky, ale já ho pøetáhnu pažbou pušky a tím ho koneènì dorazím. + + + Vyprávìj mi o tìch artefaktech v lomu. + + + Cha! Nevím, co bych ti povídal, protože teï v lomu zùstalo leda tak velký hovno. Nemá smysl hledat anomálie tam, kam už se díval Pazourek, to pøece každej ví. + + + Takže jsi to byl ty, kdo nechal v lomu kámoše umøít v anomálii? + + + Cože? + + + Nic mi nedokážeš. A hlavnì meleš píèoviny... tvoje slovo proti slovu èlena Svobody. Tady nepochodíš. + + + To se ještì uvidí. + + + Ne, nic. + + + Díky, mìj se. + + + Vyprávìj mi o tìch upírech ze Zatonu. + + + Když jsem byl v Zatonu, upíøi tam stalkerùm pekelnì znepøíjemòovali život. Stalkeøi je rubali ve dne v noci, ale k nièemu to nevedlo. Rozhodl jsem se, že jim taky píchnu, a tak jsem popadl svojí broknu a nabìhl jsem pøímo do hnízda tìch sviní. Staèila krátká veselka a zatonskej problém s upírama byl vyøešen. + + + Vsadil bych se, že ani nevíš, kde to hnízdo bylo. + + + Vodpal. + + + Co tu zas chceš! Bìž si valit sraèky do hlavy nìkomu jinýmu! + + + Mìl by ses jít provìtrat, kámo. Tvoje slovo proti slovu èlena Svobody. Tady nepochodíš. + + + To se ještì uvidí. + + + Díky, mìj se. + + + Mùžeš mi povìdìt ten pøíbìh o zkratce do Jupiteru? + + + Asi takhle... prùvodce døív chodil ze Zatonu pøíšernou zacházkou. Já jsem si øekl, že pùjdu rovnì... a tak jsem šel. Voèekoval jsem pár míst a než bys øekl švec, mìl jsem najitou cestu mezi anomáliema. Svý info jsem pak prodal prùvodci a on teï všechny vodí mou cestou. + + + Co kdybysme se Navigátora zeptali, od koho ty mapy koupil? + + + Vodpal. + + + Co tu zas chceš! Bìž si valit sraèky do hlavy nìkomu jinýmu! + + + Dokážeš mi velký kulový! Tvoje slovo proti slovu èlena Svobody. Tady nepochodíš. + + + To se ještì uvidí. + + + Díky, mìj se. + + + Povìz mi o tom výletu do Oázy. + + + Byl jsem první èlovìk, co kdy vidìl Oázu. Neni tam jedinej mutant ani anomálka - jenom klídeèek a pohodièka, totální relax. Artefaktù jak nasráno, staèí si jenom napìchovat kapsy a vyrazit k domovu. + + + To jsou žvásty! Já jsem v Oáze byl a vypadá to tam úplnì jinak! + + + Vodpal. + + + Co tu zas chceš! Bìž si valit sraèky do hlavy nìkomu jinýmu! + + + Hele, nepièuj. Tvoje slovo proti slovu èlena Svobody. Tady nepochodíš. + + + To se ještì uvidí. + + + Díky, mìj se. + + + Povídej mi, jak jsi pracoval pro vìdce. + + + To jsem se takhle jednou zastavil v bunkru. Byli ze mì radostí bez sebe a povídají: „Pazourku, tebe nám pøináší samo nebe!“ Nakonec z nich vylezlo, že jenom potøebujou nastrkat pøístroje do nìkolika anomálií. Já na to: „Simvás, to je hraèka!“ Udìlal jsem všechno, pøesnì jak si pøáli. Nejtìžší na tom bylo vymlátit z tìch brejlounù slíbený prachy. + + + Pøestaò si pøisvojovat cizí zásluhy! To jsem byl já, ne ty! + + + Vodpal. + + + Co tu zas chceš! Bìž si valit sraèky do hlavy nìkomu jinýmu! + + + Kecy... nemùžeš nic dokázat. Tvoje slovo proti slovu èlena Svobody. Tady nepochodíš. + + + To se ještì uvidí. + + + Díky, mìj se. + + + Zdráves. Taky sis pøišel poslechnout o mejch zážitkách? + + + Chceš se na nìco zeptat? + + + Co chceš? + + + Ty vole... kurva... já umírám... + + + Tady máš lékárnièku. + + + Díky, kámo... ale to nepomùže... Poslouchej... Pøišel jsem s chlapem se Svobody... našli jsme artefakt... cestou zpátky jsem vlezl do plynový anomálie... Kdyby mi pomohl, mohl jsem to pøežít... ale... on sebral artefakt a mì nechal ležet... Tvrdil, že bìží pro pomoc... Najdi ho... Chci, aby všichni vìdìli... že se mu nedá vìøit... + + + Najdu ho. + + + Pochybuju, že bych mu nìco mohl dokázat. + + + Chytni mì kolem ramen, odvedu tì k doktorovi. + + + Stane se. Sbohem. + + + Nìco tu pro tebe mám... + + + Mám masovou kulièku. Tady je. + + + Díky. Vìdci platí dobøe, ale mì víc zajímá povolenka. + + + Tisícerý díky, kamaráde! Teï koneènì mùžu vyrazit do Pripjati. Teï už jenom vymyslet, kudy se tam dostanu. + + + Koblížek. Tady ho máš. + + + Díky. Vìdci platí dobøe, ale mì víc zajímá povolenka. + + + Tisícerý díky, kamaráde! Teï koneènì mùžu vyrazit do Pripjati. Teï už jenom vymyslet, kudy se tam dostanu. + + + Tady máš masovou kulièku a koblížek. Ber. + + + Tisícerý díky, kamaráde! Teï koneènì mùžu vyrazit do Pripjati. Teï už jenom vymyslet, kudy se tam dostanu. + + + Nic. + + + Nenudíš se tady? + + + Zmínil ses o své smlouvì... + + + No, upsal jsem se, že budu pro vìdce dìlat všelijaký práce, v domnìní, že to bude snadný. Bohužel jsem si už nevšiml, že smlouva vyprší teprve ve chvíli, kdy bude všechna práce hotová. Vìdci mi slíbili, že mi na konci dají oficiální povolení k pobytu v Zónì. + + + Splnil jsem každièkou zasranou položku smlouvy až na jedinou drobnost. Musím najít všechny existující chemický anomálie. Kdo mìl tušit, že se tady v okolí nedají sehnat Fláky masa ani Koblížky? Mít tak tyhle dva artefakty, už dávno jsem mohl mašírovat na Pripja. Ale já je nemám! + + + Tøeba bych ti s tìmi artefakty mohl pomoct. + + + Škoda. + + + Jasnì... Masová kulièka a Koblížek. Pripja volá! + + + Co je na Pripjati tak zvláštního? + + + Nikdo neví, jak se tam dostat. Mysli na to, že jsme v Zónì, takže to nemùžeš jen tak støihnout vzdušnou èarou. Povídá se, že je to hotová studnice pokladù. Vùbec kolem Pripjati koluje tolik historek, že se tam chci podívat už jenom kvùli tomu. + + + Dávám dohromady lidi, co se mnou pùjdou do Pripjati. Pøidáš se k nám? + + + Abych pravdu øekl, taky už jsem uvažoval, že bych tam vyrazil. Ale chtìl bych jít sám. Nic ve zlým... jsem prostì zvyklej pracovat na vlastní pìst. + + + Cha! Shodou okolností se tam taky co nevidìt chystám... Ale chtìl bych jít sám. Nic ve zlým... jsem prostì zvyklej pracovat na vlastní pìst. + + + Vítej v paláci nudy. + + + Ty vole, jak já bych chtìl do Pripjati! + + + Staèí jenom vymyslet, kudy se do Pripjati dostanu, a budu tam rychle jako vítr! + + + Tady je fajn. Pøesnì takhle se má život žít! + + + Je tu bezpeèno, to se nedá upøít. Ale kéž by tu nebyla taková nuda! + + + S tìmi artefakty bych ti mohl pomoct. + + + Opravdu znáš cestu do Pripjati? + + + Neznám. Ale to mìsto je plný artefaktù a já už tam nìjakou cestu najdu. Jsem pøece prùzkumník jako žádnej jinej... Byl jsem jeden z prvních, co našli cestu k Jupiteru. Ale ze zásady pracuju sólo. Nemám èas krejt záda nìkomu dalšímu. + + + Zavedeš mì do Jupiteru? + + + Jasan. Mùžeme vyrazit? + + + Jo. + + + Ještì ne. + + + Ne bìhem emise. + + + Zavedeš mì do Pripjati? + + + Za 5000 bych si dal øíct. Mám to tam rád! + + + Dohodnuto. + + + Ne, díky. + + + Jak myslíš, tvoje volba. + + + Nemám u sebe dost hotovosti. + + + Za 5000 bych si dal øíct. Jenom poèkej, než se pøežene ta emise. + + + Mùžeš mì zavést do Zatonu? + + + Kdepak - tam je dìsná nuda. Zeptej se támhle Navigátora, ten se stará o bezpeèný, ale únavný zakázky. + + + No... já tì mùžu zavést do Janova a za 3000 navíc domluvím s Navigátorem, aby tì vzal do Zatonu. Co ty na to? + + + Souhlas. + + + Ne. + + + Tvoje rozhodnutí. + + + Nemám dost hotovosti. + + + No... já tì mùžu zavést do Janova a za 1000 navíc domluvím s Navigátorem, aby tì vzal do Zatonu. Co ty na to? + + + Kdepak - tam je dìsná nuda. Ale támhleten chlápek, to je Navigátor, ten se stará o bezpeèný, únavný zakázky. Až se pøežene emise, zeptej se ho. + + + No... já tì mùžu zavést do Janova a za 3000 navíc domluvím s Navigátorem, aby tì vzal do Zatonu. Jen co se pøežene emise, samozøejmì. + + + No... já tì mùžu zavést do Janova a za 1000 navíc domluvím s Navigátorem, aby tì vzal do Zatonu. Jen co se pøežene emise, samozøejmì. + + + Prej že jsi pøišel tunelama? Já taky pøicházím od Jupiteru - našel jsem tam podzemní cestu. Kdybys potøeboval, mùžu tì vzít zpátky zadarmo. Ochotnì udìlám všechno, co je v mých silách, abych pomohl... ehm... úøadùm. + + + Nazdar, kamaráde! Slyšel jsem, že jsi pøišel tunelama? Já taky našel podzemní cestu. Kdybys potøeboval, mùžu tì vzít zpátky zadarmo. Ochotnì udìlám všechno, co je v mých silám, abych pomohl... ehm... úøadùm. + + + Zdravíèko, kamaráde! Slyšel jsem, že jsi pøišel tunelama? Nebudeš tomu vìøit, ale mnì se povedlo vyvléct se ze smlouvy a zároveò dostat to povolení... Jakmile jsem byl volnej, vyrazil jsem semka a našel tu podzemní cestu. Kdybys potøeboval, mùžu tì vzít zpátky zadarmo. Ochotnì udìlám všechno, co je v mých silám, abych pomohl... ehm... úøadùm. + + + Nazdar, kamaráde! Slyšel jsem, že jsi pøišel tunelama? Já taky našel podzemní cestu. Kdybys potøeboval, mùžu tì vzít zpátky zadarmo. Ochotnì udìlám všechno, co je v mých silám, abych pomohl... ehm... úøadùm. Mimochodem, dík, žes mi pomohl dokonèit tu dohodu s vìdcema. Trochu jsem pohledal a našel jsem tohle – tu máš. Však ty už to nìjak využiješ. + + + Topole, proè vìdecký bunkr nebráníte vy? + + + Naší prací je pøece mìøit anomálie a nabírat vzorky. Teï už jsou z nás prakticky vìdci. A navíc... ne že bych mìl nìco proti tý práci jako takový, ale rozhodnì se nechci zaplést s tìma novýma nepøátelema armády. Byl bych nerad, kdyby mi nìjakej žoldák prohnal hlavou kulku. + + + Vlezl jsi na špatný místo, kamaráde! Vypadni døív, než zaène bejt i špatnej èas! + + + Chceš nás nasrat, nebo co? Táhni vocaï, než jednu schytáš. + + + Kliï se, vole. Jestli nechceš, abysme byli zlí. + + + Co budete dìlat teï? + + + Co nevidìt se vracíme do Janova. Pojï s náma, jestli chceš. + + + Mám to po cestì. Pøidám se k vám. + + + Ne, to by byla zacházka. + + + Ještì že jsi je k nám pøivedl. Sami od sebe by dlouho nepøežili. + + + Díky, že pomáháš nám v Povinnosti. + + + Co budete dìlat teï? + + + Co nevidìt se vracíme do Janova. Pojï s náma, jestli chceš. + + + Mám to po cestì. Pøidám se k vám. + + + Ne, to by byla zacházka. + + + Èlovìèe, udìlal jsi správnou vìc. Ty chlapy jsi dostal z prùseru a nám si sehnal novou krev. Respekt. + + + Díky, že pomáháš nám ve Svobodì. + + + Nevíš, kdo mi mohl ukrást vìci z osobní skøíòky? + + + To netuším - tady se motá spousta lidí. Mohl by ses optat Kostihoje, ten tu zná skoro každýho. + + + Pùjdeme za Zulusem. + + + Dobøe. Doufám, že nezaène støílet, až uvidí moji starou zbroj! Musíme ji po cestì vyzvednout... a vrátit tu, kterou mám zrovna na sobì. + + + Jdeme. + + + Poèkej. Emise neprospívají zdraví... chvilku poèkáme. + + + Co se stalo? + + + No... nepamatujeme si, odkud jsme se tu vzali. Vím jenom, že jsme patøili k Monolitu... Cítili jsme palèivou touhu jít až do samotnýho støedu Zóny. Tam se totiž nachází Monolit - meteorit z cizí planety, kterej na Zemi pøinesl zárodky cizího života... Pamatuju si, jak jsme spoleènì dorazili k Èernobylu... A pak už je to jedno velký okno... Vybavuju si jenom jasný svìtlo... mráz až v morku kostí... a èistej hlas... Všechno bylo tak dokonalý. Nevzpomínám si ale, co mi ten hlas pøikázal... Nìkolik let života, a jen tak se mi vypaøily. S klukama je to úplnì stejný... Teï nevíme, co máme dìlat. Minimálnì potøebujeme místo, kde se mùžeme schovat pøed emisema a mutantama. Nenapadá tì, kde bychom byli v bezpeèí? + + + Kousek odsud mají stalkeøi základnu. Mùžu vám to ukázat na mapì. + + + To nebude dobrej nápad... Už když jsme šli k Èernobylu, lidi se na nás dívali skrz prsty... a cosi mi øíká, že potom jsme dokonce zabíjeli stalkery. Víš, jak teï všichni nesnášejí naši frakci? Urèitì zaènou od pohledu støílet... Nemohl bys nám pomoct? Nemohl bys všem stalkerùm v táboøe vyøídit, že už nejsme žádní zabijáci? Nemohl bys s nimi promluvit a zaøídit, aby nás pøijali? + + + S radostí. Promluvím si s nimi, až zase pøijdu na základnu. + + + Je mi líto, s tím vám nepomùžu. + + + S èím byste potøebovali pomoct? + + + Potøebujeme místo, kde se mùžeme schovat pøed emisema a mutantama. Nenapadá tì, kde bychom byli v bezpeèí? + + + Zeptám se lidí v Janovì. + + + Je mi líto, s tím vám nepomùžu. + + + Jestli se chceš dostat až do Pripjati, potøebuješ oblek s uzavøeným rozvodem kyslíku. + + + To není problém. Schoval jsem si svoji starou zbroj z Monolitu a ta má pøesnì tohle. Problém je, že se v ní nesmím v Janovì moc ukazovat. + + + Dávám dohromady lidi, co se mnou pùjdou do Pripjati. Pøidáš se k nám? + + + Rád bych... fakt dìsnì rád bych zjistil, co se nám tam tenkrát pøihodilo. Ale teï nemùžu. Nemùžu tu pøece nechat svý kluky samotný a oni s náma nepùjdou. Už tam si prošli peklem. + + + Ano, pùjdu s tebou. Chci koneènì zjistit, co se nám to pøihodilo. Doufám, že v Pripjati na tu otázku najdu i odpovìï. Jenom musím dát vìdìt Lokimu, snad nebude mít nic proti. + + + Ano, pùjdu s tebou. Chci koneènì zjistit, co se nám to pøihodilo. Doufám, že v Pripjati na tu otázku najdu i odpovìï. Jenom musím dát vìdìt Šulgovi, snad nebude mít nic proti. + + + Mùžeme jít? + + + Mùžeme. + + + Ahoj, stalkere. Mùžeš nám píchnout? + + + Ahoj. Už jsi zjistil, jestli se mùžeme ukázat na té základnì? + + + Ne, pracuje se na tom. + + + Pospìš si. Nikdy nevíš, co se tu mùže stát. + + + Ahoj. Díky za pomoc. + + + Ahoj. + + + Jak se vede? + + + Vede se fajn, družstvo je v poøádku. Jen bych opravdu rád vìdìl, co se nám to pøihodilo. + + + Co tu vyvádìjí žoldáci? + + + Na to se bìž zeptat Hermanna. O správní záležitosti laboratoøe se stará on. Pokud se nepletu, Hermann se s tìmi žoldáky dohodl, že nám budou hlídat laboratoø. Pøesnìjší podrobnosti té dohody ale neznám. Musím však podotknout, že se již pøi nìkolika pøíležitostech projevili být schopnými bojovníky. + + + Co tu dìláte? + + + To mìla být øeènická otázka? Provádíme výzkumy. Zajímá tì snad nìco konkrétního? + + + Co je cílem tìch vašich výzkumù? + + + Nemáme žádný jasnì stanovený cíl. Dalo by se øíct, že jsme takový vìdecký pøedvoj. Snažíme se odhalit korelaci mezi jistými jevy, formulujeme hypotézy a poté se je pokoušíme potvrdit èi vyvrátit. Nìkteré naše hypotézy nemají žádné praktické využití. + + + Co víš o Zónì? + + + V tomto stádiu se mohu jedinì dohadovat... Osobnì vìøím, že Zóna vznikla dùsledkem pùsobení jakési nové síly. Elektromagnetická pole, fyzická síla ani emise by nedokázaly pozmìnit biosféru tak rychle. Samozøejmì že èást mutací lze vysvìtlit radioaktivním záøení... ale pozor! Aby bìžné prase zmutovalo ve flaksu, potøebovalo by stovky, ne-li tisíce let! V Zónì došlo k rozsáhlým mutacím v øádu pouhých rokù. Skoro jako kdyby nìkdo pøímým zásahem mìnil genetickou informaci jednotlivých zvíøat. Sotva na to pomyslím, zaèíná mi bìhat mráz po zádech. + + + Jak dlouho jste v Zónì? + + + Ani ne týden. Stálo nás to obrovskou námahu, než jsme pøekonali byrokratické obstrukce a zorganizovali expedici. Nebýt Hermanna, mohli jsme ještì stále postávat na hranicích Zóny, zatímco stalkeøi by z ní drancovaly nedocenitelné pøedmìty. + + + To mi prozatím staèí. + + + Ozerskij, proè si mì Hermann najal, abych hlídal vaše mìøièské družstvo? + + + Byl to mùj nápad. Hermann nechápal, k èemu je to dobré, ale já ho pøesvìdèil. Bìhem výzkumu jsem pøišel na to, že naše vysokofrekvenèní mìøící pøístroje, které používáme v anomálních polích, vyvolávají ve zmutovaných tvorech zvýšenou agresivitu a zároveò je provokují k vyšší aktivitì. Jednoduše øeèeno, mutanti zaènou hledat koøist. + + + Ozerskij, mám pro tebe pár novinek. + + + Ano? Poslouchám. + + + Mìl jsi pravdu. Zatímco jsme provádìli mìøení, mutanti nám nedali ani na chvilièku pokoj. Jakmile jsme ale vypnuli pøístroje, uklidnili se. + + + Cože? Jestli... jestli je má hypotéza pravdivá, je vysoce pravdìpodobné, že zmutovaná zvíøata, která získala schopnost napojit se na informaèní kanály, mohou telepaticky pøijímat signály z vnìjšího prostøedí... umìlé signály... V takovém pøípadì... nejsou ty abnormální podobnosti mezi mutacemi a charakteristickými zmìnami v bunìèné struktuøe... vùbec náhodné! + + + Nemohl bys to trochu rozvést? A snažit se tentokrát mluvit srozumitelnì? + + + Ne! To byly èistì jen domnìnky. Ach, jsem tak nevychovaný! Upøímnì dìkuji za to, jak jsi nám pomohl ve výzkumu. + + + Co mám udìlat, abys Hermannovi øekl o ten oblek? + + + Na hranicích lomu se objevila oblast, ve které se uchytila doposud neznámá anomální rostlina. Vzorek této rostliny bych opravdu moc rád získal do rukou, ovšem stalkeøi se k tomu místu odmítají by pøiblížit. Mít tak jednu z tìch rostlin, mohl bych profesoru Hermannovi nabídnout, aby tì odmìnil jedním rezervním oblekem. + + + Tak já ti tu kytku najdu. + + + Výbornì. Posílám ti do PDA souøadnice té anomálie. + + + Snad jindy. + + + Stav se, až si to rozmyslíš. + + + Tady je ta kytka, co jste ji chtìl. Mùžu už dostat ten oblek? + + + Skvìlé. Sokolov se mezi øeèí zmínil, že ten oblek má být pro nìj. Ale to nevadí. Ukážu Hermannovi tu rostlinu a on urèitì bude souhlasit, abychom vám ten oblek dali. Vyøid Sokolovovi, a si ho tu vyzvedne. + + + Mohl bych vám sehnat nové stráže. + + + To by od tebe bylo velmi laskavé. Domluv se prosím ještì s Hermannem. Spadá do do jeho pole pùsobnosti. + + + Chtìl bych si nechat pøemìøit svou odolnosti proti psí-záøení. + + + Che, a to tì Hermann posílá za mnou? Dobrá, vysvìtlím to pokud možno polopatì. Mám-li správnì zmìøit tvou odolnosti pøed psí-záøením, potøeboval bych kvalitní výzkumnou laboratoø a léta bádání. Vybavení, které mám po ruce tady, by se dalo popsat jako pár zaprasených zkumavek. + + + Takže to nepùjde? + + + Ne tak rychle. Tady nehovoøíme o úplné analýze. Pro naše úèely postaèí, když nìjakým zpùsobem zmìøíme odolnost tvých neuronù pøed vlnami psí. To zvládneme i základní zkouškou. Takže... zdá se, že hlavu máš v poøádku. Tím chci øíct, že se dokážeš pohybovat i v relativnì vysokých hladinách psí- záøení, aniž bys ztratil vìdomí. + + + Jak znìla ta hypotéza o zvýšené agresivitì mutantù? + + + Na to mám dvì teorie. Podle té první mùže být zvýšená agresivita mutantù zpùsobena vniknutím vìtší skupiny lidí na jejich území a v takovém pøípadì jde o chování zcela bìžnì se vyskytující u nezmutovaných druhù vèetnì lidí. Druhá teorie tvrdí, že mutanti dokážou nìjakým zpùsobem zachytit aktivní záøení vydávané našimi pøístroji. Ta druhá teorie je samozøejmì mnohem zajímavìjší. + + + Jak by se to dalo ovìøit? + + + Mohli bychom aktivovat mìøící pøístroje v oblasti, kde dosud nebyla zaznamenána žádná aktivita mutantù. A abychom navíc minimalizovali efekt mnoha narušitelù, mìl by experiment provádìt maximálnì jeden èlovìk. + + + Pøinesl jsem ten skener. + + + Jaké namìøil výsledky? + + + Nevím, co z té mašinky dostanete, ale vìøím, že to potvrdí vaši hypotézu. Jakmile jsem skener aktivoval, neuplynulo ani pìt minut a už se po mnì sápali snorkové. + + + Pøesnì, jak jsem si myslel. Z nìjakého dùvodu se vždycky potvrzují zejména ty nepøíznivé teorie. Tak èi onak, hlavní je, že jsi to vyzkoušel. Teï musíme dbát na to, aby každé družstvo, které pošleme nìco namìøit, bylo vyzbrojeno a pøipraveno na tuhý boj. + + + Zkusím potvrdit nebo vyvrátit tu vaši hypotézu. + + + Tìší mì, že na svìtì stále ještì žijí lidé, kteøí jsou ochotní podstoupit velké obìti ve jménu vìdy. Nejlepší místo k provedení experimentu bude ten zával na jižním konci lomu. Ta oblast je plná gravitaèních anomálií, jimž se mutanti bìžnì snaží vyhnout. Dám ti zaøízení, které v sobì má zabudovaný detektor mutantù. Až experiment vykonáš a to zaøízení mi vrátíš, budu si moci snadno prohlédnout, jaké dopady mìlo záøení na agresivitu mutantù. Jsi pøipraven? + + + Jo, jdu na to. + + + Zatím ještì ne. + + + Nedal by se u vás sehnat vìdecký oblek? + + + To by bylo proti pøedpisùm. Musíme si vést podrobný rozpis veškerého inventáøe. Ale jak znám Hermanna, urèitì objednal víc kusù, než kolik využijeme. Myslím, že za jistých okolností by se nechal pøesvìdèit, aby se s jením oblekem rozlouèil. + + + Nepotøebujete najít nìjaké artefakty? + + + Ne, je mi líto. Už jsme pøestali posílat náhodné lidi na lov artefaktù. Podepsali jsme smlouvu se zkušeným lovcem artefaktù. Ten nám vždycky obstará vše, co potøebujeme. + + + Mohl bych vám sehnat nové strážné. + + + To by bylo výteèné. V Zónì nikdy není klid... Promluv si o tom s Hermannem, on je tady šéf. + + + Máš mi vydat skener pro prùzkum anomálií. + + + Tu máš. Tøi, pøesnì jak øekl Hermann. + + + Tu máš. Ještì ti dám dva, pøesnì jak Hermann chtìl. + + + Jak si mùžu obstarat vìdecký oblek? + + + O náš inventáø se stará Hermann. Ale nemusíš se ani chodit ptát, nic z nìj nevymámíš. Zkus si místo toho promluvit s Ozerským. Ten je na jednu stranu víc laxní, na druhou stranu dokáže Hermannovi promluvit do duše. + + + Co tì sem pøivádí? + + + Poslyš, kam se podìli ti žoldáci? Myslím ty, kteøí vás bránili. + + + Jak jde život? + + + Hele, nìkdo vám postøílel ty žoldáky, co vás mìli hlídat. Sám jsem je sice nemìl zrovna v lásce, ale tohle zachází pøíliš daleko... + + + CS-3a, paráda! Moc dobrá zbroj. Pøipomíná mi starý zlatý èasy... + + + Dokážeš odblokovat pamìový modul? + + + Mrknu se na to... bez problému. Tohle už jsem párkrát dìlal. Nepotrvá to déle než hodinku. Budu za to chtít... hmm... 2000. Platí? + + + Platí. + + + Dobrá. Dám ti vìdìt, až to odblokuji. + + + Tolik penìz nemám. + + + Hmm... no, když tak víš, kde mì najít. Pochybuji, že nìkdo odvede lepší práci než já. + + + Ještì si to rozmyslím. + + + Jak jsem øíkal. Udìlám ti to do hodinky za 2000. + + + Tak co, odemkl jsi ten pamìový modul? + + + To ještì nebyla hodina. Øíkal jsem, že až skonèím, tak se ti ozvu. + + + Ano, tady je. Mùžeš si z nìho vytáhnout informace. + + + Našel jsem zvláštní poloartefakt. Chceš se na nìj podívat? + + + Zajisté. Kde jsi k nìmu pøišel? + + + V Zatonu, na opuštìném øíèním rypadle. + + + Platí. + + + Ne, díky. Seženu si jiného kupce. + + + Co tu vyvádìjí ti žoldáci? + + + Uzavøeli jsme s nimi smlouvu o obranì naší mobilní laboratoøe. Abych pøedešel dalším otázkám, dodám, že jsme nemìli jinou možnost než najmout je. Kvùli jisté pøísnì tajné vojenské operaci nemohlo vedení pøidìlit naší akci dostateènou ochranku. Když se k tomu pøiète skuteènost, že stalkeøi zaèali znenadání hromadnì šílet kvùli artefaktùm, nemìli jsme na výbìr a museli jsme najmout žoldáky, aby laboratoø byla v bezpeèí. + + + Èím se tu zabýváte? + + + Zkoumáme rozlièné jevy. + + + Co je cílem toho vašeho výzkumu? + + + Provádíme základní výzkum. Jinými slovy, nepøišli jsme zkoušet nové modely kombinéz, testovat nové léky ani nic takového. Pokoušíme se najít logická vysvìtlení jevù, s nimiž se v Zónì setkáváme. Kdyby se nám podaøilo zjistit pravdu o alespoò deseti procentech zdejších jevù, otøáslo by to celosvìtovou scénou vìdy a výzkumu. + + + Co víš o Zónì? + + + Abych byl upøímný, jen máloco. Zaèínáme teprv chápat mechanismy pohánìjící jevy, s nimiž se setkáváme. Od pochopení Zóny jako celku nás bohužel stále dìlí nekoneèná propast. Vše se navíc ještì komplikuje tím, že Zóna se prùbìžnì mìní. Teï nemám na mysli, když se sem tam objeví nová anomálie, kdepak. Mluvím o závažnìjších zmìnách, takových, které lidské oko nevidí. Jedním z pøíkladù je slábnutí magnetického pole. Nejsmutnìjší na tom všem je, že vùbec netušíme, k èemu to všechno smìøuje. Nezbývá nám nic jiného než sedìt a èekat. + + + Jak dlouho už jste v Zónì? + + + Dlouho ne, zhruba týden. Ale musím zmínit, že už døív jsem párkrát navštívil Sacharovu laboratoø. Dodnes lituju, že se nám nepodaøilo odstartovat tuto expedici døíve. Vysvìtloval jsem lidem na ministerstvu školství, že musíme mít neustále pøipraveny dvì mobilní laboratoøe k okamžitému nasazení... oni jen tak kývali tìmi svými sádelnatými bradami a tím to haslo! Kvùli nim jsme témìø propásli nejvìtší pøíležitost, jakou nám Zóna dosud nabídla! + + + Aha. + + + Hlásily ty skenery, které jsem položil do anomálií, nìjaké údaje? + + + Jaká anomálie tì konkrétnì zajímá? + + + Ta u parkovištì. + + + Ano, pøístroje hlásí, že v té anomálii se nacházejí artefakty. + + + V té anomálii bohužel žádné artefakty nejsou. + + + Betonová vana + + + Asfalt + + + Blata + + + Popelištì + + + To zatím vše. + + + Jsem jedno velké ucho. + + + Nedávné události nás jasnì varovaly, že náš výzkumný tým stále není dostateènì pøipraven na práci v terénu. Oproti tomu tobì se povedlo zlikvidovat toho kontrolora i bez cizí pomoci! Docela mì udivuješ. + + + Kam tím míøíš? + + + Míøím k tomu, že je od nás naprosto logické, když se takového schopného experta, jako jsi ty, pokusíme najmout. Naše výzkumná skupina by tvou pomoc bezpochyby užila. Potøebujeme provést rùzná mìøení, rozmístit skenery... + + + Pokraèuj... + + + Snažím se hledat korelace mezi emisemi a utváøením nových anomálií èi artefaktù. Mám takovou teorii, že podle množství a kvality vytvoøených artefaktù se dá spolehlivì pøedpovìdìt pøíští emise. Abych však mohl provést potøebné výpoèty, potøebuji nasbírat statistické údaje. Staèilo by jenom rozmístit skenery do nìkolika anomálií rùzného typu. + + + Je mi líto, nemám zájem. + + + To je škoda. Pomohlo by to vìdì. + + + Dobrá, tak já vám pomùžu. + + + Výteènì! Skenery si vyzvedni u Novikova a pak je rozmísti do anomálií, které jsem ti vyznaèil ve tvém PDA. Až budeš hotov, vra se zpátky za mnou. Chci s tebou prodiskutovat ještì jinou záležitost, jež se týká mìøení a skenerù. + + + Nechám si to projít hlavou a pak se vrátím. + + + Rozmístil jsem ty skenery do anomálií. + + + Výbornì! Už mi pøicházejí první výsledky. Nemùžu se doèkat na další emisi. Poskytne nám potøebné statistické vzorky... + + + To zní velmi zajímavì! + + + Když jsem pøišel blíž a vytáhl jsem váš detektor, vìci kolem mì se zaèaly divnì kroutit, skoro jako kdyby se vše stlaèovalo. Po krátké prodlevì se ve vzduchu zhmotnila tìla mrtvých stalkerù! A pak to pøestalo. + + + To je k nevíøe! Je zøejmé, že tyto údaje jsou k uzoufání sporé a že se z nich nedá nic odvodit na jistotu, ale pøesto tvoje vyprávìní zapíšu do záznamù. Budeme té anomálii øíkat prostorová bublina! + + + Koukám, že máte nové strážné. + + + Ano, jsou velmi milí. Cítíme se pod jejich ochranou velmi bezpeènì. Díky za pomoc, tady máš odmìnu. + + + Podívej se na tyhle dokumenty. + + + Hned se mrknu... Nebudu se ptát, kde jsi k nim pøišel, ale jsou k neuvìøení! Hned si je zkopíruji. A mimochodem, vezmi si tuto skromnou odmìnu. + + + Kam se podìli strážní? + + + Já nevím, prostì zmizeli! + + + Mám v Zónì dost známých. Tøeba bych vám mohl najít náhradu. + + + To by bylo bájeèné! Výmìnou za práci jim poskytneme plnou vìdeckou podporu a nejnovìjší technologické výdobytky! A ani vy nepøijdete zkrátka! + + + Dohodnuto. + + + Už se nemùžu doèkat! + + + Rozmyslel jsem si to. + + + To mì mrzí. + + + Stane se. + + + Ještì nìco? + + + Zabili nám stráže! Zastøelili je pøímo pøed naším bunkrem! + + + V Jupiteru jsem našel pár dokumentù. Chtìl by ses na nì podívat? + + + Jsou zajímavé, ale nic užiteèného. I tak ale díky za snahu. Kdybys našel ještì nìco dalšího, pøines mi to. + + + Když jsem se shánìl po dokumentech, pøepadli mì žoldáci. Tohle je PDA jejich velitele. + + + Páni a já myslel, že nás tu mìli chránit! Tohle budu muset oznámit nadøízeným. Mockrát ti dìkuji, mladíku. + + + Bohužel neobsahují žádné užiteèné informace. + + + Jedna vìc by tu byla: potøebujeme se dozvìdìt, jaké technologie se v Jupiteru vyvíjely naposledy. Nutnì sháním technickou dokumentaci právì k tìmto technologiím. Mìly by se dát najít v administrativní èásti továrny... pravdìpodobnì. + + + Podívám se po nic a pøinesu vše, co najdu. + + + Ne, s tímhle vám nemùžu pomoct. + + + Pøinesl jsem z Jupiteru ty dokumenty. + + + Jsou zajímavé, ale nic užiteèného. I tak ale díky za snahu. Kdybys našel ještì nìco dalšího, pøines mi to. + + + Když jsem se shánìl po dokumentech, pøepadli mì žoldáci. Tohle je PDA jejich velitele. + + + Páni a já myslel, že nás tu mìli chránit! Tohle budu muset oznámit nadøízeným. Mockrát ti dìkuji, mladíku. + + + Zkusím tu anomálii najít. + + + Nemìl jsem èas. + + + Pøišel jsem si promluvit o své spoluúèasti na výzkumu. + + + Vím, že budu mluvit za všechny, když øeknu, že by nás ohromnì potìšilo, kdyby ses opìt propùjèil do služeb vìdy. O co bys mìl zájem? + + + Rád bych vám pomohl s mìøeními. + + + Opravdu si nám pøeješ pomáhat pøi ostrém terénním mìøení? + + + Jistì, rád pomùžu. Co mám udìlat? + + + Ne, ještì si to musím rozmyslet. + + + Øíkal jsi nìco o rozmísování skenerù. + + + Snažím se hledat korelace mezi emisemi a utváøením nových anomálií èi artefaktù. Mám takovou teorii, že podle množství a kvality vytvoøených artefaktù se dá spolehlivì pøedpovìdìt pøíští emise. Abych však mohl provést potøebné výpoèty, potøebuji nasbírat statistické údaje. Staèilo by jenom rozmístit skenery doprostøed nìkolika anomálií rùzného typu. + + + Dobrá, pomùžu vám. + + + Výteènì! Skenery si vyzvedni u Novikova a pak je rozmísti do anomálií, které jsem ti vyznaèil ve tvém PDA. + + + Rozmyslím si to a ještì se vrátím. + + + Skenery už nám posílají informace z anomálií. Nezbývá než si hezky poèkat na výsledky. Mezitím bys mohl rozmístit ještì pár skenerù, jestli se ti chce. Dodateèné informace se nikdy neztratí. Za odmìnu bychom tì mohli informovat, kdy se v té které anomálii objeví nový artefakt. + + + Souhlasím. + + + Výteènì! Skenery si vyzvedni u Novikova a pak je rozmísti do anomálií, které jsem ti vyznaèil ve tvém PDA. + + + Rozmyslím si to a ještì se vrátím. + + + Bohužel máme pravidlo, které nám zakazuje pøidìlovat téže osobì více než jednu práci najednou. Nezlob se, ale musíme jej dodržovat. + + + Vyšla vám ta mìøení, které provedlo vaše terénní družstvo, zatímco já jsem ho bránil? + + + Chtìl jsem ještì dodat, že jste pøi mìøení pøilákali pozornost nemála mutantù a zombií. Všechny je odrazit, to muselo stát spoustu èasu a energie. + + + Hmm, a ty myslíš, že je pøilákaly ty skenery? Zajímavé. No v tom pøípadì jsi nám i ty potvrdil Ozerského hypotézu, že mutanti se dokáží telepaticky napojit na rùzná pole. Možná by stálo za to zeptat se ho na podrobnosti. Tady máš platbu za odvedenou práci. Zasloužíš si to! + + + Hmm, a ty myslíš, že je pøilákaly ty skenery? Zajímavé. No v tom pøípadì jsi nám i ty potvrdil Ozerského hypotézu, že mutanti se dokáží telepaticky napojit na rùzná pole. Mìl bys mu o tom povìdìt... S tìmi stalkery mì to mrzí. Vyhradíme èást svých skrovných zdrojù, abychom mohli jejich rodinám zaplatil nìjaké odškodné. Zbytek si vezmi ty jako platbu za odvedenou práci. Dìkuji! + + + Je šance, že bych mohl dostat vìdecký oblek? + + + Ne! Máme pøísnì omezený poèet kombinéz a já je nemùžu jen tak rozdávat! + + + Co jste mi chtìl øíct? + + + Nevidìl jsi náhodou ty lidi, kteøí mají na starost støežení našeho bunkru? + + + Pokraèuj. + + + Nebudeš tomu vìøit, ale nìkdo nám pozabíjel strážné, a to pøímo pøed bunkrem! + + + Potøebujete pomoc? + + + Momentálnì bychom potøebovali nasbírat nový typ vzorkù. Samy o sobì nemají žádné anomální úèinky, ale když na nich provedeme vhodné experimenty, mohli bychom dospìt k fascinujícím výsledkùm! + + + Pokraèuj... + + + Zestruèni to a øekni, co mám udìlat. + + + Dobøe... Stalkeøi, co našli to psí-pole, se domnívají, že se v nìm nachází hnízdo mutantù. Já jim to tak docela nevìøím... vždy v souvislém psí-poli nedokáže pøežít žádný mutant s výjimkou kontrolora! Nicménì nemìj strach, o mutanty se postarají naši hoši. Tebe potøebujeme, protože pravidelný kontakt s psí-poli otupil tvou náchylnost k jejich úèinkùm. + + + Takže si to shròme: chceš po mnì, abych vlezl do neprozkoumaného psí-pole a pøinesl odtamtud vzorek nìèeho, co tam vùbec nemusí být, a jestli to tam vùbec je, tak nikdo neví, jak to vypadá? + + + Pøesnì tak! Tato mise je klíèová pro celou vìdu a zejména pro náš tým. Tvá pomoc by byla k nezaplacení. Jestli jsi na pochybách, zastav se u Ozerského. Provede na tobì potøebné analýzy a urèí, nakolik jsi odolný vùèi psí-záøení. Mohl by ses taky poptat našich stalkerù a ti už ti všechno vysvìtlí. Tak co, podáš pomocnou ruku vìdì? + + + Ano. + + + Ty to ještì nevíš? Vaši stalkeøi jsou mrtví. + + + Vzhledem k tomu, že jsi se minule v tom tunelu vùbec neukázal, bude velmi tìžké pøesvìdèit tým, aby s tebou znovu spolupracoval. + + + To byl omyl. + + + Já ti vìøím, ale náš tým pro sbìr vzorkù se skládá z pozoruhodných lidí - nemìl bys je takhle vypékat. Ještì jednou si s nimi promluvím a snad je i pøesvìdèím, aby ti dali druhou šanci. Ale tentokrát mì nezklamej, na ty vzorky èekám. + + + Odpus, ale musím tì odmítnout. Tvoje výbava je naprosto nevhodná pro pobyt v souvislém psí-poli. Èekala by tì tam rychlá a bolestivá smrt, jíž nehodlám mít na svìdomí. + + + Mám ten vzorek. + + + Opravdu? Ukaž mi ho, už se nemùžu doèkat! + + + Mám ten vzorek. Taky se ukázalo, že v tunelu žil kontrolor. Pokusil se ovládnout vaše družstvo a málem se mu to povedlo. Naštìstí jsem ho stihl vèas zabít. + + + Jsi neuvìøitelný! Zabil jsi kontrolora a zachránil jsi stalkery pøed psychickým útokem. Kdybych to nemìl potvrzeno, nechtìlo by se mi tomu vìøit! Tohle je neopakovatelná zkušenost a fantastický vzorek. Tvùj pøínos vìdì je vskutku obdivuhodný. Dìkuji ti sám za sebe, za celý náš tým i za vìdce z celého svìta! + + + Bohužel nás pøepadl kontrolor a musel jsem bránit v první øadì sebe. Kontrolor to nepøežil, ale stalkeøi taky ne. + + + Tak kontrolor, povídáš? Jak hrozné, kdo by to byl tušil? Ztráta tìch stateèných hochù mì rmoutí... Byli to oddaní služebníci vìdy. I když to technicky nebyli vìdci, udìlali toho pro vìdu víc než lecjaký vysokoškolský profesor! Dìkuji ti a prosím pøijmi tuto skromnou odmìnu. + + + Bohužel nás pøepadl kontrolor. Sotva jsem vyvázl s holou kùží. + + + Co tu vyvádìjí ti žoldáci? + + + Pletou se pod nohy. Ale to je jen mùj osobní názor. Ze zaèátku se jen nabízeli, že sem tam nìco opraví nebo pøipevní... Vèera však prolomili poslední zábrany studu a zaèali se nás vyptávat, jak fungují naše pøístroje. Nedokážu pochopit, jak jim to pomùže pøi obranì bunkru. + + + Jaké vybavení dokážeš zlepšovat? + + + Jak jistì vidíš, toto je vìdecká laboratoø... nemáme tu žádný kevlar ani náhradní díly zbraní. Co ovšem mùžu, to je opravit ti zbroj nebo ji vylepšit jedním ze svých osobních vynálezù. Jak bys asi èekal, mám tu spoustu pøebyteèného vìdeckého náèiní. + + + Díky tobì a tomu vzorku, který jsi nám pøinesl z psí-pole, dokázal Ozerskij sestrojit zaøízení, které lidi uchrání pøed emisemi. Já jsem pak jeho vynálezu dal praktickou podobu. Mùžu ti jej namontovat do obleku, jestli chceš. + + + Nuže, kromì obvyklých vylepšení ti mùžu nabídnout úpravy pro filtrování kyslíku a ochranu pøed psí-záøením. Koneckoncù, právì ty jsi nám tuhle technologii pomohl vytvoøit... Ozerskij a Hermann jsou šastní jako blechy. + + + Nuže, kromì obvyklých vylepšení ti mùžu nabídnout úpravy pro izolaci a ochranu pøed psí-záøením. Koneckoncù, právì ty jsi nám tuhle technologii pomohl vytvoøit... Ozerskij a Hermann jsou štastní jako blechy. + + + Nabízím plnou škálu modifikací: izolaci, filtrování a ochranu pøed psí-záøením. V obleku, který bude mít všechny tøi tyto modifikace, mùžeš vejít do jakékoliv anomálie... a s trochou štìstí na druhé stranì opìt vyjít. Mimochodem, díky, žes Hermannovi pomohl s výzkumem. Nebýt toho, ani jedno z tìchto vylepšení bych ti teï nenabízel. + + + Povìz mi nìco o bunkru. + + + Hmm. A co bys rád slyšel? + + + Èemu se laboratoø vìnuje? + + + Vsadím se, že na to by ti neodpovìdìli ani Hermann s Ozerským. Nevykládej si to tak, že by nic nezkoumali... to oni zas jo. Ale výsledky jsou zatím mizivé. Na druhou stranu, proè si nezajdeš promluvit s Ozerským? Na základì jeho teorií se mi povedlo vymyslet pár úctyhodných vylepšení pro obleky. + + + Co víš o Zónì? + + + Nic vìdìckého, ale zato s ní mám spoustu praktických zkušeností. Jediné vìci, které tu mají reálnou cenu, jsou ty, které zvyšují šanci na pøežití. Zónì je ukradené, jestli jsi bandita nebo stalker, co sbírá artefakty, aby doma nakrmil sedm hladových krkù. V Zónì pøežije jen ten, kdo se nejlíp pøizpùsobí zdejším podmínkám. + + + Jak dlouho už jsi v Zónì? + + + Už to bude nìjaký pátek. Nejdøív jsem lovil artefakty jako všichni ostatní, ale postupnì se mi zhoršovalo zdraví, až jsem si uvìdomil, že už tak dál nemùžu. Naštìstí mám trochu pod èepicí, takže najít práci nebyl problém. Asi tak rok jsem strávil ve frakci tvoøené bývalými vìdci. Byli to milí lidé. škoda, že pomøeli ve slepé honièce za mlhavými cíli... Potom jsem se nìjakou dobu potuloval Zónou a nakonec jsem zaèal pracovat pro vìdce. Zatím nièeho nelituju. + + + Nic víc vìdìt nepotøebuju. + + + Chystám se vyrazit do souvislého psí-pole. Nemìl bys pro mì nìjaké rady? + + + Co bych ti øekl? O teorii polí informaèní energie jsi urèitì ještì neslyšel, co? Mùžu tì ujistit, že krátkodobé vystavení psí-poli není nebezpeèné... alespoò ne pro zdraví. Ale až tam budeš, mìl by sis pøesto dávat dobrý pozor. Kdo psí-pole podcení, skonèí jako zombie. + + + Dokážeš se vlámat do ocelového kontejneru? + + + To není nic pro mì. Nemám na to správné vybavení. A navíc je to v rozporu se zdravotními a bezpeènostními pøedpisy. + + + Dokážeš rozšifrovat èernou skøíòku? + + + Dokážu, ale neudìlám to. Takové vìci jsem dìlával døív... a nelíbilo se mi to. Zbyteèný opruz. Vìdci mi dávají práce víc než dost. + + + Co je na CS-3a tak zvláštního? + + + Kromì toho, že jsem ho navrhoval já? Je to jeden z nejlepších oblekù v Zónì. Proto ho máš teï na sobì, nebo ne? Je lehký, mobilní a jeho základem je kvalitní vojenská neprùstøelná vesta. Ochranu pøed anomáliemi jsem si tam pøidal sám... Je škoda, že jsme tenkrát mìli nedostatek materiálù... Ale co jiného bys èekal uprostøed bažiny... Staèila by ale sem tam nìjaká ta záplata a máš z toho poøádný, moderní oblek... Teï mám po ruce spoustu kvalitního vybavení, takže by s tím nemìl být žádný problém. + + + Pracuješ pro Hejkala? + + + Ne. Jen onehdá mi pomáhal cosi sehnat... službièka za protislužbu. + + + Hejkal chtìl, abych ti donesl detektory. Tak tady je máš. + + + Výbornì. Provedu s nimi pár mìøení a pak je Hejkalovi pošlu zpátky po prùvodcích... cokoliv jiného si mezi sebou vyøešte sami. + + + Aha! Tak to ty jsi prodával zbranì banditùm ze Zatonu! + + + Psst... jsi blbej, mluvit o tom tady? Nikdy jsme se nevidìli, jasný? + + + Jasný. + + + Co kdybych o tom tvým vedlejšáku povìdìl veliteli? + + + A co mu jako øekneš? Vždy na mì nic nemáš. Sám si mi pomáhal zbavit se svìdkù. Nemáš ani jedinej dùkaz a když mì nepodloženì obviníš ze špinavosti, jenom ze sebe udìláš idiota. + + + U jednoho mrtvýho žoldáka jsem našel PDA s objednávkou na moji hlavu. Ty jsi byl zákazník. + + + Už tì mám plný zuby... Hele, dej mi to PDA a já ti za nìj dám vynikající zbraò, kterou používají výhradnì elitní jednotky Povinnosti. Co øíkáš? + + + Fajn, dej mi tu bouchaèku. + + + Nech si ji. Nestojím o cetky od zrádný krysy! + + + Mám další PDA se smlouvou na moji hlavu. A opìt jsi zákazníkem ty. + + + Krucinál... žoldáci zasraný... nedá se jim vìøit, ani co by se za nehet vešlo. Poslouchej, musíme s tím skoncovat. Udìláme to takhle. Žoldáci se o tebe pøestanou zajímat a ty už mi dáš pokoj. Abych ti vynahradil ztráty, zavedu tì do tajnýho skladištì Povinnosti, kde si mùžeš nabrat tolik zbraní, kolik jen uneseš. + + + Fajn, to se mi líbí. + + + Dobrá, sejdeme se tam. Skrýš je kousek od lomu. + + + Nikam nejdu. Musíš mi to zboží vysolit hezky tady na místì. + + + Ale já u sebe nic nemám! Tak blbej zase nejsem! Buï se sejdeme u skrýše, nebo dostaneš kulový. + + + Ne, díky. + + + Nestojím o cetky od zrádný krysy! + + + Chci opustit Zónu. + + + Opravdu? Není cesty zpìt. + + + Urèitì. Jdeme. + + + I když... Zatím zùstanu. + + + Podívám se na to... No, tvoje játra jsou vìtší, než bych èekal, ale to je riziko povolání, že? Ale jinak jsi zdravý jako øípa. + + + Kdyby to nevzplálo, všechno by bylo v poøádku. Teï to ale nahání strach. Bìž se podívat sám... Ale pochybuju, že se ti to bude líbit. + + + OK, tvoje volba. + + + "Bývalí" bojovníci Monolitu? No, je to na tobì... Mùžeš se za nì zaruèit? + + + "Bývalí" bojovníci Monolitu? Ne, díky. To poslední, co teï potøebuju, je naštvaná banda fanatikù. + + + Ha, hodný chlapec. + + + Pøinesl jsem artefakt. + + + Jasnì, který? + + + Nemám artefakt takové ceny. + + + Plamen + + + Zlatá rybka + + + Svìtluška + + + Vloèka + + + Hm... Zatím nic. + + + No, já už jsem všechno øekl. Teï je øada na tobì. + + + Mìj se. + + + Samozøejmì! Støídavé psí-pole ještì musíme prozkoumat a èím døíve to udìláme, tím lépe. Nìco by mì ale zajímalo. Jsi si jistý, že je tenhle pokus bezpeèný? Opravdu tì potøebujeme, abychom získali testovací vzorek. Tak co, chceš pomoci vìdì? + + + Možná se mi podaøí najít pár odborníkù, kteøí by se mohli pøipojit ke tvé výzkumné skupinì. + + + Opravdu? Takovou pomoc bych urèitì pøivítal a øekl bych, že by byla odmìnìna. + + + Dobøe. Seženu pár kvalitních lidí. + + + Ještì o tom popøemýšlím. + + + Tady máš. V tom tunelu jsem narazil na dozorce. Pak jsem ho zabil. + + + Úžasné! Zabil jsi dozorce a získal to, co potøebujeme... Kdybych to nevidìl na vlastní kùži, neuvìøil bych ti! Skvìlá zkušenost a fantastický vzorek. Tvé pøispìní vìdì jistì nebude zapomenuto. Rád bych ti za sebe i za všechny ostatní vìdce podìkoval, jsme ti opravdu vdìèní! + + + Tady máš. V tom tunelu jsem narazil na dozorce. Ven jsem se dostal jen o vlásek. + + + Dozorce? To je otøesné, ale kdo to mohl tušit? Dùležité je, že jsi nám pøinesl ten vzorek a pozoruhodným zpùsobem tak pøispìl vìdì. Dìkuji a pøijmi prosím tuto malou odmìnu. + + + Jak se ti líbí nová výzkumná skupina? + + + Jo, jde to. Zdá se, že jde o schopné mladé lidi. Pøijmi tuto odmìnu, prosím. Oceòujeme tvé schopnosti v oblasti, ehm, lidských zdrojù. + + + Jak to jde, kámo? Jasnì, jsem rád, že tì vidím, ale nevadilo by mi, kdybych ještì chvilku zùstal sám. + + + Pøišel jsem kvùli zajatému stalkerovi. Chci ho vykoupit. + + + A já chci respekt pro bandity a naše pravidla, ale zároveò nechci dìlat další zbyteèné problémy... 15 000 nebo vhodný artefakt bude pro tentokrát staèit... Nejsem køivák, nevezmu si víc, než mi dluží. + + + Tady jsou peníze. + + + OK... Vážím si toho, co dìláš. Vem si toho bídáka a stalkerùm vyøiï, že pøíštì to bude horší. + + + Tolik penìz sebou nemám. + + + Jasnì, nemáš na to. Chceš ještì nìco? + + + Momentálnì nic vhodného nemám. Vrátím se pozdìji. + + + Podívám se na to... No, nejde o nic strategicky dùležitého, ale mohlo by se to hodit. Koupím všechno, dám ti 500 za dokument. Platí? + + + Podívám se na to... Svatá prostoto... Tyhle informace by poškodily povìst Povinnosti... a hodnì! Koupím je za 4000. + + + Zajímavé. No, koupil bych je od tebe za 2000. + + + Jo, ale cena je poøád stejná: 2000. + + + OK, mìj se. + + + To je strašné! Co se jim proboha mohlo stát? Hmm... Možná mutanti. Musím se zeptat Ozerského, jaká monstra by to mohla být... Hmm. Poøád ale musíme prozkoumat psí-pole. Tento úkol je pro vìdu i pro náš tým zcela zásadní. Opravdu potøebujeme, abys nám pomohl získat vzorek. Pokud máš nìjaké pochyby, zajdi za Ozerským. Provede potøebné analýzy, pomocí kterých zjistí tvou odolnost vùèi psí-záøení. Tak co, chceš pomoci vìdì? + + + Budu o tom uvažovat. + + + Náš výzkumný tým, složený z místních stalkerù, nedávno objevil opravdu neobvyklé psionické pole. Podle našich teorií a provedených mìøení má toto pole pøerušovanou povahu, psí paprsky nevyzaøuje stále. + + + Náš výzkumný tým je bohužel mrtvý a dokud nenajdeme náhradu, nemùžeme provádìt žádná mìøení. + + + Vydrž... Byl bys tak hodný a na chvíli mi vìnoval pozornost? + + + Jaké jsou výsledky prùzkumu anomálií? + + + Máš pro mì nìjakou práci? + + + Slyšel jsem o tom. + + + Bohužel jsem Hermanna zatím nedokázal pøesvìdèit, aby vybavil pátrací tým... Uznávám, že øeèi o tomhle zjevení si vzájemnì odporují, ale nìco mi øíká, že Oáza existuje. Jen málokdy mì moje intuice zradí, takže pokud ji dokážeš najít a pøinést mi o ní dùkaz, budu ti opravdu vdìèný. + + + Poohlédl bych se po tom, ale v Oáze už jsem byl. + + + Hm... Ehm... Myslím, že jsem vás pøeslechl. Co jste to øíkal? + + + Pøicházím splatit Váòùv dluh. + + + Jo, vzpomínám si na nìj, pùjèoval jsem mu solidní balík. I s úrokama to dìlá sedm litrù. + + + Tady to je. + + + Vyøiï Váòovi, že jsme si kvit. + + + Dobøe. + + + Tolik u sebe nemám. + + + Tak se vra, až budeš mít. + + + O úrocích nepadlo ani slovo. + + + O co se to snažíš? Copak jsem debil, abych pùjèoval prachy bez úrokù? Chci sedm litrù a pøes to vlak nejede. + + + Neunáhluj se. Hele, tady mám bouchaèku a nebojím se ji použít... k èemu ti budou úroky, když budeš pod zemí? + + + Fajn, fajn, uklidni se, šéfe! Urèitì se nìjak dohodneme. Zapla mi pìt litrù a mùžeme ten dluh smazat. + + + Ha... pro mì za mì si tu vzduchovku tøeba narvi do prdele. Øíkám sedm litrù i s úrokama. Šmytec. + + + Nezapomínáš na nìco? Mám tu bouchaèku. + + + Zastøelím tì klidnì i zadarmo. + + + Budu nad tím uvažovat. + + + Sedm litrù i s úrokama. + + + Teï se nechci pouštìt do žádných velkých kšeftù. Potøebuju se dát do kupy... Možná se dokonce vrátím domù... vyseru se na artefakty a najdu si práci... Akorát se mi nechce opouštìt Grizzlyho... ani Torbu. Docela jsme se sblížili, jeden druhýmu pomáháme a tak... No nevim, tøeba bude staèit, když si na chvíli vydechnu a srovnám si vìci v hlavì... + + + Teï se nechci pouštìt do žádných velkých kšeftù. Budu tu pomáhat vìdcùm a mezitím se dám do kupy. Možná se dokonce vrátím domù... najdu si práci nìkde venku... No, já nevím. Tøeba se jenom potøebuju uklidnit a srovnat si vìci v hlavì. + + + Tak co, jdeme zachránit Mitjaje? Nebude ti vadit, když sebou vezmu pár najatých chlapù, že ne? + + + Mám u sebe PDA toho kupce z Povinnosti - Morgana. Máš zájem? + + + Dostal jsem se k PDA, které dokazuje Morganovo spolèení se žoldáky. + + + Možná si ho nakonec nechám. + + + Já vìdìl, že v tobì nakonec pøevládne touha pomoci vìdì a vykonat nìco dobrého pro svìt! Tak poslouchej, plán zní takhle. O mìøení se postará výzkumná skupina stalkerù. Tvým úkolem bude dìlat jim doprovod, to znamená chránit je a provádìt je pøes obtížný terén. Hodnì štìstí. Stalkeøi na tebe už èekají venku. + + + Zdravíèko, stalkere. Udivuje tì, že tady potkáváš takového staøíka? He, he. Pøišel jsem, protože už jsem potøeboval zmìnit prostøedí. Teï opravuju techniku a sem tam i lidi... + + + Tak mi povìz: mùžu pro tebe nìco udìlat? + + + Jak ses dostal do Pripjati? + + + Garik mì sem zavedl. Stalkeøi se sem plánovali vydat už drahnou dobu, jenom se nechtìli pouštìt do oplítaèek s armádou. Jakmile ale Garik nahlásil, že armáda se zdekovala, neváhal jsem. Aneb jak strejda Jar vyrazil do svìta! Ha ha! + + + Potøebuji ošetøit. + + + Podívám se ti na to... + + + Hotovo, mìl bys to pøežít. Kdyby se ti rána zanítila, a ti ji nìkdo pochèije. Prej to pomáhá. + + + Vždy si zdravej jako rybka! Netahej mì za nos... + + + Vítej v mé skromné chýši pozemských radostí. Hledáš zábavu, potìchu, nebo obojí? + + + Chlapi o mì poøád øíkají, že jsem pøíliš hodnej, nìco jako pohádkovej dìdeèek. Takže si važ týhle situace... pøíštì už tak mírnej nebudu. A teï koukej vypadnout, hajzle! + + + Tady už jsem byl. Banditi jsou dávno mrtví. + + + Páni, ty jseš hustej! Fakt že dík! Na, vem si tyhle prachy. Pùvodnì jsem s nima mìl splatit dluhy, ale takhle je aspoò dostane nìkdo, kdo si je zaslouží. + + + Páni, ty jseš hustej! Fakt že dík! Na, vem si tyhle prachy. Pùvodnì jsem s nima mìl splatit dluhy, ale takhle je aspoò dostane nìkdo, kdo si je zaslouží. + + + Naše skenery zaznamenaly podivnou aktivitu severnì odsud. Podle namìøených dat soudíme, že tamìjší anomální formace zaèíná být nestabilní. Víc už vám toho bohužel nedokážu povìdìt. Potøebovali bychom provést mìøení pøímo v terénu... Pøedem ale mùžu øíct, že bìžnými stalkerskými detektory tu anomálii nezaznamenáte. Budete potøebovat náš vynález Svarog. + + + Skenery stále hlásí nestabilní anomální aktivitu severnì odsud. Jestli máš nìco kvalitnìjšího než bìžný stalkerovský skener - tøeba Svarog - mohl bys skoèit provést pár terénních mìøení. + + + Zatím jenom z anomální oblasti v bažinách. Nicménì i pøesto pro ní už Novikov našel praktické využití. Díky za spolupráci. Tìšíme se na další várku výsledkù. + + + Zatím jenom z anomální oblasti za Kopaèi. Nicménì i pøesto pro ní už Novikov našel praktické využití. Díky za spolupráci. Tìšíme se na další várku výsledkù. + + + Jistìže, dostal jsem kompletní výsledky. Abych pravdu øekl, objem tìch dat byl tak ohromný, že nám potrvá celé týdny, ne-li mìsíce, než je všechny zpracujeme. Nicménì i pøesto pro tu anomálii už Novikov našel praktické využití. Díky za spolupráci. Tìšíme se na další várku výsledkù. + + + Ne, nic takového se tady nestalo. I když... hmm, nedávno jsem vlastnì jednoho podezøelého chlapíka zahlédl. Šel jsem se ven projít a na zpáteèní cestì jsem potkal stalkera, který pøicházel od Janova. Jakmile se dostal na doslech, zaèal se na mì bezdùvodnì utrhovat. Øíkal, že ví, kde bydlím, a tak dále. Jednoduše jsem ho ignoroval, myslel jsem, že je prostì jen opilý. Ale když tak nad tím uvažuji, zdá se mi to takové podezøelé. + + + Kam odešel? + + + Na severovýchod. Pozdìji jsem z toho smìru zaslechl výstøely, ale to je v tìchto konèinách normální. Zeptej se Zuluse, ten celé dny vysedává na vìži, tak tøeba nìco zahlédl. + + + Severovýchodnì. Asi šel na zastávku. + + + Jasnì. + + + Jak je, kámo? + + + Jak to jde? + + + Není to zlý. Ne že by to bylo vyloženì snadný, ale my se odsud dostaneme. Spoleènì dokážeme cokoliv! + + + Jak se vede? + + + Já ti nevím... necítím se tu dobøe. Jako kdyby mì nìco pošuchovalo o dùm dál. Možná brzo odejdu... a neprotestuj. + + + Vyèistil jsem upíøí pelech v Zatonu. Dùkladnì. + + + [pokraèovat...] + + + [pokraèovat...] + + + [pokraèovat...] + + + [pokraèovat...] + + + Sháním lidi, co by provádìli mìøení anomálií. + + + Potøeboval bych udìlat pár mìøení okolo anomálií. + + + Kdo je ten spící fešák? + + + Už jsi našel ten artefakt? + + + Jasná páka! Tady beztak není nic na práci... a dáma se nedá hrát donekoneèna. Tohle není Pripja... ty vole, kéž už bych tu zasranou smlouvu mìl odmakanou, hned bych tam šel. + + + [pokraèovat...] + + + Mùžeš se podívat do lomu - tam zaøval Tøíska. Jeho poslední slova byla, že mu Pazourek zèóroval koøist a nechal ho chcípnout v anomálii. + + + Jmenoval se Tøíska. Vbìhnul do plynový anomálie a popadnul tam artefakt. Ještì než umøel, stihl mi to všechno popsat. + + + Nehodlám se tì vyptávat, odkud to máš. Vezmu to pøímoèaøe: to PDA od tebe vykoupím za ètyøi tisíce. Už dlouho jsem se chtìl dozvìdìt, co náš zásobovací dùstojník vyvádí, když není ve službì... + + + Tak se na to podíváme... ten hajzl zasranej! Nejenže jim prodává naše zbranì, on dokonce Svobodì pøedal i celej sklad! Krucinál. Budu muset sestavit uvítací výbor a zaskoèit za ním na návštìvu. + + + Tak se na to podíváme... já nevìøím vlastním oèím! O skladišti už jsme vìdìli, a dokonce jsme se tam chtìli skoèit podívat, ale o tom poplachu jsem fakt netušil. Proè? Protože ten èurák mi neøekl ani pùl slova. Poèkej chvíli, pùjdu varovat chlapy. + + + Z èisté zvìdavosti ti dám ètyøi tisíce. + + + No, žádnej ostrostøelec sice není, ale s puškou trochu zacházet umí. Nikdy se ale nepøestane šklebit, jako kdyby nežral nic jinýho než citrony. + + + U staré chladící vìže jsem našel divnou anomálii. + + diff --git a/gamedata/configs/text/cze/st_dialogs_pripyat.xml b/gamedata/configs/text/cze/st_dialogs_pripyat.xml new file mode 100644 index 0000000..5eba697 --- /dev/null +++ b/gamedata/configs/text/cze/st_dialogs_pripyat.xml @@ -0,0 +1,906 @@ + + + + Ha! To je nauèí! Díky za pomoc, brácho. Nebejt tebe, ty hazlové by si mì po chvilce podali jak malou holèièku. Tak nakonec jsi pøece jenom dobrej stalker... Sorry, že jsem se pøedtím tak rozpálil. Mìl jsi mi øíct rovnou, že jsi od Služby bezpeènosti. + + + Nic se nestalo. Vrátíme se do vojenského tábora, tam bude bezpeènìji. + + + Jo. Poøád to bude lepší, než se toulat sami kolem Pripjati. + + + Tak jdeme. + + + Musím si tu ještì nìco zaøídit, takže bìž napøed. Tábor je v budovì prádelny. + + + Mìl bych už jít. + + + Poèkej... vezmi si tohle. Nejspolehlivìjší kulomet v Zónì. + + + Proè, ty už ho nepotøebuješ? + + + Poøád mám u sebe nìco, èím se dá odehnat pár mutantù. Navíc jsem se rozhodl, že se vrátím. Garik mì doprovodí do Jupitera. Tobì se prostì bude hodit víc. Ber a užívej moudøe. + + + Hodnì štìstí. + + + Díky, je to skvìlá zbraò. + + + Ha! Není skvìlá, je nejlepší v Zónì! Nechal jsem si ji upravit, takže je teï trošku tìžká, ale vezmi si to takhle - s takovým kanónem v náruèí nepotøebuješ pøed nikým utíkat. A se probìhne nepøítel! + + + Mìj se. + + + Supr! + + + Nevíš, kam šel Zulu? + + + Pryè. Chtìl po mnì, abych ho zavedl k Jupiteru. Nedaleko továrny jsme se rozdìlili. Neøekl mi, kam mìl namíøeno dál. + + + Poèkej... chci se s tebou podìlit o jeden nepøíjemnej zážitek... Pár žoldákù mì poprosilo, abych je zavedl do Pripjati. Nejdøív si mì získali tuènou sumièkou, ale brzo jsem si uvìdomil, že jsem se dostal do sraèek... Ani na vteøinu mì nepustili z oèí a dokonce mi hrozili zbranìma. Nakonec se mi povedlo utéct, když jsme byli tìsnì pøed Pripjatí, ale oni se urèitì jen tak nevypaøili. Nìkde tam budou, dávej si bacha. + + + Neslyšel jsi náhodou, o èem si ti žoldáci povídali? + + + Útržky, jo. Urèitì neplánovali, že mì nechají naživu, a tak se svými plány vùbec netajili. Bavili se hlavnì o tom, jak se sejdou se zástupcema svýho klienta, kteøí jim pak mìli ukázat nìjakou vìc a vysvìtlit, co bude jejich úkolem. + + + Kde se má ta schùzka konat? + + + Kousek odsud, na dvoøe pøed bytovkama. + + + Díky za informaci. + + + Mluvil jsi o žoldácích. Neslyšel jsi, o èem si povídali? + + + Útržky, jo. Urèitì neplánovali, že mì nechají naživu, a tak se svými plány vùbec netajili. Bavili se hlavnì o zástupcích svýho klienta, kteøí jim pak mìli ukázat nìjakou vìc a vysvìtlit, co bude jejich úkolem. + + + Kde se má ta schùzka konat? + + + Kousek odsud, na dvoøe pøed bytovkama. + + + Zaøídil jsem ti u vìdcù oblek. Zastav se kvùli nìmu za Hermannem. + + + Dobrá... kde se potom sejdeme? + + + U Zuluse doma, poblíž Janova. + + + Tam je ale plno stalkerù! Co kdybys mì tam radši zavedl? Protože když tam pøijdu sám, mám zadìláno na prùser. Když se mnou pùjdeš ty, nebudou støílet, protože tebe znají. + + + Ke kterému evakuaènímu bodu jsi šel? + + + Promiò, ale to je tajná informace, kterou ti nemùžu øíct. + + + Pojïme za tím Zulusem. + + + Dobøe. Ale nejdøív se stavíme u Hermanna pro ten vìdecký oblek. + + + Jdeme. + + + Šel bych rád, ale venku zrovna zuøí emise. Nepoèkáme chvíli? + + + Jak ses sem dostal? + + + Náš vrtulník se zøítil pøímo na Jupiter a propadl støechou do montážní haly. Pøežil jsem jenom já - podaøilo se mi utéct z Jupiteru a odejít k nejbližšímu evakuaènímu bodu, jenomže tam nikdo nebyl. Pak jsem potkal Garika a ten mì zavedl do bunkru. + + + Jestli chceš do Pripjati, budeš potøebovat oblek s uzavøeným rozvodem kyslíku. + + + Co tady dìláš? + + + Mám rozkaz pokraèovat v evakuaènímu bodu, jenomže Zóna je pøíliš nebezpeèná. Jsem pilot, ne výsadkáø! Proto èekám tady v marný nadìji, že si mì tu po skonèení operace vyzvednou. + + + Dávám dohromady lidi, co se mnou pùjdou do Pripjati. Pøidáš se k nám? + + + Do Pripjati? A víš ty co, možná že i jo... Tøeba pár našich chlapù pøežilo a dostalo se až tam. Navíc jeden evakuaèní bod je i v Pripjati, takže to mám vlastnì pøi cestì. Sám bych se tam nikdy nedostal, ale s tvým družstvem jsem ochoten se o to pokusit. + + + Mùžeme vyrazit? + + + Dá se to tak øíct. + + + Ahoj, stalkere. + + + Zdravím. + + + Ahoj. + + + Zdravím, majore. + + + Kde jsi pøišel k té vojenské uniformì? + + + Haha... no, teï už asi mùžu prozradit, že popadaly vojenský vrtulníky, protože to stejnì každej ví. Jsem poruèík Sokolov, kopilot právì jednoho z tìch vrtulníkù. + + + Ohlednì té hlídky... + + + Jeho signál pøichází ze starého obchodu s potravinami, ale nehlásí se... Možná jen ztratil vysílaèku... Nikdo si teï nemùže být jistý. Musíme ho najít... + + + Díky, plukovníku! Myslím, že to zvládnu. + + + Ohlednì té hlídky... + + + No... Za všechno mùže ten kontrolor... On je hlavním dùvodem toho, co se stalo prùzkumnému týmu. Postaral se o to, aby se chlapi navzájem postøíleli... Tyhle nestvùry patøí v rámci Zóny k tìm horším a navíc jsme nebyli trénováni na boj s nimi. Kontrolor nás naprosto pøekvapil a už zase jsme ztratili muže... + + + Alespoò, že ten kontrolor už to má za sebou. + + + Doufám, že se teï situace trochu uklidní... Jsem vdìèný za vaši pomoc, majore. Myslím, že bìhem mise jste ztratil spoustu munice... Zajdìte za poruèíkem Kirilovem a požádejte ho, aby vám vydal potøebné vybavení. + + + Díky, plukovníku! + + + Bez obav, plukovníku... S tím mutantem si poradím. + + + Mùžu znát více informací o této misi? + + + Kdo je to? + + + Pokud brzy nenajdeme zdroj rušení, nezbyde nám nic jiného než zemøít. První vìtší útok Monolitu naši armádu rozdrtí... A z operace se stane naprosté fiasko... + + + Pokusím se najít ten zdroj co nejdøíve. + + + Tak co, majore? Našel jste ten zdroj rušení? + + + Ne, poøád na tom dìlám... + + + Garik mi øekl o incidentu se žoldáky... + + + Jo, taky mi o tom øíkal... Po svém útìku Garik pøišel sem, protože se bál, že za ním jdou. Naštìstí pro nìj i pro nás ho žoldáci nesledovali... Sledujeme místo, na kterém se žoldáci a zákazníkovi lidi mají setkat, ale nic se nedìje... Zajímalo by mì, co mají žoldáci v plánu... + + + Zjistil jsem, že žoldáci pátrají po tajné laborataøi v Pripjati. + + + Tajná laboratoø tady v Pripjati? Jak jste na to pøišel? + + + Díky zápisníku jednoho žoldáka ze Zatonu. Potvrzuje to i pøíbìh, který mi vyprávìl Strejda Jar. + + + Hm... Víte ještì nìco? + + + Hledají hlavní laboratoø. Bìhem mého pátrání jsem našel její souøadnice. + + + Pokud je to opravdu tak, znamená to, že kromì zombií a fanatikù máme dalšího protivníka... Musíme se rozhodnout, co teï budeme dìlat. + + + Musím setkání pozorovat, a pokud to bude možné, zlikvidovat zástupce klienta. Tím se postaráme o to, že na chvíli se do laboratoøe X8 nikdo nedostane. + + + Zní to jako slušný plán, ale takhle se nikdy nedozvíme, kdo všechno o laboratoøi ví. Alespoò se postaráme o to, že se do ní nedostanou žoldáci. Žoldáci však zareagujou rychle a budou nebezpeèní. Pokud to pùjde, zkuste vyøídit obì strany. Øeknu poruèíku Kirilovi, aby šel s vámi. + + + OK. + + + Poèkejte, možná bychom si mìli vybrat jiný cíl. + + + Vyberte si, který z cílù bude tím hlavním. + + + Musíme zlikvidovat velitele žoldákù. Pokud se nám to podaøí, jednotka bez velitele už pro nás nebude pøedstavovat takový problém. + + + Vypadá to jako dobré øešení, ale poslíèek pravdìpodobnì uteèe a pøedá informace o laboratoøích nìkomu jinému, takže se do ní žoldáci nakonec stejnì dostanou. Pokuste se zneškodnit obì osoby. Øeknu poruèíku Kirilovi, aby šel s vámi. + + + Na tohle nemám èas. + + + Díky zápisníku jednoho žoldáka ze Zatonu. + + + Díky pøíbìhu, který mi vyprávìl Strejda Jar, stalker ze stanice Janov. + + + Ohlednì žoldákù... + + + Skvìlá práce, oba cíle byly zlikvidovány. Teï už se nám žoldáci nebudou plést do cesty a v laboratoøích snad budeme mít klid. Zbraò si mùžete nechat a tady pro ni máte i nìjakou tu munici. + + + Teï, když je velitel mrtvý, nám žoldáci nebudou dìlat potíže. Ale zákazníkovi lidé se z toho dostali a mohli by se objevit v laboratoøích, takže buïte na pozoru... Mùžete si nechat zbraò a tady pro ni máte i nìjakou munici. + + + Dobøe. Teï, když jste zabil osobu, která vìdìla o umístìní laboratoøe, by ji žoldáci nemìli najít. Ale pochybuju o tom, že teï opustí Pripja, takže pro nás budou poøád pøedstavovat hrozbu. Buïte opatrný... Mùžete si nechat zbraò a tady pro ni máte i nìjakou munici. + + + Takže jste si na poslední chvíli vybral jiný cíl? No, možná to bylo dobré rozhodnutí. Teï, když je velitel mrtvý, nám žoldáci nebudou dìlat potíže. Ale zákazníkovi lidé se z toho dostali a mohli by se objevit v laboratoøích, takže buïte na pozoru... Mùžete si nechat zbraò a tady pro ni máte i nìjakou munici. + + + Takže jste si na poslední chvíli vybral jiný cíl? No, možná to bylo dobré rozhodnutí. Teï, když jste zabil osobu, která vìdìla o umístìní laboratoøe, by ji žoldáci nemìli najít. Ale pochybuju o tom, že teï opustí Pripja, takže pro nás budou poøád pøedstavovat hrozbu. Buïte opatrný... Mùžete si nechat zbraò a tady pro ni máte i nìjakou munici. + + + Tak tohle moc nevyšlo. Velitel žoldákù je naživu, stejnì jako zákazníkùv èlovìk. Teï o nás žoldáci ví a budou nám hrozit stejnì jako jednotky Monolitu. Navíc už znají polohu laboratoøe, takže je jen otázkou èasu, než se tam objeví. Buïte opatrný... Mùžete si nechat zbraò a tady pro ni máte i nìjakou munici. + + + Pøipravte své vojáky, plukovníku. Jsem pøipraven vyrazit. + + + OK. Kryjte Støelce, majore. My se o sebe dokážeme postarat. + + + Takže... Mezi námi, vy se Støelcem máte nejvìtší zkušenosti v Zónì. Rozdíl je v tom, že zatímco o Støelcových zkušenostech se jenom povídá, o tìch vašich už jsme se dávno pøesvìdèili. Tím chci øíct, že na vás spoléhám, majore. Dávejte na Støelce pozor – už nás moc nezbývá. + + + Jednotka je pøipravena vyrazit. Èekáme jen na vás, majore. + + + Zdá se, že všichni ti šílenci jsou mrtví. Seber tu zbraò, a odsud mùžem co nejdøív zmizet. + + + To dává smysl. + + + Jsem pøipraven, jdeme. + + + OK. Tým je pøipraven. + + + Jdeme. + + + Musíme poèkat. Nechci, aby mi emise vzala chlapy. + + + Jsem kapitán Tarasov. Vy jste možná major, ale velitelem jsem tady já, a to znamená, že o mých rozkazech se nediskutuje. Závisí na tom život každého chlapa v týmu. Plán je následující: dostaneme se na pozici v západní oblasti nemocnice a poèkáme, až se objeví jednotky Monolitu. Musíme pracovat rychle, abychom na sebe nepøitáhli zbyteènou pozornost. + + + Rozumím, jdeme. + + + OK. Tým je pøipraven. + + + Jdeme. + + + Musíme poèkat. Nechci, aby mi emise vzala chlapy. + + + Poèkejte, kapitáne. Ještì nejsem pøipraven. + + + Nìco nového v oblasti rušení? + + + Identifikoval jsem nìkolik zdrojù, z nichž jeden je docela blízko. Pokud ho znièíme, možná se budeme moci spojit s velitelstvím. + + + Vypátral jsem souøadnice zdroje rušení. Musí to být nìjaký druh speciálního vysokofrekvenèního nebo dokonce mikrovlnného vysílaèe. + + + Zaøízení, které jsi znièil, opravdu bylo zdrojem rušení. Pravdìpodobnì je jich více, ale spojení s velitelstvím už jsme navázali. + + + Øekni mi o signálu. + + + Signál se neustále objevuje a zase mizí, ale pokaždé je blíž základnì. + + + To je ono? + + + Ne tak docela. Zajímavé je to, že signál je pøenášen na frekvencích, které se pro rádiovou komunikaci prakticky nepoužívají. + + + Aha. + + + Vezmi si tuhle zbraò a munici. Teï si mùžeš odpoèinout. Budu sledovat situaci z druhé strany a jakmile se nìkdo objeví, dám ti vìdìt. + + + OK. + + + Zdravím. Jsem poruèík Kirillov. Jsem zodpovìdný za údržbu zbraní a munièní sklad. + + + Máš nìjaké náboje? + + + Jo, nedávno jsme se vkradli do skladištì Monolitu, které bylo plné munice pro všechny typy zbraní, které mùžeš sehnat v Zónì... Zajímalo by mì, jak tam všechny ty zbranì dostali... Myslím, že jim je musí prodávat nìkdo z pohranièní stráže... + + + Takže mùžeš taky opravovat mé zbranì? + + + Jasnì. Jsme vyškolení k opravování všech typù zbraní. + + + Aha. + + + Zdravím. + + + Proè mì tak bolí hlava? + + + Tak, je tady okamžik pravdy. Jsem zvìdavý, jestli se odsud dostaneme nebo ne... + + + Potøebuju munici. + + + Žádný problém. Co pøesnì potøebuješ? + + + Náboje pro pistoli 9x18... + + + Tady máš... Ještì nìco? + + + Tady máš... + + + Náboje pro pistoli 9x19... + + + Náboje pro pistoli .45... + + + Náboje do brokovnice... + + + Náboje pro útoènou pušku 5.45x39... + + + Náboje pro útoènou pušku 5.56x45... + + + Náboje pro útoènou pušku 9x39... + + + Náboje pro odstøelovací pušku... + + + Náboje do kulometu 7.52x64... + + + Víc nemùžu vydat, majore... Plukovník vydal rozkaz k šetøení municí. + + + OK, to je dobrý. + + + Potøebuju granáty. + + + Žádný problém. Jakého typu? + + + Ruèní granáty... + + + Tady máš... + + + Munici do odpalovaèe VOG-25. + + + Munici do odpalovaèe M209. + + + Víš co? Já už pùjdu. + + + Víc nemùžu vydat, majore... Plukovník vydal rozkaz k ponechání munice. + + + Potøebuju lékaøskou pomoc. + + + Vždy jsem pøipraven pomoci. Podívám se na to... + + + Jsi zdravý jako øípa. + + + Jak se cítíš po tom, co se stalo? + + + Už jsem v poøádku... Po událostech v mateøské školce jsem byl v šoku, ale jakmile se objevila emise, docela rychle jsem se z nìj probral... + + + Zdravím. + + + Nejdùležitìjší je dostat se k vrtulníkùm. + + + Potøebuju lékaøské vybavení. + + + Podíváme se, co bych tady pro tebe mìl. Tady, vezmi si tohle... + + + Promiò, ale už mi toho moc nezbylo, víc ti dát nemùžu... + + + Sledovali jsme rádiový signál. + + + Jo. Kontaktoval jsem stalkera zvaného Prùvodce. Øekl, jak se na toto místo dostat podzemními tunely. + + + Kdo je Prùvodce? + + + Je to žijící legenda, o které se øíká, že tì v rámci Zóny mùže dovést kamkoliv... Ti chlapi z armády mìli štìstí, že ho potkali, protože bez nìj by nežili dlouho. + + + Jak víš, že tady byla armáda? + + + Prùvodce mi o tom øekl. Je jeden z tìch, kteøí sem pøivedli Kovalského a jeho jednotku. + + + Aha. + + + Jaké informace chceš vládì pøedat? + + + Je toho hodnì... Jsem si jistý, že moje informace by mohly být zneužity ke znièení Zóny. Myslel jsem, že to udìlám sám... Ale ukázalo se, že to není tak jednoduché. Lidé, kteøí s tím zaèali, už nejsou u moci... Až se odsud dostaneme, všechno ti vysvìtlím. + + + Co jsi v Sarkofágu vidìl? + + + Všechno je to podvod... Kámen splnìných pøání je pouhý podvod, zaøízení, které zastiòuje tvou mysl. A lidi, kteøí za tím stojí, se skrývají nìkde jinde... + + + Víš, kdo za tím je? + + + Možná jo, možná ne... Už nevím, èemu mám vìøit... Navíc jsem zjistil víc, než po mnì vùbec chtìli. + + + Dobrá, necháme toho. + + + Øeknu všechno, co vím. Ovšem jen v pøípadì, že se moje informace dostanou ke správným lidem. + + + Na cestì sem jsem našel skrýš tvého týmu... + + + Zajímalo by mì, jak jsi to dokázal... Uvnitø by mìly být nìjaké záznamy, našel jsi je? + + + Jo, našel jsem tøi poznámky. + + + Díky... Duch a Tesák byli mými kamarády... Spoleènì jsme se dostali pøes Vypalovaèe a dostali se do CNPP. Oba bohužel zemøeli. Po našem návratu jsme se rozdìlili – já jsem byl zranìn a zùstal s Doktorem v bažinách. Pak už jsem je nevidìl... O nìco pozdìji jsem zjistil, že Tesáka zabili žoldáci a Duch zemøel, protože dùvìøoval vìdcùm... Ale to je minulost... Teï už vím, co musím udìlat, aby pøátelé neumírali zbyteènì. + + + Jo, tady je tvá zpráva pro Ducha. + + + Díky... Duch byl mým kamarádem... Spoleènì s Duchem a Tesákem jsme se dostali pøes Vypalovaèe a dostali se do CNPP. Oba bohužel zemøeli. Po našem návratu jsme se rozdìlili – já jsem byl zranìn a zùstal s Doktorem v bažinách. Pak už jsem je nevidìl... O nìco pozdìji jsem zjistil, že Tesáka zabili žoldáci a Duch zemøel, protože dùvìøoval vìdcùm... + + + Jo, tady je zpráva Tesáka urèená pro tebe. + + + Díky... Tesák byl mým kamarádem... Spoleènì s Duchem a Tesákem jsme se dostali pøes Vypalovaèe a dostali se do CNPP. Oba bohužel zemøeli. Po našem návratu jsme se rozdìlili – já jsem byl zranìn a zùstal s Doktorem v bažinách. Pak už jsem je nevidìl... O nìco pozdìji jsem zjistil, že Tesáka zabili žoldáci a Duch zemøel, protože dùvìøoval vìdcùm... + + + Jo, tady je tvá zpráva pro Fanga. + + + Díky... Tesák byl mým kamarádem... Spoleènì s Duchem a Tesákem jsme se dostali pøes Vypalovaèe a dostali se do CNPP. Oba bohužel zemøeli. Po našem návratu jsme se rozdìlili – já jsem byl zranìn a zùstal s Doktorem v bažinách. Pak už jsem je nevidìl... O nìco pozdìji jsem zjistil, že Tesáka zabili žoldáci a Duch zemøel, protože dùvìøoval vìdcùm... + + + Jo, tady je tvá zpráva pro Ducha a Tesákova zpráva pro tebe. + + + Díky... Duch a Tesák byli mými kamarády... Spoleènì jsme se dostali pøes Vypalovaèe a dostali se do CNPP. Oba bohužel zemøeli. Po našem návratu jsme se rozdìlili – já jsem byl zranìn a zùstal s Doktorem v bažinách. Pak už jsem je nevidìl... O nìco pozdìji jsem zjistil, že Tesáka zabili žoldáci a Duch zemøel, protože dùvìøoval vìdcùm... + + + Jo, tady je tvá zpráva pro Ducha a další pro Tesáka. + + + Díky... Duch a Tesák byli mými kamarády... Spoleènì jsme se dostali pøes Vypalovaèe a dostali se do CNPP. Oba bohužel zemøeli. Po našem návratu jsme se rozdìlili – já jsem byl zranìn a zùstal s Doktorem v bažinách. Pak už jsem je nevidìl... O nìco pozdìji jsem zjistil, že Tesáka zabili žoldáci a Duch zemøel, protože dùvìøoval vìdcùm... + + + Jo, tady je tvá zpráva pro Tesáka a jeho zpráva pro tebe. + + + Díky... Tesák byl mým kamarádem... Spoleènì s Duchem a Tesákem jsme se dostali pøes Vypalovaèe a dostali se do CNPP. Oba bohužel zemøeli. Po našem návratu jsme se rozdìlili – já jsem byl zranìn a zùstal s Doktorem v bažinách. Pak už jsem je nevidìl... O nìco pozdìji jsem zjistil, že Tesáka zabili žoldáci a Duch zemøel, protože dùvìøoval vìdcùm... + + + Ano, ale bohužel je sebou nemám. + + + Podívám se na to... To je hrùza, majore... Hele, lékaøskými testy pro vesmírný program bys asi prošel, ale kondici máš jinak pøíšernou! Hehe! + + + Pojïte, majore. Lidi z Monolitu nebudou èekat. + + + Majore, ztratil se nám jeden hlídaè - není na svém místì. Podle signálu se teï nachází v obchodu, ale na volání neodpovídá. Kdo ví, co se tam semlelo, tøeba se zhroutil. Poøád ještì tak úplnì nevydejchal ten pád vrtulníku. Mohl byste to tam skoèit provìøit? + + + S radostí. + + + Nemùžu nic slíbit. + + + Majore, musíme najít naše prùzkumníky. + + + Vezmete si útoèné družstvo a vyrazíte k objektu A17 - kapitán Tarasov vás tam zavede. Vaším cílem budou dvì nemocnièní køídla propojená chodbou. Západní køídlo momentálnì drží bojovníci Monolitu. Vy pùjdete do druhého køídla a nastražíte na nì léèku. Pušku budou mít nejspíš u sebe, urèitì s ní bude bojovat ten nejvìtší pošuk. + + + To bude nejspíš velitel. Chlapi ho vidìli, jak ostatním bojovníkùm dává kázání. Doslova! Dávejte si pozor, nevíme, co od nìj mùžeme oèekávat. + + + Rozumím, plukovníku. + + + Dobrý den. Já jsem plukovník Kovalskij, velitel této jednotky. + + + Major Dìgtarev, SBU. Mám prošetøit okolnosti, za jakých došlo k selhání Operace Prùplav. + + + Aha. V tom pøípadì poslouchejte, Majore. Operace Prùplav šla do kytek, a stejnì tak i naše vrtulníky. Pùlka mých chlapù zaøvala a navíc se nemùžeme spojit s velitelstvím. I já bych moc rád vìdìl, proè se operace posrala. + + + Nápady? + + + Napadá mì jedinì to, že nám nìkdo ty vrtulníky sestøelil. A to pomocí extrémnì výkonných zbraní, o kterých prakticky nic nevíme. Jednu takovou zbraò používal Monolit pøi prvním útoku na Èernobyl. Rád bych jeden kousek dostal do rukou, abych se na nìj mohl podívat. Jestli nám chcete pomoct, pùjdeme pøepadnout družstvo Monolitu, které jednu takovou zbraò má. Naše útoèná skupina už jen èeká na povel k zahájení operace. Co øíkáte? + + + Souhlasím, ale jen za podmínky, že mi sdìlíte všechny zjištìné informace. A že mi ponecháte naprostou svobodu jednání. + + + Mám informace o té záhadné zbrani, té Gaussovì pušce. + + + Já zírám! Jak funguje? Dají se s ní sestøelovat vrtulníky? + + + Teoreticky ano, ale po kulkách by ve vrtulníku zùstaly prùstøely. Jenomže žádné tam nebyly. + + + Krucinál... to jsme tedy v koncích. Nic jiného mì nenapadá. Teï nám nezbývá než sedìt na zadku uprostøed téhle zpropadené Zóny a èekat, než si nás pøijdou vyzvednout. No... dost už bylo naøíkání. Soustøeïme se na vìci, které teï dokážeme ovlivnit. Díky vám víme, že vyèkávání v úkrytu nás pøed urychlenými kulkami neuchrání, a to se cení. Musím vám podìkovat, majore. Kdyby se objevilo nìco nového, ozvu se vám. + + + Teoreticky ano, ale Rejnoci 4 a 5 se zøítili kvùli selhání elektroniky. To urychlené støely nedokážou. + + + Jak pokraèuje operace? + + + Zabili rotného Morozova. Bojovníci Monolitu nás nalákali do pasti tím, že obìtovali pár vlastních lidí. + + + Hajzlové! O našem plánu ale vìdìt nemohli... Takže jsme pøišli o odstøelovaèe. Povedl se aspoò cíl operace? + + + Máme pár ztrát. Bojovníci Monolitu nás nalákali do pasti tím, že obìtovali pár vlastních lidí. + + + Hajzlové! O našem plánu ale vìdìt nemohli... Takže jsme pøišli o pár chlapù. Povedl se aspoò cíl operace? + + + Celé družstvo zaøvalo. Bojovníci Monolitu nás nalákali do pasti tím, že obìtovali pár vlastních lidí. + + + Hajzlové! O našem plánu ale vìdìt nemohli... Takže jsme pøišli o Tarasova a jeho chlapy. Povedl se aspoò cíl operace? + + + Zbraò mám u sebe. Bohužel byla v boji poškozena. + + + Nemùžeme tedy urèit, zda s její pomocí sestøelili ty vrtulníky, nebo ne. Poslouchejte, Majore: vím, že máte mezi stalkery dobré kontakty. Je možné, že s touto zbraní se už nìkdo setkal. Urèitì se mezi nimi najde i nìjaký technik. Co kdybyste si s ním promluvil? + + + Fajn. + + + Dobrá... a mimochodem. Z Jupiteru k nám pøišel další stalker. Jestli chcete, stavte se za ním na slovíèko. + + + Pracuje se na tom. + + + Aha. Majore, my tu zbraò potøebujeme. Urèitì chápete, jak je to dùležité. + + + Hmm. + + + Tu tvojí zprávu jsem našel na Volchovì. Tu máš. + + + Poslouchej... nebo radši nic. Stejnì by nakonec nikdo z vás nedorazil. Kdybys tu v okolí náhodou spatøil nìjaký vojáky, dej mi vìdìt, jasný? Pøedem dík. + + + Majore... díky bohu! Jsem zachránìn! + + + Jak jste se sem dostal? + + + Ehm... moc si toho nepamatuju. Mìl jsem tak nahnáno, že jsem nedokázal poøádnì pøemýšlet. Ani nevím, co mì tak vydìsilo. Prostì jsem cítil potøebu se schovat, tak jsem vzal nohy na ramena. Pamatuju si ulice, zatáèky... skonèil jsem tady. Dveøe byly zamèené zvenku, myslel jsem, že tu umøu. Jak jste mì našel? A nebo víte co... pojïme nejdøív pryè, vrátíme se na základnu. Bìhá mi tady mráz po zádech. + + + Jdeme. + + + Zdravím. Potøebujete ošetøit? Nejsem sice doktor, ale když je nejhùø, dokážu vytahovat kulky i zažívat rány. + + + Sháním informace. + + + Ptejte se. + + + Ještì k Operaci Prùplav... + + + Co je s ní? + + + Nestalo se nìco podivuhodného, když ještì vrtulníky byly ve vzduchu? + + + Dokud ještì spoøádanì letìly, tak nic. Drželi jsme se plánu mise - odstartovali jsme 90 minut pøed emisí, aktivovali jsme ochranné systémy a pustili jsme autopilota. Letìli jsme nejkratší bezpeènou trasou, kterou jsme vypoèítali podle mapy anomálií. Sice jsme nevidìli ani metr pøed sebe, ale to nemìlo nièemu vadit, protože jsme vybrali dost široký koridor. Podle plánu jsme k elektrárnì mìli doletìt pøesnì za dvanáct a pùl minuty. Po devíti minutách jsme ale ztratili spojení s Rejnokem 4, naèež zaèaly ostatní vrtulníky padat jako hrušky. + + + Mìl bych ještì pár otázek ohlednì té operace... + + + Co všechno víte o tìch vrtulnících? + + + Nic moc. Rejnok 2 a 4 jsou úplnou záhadou. Nemám ponìtí, kam spadly ani co se stalo s chlapama na palubì. Informace o ostatních vrtulnících máme jen od chlapù, co to pøežili, takže neèekejte, že si z nich sestavíte objektivní pøedstavu. Mìli jsme dùležitìjší vìci na práci. + + + Povìzte mi o Rejnoku 1. + + + Jak jste se dostali až sem? + + + Kousek od minového pole jsme potkali jednoho stalkera. Asi slyšel, jak vybuchují miny. Divnej typ... øíkal si Prùvodce. Na nic se neptal a rovnou se nabídl, že nás zavede do Pripjati. To odpovídalo našim plánùm, takže jsme souhlasili. Pro jistotu jsme si na nìj dávali bacha, ale všechno šlo hladce. Až do mìsta nepronesl ani slovo a jakmile jsme dorazili na místo, prostì bez varování zmizel. Rozkázal jsem chlapùm, aby ho nehledali. + + + Povìzte mi o Rejnoku 3. + + + Kapitán Tarasov tvrdí, že selhaly oba rotory. Museli pak pøistát na kopci nedaleko pozice B2. Mìli štìstí a pøistáli celkem mìkce, ale technik nemìl èas poøádnì se podívat po pøíèinì závady, protože na nì zaútoèili snorkové. Zaøvali tam tøi chlapi. Ostatní si øekli, že se tam radši nebudou zdržovat, spojili se s Rejnokem 5 a vydali se za jeho posádkou. Cestou se zapletli do pøestøelky s po zuby ozbrojeným nepøátelským družstvem, ale nakonec z ní vyvázli bez dalších ztrát. + + + Jak se dostali do Pripjati? + + + Posádky Rejnokù 3 až 5 se setkaly nedaleko míst dopadu poblíž jakési øíèní bárky. V hlášení mi pak uvedli, že tam žil nìjaký totální pošuk: když se ho mí muži pokusili zadržet, on se pokusil zadržet je! Vùbec mu nevadilo, že šel sám proti jedenácti chlapùm. Když se to urovnalo, ukázalo se, že jim ho poslala prozøetelnost sama, protože se s ním dohodli a on pak celé družstvo zavedl témìø nezranìné až do Pripjati. Jediná nehoda se pøihodila poruèíku Stecenkovi, který cestou pøišel v gravitaèní anomálii o nìkolik prstù na noze. + + + Povìzte mi o Rejnoku 5. + + + Rejnoku 5 vypadla elektronika, a tak se zaboøil rovnou do bažiny. Náraz pøežilo jen pár mužù. Ti si z vrtulníku vytahali vlastní výstroj a pøi té pøíležitost se spojili s Rejnokem 3. Jejich velicí dùstojník, major Neborskij, zemøel cestou na místo setkání. Chudák, kousek od radarové stanice ho dostal snork... Ostatní vyvázli bez vìtších problémù. Dalšího chlapa, rotmistra Batjaje - ten patøil k odstøelovaèùm - ztratili, když dorazili do Pripjati a zapletli se do pøestøelky s vojáky Monolitu. + + + Jak se do té Pripjati dostali? + + + Posádky Rejnokù 3 až 5 se setkaly nedaleko míst dopadu poblíž jakési øíèní bárky. V hlášení mi pak uvedli, že tam žil nìjaký totální pošuk: když se ho mí muži pokusili zadržet, on se pokusil zadržet je! Vùbec mu nevadilo, že šel sám proti jedenácti chlapùm. Když se to urovnalo, ukázalo se, že jim ho poslala prozøetelnost sama, protože se s ním dohodli a on pak celé družstvo zavedl témìø nezranìné až do Pripjati. Jediná nehoda se pøihodila poruèíku Stecenkovi, který cestou pøišel v gravitaèní anomálii o nìkolik prstù na noze. + + + Nic moc. Rejnok 2 je pro mì úplnou záhadou. Nemám ponìtí, kam spadl ani co se stalo s chlapama na palubì. O Rejnoku 4 byste toho dokonce mìl vìdìt víc než já. Z toho vrtulníku pøežil jenom poruèík Sokolov - sám jste sem s ním pøišel. Informace o ostatních vrtulnících máme jen od chlapù, co to pøežili, takže neèekejte, že si z nich sestavíte objektivní pøedstavu. Mìli jsme dùležitìjší vìci na práci. + + + Nic moc. Rejnok 2 je pro mì úplnou záhadou. Nemám ponìtí, kam spadl ani co se stalo s chlapama na palubì. Na Rejnoka 4 se mùžete osobnì poptat u poruèíka Sokolova. Je jediný z celé posádky, kdo vyvázl a dostal se až do Pripjati. Informace o ostatních vrtulnících máme jen od chlapù, co to pøežili, takže neèekejte, že si z nich sestavíte objektivní pøedstavu. Mìli jsme dùležitìjší vìci na práci. + + + Zajímá mì ještì pár dalších informací. + + + Nemám dalších otázek. + + + Jak vypadá situace v Pripjati? + + + Na hovno jako vždycky. Pripja je zamoøená smìsicí fanatikù z Monolitu a zombíkù. Emise pøicházejí jedna po druhé a èlovìk se musí poøád mít na pozoru pøed mutanty a anomáliemi... vítejte v pekle. + + + Kde berete výzbroj a zásoby? + + + Povídejte mi o Monolitu. + + + Jsou to praví a nefalšovaní fanatici. Nevím, co je tak žere, ale ze všeho nejradši by se poøád s nìkým støíleli. Navíc nikdy neustoupí, ani kdyby stáli proti ohromné pøesile a silnìjším zbraním. Taková kuráž se tady èasto nevidí. Mám dojem, že jim z Èernobylu prùbìžnì chodí nové a nové posily. Svinì zasraný, už jsem kvùli nim pøišel o spoustu dobrých chlapù... + + + Zkoušeli jste nìkteré vyslýchat? + + + Žádný efekt. První problém je, že bojují až do smrti. Nakonec se chlapcùm podaøilo jednoho omráèit granátem a zajmout ho živého, ale stejnì to nebylo k nièemu. Na chvilku jsme z nìj spustili oèi a on zaèal bušit hlavou do zdi, až mu nakonec lebka praskla jako vajíèko. + + + Co budete dìlat teï? + + + Øekl bych, že Operaci Prùplav budeme muset odvolat. Že sem poslali vás, tím se to jenom potvrzuje. Mám v úmyslu bránit základnu, dokud pro nás nepošlou vrtulníky. Pøišel jsem s nìkolika potenciálními daty evakuace. + + + Nepošlou žádné vrtulníky, dokud nezjistíme, proè se zøítili všichni Rejnoci. + + + Takže tak je to... no, pìšky se odsud beztak nedostaneme. Tohle peklo se táhne od nevidím do nevidím a Zóna je navíc plná stalkerù, kteøí nás nemají zrovna v lásce. Což znamená, že nejlepším øešením bude zahájit vlastní vyšetøování, a pokud možno pøi nìm nenatáhnout brka. Majore, máme spoleèný cíl. + + + Teï ne. + + + Poslouchám, majore. + + + Jediná naše výzbroj je ta, kterou jsme si sami pøinesli. No, vlastnì se nám i povedlo pobrat trochu vìcí po Monolitu, pøevážnì munici. Pøesto toho máme málo, a tak radši všechno vydávám na pøídìl. To platí i pro jídlo - máme jenom vlastní zásoby a pár konzerv ze skladištì Monolitu. + + + Jediná naše výzbroj je ta, kterou jsme si sami pøinesli. No, vlastnì se nám i povedlo pobrat trochu vìcí po Monolitu, pøevážnì munici. Pøesto toho máme málo, a tak radši všechno vydávám na pøídìl. Co se potravin týèe, tam je situace prakticky stejná, jen s tím rozdílem, že jsem uzavøel dohodu s Garikem. Od nám nosí konzervy, já ho nechávám pøespávat na základnì a pøivírám oèi, když vyráží hledat artefakty. Stejnì nemáme moc na výbìr. + + + Pomstili jsme naše chlapy... Zaøiï si, co potøebuješ, a padáme vodsaï. Nechci se tu zdržovat. + + + Nebudeme tady vysedávat, že ne? Chci se co nejdøív vrátit na základnu. + + + Dobøe. + + + To je ta divná vìc! K èemu jim je asi dobrá? No nic, kašlem na to. Zaøiï si, co potøebuješ, a padáme zpátky na základnu. + + + Hotovej? Navrhuju vrátit se zpátky na základnu a poøádnì si nacpat nácka... + + + Dobøe. + + + Jak se vede? + + + Na hovno. Je sice super bejt zase mezi vlastníma, ale maèkat se s bandou lidí v jedný díøe není vùbec žádný žùžo. + + + Vás jsem tu ještì nevidìl. Jste tu nový? + + + Jo. Poruèík Sokolov, druhý pilot Rejnoka 4. + + + Jak jste se sem dostal? + + + Pøivedl mì stalker jménem Garik. Hledal cestu do Pripjati, tak jsem se ho zeptal, jestli bych nemohl jít s ním. Na mou duši, byla to poøádná štreka! Šatnou náhodou jsme hned za pøedmìstí Pripjati narazili na naše prùzkumníky. + + + Co se stalo s Rejnokem 4? + + + Co já vim? Mám z tý vìci takovej divnej pocit. To si tak letíme spokojenì na autopilota, všechny pøístroje v poøádku... a najednou se snažíme pilotovat létající kus šrotu, kterýmu odešla všechna elektronika. S kolegou pilotem jsme se snažili pøistát na rovný ploše, ale nevyšlo to. Sekli jsme sebou pøímo do hlavní tovární linky v Jupiteru, hezky støechou dovnitø... pøežil jsem jenom já. + + + Potøebuju zbroj. + + + Dobøe. Nejdøív si vezmi tuhle helmu... tak a teï vestu. Doufám, že je to tvoje velikost, protože žádnou jinou momentálnì nemám. Je záplatovaná, ale mìla by vydržet. + + + Zajisté, majore. V této situaci stejnì nemám pøíliš na výbìr. A mimochodem, stavte se u poruèíka Kirilova. Vydá vám nìjakou výzbroj. + + + Ještì k tìm vrtulníkùm... + + + Poslouchám + + + Ty vole, to je hustý... Už vidím, jak u mì Kirilov škemrá o aspirin. + + + Èekání je vždycky to nejhorší. Èlovìka ubíjí víc než cokoliv jiného. + + + Dobrá, majore, chlapi jsou pøipraveni. Jestli potøebujete doplnit výzbroj, skoète za Rogovcem a Kirilovem. Až budete pøipraven, dejte vìdìt. + + + Dobøe. + + + Pohyb. + + + No tak v tom pøípadì budu potøebovat prvotøídní ochrannej oblek, nìco jako mají vìdci. Jenomže pøemluvit Hermanna, aby mi jeden vydal, nebude snadný. Cosi mi øíká, že by mì radši vidìl bìhat nahatýho po okrajích Zóny, než aby mì trpìl ve vlastním bunkru... Co kdyby ses ale zeptal Ozerskeho? Ten je pøíjemnìjší a možná by mi jednu kombinézu pøenechal. + + + Nuže, majore? + + + [pokraèovat...] + + + [pokraèovat...] + + + Byl jsem na palubì. Jakmile se zøítil Rejnok 4, rozeslal jsem ostatním souøadnice evakuaèního bodu v Pripjati - myslel jsem, že k elektrárnì snadno dojdeme pìšky. Hned v zápìtí náš vrtulník schytal zásah a já ucítil, jak se nìco pálí - vznítil se nám motor. Pilotùm se nás podaøilo navést na pøistávací plochu u Jupiteru, ale pøi nárazu oba zahynuli. Potom rotný Sliaèin vylítl do luftu, a tak jsme zjistili, že pøíchodové cesty k pøistávacím plochám jsou dùkladnì zaminované. Dalšího muže, byl to nadporuèík, jsme ztratili v Pripjati, když jsme s Monolitem bojovali o tuhle budovu. + + diff --git a/gamedata/configs/text/cze/st_dialogs_zaton.xml b/gamedata/configs/text/cze/st_dialogs_zaton.xml new file mode 100644 index 0000000..f264d17 --- /dev/null +++ b/gamedata/configs/text/cze/st_dialogs_zaton.xml @@ -0,0 +1,3117 @@ + + + + V rýpací stanici se nacházel zvláštní artefakt. Tady je. + + + Zajímavé, poloartefakt... Tady jsou tvoje peníze. Za dobøe vykonanou práci dobøe platím... Zdá se, že ses toho dost nauèil. Až budeš potøebovat práci, pøijï za mnou. Èasto dostávám objednávky na urèité artefakty a odmìna je opravdu lákavá. + + + Máš pro mì nìjakou práci? + + + Nìco bych tady mìl... Stalkeøi minulou noc zpozorovali v rýpací stanici zvláštní druh záøe... I na tuhle oblast byla moc divná. Nechtìl by ses tam porozhlédnout? + + + Urèitì. + + + Dávej tam na sebe pozor. To místo je zamoøeno radiací. Nezapomeò na svoje léky, pozdìji mi za nì podìkuješ. + + + Teï ne. + + + Veškeré úkoly, které jsem si na dnešní den naplánoval, jsem zvládl. + + + Vezmi tento poloartefakt. + + + Tady je tvoje odmìna. Za dobøe vykonanou práci dobøe platím... Zdá se, že ses toho dost nauèil. Až budeš potøebovat práci, pøijï za mnou. Èasto dostávám objednávky na urèité artefakty a odmìna je opravdu lákavá. + + + V rýpací stanici jsem našel zvláštní artefakt. Chceš se podívat? + + + Zajímavé, poloartefakt... Dovol mi ulehèit ti od nìj. 3000 se mi zdá jako dobrá cena. + + + Všiml jsem si, že ti nìkdo pøinesl artefakt, který jsem našel. + + + Promiò, ale do toho se nenechám zatáhnout. Moje pravidla jsou jednoduchá – dodej zboží a dostaneš peníze. Dobøe víš, jak to v Zónì funguje – mìj oèi otevøené, jednej rychle a nevìø nikomu. Ale pokud hledáš stálou práci, jsi na správném místì. Èasto dostávám objednávky na urèité artefakty a odmìna je opravdu lákavá. + + + Které artefakty potøebuješ? + + + Seženu Gravi. + + + Skvìlé! To byla rychlost! Tady máš svou odmìnu. + + + Seženu Oko. + + + Seženu Bublinu. + + + Seženu Skoøápku. + + + Seženu Zlatou rybku. + + + Seženu Plamen. + + + Seženu Svìtlušku. + + + Seženu Vloèku. + + + Mùžu ti prodat Gravi. + + + Dìje se nìco divného. Chlapi pøijmou zakázku a pak zmizí... Zaèínám mít problémy, asi budu muset zavøít krám. + + + Mùžu ti prodat Oko. + + + Mùžu ti prodat Bublinu. + + + Mùžu ti prodat Skoøápku. + + + Mùžu ti prodat Zlatou rybku. + + + Mùžu ti prodat Plamen. + + + Mùžu ti prodat Svìtlušku. + + + Mùžu ti prodat Vloèku. + + + Jasnì. Vrátím se o nìco pozdìji. + + + Oba týmy, které pro mì pracovaly, zmizely... Rozhodl jsem se, že od nynìjška nebudu pøijímat žádné další objednávky. + + + Práce je hotová. + + + Skvìle! Tady máš svou odmìnu. + + + Tady máš. Není to mnoho, ale lepší než nic. + + + Øekni mi o objednávkách artefaktù. + + + Koho bych mohl najmout na ochranu vìdcù? + + + Moje chlapy – Spartaka a jeho tým. Nìco už mají za sebou. Nìkteøí pøed pøíchodem do Zóny pracovali jako hlídaèi a vìø tomu nebo ne, nìkteøí dokonce patøili ke speciálním policejním útvarùm. Ti chlapi ví, jak se zachází se spouští... Pokud budou k dispozici, poskytnou ti dobrou ochranu. + + + Jindy bych pro tebe mìl jeden tip, ale vzhledem k posledním událostem... Spartakus a jeho týmu už zkrátka není, a odpoèívají v pokoji. + + + Koho bych mohl najmout kvùli provedení nìkolika mìøení pro vìdce? + + + Znáš Gontu a jeho chlapy? Mimo loveckou sezónu jsou … ehm … jsou rádi za jakoukoliv práci. Zvláš když kvùli ní nemusí støílet. Jejich myšlení by se dalo popsat slovy "když cítím, že mì zaèínají svrbìt prsty, jdu lovit.“ + + + V tomhle ti nepomùžu. Doporuèil bych ti Gontùv tým, ale už dlouho jsem o nich neslyšel. + + + Øekni mi, jak se tady žije. + + + To je na dlouho. Zkus se zeptat na nìco konkrétního a možná ti na to odpovím. + + + Co tady stalkeøi dìlají? + + + Ptej se sám sebe, kámo. Vycházejí ze Skadovsku, aby prozkoumali terén, hledali artefakty a zastøíleli si na všechno a na všechny, kdo je pøi tom ruší. Pøicházejí zpátky do Skadovsku, aby se opili a pobili... a odpoèinuli si pøed dalšími nájezdy. Ale když se objeví emise, všechno je jinak. Pak si všichni spoleènì sedneme a vzpomínáme na ty, kteøí se nestihli ukrýt... + + + Co žene stalkery dovnitø Zóny? + + + Vtipná otázka. Nìkteøí se tam snažili najít další Klondike artefaktù. Nìkteøí byli pøivábeni legendami o Oáze. Jiní hledali Plniè pøání. A pak tady máme klasické lidské potøeby jako chamtivost a zvìdavost... Každý má svùj dùvod. Jsem si jistý, že ty taky... + + + Jak to, že jsi zrovna tady? + + + Pøišel jsem s Tetøevem, jakmile byl vypnut Vypalovaè. Ale tohle asi poslouchat nechceš, že? Jedu hlavnì v artefaktech. Tretek už je venku dost a bohatší zákazníci požadují vzácnìjší vìci. Proto jsem se rozhodl zakotvit v táboøe stalkerù, kde se dají najít opravdu cenné vìcièky. Hele, když se stalker vrátí se svou koøistí, co opravdu potøebuje? Chladivý kov v rukou a trochu toho lidského kontaktu. A to všechno Skadovsk mùže nabídnout. + + + Co si myslíš o banditech? + + + No, vìc se má takhle. Na palubì Skadovsku proti nim nic nemám, pokud se ovšem chovají jako lidi. Nakonec, vìtšinou tady nepotkáváš úplné pitomce. Nìkteøí z nich jsou vlastnì bývalí stalkeøi. Kdo ví, nìkteøí z tìch bídákù se možná rozhodnou, že bude lepší nechat své køivácké práce než chytnout kulku do hlavy... Život je plný pøekvapení. + + + Ne, v pohodì. Kašli na to. + + + Když øíkáš... + + + Øekni mi, objevila se tady armáda? + + + Zamysli se. Co by mariòáci dìlali v našem táboøe? Vìø mi, když ti øeknu, že se tomuhle místu radši vyhýbají. Pøíliš mnoho místních si ještì živì pamatuje, jak se v Kordonu plazili blátem, zatímco na nì vojáci pálili ze svých kulometù... + + + Povìz mi nìco o Kompasu. + + + Tenhle artefakt je opravdová legenda. Øíká se, že nemá žádné škodlivé vedlejší úèinky, a pokud ho umíš využít, mùže tì vyvést z anomálie. Teï ti je asi jasné, proè o nìj zákazníci mají takový zájem. Pøed pár dny mi nìkdo øíkal, že Noe o tom nìco ví. Je to stalker, který bydlí na jih odsud. + + + Dobrá, zajdu za Noem. + + + Budu nad tím uvažovat. + + + Legendární artefakt, jak už jsem ti døív øekl. Øíká se, že stalker zvaný Noe by o nìm mohl nìco vìdìt. Bydlí jižnì odsud. + + + Nedaleko Janova jsem narazil na zvláštní artefakt. Máš o nìj zájem? + + + Ukaž to... Rozhodnì to je zajímavá vìcièka, ale nemyslím si, že bych to nìkomu prodal. Doporuèuju, abys zamíøil zpátky do Janova a ukázal to vìdcùm. Tyhle divné hovadiny jim dokážou rozproudit krev v žilách. + + + Hejkal øíká, že neplníš svou èást dohody. + + + Mìli jsme naprosto jasnou dohodu: já dostanu detektory, využiju je pro mìøení pole a on dostane èást ziskù. Už jsem mu zaplatil za dva detektory, takže ty podmínky dodržuju. To je všechno, co naše dohoda s Hejkalem obsahuje. Pokud pro nìj pracuješ, mùžeš mu vzít tøetí detektor – nekoupím ho. + + + Takže co bych mìl øíct Hejkalovi? + + + Budiž. + + + Kdybych byl tebou, s Hejkalem bych nejednal. Pokud si chceš slušnì vydìlat, mùžu ti pro zaèátek dát pár rad ohlednì hledání artefaktù. Dvì, tøi nebo ètyøi hodiny – dost na to, abys vìdìl víc než ostatní. A pokud budeš mít zájem, mìl bych tady navíc jednu speciální objednávku. Co nejdøív potøebuju sehnat artefakt jménem Kompas. + + + Sultán dokázal sebrat Kompas. + + + Ten hajzl se s tím nepárá... dobrá, nevadí. Zkus si zase promluvit s Noem. Zaèíná se mluvit o tom, že ta vìcièka by mohla být... užiteèná. + + + Našel jsem Kompas. Tady je. + + + Kámo, zachránil jsi mi život! Koneènì mám tuhle žádanou vìcièku u sebe. Øíká se, že Sultán chtìl pøevzít nadvládu nad mým obchodem. Asi bude naštvaný, ale dobøe mu tak, zaslouží si to. Tady máš – rozhodnì sis to zasloužil. + + + Odmítám pro tebe hledat Kompas. + + + Škoda. Jak chceš. + + + Sultán tì pozdravuje. Mimochodem, všechny tvoje obchodní zdroje byly odøíznuty. + + + Teï už je jasné, kdo za tím vším stojí... No, Skadovsk neopustím. Takže asi nemám jinou možnost než pracovat pro tebe a Sultána. Dostane svou èást ziskù a ty si budeš každý den chodit pro tu svou. Peníze tady budou èekat. + + + Dej mi mùj podíl. + + + Tady máš. + + + Jdeš brzy. Ještì žádné prachy nemám. + + + Myslíš, že by Èipera mohl jet v kradeném zboží? + + + O tom pochybuju... Podle toho, co o nìm vím, tyhle èerné obchody nechává na ostatních. Poctiví obchodníci si jeho jména a povìsti váží. Abych to shrnul, nikdy jsem neslyšel, že by o nìm nìkdo øekl nìco špatného. + + + Hledám Pahejla. Nevíš, kde bych ho našel? + + + Když jsem ho vidìl naposled, vycházel z baru. Pokud si dobøe vzpomínám, v baru se bavil o tom, že pùjde k jeøábùm v docích. Tam by ses po nìm mohl podívat. + + + Nìkdo se chystá okrást skupinu stalkerù. Vèetnì našich chlapù. + + + Páni. Nestaèí, že banditù pøibývá jako králíkù, to se ještì budeme mlátit mezi sebou? + + + Chtìli po mnì, abych v noci zaútoèil na tábor u Ševèenka. + + + Svinì... Vlastnì by bylo hezké, kdybys jejich nabídku pøijal. Víš, kam míøím? Pak bych mohl øíct svým chlapcùm, aby našim hostùm pøichystali pøíjemné pøivítání. + + + Souhlasím. + + + OK, zajdi za tìmi blbci a já o tom zatím øeknu chlapùm. + + + Promiò, jsi v tom sám. + + + Mám tady artefakt z Oázy. Máš o nìj zájem? + + + Srdce Oázy? Ne, myslím, že ti ho nechám. Lidi øíkají rùzné vìci... Mùžou to být jen povìry, ale radši se od toho budu držet dál. Myslím, že neudìláš chybu, když ho pøedáš vìdcùm. Ti artefakt prostudují a pomohou nám pochopit, jak ovlivòuje lidi. + + + Jsi tady nový? To je v poøádku, brzy zapadneš... Víš, Zóna je tvrdý uèitel. Jsem Fousáè, místní barman. Pokud budeš mít nìjaké otázky, zastav se. + + + Do toho. + + + Co bys øekl na to, vydìlat si nìjaké peníze hledáním artefaktù? + + + Jak si stojí stav mé objednávky? Pamatuj: rychlejší stalker si vydìlá víc... + + + Jdeš pozdì, ten artefakt už mi nìkdo pøinesl. Ale pokud jsi úkol dokonèil, poøád ti za to zaplatím. Jen ne tolik. + + + Nìco se zrovna objevilo. Øíká se, že banditi se chystají nakoupit spoustu zbraní. Naši chlapi je chtìjí sledovat a transakci pøekazit. Ocenili bychom jakoukoliv pomoc. + + + Tak co? + + + Co žoldáci pohledávají v továrnì na zpracování odpadu? + + + Radši se od toho místa drž dál. Není to tvoje starost. + + + Baví tì pracovat pro vìdce? + + + Docela jo. Jsem rád, že sis ze všech lidí vybral nás. Jsme ta nejlepší možná ochrana, jakou vìdci mohli dostat. + + + Dávám dohromady tým na cestu do Pripjati. Pøipojíš se k nám? + + + Ne. Musím dávat pozor na vìdce... Ale mùžeš si promluvit se Sokolovem – myslím, že do Pripjati chtìl jít. + + + Ne. Musím dávat pozor na vìdce... Proto tady vlastnì jsme. + + + Ehm... Ne, moje místo je teï tady. + + + Chtìl bys pracovat pro vìdce? + + + To záleží... Co je to za práci? + + + Hlídání jejich bunkru. + + + Jasnì, a díky za nabídku. + + + Provádìní mìøení v anomáliích. + + + Tenhle typ práce není nic pro nás. Radši se zeptej stalkerù. + + + Poslouchej, stalkere. Už teï mì mùj prázdný žaludek ubíjí a tvoje remcání to ještì zhoršuje... + + + Mohl bych ti pøinést nìco k jídlu. + + + Hah! Dobrá, udìlej to. Maso v plechovce, klobásy a chleba... Šest kusù z každého. Pøines toho dost, protože jsme hladoví jako vlci. + + + Slyšel jsem, že by tady mohlo být nìjaké náøadí. + + + Jak to mám sakra vìdìt? Ale byl bych rád, kdybys tady pøestal pobíhat jak splašený. Už tak tady máme tolik práce, že nemáme koho poslat pro jídlo. + + + Jak to mám sakra vìdìt? Ale klidnì se v tomhle harampádí hrabej. Možná najdeš, co potøebuješ. + + + Tady je to jídlo. + + + Wow, už jsem ztrácel nadìji... Díky. Teï si s chlapy udìláme dobrý obìd. Tak cos chtìl? Pohrabat se v harampádí? Klidnì se do toho pus. Možná najdeš, co potøebuješ. Ale pøestaò tady mávat tou svou pistolkou! + + + Wow, už jsem ztrácel nadìji... Díky. Teï si s chlapy udìláme dobrý obìd. Poslyš, pokud si to tady chceš prohlédnout... Jen do toho. Ale pøestaò tady mávat tou svou pistolkou. + + + Tady nejsi vítán. Tenhle tábor patøí nám a ty tady nemáš co pohledávat. Moji chlapi jsou i bez tebe až pøíliš hladoví a nervózní... + + + Vypadni, protože moji chlapi jsou tak hladoví, že už neovládají prsty na spouštích. + + + Hele, stalkere... Jde o nìco dùležitého? Pokud ne, práce mám dost. + + + Jsem pøipraven na lov. + + + Dobrá. Jdeme. + + + Jdeme. + + + Ještì nenadešel správný èas. Vra se ve tøi ráno. + + + Aha. + + + My taky... Ale díky té emisi teï chiméra rozhodnì nebude spát. Myslím, že to musíme zkusit jindy. + + + Gonta je mrtvý. Jak se to jen mohlo stát... Nejdeš náhodou do Janova? Mìl by tam být Pastièkáø, Gontùv pøítel. Mohl bys mu vyøídit, že chiméra je mrtvá? Já teï asi pùjdu domù. + + + Mìj se. + + + Vypadni odsud. Gonta zemøel i kvùli tobì... Co teï budeme dìlat? + + + Mìj se. + + + Øekni mi nìco o sobì. + + + Øíkají mi Gonta a jsem velitel loveckého týmu. Likvidujeme mutanty za peníze. Mùžeme je chytat i živé, buï pro vìdecké úèely nebo pro lidi, kteøí si chtìjí poøídit exotického mazlíèka... jak øíkával Pastièkáø: "Každá živá potvora si zaslouží svou vlastní kulku..." + + + Povìz mi nìco o lovení mutantù. + + + Hele, nejsem nejzkušenìjším lovcem, ale vím toho docela dost o zvíøatech pohybujících se ve skupinách. O flaksách, kancích, slepých psech, pseudopsech, snorcích, tarbících... Dokonce vím nìco málo i o upírech. + + + Øekni mi o flaksách a kancích. + + + Dobrá. Flaksy jsou nejneškodnìjší ze všech mutantù. Snaží se stalkerùm vyhýbat, ale pokud na nì zaútoèíš, brání se. Pokud ale mezi flaksami pobíhá kanec, smrdí z toho prùser. Tøi metráky vzteku nejsou nic, s èím by sis chtìl zahrávat. Pokud na tebe zaútoèí, snaž se uhnout... Využij jejich setrvaènosti. Taková hromada masa asi nebude žádná baletka, že? Uskoè do strany a pak tu potvoru zasypej sprškou støel. + + + Øekni mi nìco o slepých psech a pseudopsech. + + + Samotné psovité šelmy nejsou tak nebezpeènì, ale pokud jsou v tlupì, není to žádná sranda. Útoèí, jen pokud jsou hladové... problém je v tom, že jsou hladové skoro poøád. Pokud proti tobì stojí celá smeèka, zkus si s nimi poradit z nìjakého vyvýšeného místa, jinak tì prostì pøeválcujou. Zvláš pokud mezi nimi jsou dospìlí pseudopsi. Nejsou o moc násilnìjší než slepí psi, ale jsou mnohem mazanìjší a nebezpeènìjší... Pokud se ocitneš uprostøed smeèky, pak si pamatuj, že na tebe útoèí slepí psi. Pseudopes vìtšinou stojí stranou a útoèí jen obèas... Snaž se ho najít, protože jakmile ho zabiješ, slepí psi uteèou. + + + Øekni mi nìco o snorcích. + + + Pozùstatky lidí... Samotáøský snork pro zkušeného lovce nepøedstavuje takový problém. Poèkáš, až na tebe skoèí a ve vzduchu ho zasypeš sprškou støel. Ale když jich je víc... Jakmile uhýbáš jejich skokùm, nezbývá ti než do nich sypat jednu støelu za druhou. Moc dobøe to ví a proto útoèí spoleènì. + + + Øekni mi o tarbících. + + + Noèní mùra každého lovce... To nejhorší, co mùžeš udìlat, je dát na jejich velikost a podcenit je. Jsou neuvìøitelnì rychlí, pohotoví a vždy se pohybujou ve skupinách. Až ucítíš, jak do tebe bodají desítky malých tesákù, je na èase pøestat je ignorovat a zaèít støílet... A to je právì problém – zasáhnout je není jen tak. Proto všem lovcùm radím, aby u sebe poøád mìli nabitou brokovnici. + + + Øekni mi nìco o upírech. + + + Upíøi jsou sami o sobì zkušenými lovci v perfektním pøestrojení. Když se maskují, jsou skoro neviditelní. Pokud chceš ulovit upíra, musíš ho pøekvapit. Lépe ho spatøíš, když se pohybuje... Pamatuj na to, že upír se bude snažit pøikrást za tebe a omotat ti chapadla kolem krku. Fakt to není nic pøíjemného, chlape... Pokud budeš mít smùlu a vbìhneš do skupinky upírù, dávej si pozor na záda. + + + OK, nech to být. + + + Pokud Strakáèe uvidím, urèitì ti dám vìdìt. + + + Postarám se, aby to stálo za to... Servu z nìj všechnu kùži. + + + Co ti Strakáè vlastnì provedl? + + + Jednou ke mnì pøišel a øíkal, že kvùli kontrolorovi nemùže získat svou koøist. Mému týmu tenkrát chybìl jeden chlap. Náš stopaø Danila byl pryè, protože se snažil stopovat upíry až k jejich hnízdu. Tak jsme se rozhodli, že Strakáèovi pomùžeme získat jeho koøist a vzali jsme ho na lov. Jeho jediným úkolem bylo hlídat v okolí doupìte, jestli se neobjeví chiméra... + + + A co se stalo? + + + Co se stalo? Ta svinì utekla se svou i s naší koøistí. Když se chiméra objevila, nebylo to pøíjemné pøekvapení. Napøíklad Garmata vùbec nemìl èas zareagovat. Ale kdo by mìl? Místo toho, abych si dobøe zalovil, jsem jen bránil své chlapy. Nakonec jsem tu chiméru zranil, ale stejnì dokázala dát Rejpalovi slušnou ránu a vypaøila se. Ztratili jsme celý týden pøíprav. + + + Lov máš v krvi, chlape! Tady máš trofej, pøímo ode mì... Jak Pastièkáø øíkával: "Tou hlavní zbraní jsou naše schopnosti..." Mimochodem, nechystáš se do Janova? Bylo by dobré vyøídit Pastièkáøi, že chiméra je mrtvá. Já zatím zùstanu tady ve Skadovsku a poèkám, až se dá Rejpal do poøádku. Jdeš s námi? + + + Jo. Jdeme. + + + Ne. Ještì se tady porozhlédnu. + + + Dokázali jsme to. Tady ode mì máš takovou malou trofej... Mohlo to probìhnout trochu klidnìji, ale na tom už nezáleží. Jak øíkával Pastièkáø: "Kdo potøebuje pasti, když má zkušenosti?..." Mimochodem, nechystáš se do Janova? Bylo by dobré vyøídit Pastièkáøi, že chiméra je mrtvá. Já zatím zùstanu tady ve Skadovsku a poèkám, až se dá Rejpal do poøádku. Jdeš s námi? + + + Garmata je po smrti... Ta chiméra nás vyšla draho. Nemíøíš náhodou do Janova? Bylo by dobré vyøídit Pastièkáøi, že chiméra je mrtvá. Já zatím zùstanu tady ve Skadovsku a poèkám, až se dá Rejpal do poøádku. Jdeš taky? + + + Našel jsem Danilu. Je mrtvý. Zabil ho Strašák. + + + To ne! Proè vždycky odcházejí ti nejlepší z nás? Ten hajzl Strašák! Zabít Danilu... Byl to skvìlý èlovìk! + + + Myslíš, že by Èipera mohl jet v kradeném zboží? + + + Kradené zboží? Jak jsi na nìco takového pøišel? Èiperu znám už dlouho, pravidelnì u nìj objednávám zbranì. Skvìlé zboží za dobré ceny. Tohle slyším poprvé. Øekl bych, že má nové protivníky, kteøí už jsou tak zoufalí, že rozšiøujou tyhle povìsti... + + + Dávám dohromady tým na cestu do Pripjati. Pøipojíš se k nám? + + + Mám s vìdci dohodu, kterou musím dodržet. Navíc se na takovou cestu necítím. Mìl by sis promluvit se Sokolovem. Poøád mi pøipomíná, jak moc se potøebuje dostat do Pripjati, ale samotný se bojí. Skuteèný voják, tenhle chlap. + + + Mám s vìdci dohodu, kterou musím dodržet. Navíc se na takovou cestu necítím. Sorry, chlape. + + + Ne, necítím se na to. Èíhá tam smrt. Sám dobøe víš, že se v tìch konèinách prohání spousta mutantù – dost na to, aby ukonèili život nejednoho zkušeného lovce. + + + Chtìl bys pracovat pro vìdce? + + + Co je to za práci? + + + Hlídat jejich bunkr. + + + Ne, díky. Jsem lovec, zabývám se mutantama. A mutanti bunkr neohrožujou. Jo, lidi, to je nìco jinýho. + + + Provést mìøení v anomáliích. + + + Proè ne? To zvládnem. Oficiálnì vyhlašuju konec lovecký sezóny! Bude to fajn zmìna oproti rutinì, však víš, ty nervy, který chytíš, vždycky když tam vyrazíš... + + + Ne, teï právì ne. Jde o lov, chápeš. Musím si to nejdøív vyøídit s tou chimérou. Nemùžeme nechat krvežíznivou bestii pobíhat po Zónì a žrát stalkery hlava nehlava, noha nenoha. + + + Teï právì chci chytnout Strakáèe hezky pod krkem. A pak budu naprosto klidnej a budu s tebou moct probrat práci. + + + Pozdìjc. Už teï toho máme na talíøi až moc. Potøebujeme oddìlat chiméru a vystopovat Strakáèe. Na jiný kšefty není èas. + + + Našel jsem Strakáèe. Je v Janovské stanici, øíká si 'Pazourek'. + + + Ten zkurvysyn ještì žije? No, dlouho mu to nevydrží... vezmi si tohle, díky za tip. Už se nemùžu doèkat, až si s tím hajzlem popovídám. Takže Pazourek, jo... + + + Jo. Díky. + + + Vole, nevidìls náhodou nìkde chlápka jménem Strakáè? Neznáš ho? Ne... No kdybys na toho šmejda nìkde narazil, udìlej mi radost a provìtrej mu palici dávkou. Nebo mi øekni, kde ho najdu, a já se postarám, abys nelitoval. + + + No nazdárek. + + + Poèkej! Vystopovali jsme chiméru, takže nemùžeme ztrácet èas. Rejpal je furt mimo, Danila se ještì nevrátil a honit tu bestii jen ve dvou by byla pìkná blbost. Potøebujeme tøetího. Ty seš celkem schopnej. Našels Strakáèe. Co kdybys šel s náma ulovit tu zasranou chiméru? + + + Poèkej! Vystopovali jsme chiméru, takže nemùžeme ztrácet èas. Rejpal je furt mimo, a Danila... honit tu bestii jen ve dvou by byla pìkná blbost. Potøebujeme tøetího. Ty vypadáš celkem schopnì. Co kdybys šel s náma ulovit tu zasranou chiméru? + + + S potìšením. + + + Jak øíkal Pastièkáø: "Když jdeš na lov, lovení je jen pùlka práce..." Hele, poslouchej: po noèním lovu se chiméra vrací do svýho hnízda nìkdy nad ránem. Když už je venku skoro svìtlo. A v tu chvíli na ni udeøíme... Až budeš pøipravenej, stav se tady ve tøi ráno a pùjdeme na to. Poèkáme na tebe v baru. + + + Promyslím si to. + + + No, až se rozmyslíš, stav se v baru kolem tøetí ráno. Nìkdy tou dobou se chiméra plazí zpátky do nory, vychrápat se. + + + Nazdar. Jak se vede? Vypadáš odpoèatì. + + + Pohoda. Svìt je malej, co? + + + Takže? Je právì tak èas jít odstøelit nìjakou chiméru... + + + Jseš pøed lovem nervózní? + + + Pastièkáø mì požádal, abych vám pomohl ulovit chiméru. + + + Aha, furt se na to necejtí. No jde o to, že jsme tu blbou chiméru koneènì vystopovali. Naneštìstí je Rejpal furt mimo a Danila se taky ještì nevrátil... takže budem jen tøi. Ale pokud tì Pastièkáø vybral, musíš bejt dobrej lovec. Hele, chiméra pøes noc loví a nad ránem, tak kolem tøetí ráno, se vrací do svýho hnízda. To už je venku skoro svìtlo. A v tu chvíli na ni vlítnem. Až budeš pøipravenej, stav se tady kolem tøetí ráno a pùjdeme do toho. Budeme v baru. + + + Snažíš se ze mì udìlat blbce? + + + To už jseš. A blbce je tøeba pouèit. + + + Na tom nezáleží. Svìt je malej a Zóna je ještì menší. Ještì se potkáme. + + + Bìž... vypadni odsud. Ve Skadovsku nejsou bitky povolený. + + + Jo, jasnì. + + + Uznávám, udìlal jsem chybu. Ale ty jsi porušil pravidla. + + + Jo, to je prostì Zóna. Tak dobøe, dost kecù. + + + Asi je to fakt debil, když si nechal artefakt uniknout. + + + Fajn, hlavnì nezaèni bulit. Chybama se èlovìk uèí. A si to zapamatuješ, dej si na mnì pivo, to tì rozveselí. + + + Vezmu si, co dostanu. + + + Ne, dík, pití si platím sám. + + + Co si myslíš, že jseš? Zavøi hubu a ani se nehni! A naval artefakt, debile! + + + Kreténe. Nech si ten artefakt... doufám, že se s ním udávíš. + + + Jdi do hajzlu. + + + Brácho! Poslouchej, existuje jeden artefakt, co má léèivou moc... a já ho fakt nutnì potøebuju. Jeden mùj kámoš asi brzo zdechne na òákou divnou nemoc, naše léky vùbec nefungujou... snažil jsem se ten artefakt sebrat, ale spadnul jsem do plynový anomálie. Nenarazil jsi na nìj náhodou, na ten artefakt? + + + Když jde o tolik, tak tady máš. + + + Díky, brácho! Nezapomenu na to. + + + Opatruj se. + + + Jeden mám. Ale potøebuju ho pro sebe. + + + Ale no tak! Mùj kámoš... on fakt umírá! + + + V Zónì jede každej sám za sebe. Dávej na sebe bacha. + + + Ne, nevidìl jsem ho. Dávej na sebe bacha. + + + Ten artefakt ti nakonec vùbec nepomùže. Pamatuj na mý slova. + + + Když ho potøebuješ tak nutnì, tak na, tady máš. + + + Díky, brácho! Nezapomenu ti to. + + + Dávej na sebe bacha. + + + Uvidíme. + + + Nemám s tebou o èem mluvit. + + + Proè žiješ v tý popelnici? + + + Je to archa! Pamatuj na to... pamatuj, pokud chceš žít! Když zaène Vlna, drž se poblíž. Tady máš šanci pøežít. Žádnej mutant se sem nikdy nedostane. + + + Øíkals nìco o Vlnì... + + + Jo, vlna mutantù, která všechny pozabíjí nebo vyžene ze Zóny! A pokud by náhodou nìjakej chudák pøece jen pøežil, sundá ho obrovská emise!!! Zlikviduje to všechno živý v Zónì! Kromì tìch, co jsou pøipravený. + + + Kde jsi sehnal toho psa? + + + To je Lassie. Roztomilá malá èubka... nebýt jí, už by mì dávno ve spánku nìco sežralo. Zatracení mutanti... nenávidím je! Jakmile zavøeš oèi, zaènou kolem èmuchat, škrábat tìma svýma hnusnýma drápama, cvakat tesákama, šustit chapadlama.... + + + Potøebuju artefakt Kompas. Nevíš, kde bych ho mohl sehnat? + + + Ten nesmysl tì nezachrání, až z lesa vybìhnou mutanti! Na, vem si tohle a vypadni. + + + Díky. + + + Nevíš nìco o zøízeném vrtulníku? + + + O jednom nìco vím... vím, že je na náhorní plošinì a všude kolem nìj je plno snorkù. Každejch pár dnù si na nì jdu zastøílet... proè se na mì tak divnì koukáš? Celý hnízdo na jeden zátah nevyhubíš. + + + Jak se mùžu dostat na tu náhorní plošinu? + + + Chceš si taky odprásknout pár snorkù, co? No... mùžu tì tam zavíst. + + + Tak pùjdeme. + + + Nìkdy jindy. + + + Stalker. + + + Aha. O co ti jde? + + + Po tom ti nic není. + + + Zavedu tì tam. Zatím zùstaò tady. Bude emise. Chápeš? Emise!!! + + + V tom hnízdì jsem byl. + + + Jo? Na tom nesejde... mutantù je furt èím dál víc. A jednoho dne zaútoèej! Jejich vlna oèistí Zónu od všech, co nebudou pøipravený! + + + Hele, nemáš u sebe náhodou Kompas? + + + Myslíš, že tì to pøed emisí ochrání? Pche... na, ber a vypadni! + + + Dìkuju. + + + Co jseš zaè? + + + Stalker. Už jsme se jednou setkali. + + + Nepamatuju si to. No jo, co potøebuješ? + + + Stalker. Prostì stalker. + + + Aha. Hledáš útoèištì v Arše? Jako doma, jako doma. + + + Po tom ti nic není. + + + Aha, to jseš ty. Co chceš? + + + Nemáš u sebe náhodou jeden Kompas navíc? + + + Øekni mi nìco o anomáliích. + + + Když se dostaneš k anomálii, musíš pamatovat na to, že buï bude hodnì žhavá, nebo bude luft plnej toxickýho svinstva, nebo strašnì silný radiace. Taky tam mùžou být psionický vlny, ale o tìch teïka mluvit nebudu. Prostì záleží na tom, jaká je to anomálie... jestli žár, plyn nebo elektøina... nebo gravitace, ale doufej, že na ty zatím nenarazíš. Taky existujou pohyblivý anomálie, ale to je zas nìco úplnì jinýho. + + + Øekni mi nìco o žárových anomáliích. + + + Pokud uvidíš takový divný chvìní jako vzduch, kterej se tøepe nad rozpáleným chodníkem, tak to bude žárová anomálie. Když se do ní nìco dostane, tak z ní vyšlehne extrémnì horkej plamen. Lidi si nejdøív mysleli, že to vyvìrá metan nebo tak nìco, ale èasem pochopili, že to tak asi není. + + + Øekni mi nìco o plynových anomáliích. + + + Tìmhle se tak øíká, protože v nich furt probíhají divný chemický procesy. Vytváøej kyselinu, která tì bìhem pár sekund prožere skrz naskrz, a taky toxický plyny, který ti vypálej plíce ještì rychlejc. Naštìstí se dají venku plynový anomálie snadno poznat. Ale když do nìjaký vlezeš v temným tunelu, je to hodnì blbý. + + + Øekni mi nìco o elektrických anomáliích. + + + To jsou fakt zajímavý anomálie, který v sobì akumulujou velkej náboj statický elektøiny. Stalkeøi vìtšinou využívají to, že se tyhle anomálie dají vybít nìèím kovovým. Hodíš tam šroub a rychle probìhneš, než se staèí zase nabít. Já je teda radši obcházím, na mùj vkus se dobíjej až moc rychle. + + + Øekni mi nìco o gravitaèních anomáliích. + + + Ty se vìtšinou nehejbou. Když se podíváš na nìjaký místo a všimneš si, že vìci za ním jsou nìjak pokroucený, to je gravitaèní anomálie. A radši se k ní nepøibližuj. Všechny tøi známý varianty reagujou okamžitì, jakmile se jich nìco dotkne. Trampolína odhodí všechno, co je poblíž, na velký vzdálenosti. Vortex udìlá pøesnej opak, nasaje vìci do sebe, rozdrtí je brutálním tlakem a pak kousky rozhodí kolem. Vír zvedne obì do vzduchu, roztoèí ji a rozerve na kusy... fakt nepøíjemnej konec. + + + Øekni mi nìco o pohyblivých anomáliích. + + + Osobnì jsem narazil akorát na Kometu a Teslu. Kometa je ohnivá koule, asi metr v prùmìru. Ale mùžeš si bejt jistej, že horko ucítíš na vìtší vzdálenost. To druhý se dá jen tìžko popsat, nejpøesnìjší je asi nìco jako kulovej blesk. Je to kulatý a je to elektrický, nic moc víc se o tom neví. Obì tyhle anomálie se furt pohybujou, vìtšinou na uzavøený trase. Opatrnej stalker by je mìl dokázat snadno obejít... ale nesmíš ztratit soustøedìní. + + + Fajn, tak jo. + + + Øekni mi nìco o sobì. + + + Neøíkaj mi Navigátor jen tak. Používám jen bezpeèný trasy. Nemám nervy na sbírání artefaktù nebo bitky s banditama, takže... každej by mìl používat svùj talent a poskytovat ho ostatním. A samozøejmì že každej talent má svou cenu. + + + Øekni mi nìco o emisích. + + + Mám nìjaký mapy oblasti mezi Zatonem a Jupiterem. Chceš se kouknout? + + + Ukaž... dobrý, spousta detailù. V našem byznysu jsou detaily rozdíl mezi životem a smrtí. Jo! Tyhle mapy ukazujou bezpeènou cestu pøímo mezi Skadovskem a Janovem. Zkopíruju si to do PDA, pokud ti to nevadí. A odteï máš u mì slevu. + + + Možná potøebuješ prùvodce? Kterej by ti ukázal cestu kolem anomálií, udržel tì v bezpeèí pøed emisema? Navigátor, k tvejm službám. + + + Potøebuješ prùvodce? + + + Rád tì vidím. Co pro tebe mùže Navigátor udìlat? + + + Zase vyrážíš. + + + Mìj se. Nedokážeš zùstat na jednom místì moc dlouho, co? Jsem ti k službám. + + + Nazdar. Pokud potøebuješ prùvodce, jsem tvùj èlovìk. Jakmile emise skonèí. Mezitím mùžem zabít èas a pokecat o anomáliích... + + + Obávám se, že teï ti jako prùvodce moc nepomùžu... emise jede na plný pecky. + + + Za kolik mì dovedeš do Janovské stanice? + + + Bohužel je to poøádná štreka, takže to bude za 3000. + + + Fajn, pùjdeme. + + + Tolik u sebe nemám. + + + Ještì nechci odejít. + + + S tvejma mapama jen za 1000. + + + Fajn, pùjdeme. + + + Tolik u sebe nemám. + + + Ještì nechci odejít. + + + Je to odsud kus cesty, takže to bude za 3000. Jakmile se emise uklidní, mùžeme vyrazit. + + + S tvejma mapama jen za 1000. Akorát musíme poèkat, až se emise zklidní. + + + Mùžeš mì zavést do Pripjati? + + + Ne. Každej má svou specialitu. Vidíš támhle Garika? Myslím, že ten by ti mohl pomoct. + + + Osobnì ne. Ale za 6000 tì mùžu vzít k Janovský stanici a domluvit se s Garikem. On tì odtamtud zavede do Pripjati. Co ty na to? + + + Fajn, pùjdeme. + + + Tolik u sebe nemám. + + + Ještì nechci odejít. + + + Osobnì ne. Ale jen za 4000 tì mùžu vzít k Janovský stanici a domluvit se s Garikem. On tì odtamtud zavede do Pripjati. Co ty na to? + + + Fajn, pùjdeme. + + + Tolik u sebe nemám. + + + Ještì nechci odejít. + + + Ne. Každej má svou specialitu. Vidíš támhle Garika? Myslím, že ten by ti mohl pomoct. Až teda emise skonèí. + + + Osobnì ne. Ale za 6000 tì mùžu vzít k Janovský stanici a domluvit se s Garikem. On tì odtamtud zavede do Pripjati. Teda až emise skonèí pochopitelnì + + + Osobnì ne. Ale jen za 4000 tì mùžu vzít k Janovský stanici a domluvit se s Garikem. On tì odtamtud zavede do Pripjati. Teda až emise skonèí pochopitelnì. + + + Mùžeš mì zavést do Pripjati? + + + Do Pripjati? Ne. O mou obvyklou trasu je velkej zájem, takže nemusím hledat další. Ale mám dobrýho kámoše, kterej døív pracoval v Jupiteru. Øíkal, že jsou tam podzemní tunely, který vedou do Pripjati. Neøekl kde pøesnì, jen že je tøeba zaèít hledat v administrativní èásti. + + + Ne. Pokud se tam chceš dostat, zkus najít ty tunely pod továrnou Jupiter. + + + Za kolik mì zavedeš do Skadovska? + + + Jelikož to budeme muset vzít oklikou, bude to za 3000. + + + Fajn, pùjdeme. + + + Nemám u sebe teï tolik. + + + Ještì nechci odejít. + + + Díky tý nový trase je to jen za 1000. + + + Fajn, pùjdeme. + + + Nemám u sebe teï tolik. + + + Ještì nechci odejít. + + + Jelikož to budeme muset vzít oklikou, bude to za 3000. Jakmile se emise uklidní, mùžeme vyrazit. + + + Díky tý nový trase je to jen za 1000. Akorát musíme poèkat, až se emise zklidní. + + + Kam mì mùžeš zavést? + + + K Janovský stanici, kousek od továrny Jupiter. A odtamtud zpátky do Skadovsku. Radši znám jednu trasu fakt dobøe, než abych se chlubil, že jich znám hodnì. + + + Pøekazil jsem banditùm pøedávku zbraní. + + + Díky za pomoc. Vždycky si vzpomenu na devadesátý léta, vidím ty mizery s raketometama a úplnì to se mnou zatøese. Na, vem si tohle. Prachy se hodí vždycky. + + + Hledám Tetøeva. Mìli jsme se tady setkat. + + + Tetøev ti tady nechal zprávu. Øíkal, že vyrazí k jeøábùm v doku. A že se dozvìdìl nìco novýho o tìch ztracenejch stalkerech. + + + Tetøev je mrtvej. Strašák ho zabil, stejnì jako ostatní stalkery... Strašák je taky mrtvej. + + + Strašák? Sakra. Mìli jsme tu svini pøímo pod nosem... mohl to bejt kdokoli z nás... Chci øíct, když zrovna Tetøev... Díky, kámo. Zachránil jsi celej tábor. Na. + + + Strašák?!... Je mi líto, kámo, ale tohle neberu. Kdybys mìl nìjakej dùkaz, tak možná... chudák Tetøev. + + + Tady je Strašákaovo PDA. Obsahuje dùkazy potvrzující, že v tom byl zapletený. + + + Sakra. Mìli jsme tu svini pøímo pod nosem... mohl to bejt kdokoli z nás... Chci øíct, když zrovna Tetøev... Díky, kámo. Zachránil jsi celej tábor. Na. + + + Pomùžu ti postarat se o bandity. + + + Super. Jdi k stanici lovcù - tam jsou naši chlapi. Øeknou ti, co potøebuješ vìdìt. + + + Co víš o Èiperovi? Nemohl by kšeftovat s ukradenýma zbranìma? + + + Moc ho neznám. Ale pochybuju, že by v tom jel. Pokud jedeš v horkým zboží, nebereš na nì objednávky... + + + Vìdìl jsem, že mì døív nebo pozdìjc nìkdo odhalí. Byla to jen otázka èasu... + + + Strašák?!... Nechceš mi vysvìtlit, co se dìje? + + + Už se nehodlám schovávat. Nemá to smysl. Už víš, že Tetøeva jsem zabil já... stejnì tak Danilu a další chybìjící stalkery. + + + Fajn, chápu. Dost kecù. + + + Nic nechápeš. Mì nikdy nikdo nedostane... + + + Proè jsi to udìlal? + + + Závislost na hemoglobinu... nepøál bych to ani nejhoršímu nepøíteli... nedá se toho zbavit. Nìkdy máš pocit, že vydržíš celej mìsíc bez kapky krve, to se mi obèas povedlo, ale pak... uvnitø tebe to prostì vybuchne a zaèneš jak šílenej shánìt krev. + + + Jak se ti to podaøilo uchovat v tajnosti? + + + Když jsem makal na klinice, dalo se to snadno zamaskovat. Vždycky byla trocha krve od dárcù navíc. Ale v Zónì... v Zónì to bylo jiný... myslel jsem si, že tohle tvrdý prostøedí ty moje chutì potlaèí. Ale spletl jsem se. Zažil jsem tu nejsilnìjší explozi a prostì jsem nedokázal myslet na nic jinýho. Rozhodl jsem se to maskovat, jakoby to byly útoky upíra. Vìtšinou jsem si vybíral už zranìný cíle. + + + A co Danila a Tetøev? + + + Danila za mnou pøišel pro pomoc po tom útoku upírù. Byl zranìnej. Když se s Tetøevem rozhodli vyrazit na lov upírù spoleènì, uvìdomil jsem si, že už se dlouho neudržím. Snažil jsem se zachovat svý tajemství, ale moje odhodlání dlouho nevydrželo... pak se objevil Tetøev. Pochopil, o co jde, a zkusil mì zabít. A tak jsme teï tady. Je mi jich všech líto, ale moje lítost je zpátky nevrátí. + + + Fajn, chápu. Dost kecù. + + + Nic nechápeš. Mì nikdy nikdo nedostane... + + + Poslouchám. + + + Hej, potøebuješ pomoc? + + + Nazdar. + + + Potøebuju zdravotníka. + + + Ukaž mi to... + + + No, to by bylo. Mùžeš jít. + + + Nazdar! Taky hledáš artefakty? + + + Hej! Jdeš na artefakty, co? No, mìlo by jich být dost pro všechny. + + + Oh, hej! Taky se snažíš najít nìjakej artefakt? + + + Nazdar. Neseš ten artefakt k Fousáèovi? + + + Možná jo, možná ne. Co je ti potom? + + + Potøebuju ho. + + + Já taky... ale možná bych ho vymìnil za novou bouchaèku. Nìjakou sakra dobrou. + + + Mám dobrou zbraò. Udìláme kšeft... + + + Dobøe. + + + Ne, tohle není ono. + + + Tak sakra táhni odkud jsi pøišel. + + + Dobøe. + + + No, vlastnì žádný. + + + Co víš o Èiperovi? + + + Ale nic moc... nekšeftujem spolu. Zatímco on prohledává Zónu a snaží se sehnat nìjakou nabušenou krochnu, já mezitím prodám stovku normálních bouchaèek. Taky je pìknì namyšlenej, odmítá kšeftovat s místníma mizerama. Takže je to mizernej obchodník, což je pro mne vlastnì dobrý. + + + Fousáè mi øekl, že jste se dohodli jinak. + + + Hovno jinak! To fousatý prase si zaèíná ze svýho chlívu nìjak vyskakovat! Nìkdo by mu mìl pøipomenout, kdo je tady šéf... Hele, v Zatonu se poflakuje jeden dùležitej týpek, øíká si Sultan. Navštiv ho - øekne ti, co je potøeba udìlat. + + + Pùjdu si promluvit se Sultánem. + + + Žádný takový. Hned teï mi naval mùj podíl! + + + Uhh... dobøe. Tady máš prachy... ale pamatuj, Fousáè z tebe dìlá blba. + + + Potøebuju informace. + + + Co potøebuješ vìdìt? + + + Potøebuju jedovatej plyn. Prej bych se mìl zeptat tebe. + + + Správnì. Øeknu ti to za dva tácy. + + + Na. + + + Hele. Kdysi tudma projíždìla vojenská kolona s plynem, která to nezvládla. Nikdo neví, co se stalo, ale nádrže s plynem by tam furt mohly bejt. Je ti to jasný? Jo, taky by tam mohly bejt nìjaký dokumenty. Pokud je najdeš, pøines mi je a ještì na tom možná vydìláš. + + + To je na mì moc drahý. + + + Jak chceš. + + + Kde bych našel stalkera, co si øíká Strakáè? + + + Mùžu ti dát radu... za litr. + + + Na. + + + Tady ho nenajdeš, ale jeden malej ptáèek povídal, že by mohl bejt nìkde u Jupiteru, možná v Janovský stanici. Pamatuj, že když nìkdo jednou nìkde udìlá bordel, tak si pak èasto zmìní jméno, když jde jinam. Nejspíš se i nìjak zamaskoval, urèitì èeká, že ho budou lidi mezi stalkerama hledat. + + + Hledám Pahejla. Nevíš, kde bych ho našel? + + + Za tisícovku ti to øeknu. + + + Tady máš. + + + Pahejl je chamtivej idiot, kterej se zapletl s nebezpeènejma lidma. Spálil za sebou všechny mosty, mìl bys ho hledat nìkde kolem Jupiteru. Nemá kam jinam jít. Nejseš jedinej, kdo ho hledá. + + + Víš nìco o havarovaných vrtulnících? + + + Hrm... Všichni tady ví, kde padají. Jeden skonèil na jižní náhorní plošinì, druhej v bažinì, tøetí sebou prásknul pøímo na nosníky stanice. Na který místo se ptáš? + + + Plošina. + + + Stanice. + + + Bažina. + + + To je o vrtulnících všechno, co mì zajímalo. + + + A teï zapla, dlužíš mi dvì stovky. + + + Tady máš. + + + Takže ten vrtulník sebou prásknul hned vedle hnízda snorkù. Co vím, tak se odtamtud vojclové dostali, ne všichni, ale vìtšina. Postøíleli mutanty a sešplhali dolù. Mimochodem, pokud tam zamíøíš, mùžu ti prodat fajnovou brokovnici a nìjaký broky, to ti na ty bestie pomùže. Akorát nikdo kromì Noa, toho magora, neví, jak se na tu plošinu dostat. + + + To je na mì moc drahý. + + + Jak chceš. + + + Øeknu ti to za 200. + + + Tady máš. + + + Øeknu ti to za 200. + + + Tady máš. + + + Teï zrovna nic. + + + Máš pro mì práci? + + + No je tady jeden malej kšeft pro vìdátory. Pak potøebujem informace o žoldáckým táboøe. A do tøetice pøekupník furt potøebuje ochranku. Dìje se tady spousta vìcí, takže si vyber. + + + Øekni mi o té fušce pro vìdátory. + + + Musíš najít tøi detektory Veles a pøinést je vìdátorùm do bunkru u Jupitera. Až tam budeš, najdi si Novikova, øíkal, že si s nima chce pohrát... když z tìch detektorù bude zisk, rozdìlíme se pùl na pùl. Je to jasný? Tak padej, tohle bude brnkaèka. + + + Dohodnuto. + + + Možná nìkdy jindy. + + + Øekni mi o tom žoldáckým táboøe. + + + U èistièky se objevili nìjací žoldáci a mì by fakt zajímalo, co tam peèou... proplaz se jim do tábora a vyhrabej jakýkoli informace, nìco o jejich plánech. PDA, papírový dokumenty, dones mi, co najdeš. Jasný? Tak bìž. Když budeš dávat bacha, bude to hraèka jak pro malýho pionýra. + + + Souhlasím. + + + Teï ne. + + + Øekni mi o ochrance pro pøekupníka. + + + Pøekupník potøebuje ochranku pøi jednom kšeftì. Nebudeš muset skoro nic dìlat, prostì tam jen stát, aby to vypadalo dobøe. Jasný? Pøekupník na tebe poèká u lovecké stanice. Øekne ti detaily. + + + Dobøe. + + + Poèkej. + + + Nìkdy jindy. + + + No je tady jeden malej kšeft pro vìdátory, pak ještì potøebuju informace o žoldáckým táboøe. Vyber si... + + + No je tady jeden malej kšeft pro vìdátory a jeden pøekupník potøebuje ochranku. Vyber si, co chceš. + + + Potøebuju nìjaký informace o žoldáckým táboøe, to je jeden kšeft, druhej je ochranka pro jednoho pøekupníka. Je to na tobì, co si vybereš. + + + Byla by tu malá fuška pro vìdátory. Pohodièka, jen jim nìco seženeš a pøineseš. + + + Pøekupník potøebuje ochranku pøi jednom kšeftì. Silnì na pohodu, nic to nebude. + + + Další kšefty už nemám. + + + Myslím, že by tì to mohlo zajímat. + + + Co máš? + + + Noeovo PDA. + + + Toho magora z lodì? Dám ti za nìj litr. + + + Dohodnuto. + + + Díky, ale ne. Ještì si ho nechám. + + + No aby ti nepropálilo díru v kapse... + + + PDA žoldáka jménem Hák. Našel jsem ho v èistièce. + + + Dám ti 1000. + + + Dohodnuto. + + + Zajímavý... dobrá práce. + + + PDA žoldáka jménem Hrbáè. Našel jsem ho v èistièce. + + + Dám ti 1000. + + + Dohodnuto. + + + PDA s informacemi o zásobárnách Monolitu. + + + Dám ti 5000. + + + Dohodnuto. + + + PDA chlapa napojeného na klienta žoldákù. + + + Dám ti 4000. + + + Dohodnuto. + + + PDA jednoho ze zakladatelù Povinnosti, generála Taèenka. + + + Za to ti zaplatím dobøe - 2500. + + + Dohodnuto. + + + Žoldákovo PDA. + + + Dám ti 1000. + + + Dohodnuto. + + + Morganovo PDA. + + + Informace o pøekupníkovi Povinnosti, který prodává zbranì, jakoby mìla nastat tøetí svìtová. Mohlo by to být užiteèný. Dám ti 4000. + + + Dohodnuto. + + + Vzkaz ze skrýše Støelcovy skupiny. Adresovaný Duchovi. + + + Dám ti 500. + + + Dohodnuto. + + + Vzkaz ze skrýše Støelcovy skupiny. Adresovaný Støelci. + + + Dám ti 500. + + + Dohodnuto. + + + Vzkaz ze skrýše Støelcovy skupiny. Adresovaný Tesákovi. + + + Dám ti 500. + + + Dohodnuto. + + + Dokumenty z továrny Jupiter, složka s evakuaèními pøíkazy. + + + Dám ti 750. + + + Dohodnuto. + + + Dokumenty z továrny Jupiter, záznam v zápisníku. + + + Dám ti 750. + + + Dohodnuto. + + + Dokumenty z továrny Jupiter, rozpis dodávek. + + + Dám ti 750. + + + Dohodnuto. + + + Dokumenty z továrny Jupiter, dopis s pøíkazem transportovat pøedmìt 62 jen podjezdem. + + + Dám ti 750. + + + Dohodnuto. + + + Už ne. Když je v tom Sultán, radši se do toho nebudu zaplítat. + + + Tak ukaž... jo, to je dobrý. Prodáš mi to? + + + Jasnì, mnì to k nièemu není. + + + Notebook z žoldáckého tábora u èistièky. + + + Nabízím ti 2000. + + + Dohodnuto. + + + Heh... no, vezmi to Fousáèovi nebo vìdátorùm. Já o podezøelý kousky zájem nemám... nerad bych se jednou v noci probudil s nemocí z ozáøení. + + + A tam to taky má zùstat. Nerad zbyteènì riskuju. Kdo ví, možná kolem sebe ten krám v noci udìlá anomálii... Radši to odnes vìdátorùm, a si to prostudujou, nebo tak nìco. + + + A já mám ve spíži atomovou hlavici! Ale vìdátory to možná pobaví - ty takové blbosti žerou. + + + Pahejlovo PDA. + + + Ukaž. Hm... nic zajímavýho. Skrýš už jsi bez tak vyèistil, takže ti dám akorát dvì kila. + + + Souhlasím. + + + PDA jednoho ze Sultánových chlapù. + + + Zajímavý... mohlo by se hodit. Dám ti 1000. + + + Souhlasím. + + + Pamìový modul z bezpilotního letadla. + + + Hodnì zajímavej kousek... ale na tom nezbohatneš. Kdo ví, jestli jsem první, kdo to vidí? Dám ti pìtistovku. + + + Dobøe. + + + Teï zrovna nic. + + + Ohlednì tìch detektorù... + + + Jo? + + + Kde je najdu? + + + Nemám tušení. Prostì je najdi. + + + Mám ty detektory. + + + Tak proè tady ještì stojíš? Vezmi je Novikovovi do bunkru vìdátorù u Jupiteru. + + + Odnesl jsem detektory Novikovovi. + + + Super. Teï poèkáme, až si s nima pohraje. Novikov mi slíbil, že je sem pošle po nìjakým dùvìryhodným chlapovi, jakmile s nima bude hotovej. + + + Máme problém. Ten náš kšeft teï visí v luftu. Novikov na tìch detektorech odvedl sakra dobrou práci - zlepšil dosah, upravil citlivost a pár dalších vìcí... s takovým detektorem pøevezeš každýho lovce artefaktù, kterej takovej nemá. Dohodnul jsem se s Fousáèem, že budou stalkeøi, který najímá, teï používat tyhle nový detektory... + + + A? + + + Dohodli jsme se, že se o koøist podìlíme pùl na pùl, ale stalkeøi odmítají navalit tu pùlku. Zajdi za Fousáèem a pøesvìdè ho, že dohody se maj držet. No tak, chceš snad svùj podíl, ne? + + + Potøebuju novej detektor. + + + Ha. A já potøebuju poøádnou bouchaèku. Jestli máš nìjakou dobrou drahou krochnu, vymìníme. + + + Dohodnuto. + + + Ne, díky. + + + Potøebuju tvùj novej detektor. + + + Snažíš se mi vyhrožovat? Já ho totiž taky potøebuju. + + + Ty to nechápeš, co? Tvùj je poslední. Nemìl jsem moc práce zbavit se ostatních majitelù... + + + Cože? Tys je oddìlal? Tak si ho vezmi a dej mi pokoj. + + + Co kdybys šel do hajzlu? + + + Budu o tom uvažovat. A teï tì slušnì žádám, naval ten detektor. + + + A já tì slušnì žádám, jdi do hajzlu a nevracej se. + + + Stalkere, chceš dostat zaplaceno? + + + O co jde? + + + Víš, schoval jsem nìjakou koøist ve starý káøe, v Záporožci. Ale pak pøišlo zemìtøesení a kára spadla do podzemí. Byl jsem se tam kouknout a vypadá to, že by se do toho auta dalo dostat... Akorát jsou tam mutanti, však víš, snorkové. Vìø mi nebo ne, já se nebojím ani kontrolorù, ale ti zatracení snorkové... ti mi nahánìj husí kùži, jsou strašnì nechutní. Pokud se ti podaøí dostat ke kontejneru s bezpeènostním zámkem, podìlíme se o koøist, spravedlivì. + + + Dohodnuto. + + + Dìkuju, stalkere. + + + Je tohle tvùj kontejner? + + + Jo, to je on! Sakra ty seš dobrej! + + + Možná nìkdy jindy. + + + Škoda. + + + Ne, teï nemám zrovna moc èasu. + + + Fajn, jak chceš. + + + Tak co? Nìco novýho? + + + Co chceš? Nevidíš, že mám práci? + + + Hej, to je moje bouchaèka! Kdes ji sebral, ty zlodìji?! Nedávno mi ji nìjaká svinì šlohnula. + + + O èem to mluvíš? Jsem ji nedávno koupil. + + + Nevím, jak se ti dostala do pracek, ale tuhle mi nìkdo ukradnul. Takže hele, nechceš mì nasrat, fakt ne, takže naval bouchaèku a zùstanem kamarádi. + + + Fajn, tady máš. O problémy nestojím. + + + Naval. + + + To je moje bouchaèka. + + + Jo takhle, jo?! Varuju tì, mám kontakty! Všichni tady mì znají! Myslíš si, že vydržíš v Zónì s mizernou povìstí, stalkere? Fakt si to myslíš?! Neèekej tady od nikoho pomoc, všichni tì pošlou ke všem èertùm! + + + Táhni! + + + Seš si jistej, že je to tvoje zbraò? + + + Samozøejmì, že jsem si jistej. Není to zrovna bìžnej kousek ze Zóny, ne? A tahle je urèitì moje. + + + Spletl ses. Zklidni se a nikomu se nic nestane. + + + Cože? Tak já jsem se spletl?! To si ještì sakra rozmysli, debile! Pokud si tady nìco zkusíš, všichni budou na mý stranì. Naval bouchaèku a všechno bude v pohodì. Dokonce budu tak hodnej a nikomu o tom neøeknu. + + + Cože?! Napadlo tì, že ti s tou mizernou bouchaèkou mùžu právì teï navrtat do palice pár dìr? + + + Hej, zklidni, vole. Trochu se nám to vymklo z rukou, ale já už jsem v pohodì. V klidu. Asi jsem se spletl. + + + Ohlednì toho kontejneru... + + + Našels ho? + + + Ještì na tom pracuju. + + + Rozhodl jsem se, že už na to kašlu. + + + Škoda. + + + Fajn, ukaž... + + + Jasnì. Chvilièku... + + + Rozhodl jsem se, že si ho nechám. + + + Ty malej... nemysli si, že ti tohle zapomenu! + + + Tady je ten kontejner. + + + Fajn, tak se podìlíme, jo? + + + Jen do toho. + + + Tak se podíváme, co je tady... moje stará, ale smrtonosná Fora. Kdysi dávno ji upravil mùj vlastní strejda. Je to skoro jako rodinný dìdictví, to jo... tohle si nechám. + + + Ne, dej ji mnì! + + + No, dobøe. + + + Copak je tady dál. + + + Ne, už máš dost vìcí. + + + Ukaž, co je další. + + + Fajn, vem si to. Co je tam ještì? + + + Fajn... výborná lékárnièka. Dost dobrá, když tì pocuchá medvìd nebo dokonce kontrolor. Ta bude moje. + + + Hej, mìn by se lékárnièka hodila. + + + Hmm... okay. + + + Ukaž, co je tam dál. + + + Ne, už máš dost. + + + Ukaž, co je tam dál. + + + To si nech. Co je tam ještì? + + + Okay... Hele... pochybuju, žes takovou bouchaèku mìl nìkdy v ruce. Vylepšená AKM-74/2U. Za tuhle krásku jsem dal jednomu týpkovi z Povinnosti tunu lékárnièek. Bylo to v dobì, kdy Svoboda dala Povinnosti tak na držku, že jim došly léky. Od tý doby mi tohle bejby tøikrát zachránilo život... tu si rozhodnì nechám. + + + Možná bych si ji mohl nechat já, co ty na to? + + + Hmm... láme mi to srdce. Ale dohoda je dohoda. Vem si to. + + + Ukaž, co je tam dál. + + + Ne, už máš dost. + + + Ukaž, co je tam dál. + + + Fajn, nech si ji. Co je tam dalšího? + + + Oh-h-h... Krásnej a cennej kousek. Tenhle artefakt má cenu hromady zlata! Sám jsem ho vytáhl z anomálie. Posral jsem si pøitom gatì. Je to moje trofej, zasloužil jsem si ji vlastní krví a slzami. + + + Myslím, že ho potøebuju víc než ty. + + + Ty mì nièíš... na, vem si ho, mé štìdrosti urèitì litovat nebudeš. + + + Ukaž, co je tam dál. + + + Už máš dost vìcí. + + + Ukaž, co je tam dál. + + + Nech si ho. Co je tam dál. + + + A naposled, ale zdaleka ne nejhorší... vynikající helma, ruènì dìlaná. Pøed èasem se u Kordónu objevil novej stalker, fakt šikula. Než zakalil, udìlal spoustu šikovnejch vìcí. Tahle helma je jedna z nich. Další takovou nenajdeš! Tu si nechám. + + + Hele, já jsem riskoval život v boji proti hordì snorkù... tu helmu si zasloužím. + + + No... tak jo. Užij si to. + + + Ukaž, co je tam dál. + + + Už máš dost vìcí. Snad si taky mùžu nìco nechat, ne?! + + + Ukaž, co je tam dál. + + + Fajn, nech si to. + + + To je všechno, víc koøisti tam nebylo. + + + No tak jo, mìj se. + + + A je to. Ale nenechám tì odejít s prázdnejma rukama... Na, vem si moji pistoli! + + + Hodnì štìstí? + + + Co dìláš? + + + Sloužím a chráním. Døív jsem býval policejní detektiv a teï jsem nìco jako místní šerif. Pøišel jsem sem s Fousáèem, kterej se rozhodl usadit tady. Proè jít dál, když nikdo stejnì nezná cestu do Pripjati? I tady je dost artefaktù. A tak jsme zùstali tady. + + + Koho bych mohl najmout na ochranu vìdcù? + + + Je tady pár dobrejch chlapù. Tøeba Spartakova grupa. Fakt profíci, mají na to, spousta z nich byla døív u policie. Pokud mají èas, myslím že lepší ochranku jen tak nìkde neseženeš. + + + Døív bych ti mohl pár jmen poradit, ale teï už ne. Žádnej z místních stalkerù se na to nenechá upsat. + + + Koho bych mohl najmout na mìøení pro vìdátory? + + + Jednu partu stalkerù, kterou vede Gonta. Zeptej se ho, možná do toho pùjde... urèitì to pro nìj bude vítaná zmìna od støílení mutantù. + + + Kdyby tady byl Gonta se svou partou, poslal bych tì za ním. Ale jelikož tady není... nikdo jinej vhodnej mì nenapadá. + + + Koupil jsi zbranì od Èipery? Nevíš, jestli jede v kradeným zboží? + + + Myslíš, že je dost odvážnej, aby si troufnul dìlat nìco takovýho mnì pod nosem? Houby. Ani náhodou. Jsem si celkem jistej, že Èipera pøekupník není. + + + Hledám Pahejla. Nevíš, kde bych ho našel? + + + Pahejla? Jasnì, znám ho. Poøádnej pitomec. Nìkdo ho vidìl nedávno u jeøábù v docích. Nejspíš jeho nová schovávaèka. Zkus se tam podívat. + + + Nazdar, stalkere. Nechceš si vydìlat pár drobnejch a pøi tom i pomoct našemu táboru? + + + Nazdar, stalkere. Seš poøád tady? Pokud nezaèneš nìco dìlat, tak nás ti upíøi brzo sežerou. + + + Pokecáme pak. Musím se na nìco podívat. + + + Jakou práci mi nabízíš? + + + Jde o tohle: zmizelo pár stalkerù. Nikdo o nich nic neví, ale nedávno jsme našli jedno tìlo. Žádný známky násilí, ale byl vysátej do sucha, do poslední kapky krve. Strašák našel tìlo, mùže ti øíct víc... podle mì to musí být upíøi! Bavil jsem se o tom s lovcem Danilou a ten pak vyrazil hledat jejich hnízdo. Ale od tý doby po nìm není ani stopa. + + + Co mám udìlat? + + + Musíš najít jejich hnízdo a s trochou štìstí i Danilu. Není to snadná práce, ale vyplatí se ti to. Co ty na to? + + + Souhlasím. + + + OK, oznaèil jsem ti dvì místa, kam by ses mìl podívat. Nahrál jsem ti souøadnice. Musím se podívat na pár vìcí, pak se podívám na to druhý. Dám ti vìdìt, co najdu. + + + Dohodnuto. + + + Myslím, že se obejdu. + + + Pokud si to rozmyslíš, vra se. + + + Nemám zájem. + + + Furt to samý... dokud je tady nìkde upírský hnízdo, všichni riskujeme kejháky. A lovec Danila se furt neobjevil. Nechceš nám s tím pomoct? + + + Tetøev mi øekl, že jsi prohledával tìlo jednoho ze ztracených stalkerù. Myslíš, že ho mohl zabít upír? + + + Jo, to jo... stejný jako ostatní mrtvoly... to nedokáže žádná jiná potvora, vysát chlapovi z tìla všechny krev až do poslední kapky. Všechno ukazuje na upíra... co jinýho si o tom myslet? + + + Øekni mi nìco o sobì. + + + Jsem lékaø. Vystudovaný neurochirurg. Co ještì chceš vìdìt? Dokážu otevøít hypothalamus s naprostou pøesností, ale o nìco takovýho nemá v Zónì nikdo zájem. Zatím. Tady funguju jako obyèejný doktor, jeden z mnoha, ale znám svou práci dobøe. + + + Poslouchám. + + + Dokázal bys dešifrovat èernou skøínku? + + + No... na to nejsem zrovna specialista. Všechny ty mapy a algoritmy... to není nic pro mì. Dones mi nìco, co je založený na obyèejný fyzice a hned je mi jasný, co to je... pošourám se tady, támhle a hned to jede jako z praku. + + + Myslíš, že by mohl Èipera jet v kradeným zboží? + + + Hej, poèkej, Èipera a kradený krámy? Tomu nevìøím. Když jsem si stavìl dílnu, pomáhal mi zrovna Èipera. A ani za to nic nechtìl... a ti kdo chce, øíká, co chce, Èipera je fajn chlap. + + + Nemáš pro mì nìjakou práci? + + + Ale jo, jasnì. Potøebuju pár nástrojù, ale nemám èas je shánìt. Vybavení už je takový, sežere ti veškerej èas. Pokud mi doneseš pár užiteènejch hraèek, ukážu ti, jak se vìci vylepšujou. A taky si vydìláš pár drobnejch. + + + Fajn, mrknu na to. + + + Ne. Možná pozdìji. + + + Jo, jasnì. Potøebuju nástroje, pamatuješ? Když mi pomùžeš, pomùžu já tobì a pøihodím pár babek navíc. + + + Dokážeš odblokovat pamìovej modul? + + + Nee, tak tady ti nepomùžu. Tyhle moderní elektronický a poèítaèový krámy... to není nic pro mì. Najdi si nìkoho mladšího, ti tyhle nesmysly nasávaj už s mateøským mlíkem. + + + Dokážeš otevøít ocelovej kontejner? + + + V pohodì. Kvalitní služba, jen za 500. + + + Tady. + + + Fajn, tak ukaž... zvedni tohle, zatlaè tady... a bum! Hotovo! Zatím nikdo nevynalezl nic, co bych nedokázal otevøít páèidlem a kladivem. + + + Tolik nemám. + + + Tak pøijï, až budeš mít. Já nikam nepùjdu, neboj se! + + + Promyslím si to. + + + Mám trochu chlastu. Chceš panáka? + + + Nee, já už nepiju. Když jsem vidìl pøedmìt 62, øíkal jsem si, to je ono, už jsem v deliriu.... Chlast ti akorát rozdrbe mozek. Není to zdravý. A když bude po mnì, kdo bude dìlat náboje pro tvoji gausovku? + + + Tady máš další flašku. + + + Mám tøetí flašku, jestli chceš ještì. + + + Pøinesl jsem ti náøadí. + + + Fajn. Jaký? + + + Pro základní práci. + + + Super! Teï už jen potøebuju náøadí pro jemnou práci a na kalibraci. + + + Pro jemnou práci. + + + Super! Teï už jen potøebuju náøadí pro základní práci a na kalibraci. + + + Kalibraèní nástroje. + + + Super! Teï už jen potøebuju náøadí pro základní a jemnou práci. + + + Zatím žádný. + + + Super! Teï už jen potøebuju náøadí pro kalibraci a mám všechno. + + + Super! Teï už jen potøebuju náøadí pro jemnou práci a mám všechno. + + + Super! Teï už jen potøebuju náøadí pro základní práci a mám všechno. + + + Super! Výbornì! Jak to dìláš, chlape? Teï mám všechno, co potøebuju na poøádný modifikace! Jen koukej, udìlám kulomet ze zapalovaèe! + + + Pøinesl jsem ti schéma a dokumentaci k pøedmìtu 62. + + + Tys to dokázal! Super duper! Vìdìl jsem, že ty svinì nebudou mít èas všechno znièit. Ukaž... Hm.... Tak o tohle tìm sviním šlo. Fajn! Budu si s tím muset pár hodin pohrát. Nech mi tady gausku, zkusím ji opravit. Jen chvilku poèkej, za pár minut bude bejby zase zpívat! + + + Potøebuju baterky do gaus pušky. + + + Cena pro oblíbený zákazníky: 2000. + + + Tady máš. + + + Promyslím si to. + + + Tolik u sebe teï nemám. + + + Už jsi skonèil s tou gaussovkou? + + + Pohodièka. Energetickej systém je vyèištìnej, jako bys ho omyl svìcenou vodou. Jestli zaène blbnout, tak se s ní stav, poladíme to. + + + Ještì na tom makám. Miluju svou práci... + + + Mám tady neznámý druh zbranì. + + + Co to meleš, jakej neznámej druh? Ukaž, podívám se... + + + Hele... vidìls nìkdy nìco takovýho? + + + Ah, to seš ty... sakra jsme si užili. Mìl jsem sen, ve kterým jsi mi pøines nìco z minulosti... dobrá chlastaèka, fakt jo... + + + Není tohle zbraò z tvého snu? + + + Sakra, ty vole... tak to asi nebyl sen. Tohle je Gaussova puška, oficiálnì teda pøedmìt 62. Pche... kdysi jsem dìlal na kontrakt pro továrnu Jupiter, navrhoval jsem zbranì, pokud si dobøe pamatuju, "založený na principu akcelerace projektilu pomocí elektromagnetického pole". Vidíš ty cívky? Ty jsem dìlal já... škoda, že se ten projekt v roce 2004 zrušil. Nikdy jsme nenašli dost kompaktní zdroj energie. + + + Z téhle zbranì nìkdo støílel. Co se mohlo zmìnit? + + + Jak to mám sakra vìdìt? Abych pravdu øekl, já bych si do tý baterky netroufnul šourat šroubovákem. A taky je tady nìjaký mechanický poškození, v energetickým okruhu. Teï by se mi fakt hodily plány. V testovací dílnì, kde jsem makal, byla veškerá projektová dokumentace. Možná tam plány a dokumenty ke gaussce ještì jsou... A víš, co je sranda? Poøád mám magnetickou klíèovou kartu k dílnì... + + + Dáš mi tu kartu? + + + Jo, jasnì... asi jo. Hlavnì ji neztra. Pokud mi ty dokumenty doneseš, možná tu bouchaèku dokážu opravit. + + + Tady máš zpátky svou pøístupovou kartu. + + + Díky. Pøipomíná mi starý dobrý èasy. + + + Takže? Noo... klidnì mi dones òáky rozbitý bouchaèky, prostøílený, prorezlý i olezlý... støízlivej moc dobrej nejsem, ale mùžu to zkusit.... + + + Kde jsi byl? Už jsem mìl strach, všude jsem tì hledal. Kde je ten stalker, ptal jsem se.... na zdraví, co øíkáš? + + + Nazdárek. Fajn, že ses stavil. Jako doma, jako doma... pøinesls mi nìco na opravení, nebo nìco k pití? + + + Haaa! Dobrý! Ruce se mi tøepou, ale hlava chce víc... nalej mi ještì jednu, mladíku! + + + Kdo ti zakázal nalejvat? Otevøi další flašku! Pøipijem si na nìco. Jo. Vodka ve mnì probouzí mechanickýho génia, fakt nekecám. + + + Škoda, že tady není Vtipoò, mohli jsme si pøipít spoleènì na Bárku.... no, a odpoèívá v pokoji. Byl to dobrej chlap, fakt tvrïák. Tvrdej jako skála. + + + Škoda že tady není Bárka, mohli jsme si pøipít spoleènì na Vtiponì.... no, a odpoèívá v pokoji. Byl to dobrej chlap, fakt tvrïák. Tvrdej jako skála. + + + Uhh... Bárka... Vtipoò... Jak se to jen mohlo stát... jedna vìc vede k druhý.... + + + Mmm? Copak to tady máme? O ty pancéøovaný samopaly se postarám zítra... neboj se, nic to není. Èeká na mne flaška. + + + To je èíslo šedesát dva... fakt bych se rád podíval na schéma obvodù. + + + Moudrej výbìr, kamaráde. Bouchaèku je tøeba udržovat ve stoprocentním stavu. A jestli u sebe máš flašku nebo dvì, rovnou ti ji mùžu i vylepšit. Chceš k brokárnì pøidìlat padák? I to dokážu, hehe. + + + No koukej na to! Narvali do baterky elektrostatickej artefakt! Ha! Vìdìl jsem, že to bude nìjaká anomální sraèka! Princip je jasnej, teï mùžu dìlat baterky sám. + + + Potøebuješ nìco sešroubovat? + + + Vùbec tomu nerozumím, jakoby to bylo hotentotsky. Už jsem dlouho žádný technický dokumenty neèetl. + + + Jo, pøišel jsem do Zatonu se dvìma kamarádama, Bárkou a Vtiponìm... mladý kluci, plný adrenalinu a testosteronu. Strašnì chtìli nahrabat spoustu artefaktù, bejt nejlepší, nejrychlejší... A já se na nì podíval svejma pøisleplejma oèima a øekl jsem si, to jim nic dobrýho nepøinese. Koøist je fajn, jasnì, ale nemá smysl kvùli ní skoèit mutantovi pøímo do otevøený tlamy. + + + Co se stalo? + + + No... jednu noc jsme sedìli, pochlastávali a hádali se, co bude dál. Jestli bychom mìli pokraèovat, nebo zùstat, a pokud pokraèovat, tak kam. Každej v ruce bouchaèku, šermovali jsme s nima kolem sebe i na sebe, kapku jsme se rozehøáli. A když jsme se dohádali, šli jsme všichni vlastní cestou, já taky. Øekl jsem jim, že ještì neznaj život... a hlavnì ty jeho nepøíjemnìjší kousky. Ty vole... kdybych je tak mohl znova vidìt, chtìl bych se jim omluvit za to, co jsem na nì øval... zas bychom to táhli chvíli spolu a vzpomínali na starý dobrý èasy.... + + + Pokud na Bárku narazím, vyøídím mu tvoji omluvu. + + + To by bylo fajn. + + + Pokud na tvý kamarády narazím, vyøídím jim tvoji omluvu. + + + To by bylo fajn. + + + Pokud na Vtiponì narazím, vyøídím mu tvoji omluvu. + + + To by bylo fajn. + + + Našel jsem tohle PDA, podívej se. + + + K èemu by mi ten krám byl? Èí to bylo? + + + Bárka je mrtvej?!... Tomu nemùžu uvìøit!... Ty vole! Ten byl tak tvrdej, jak to jen šlo... Oh, Bárko... Odpoèívej v pokoji. Doufám, že aspoò Vtipoò je v pohodì. + + + Bárka je mrtvej?!... Tomu nemùžu uvìøit!... Ty vole! Ten byl tak tvrdej, jak to jen šlo... Oh, Bárko... a Vtiponi... Odpoèívejte v pokoji, kluci. Jak se to jen mohlo stát... + + + Jsou mrtví!?... Tomu nemùžu uvìøit!... Ty vole! Bárka byl tak tvrdej, jak to jen šlo... a Vtipoò... Vtiponi... Už se tvejm vtípkùm nikdo nezasmìje. Odpoèívejte v pokoji, kluci. Jak se to jen mohlo stát... + + + Mùžeš mi odpovìdìt na pár otázek? + + + Jasnì. + + + Jak dlouho ti bude trvat, než splníš moji objednávku? + + + To záleží na tom, jak tìžký to bude. Vìtšinou mi to trvá tak den, nìkdy míò. + + + Øekni mi nìco o sobì. + + + Není moc co øíct. Mám za sebou dobrý èasy i zlý jako vìtšina lidí. Vlezl jsem do pár anomálií, unesli mì banditi... do Zóny jsem pøišel jako mladej smrad, už kdysi dávno. Ze zaèátku jsem dìlal poslíèka - antirady, prùrazná munice, takový vìci. Pak jsem chvíli døel na Sidorovièe... splácel jsem mu, že mi zachránil prdel. Zatímco jsem za nìj tahal z ohnì horký brambory, udìlal jsem si pár kontaktù a nakonec jsem se pustil na vlastní pìst, jakmile jsem si na to troufnul. Zatím se mi podaøilo uhnout pøed vším, co po mì život hodil, ale mám pocit, že už mi dochází štìstí. Ale na druhou stranu si už nehodlám sedøít prdel do krve kvùli hromádce drobnejch. + + + Díky. + + + Rád jsem pomohl. + + + Prodal jsi mi kradenou bouchaèku! + + + O èem to mluvíš? V èorkách já nejedu. Dìlám jen rovný kšefty. Pokud mi nevìøíš, zeptej se, koho chceš, na základnì, všichni ti øeknou, že jsem poctivej pøekupník, kterej nikdy s nikým nevyjebal. + + + Narazil jsem na stalkera, kterej tvrdil, že je to jeho zbraò. + + + A jak se jmenoval? + + + Pahejl. + + + Co je ti po tom? + + + Záleží na tom. Nìkdo tì totiž tahá za nohu, stalkere. + + + No to se ještì uvidí. + + + Nìkdo tì totiž tahá za nohu, stalkere. + + + Jdu si vyzvednout svou objednávku. + + + Tady máš svýho stepního orlíka. Byla to nakonec vìtší fuška, než jsem si myslel. Nìjakej magor do pistolí o ni mìl fakt zájem, ale sbalil jsem ji vèas. Jen se podívej - ruènì udìlaná pistole, komponenty jsou sladìný s totální pøesností. Zajímalo tì nìkdy, jak by vypadala odstøelovaèská pistole? Tak pøesnì takhle nìjak. Dlužíš mi o dva tisíce osmset víc. + + + Okay, tady máš. + + + Tady máš. Radost s tebou obchodovat, kámo. + + + Tolik u sebe nemám. + + + Fajn, zatím si ji u sebe nechám. Doufám, že brzo seženeš prachy. + + + Tohle koupit nechci. + + + Pokud si odmítneš vyzvednout objednávku, pøíštì už ti nebudu vìøit. Budu muset poèítat s rizikem v cenì a budu chtít vìtší zálohu. + + + Stejnì tohle nechci. + + + Fajn, jak chceš. + + + Promyslím si to. + + + Jasnì, jak chceš. Zatím si tu bouchaèku nechám. + + + Tady máš svýho ultra pøesnýho stepního orlíka. Dlužíš mi 2800 navrch. + + + Zírej na Alpine - opravdová kráska. Mùžeš si bejt jistej, že je jediná svýho druhu v celý Zónì. Unikátní kousek, z hroznì omezený série pro speciální jednotku. Nebylo snadný ji sehnat, dokonce jsem musel použít nìjaký svý zámoøský kontakty. Rozšíøenej zásobník, extra tvrzená hlaveò, závìr ze speciálních polymerù. Pøihoï 2800 navrch a je tvoje. + + + Tady máš svou pistoli Alpine se zvìtšeným zásobníkem. Pøihoï zbývajících 2800 a bejby je tvoje. + + + Hele, todle je March. Tahle pistolka kdysi patøila žoldákovi, kterýmu se øíkalo Ohaø. Je to kompaktní velkokaliberní bouchaèka s malým zpìtným rázem a odlehèenou spouští. Ohaø byl stoprocentní šmejd, ale ve zbraních se vyznal, to mu musíš uznat. Prej mìl v oblibì ustøelit obìti všechny ètyøi konèetiny a až pak poslat poslední kulku do palice ještì pøed tím, než dopadla obì na zem. Dlužíš mi 2800. + + + Tady máš rychlopalnou pistoli March. Dlužíš mi 2800. + + + Tady máš - samopal Cutter. Øeknu ti to na rovinu, nevšímej si, jak vypadá. Je to fungl novej model, ještì ani není v sériový výrobì. Prototyp, pøímo ze zbrojovky. Snažili se udìlat bouchaèku nový generace: kombinace velkýho kalibru, vysoký kadence a pøitom to mìlo mít slušnou pøesnost. Pøihodíš mi ještì 8000 navrch. + + + Jo, tady máš rychlopalnej samopal Cutter. Dlužíš mi ještì 8000. + + + Tohle je fajn krám - Carabineer. Poøádná vojenská brokárna. Dokáže jet v plnì automatickým režimu, ale pøitom má díky speciálním úpravám slušnej zpìtnej ráz. Pøihoï 8000 a je tvoje. + + + Tady máš automatickou brokovnici Carabineer. Dej mi 8000 a je tvoje. + + + Myslím, že tohle pøesnì potøebuješ. Eliminator, nejnovìjší kousek. Celá zásilka mìla skonèit v centrální Africe, ale kamarádi mi jako laskavost pøedali jeden vzorek. Automatická brokovnice s velkým zásobníkem a vynikající kadencí. Mùže bejt tvoje jen za 8000. + + + Jasnì. Automatická brokovnice Eliminator s velkým zásobníkem. Za 8000. + + + Jasnì. Tohle je Storm, samopal s integrovaným granátometem. Tenhle prototyp je modifikovaná verze konvenèního samopalu pro speciální jednotky v Zónì. Velký technický vylepšení, navíc je to vlastenecká bouchaèka, protože ji udìlali Slovani... pøidej mi 16000 a je tvoje. + + + Jasnì, tohle je Storm, samopal s integrovaným granátometem, za 16000 navíc. + + + Tady to je, GP37, útoèná puška nový generace. Pøesná, spolehlivá a se zabudovanou optikou. Pùvodnì patøila pozorovateli OSN z party, kterou poslali na prùzkum Zóny. Ale nìjak se jim nezadaøilo... 16000 a puška je tvoje. + + + Tady to je, GP37, útoèná puška nový generace. Bude tì stát 16000. + + + Hned to bude. Tohle je modulární puška FT-200M, dìátko belgických puškaøù. Pøesná univerzální, vhodná pro leváky i praváky, má vlastní optiku a granátomet. Dostal jsem ji od jednoho nešastnýho pozorovatele OSN... Bude tì stát 16000 navíc. + + + Tady je modulární puška FT-200M. Dostanu navíc 16000. + + + Tohle je Tide. Její design je založený na tichý odstøelovaèce, speciálnì upravený pro vojáky v Zónì na likvidaci zombákù. Dává pøed kadencí pøednost zastavovací síle, takže mùže snajpr sundávat zombice jednu po druhý, aniž by se prozradil. Ale když se ukázalo, že stalkeøi na likvidaci zombákù u Bariéry budou staèit sami, tak se objednávka na sériovou produkci zrušila. Tohle dìátko mùžeš dostat za 16000. + + + Tohle je Tide, tichá odstøelovaèka se zvýšenou silou. Pøidej mi 16000 a mùžeš si ji hned vyzkoušet. + + + Tady tohle je SVU2-A, zkrácená odstøelovaèka se zvýšenou kadencí. Koupil jsem ji od Maca, legendárního èlena Svobody. Pøísahal, že v Zónì druhá taková není. Je to exkluzivní kousek, alespoò v týhle oblasti. Bude tì stát dalších 16000. + + + Jo, SVU2-A, zkrácená odstøelovaèka se zvýšenou kadencí. Mùže bejt tvoje za 16000. + + + Jasnì, jen koukni tady na Lynxe. Ruènì udìlanej jedním místním expertem. Ten už je mrtvej, takže další už asi neudìlá. Lynx vypadá jako každá jiná bouchaèka, ale staèí z ní párkrát vystøelit a pochopíš, v èem je rozdíl. Vynikající kombinace pøesnosti a síly. Pøihoï mi 16000 a mùžeš ji øíkat miláèku. + + + Jo, Lynx - odstøelovaèka se zvýšenou pøesností a silou. Pøihoï 16000 a je tvoje. + + + Hele, podaøilo se mi sehnat tohle - CS-3a s helmou. Ta helma sama o sobì není nic extra, ale umožòuje instalovat mobilní taktickej systém, do kterýho patøí kvalitní systém noèního vidìní a aktivní infraèervenej senzor. CS-3a je fakt krásnej kus zbroje. Vynikající ochrana pøed kulkama i anomáliema, to v tak lehký zbroji normálnì nenajdeš. Celý tì to bude stát 32000. + + + Jo. Zbroj CS-3a s taktickou helmou. 32000 dohromady. + + + Speciálnì pro tebe tady mám oblek SEVA. Pøesnì, jak sis objednal - uzavøenej respiraèní systém, odolná vùèi žáru, chrání pøed elektøinou, vnìjší povrch pokrytej antikorozivníma materiálama. Plus nìkolik zabudovanejch kontejnerù na artefakty jako malej bonus. Každej stalker by takovou chtìl. Pøihoï mi 24000, jak jsme se dohodli, a je to tvoje. + + + Tady, oblek Seva. Jak jsme se dohodli, dlužíš mi 24000. + + + Tady to máme, bojovej exoskeleton, skoro jak z nìjakýho filmu. Nejlepší ochrana v Zónì proti kulkám, paøátùm nebo støepinám, akorát na tanky si budeš muset dávat bacha. Navíc ti pøidává poøádnou sílu, ale tank neuneseš, na ty si fakt dávej bacha. 48000 a je tvoje se vším všudy, i s baterkama a servama. + + + Tady to je, bojovej exoskeleton jak z nìjakýho filmu. 48000 a je tvùj. + + + Chci si u tebe nìco objednat. + + + V pohodì. Co potøebuješ? + + + Pistoli. + + + Jasnì. Bude stát 3500 a chci zálohu sedm stovek. + + + Okay, tady máš. + + + Dám ti vìdìt, jakmile objednávka dorazí. + + + Nemám u sebe peníze. + + + No tak se stav, až budeš mít. + + + Víš co, rozmyslel jsem si to. + + + Fajn. Až se rozhodneš si nìco objednat, já budu tady. + + + Nejseš moc spolehlivej zákazník, takže tì bude pistole stát 4200. A chci zálohu 1400. + + + Obávám se, že nejlepší pistole už jsou prodaný. Jestli chceš nìjakou normální, stav se za Hejkalem. + + + Zbraò pro uzavøený prostory + + + Jasnì. Bude tì stát 10000 a chci zálohu 2000. + + + Jednu objednávku už sis odmítnul pøevzít. Takže tì bude stát 12000, z toho 4000 záloha. + + + Hrm... víš, asi ti moc nepomùžu. O ty je moc velkej zájem. + + + Útoènou pušku. + + + Takže nìco s velkým kalibrem a poøádnou kadencí, jasnì... cena je 20000, z toho 4000 záloha. Co ty na to? + + + Nejseš moc dobrej zákazník, takže ti naúètuju 24000 a 8000 chci pøedem. Dohodnuto? + + + Teï se mi to moc nehodí... armáda dìlá u Kordónu potíže. Nìkdo jim nedávno zaútoèil na základnu, takže jsou pìknì nasraný a nedá se s nima moc domluvit. + + + Odstøelovaèku + + + Pro tebe mùžu sehnat to nejlepší jen za 20000, ale budeš mi muset dát 4000 jako zálohu. + + + Tvoje objednávky nejsou moc spolehlivý... mùžu ti zkusit sehnat nìco za 24000, ale budeš mi muset dát zálohu 8000. + + + Je mi líto, ale takový bouchaèky teï moc nejsou dostupný. Mùj kontakt na odstøelovaèky je... øeknìme že indisponovanej. + + + Pancéøovaný oblek. + + + Jo, vymyslím nìco... vhodnýho. Ale bude tì stát 40000, z toho 8000 pøedem. + + + Jo, vymyslím nìco... vhodnýho. Akorát minulou objednávku sis nepøevzal, takže ti pøirazím, bude to stát 48000 a z toho chci zálohu 16000. + + + Lepší než ten, co už jsem ti prodal, asi neseženu. Byl to unikátní kousek, nejlepší dostupnej. + + + Oblek s uzavøeným dýchacím systémem + + + To je velká objednávka... nebude snadný to sehnat, to ani náhodou. Mùžu zkusit jeden sehnat, pro tebe za 30000, ale chci zálohu 6000. + + + U poslední objednávky ses na mì vykašlal, takže nevím, nevím. No, mùžu ti zkusit nìjakej sehnat, ale bude to za 36000 a chci zálohu 12000. + + + Na poslední objednávce jsem kvùli tobì prodìlal. Po druhý to riskovat to nebudu. + + + Exoskeleton. + + + Nejspíš sis to poøádnì promýšlel. Možná se mi podaøí sehnat bojovou verzi, bude to stát 60000. Já vím, drahý, ale vyplatí se. A nezapomeò, že 12000 chci jako zálohu. + + + Pøi minulý objednávce jsi mì celkem nasral, takže tohle budeš mít za 72000. A z toho chci 24000 teï hned. + + + Ani náhodou. Co zavøeli továrnu, mùžeš sehnat nepoužívanej exoskeleton akorát u nìjaký mrtvoly... a do toho já nejdu. + + + Teï zrovna nic. + + + Je mi líto, mám teï krám zavøenej... Doèasný problémy s dodávkama. + + + Nazdar. Mnì øíkaj Èipera. Lidi za mnou chodí pro unikátní bouchaèky. Vzácný modely, prototypy, unikátní kousky, takovýhle vìci. Plus nejlepší možný vybavení, modifikovaný ochranný a bojový obleky. Každej kousek osobnì testuju, takže za kvalitu ruèím. + + + Nazdar, chceš si nìco objednat? + + + Nazdar + + + Brzo budeš mít objednávku tady. + + + Objednávka je tady. Stav se pro ni. + + + Hej! Ty seš Pahejlùv kámoš? + + + No, znám ho. + + + Øekl mi, že nám pøineseš nìjakou koøist. + + + Nepamatuju si, že bych se takhle dohodnul. + + + Jo, jasnì. Tak to ti asi budem muset osvìžit pamì. + + + Sbohem. + + + Nic takovýho! + + + Teï dobøe rozmýšlej. Jestli máš pùlku mozku, tak snad pochopíš, že s pøesilou houby nadìláš a je lepší bejt hodnej. + + + Øek jsem ne! + + + Ne. Neznám ho. + + + Ahh... sakra... jsem fakt tìžce zranìnej... pomoz mi, kámo, potøebuju lékárnièku... už dlouho nevydržím... + + + Vezmi si tuhle lékárnièku. + + + Uf. Dìkuju, kámo. Už jsem byl fakt jen kousek od toho, abych v Bojleru zdechnul. Zmutovaný èokli by si to užili. Na, vem si aspoò mùj detektor, možná se ti bude nìkdy hodit. A fakt dík, žes mì zachránil. Já si teï pùjdu odpoèinout na základnu. + + + Hodnì štìstí. + + + Uf. Dìkuju, kámo. Už jsem byl fakt jen kousek od toho, abych zdechnul. Zmutovaný èokli by si to užili. Na, vem si tenhle artefakt, možná se ti bude nìkdy hodit. A fakt dík, žes mì zachránil. Já si teï pùjdu odpoèinout na základnu. + + + Potøebuju je sám.. + + + Nemám lékárnièku. + + + Ještì jednou díky! Nebejt tebe, prdìl bych teï do hlíny... + + + Stalkere! Pojï rychle pomoct Petrušovi! Támhle, na okraji strže! Chytla ho anomálie! Oblek mu vùbec nepomohl! A já dokonce ani žádnej nemám. Složili jsme se spoleènì s Petrušou na jeden... pokud udìlám ještì krok, je po mnì! Pomoz nám, prosím! + + + OK, zùstaò, kde jseš. Zkusím to. + + + To je tvùj problém. + + + Dìkuju ti, žes zachránil Petrušu. Sakra, že jsme si nenašetøili na lepší oblek! + + + Táhni mi z oèí, hajzle. Nechal jsi Petrušu chcípnout... oproti nìmu jseš úplnej posera! + + + Na vidìnou. + + + Zlikvidoval jsem hnízdo upírù. + + + Dobøe. Pomstil jsi naše mrtvé bratry, a je jim zemì lehká... Tuhle odmìnu sis zasloužil. + + + Pod komplexem antén jsem našel celé hnízdo upírù. + + + Fajn. To hnízdo je tøeba zlikvidovat. Nech mì chvilku pøemýšlet... èert ví, kolik v tìch tunelech upírù bude. Možná bysme je mìli zaplynovat. Mám pocit, že Hejkal øíkal nìco o nádržích s plynem. Stav se za ním - já s ním teï nejsem moc zadobøe. Pokud by se ti podaøilo sehnat nádrž s plynem, staèilo by ji pøipojit na ventilaèní systém komplexu a za pár minut bude klid. + + + Fajn, udìlám to. + + + Promyslím si to. + + + Nádrž s plynem už mám. + + + No teda, seš dobrej, brácho. + + + A hele, tady je stalker, na kterýho èekáme. + + + Co je v plánu? + + + Pùjdeme na setkání. Nebudeš muset skoro nic dìlat, aspoò doufám. Prostì stùj poblíž a tvaø se výhrùžnì. + + + Ok. + + + Heh. Rozhodnì budou litovat, že si s náma zaèínali. S bouchaèkou seš dobrej, stalkere. Na, vezmi si tohle. + + + Hodnì štìstí. + + + Ty zatracenej posero. Podìlals to, tak teï táhni. + + + Sbohem. + + + Proè ten spìch? + + + Nic. + + + Poslal tì Hejkal? + + + Jo. Øekl, že potøebuješ pomoc. + + + Potøebuju pomoc, to je pravda. No, mìl bys to zvládnout, jak se na tebe tak koukám. + + + Fajn. O co jde? + + + Budeš dìlat ochranku bìhem obchodu. Nic víc. + + + To zvládnu. + + + Drž se poblíž a krej mì. + + + Jasnì. + + + Budu mluvit jen se šéfem. + + + Jak chceš. + + + Dìkuju, stalkere. Moc jsi mi pomohl. Mìl jsem pocit, že se mnou ti debilové zkusí nìjak vybìhnout. Sledovali nás celou dobu! Tohle máš za námahu. + + + Hodnì štìstí. + + + Jako lenoch seš dobrej, jako ochranka nic moc. Ale slíbil jsem ti zaplatit, tak tady máš. + + + Hodnì štìstí. + + + Jako lenoch seš dobrej, jako ochranka nic moc. Ale slíbil jsem ti zaplatit, tak tady máš. + + + Hodnì štìstí. + + + Co chceš? Nic ti nedlužím, sotva jsem to zvládnul.... táhni! + + + Hodnì štìstí. + + + Dík, žes pøišel. Chceme se pøiplížit k banditùm a poslechnout si, co kecají. Pak se uvidí. + + + Aha. + + + Dìkuju, stalkere. Vezmi si od nás tohle... Barman ti dá hlavní odmìnu. + + + Aha. + + + Øekni mi o tom, jak tady žiješ. + + + No není to procházka parkem, to je jasný... co pøesnì tì zajímá? + + + Co tady dìláte? + + + Hlídáme stalkery. Musíš pøiznat, že tak pùlka z vás jsou ještì malý dìti. Pøijdete si do Zóny s hloupouèkýma snama, nebo si hrát na hrdiny, nebo jen proto, že venku je na vás nìkdo zlej. Neuvìdomujete si, co tady na vás èeká - a vìtšinou je to smrtka. Na takovýhle dáváme pozor. Když najdem nìjakýho na Smeáku, seberem mu vìci a pošlem ho zpátky ke Kordónu. Nìkterý dostanou rozum a vrátìj se ven. Ti, kteøí mají víc koulí než mozku a tak se vrátìj - ty pak chráníme, ale platìj nám za to danì. Øíkám ti, na naše území si nikdo netroufá. Ani armáda, ani žoldáci, dokonce ani mutanti. + + + Co vás pøivedlo do centra Zóny? + + + Naše nohy. Pøišli jsme sem za stalkery, jak jinak? Bez nás, kteøí udržujem poøádek, by tady byl totální chaos. Co najdeš, to je tvoje, jasnì, ale kdo bude platit danì? Však víš, mírový a bezpeènostní danì. Jakože zatímco jeden z vás dojí anomálii, jeden z nás hlídá, aby ho nìco nesežralo. Když se pak vrátí, tak si vezmem podíl... za dodržování bezpeènosti, však chápeš. + + + Jak ses stal šéfem? + + + No kde zaèít... asi se to se mnou táhne už od støední. Mìl jsem dobrýho kámoše, dalo by se øíct nejlepšího. Táhli jsme to spolu, kouøili, chlastali a tak. Akorát on chtìl furt víc a víc vzrùša. Pustil se do drog: nejdøív trávu, pak háèko a koks, když zaèal vydìlávat prachy. Øíkal jsem mu: "Vyser se na to svinstvo, Toljo, než bude pozdì." Ale neposlouchal. Jednou si prásknul nìco øíznutýho a nedal to. Našel jsem jeho dealera a vyrovnal úèty... akorát mì pøi tom nìkdo vyfotil a nastalo peklo - skonèil jsem v lapáku, zapletl se do bitek, dostal kudlou do bøicha. Když jsem vylezl ven, pustil jsem se do kšeftování a zavøeli mì zas. No a když jsem vylez z díry po druhý, na všechno jsem se vykašlal a zamíøil k Zónì. Pár mìsícù jsem si budoval pozici, pak mì povýšili. A tak tomu teï tady šéfuju a prosazuju místní zákony. + + + Co si myslíš o stalkerech? + + + Každej je nìjakej. Najdeš blbce, kteøí nevydrží ani tejden, jiní tvrdì makaj... a jiní jsou fajn chlapi, se kterýma život mlátí na obou stranách Kordónu, a tak se s tím nauèili vycházet. Ten první typ sdíráme dohola, druhej zdaòujem. A ten druhej... no, s tìma si prostì navzájem nelezem do cesty. Škoda, že je od sebe nedokážeš rozeznat na první pohled. + + + Ale to nic, zapomeò na to. + + + Jak chceš. + + + A teï Fousáè pracuje pro nás. + + + Víš, co se øíká: "Kráva je naše, jdem ji podojit." Obèas se za ním stav a pøipomeò mu, že má navalit poplatek. + + + Fousáè má dùležitou objednávku na artefakt, kterýmu se øíká Kompas. + + + Musíme ten Kompas sebrat. Fousáè by se pro nìjakou malou rybu takhle nenervoval. Mám tušení, že si tak chce zachránit prdel... a zùstat v byznysu. Dones mi ten Kompas, jakmile ho najdeš. + + + Našel jsem Kompas. Tady máš. + + + Nechce se mi hledat ti ten Kompas. + + + Hele, debile, pochop jednu vìc. Pokud ti nìco øeknu a ty mì zklameš, tak už se mi moc líbit nebudeš. A lidi, který se mi nelíbìj, vìtšinou brzo smrdìj nìkde v pøíkopì. Je ti to jasný? + + + Budu na to pamatovat. + + + Seženu od stalkerù ty detektory. + + + Fajn. Já se mezitím postarám o zablokování dalších cestièek. + + + Jeden malej ptáèek mi vyzvonil, že jsi dal Kompas Fousáèovi. Tak teï mì pozornì poslouchej, debile. Když mì nìkdo zklame, jsem na nìj vìtšinou nasranej. Nerad jsem na nìkoho nasranej a tak to vìtšinou vyøeším pìknì rychle. Rozumíš mi? + + + Budu na to pamatovat. + + + Fousáèovi už došly vylepšené detektory. + + + Výbornì. Zatímco jsi byl pryè, odøíznul jsem mu pár dalších kanálù. Teï je klient náš, celej náš. Stav se za Fousáèem a øekni mu, že ho pozdravuje Sultán. + + + Fousáè mi dluží prachy. Hejkal øíkal, že bys mi mohl pomoct. + + + Asi jo... vidím to takhle, doženeme Fousáèe k bankrotu a pøevezmem mu ten jeho kšeft. Ty dostaneš zpátky svý prachy a podíl na kšeftu. Dohodnuto? + + + Dohodnuto. + + + Teï musíš zjistit, s èím má Fousáè takový práce. Když mu odøíznem zásobovací kanály, pùjde to snadno. + + + Promyslím si to. + + + Ale nezapomeò, že pøemejšlení škodí zdraví. + + + Myslíš, že by mohl Èipera jet v kradených zbraních? + + + Èipera? Houby, ten na to nemá žaludek. Horký vìci má pod palcem Hejkal. Co prodáš, on koupí a na nic se neptá. + + + Hledám Pahejla. Nevíš, kde bych ho našel? + + + Vím. Chlapi ho vidìli pøed pár dny u jeøábù v doku. Mìl bych toho blba zmáèknout a dostat z nìj prachy, který mi dluží, ale furt na to zapomínám, + + + Mám pro tebe práci. Chlapi jdou na setkání s pøekupníkem... jde o kšeft, však víš. V poslední dobì je v Zónì nìjak horko, tak si øíkám, další støelec navíc vadit nebude. Hlavnì je tøeba, aby to šlo všechno hladce. + + + OK. + + + Dobøe. Chlapi na tebe poèkají u lovecké stanice. Souøadnice jsem ti nahrál do PDA. + + + Aha. + + + Nemám zájem. + + + Co tady sakra ještì dìláš? Padej k lovecké stanici. + + + Uh-huh. + + + Tak co, už ses rozmyslel? Seš s náma, nebo jak? + + + Jsem s váma. + + + Zùstanu na vlastní pìst. + + + Pamatuj. Jsem Sultán. Všechno, co se tady dìje, buï pøímo øídím, nebo budu. Pokud si chceš spokojenì žít, budeš makat pro mì. Pokud ne, budeš to mít sakra blbý. Tak to tady funguje, brácho. + + + Co potøebuješ? + + + Co tì sem pøivádí? + + + No? + + + Pozabíjel jsem ty stalkery sám. + + + No ty vole, ty se s tím nesereš. Prostì nabìhneš a hotovo, ty vole. Proè jsem tì jen verboval, do prdele... nic jsi nám nevydìlal, jen teï budem mít problémy. Zklidni se sakra, chlape, takhle to nejde.... + + + Líbí se ti makat pro vìdátory? + + + Není to špatný. Zatím žádný problémy, všechno vypadá v pohodì. Vìdátoøi nám dali nìjaký vybavení, takže se nám celkem daøí. + + + Je to skvìlý. Jednoduchá, ale dobøe placená práce. Co jsme tady, zatím nikdo po vìdátorech nešel. Dokonce ani mutanti. + + + Dávám dohromady oddíl, se kterým bych vyrazil do Pripjati. Nechceš se pøidat? + + + Nee... na rozdíl od jinejch se mi nepostaví, sotva slyším slovo Pripjat. Navíc tady máme práci, musíme chránit vìdátory... Možná bys sebou mohl vzít toho vojcla. Bude mít šanci podívat se po svejch kámoších z armády a my tady budeme mít chvilku klidu. Je celkem v pohodì, ale tohle pro nìj není vhodný místo. + + + Nee... na rozdíl od jinejch se mi nepostaví, sotva slyším slovo Pripjat. Navíc tady máme práci, musíme chránit vìdátory... + + + Nechceš pracovat pro vìdátory? + + + O co jde? + + + Hlídat jejich bunkr. + + + Heh, hlídat... nebylo by to po prvý. Dobøe. Jakmile budem pøipravený, zaènem hlídat bunkr. + + + Provádìt mìøení v anomáliích. + + + Mìøení, jo? Vypadám snad jako nìjakej laborant? To není nic pro mne. + + + Promluvíme si o tom pak. Pobíhá tady až moc novejch ksichtù, je tøeba ukázat jim, kde je jejich místo, pak zaènu uvažovat o práci. + + + Fajn, tak do toho. Poøádnì jim natrhnem! + + + Dobøe. + + + Radši bysme si ale mìli nìkam zalízt, jde na nás zatracená emise! + + + Fajn, tak do toho. Poøádnì jim natrhnem! Zùstaò v pohodì, bude to v klidu. + + + Pìknì jsme jim dali, co? Tady máš prachy, kámo. Pokud budem mít nìjakej další 'kšeft', zaøvu na tebe. + + + No ty vole, ty se s tím nesereš. Prostì nabìhneš a hotovo, ty vole. Proè jsem tì jen verboval, do prdele... nic jsi nám nevydìlal, jen teï budem mít problémy. Zklidni se sakra, chlape, takhle to nejde.... + + + Ses posral, co? Kde jsou stalkeøi, co?! Co je to za sraèky? Tys nás prásknul, co? Nikdo jinej to bejt nemohl! Všichni mí bráchové byli se mnou celou dobu... a teï, debile, vyrazíš a pùjdeš ty stalkery obrat sám! Na co sakra èumíš, jdi jim vyprázdnit kapsy, blbe! + + + Mìli bysme jít... za Bárkou. + + + Hej, náèelníku. Sorry, ale teï nemám chu na kecy. + + + Pomùžu ti. + + + Skvìlý. Zaøídíme schùzku a ty pak s nima vyrazíš. Až pøilezou, šoupneme to na nì ze všech stran. Dávej si bacha, a nejseš moc blízko, mohl bys taky nìjakou koupit. + + + OK. + + + Nee. To se mi nelíbí. + + + Nazdar, stalkere. Nemám teïka èas. Pokecáme pozdìjc, jo? + + + Dík za varování. Možná bys mohl jít s náma? Bude to hezká šance støelit ty svinì do zad. + + + Pøepadneme je. Až to udìláme, ty je zaèneš støílet do zad. + + + Ti kreténi jsou už teïka mrtví. Dík za varování, + + + Dík za pomoc. + + + Nazdar. Hele, pokud to není naléhavý, stav se pozdìjc, jo? + + + Nazdar. + + + Našel jsem Strakáèe. Byl ve stanici Janov, vystupoval pod jménem Pazourek. Postaral jsem se o nìho. + + + Postaral? Škoda. Moc rád bych z toho køiváka vymlátil duši sám... Nevadí, i tak to slyším rád. Tady máš – moje slovo platí. + + + Díky. + + + Chci opustit Zónu. + + + Opravdu? Není cesty zpìt. + + + Urèitì. Jdeme. + + + I když... Zatím zùstanu. + + + OK, vem si prachy. Nechci bojovat. + + + Huh? Dej mi všechno, co máš, hajzle! Pak se ztra a nevracej se! + + + Odcházím. + + + Ani nápad! + + + Podívám se na to... Vždy jsi úplnì v poøádku. No, pokud se tobì vede špatnì, pak já už musím být mrtvý... + + + Poslyš, mám tady takovou urgentní prácièku. Jeden mùj známý chce dojednat nìjaký obchod. Problém je v tom, že jeho zákazníci jsou docela otravní, takže pro jistotu si chce najmout ochranku. Máš zájem? + + + Urèitì. + + + OK. Bude na tebe èekat u šerifa, pak ti øekne podrobnosti. + + + Ani ne. + + + Jak chceš. Pokud bys ještì zmìnil názor, nabídka možná bude poøád platit. + + + Jakou práci pro mì máš? + + + Takovou, na které se dá vydìlat. Zamysli se: proè se ptám tebe? Jsi nováèek bez výraznìjších konexí, ale pokud budeš rozumný, mohl bys rychle získat respekt místních. Mám pokraèovat? + + + Jo, pokraèuj. + + + Dobrá, poslouchej. Chtìli bysme obrat pár Fousáèových stalkerù. Je to tutovka. V noci pøijdeš s našimi chlapy k Ševèenkovi a než ti turisti zjistí, co se dìje, projedeš se s nimi. My dostanem prachy, ty respekt... Chápeš? Dobøe. Vidíš támhle Boxera? Ten ti øekne víc. + + + Ani ne. + + + Škoda. Ještì o tom pouvažuj... Až zjistíš, co je pro tebe dobré, vra se. + + + Takovou, kterou oceníš, pokud chceš získat respekt... Chceš vìdìt, co mám na mysli? + + + Bárkovo PDA. Jeho mrtvé tìlo jsem našel v jeskyních pod vyhoøelým statkem. + + + Našel jsem to u kostí nedaleko Dubovic. Je to Vtipoòovo PDA. + + + Vtipoòovo?! To není možné! Páni, teï jsi mì dostal... Vtipoò je po smrti... Chudák Vtipoò, teï už se jeho vtípkùm nezasmìjeme... Odpoèívej v pokoji... Doufám, že aspoò Bárka je v poøádku... + + + Vtipoòovo?! To není možné! Páni, teï jsi mì dostal... Takže Vtipoò je taky po smrti... Chudák Vtipoò, teï už se jeho vtípkùm nezasmìjeme... Odpoèívej v pokoji... A ty taky, Bárko... Jak se to jen mohlo stát... + + + Bárkovo a Vtiponì. Jedno jsem našel u kostry poblíž Dubovic, druhé leželo na mrtvole v jeskyních pod vypáleným statkem. + + + Abych byl upøímný, moc toho není. Emise jsou velice nebezpeèné a témìø vždy smrtelné. Jejich pøíchod mùžeš poznat podle postupné zmìny poèasí, ale brzy po svém vrcholu odeznívají. Pøi prvních náznacích pøicházející emise okamžitì vyhledej dobrý úkryt – jeskyni, nìco z betonu, cihel nebo oceli... Já, stejnì jako pár dalších lidí, poznám pøicházející emisi tak, že mì zaènou bolet záda. Co se vlastností emise týèe, k tomu ti nic nepovím, protože zkrátka nic nevím. + + + Potøebuješ zboží? Informace? Nebo snad chceš informace prodat? + + + Sultán øíká, že máš v plánu obrat stalkery. Poèítej se mnou. + + + Skvìle. Po pùlnoci dotáhni svùj zadek k Ševèenkovi, budem tam na tebe èekat. Ale nenechávej to až na ráno. + + + Aha, to jsi ty, kámo. Tak na èem jste se se Sultánem dohodli? + + + Takže... Nìkdy mezi pùlnocí a úsvitem pøijï ke èlunu, budem tam na tebe èekat. + + + Myslím, že radši zùstanu s tebou. Poèkáme do pùlnoci a pak mì mùžeš dovést k Ševèenkovi. + + + To nebude problém, buï poblíž. Klidnì tì tam zavedu. + + + Vlastnì... Musím ještì nìco zaøídit. + + + Mimo Zónu mám dùležité zákazníky, kteøí si pravidelnì objednávají urèité artefakty s pevnì danou dodací lhùtou. Ty mi pøineseš, co potøebuju, a já ti za to dobøe zaplatím. Zapamatuj si, že tyhle obchody jsou pro mì fakt dùležité a taky proto se snažím vysílat více agentù najednou... Celou èástku ti zaplatím jen v pøípadì, že úkol splníš jako první. + + + Pøes vypálený statek. Ehm... Kdo vlastnì jsi? + + + Lidé to místo nazývaj Železným lesem. Vrtulník to napálil pøímo do stožárù elektrického vedení. Žádný z tìch mariòákù nepøežil... A i kdyby nìkdo pøežil, nedostal by se z toho živej. Tyhle pøízraky zkrátka milují nahánìní lidí do elektrických anomálií... Ti zvrhlíci reagují na sebemenší pohyb, to ale asi víš. + + + Poslyš... Když se vrtulník zøítil, pobíhalo tam pìt ozbrojenejch chlápkù. Dokonce se dokázali dostat z bažin... Dojít tam není nic tìžkého, jen se drž co nejdál od vody a dávej pozor, abys mìl pevnou pùdu pod nohama. Taky budeš potøebovat obranu proti chemikáliím. Takže pokud se tam chceš fakt vydat, poøiï si u doktora nìjaké protilátky. + + + Škoda, že tady mí kámoši Vtipoò a Bárka nejsou s námi... Mìli bychom spoustu èasu. Byli jsme jako bratøi, dávali jsme na sebe pozor... Jak se to mohlo stát? … Já jsem poøád tady, ale ale oni jsou bùhví kde. + + + Øekni mi o Vtipoòovi a Bárkovi. + + + Nìco jsem si odtamtud pøinesl. + + + Tak povídej... pøinesl jsi nìco i mì? + + + Tím se všechno vysvìtluje, toho kluka znám. Býval to vždycky tak trochu grázl, ale poslední dobou už to fakt pøehání. Takhle obírat stalkery... nìkdo by ho mìl umravnit. + + + Potøebuju pár informací z tábora žoldákù. Není to tak hrozný, jak se zdá. + + + Dobøe, poèkám... ale nezapomeò, že to fakt pospíchá. Potøebuju to mít do dvou dní. + + + PDA Sultánova posla + + + Nijak zvláš zajímavý to není. Dám ti za to pìt stovek. + + + Platí. + + + Prototypy detektorù. Nechceš je vykoupit? + + + Tajné dokumenty. Našel jsem je na mostì u jednoho sloupu. Chceš se na nì mrknout? + + + Divný artefakt. Našel jsem ho u øíèního bagru. + + + Divný artefakt. Našel jsem ho u janovského nádraží. + + + Artefakt Srdce Oázy + + + Jdeme na to. + + + Poèkejte. + + + Partièka stalkerù tì chce oškubat. Dávej si bacha. + + + Svinì jedny... dobøe, dopøejeme jim vøelého uvítání. Co kdyby ses mezi nì vetøel a nalhal jim, že jsi na jejich stranì? Pak bys nám je pomohl odehnat. Bohatì se ti odvdìèíme. + + + Mnì je jedno, na èem jste se dohodli. Davaj! + + + Dobøe, tu máš. + + + Neznaješ? Ale to nás vùbec nezajímá. Naval prachy, magore! + + + Hlavnì klídek... vezmìte si je. + + + Svinì jedny... dobøe, dopøejeme jim vøelého uvítání. Co kdybys nám je pomohl odehnat? Bohatì se ti odvdìèíme. + + + Pìknì jsme je rozjebali! Ale ty ses nijak nezapojil, tak nic nedostaneš. Ozvu se ti, až zas seženeme nìjakej „kšeft“. + + + Byls nám k nièemu... neèekej žádnou odmìnu. No ale aspoò, že ses stavil na kus øeèi. Snaha se cení. + + + Mìj se. + + + Pašák! Teï mùžeme klienta trošièku skøípnout. Doneslo se mi, že Fousáè svým stalkerùm rozdává výkonný detektory, se kterýma pak hledají vzácný artefakty. Od tebe potøebuju, aby ses k nim pøidal a ty detektory jeden po druhým štípnul. Rozumíme si? + + + S ním jen tak nehneme. Chtìl jsem mu vlítnout na zásobovací trasy, ale tomu vousatýmu kreténovi se stejnì povedlo dostat Kompas. Má se jako prase v žitì... prozatím. + + + [pokraèovat...] + + + [pokraèovat...] + + + [pokraèovat...] + + + Tetøev zaøval. Nejspíš ho sejmul Strašák... ale ten už je taky tuhej. + + diff --git a/gamedata/configs/text/cze/st_generate_fnames.xml b/gamedata/configs/text/cze/st_generate_fnames.xml new file mode 100644 index 0000000..322240b --- /dev/null +++ b/gamedata/configs/text/cze/st_generate_fnames.xml @@ -0,0 +1,492 @@ + + + + Sanek + + + Šurik + + + Váïa + + + Vajan + + + Vasek + + + Viucha + + + Vetal + + + Vovan + + + Žorka + + + Griška + + + Griško + + + Dimon + + + Lecha + + + Dimucha + + + Žeka + + + Fimka + + + Iljuèa + + + Kosan + + + Mitka + + + Michal + + + Micha + + + Michas + + + Koljn + + + Toljan + + + Pavlucha + + + Sašok + + + Stìpka + + + Stìpucha + + + Timocha + + + Felka + + + Juras + + + Jaška + + + Andrjucha + + + Tocha + + + Arkaša + + + Temka + + + Borjan + + + Boïa + + + Kapitán + + + Poruèík + + + Vojín + + + Andrej + + + Anton + + + Oleg + + + Roman + + + Alexandr + + + Sergej + + + Anatolij + + + Juri + + + Bohdan + + + Veòamin + + + Vitalij + + + Vladimir + + + Dmitrij + + + Ivan + + + Konstantin + + + Alexej + + + Sanja + + + Sanek + + + Arthur + + + Jaška + + + Jarik + + + Jara + + + Slava + + + Borja + + + Borka + + + Bohdan + + + Slavik + + + Vadim + + + Vaïa + + + Vadik + + + Valik + + + Valera + + + Šurik + + + Vasja + + + Vaska + + + Vasko + + + Venja + + + Vitja + + + Vitka + + + Vitalik + + + Vlad + + + Vova + + + Vovka + + + Lenja + + + Seva + + + Sevka + + + Gena + + + Genka + + + George + + + Gosha + + + Žora + + + Mark + + + Gleb + + + Gríša + + + Alex + + + Griška + + + Griško + + + Danja + + + Kirjucha + + + Danko + + + Dennis + + + Dima + + + Dimka + + + Dmitro + + + Ženja + + + Leška + + + Ženka + + + Egor + + + Egorka + + + Fima + + + Vanja + + + Vanka + + + Igorek + + + Ilja + + + Kosa + + + Kostik + + + Tolik + + + Leva + + + Lenja + + + Ljonka + + + Max + + + Matvej + + + Mía + + + Miša + + + Miška + + + Nikita + + + Nik + + + Anton + + + Kolja + + + Oleg + + + Paša + + + Paška + + + Petro + + + Petja + + + Petka + + + Roma + + + Romka + + + Rostik + + + Toška + + + Rus + + + Savva + + + Semjon + + + Sema + + + Serega + + + Rusik + + + Stìpan + + + Stìpa + + + Tima + + + Timka + + + Artem + + + Fedor + + + Fedja + + + Fedka + + + Filja + + + Filka + + + Edik + + + Jurka + + + Jurik + + + Jurko + + + Jaša + + + Nadrotmistr + + + Rotný + + diff --git a/gamedata/configs/text/cze/st_generate_snames.xml b/gamedata/configs/text/cze/st_generate_snames.xml new file mode 100644 index 0000000..c5bc101 --- /dev/null +++ b/gamedata/configs/text/cze/st_generate_snames.xml @@ -0,0 +1,4836 @@ + + + + Šedivák + + + Berserk + + + Shnilej + + + Patty + + + Špehoun + + + Bison + + + Bobr + + + Bulldog + + + Bejk + + + Vlaštovka + + + Datel + + + Bestie + + + Èarodìj + + + Tahoun + + + Kanec + + + Kruas + + + Kanár + + + Brouk + + + Nark + + + Los + + + Krysa + + + Hroznýš + + + Bochník + + + Zlomenej + + + Dlouhej John + + + Masakr + + + Šroub + + + Bøitva + + + Buben + + + Šmejd + + + Vývrtka + + + Dynamit + + + Trumf + + + Lopata + + + Joint + + + Mrtvej kaèer + + + Køíž + + + Tar + + + Ponožka + + + Páèidlo + + + Panadol + + + Kudla + + + Piston + + + Niklák + + + Ocas + + + Smrtka + + + Hnízdiè + + + Brousek + + + Eso + + + Dláto + + + Strašák + + + Zastávka + + + Kravata + + + Kaòour + + + Klepka + + + Pìst + + + Monokl + + + Treska + + + Hacker + + + Chán + + + Kostìj + + + Rambo + + + Prùvodce + + + Terminator + + + Chapai + + + Èingiz + + + Banán + + + Bochník + + + Mastnej prst + + + Papa + + + Klín + + + Frajer + + + Gangréna + + + Cuk + + + Stupeò + + + Antilopa + + + Fubar + + + Pariah + + + Aspik + + + Uhlí + + + Trumf + + + Joint + + + Ponožka + + + Goblin + + + Maor + + + Tráva + + + Flop + + + Ravioli + + + Chili + + + Struhadlo + + + Špekoun + + + Sušenka + + + Ghùl + + + Lakomec + + + Zlomenej + + + Skrblík + + + Mrkáè + + + Pekelník + + + Kripl + + + Kopáè + + + Kroua + + + Prohnanej + + + Šiftr + + + Paruka + + + Zuøivák + + + Podlízka + + + Lokál + + + Slizoun + + + Šampión + + + Brejle + + + Mizera + + + Flákaè + + + Tvrïák + + + Houba + + + Pomatenec + + + Psycho + + + Uøvan + + + Rozervanej + + + Lapaè + + + Slepej + + + Snopl + + + Džezák + + + Met + + + Mrtvola + + + Sekáèek + + + Ušák + + + Vtipálek + + + Ohaø + + + Chromajzl + + + Tvrïas + + + Pøecvaklej + + + Labužník + + + Šutrák + + + Páže + + + Pijavice + + + Umìlec + + + Podfukáø + + + Bankéø + + + Bezïák + + + Baron + + + Prodavaè + + + Neortodoxní + + + Tramp + + + Navigátor + + + Trpajzl + + + Bourbon + + + Buržoust + + + Šofér + + + Zlodìj + + + Oholenej + + + Gangster + + + Posel + + + Hrabì + + + Tyran + + + Divoch + + + Škrtiè + + + Rádce + + + Hráè + + + Podvodník + + + Kmotr + + + Veterán + + + Trenér + + + Bling-bling + + + Maniak + + + Hrobník + + + Øezník + + + Ninja + + + Popravèí + + + Punk + + + Partyzán + + + Pacifista + + + Balvan + + + Pirát + + + Žháø + + + Princ + + + Brigand + + + Kamikaze + + + Pasák + + + Tyran + + + Hitman + + + Trombón + + + Chemik + + + Abdurachmanov + + + Altynnik + + + Barsak + + + Kirjev + + + Šerbin + + + Kovalèuk + + + Kojev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratìnko + + + Korkin + + + Kornìv + + + Baul + + + Kravèenko + + + Krivda + + + Krivoèacky + + + Kuznìcov + + + Kuzmiè + + + Kuzjakin + + + Kulèický + + + Kunev + + + Kurvitz + + + Kuèeruk + + + Bašakov + + + Kušnarev + + + Chaladze + + + Lavrik + + + Lavrov + + + Livšits + + + Lisièansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bašmakov + + + Maltsev + + + Mamajev + + + Merzlajev + + + Milèenko + + + Mironjuk + + + Mohrer + + + Kryga + + + Mostovoj + + + Muntjan + + + Muchamedov + + + Beševlij + + + Myskov + + + Navrocky + + + Nepritsky + + + Nikanorov + + + Nikešin + + + Nikulin + + + Fucin + + + Nordìv + + + Nosan + + + Opoljev + + + Binojev + + + Orljeviè + + + Orlov + + + Petkeviè + + + Petrenko + + + Petrov + + + Plochenko + + + Podjachev + + + Poljanin + + + Poplavskij + + + Popov + + + Blinov + + + Portnych + + + Prasolov + + + Prokopenko + + + Proskurin + + + Procenko + + + Prudov + + + Pustovar + + + Puèek + + + Rabinoviè + + + Radkeviè + + + Bobrov + + + Rezun + + + Rogoza + + + Rodòanský + + + Rotan + + + Rubljev + + + Rudik + + + Rusanov + + + Rychagirskij + + + Savèenko + + + Savèuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Seïych + + + Sereda + + + Sidorenko + + + Sidorov + + + Sinij + + + Sinicyn + + + Skamejka + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Stacura + + + Stepèin + + + Styèinsky + + + Sykula + + + Tarnavskij + + + Tatarèuk + + + Timèuk + + + Andrejèuk + + + Bojèenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronštein + + + Burjak + + + Buturin + + + Bjalo + + + Valentinov + + + Andrušenko + + + Vasiljev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanèuk + + + Volodar + + + Vološin + + + Voroncov + + + Vorochajev + + + Vjušinsky + + + Anisjev + + + Galkin + + + Ganzjuk + + + Garkovenko + + + Garkuša + + + Georgov + + + Glebovskij + + + Gnatjuk + + + Gonèarenko + + + Gordìnko + + + Gorljevoj + + + Ardašev + + + Gorochin + + + Gorjunov + + + Grebenko + + + Gricajenko + + + Gricaj + + + Gricenkov + + + Grišaèev + + + Grisèuk + + + Gubar + + + Gunko + + + Babiè + + + Gureviè + + + Denisenko + + + Dovgaljuk + + + Dombrik + + + Docenko + + + Drozduš + + + Dubenèuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunajev + + + Dyklov + + + Erofjejev + + + Efremov + + + Žabenko + + + Žmyjev + + + Žurakovskij + + + Zabjagoda + + + Zagorodòuk + + + Zamosenèuk + + + Baranov + + + Zarubin + + + Zacharin + + + Zvonnicky + + + Zinovjev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatìnko + + + Baranovskij + + + Iženko + + + Isèuk + + + Kazakov + + + Kazancev + + + Kandybabko + + + Kapuka + + + Kapusanko + + + Kac + + + Kikabidze + + + Gacula + + + Abdurachmanov + + + Altynjik + + + Barsak + + + Kirjejev + + + Šerbin + + + Kovalèuk + + + Kojev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratìnko + + + Korkin + + + Kornjejev + + + Baul + + + Kravèenko + + + Krivda + + + Krivochacky + + + Kuznìcov + + + Kuzmiè + + + Kuzjakin + + + Kulchistky + + + Kuncev + + + Kurvic + + + Kuèeruk + + + Bašakov + + + Kušnarev + + + Chaladze + + + Lavrik + + + Lavrov + + + Livèic + + + Lisièansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bašmakov + + + Maltsev + + + Mamajev + + + Merzlajev + + + Milèenko + + + Miroòuk + + + Mohrer + + + Kryga + + + Mostovoj + + + Munan + + + Muchamedov + + + Beševlij + + + Myskov + + + Navrocky + + + Nepricky + + + Nikanorov + + + Nikešin + + + Nikulin + + + Fucin + + + Nordìv + + + Nosan + + + Opoljev + + + Binojev + + + Orljeviè + + + Orlov + + + Petkeviè + + + Petrenko + + + Petrov + + + Plochenko + + + Podjaèev + + + Poljanin + + + Poplavskij + + + Popov + + + Blinov + + + Portnych + + + Prasolov + + + Prokopenko + + + Proskurin + + + Procenko + + + Prudov + + + Pustovar + + + Puèek + + + Rabinoviè + + + Radkeviè + + + Bobrov + + + Rezun + + + Rogoza + + + Rodòanský + + + Rotan + + + Rubljev + + + Rudik + + + Rusanov + + + Rychagirskij + + + Savèenko + + + Savèuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Seïych + + + Sereda + + + Sidorenko + + + Sidorov + + + Sinij + + + Sinicyn + + + Skamejka + + + Sluckyj + + + Bojko + + + Smelov + + + Smoly + + + Sorokin + + + Stacura + + + Stepèin + + + Styèinsky + + + Sykula + + + Tarnavskij + + + Tatarèuk + + + Timèuk + + + Andrejèuk + + + Bojèenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Burjak + + + Buturin + + + Bjalo + + + Valentinov + + + Andrušenko + + + Vasiljev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanèuk + + + Volodar + + + Vološin + + + Voroncov + + + Vorochajev + + + Vjušinsky + + + Anisjev + + + Galkin + + + Ganzjuk + + + Garkovenko + + + Garkuša + + + Georgov + + + Glebovskij + + + Gnatjuk + + + Gonèarenko + + + Gordìnko + + + Gorljevoj + + + Ardašev + + + Gorochin + + + Gorjunov + + + Grebenko + + + Gricajenko + + + Gricaj + + + Gricenkov + + + Grišaèev + + + Grisèuk + + + Gubar + + + Gunko + + + Babiè + + + Gureviè + + + Denisenko + + + Dovgaljuk + + + Dombrik + + + Docenko + + + Drozduš + + + Dubenèuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunajev + + + Dyklov + + + Erofjejev + + + Efremov + + + Žabenko + + + Žmyjev + + + Žurakovskij + + + Zabjagoda + + + Zagorodòuk + + + Zamosenèuk + + + Baranov + + + Zarubin + + + Zacharin + + + Zvonnicky + + + Zinovjev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatìnko + + + Baranovskij + + + Iženko + + + Isèuk + + + Kazakov + + + Kazancev + + + Kandybabko + + + Kapuka + + + Kapusanko + + + Kac + + + Kikabidze + + + Gacula + + + Abdurachmanov + + + Altynjik + + + Barsak + + + Kirjejev + + + Šerbin + + + Kovalèuk + + + Kojev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratìnko + + + Korkin + + + Kornjejev + + + Baul + + + Kravèenko + + + Krivda + + + Krivochacky + + + Kuznìcov + + + Kuzmiè + + + Kuzjakin + + + Kulchistky + + + Kuncev + + + Kurvic + + + Kuèeruk + + + Bašakov + + + Kušnarev + + + Chaladze + + + Lavrik + + + Lavrov + + + Livèic + + + Lisièansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bašmakov + + + Maltsev + + + Mamajev + + + Merzlajev + + + Milèenko + + + Miroòuk + + + Mohrer + + + Kryga + + + Mostovoj + + + Munan + + + Muchamedov + + + Beševlij + + + Myskov + + + Navrocky + + + Nepricky + + + Nikanorov + + + Nikešin + + + Nikulin + + + Fucin + + + Nordìv + + + Nosan + + + Opoljev + + + Binojev + + + Orljeviè + + + Orlov + + + Petkeviè + + + Petrenko + + + Petrov + + + Plochenko + + + Podjaèev + + + Poljanin + + + Poplavskij + + + Popov + + + Blinov + + + Portnych + + + Prasolov + + + Prokopenko + + + Proskurin + + + Procenko + + + Prudov + + + Pustovar + + + Puèek + + + Rabinoviè + + + Radkeviè + + + Bobrov + + + Rezun + + + Rogoza + + + Rodòanský + + + Rotan + + + Rubljev + + + Rudik + + + Rusanov + + + Rychagirskij + + + Savèenko + + + Savèuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Seïych + + + Sereda + + + Sidorenko + + + Sidorov + + + Sinij + + + Sinicyn + + + Skamejka + + + Sluckyj + + + Bojko + + + Smelov + + + Smoly + + + Sorokin + + + Stacura + + + Stepèin + + + Styèinsky + + + Sykula + + + Tarnavskij + + + Tatarèuk + + + Timèuk + + + Andrejèuk + + + Bojèenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Burjak + + + Buturin + + + Bjalo + + + Valentinov + + + Andrušenko + + + Vasiljev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanèuk + + + Volodar + + + Vološin + + + Voroncov + + + Vorochajev + + + Vjušinsky + + + Anisjev + + + Galkin + + + Ganzjuk + + + Garkovenko + + + Garkuša + + + Georgov + + + Glebovskij + + + Gnatjuk + + + Gonèarenko + + + Gordìnko + + + Gorljevoj + + + Ardašev + + + Gorochin + + + Gorjunov + + + Grebenko + + + Gricajenko + + + Gricaj + + + Gricenkov + + + Grišaèev + + + Grisèuk + + + Gubar + + + Gunko + + + Babiè + + + Gureviè + + + Denisenko + + + Dovgaljuk + + + Dombrik + + + Docenko + + + Drozduš + + + Dubenèuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunajev + + + Dyklov + + + Erofjejev + + + Efremov + + + Žabenko + + + Žmyjev + + + Žurakovskij + + + Zabjagoda + + + Zagorodòuk + + + Zamosenèuk + + + Baranov + + + Zarubin + + + Zacharin + + + Zvonnicky + + + Zinovjev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatìnko + + + Baranovskij + + + Iženko + + + Isèuk + + + Kazakov + + + Kazancev + + + Kandybabko + + + Kapuka + + + Kapusanko + + + Kac + + + Kikabidze + + + Gacula + + + Sinajev + + + Feigelman + + + Ledencov + + + Alferov + + + Antipin + + + Blinov + + + Bogomolov + + + Vasiljeviè + + + Geškenbein + + + Djakonov + + + Erochin + + + Zaikin + + + Zacharov + + + Ivèenko + + + Kabanov + + + Larin + + + Manko + + + Mironov + + + Stepanenko + + + Oganesjan + + + Chernodub + + + Shilov + + + Chirikov + + + Beljavin + + + Fadjejev + + + Steklov + + + Andrjejev + + + Spirin + + + Balicky + + + Abdurachmanov + + + Altynjik + + + Barsak + + + Kirjejev + + + Šerbin + + + Kovalèuk + + + Kojev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratìnko + + + Korkin + + + Kornjejev + + + Baul + + + Kravèenko + + + Krivda + + + Krivochacky + + + Kuznìcov + + + Kuzmiè + + + Kuzjakin + + + Kulchistky + + + Kuncev + + + Kurvic + + + Kuèeruk + + + Bašakov + + + Kušnarev + + + chaladze + + + Lavrik + + + Lavrov + + + Livèic + + + Lisièansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bašmakov + + + Maltsev + + + Mamajev + + + Merzlajev + + + Milèenko + + + Miroòuk + + + Mohrer + + + Kryga + + + Mostovoj + + + Munan + + + Muchamedov + + + Beševlij + + + Myskov + + + Navrocky + + + Nepricky + + + Nikanorov + + + Nikešin + + + Nikulin + + + Fucin + + + Nordìv + + + Nosan + + + Opoljev + + + Binojev + + + Orljeviè + + + Orlov + + + Petkeviè + + + Petrenko + + + Petrov + + + Plochenko + + + Podjaèev + + + Poljanin + + + Poplavskij + + + Popov + + + Blinov + + + Portnych + + + Prasolov + + + Prokopenko + + + Proskurin + + + Procenko + + + Prudov + + + Pustovar + + + Puèek + + + Rabinoviè + + + Radkeviè + + + Bobrov + + + Rezun + + + Rogoza + + + Rodòanský + + + Rotan + + + Rubljev + + + Rudik + + + Rusanov + + + Rychagirskij + + + Savèenko + + + Savèuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Seïych + + + Sereda + + + Sidorenko + + + Sidorov + + + Sinij + + + Sinicyn + + + Skamejka + + + Sluckyj + + + Bojko + + + Smelov + + + Smoly + + + Sorokin + + + Stacura + + + Stepèin + + + Styèinsky + + + Sykula + + + Tarnavskij + + + Tatarèuk + + + Timèuk + + + Andrejèuk + + + Bojèenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Burjak + + + Buturin + + + Bjalo + + + Valentinov + + + AndruŠenko + + + Vasiljev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanèuk + + + Volodar + + + Vološin + + + Voroncov + + + Vorochajev + + + Vjušinsky + + + Anisjev + + + Galkin + + + Ganzjuk + + + Garkovenko + + + Garkuša + + + Georgov + + + Glebovskij + + + Gnatjuk + + + Gonèarenko + + + Gordìnko + + + Gorljevoj + + + Ardašev + + + Gorochin + + + Gorjunov + + + Grebenko + + + Gricajenko + + + Gricaj + + + Gricenkov + + + Grišaèev + + + Grisèuk + + + Gubar + + + Gunko + + + Babiè + + + Gureviè + + + Denisenko + + + Dovgaljuk + + + Dombrik + + + Docenko + + + Drozduš + + + Dubenèuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunajev + + + Dyklov + + + Erofjejev + + + Efremov + + + Žabenko + + + Žmyjev + + + Žurakovskij + + + Zabjagoda + + + Zagorodòuk + + + Zamosenèuk + + + Baranov + + + Zarubin + + + Zacharin + + + Zvonnicky + + + Zinovjev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatìnko + + + Baranovskij + + + Iženko + + + Isèuk + + + Kazakov + + + Kazancev + + + Kandybabko + + + Kapuka + + + Kapusanko + + + Kac + + + Kikabidze + + + Gacula + + + Bílej + + + Zelenej + + + Nesmrtelnej + + + Rezavej + + + Romantik + + + Masakrátor + + + Svalnatec + + + Vypravìè + + + Slepej + + + Odvážnej + + + Snopl + + + Hádaè + + + Staøík + + + Berserk + + + Džezák + + + Met + + + Pochmura + + + Lenoch + + + Vyschlej + + + Z prdele klika + + + Pihovatej + + + Špekoun + + + Bachor + + + Mrtvola + + + Zlomenej + + + Chytráèek + + + Sekáèek + + + Ušák + + + Mazánek + + + Vtipálek + + + Chromajzl + + + Tvrïas + + + Kost + + + Cynik + + + Tyvole + + + Lehkováha + + + Pøecvaklej + + + Alarm + + + Labužník + + + Šutrák + + + Studentík + + + Domorodec + + + Letec + + + Agent + + + Páže + + + Pijavice + + + Podlízka + + + Uèedník + + + Umìlec + + + Asketa + + + Podfukáø + + + Bankéø + + + Bard + + + Baron + + + Prodavaè + + + Neortodoxní + + + Bìžec + + + Atlet + + + Bitkáø + + + Tramp + + + Navigátor + + + Trpajzl + + + Bourbon + + + Buržoust + + + Byrokrat + + + Vandal + + + Barbar + + + Údržbáø + + + Sekáè + + + Zaklínaè + + + Návštìvník + + + Viking + + + Šofér + + + Potapìè + + + Náèelník + + + Zlodìj + + + Cestovatel + + + Psychiatr + + + Koòák + + + Uøvan + + + Gangster + + + Geolog + + + Gladiátor + + + Posel + + + Host + + + Hrabì + + + Porter + + + Dìda + + + Uprchlík + + + Prodavaè + + + Ohaø + + + Švihák + + + Zástupce + + + Tyran + + + Divoch + + + Diplomat + + + Doc + + + Doktor + + + Profesor + + + Škrtiè + + + Hlídaè + + + Bezïák + + + Rádce + + + Ack-ack + + + Kvákoš + + + Hráè + + + Indián + + + Irokéz + + + Kapitán + + + Podvodník + + + Klaun + + + Vévoda + + + Zrzek + + + Oholenej + + + Kozák + + + Kuchaø + + + Èarodìj + + + Komanè + + + Král + + + Kmotr + + + Obchodník + + + Kuøák + + + Kurýr + + + Trenér + + + Veterán + + + Legionáø + + + Felèar + + + Lesák + + + Lord + + + Magnát + + + Bling-bling + + + Maniak + + + Maran + + + Zedník + + + Mechanik + + + Vazba + + + Hrobník + + + Moderátor + + + Mlíkaø + + + Øezník + + + Žoldák + + + Ladiè + + + Šéf + + + Ninja + + + Operátor + + + Puškaø + + + Štístko + + + Šach + + + Popravèí + + + Polkan + + + Punk + + + Tatík + + + Partyzán + + + Pastor + + + Pastýø + + + Staršina + + + Oráè + + + Šastlivej + + + Pacifista + + + Transportér + + + Píšalka + + + Pilot + + + Rychlonožka + + + Pirát + + + Tesaø + + + Žháø + + + Požárník + + + Pantofle + + + Kolohnát + + + Subzero + + + Vyslanec + + + Pošák + + + Básník + + + Princ + + + Prorok + + + Profesor + + + Skokan + + + Vèelaø + + + Døíè + + + Loajální + + + Rabín + + + Jiskra + + + Brigand + + + Rasta + + + Hlídaè + + + Rocker + + + Horník + + + Samuraj + + + Minohledaè + + + Posluha + + + Bugo + + + Knìžour + + + Sekretáø + + + Gigolo + + + Podfuk + + + Skyta + + + Stopa + + + Mašinista + + + Kamikaze + + + Pìstitel + + + Zachránce + + + Balvan + + + Sportsman + + + Cizák + + + Bosna + + + Soudce + + + Muchomùrka + + + Pasák + + + Úèetní + + + Vojcl + + + Taneèník + + + Tyran + + + Hniloba + + + Smlouvaè + + + Uklízeè + + + Ometák + + + Etnik + + + Turista + + + Hitman + + + Trombón + + + Zadák + + + Snajpr + + + Chemik + + + Rezava + + + Verbál + + + Páa + + + Malíø + + + Ovcožrout + + + Šaman + + + Dìrák + + + Uhlák + + + Šerif + + + Náèelník + + + Uèenec + + + Kapusta + + + Hrbáè + + + Špehoun + + + Elektrikáø + + + Kadet + + + Pohan + + + Aligátor + + + Anakonda + + + Pavián + + + Bizon + + + Bobr + + + Kudlanka + + + Pýcha + + + Buldok + + + Veverka + + + Volek + + + Gricin + + + Vrabec + + + Havran + + + Ondatra + + + Plantážník + + + Mrchožrout + + + Vrána + + + Hoøèák + + + Manul + + + Husa + + + Delfín + + + Dinosaur + + + Drozd + + + Datel + + + Ježek + + + Brouk + + + Zajíc + + + Bestie + + + Hrom + + + Èernoknìžník + + + Aurora + + + Krocan + + + Kanec + + + Krucián + + + Kanár + + + Štìnice + + + Kobra + + + Moskyt + + + Høebec + + + Násilník + + + Kocour + + + Krok + + + Kobylka + + + Nark + + + Los + + + Mamut + + + Slon + + + Bacil + + + Ovád + + + Mravenec + + + Dlouhej John + + + Støeèek + + + Pavouk + + + Krysa + + + Poutník + + + Piraòa + + + Škrtiè + + + Králík + + + Hejkal + + + Sokol + + + Sviš + + + Mìkejš + + + Sysel + + + Støevle + + + Šváb + + + Tarantule + + + Tarbík + + + Hroznýš + + + Hejkal + + + Fretka + + + Èerv + + + Dìrák + + + Mrtvej kaèer + + + Absolutní + + + Anomálie + + + Nárazník + + + Bochník + + + Zlomenej + + + Masakr + + + Ohnivák + + + Šroub + + + Bøitva + + + Buben + + + Hnízdiè + + + Kobliha + + + Vakuum + + + Šmejd + + + Oblázek + + + Vìtrák + + + Sekáè + + + Vítr + + + Vývrtka + + + Límec + + + Høebík + + + Zrzek + + + Treska + + + Patrona + + + Glób + + + Balvan + + + Granát + + + Mlha + + + Rakev + + + Letòák + + + Motor + + + Dynamit + + + Holej + + + Mastnej prst + + + Právník + + + Zámek + + + Závìø + + + Izotop + + + Skála + + + Past + + + Kouzelník + + + Karma + + + Cihla + + + Lepidlo + + + Zlej + + + Klíè + + + Biè + + + Trumf + + + Èepice + + + Štípaè + + + Vizour + + + Koøen + + + Kosa + + + Kosmonaut + + + Lopata + + + Køoví + + + Joint + + + Køíž + + + Ter + + + Spouš + + + Ponožka + + + Páèidlo + + + Mašina + + + Cíl + + + Motor + + + Pumpa + + + Železo + + + Nokturno + + + Brokárna + + + Panadol + + + Paragán + + + Koleèko + + + Pìtka + + + Kudla + + + Píst + + + Plastelína + + + Støelák + + + Porichtung + + + Niklák + + + Raketa + + + Øada + + + Reaktor + + + Sekerák + + + Siva + + + Ocas + + + Robot + + + Jelen + + + Lopata + + + Uhlí + + + Koøala + + + Bota + + + Jabèák + + + Smrtka + + + Chlaston + + + Ráže + + + Hlaveò + + + Bedna + + + Sekera + + + Zadek + + + Šikula + + + Brousek + + + Eso + + + Uzel + + + Faktor + + + Lampa + + + Dláto + + + Èerven + + + Èesnek + + + Strašák + + + Šance + + + Špekoun + + + Zastávka + + + Trn + + + Kloset + + + Kravata + + + Brouk + + + Držka + + + Tyèka + + + Kaòour + + + Vývrtka + + + Klepka + + + Lakomec + + + Mozkolap + + + Tesák + + + Paøát + + + Kostra + + + Pìst + + + Nerv + + + Kostlivec + + + Ocas + + + Høeben + + + Monokl + + + Šedivák + + + Skrblík + + + Hacker + + + Chán + + + Atlet + + + Pinokio + + + Zaklínaè + + + Voldemort + + + Homer + + + Drak + + + Hrom + + + Gioconda + + + Mrkáè + + + Nudle + + + Plechovka + + + Ikaros + + + Kasanova + + + Kostìj + + + Cézar + + + Kolobok + + + Kutuzov + + + Lulík + + + Bonaparte + + + Myslitel + + + Nelson + + + Neptun + + + Oskar + + + Prométeus + + + Puškin + + + Pátek + + + Rambo + + + Roquefort + + + Prùvodce + + + Terminator + + + Blboun + + + Inkoust + + + Cézar + + + Èapajev + + + Èapaj + + + Chebur + + + Cheburaška + + + Èingaèook + + + Èingiz + + + Stierlitz + + + Banán + + + Sokol + + + Sušenka + + + Bochník + + + Papa + + + Klín + + + Frajer + + + Bulkin + + + Buldozer + + + Bufr + + + Knedlík + + + Pískot + + + Šavle + + + Gangréna + + + Hybrid + + + Cuk + + + Bubeník + + + Horal + + + Stupeò + + + Gremlin + + + Antilopa + + + Strejda + + + Fubar + + + Ledovka + + + Pariah + + + Kagor + + + Zelí + + + Karbid + + + Aspik + + + Trumf + + + Komodor + + + Král + + + Joint + + + Ponožka + + + Pekelník + + + Led + + + Goblin + + + Maor + + + Madera + + + Špageta + + + Master + + + Mutant + + + Tráva + + + Pøehoï + + + Rybník + + + Kripl + + + P.I. + + + Ravioli + + + Èili + + + Pásek + + + Bìlouš + + + Bublina + + + Struhadlo + + + Burr + + + Rjazansky + + + Koøala + + + Kripl + + + Morel + + + Sušenka + + + Tabák + + + Èasovaè + + + Eso + + + Cukýna + + + Ghùl + + + Trombón + + + Fantóm + + + Kaskadér + + + Šedivák + + + Kopáè + + + Koma + + + Kroua + + + Neohrabanej + + + Páteø + + + Prohnanej + + + Duha + + + Šiftr + + + Buš + + + Paruka + + + Šedivej + + + Hnìdej nos + + + Zuøivák + + + Lulík + + + Mrtvol + + + Nekro + + + Lokál + + + Hrob + + + Slizoun + + + Šampión + + + Narcis + + + Špína + + + Laxa + + + Podìlátor + + + Náfuka + + + Otrava + + + Ubreèenec + + + Brejle + + + Mizera + + + Flákaè + + + Paranoia + + + Tvrïák + + + Teflon + + + Lump + + + Houba + + + Pomatenec + + + Spravedlivej + + + Prosáèek + + + Psycho + + + Døíè + + + Rozervanej + + + Lapaè + + + Drsoò + + diff --git a/gamedata/configs/text/cze/st_items_artefacts.xml b/gamedata/configs/text/cze/st_items_artefacts.xml new file mode 100644 index 0000000..15390a2 --- /dev/null +++ b/gamedata/configs/text/cze/st_items_artefacts.xml @@ -0,0 +1,153 @@ + + + + Tento artefakt je složen z nìkolika dutých organických formací a vypouští chemickou látku schopnou neutralizovat radioaktivní èástice v tìle, aniž by zpùsobily škody na zdraví. S ohledem na velkou efektivitu je tento artefakt velmi žádaný. + + + Bublina + + + Zarudlá formace zkompresovaných a fosilizovaných rostlin, hlíny a zvíøecích pozùstatkù. Dokáže èásteènì neutralizovat chemické jedy. Vyzaøuje radiaci. + + + Kamenná krev + + + Tento artefakt vzniká v anomálních zónách s vysokou termální aktivitou. Aktivnì pohlcuje žár a pøitom zùstává chladný na dotek. Vyzaøuje radiaci. + + + Tento artefakt je vytvoøen z kamene podobného žule, deformovanému extrémní gravitaèní silou. Výsledná krystalická formace nebyla dodnes vìdou objasnìna. Dokáže poskytnout èásteènou ochranu pøed psionickými vlnami a je radioaktivní. + + + Kamenný kvìt + + + Krystal + + + Tento artefakt obsahuje elektrostatické elementy, ale vìdci prozatím nedokázali identifikovat pøesné fyzické podmínky potøebné pro jeho vznik. Artefakt je v Zónì populární a cenìn návštìvníky i trvalými obyvateli pro svùj posilovací úèinek, aèkoli pøi prodlouženém používání mùže tìlo znaènì oslabit. Vyzaøuje radiaci. + + + Baterka + + + Tento artefakt byl døív považován za odpad bez jakýchkoli užiteèných vlastností. Vìdci ale nedávno zjistili, že pokud je držen v kontaktu s tìlem, má stimulaèní úèinky na nervový systém. Vyzaøuje radiaci. + + + Skoøápka + + + Tento artefakt zùstává pro vìdce velkou záhadou. Nicménì je známo, že emise vytváøené pulsy uvnitø silnìjších èástí artefaktu zpùsobují rychlejší srážení krve a vytváøejí ochranné vrstvy ztvrdlé krve. Tento artefakt tedy znaènì zvyšuje rychlost hojení zranìní. Vyzaøuje radiaci. + + + Máminy korálky + + + Tento elektrostatický artefakt dokáže pohlcovat elektøinu a pozdìji ji vypustit jako výboj. Blesk dokáže chránit svého nositele pøed elektrickými šoky až do výše 5000 voltù. Vyzaøuje radiaci. + + + Blesk + + + Tento unikátní elektrostatický artefakt pod vlivem psionických vln rezonuje. Stalkeøi se nauèili artefakt vyladit tak, že rezonuje v opaèné fázi oproti zdroji emisí a tak ve výsledku jejich úèinky neutralizuje. Vyzaøuje radiaci. + + + Mìsíèní svìtlo + + + Nejzáøivìjší pøedstavitel elektrostatického typu artefaktù dokáže vyrovnávat fluktuace v elektrickém poli. Vyzaøuje radiaci. + + + Jiskøiè + + + Tento artefakt pøipomínající lidské oko zvyšuje rychlost lidského metabolismu a urychluje hojení zranìní. Zkušení stalkeøi tvrdí, že oko také pøináší štìstí. Vyzaøuje radiaci. + + + Oko + + + Tento artefakt vzniká v oblastech s velkou termální aktivitou. Vyzaøuje silné infraèervené záøení, které zrychluje metabolické procesy a hojí rány pøímo pøed oèima. Jelikož je tento artefakt velmi vzácný, je také velmi drahý. Vyzaøuje radiaci. + + + Plamen + + + Aèkoli je Ohnivák termální artefakt, je možné používat ho bez obav z popálenin. Artefakt je cenìn pro svou schopnost zachovávat kolem sebe teplotu 25 stupòù Celsia prakticky bez ohledu na okolí. Vyzaøuje radiaci. + + + Ohnivák + + + Relativnì vzácný artefakt vznikající v oblastech kontaminovaných chemikáliemi je cenìn pro svou schopnost zhojit témìø jakákoli zranìní bìhem nìkolika minut. Z neznámého dùvodu vìdci mezi stalkery šíøí tvrzení, že artefakt narušuje genetický kód svého nositele. Vyzaøuje radiaci. + + + Koblížek + + + Svìtluška + + + Zlatá rybka vzniká následkem interakce mezi vìtším poètem gravitaèních anomálií a sama o sobì vytváøí silné interní gravitaèní pole, díky kterému zaniká tíha pøedmìtù v jeho okolí. Artefakt je velmi vhodný pro zvyšování nosnosti, proto je po nìm vysoká poptávka. Vyzaøuje radiaci. + + + Zlatá rybka + + + Gravi vzniká z kovových substancí vystavených delšímu pùsobení gravitaèních anomálií. Díky tomu dokáže vytváøet antigravitaèní pole a mnozí stalkeøi ho používají na snížení tíhy svých batohù. Vyzaøuje radiaci. + + + Gravi + + + Tento artefakt na první pohled pøipomíná koblížek. Obèas se tvrdí, že jde o koblížek, jehož vlastnosti byly posíleny vystavením pùsobení silného elektrického pole. Díky svým unikátním vlastnostem dokáže tento artefakt zvyšovat svalový tonus svého nositele. Vyzaøuje radiaci. + + + Snìhová vloèka + + + Tento gravitaèní artefakt pøitahuje a absorbuje radioaktivní èástice a snižuje úèinek ozáøení na lidské tìlo. V Zónì je bìžný a neoficiálnì se mimo Zónu používá k léèení nemoci z ozáøení. + + + Medúza + + + Tento organický artefakt tvoøí deformovaná mutovaná zvíøecí tkáò. Pokud se artefakt nachází v chemicky kontaminované zónì, koncentruje chemikálie ve vzduchu na slizkou tekutinu. Vyzaøuje radiaci. + + + Masová kulièka + + + Tento záøící artefakt dokáže vytváøet lokální smìrované gravitaèní pole. Stalkeøi ho spolu s podobným artefaktem gravi èasto používají k zvýšení své nosnosti. Vyzaøuje radiaci. + + + Noèní hvìzda + + + Unikátní organický artefakt s unikátními vlastnostmi. Nìjak dokáže zvyšovat schopnost tìla vyrovnávat se se zranìním a poškozením, aniž by pøitom zvyšoval rychlost ukládání toxinù v tkáni. Díky svým úèinkùm a atraktivnímu vzhledu jde o velmi cenìný kousek. Vyzaøuje radiaci. + + + Duše + + + Tento bizarnì vytvarovaný artefakt vzniká v místech se zvýšenou gravitaèní aktivitou. Chová se jako houba nasávající radioaktivní èástice a poskytuje tak ochranu pøed vnìjší radiací i pøed radioaktivními èásticemi, které už pronikly do tìla. + + + Køivák + + + Kompas + + + Vzácný artefakt, naposledy nalezený pøed nìkolika lety. Dokáže identifikovat mezery mezi anomálními poli. Vìøí se, že umožòuje procházet mezi komplexními systémy anomálií, aniž by byl jeho nositel ohrožen. Jen málokdo ale ví, jak ho správnì používat. + + + Srdce Oázy + + + Tento artefakt byl nalezen v centru legendární Oázy. Jde zøejmì o krystalizovanou rostlinu, která získala léèivé vlastnosti Oázy. Na rozdíl od Oázy je však artefakt extrémnì radioaktivní. + + + Svìtluška, vyskytující se v dosud neprozkoumaných polích, výraznì zrychluje regeneraci tkání a orgánù živých organismù a normalizuje metabolické procesy. Tento artefakt mùže tìžce zranìného stalkera dostat bìhem pár vteøin zpátky na nohy. Svìtluška je však velice vzácná a radioaktivní. + + diff --git a/gamedata/configs/text/cze/st_items_equipment.xml b/gamedata/configs/text/cze/st_items_equipment.xml new file mode 100644 index 0000000..ebf9946 --- /dev/null +++ b/gamedata/configs/text/cze/st_items_equipment.xml @@ -0,0 +1,156 @@ + + + + Protiradiaèní léky + + + Mexaminové léky pro ochranu pøed radiací jsou v Zónì bìžné. Pøi použití lék zpùsobuje stažení vláseènic a kyslíkovou deprivaci, což napomáhá v léèení a zabraòuje dalšímu nárùstu radiaèní expozice. Lék nemá žádné silné vedlejší úèinky, aèkoli jsou hlášeny øídké pøípady nevolnosti, køeèí a bolestí žaludku. + + + Obvaz + + + Bìžný elastický obvaz používaný k zastavení krvácení a k ochranì zranìní pøed infekcí. Pro bìžné krvácení opatrnì zakryjte ránu obvazem. Pøi krvácení z tepny rychle uvázejte obvaz kolem zasažené oblasti a silnì utáhnìte. + + + Standardní vojenský dalekohled s maximálním pøiblížením x7.5. V Zónì je užiteèný, jelikož svému majiteli umožòuje pozorovat okolí z dálky. + + + Dalekohled + + + Chléb + + + V Zónì se nikdy neobjevil žádný pekaø, nicménì tento chléb není ani kontaminovaný, ani radioaktivní. Je èerstvý a celkem jedlý. Alespoò si prozatím nikdo nestìžoval. + + + Konzerva "Turistovy snídanì" + + + Tyto konzervy byly pravdìpodobnì ukradeny stalkery z vojenského skladištì. Na konzervì není žádný identifikaèní štítek, takže to není jisté. Pøesto je stále jedlá, pokud se dá tedy vìøit datu minimální trvanlivosti vyraženému na víku. + + + Detektor Echo + + + Tento zastaralý detektor anomální aktivity aktivuje poplašný signál, pokud se pøi pøiblížení se k anomálii dostanou do interní detekèní komory anomální èástice. Vzdálenost k anomálii naznaèuje frekvence zvuku vydávaný zaøízením. Pro pøepnutí do režimu hledání artefaktù je tøeba otevøít pøední kryt zaøízení. S ohledem na jednoduchý princip použitý v detektoru je možné používat ho pouze k hledání nejbìžnìjších artefaktù. + + + Detektor Medvìd + + + Detektor Veles + + + Vìdecký skener nové generace. Díky tøem modernizovaným detekèním komnatám je na speciálním displeji zaøízení ukazována pøibližná pozice artefaktu. Pokud je pøední kryt uzavøen, registruje detektor pouze radiaci a anomálie. Pro pøepnutí do režimu hledání artefaktù je tøeba otevøít pøední kryt. V režimu hledání dokáže detektor objevit všechny známé artefakty. + + + Prototyp detektoru Svarog + + + Prototyp vylepšeného detektoru anomálních frekvencí. Toto zaøízení je vybaveno programem schopným identifikovat statické oblasti anomální aktivity v závislosti na své interní databázi, pøièemž stále dokáže lokalizovat artefakty. Pozice anomálních oblasti a artefaktù se zobrazují na speciální obrazovce. Režim hledání artefaktù, aktivovaný otevøením pøedního krytu, byl modifikován k detekci anomálních formací, které jsou známé. + + + Standardní èelová baterka. Užiteèná pro stalkery, kteøí se nestihnou do tmy vrátit do bezpeèí, nicménì mùže snadno pøilákat nevítanou pozornost. + + + Baterka + + + Antibiotika + + + Protijed + + + Antitoxin IP2 je komplexní léèebný systém složený z nìkolika antibiotik vèetnì metoclopramidu, pyridoxinu, thiaminu, riboxinu a dalších léèiv. Lék po vstøíknutí do krevního obìhu dokáže neutralizovat velké množství pøírodních toxinù, navíc obsahuje absorbenty syntetických jedù. IP2 v Zónì není pøíliš populární, jelikož se vìtšina stalkerù spoléhá na plynovou masku a ochranný oblek, pøesto si ale nìkteøí stalkeøi dìlají zásoby tohoto léèiva. Lék má dlouhodobé úèinky. + + + Herkules + + + Vinca + + + Ukrajinský vikasolum - umìlý ekvivalent vitaminu K. Hlavním cílem tohoto léku je zrychlit srážení krve. Mezi stalkery je po nìm vysoká poptávka, jelikož umožòuje rychlejší hojení drobných zranìní, seèných a tržných ran zpùsobených mutanty. Lék má dlouhotrvající úèinky. + + + Psionický blok + + + Tato droga blokuje silné nervové impulsy. Konzumace léku zpùsobuje krátkodobé potlaèení veškerých emocí. Používá se pouze v Zónì jako ochrana pøed úèinky anomálních psionických polí. Lék má dlouhotrvající úèinky. + + + Radioochrana + + + Stalkerský energy drink + + + Stalkeøi na dlouhých výpravách, kdy si nemohou dovolit odpoèinek, èasto pijí ve velkém tento energetický nápoj. Drink obsahuje snadno stravitelné uhlovodíky a také léky, které stimulují uvolòování adrenalinu do krevního obìhu. + + + Vìrná kytara + + + Kytara + + + Dietní klobása + + + Tato klobása, vyrobená ze smìsi kuøete a sojové náhražky, èasto tvoøí stalkerskou snídani, obìd i veèeøi. Díky vysokým obsahùm konzervantù je možné ji skladovat dlouhodobì. + + + Lékárnièka + + + Armádní lékárnièka + + + Specializovaná lékárnièka pro poskytovaní první pomoci v boji. V lékárnièce jsou obsaženy krevní koagulanty založené na menadionu, analgetika, antibiotika a imunostimulanty, také základní výbava pro odstraòování kulek a støepin z tìla. Lékárnièka je standardnì vydávána vojenskému personálu a obèas ji používají stalkeøi frakce Povinnost. + + + Obecná lékárnièka na jedno použití. Hodí se pro ošetøení rùzných zranìní - tržných ran, otokù, obyèejných i chemických spálenin a také nìkterých otrav. Mezi stalkery je po ní velká poptávka. + + + Vìdecká lékárnièka + + + Lékárnièka navržená specificky pro použití v Zónì. Obsahuje léky a výbavu pro léèení zranìní, zablokování úèinkù radiace a dekontaminaci tìla od radioaktivních èástic. Na rozdíl od jiných lékárnièek je v ní i Vikasolum, Batilolum a Naphazoline. + + + Žádná data neuložena. + + + PDA + + + Kozácká vodka + + + Výrobek GSC. Je celkem jemná a pomáhá snižovat úèinky radiace. Je vhodné konzumaci omezovat. + + + Tento detektor anomálií poslední generace mùže být využit k lokalizaci anomálních útvarù. Disponuje panelem s barevnými diodami, který nenaznaèuje jen smìr pozice artefaktu, ale i jeho vzdálenost. Pro pøepnutí do režimu vyhledávání artefaktù otevøi pøední kryt pøístroje. V pøístroji je bohužel naprogramován ponìkud zastaralý seznam detekovatelných artefaktù. + + + Experimentální droga vyvinutá profesorem Ozerským urèená pro vìdeckovýzkumné týmy pracující v Zónì. Samotná droga obsahuje tetrodotoxin, známý pod oznaèením „prášek zombií,“ který zpùsobuje úplné zastavení èinnosti centrálního nervového systému a umožòuje tak pøežít emisi mimo úkryt. Droga neprošla klinickými ani praktickými zkouškami, což vyvolává otázky týkající se její efektivity a možných vedlejších úèinkù. + + + Šroub + + + Hlavní složkou tohoto výrobku je anabolický androgen, syntetický steroid, který svým chemickým složením pøipomíná testosteron. Stalkeøi jej èasto užívají bìhem dlouhých bojù, aby ulevili svým svalùm. Steroid znaènì zvyšuje nosnost a má dlouhotrvající úèinky. + + + Protiradioaktivní pøípraven Indralin B190 je bìžnou souèástí lékárnièek používaných v jaderných elektrárnách. V Zónì se používá namísto vysoce toxického hydrochloridu cysteaminného PC1, jehož èasté užívání zpùsobuje smrt. Zmíròuje dopady paprskù gamma na lidskou tkáò. Doporuèuje se spolknout pøed vystavením záøení, jelikož efekt se nedostavuje okamžitì. Úèinky trvají dlouhodobì. + + + Foukací harmonika + + + Pro milovníky blues a písní zhrzených vìzòù. + + diff --git a/gamedata/configs/text/cze/st_items_outfit.xml b/gamedata/configs/text/cze/st_items_outfit.xml new file mode 100644 index 0000000..4d53896 --- /dev/null +++ b/gamedata/configs/text/cze/st_items_outfit.xml @@ -0,0 +1,117 @@ + + + + Osobní zbroj CS-3a + + + Zbroj Povinnosti PSZ-9d + + + Univerzální ochrana PS5-M + + + Exoskeleton + + + Obrnìný oblek Bulat + + + Tento exoskeleton poskytuje vynikající ochranu pøed kulkami a støepinami, nicménì omezuje pohyblivost. Je snadno prostøelitelný prùraznou municí. + + + Exoskeleton + + + Vojenský obrnìný oblek pro útoèné operace. Poskytuje vynikající ochranu pøed celoplášovými støelami a støepinami, aniž by negativnì ovlivòoval pohyblivost nositele. Zranitelný prùrazným støelivem. + + + Vojenský obrnìný oblek + + + Bìžný pláš z èerné kùže. Nemá jiný úèel než uchovat svého nositele v teple a chránit ho pøed kousnutím slepým psem. Aèkoli není kabát pøíliš pohodlný, èasto ho v Zónì používají banditi - buï proto, že se v nìm mohou snáze schovat ve tmì, nebo prostì proto, že vypadá "cool". + + + Kožený pláš + + + Oblek SEVA + + + Obrnìný oblek Berill-5M + + + Helma Sphere M12 + + + Hliníkovo titanová helma s látkovým pokrytím, ve kterém jsou kapsy pro další ochranné kovové pláty, a s pancéøovanou oblièejovou maskou. Sphere M12 se bìžnì používá v kombinaci s osobní zbrojí Speznas série PSZ. V Zónì je celkem populární díky respirátoru a zabudovanému systému noèního vidìní první generace, navíc poskytuje maximální možnou ochranu hlavy. Je vybavená sloty na elektroniku. + + + Ocelová helma + + + Zoufale zastaralá ocelová armádní helma bez dalších modifikací. Neposkytuje žádnou ochranu pøed anomáliemi nebo radiací, ale dokáže odrážet kulky. Tato helma v Zónì nikdy nebyla moc populární, používala se více pouze bìhem krátkých ozbrojených konfliktù mezi frakcemi. + + + Zakrytovaná helma + + + Lehká helma s neprodyšným vizorem, urèená pro ochranu pøed anomáliemi. Podle designu se dá usuzovat, že helmu navrhl stejný výzkumný institut obrany, který má na svìdomí oblek SEVA. Zamýšlené použití je v kombinaci s vojenskými obleky pro operaci v oblastech s velkým výskytem anomálií. + + + Plynová maska + + + Bìžná plastová a gumová plynová maska, schopná filtrovat ze vzduchu radioaktivní èástice a jedovaté plyny. Bìžnì používaná zelenáèi i veterány všech frakcí s ohledem na univerzální funkènost. Neposkytuje žádnou fyzickou ochranu. + + + Taktická helma + + + Západní model taktické helmy bez kamufláže. Není známo, jak se tato helma do Zóny dostala. Je urèena pro velitele družstva, kterému poskytuje prostøednictvím skenerù a satelitních komunikátorù strategickou výhodu nad nepøítelem. Nicménì v této helmì komunikaèní zaøízení chybí. Helma je chránìna nìkolika vrstvami kevlaru a pancéøových vložek, které mají chránit elektronické komponenty. V helmì je zabudován respirátor a noèní vidìní první generace + + + Oblek Úsvit + + + Oblek stráží Svobody + + + Tento lehký stalkerský oblek vyrábí øemeslníci Svobody. Látka obleku je napuštìna Horizonem, speciálním roztokem vyvinutým frakcí metodou pokus a omyl k zvýšení ochrany pøed anomáliemi. Stejnì jako oblek Úsvit je i Vítr svobody vybaven pancéøovou vložkou a kontejnery na artefakty. + + + Oblek Vítr svobody + + + Tato moderní varianta neprùstøelné vesty Povinnosti je lépe uzpùsobena potøebám zaèínajících stalkerù, kteøí jsou zvyklí na lehké zbroje. Na rozdíl od øady PSZ dokáže nejen zastavit výstøel z pistole, ale poskytuje dobrou ochranu i proti anomáliím. Do vesty není možné zabudovat kapsu na artefakt, nicménì je možné ji místo toho vylepšit podpùrným bojovým systémem. + + + Tato moderní armádní zbroj je urèena k bojovým akcím v anomálních oblastech. Skládá se ze znaènì modifikované neprùstøelné vesty PSZ-12p se zabudovaným kompenzátorem a kombinézy na ochranu pøed anomáliemi. Zbroj výteènì chrání pøed kulkami a šrapnely, aniž by nositele výraznìji omezovala v pohybu. Patøí k ní i kapsa na artefakty. + + + Tento oblek je urèený k provádìní výzkumu v Zónì. Jeho souèástí je i dýchací systém s uzavøeným cyklem a vnìjší izolaèní vrstva, což v kombinaci vede k výborné ochranì pøed anomáliemi. Oblek však jen málo chrání pøed fyzickými nárazy, a proto není vhodný jako obrana pøed kulkami a šrapnely. Má s sobì zabudovánu schránku na pøenos artefaktù. + + + Tento oblek, vyrábìný jistým vojenským výzkumným institutem, je skvìlou alternativou k oblekùm šitým na koleni. Pøestože jeho zabudovaná vesta dokáže zastavit pouze výstøel z pistole, systémy na ochranu pøed anomáliemi a radiací patøí ke špièce. Pøiètìte si k tomu snadnou modifikovatelnost a dvì schránky na artefakty a pochopíte, proè je tento oblek tak populární. + + + Tento oblek sestává z neprùstøelné vesty øady PS5 potøené - pro úèely pobytu v Zónì - vrstvou berylia. Byl navržen pro bojové operace ve znaènì radioaktivních oblastech, ale v místech s èastým výskytem anomálií pøíliš neobstojí. Tyto obleky se ke stalkerùm dostávají od vojákù, kteøí je vymìòují za koøist. Neobsahují schránku na artefakty. + + + Stalkerský oblek vyrobený nìkým z místních. Efektivní kombinace lehké vojenské neprùstøelné vesty a pogumovaného látkového obleku. Aèkoli nedokáže ochránit nositele ani pøed støelami z pistole, je díky své nízké cenì a modifikaèním možnostem velmi populární. Obsahuje kapsy, do kterých je možné vložit dva artefakty. + + + Tento zesílený stalkerský oblek vyrábìný øemeslníky ze Svobody pøedstavuje kompromis mezi bojovou efektivitou a ochranou pøed anomáliemi. Zabudovaná neprùstøelná vesta se skládá z pancíøových destièek a deseti vrstev kevlaru, které dokáží zastavit výstøel z pistole. K ochranì pøed anomáliemi používá oblek relativnì drahý pøípraven „Suverén“. Obsahuje kapsu na artefakty. + + + Raný model služební zbroje Povinnosti. Jde prakticky jen o neprùstøelnou vestu PSD-9, která byla pøetvoøena pro úèely Zóny. Dokáže sice zastavit i výstøel z pušky, to je však vyváženo vysokou hmotností, neohrabaností a prakticky nulovou ochranou pøed anomáliemi. Do vesty není možné zabudovat kapsu na artefakty, nicménì je možné ji vylepšit podpùrným bojovým systémem. + + + Tato zbroj kdysi sloužila èlenùm Jasného nebe, ovšem po znièení této frakce funguje pøedevším jako pøipomínka, že ani sebelepší obranný oblek vám v poli nezajistí stoprocentní bezpeèí. Dokáže zastavit výstøel z pistole a zároveò dobøe chrání pøed anomáliemi. Má zabudovanou kapsu na artefakty. + + + Prototyp vojenského exoskeletonu. Do sériové produkce se kvùli obrovské cenì a nìkolika technickým chybám nikdy nedostal, pøesto se ale v malém množství vyrábí v ilegálních továrnách mimo Ukrajinu. Za svou popularitu vdìèí schopnosti pojmout tíhu veškerého neseného vybavení. Má rovnìž zabudovanou kapsu na artefakty. + + + Kombinéza SEVA + + diff --git a/gamedata/configs/text/cze/st_items_quest.xml b/gamedata/configs/text/cze/st_items_quest.xml new file mode 100644 index 0000000..bedc073 --- /dev/null +++ b/gamedata/configs/text/cze/st_items_quest.xml @@ -0,0 +1,369 @@ + + + + Dokumenty s poznámkami + + + V dokumentech je zmínka o pøíkazu Oddìlení 1. Po zapeèetìní transportaèní komory byl podzemní prùchod zaplnìn oxidem uhlièitým obohaceným o nìjakou chemickou pøímìs. Veškerý personál obdržel pøíkaz nosit v oblasti chemické ochranné obleky s uzavøenými dýchacími okruhy. + + + Dopis ohlednì dodávky pøedmìtu 62 + + + S ohledem na anomální aktivitu není pøeprava pøedmìtu 62 pøes otevøené prostranství vhodná. Pro pøepravu použijte podzemní prùchod Pripjat 1. Plán dodávky a následujícího zapeèetìní prùchodu byl pøedán oddìlení 1. + + + Složka s pøíkazem + + + Dokument zmiòuje evakuaci produkèního komplexu z továrny Jupiter do podzemní laboratoøe. Evakuace mìla být projednávána v laboratorní sekci. + + + Plán dodávky + + + Plán pro dodávky pøedmìtu 62: 07/14 - 20 jednotek (jedna poškozená); 07/21 - 32 jednotek (2 poškozeny); 07/28 - 26 jednotek (jedna poškozena). Vyjádøení ohlednì ztrát bìhem pøepravy bylo odesláno administrativì továrny, kopie odeslána do opravárenské dílny. + + + List ze zápisníku + + + Na schùzi padlo následující rozhodnutí: dodávková služba se má soustøedit na evakuaci produkèního komplexu pøedmìtu 62. + + + Záznam smìny Povinnosti + + + ...18:30 - vzduchotìsné zabezpeèení všech sekcí podchodu P1 dokonèeno. 19:00 - vzduchotìsné zabezpeèení železnièní komory dokonèeno. Dveøe byly zapeèetìny zavaøením. 19:45 - transportní dveøe uzavøeny. Použití mechanismu dveøí vyžadovalo aktivaci záložního generátoru, protože v podchodu již byla odøíznuta energie. 20:00 - chemická dílna zahájila napouštìní podchodu plynem. 22:00 - dokonèeno zapeèetìní podchodu, dokumentace odeslána oddìlení 1. + + + Schéma podchodu + + + Schéma podchodu Pripjat 1, ukazující podchod pod mìstem Pripja. V dokumentu je nìkolik poznámek: 1. Zapeèetìné dveøe pøechodové komory. 2. Použití plynu z chemické dílny k zabezpeèení podchodu. + + + Upravený izolátor + + + Toto byl kdysi izolátor. Teï je již témìø úplnì promìnìn na nestabilní artefakt. Pravdìpodobnì je to zdroj psionických emisí. + + + Plechovka kalafuny + + + Plechovka kalafuny používané pøi pájení. V Zónì celkem vzácná, což vysvìtluje, proè místní technici k opravám zaøízení používají izolaèku. + + + Balíèek kondenzátorù + + + Balíèek kondenzátorù, základních elektrických souèástek. V Zónì nejsou zas tak vzácné, jelikož se používají pro technická vylepšení, ale takhle velké kapacity se normálnì nepoužívají. + + + Cuprextit + + + Cuprextit tvoøí základ tištìných elektronických okruhù. Pocity, které má amatérský elektronik pøi doteku nepoužitého cuprextitu se dají pøirovnat k tomu, co cítí spisovatel pøi pohledu na prázdný kus papíru. + + + Krabice tranzistorù + + + Krabice tranzistorù - zesilovacích polovodièù s mnoha rùznými použitími. Po tranzistorech touží každý radiový technik v Zónì. + + + Role mìdìného drátu + + + Role mìdìného drátu, vynikajícího vodièe, slouží zároveò i jako zdroj kovu. Proto je takový drát v Zónì celkem drahý. Všechny nalezené velké rezervy mìdìných drátù už byly dávno, ještì pøed katastrofou, roztaveny a prodány do sbìru. + + + Detekèní skener mutací + + + Toto zaøízení je založeno na normálním skeneru anomální aktivity. Je vybaveno detektorem mutantù s krátkým dosahem a záznamovým zaøízením pro ukládání namìøených výsledkù. Zaøízení obsahuje automatický vypínaè, který se použije po nahrání dostatku dat. + + + Administrativní dokumenty + + + Složka dokumentù plných administrativních informací. Podle dokumentù byly na pøíkaz z centrální laboratoøe všechny technické dokumenty o pøedmìtu 62 pøedány testovací dílnì. + + + Špínovo PDA + + + Mezi zprávami se nachází jedna zajímavá. Odeslal ji Šakal a zní: "Mùj chlap ve výzkumným institutu doporuèí, abys vedl expedici. Bude muset najmout tvou partu na ochranu bunkru. Tím to budeš mít snazší. Pamatuj, klient chce, aby se k vìdcùm nedostaly ŽÁDNÉ informace o oznaèených objektech. Pokud se to stane, nebudeme moci opustit Zónu. Nezklam mì, Špíno." + + + Èerná skøínka + + + Èerná skøínka Rejnoka 1, která pøežila havárii. Mìla by obsahovat informace o posledních chvílích letu, aèkoli budou pravdìpodobnì zašifrované. + + + Vojenské plastické výbušniny s pìtisekundovým èasovaèem + + + Výbušniny s èasovaèem + + + Upravené kolo + + + Snagovo PDA + + + PDA obsahuje mapu se znaèkou u stanice, urèující skladištì, a také nìkolik erotických fotografií. Nic zvláštního. + + + Banditovo PDA + + + Poslední zpráva v PDA zní: "Chy tu svini Pahejla a pøiveï mi ho, musím si s ním pokecat. Je mi fuk, kde je, prostì ho najdi. Pokud se bude chtít rvát, dej mu lekci. Sultán." + + + V tomto PDA jsou uloženy informace o Morganových klientech a také souøadnice tajného skladištì Povinnosti, odkud bere zbranì. Morgan prodává zbranì žoldákùm a také si zøídil kontakt s nìkým jménem Sultán. Aby Morgan zamaskoval své stopy, rozhodl se prozradit pozici skladištì Povinnosti. Jeho komplic Sup mìl tyto informace pøedat. PDA také zmiòuje senzor, který dokáže deaktivovat pouze Morgan. Senzor upozorní Povinnost, pokud sklad nìkdo otevøe. Tahle informace bude zajímavá pro Povinnost i Svobodu. + + + Morganovo PDA + + + Poznámka na zadní stranì starého dokumentu: "Duchu, beru si své vìci. Díky za tu pušku, budu ji potøebovat. Na výmìnu tady nechávám nìjaké Doktorovy léky. Podaøilo se mi zavést žoldáky, kteøí mì sledovali, do pasti, takže ty léky nebudu potøebovat... aspoò doufám. Pùjdu za Tesákem, už dal dohromady dekodér. Setkáme se na obvyklém místì, pokud to zvládneš. Støelec." + + + Vzkaz Duchovi + + + Vzkaz na ètvereèkovaném papíøe: "Støelèe, nechal jsem pro všechny pøípady v Pripajatské skrýši druhý dekodér. Zamíøíme s Duchem do Agropromu, takže tady necháme nìjakou munici. Vezmi si, co potøebuješ. Šastný lov. Tesák." + + + Vzkaz Støelci + + + Vzkaz na zadní stranì starého dokumentu: "Tesáku, už nemùžu èekat, jde mi v patách celý oddíl. Zamíøím k Sarkofágu sám. Nechám tady svou šastnou bouchaèku, už pro ni stejnì nemám munici. Pokud se nedokážu vrátit, dej ji Duchovi. Pokud se o tu bouchaèku dobøe postará, postará se ona o nìj. Dávej na sebe bacha. Støelec." + + + Vzkaz Tesákovi + + + Pamìový modul z UAV. Novikov modul odblokoval, takže máš pøístup k informacím získaným UAV. Mezi jinými jsou tam i souøadnice tøí rádiových majákù. + + + Pamìový modul (odblokovaný) + + + Pamìový modul z UAV. Navzdory havárii je modul funkèní, ale naneštìstí je zablokovaný. + + + Pamìový modul (blokovaný) + + + Starý rozpis strážních služeb, s èíslem 1421 uvedeným dole. Pøes starý text je fixou napsáno: "Poruèík V. I. Sokolov. Po havárii vrtulníku jsem pokraèoval k evakuaènímu bodu B205. Po dobu dvou dnù nedošlo k žádnému pokusu o evakuaci, zùstávat na této pozici je pøíliš riskantní. Rozhodl jsem se proto opustit B205 a pokraèovat k mobilní laboratoøi vìdecké expedice. Laboratoø se nachází severovýchodnì od evakuaèního bodu." + + + Sokolovùv vzkaz + + + Rostlina, døívìjší souèást háje, která byla èásteènì zmìnìna anomální aktivitou. Hájek na útok reagoval agresivnì, ale rostlina samotná se zatím nezdá nebezpeèná. + + + Anomální rostlina + + + Poslední zpráva na PDA je od Morgana. Jde o kontrakt na vraždu stalkera jménem Degtjarev. Ke zprávì je pøiloženo nìkolik fotografií. Morganovy poslední instrukce zní: po pøeètení zprávu smazat. + + + Žoldákovo PDA + + + Zaøízení kombinuje detektor artefaktù, elektrický zdroj a silnou vysílaèku. Zaøízení skenuje anomálie a urèuje typ a poèet artefaktù, které se objeví. Všechny tyto informace se automaticky posílají do vìdeckého bunkru. + + + Skener anomální aktivity + + + Poslední položka v PDA je audio záznam: \n"...A jdem kamkoli, vždycky skonèíme na tom samém místì. Poøád si nemùžu na tu mlhu zvyknout. Je divný, že Èepurny zmizel beze stopy. Možná našel cestu ven?... \nŠestý den... došla nám voda... plukovníkovi pøeskoèilo, odprásknul dva lidi a pak sám sebe... teï jsem v té zatracené anomálii sám... kdybych se nepostaral, aby se nám velitelství nemohlo dovolat, tøeba by nás zachránili... a Povinnost by neexistovala. Ale co už. Ten kapitán Taèenko zemøel už dávno... A tenhle generál Taèenko z Povinnosti ho bude následovat... spravedlnost mì dohnala..."\nZáznam je pøerušený výstøelem. + + + PDA generála Taèenka + + + Manuál popisuje, jak používat pøedmìt 62. Instrukce zdùrazòují, že není tøeba poèítat pøi støelbì s trajektorií støely nebo vìtrem, jelikož v efektivním dostøelu zbranì nemají tyto podmínky žádný vliv.\n\nTyto dokumenty se nesmí dostat do rukou jen tak nìkomu. Analytiky z USS by velmi zajímaly. + + + Manuál pro pøedmìt 62 + + + V zápisníku jsou detailní popisy experimentu zkoumajícího úèinky psionického pole na objekt na druhé stranì svìta. Skupina vìdcù v Karibiku signál zachytila, ale narušený. Signál byl podivnì promìnìn, jakoby na nìm nìkdo provedl korekci. Možné vysvìtlení by bylo, že je teorie noosféry správná a zmìny provedla noosféra.\n\nTyto dokumenty se nesmí dostat do rukou jen tak nìkomu, protože by o nì mìli velký zájem analytici USS. + + + Zápisník s popisem experimentu + + + Dokument popisuje technické charakteristiky antény a jak se odlišuje od pùvodnì plánovaných hodnot. Na zadní stranì je poznámka naznaèující, že dokument vznikl v laboratoøi X10.\n\nTyto dokumenty se nesmí dostat do rukou jen tak nìkomu, protože by o nì mìli velký zájem analytici USS. + + + Duhový emitér, hlavní parametry + + + Dokument se týká vedlejšího výsledku výzkumu, konkrétnì objevu, že žijící stvoøení dokáží vytváøet smìrované psionické emise. V rámci výzkumu byl v laboratoøi X16 vypìstován biologický vysílaè, v podstatì obrovský mozek.\n\nTyto dokumenty se nesmí dostat do rukou jen tak nìkomu, protože by o nì mìli velký zájem analytici USS. + + + Výzkumné dokumenty + + + Hlášení popisuje biologické vzorky odeslané z laboratoøe X18. Vzorky byly vystaveny informaènímu poli rùzné intenzity. Hlášení detailnì popisuje mutace živých bytostí vystavených emisím.\n\nTyto dokumenty se nesmí dostat do rukou jen tak nìkomu, protože by o nì mìli velký zájem analytici USS. + + + Hlášení o vzorcích + + + Dokumenty popisují pøevedení výzkumného týmu a veškerých materiálù do další laboratoøe oznaèované jako X7, kde se budou zkoumat úèinky noosféry. Výzkumný tým se skládá z: N.A. Lebedìv, E.F. Kalanèa a V.I. Suslov.\n\nTyto dokumenty se nesmí dostat do rukou jen tak nìkomu, protože by o nì mìli velký zájem analytici USS. + + + Pøíkaz k pøesunu + + + Poslední poznámka v PDA zní: "Našel jsem na šestém, technickém patøe nouzový generátor. Trvalo mi dvì hodiny, než jsem ho zprovoznil. Rád bych ho zapnul, ale Serbin mi pøikázal sedìt a nic nedìlat, dokud nepøivede pár dalších lidí." + + + Barèukovo PDA + + + Èervená magnetická karta oznaèená jako X8. + + + Èervená klíèová karta X8 + + + PDA obsahuje mnoho nesmyslných záznamù, ale jeden je zajímavý: "Monolit komunikuje s pøíjemcem zprávy a pøikazuje mu sesbírat zásoby munice a uložit je na lokacích, o kterých nevìøící nevìdí. Tyto lokace mají být oznaèeny znakem Monolitu. Až pøijdou tìžké èasy, ti, kdož slyší Monolit, budou tìžit z jeho moudrosti... pøedal jsem vùli Monolitu svým bratrùm a øekl jim, kam mají umístit munici..." + + + PDA bojovníka Monolitu + + + Dìtská sada náøadí. K jemné práci nevhodná, ale s ohledem na nedostatek nástrojù v Zónì by se mohla hodit každému technikovi. + + + Náøadí pro základní práci + + + Slušná sada náøadí. Zjevnì ji dal dohromady pro své vlastní použití nìjaký zkušený technik. Navzdory svému stáøí jsou nástroje v dobrém stavu. + + + Náøadí pro jemnou práci + + + Profesionální sada náøadí pro jemné ladìní. Na skøínce je nápis oznamující, že bylo náøadí vyrobeno v Nìmecku. Sada obsahuje témìø vše potøebné k jemnému ladìní a kalibraci. + + + Kalibraèní náøadí + + + Stará magnetická karta + + + Kardanova magnetická klíèová karta. Používala se pro pøístup do testovací dílny pøedmìtu 62. + + + Dokumenty o pøedmìtu 62 + + + Dokumenty, které popisují operaèní mechanismus a technické charakteristiky elektromagnetického zaøízení.\nV poznámce je uvedeno: "Dokumenty musí být navráceny do centrální laboratoøe X8. Budu mít spoustu práce, takže je pøedej sám. Použij magnetickou klíèovou kartu v pripjatském servisním centru, a se dostaneš do druhého podzemního patra. Tam už to najdeš. Pøístupovou kartu pøikládám.\nN. Lebedev"\n\nTyto dokumenty se nesmí dostat do rukou jen tak nìkomu, protože by o nì mìli velký zájem analytici USS. + + + Žlutá klíèová karta X8 + + + Pøíkaz èíslo 562 + + + Interní pøíkaz è. 423 + + + Klíè A + + + Normální klíè oznaèený písmenem "A". + + + Klíè B + + + Normální klíè oznaèený písmenem "B". + + + Jeden z audio záznamù zní jako namluvený šílencem: "Tak kde jsou ti zatracení mutanti?! Mizerné svinì se vyšplhaly nahoru na plošinu a myslí si, že se k nim Noe nedostane... vsadím se, že neví o mé osobní cestì nahoru, kolem severní farmy... Èeká vás kopa srandy, hovada!!" + + + Noeovo PDA + + + Mezi hromadami spamu je jedna zpráva oznaèená jako dùležitá:\n"Vybuduj tábor poblíž èistièky odpadù, všichni úèastníci téhle práce se k tobì pozdìji pøidají. Neèekej na Špínu, protože ten je se svými lidmi v Jupiteru, na jiné misi. Armáda pøerušila všechny lety do Zóny, takže ani z téhle strany není tøeba oèekávat problémy. Až stalkeøi najdou cestu do Pripjati, pošleme prùvodce a poèkáme tam na klientovy lidi - ukážou nám, kde ta laboratoø je.\nŠakal." + + + Žoldákùv notebook + + + Poslední pøíchozí zpráva zní:\n"Èekáme u nìjaké staré dílny. Poslal jsem napøed dva chlapy prozkoumat ti cestu. Budeme tady èekat, dokud se neobjeví klientùv kurýr, vzduch je tady mnohem èistìjší.\nTesak" + + + PDA žoldáka Háka + + + PDA žoldáka Hrbáèe + + + Kanystr nebezpeèného nervového plynu + + + Kanystr plynu Perin B3 + + + Krabice je uzamèena kvalitním zámkem. Podle tíhy a zvukù, které vydává krabice pøi potøesení, uvnitø nìco je. + + + Ocelová krabice + + + Poznámka v PDA: "Artefakt je urèitì na stromì. Odsud vidím, že bych na strom mohl z kopce vyšplhat. Jen doufám, že tam nejsou žádní mutanti. Je blbý, že jsem sem po hádce s Kardanem a Bárkou musel jít sám, ale když jim pøinesu ten artefakt, pochopí, že jsem mìl celou dobu pravdu..." + + + Vtipoòovo PDA + + + Poslední poznámka v PDA naznaèuje, že byl majitel PDA pìknì naštvaný, když ji psal: "Kardan, ten starý ožrala. Nejen že je to mizerný lenoch, jakmile se napije - "tady je to lepší, je tøeba bejt v pohodì" - ale pak si nedá pokoj a musí do mì a do Vtiponì rejt, øíkat nám, jak jsme mladý a blbý... pravda, Vtipoò je taky pìknej pitomec, nasral se, popadl svý krámy a zmizel. Zatímco jsem se snažil Kardana zklidnit, Vtipoò zmizel a já sakra nevím kam. A co mám teïka dìlat? Chlastat dál s tím senilním kreténem? Kašlu na nìj, navíc je ta jeho vodka pìkný svinstvo. Bleh..." + + + Bárkovo PDA + + + Strašák si ve svém PDA vedl deník a jeho poslední záznamy jsou velice zajímavé: „Záznam èíslo 12. Mùj výzkum brzy skonèí... Lidé v táboøe zaèínají nìco tušit. Tetøev a Danila se chystají na lov upírù... Netuším, kdy to zjistí... Musím pøebrat všechny nádoby s krví, abych zjistil, které z nich jsou kontaminovány a zbytek schovat... [rychle:] Nìkdo pøichází. [zvuk vypínajícího se záznamníku následovaný jeho opìtovným zapnutím]. Záznam èíslo 13... možná mùj poslední. Nejdøív ten slídící stalker a teï i Tetøev... To nemùže dopadnout dobøe... Pøijdou si pro mì, vím to. Ale na tom nezáleží – ta závislost na hemoglobinu mì stejnì brzy zabije. A radši umøu kulkou do hlavy než na lùžku...“ + + + Strášákovo PDA + + + Pøísnì tajné. Rozkaz # 562 velitele centrály zodpovìdného za bezpeènost objektu # 1 R. Yu. Didenka.\nJednotka chemické ochrany # 423 se pøemístí ze sektoru B103 do sektoru A13 k provedení testù chemického roztoku Perin B3 v podmínkách boje zblízka. Plukovník P.P. Slavin, velitel jednotky, je zodpovìdný za provedení testù. Nadporuèík K.S. Valov, zástupce velitele jednotky, je zodpovìdný za dopravu a bezpeènost. + + + Pøísnì tajné. Rozkaz plukovníka P.P. Slavina.\nV souladu s tímto rozkazem budou èlenové protichemické jednotky # 423 seznámení s následujícími informacemi:\n1. Klíèe k nádobì s chemickým roztokem Perin B3 má plukovník P.P. Slavin (klíè A) a podplukovník K.S. Vlasov (klíè B).\n2. Øazení konvoje odpøedu: vozidlo zástupce velitele jednotky, doprovodné vozidlo #8, APC #1, transportní vozidlo #1, APC #3, doprovodné vozidlo #2, vozidlo velitele jednotky (P.P. Slavin).\nKopie rozkazu bude pøedána podplukovníku K.S. Vlasovovi a vrchnímu nadporuèíku R.B. Nazarenkovi. + + + Žlutá magnetická karta nadepsaná X8.\n\nZa žádnou cenu nesmí padnout do nepovolaných rukou, odemyká totiž dveøe k tajné laboratoøi. + + + PDA Sultánova posla + + + Poslední zpráva, která byla z tohoto PDA odeslána, ze zvukový záznam: „Sultáne, pìknì jsem s tím sráèem vyjebal! Teï už se do nás srát nebude!“ + + + Tohle kdysi bývalo kormidlo øíèního bagru. Postupem èasu se zpola pøetvoøilo na podivný artefakt. Nemá žádné výrazné vlastnosti, jenom vydává svit a trochu radioaktivity. + + + Obdržena nová zpráva:\n„Povedlo se mi tu lakomou svini ukecat, takže nám prodá zbranì od svý frakce. Nebude nás to stát zas tak moc, staèí, když se dopravíme do Jupiteru.\n-Sup.” + + diff --git a/gamedata/configs/text/cze/st_items_weapons.xml b/gamedata/configs/text/cze/st_items_weapons.xml new file mode 100644 index 0000000..f54840f --- /dev/null +++ b/gamedata/configs/text/cze/st_items_weapons.xml @@ -0,0 +1,567 @@ + + + + Støelivo .45 ACP + + + Celoplášová munice ráže .45 je díky své tìžké kulce a relativnì malé prachové náloži populární už pøes sto let. Støela je sice relativnì pomalá, ale velmi pøesná a má slušnou zastavovací sílu. + + + .45 ACP + + + Støelivo .45 ACP Hydrashock + + + Toto nezvyklé støelivo ráže .45 ACP tvoøí plášovaná kulka s expanzní dutou špièkou a ocelovým jádrem. Ve výsledku jde v podstatì o kombinaci prùrazné a expanzní støely, která má výhody obou typù støeliva, ale také jejich nevýhody. + + + .45 Hydro + + + Støelivo 12x70 broky + + + Standardní náboje pro brokovnici dvanáctku naplnìné 6 mm broky. Na krátkou vzdálenost smrtící. Vhodné pouze pro zbranì bez vývrtu hlavnì. + + + 12x70 brok + + + Støelivo 12x76 kulobrok + + + Tato tìžká kulová støela pro brokovnice dvanáctky se normálnì používá pro lov velké zvìøe, ale hodí se i na jiné použití. Tìžká kula pøípadnou zbroj neprorazí, ale prostì ji rozdrtí. + + + 12x76 kulobrok + + + Støelivo 5.45x39 mm AP + + + Vojenské støelivo 7H22 ráže 5.45x39, prùrazná munice pro automatické pušky zemí Varšavské smlouvy. Støela obsahuje penetrátor z tvrzené slitiny. Efektivní proti pancéøování. + + + 5.45x39 AP + + + Støelivo 5.45x39 mm + + + Vojenské støelivo 7H10 ráže 5.45x39, vylepšená prùrazná munice pro automatické pušky zemí Varšavské smlouvy. Je pøesnìjší než støely ráže 7.62 díky sníženému zpìtnému rázu. Má i o cca 100 metrù delší dosah. + + + 5.45x39 + + + Støelivo 5.56x45 mm AP + + + Bìžné prùrazné vojenské NATO støelivo ráže 5.56x45, oznaèované jako SS190/M855. Bìžnì používané západními bezpeènostními agenturami a zvláštními službami. Velmi efektivní proti osobním zbrojím. + + + 5.56x45 mm AP + + + Støelivo 5.45x45 mm + + + Standardní munice NATO ráže 5.56x45, urèená pro pøesnou automatickou støelbu. Založeno na lovecké munici, má dobrou balistickou charakteristiku. Bìžnì oznaèováno indexem SS109. + + + 5.56x45 + + + Støelivo 7.62x54 mm 7H1 + + + Odstøelovaèská munice ráže 7.62 s ocelovým penetrátorem, speciálnì navržená pro SVD. Na rozdíl od støeliva urèeného pro kulomety má 7H1 lepší soustøel a vynikající prùraznost. + + + 7.62 7H1 + + + Støelivo 7.62x54 mm PP + + + Laciné støelivo ráže 7.62 urèené pro kulomety. Není vhodné pro odstøelovaèské pušky, používá se pouze u kulometù RP-74. + + + 7.62x54 PP + + + Støelivo 9x18 mm + + + Celoplášová støela s ocelovým penetrátorem a olovìným jádrem. Dobrá zastavovací síla, neefektivní proti neprùstøelným vestám. + + + 9x18 + + + Støelivo 9x18 mm +P+ + + + Toto støelivo používá kulky s vylepšenou zastavovací silou. Evropské oznaèení +P+ urèuje, že jde o "pøetlakovou munici" s 30% zvýšením úsové rychlosti. Neefektivní na neprùstøelné vesty a osobní pancéøování. + + + 9x18 +P+ + + + Støelivo 9x19 mm FMJ + + + Základní støelivo ráže 9x19 s celoplášovou kulkou má dobré charakteristiky a jeho výroba je laciná. Støelivo je populární s ohledem na fakt, že mezinárodní konvence zakazují používání expanzní munice v boji. Neefektivní na neprùstøelné vesty a osobní pancéøování. + + + 9x19 FMJ + + + Støelivo 9x19 mm JHP + + + Støelivo ráže 9x19 s celoplášovým kulkami s dutou špièkou má vysokou zastavovací sílu a malé sklony k odrazùm. Používá se pro osobní ochranu a pro policejní úèely. Neefektivní na neprùstøelné vesty a osobní pancéøování s ohledem na nízkou prùraznost. + + + 9x19 JHP + + + Støelivo 9x39 mm SP-6 + + + SP-6 je podzvuková munice pro útoèné pušky s mìkkou celoplášovou støelou a tvrdým ocelovým jádrem. Pro tichou støelbu vyžaduje tlumiè. Munici používají speciální služby zemí Varšavské smlouvy. Efektivní pøi støelbì na neprùstøelné vesty. + + + 9x39 SP-6 + + + Støelivo 9x39 mm SP-5 + + + SP-5 je podzvuková odstøelovaèská munice s bimetalickým pláštìm. Støela obsahuje ocelové jádro obalené olovem. Pro tichou støelbu vyžaduje tlumiè. Munici používají speciální služby zemí Varšavské smlouvy. + + + 9x39 mm SP-5 + + + Baterie + + + Granát M203 + + + Granát ráže 40 mm pro podvìsný granátomet M203. Granát má zónu úèinku o prùmìru pìt metrù. Je také vhodný pro použití v integrovaném granátometu FT-200M. + + + M203 + + + Hlavice OG-7V + + + Tøíštivá hlavice pro protipìchotní boj používaná raketometem RPG-7u. Hlavice se používá pro likvidaci nepøátel v krytu, kteøí jsou mimo dosah ruèních granátù. + + + OG-7V + + + Granát VOG-25 + + + Bìžný tøíštivý granát pro podvìsný granátomet GP-25 Koster. Zóna úèinku je pìt metrù. Granát se také používá v revolverovém granátometu Bulldog 6 a v komplexu Tunder S14. + + + VOG-25 + + + Optika PSO-1m + + + Bìžná sovìtská fixní optika se zvìtšením 5x. Pøipojuje se ke standardní montážní lištì zbraní zemí Varšavské smlouvy. + + + Optika PSS-2x + + + Optika s fixním zvìtšením 5.0x se zabudovanou termovizí používanou k identifikaci tepelných zdrojù typických pro lidské tìlo. Urèená pro použití speciálními jednotkami. Pøipojuje se ke standardní montážní lištì zbraní zemí Varšavské smlouvy. + + + Optika NSPU-3 + + + Fixní optika se zvìtšením 5.0x s optickým násobièem pro boj v temnotì. Pøipojuje se ke standardní montážní lištì zbraní zemí Varšavské smlouvy. + + + Optika SUSAT 4x + + + Nastavitelná optika 1.6-4x s automatickou úpravou obrazu pro lepší palebnou efektivitu. Pøipojuje se ke standardní montážní lištì Picatinny zbraní NATO. + + + Fixní optika 4x vyrábìná v západních zemích. Pøipojuje se ke standardní montážní lištì Picatinny zbraní NATO. Èasto používaná pro vedení pøesné palby ruèními zbranìmi na støední až velké vzdálenosti. + + + Optika SUSAT Twilight x1.6 + + + Puškohled SUSAT 1.6x s vysokým kontrastem pro boj ve zhoršených svìtelných podmínkách. Pøipojuje se ke standardní montážní lištì Picatinny zbraní NATO. + + + Optika SUSAT Night x4 + + + Fixní optika 4.0x se systémem noèního vidìní pro vedení palby na velkou vzdálenost za noèních podmínek. Pøipojuje se ke standardní montážní lištì Picatinny zbraní NATO. + + + Optika SUSAT 1.6x + + + Optika SUSAT 1.6x pro boj na krátké až støední vzdálenosti. Pøipojuje se ke standardní montážní lištì Picatinny zbraní NATO. + + + Optika PSU-1 + + + Optika 2.7x pro boj ve mìstech na støední vzdálenosti. Pøipojuje se ke standardní montážní lištì zbraní zemí Varšavské smlouvy. + + + Tlumiè + + + Efektivní tlumiè, který je možné snadno modifikovat podle požadavkù. Tìlo tlumièe obsahuje jemnou kovovou sí pohlcující unikající plyny. Sada obsahuje adaptéry a tìsnìní pro vìtšinu typù zbraní. Bìžnì se používá ke zmenšení poètu nepøátel, aniž by k sobì støelec pøilákal nežádoucí pozornost. + + + Granát F1 + + + Obranný ruèní granát, jehož støepiny jsou schopné prorazit prùmìrnì silné neprùstøelné vesty. Exploze má efektivní dosah 7 metrù. Stalkeøi získávají granáty F1 díky obchodu s armádou, vojáci je odepisují jako použité v boji s mutanty. + + + GP-25 Koster + + + Jednoranný zpøedu nabíjený podvìsný granátomet pro útoèné pušky vyrábìné v zemích Varšavské smlouvy. Palebný mechanismus je samonabíjecí, s manuální pojistkou a automatickou zábranou výstøelu pøi nesprávné instalaci. Používá granáty VOG-25. + + + M203 + + + Modifikovaný granátomet M203, zkrácený o sedm centimetrù a pøipojený ke zbrani na montážní lištu Picatinny. Díky možnosti snadné instalace je tento granátomet široce používaný v celém svìtì. + + + Granát RGD-5 + + + Útoèný ruèní granát s explozí s krátkým dosahem pìti metrù. Stalkeøi ho kvùli relativnì nízké cenì èasto používají pøi lovu mutantù. + + + Kouøový granát + + + Ruèní kouøový granát. Používá se k vytváøení kouøové clony. Po vržení granátu trvá deset sekund, než se kouøová clona vytvoøí. + + + Nùž + + + AC-96/2 + + + AKM-74/2 + + + AKM-74/2U + + + Martha + + + Upilovaná brokovnice + + + Upilovaná lovecká brokovnice dvojka, díky zkrácení hlavní je lehèí a kompaktnìjší než pùvodní zbraò. Jedna z nejpopulárnìjších zbraní mezi bandity, s ohledem na možnost snadného ukrytí zbranì a extrémní efektivitì pøi boji zblízka. + + + Kora-919 + + + Steppe Eagle + + + Ruènì vyrobená pistole založená na typu Black Kite. Komponenty zbranì jsou peèlivì upravené, takže je pistole nezvykle pøesná. + + + Black Kite + + + FT-200M + + + Fora-12 + + + GP37 + + + Gaussova puška + + + Tunder S14 + + + Tato útoèná puška kombinovaná s granátometem, založená na sérii AKM, byla vyvinuta pro jednotky rychlého nasazení. Hlavním rozdílem oproti pùvodnímu typu je použití munice ráže 9x39, bullpup design a znaèné možnosti konfigurace. Mezi vojenskými stalkery je to velmi cenìná zbraò, pøedevším kvùli možnosti zabít nepøátele v neprùstøelných vestách nebo za improvizovanými kryty i na vìtší vzdálenosti, také díky skvìlé zastavovací síle. + + + Storm + + + Experimentální verze útoèné pušky s granátometem, ruská modifikace standardního Tunder S14. Zbraò byla speciálnì navržena pro jednotky operující v Zónì. Zajímavý je mimo jiné i zvìtšený zásobník. + + + HPSS-1m + + + Modifikovaná verze pistole pùvodnì vyrábìné v první polovinì dvacátého století, která je stejnì spolehlivá, silná a pøesná jako originál. Pistole z této série si zaslouží svou povìst zbraní patøící mezi nejlepší pistole dvacátého století, v Zónì je o nì velký zájem. + + + IL 86 + + + TRs 301 + + + Viper 5 + + + Tento samopal si získal ve svìtì popularitu díky své spolehlivosti, snadnému použití a pøesnosti. Za posledních nìkolik desetiletí se Viper 5 dostal do služeb speciálních armádních jednotek i policejních sil na celém svìtì. Není nijak pøekvapivé, že se z èerného trhu dostal nakonec i do Zóny. + + + Frasier + + + Prototyp samopalu založeného na vynikajícím modelu Viper 5. Urèen pro použití jako zbraò další generace v uzavøených prostorách, má vysokou kadenci, pøesnost a používá silné støelivo. + + + PB-1s + + + Zulusova RP-74 + + + Tuto zbraò døíve vlastnil Zulus. Mezi modifikace patøí zvìtšená nábojová schránka a výjimeènì spolehlivý systém závìru. Modifikace znamenaly navýšení hmotnosti zbranì, což pøedchozímu majiteli vùbec nevadilo. + + + PMm + + + Velebená PMm + + + Pradávná PMm, kterou obdržel Dìgtarjev jako odmìnu „za úspìšné provedení velmi nebezpeèných rozkazù a za odvahu a èest prokázanou bìhem vykonávání služby". + + + Eliminator + + + Bulldog-6 + + + Tento revolverový granátomet používá šest zepøedu nabíjených hlavní s vývrtem, obdobných jaké mají podvìsné granátomety. Buben se také nabíjí zepøedu. Používá se k rychlému potlaèení nepøátelských palebných pozicí a na otevøeném prostranství k útoku na fixní cíle, pøípadnì k likvidaci výjimeènì silných monster. + + + RP-74 + + + Pásem nabíjený kulomet, pøenosná modifikace s komplexním dvoustupòovým nabíjecím systémem. Navzdory své tíze a nízké pøesnosti si v Zónì našel své obdivovatele. Vìtšinou se používá v boji s nepøátelskou pøesilou v konfliktech mezi frakcemi, nebo pro èištìní hnízd mutantù. + + + RPG-7u + + + SIP-t M200 + + + Alpine + + + Unikátní model pistole SIP-t M200. Èást z omezené série urèené pro neidentifikovanou speciální jednotku. Tento model má zvýšenou kapacitu zásobníku, vysoce odolnou ocelovou hlaveò a neuvìøitelnì odolný polymerový závìr. + + + SGI-5k + + + Relativnì nová útoèná puška, která si v celém svìtì rychle našla své obdivovatele, aèkoli její design není pøíliš "trendy". Zbranì této série patøí mezi nejlepší ve své tøídì, jsou známé svou spolehlivostí, pøesností a snadným používáním. Aèkoli se v Zónì nedá snadno sehnat, zkušení stalkeøi si ji za velké peníze poøizují na objednávku. + + + Støelcova SGI-5k + + + Švýcarská útoèná puška SGI-5k. Aèkoli jde o relativnì nový model, je zjevné, že se o ni pøedchozí majitel dobøe staral. Zbraò byla rozebrána a složena znovu, po detailním vyladìní všech komponentù, aby bylo dosaženo maximálního výkonu a zvýšené zastavovací síly. Do pažby je vyøezáno písmeno S, a také šestnáct malých záøezù. + + + SPSA-14 + + + SPSA-AUT + + + Samonabíjecí brokovnice SPSA-AUT se vyrábí v dílnách Povinnosti. Tato zbraò je urèená pro boj s velkými skupinami mutantù. Vylepšený nabíjecí systém zajišuje vysokou kadenci, kapacita zásobníku byla zvìtšena na 10 nábojù. Používá munici typu 12x70. + + + Carabineer + + + Armádní brokovnice navržená speciálnì pro útoèné jednotky, založená na základì SPSA-14. Stejnì jako její pøedchùdce umožòuje plnì automatickou palbu, ale díky vyváženému systému pohlcování nárazù má lepší zpìtný ráz. + + + SVDm-2 + + + Armádní odstøelovaèská puška, která je na trhu už více než padesát let, bìhem kterých si vysloužila povìst výjimeènì pøesné zbranì, navíc snadno použitelné. SVDm-2 bìžnì používá armáda k zvìtšení efektivního dostøelu jednotlivých oddílù, ale stalkeøi si jí cení kvùli její prùraznosti, protože její støely dokáží provrtat tlustou kùži mutantù i armádní neprùstøelné vesty. + + + Lynx + + + Ruènì sestavená verze odstøelovaèské pušky SVDm-2. Vzhledem se nijak neliší, ale poskytuje støelci ideální kombinaci pøesnosti a zastavovací síly. + + + SVUmk-2 + + + SVU2-A + + + Zkrácená odstøelovací puška se zvýšenou kadencí, další evoluèní stupeò v sérii zbraní SVUmk-2. Tato zbraò patøila Maxovi, legendárnímu ochránci Svobody. + + + Lovecká brokovnice + + + Velmi bìžná lovecká brokovnice nabízí svému majiteli lepší ochranu pøed mutanty než normální pistole, to díky své pøesnosti a zastavovací síle. Èasto používaná nováèky na okrajích Zóny. + + + Neidentifikovaná zbraò + + + Neznámá zbraò, jejíž základní princip není identifikován. Vypadá to, že je zbraò vadná, stisknutí spouštì nic nedìlá. + + + UDP Compact + + + Neochvìjná spolehlivost a odolnost kombinovaná s vynikající pøesností, to jsou hlavní charakteristiky této zbranì. Mezi drobné nevýhody patøí její nezvyklá velikost, relativnì vysoko postavené tìžištì a masivní závìr, kvùli kterému se zbraò špatnì skrývá, nicménì její výhody to nepøeváží. Jde o velmi populární zbraò mezi veterány Zóny. + + + March + + + Kompaktní velkokaliberní pistole s krátkým pohybem závìru vyrobená z lehkých materiálù. Døíve patøila žoldákovi Ohaøovi. Zøejmì jde o modifikaci pistole UDP Compact. + + + SA Avalanche + + + Vintar BC + + + Speciální vojenská odstøelovaèská puška vyrobená pro tiché neodhalitelné odstøelování bìhem vojenských operací, ve kterých nesmí dojít k odhalení støelce. Vintar BC používá støelivo s vysokou prùrazností a velkou zastavovací silou, navíc je vybaven integrovanou optikou. Navzdory malému zásobníky je stalkery vysoce cenìn. + + + Tide + + + Zbraò urèená pro vojenské jednotky, založená na tlumené odstøelovací pušce. Zbraò má vìtší zastavovací sílu než její pøedchùdce Vintar BC na úkor kadence. Majiteli má umožòovat eliminaci nepøátel jednoho za druhým, aniž by byla odhalena jeho pozice. + + + Walker P9m + + + Chaser 13 + + + Brokovnice populární po celém svìtì díky své úžasné spolehlivosti a rychlému pøebíjení. V Zónì si jí cení pøedevším lovci. Všechny souèásti jsou pokryty antikorozivním nátìrem. + + + Predator + + + Upravená pumpovací brokovnice, která døíve patøila Pastièkáøi. Ten od své zbranì žádá pøedevším schopnost zabít predátora jediným výstøelem. Tato filozofie je založena na víøe, že bez ohledu na to, kolik lidí zvíøe zabilo, stále je to zvíøe, a tak by nemìlo trpìt. + + + Podomácku vyrobené baterie + + + SUSAT zamìøovaè "Mera" + + + Moderní útoèná puška vyvinutá jako náhrada za stárnoucí AKM 74/2. Hlavní zmìnou je vysokorychlostní režim støelby po malých dávkách dvou kulek, který dokáže s oslòující pøesností poslat dvì støely do stejného místa, a to na vzdálenost až 100 metrù. V porovnání s jednoduchou palbou roste šance na zásah cíle dvojnásobnì. Zbraò je tak nebezpeènìjší, efektivnìjší a snáze prorazí zbroj. + + + Tato zbraò, navržená v roce 1974, pøedznamenala pøechod vojsk Varšavské smlouvy na munici s nižší ráží a slabší dopadovou energií. AKM-74/2, nástupce nejpopulárnìjší útoèné pušky svìta, má ještì vìtší úsovou brzdu než jeho pøedchùdce, díky èemuž se podaøilo dále snížit již tak ucházející zpìtný ráz. V boji se to projevuje lepší pøesností, zejména pøi støelbì krátkými dávkami. Jako døívìjší modely, i tento je velmi jednoduchý a spolehlivý. + + + Pøestože se tato zbraò velikostí, hmotností i taktickým úèelem podobá spíše samopalùm, bìžnì se øadí mezi útoèné pušky - to proto, že má totožný vnitøní mechanismus s AKM 74/2. Tato puška vyniká vysokou manipulovatelností ve stísnìných prostorách a dobrou prùrazností, k jejím nevýhodám naopak patøí krátký úèinný dostøel (pøestože kulky lítají relativnì daleko) a sklony k pøehøívání. Navíc její odražené støely mívají nebezpeèný sklon. + + + Vylepšená varianta klasické automatické pistole, která s hrdì vztyèenou bradou prošla všemi hlavními ozbrojenými konflikty 20. století a s nezmenšenou jistotou vkroèila i do nového tisíciletí. Vyrábí ji stovky, ne-li tisíce zbrojovek po celém svìtì - jak ve standardním, tak v modifikovaném provedení. Její jedinou nevýhodou je neveliká kapacita zásobníku, jíž alespoò èásteènì kompenzuje efektivní munice. + + + Doslova ruèní kanón - tìžký, neskladný a smrtící. Tato pistole byla navržena ke specializovaným úèelùm, zejména pro lov vysoké zvìøe a rovnìž støelecké soutìže, pøi nichž se na vzdálenosti vìtší než 50 metrù støílelo do ocelových terèù. V Zónì se vyskytuje jen vzácnì, což mùžeme pøipsat její cenì, velikosti i váze. Každý z tìchto faktorù je v porovnání s jinými pistolemi zhruba dvojnásobný. + + + Tato futuristicky vyhlížející puška využívající uspoøádání „bullpup“ je ve skuteènosti sériovì vyrábìným modulárním systémem, který se skládá z pušky, 40 mm granátometu a elektronického modulu øízení støelby. Pøestože vypadá neohrabanì, je znaènì ergonomická, snadno se používá a pyšní se dobrými technickými parametry. + + + Ukrajinská pistole používaná pøedevším policejními sbory. Poskytuje vyšší pøesnost, lepší ergonomiku a vìtší zásobník než PMM. Tyto pistole se dostávají do Zóny ve velkým poètech, protože na èerném trhu se prodávají vadné kusy, nebo rané modely, které trpìly technickými nedotaženostmi. Pøes to všechno si stalkeøi pistoli pochvalují pro její dobré bojové vlastnosti. + + + Tento nový pøírùstek do rodiny západních útoèných pušek, který se znaènì liší od ostatních modelù své série, je postaven na automatické konstrukci s polootevøeným závìrem. Svým systémem nabíjení pomocí odbìru plynù z hlavnì a krátkými písty pøipomíná spíše americké útoèné pušky. Díky uvedeným zmìnám je stroj prvotøídní ukázkou moderní zbranì - lehké, spolehlivé a ergonomické. + + + Tato puška mìla tolik nevýhod, že vìtšina vyrobených kusù již byla modernizována a pøežívají jen vyøazené kusy, které pronikly na èerný trh a skrz nìj až do Zóny. Její hlavními pøednostmi jsou zabudovaný puškohled se ètyønásobným zvìtšením, vysoká pøesnost pøi støelbì jednou ranou a možnost spolehlivých vylepšení. Pokud se z ní støílí v dávkách, pøesnost výraznì klesá a vnitøní mechanismy pušky zaèínají být ponìkud nespolehlivé. + + + Nový krok ve vývoji této slovutné rodiny zbraní. Zmìn se doèkala pøedevším horní èást ocelové konstrukce, tj. hlaveò, plynová trubice a závìr. Došlo ke snížení hmotnosti, navýšení ergonomiky a zlepšení plynového nabíjení. Tato zbraò je velmi pøesná, nicménì do obtížných podmínek Zóny se pøíliš nehodí kvùli svému zlozvyku nechat se vykolejit neèistotami. + + + Tato pistole byla vyvinuta ve druhé polovinì 20. století na konstrukci PMM. Je urèena speciálním jednotkám a prùzkumníkùm. K hlavni je napevno zabudován tlumiè a mechanismus závìru je velmi krátký, což znamená, že hlavní pružina musela být umístìna do rukojeti. Pøestože je tato zbraò ve všech ohledech zastaralá, ve správných rukou dokáže stále nadìlat paseku. + + + Tato památka na éru Sovìtského svazu je nejbìžnìjší pistolí v Zónì, jelikož stále patøí k tìm nejlepším kompaktním zbraním urèeným pro sebeobranu. Je malá, vysoce spolehlivá, snadno se používá a málokdy se porouchá. Má rovnìž øadu nevýhod, zejména krátký dostøel, nízkou pøesnost støelby a slabou sílu. V porovnání s moderními pistolemi prohrává i na kolbišti váhy a velikosti zásobníku. + + + Bojová brokovnice revolverového typu s hladkou hlavní, urèená policejním jednotkám toužících po extrémní palebné síle. Jejími výhodami jsou zejména velký zásobník a vysoká kadence, ty však více než kompenzují tìžkopádnost, nezanedbatelná hmotnost a dlouhá doba nabíjení. V Zónì je vzácná a nejèastìji se používá pøi èištìní uzavøených prostor zamoøených mutanty. + + + Tento granátomet ze 60. let si našel cestu i do armádních skladiš v Zónì. Jde o bezzákluzovou zbraò na jeden výstøel, s hladkou, vzadu otevøenou hlavní. Má napevno pøimontované optické hledí PGO-7 x2.7. Pøestože se jí vìtšina stalkerù vyhýbá pro obrovitost a váhu, její závratná nièivá síla si v Zónì našla nejednoho obdivovatele. + + + Poslední masovì vyrábìný model celosvìtovì známé pistole. Vydobyl si dobrou povìst za svou výteènou ergonomiku a pøesnost. Pøestože má relativnì malý zásobník, používá silnou munici a má mechanismus, který funguje jako švýcarské hodinky. Najdou se i lidé, podle nichž je SIP-t M200 bezkonkurenènì nejlepší pistole kalibru .45ACP. Mezi stalkery a žoldáky má každopádnì mnoho fanouškù. + + + Tato specializovaná automatická brokovnice s hladkou hlavní byla navržena ve druhé polovinì 20. století. Disponuje režimy poloautomatické a pumpovací støelby. Jde o univerzální zbraò používanou policejními sbory i speciálními jednotkami. Vyznaèuje se spolehlivostí a flexibilitou. I pøes vysokou hmotnost, komplexní mechanismy a nezanedbatelnou cenu je po ní v Zónì poptávka, jelikož skvìle pomáhá v boji s mutanty. + + + Tato modernizovaná verze odstøelovaèské pušky SVDm-2 se na zakázku zásahových jednotek doèkala tzv. „bullpupové“ kontrukce. Nejenže se tím snížila váha, ale navíc narostla pøesnost pøi palbì v rychlém sledu. Pøesnost pøi støelbì jednotlivými ranami na krátké èi støední vzdálenosti zùstala v porovnání s pøedchùdcem prakticky nezmìnìna. Pøesto si však nové pøednosti získaly srdce nespoètu stalketù. + + + Tato útoèná puška, ve skuteènosti modifikovaná verze tlumené odstøelovací pušky Vintar VC, byla navržena pro použití speciálními jednotkami. Jejím hlavním cílem je efektivní a neprozrazená palba proti nepøátelùm, kteøí používají moderní neprùstøelné vesty. Integrovaný tlumiè a náboj ráže 9x39 s podzvukovou kulkou snížily záblesky a hluk vnikající pøi výstøelu na naprosté minimum. + + + Extrémnì pøesná, supermoderní zbraò známá pod oznaèením „pøedmìt 62“. Byla vyvinuta v tajných laboratoøích umístìných v Zónì. Funguje na principu urychlování projektilù pomocí elektromagnetického pole. Výsledkem je závratná síla a prakticky žádný zpìtný ráz. Zbraò je pohánìna bateriemi, které se vyrábìjí z úlomkù artefaktù. + + + Pistole Marta si po celém svìtì vybudovala povìst relativnì spolehlivé, by ponìkud tìžkopádné zbranì. Používají ji armády i vojenské sbory za oceánem a mimoto i jiné vojenské a policejní organizace po celém svìtì. Stejné popularity se pistole tìší i v podsvìtí, tentokrát díky své silné nábojnici a kapacitì zásobníku. Marty, které se dostanou do Zóny, bývají zpravidla opotøebované a zøejmì pochází z vyøazených zásob. + + + Vynikající západní pistole známá pro svou spolehlivost, vysokou kapacitu zásobníku a dobrou pøesnost. Nezapomeòte zmínit i špièkovou ergonomii. Jde o jednu z nejpoužívanìjších pistolí Zóny, používanou jak profíky, tak i nováèky, kteøí nemají hluboko do kapsy. + + + Baterie, které èerpají energii z úlomkù artefaktu Blesk. Vyrobeny pomocí nejmodernìjší techniky. + + + Tyto nízkokapacitní baterie èerpají energii z úlomkù artefaktu Blesk. Nízkou kapacitu mají kvùli improvizovaným výrobním podmínkám a nedostatku speciálního vybavení. + + diff --git a/gamedata/configs/text/cze/st_items_weapons_upgrades.xml b/gamedata/configs/text/cze/st_items_weapons_upgrades.xml new file mode 100644 index 0000000..8be1b4d --- /dev/null +++ b/gamedata/configs/text/cze/st_items_weapons_upgrades.xml @@ -0,0 +1,2022 @@ + + + + Plochost + + + Kalibr + + + Zpìtný ráz + + + Spolehlivost + + + Reflexivní optika 1.6x + + + Optika 4x + + + Tlumiè + + + Podvìsný systém + + + Hm. + + + Externí vývrty umožòují instalaci tlumièe. + + + Externí vývrty hlavnì + + + Instalaèní lišta pro optiku. + + + Optická lišta + + + Instalaèní lišta pro podvìsný granátomet. + + + Podvìsná lišta + + + Nahrazuje standardní zásobník vìtším. + + + Zvýšená kapacita zásobníku + + + Komplexní zmìna mechanických èástí zbranì, která umožòuje zmìnit pùvodní kalibr, nicménì cenou za modifikaci je snížená spolehlivost. + + + Zmìnit kalibr na 5x45 + + + Komplexní zmìna mechanických èástí zbranì, která umožòuje zmìnit pùvodní kalibr, nicménì cenou za modifikaci je snížená spolehlivost. + + + Zmìnit kalibr na 5x56 + + + Komplexní zmìna mechanických èástí zbranì, která umožòuje zmìnit pùvodní kalibr, nicménì cenou za modifikaci je snížená spolehlivost. + + + Zmìnit kalibr na 9x18 + + + Komplexní zmìna mechanických èástí zbranì, která umožòuje zmìnit pùvodní kalibr, nicménì cenou za modifikaci je snížená spolehlivost. + + + Zmìnit kalibr na 9x19 + + + Zvýšení kapacity zásobníku, aniž by byla zvìtšena délka zbranì + + + Zvýšení kapacity zásobníku + + + Nábojová skøínka s vìtší kapacitou vyrobená z lehkých polykarbonátù, což trochu vyvažuje nárùst váhy. + + + Zvýšená kapacita zásobníku + + + Další titanové pláty znaènì zvyšují odolnost osobní zbroje. + + + Další hliníkové/titanové pláty + + + Posílené pláty, které vydrží déle, aèkoli nejsou tak odolné. + + + Kevlarové pláty + + + Slitina hliníku a titanu umožòuje snížení tíhy titanových plátù používaných pro vylepšení osobních zbrojí. + + + Hliníkovo-titanové pláty + + + Titan je normálnì pøíliš tìžký, než aby ho bylo možné používat v osobních zbrojích, ale nìkdy se používá na exoskeletonech. + + + Pevné titanové komponenty + + + Nahrazení kovu uhlíkovými vlákny umožòuje snížit hmotnost osobní zbroje, aniž by se redukovala úèinnost. + + + Nahrazení kovových èástí uhlíkovými vlákny + + + Kevlar patøí mezi nejbìžnìji používané materiály pro neprùstøelné vesty. + + + Kevlarové pláty + + + Polykarbonát dokáže zastavit kulku z pistole, aèkoli je lehký jako plast. + + + Polykarbonátové pláty + + + Keramické pláty dlouho nevydrží, ale jsou odolnìjší než kevlar a nabízí lepší ochranu. + + + Instalace keramických plátù + + + Jednoduché ocelové pláty zašité do kabátu. + + + Ocelové pláty + + + Keramická vnìjší vrstva dokáže odrazit prùrazné kulky, které nezasáhnou pancéøování pod pøímým úhlem. Kulky pøímých zásahù se nárazem do vrstvy rozpadnou. + + + Vnìjší keramická vrstva + + + Další interní pancéøování pro pøípad, že by byla proražena vnìjší ochrana. + + + Zdvojená ochranná vrstva + + + Zbroj s vnitøním pancéøováním, které rozptyluje náraz na vìtší oblasti. + + + Kompenzaèní element + + + Kostra dokáže zastavit støelu z pistole i v pøípadì, že je hlavní pancéøování poškozené. + + + Obrnìná kostra + + + Tenké vrstvy pancéøování jsou pøeloženy nìkolikrát pøes sebe, aby se zvýšila odolnost zbroje. + + + Segmentovaná ochrana + + + Aèkoli více plátù neznamená lepší ochranu, zaruèují vìtší trvanlivost + + + Druhá záložní vrstva + + + Mobilní pláty chrání klouby pøed zranìním. + + + Instalace mobilních plátù pro klouby + + + Lehèí hliníková kostra nahrazuje ocelovou. + + + Lehèí hliníková kostra + + + Zesílené vložky snižují úèinky nárazù støel na tìlo. + + + Zesílené kožené vložky + + + Další keramické vrstvy se silikonovou amortizací. + + + Posílené keramické pláty + + + Použití lehèích materiálù snižuje hmotnost zbroje. + + + Instalace lehèích syntetických a plastových komponentù + + + Aèkoli jsou titanové pláty pøíliš tìžké, než aby je mohl nosit normální voják, exoskeleton a jeho mocné servomotory tíhu snadno zvládnou. + + + Titanové pancéøování + + + SBK-RKhZ.m.II - speciální radiochemický ochranný bojový oblek verze dvì. + + + Neprodyšný antiradiaèní ochranný oblek SBK-RKhZ.m.II + + + Toto vylepšení nároèné na práci i èas není pøíliš populární, aèkoli už mnoha lidem zachránilo život. + + + Všitá kroužková košile + + + Šupinový systém složený z pøekrývajících se keramických plátù, které znemožòují, aby byl nositel zasažen na stejné místo. + + + Ochranné keramické šupiny + + + Oblek posílený látkou Sovereign se stává témìø nepoškoditelný mechanickým namáháním. + + + Nános látky Sovereign + + + Keramika znaènì oslabuje nárazy kulek zachycením jejich kinetické energie. + + + Aplikace keramické vrstvy na pláty + + + Posílená matrice s beryliem místo hliníku patøí k nejspolehlivìjším zpùsobùm, jak ochránit vojáky v boji. + + + Keramika znaènì oslabuje nárazy kulek zachycením jejich kinetické energie. + + + Keramická vrstva na plátech + + + Uhlíková vlákna patøí mezi nejodolnìjší materiály, které se používají na konstrukci letadel. + + + Kombinace vrstev polymeru a keramického povlaku + + + Kombinované potažení plátù + + + Domácí technologie, která patøí mezi nejnovìjší vynálezy v oblasti osobní ochrany - pokrytí povrchu umìlým safírem. + + + Nastavení komponentù snižuje pravdìpodobnost zaseknutí zbranì. + + + Nastavení komponentù + + + Plastické komponenty jsou teï v módì, staly se velmi populárním vylepšením + + + Polymateriálové komponenty + + + Nízkoimpulsový palebný mechanismus zajišuje menší zpìtný ráz než u starších verzí. + + + Nízkoimpulsový palebný mechanismus + + + Díky pøesnému umístìní støely v komoøe pøed výstøelem kulka letí rovnìji a lépe zasahuje cíl. + + + Instalace pozièního systému støely + + + Upravený posuvný závìr snižuje zpìtný ráz a zlepšuje soustøel. + + + Polovolný posuvný závìr + + + Instalace dalšího plynového válce snižuje zátìž na závìr a umožòuje tak znaèné zvýšení kadence. + + + Instalace dalšího plynového válce + + + Ruènì natahovaná brokovnice je vybavena systémem nabíjení zpìtným rázem, takže mùže støílet poloautomaticky. + + + Poloautomatické nabíjení + + + Komponenty chránìné speciálním postøikem snižují pravdìpodobnost selhání zbranì. + + + Ochranný postøik komponentù + + + Pøi výstøelu otevøou souèástky hlaveò a umožní kulce vyletìt, pak se pohybem pøedpažbí zase uzavøe. + + + Systém uzavírání hlavnì + + + Inerciální automatický systém umožòuje konverzi pumpovacího mechanismu brokovnic na samonabíjecí. + + + Instalace inerciálního automatického systému + + + Unifikovaný modul zpìtného rázu patøí mezi nejlepší technologická øešení problému snižování zpìtného rázu. + + + Unifikovaný modul zpìtného rázu + + + Automatický usmìròovaè kulek zvyšuje pøesnost zbranì. + + + Instalace automatického usmìròovaèe + + + Na závìru se pohybuje aktivní protiváha a èásteènì kompenzuje zpìtný ráz. + + + Pøidání aktivní protiváhy + + + Instalace kompenzaèního systému snižuje zpìtný ráz zbranì. + + + Instalace kompenzaèního systému + + + Nahrazení závìru zbranì vhodnìjším designem s vyšší kadencí. + + + Otevøený závìr + + + Pøi výstøelu se protiváha pohybuje proti smìru pohybu závìrtu a umožòuje tak pohodlnìjší støelbu kulometem. + + + Instalace samoregulované protiváhy + + + Do závìru je pøidána aktivní protiváha, která snižuje zpìtný ráz. + + + Instalace mobilní protiváhy + + + Plastické komponenty jsou teï v módì, staly se velmi populárním vylepšením + + + Nárazuvzdorné polymerové komponenty pro pohyblivé èásti + + + Instalace speciálního mechanismu, který chrání zbraò pøed zneèištìním. + + + Automatický dvoupozièní plynový regulátor + + + Speciální souèást neprodyšnì uzavírá hlaveò a zvyšuje tak tlak pøi výstøelu. + + + Instalace uzávìru hlavnì + + + Synchronizaèní souèást zlepšující plochost letu støely. + + + Synchronizaèní systém + + + Souèástka instalovaná do zadní èásti podavaèe snižuje rychlost závìru. Zlepšuje efektivitu míøené støelby. + + + Mechanismus setrvaèného zpoždìní + + + Speciální souèást nainstalovaná v závìru zmìkèuje pohyb závìru a snižuje zpìtný ráz. + + + Instalace závìrové brzdy + + + Integrované vylepšení normálnì používané pro odstøelovaèské pušky, jelikož znaènì zvyšuje hmotnost zbranì. + + + Zamontovaný amortizaèní systém zpìtného rázu + + + Instalace mechanismu s pohyblivými souèástmi, které zvyšují rychlost nabíjení zbranì. + + + Automatické nabíjení + + + Vylepšení pohyblivých èástí zbranì, které vyžaduje nahrazení velkého množství souèástek. Zlepšuje pøesnost. + + + Vyvážený protinárazový systém + + + Syntentický komponent umístìný pøed závìrem pùsobí proti pohybu závìru a vylepšuje pøesnost støelby. + + + Brzdící systém závìru + + + Spojka napojená na hlaveò, která pøi pohybu hlavnì automaticky otvírá další kompenzaèní otvory. + + + Instalace systému chytré kompenzace + + + Modernizace umožòující hladší chod spouštì, což je dùležité pro odstøelovaèe. + + + Instalace regulátoru spouštì + + + Tato souèást umožòuje støelci lépe cítit pohyb pøi výstøelu a zvyšuje tak pøesnost zbranì. + + + Instalace zpìtné vazby ve spoušti + + + Pohyblivý závìr èasto používaný v západních zbraních snižuje zpìtný ráz a zlepšuje soustøel. + + + Polovolný pohyblivý závìr + + + Speciální mechanismus, který pøi výstøelu pohltí èást zpìtného rázu, takže je støelba pohodlnìjší. + + + Palebný amortizaèní systém + + + Jelikož jsou odstøelovaèské pušky nároènìjší na údržbu než bìžné zbranì, je možné vybavit je tøípozièním regulátorem plynoventilaèního systému. + + + Instalace automatického tøípozièního plynoventilaèního systému + + + Nanesená vrstva zabraòuje úniku energie a zvyšuje sílu udìlenou kulce. + + + Povrchová úprava pohyblivých souèástí + + + Úprava nabíjecího mechanismu umožòuje vedení automatické støelby z odstøelovaèské pušky. + + + Modifikace samonabíjecího systému + + + Závìrová brzda zpožïuje pohyb závìru a zvyšuje pøesnost støelby. + + + Instalace závìrové brzdy + + + Nahrazení hlavnì prodlouženou variantou, která umožòuje plošší dráhu letu kulek. + + + Delší hlaveò + + + Eliminace expanzní komory a lepší pøedpažbí umožòuje zlepšit pøesnost støelby. + + + Instalace "plovoucí" hlavnì + + + Tato modifikace snižuje únavu materiálu hlavnì pøi dlouhé støelbì. + + + Instalace hlavnì s chladièem + + + Nahrazení zastaralé souèásti modernìjší, která lépe snižuje zpìtný ráz + + + Optimalizovaná kompenzaèní úsová brzda + + + Instalace hlavnì s dalšími vybroušenými kanálky, zvyšující rychlost støely a pøesnost zbranì, nicménì následkem modifikace se silnì zvyšuje zpìtný ráz. + + + Další kanálky v hlavni + + + Tato hlaveò má zvýšit plochu úèinku pøi boji zblízka a není tedy vhodná pro vedení pøesné palby. Díky zjednodušenému vývrtu hlavnì je možná palba vyšší kadencí. + + + Instalace hlavnì se zjednodušenou vrtanou èástí + + + Polygonální vývrt vìtšinou zvyšuje pøesnost + + + Instalace hlavnì s polygonálním vývrtem + + + Umožòuje snížení tepelného namáhání hlavnì a zvýšení kadence. + + + Sinusoidní vývrt hlavnì + + + Zvláštní náhradní hlaveò pro zbranì s dobrou balistickou charakteristikou, zvyšuje jejich pøesnost. + + + Vrtané odstøelovaèské kanálky + + + Velmi odolné materiály s menší únavou materiálu, hlaveò vydrží delší používání. + + + Hlaveò z odolných slitin + + + Ochranný povlak chrání vnitøek hlavnì pøed mechanickým poškozením. + + + Ochranný povlak vnitøku hlavnì + + + Syntetický povlak vnitøku hlavnì zlepšuje soustøel. + + + Syntetický povlak hlavnì + + + Nahrazení hlavnì prodlouženou variantou, která umožòuje plošší dráhu letu kulek. + + + Delší hlaveò + + + Použití plynoventilaèních kanálkù v hlavni zabraòuje usazování neèistot a také snižuje zpìtný ráz. + + + Plynoventilaèní kanály + + + Nahrazení hlavnì prodlouženou variantou, která umožòuje plošší dráhu letu kulek. + + + Prodloužená hlaveò + + + Naprášená vrstva zabraòuje pøehøívání hlavnì, maskuje materiálové defekty a znaènì zvyšuje životnost hlavnì. + + + Aplikace ochranného nánosu na vnitøek hlavnì + + + Systém vyvážení hlavnì obsahuje nìkolik pohyblivých pístù, které zvyšují stabilitu zbranì. + + + Systém vyvážení hlavnì + + + Vývrt v hlavni znemožòuje støelbu broky, ale získaná pøesnost tuto nevýhodu vyvažuje. + + + Hlaveò s vývrtem + + + Zúžení hlavnì polymateriály umožòuje zvýšení tlaku v hlavni a zvyšuje tak rychlost kulky. + + + Dynamický zeštihlovaè hlavnì + + + Cylindrický vývrt hlavnì napomáhá zvýšení kadence, aniž by se ovlivnila pøesnost. + + + Cylindrický vývrt hlavnì + + + Pøi výstøelu se aktivní protiváha automaticky pohybuje, aby vyrovnala èást zpìtného rázu. + + + Pøidání protiváhy k hlavni + + + Nahrazení bìžné hlavnì delší, která poskytuje lepší pøesnost a soustøel, ale snižuje kadenci. + + + Dlouhá hlaveò + + + Perforace hlavnì snižuje zpìtný ráz, jelikož spaliny mohou snáze unikat ven. + + + Dìrovaná hlaveò + + + Zkrácená hlaveò zvyšuje kadenci zbranì, aniž by trpìla pøímoèarost a pøesnost støelby. + + + Zkrácená hlaveò + + + Chromování zvyšuje životnost hlavnì. + + + Chromování vnitøní plochy hlavnì + + + Separátor absorbuje èást zpìtného rázu. + + + Pøidání gumového separátoru + + + Zjednodušené drážkování je užiteèné v boji zblízka, kdy je kadence dùležitìjší než pøesnost. + + + Montáž hlavnì se zjednodušeným drážkováním + + + Montáž hlavnì s doplòkovou závitovou trubicí zvyšuje rychlost støely a pøesnost zbranì na úkor silnìjšího zpìtného rázu. + + + Doplòková závitová trubice v hlavni + + + Snížení hmotnosti hlavnì má za následek znatelné zmenšení zpìtného rázu. + + + Pøemístìní kompenzátoru/tlumièe ohnì na rám zbranì + + + Umožòuje snížení tepelného zatížení hlavnì a zvyšuje kadenci, aniž by došlo ke zhoršení pøímoèarosti støelby. + + + Sinusiodové drážkování hlavnì + + + Polygonální drážkování obvykle vede ke zvýšení pøesnosti odstøelovacích pušek. + + + Montáž hlavnì s polygonálním drážkováním + + + Vzduchový posilovaè umožòuje využít energie zpìtného rázu k vytvoøení vyššího tlaku v hlavni, èímž dochází ke zvýšení úsové rychlosti. + + + Montáž vzduchového posilovaèe + + + Zaøízení s pøídavnými servomotory umožòují zvýšit nosnost. + + + Pøídavné servomotory + + + Výsledek vývoje technikù Svobody, kteøí jako první pøišli s náhradou kovu karbonovými vlákny za úèelem snížení hmotnosti exoskeletu. + + + Náhrada kovových èástí karbonovými vlákny + + + Pancéøování chrání kritické èásti exoskeletu pøed poškozením pøesnými zásahy. + + + Pancéøování pohonových soustav + + + Systém pro usnadnìní pohybu využívá vratných pružin a kloubù, které pro zvýšení efektivity motorù využívají vlastní tíhu exoskeletu. + + + Systém pro usnadnìní pohybu "Chodec" + + + Montáž hydraulických posilovaèù je úprava, která dìlí exoskelet tøetí a ètvrté generace. Umožòuje bìhání v exoskeletu. + + + Montáž hydraulických posilovaèù k pohonovým soustavám + + + Vložky z tkaniny chrání tkáò v pøípadì nárazu do zbroje. + + + Vnìjší vrstva z tkaniny + + + Silikonové výztuhy jsou efektivnìjší než jejich gumové verze, nebo lépe absorbují rázy. + + + Silikonové výztuhy + + + Tkanina, spony a výztuhy jsou kvùli snížení hmotnosti zbroje nahrazeny lehèími syntetickými materiály. + + + Lehèí syntetické a polymerní materiály + + + Pogumování zabraòuje poškození vaziva v pøípadì úderu do zbroje. + + + Pogumovaná ochranná vrstva + + + Vnitøní vrstva pomùže v pøípadì, že dojde k porušení vnìjší vrstvy. + + + Vícevrstvé polykarbonové, silikonové a karbonové vložky pro pøípad proniknutí cizího tìlesa zbrojí. + + + Ochranné polymerní vložky + + + Vzduchotìsný oblek Svobody urèený k hledání artefaktù v oblastech anomálií. + + + Ochranný oblek pro hledání anomálií + + + Vzduchotìsná vrstva ze syntetického materiálu pro pøípad poškození vnìjší vrstvy. + + + Syntetická vrstva + + + Nìkolik ergonomických úprav využívajících gumové konstrukce, které umožòují zachování pohyblivosti i pøi nošení mohutné zbroje. + + + Gumový oblek + + + Konstantan poskytuje elektrickou izolaci a má velice vysoký bod tavení. + + + Konstantanové termoizolaèní vložky + + + Olovo poskytuje spolehlivou ochranu pøed radiací, nebo absorbuje všechny její druhy. + + + Pøidání olova do obleku + + + Základní ochrana pokožky pøed deštìm a žíravinami. + + + Plátìný oblek + + + Tkanina ze žáruvzdorného materiálu je oblíbená mezi stalkery pátrajícími po ohnivých artefaktech. + + + Tkanina ze žáruvzdorného materiálu + + + Magnesiové vložky poskytují ochranu pøed tepelným zranìním. + + + Magnesiové vložky + + + Dokonce i jednoduchá vnitøní vrstva z plastu mùže chránit pøed chemikáliemi a elektøinou. + + + Vzduchotìsná vnitøní vrstva z plastu + + + Tkanina, spony a výztuhy jsou nahrazeny lehèími syntetickými materiály, díky kterým je zbroj lehèí. + + + Náhrada tkaniny syntetickými materiály + + + Plexisklo absorbuje dva druhy záøení a je lehèí než olovo. + + + Vnitøní vrstva z plexiskla pro ochranu pøed záøením + + + Spolehlivá ochrana pøed chemikáliemi a elektøinou + + + Vzduchotìsná vnitøní vrstva z pružného plastu + + + Tenká vrstva konstantanu poskytuje izolaci proti elektøinì. + + + Vnitøní izolaèní vrstva s pøímìsí konstantanu + + + Sklenìné vlákno se využívá v oblecích používaných týmy urèenými pro boj s pøírodními katastrofami. + + + Tepelná ochrana ze sklenìného vlákna + + + Impregnovaná tkanina má za úkol chránit pøed otravou chemikáliemi. + + + Odìv z impregnované tkaniny + + + Guma poskytuje základní ochranu pøi pøímém vystavení radiaci + + + Odìv z pogumované tkaniny + + + Používán v oblecích pro zvýšení životnosti + + + Vysoce odolný ochranný rám + + + Nikl je pro využití ve vložkách zbroje dostateènì žáruvzdorný + + + Žáruvzdorný oblek s niklovými vložkami + + + Slitina niklu a hoøèíku se používá v oblecích chránících pøed úrazy elektrickým šokem. + + + Izolaèní oblek s manganovou vložkou + + + Vzduchotìsný oblek s antikorozní vrstvou a kevlarovým plátováním. + + + Obrnìný oblek "Druhá kùže“ + + + Oblek z nejmodernìjších polymerù, døíve užívaných výzkumným institutem v Kyjevì za úèelem vývoje obleku Ekologù s dutinami naplnìnými bizmutem. + + + Oblek Ekologù z polymeru s bizmutovými vložkami + + + Olovìná síovina poskytuje neproniknutelnou ochranu pøed radiací a chemikáliemi bez omezení pohyblivosti. + + + Ochranný oblek z plexiskla s ohebnou olovìnou síovinou + + + Výsledek tuzemského vývoje po katastrofì v Èernobylu. Využívá se v exoskeletech proti selhání elektroniky. + + + Evakuaèní oblek s olovìnými vložkami + + + Montáž útoèného zamìøovaèe pro boj zblízka + + + Reflexní míøidlo 1.6x + + + Montáž optického zamìøovaèe pro boj na støední a velké vzdálenosti + + + Optický zamìøovaè 4.0x + + + Montáž optického zamìøovaèe pro boj na velké vzdálenosti + + + Optický zamìøovaè 5.0x + + + Montáž optického zamìøovaèe pro boj na velké vzdálenosti + + + Optický zamìøovaè 6.0x + + + Úprava útoèných zbraní s reflexním míøidlem spoèívající ve zvìtšení kontrastu míøidla ve žluté oblasti svìtelného spektra. Dùležité pøi boji ve špatných svìtelných podmínkách a zatemnìlých budovách. + + + Zvýšení kontrastu míøidla + + + Termohledí uživateli umožòuje detekovat a identifikovat zdroje tepelného záøení. + + + Optické rozpoznávání cílù + + + Zaøízení pro noèní vidìní od svého vzniku zachránilo mnoho sniperù. + + + Montáž zaøízení pro noèní vidìní + + + Modifikace umožòuje snadnou úpravu míøidla podle palebné vzdálenosti. + + + Nastavitelný dálkomìr míøidla + + + Pneumatická pažba umožòuje zmenšit zpìtný ráz pøi dávkové støelbì + + + Pneumatická pažba + + + Pøenosná bederní podpìra znaènì snižuje vliv zpìtného rázu na tìlo. + + + Montáž bederní podpìry + + + Modernìjší pažba, která bere v úvahu specifickou fyziologii lidského tìla. + + + Ergonomická pažba + + + Pøi vypálení støely se èást prachového plynu odvádí z hlavnì do dutiny za závìrem, který se tak pøi pohybu zpátky plynule zastaví. + + + Montáž zásobníku plynu k závìrnému mechanismu + + + Èásteèné prodloužení tìla závìru do pažby zvýší pøímoèarost støelby za cenu vìtšího zpìtného rázu. + + + Prodloužení tìla závìru do pažby + + + Montáž pøenosného dílu do pažby, který pøi støelbì pùsobí proti rázu. + + + Pøenosné protizávaží + + + Vìtší podpìra umožòuje pøesnìjší støelbu. + + + Zvìtšená podpìra + + + Zesílený pružinový tlumiè rázù snižuje efekt zpìtného rázu pøi støelbì ze zbranì. + + + Integrovaný pružinový tlumiè rázù + + + Jímka plynu ze závìrné komory umístìná v pažbì zbranì znaènì snižuje intenzitu zpìtného rázu. + + + Pøídavný zásobník plynu závìrné komory + + + Pogumovaná souèást snižující intenzitu zpìtného rázu se èasto využívá v sériovì vyrábìných pažbách pro odstøelovací pušky vìtších kalibrù. + + + Zesílená pažba + + + Nastavitelná pažba s lícní podložkou je užiteèná pøi støelbì z pohodlných i nepohodlných pozic. + + + Nastavitelná pažba s lícní podložkou + + + Tlumiè pro zbranì velkého kalibru silnì tlumící zpìtné rázy uložená v pažbì. + + + Hydraulický tlumiè rázù v pažbì + + + Aktivní filtry dokážou odolat i agresivním chemikáliím. + + + Aktivní filtry + + + Zapnutý pás pøi testech poskytoval èásteènou ochranu pøed pøímými úèinky psí-záøení. + + + Ochranný pás z dvojice ocelových møížek proti psí-záøení + + + Maska pro pohyb v kontaminovaném prostøedí nebo v podmínkách kritických teplot, a už pøíliš vysokých èi nízkých. + + + Použití stínìného pláštì. + + + Použití stínìného pláštì. + + + Filtr s vyztuženým antikorozním pláštìm s pøídavnou vrstvou odpuzující jedy. + + + Filtr pro práci v zamoøených prostøedích + + + Maska z plexiskla poskytuje èásteènou ochranu pøed záøením. + + + Maska z plexiskla + + + Maska z plexiskla poskytuje èásteènou ochranu pøed záøením. + + + Dýchací maska z plexiskla + + + Dýchací pøístroj pro úplné zamezení pøístupu jedù. + + + Impregnovaná dýchací maska + + + Møížka z berylia a hliníku poskytuje skvìlou ochranu bez výrazného zvýšení hmotnosti pøilby. + + + Plechy z berylia a hliníku + + + Møížka z berylia a titanu poskytuje efektivnìjší ochranu bez výrazného zvýšení hmotnosti. + + + Plechy z berylia a titanu + + + Vylepšené filtry udržují stálou úroveò dodávky kyslíku bez ohledu na stupeò zamoøení okolí. + + + Montáž vylepšených filtrù pro vìdeckou práci + + + Hi-tech ochrana proti psí-záøení, kterou údajnì vynalezl vìdec jménem Sacharov. + + + Montáž pásu Psi-Dome + + + Ochranný slitinový rám proti poškození teplem a elektrickým proudem. + + + Konstantanová èelní zbroj "Bouølivák" + + + Dodateèná zbroj pro zvýšení životnosti pøilby + + + Vyztužené tìlo pøilby + + + Filtr s dodateèným èistícím povlakem a systémem pro odpuzování jedù + + + Vylepšený dýchací pøístroj pro nároèné podmínky + + + Montáž zaøízení pro noèní vidìní pro operace v noci nebo za zhoršených svìtelných podmínek + + + Zaøízení pro noèní vidìní první generace + + + Systém schopný pøejít na uzavøený dýchací okruh v pøípadì kritického zamoøení vzduchu radioaktivními nebo chemickými èásticemi + + + Systém pro pøedcházení radioaktivním a chemickým hrozbám + + + Èistící a dýchací maska "Pára" + + + Montáž pokroèilejšího zaøízení pro noèní vidìní pro operace v naprosté tmì + + + Zaøízení pro noèní vidìní druhé generace + + + Termohledí umožòuje najít a rozpoznat zdroje tepelného záøení. + + + Automatické optické rozpoznávání cílù + + + Vìdecké vlnové zaøízení vytvoøené za úèelem práce v anomálních oblastech se záøením psí. + + + Psí-stimulátor "Vìštec" + + + Montáž pokroèilejšího zaøízení pro noèní vidìní pro operace v naprosté tmì + + + Zaøízení pro noèní vidìní tøetí generace + + + Ionizované èástice vzduchu se díky elektøinì pohybují mezi elektrodami systému opaèným smìrem než elektrony, èímž vzniká iontový vítr. + + + Chladící systém "Iontový vítr" + + + Infraèervený skener umožòuje odhalit blízké lidské bytosti. + + + Infraèervený skener + + + SPB – VPZ.v.IV, psychologický bezpeènostní vlnový systém na ochranu pøed psionickým záøením, ètvrtá verze. + + + Bojový systém SPB – VPZ.v.IV + + + Vyztužená pružina zvyšuje rychlost støely. + + + Vyztužená pružina úderníku + + + Montáž výztuh na pohyblivé èásti mechanismu zpùsobuje, že pøi støelbì se hlaveò ménì odchyluje od cíle. + + + Zpevnìní vratného mechanismu + + + Montáž další pružiny s opaèným vinutím pro zmenšení zpìtného rázu bez ztráty pøímoèarosti støelby. + + + Pøídavná vratná pružina + + + Ochranný pláš zvyšuje spolehlivost a pøedevším zajišuje vzduchotìsnost vratného mechanismu, což snižuje energetické ztráty. + + + Ochranný pláš vratného mechanismu + + + Titanové tyèe jsou schopny snést mnohem vyšší kadenci než klasické tyèe. + + + Titanové tyèe vratného mechanismu + + + Umìlý díl pøipevnìný k hlavni zajišuje, že se souèástky pohybují požadovaným zpùsobem, což zvyšuje pøesnost. + + + Pøidání rovnovážného elementu + + + Vyztužení objímky umožòuje použití vyššího tlaku v hlavni, èímž se zvyšuje rychlost støely. + + + Vyztužení objímky vratného mechanismu + + + Závorník, který je otevírán plyny a zavírán vratným mechanismem, umožòuje, aby byla èást energie plynu využita k obsluze vratného mechanismu. + + + Montáž rozvodného závorníku + + + Náhrada vratného mechanismu mnohem výkonnìjší verzí sestávající z dvou vodících tyèí a vratných pružin. Zvyšuje kadenci zbranì. + + + Pøechod na dvoutyèový systém + + + Speciální únikové kanálky pro plyn kolem bubnového zásobníku snižují zpìtný ráz zbranì. + + + Využití energie plynu + + + Pøidání šikmých drážek do bubnového zásobníku zrychluje otáèení mechanismu využívajícího energie plynu. + + + Pøidání šikmých drážek do bubnového zásobníku + + + Výhodou této standardní evropské modifikace je snížená hmotnost bez omezení spolehlivosti. + + + Pažba z nárazuvzdorného polymeru + + + Díky vysoce odolnému pouzdru závìru vydrží útoèné pušky i každodenní používání v nároèných podmínkách boje. + + + Vysoce odolný slitinový zásobník + + + Pøidání hmotnosti na pøední stranu pouzdra závìru pomáhá redukovat zpìtný ráz. + + + Pøidání protizávaží na ocelové tìlo + + + Instalace chladícího pláštì pomáhá kompenzovat teplo vznikající díky zvýšené kadenci zbranì. + + + Pøídavný chladící pláš + + + Pohodlnìjší tvar rukojeti umožòuje lepší držení zbranì v pøípadì støelby na pohybující se cíl. + + + Ergonomický tvar zásobníku + + + Modifikace využívaná pouze u zbraní s bull-pup konfigurací usnadòující údržbu zbranì + + + Modulové pouzdro závìru + + + Tento postøik chrání hlaveò pøed pøehøátím, odstraòuje výrobní vady a výraznì zvyšuje životnost hlavnì. + + + Postøik pouzdra závìru vyhlazující rýhy a nerovnosti + + + V šikmé rukojeti je zabudován lehký pøenosný element, který zbraò stabilizuje pøi støelbì vytvoøením síly pùsobící proti zpìtnému rázu. + + + Šikmá rukoje + + + Dutina v rukojeti má za následek snížení hmotnosti zbranì. + + + Dutá rukoje + + + Odlehèená verze standardní pažby + + + Lehèí pažba + + + Použití lehèích polymerních materiálù umožòuje snížení hmotnosti zbranì. + + + Nárazuvzdorná pažba z polymerù + + + Pøidání hmoty ke zbrani za úèelem zmenšení zpìtného rázu + + + Pøidání protizávaží + + + Modernìjší a pohodlnìjší rukoje usnadòuje držení zbranì. + + + Ergonomická rukoje + + + Tlumená rukoje snižuje intenzitu zpìtného rázu. + + + Tlumená rukoje + + + Modernìjší a pohodlnìjší pažba usnadòuje držení zbranì. + + + Ergonomická pažba + + + Speciální nátìr chrání zbraò pøed úèinky škodlivých látek. + + + Ochranný nátìr + + + Rtuový pohlcovaè rázù se nachází v pažbì zbranì a èásteènì snižuje zpìtný ráz pøi støelbì. + + + Rtuový pohlcovaè rázù + + + Volnì pohyblivé protirázové závaží, které se pøi výstøelu pohybuje smìrem od závìru a absorbuje èást zpìtného rázu. + + + Pøidání protirázového závaží + + + Zmìna materiálu snižuje opotøebení hlavnì vlivem nekonstantního rozložení teploty bìhem výstøelu, díky èemuž je možné zvýšit kadenci zbranì. + + + Vysoce odolné žáruvzdorné slitiny + + + Dùležitá úprava, která bìhem støelby chrání zbraò pøed vlivy teploty vzduchu. + + + Pøidání termoregulaèního pláštì + + + Technologické vylepšení vyžadující extrémní zruènost, aby na hlavni nedocházelo k tvorbì pøehøátých míst. + + + Vnìjší žebrování hlavnì + + + Náhrada hlavnì modernìjší verzí umožòuje výrazné zvýšení pøesnosti. + + + Zmìna geometrie hlavnì + + + Drahé tìlo zbranì, které nìco vydrží + + + Titanové tìlo + + + Toto tìlo je spolehlivìjší než tìlo z kompozitních materiálù. + + + Pevné ocelové tìlo + + + Technická náhrada tìla pistole lehèím materiálem nijak neovlivòuje spolehlivost zbranì. + + + Tìlo pistole z polymerù + + + Modernìjší a pohodlnìjší rukoje usnadòuje držení zbranì. + + + Ergonomická rukoje + + + Tlumená rukoje snižuje intenzitu zpìtného rázu. + + + Tlumená rukoje + + + Ochranné vyztužení by mìlo ochránit zbraò pøed neèistotami a poškozením nárazy. + + + Ochranné vyztužení tìla + + + Díky zmìnám v zadní èásti má rukoje ergonomiètìjší tvar. + + + Výmìna rukojeti s rovnou zadní stranou + + + Možnost volby vhodné délky rukojeti zvyšuje její ergonomii. + + + Nastavitelná rukoje + + + Tato úprava je možná jen v pøípadì, že do rukojeti byla vmontována zpìtná pružina. + + + Montáž tlumicího elementu vratné pružiny + + + Možnost výbìru vhodného krytu zvyšuje ergonomii rukojeti. + + + Tvarovì upravená rukoje s vymìnitelnými kryty + + + Urèeno pro èasto používané zbranì, chrání pláš pøed opotøebením. + + + Montáž dìrovaného ocelového pláštì + + + Technologicky složitìjší komponent s výraznìjším tlumením zpìtných rázù než u bìžných automatických zbraní. + + + Efektivní úsová brzda + + + Modernìjší hlaveò vhodná pro odstøelovací pušky urèené pro velmi velké vzdálenosti. + + + Montáž tìžké hlavnì s polygonálním drážkováním + + + Podélné kování hlavnì ji chrání pøed pøehøátím a zanesením neèistotami. + + + Podélné kování hlavnì + + + Integrovaný tlumiè a tlumiè ohnì, nutný pro tichý boj + + + Montáž integrovaného tlumièe + + + Sinusoidní drážkování komory hlavnì se obvykle používá v útoèných zbraních pro zvýšení kadence. + + + Sinusoidní drážkování komory hlavnì + + + Vstøikovaè generace A, vyvinutý výzkumným institutem v Kyjevì, do krevního obìhu pravidelnì vstøikuje malé množství adrenalinu, což mùže být nebezpeèné, ale v pøípadì nouze mùže zachránit život. + + + Vstøikovaè adrenalinu + + + Systém pro odstranìní kapalin s jedy z èisticího filtru + + + Systém pro odstranìní jedù + + + Výsledek vývoje vìdecké skupiny Èisté nebe. Vlnový vysílaè malých rozmìrù pøipevnìný na zádech, který pøi stálém nošení efektivnì zvyšuje rychlost srážení krve. + + + Hemostimulátor "Paprsek" + + + Systém, který napájí vnìjší povrch obleku elektøinou a odpuzuje tak radioaktivní a chemické èástice. + + + Integrovaný protièásticový systém + + + Vstøikovaè generace B, který do krevního obìhu dodává koagulaèní prostøedek v pøípadì, že znatelnì poklesne krevní tlak. + + + Vstøikovaè hemoglobinu "Hydra" + + + Tento systém pøedchází vyèerpání organismu tím, že neustále udržuje optimální teplotu tìla. + + + Montáž termoregulaèního systému + + + Tento vlnový vysílaè je pøipevnìn k hrudi a v pøípadì stálého používání znatelnì zvyšuje rychlost hojení ran, sílu imunního systému a práh bolesti. + + + Biostimulátor "Slunce" + + + Vìdecké vlnové zaøízení vyvinuté pro práci v oblastech anomálií s psí-záøením. + + + Psí-stimulátor "Oracle" + + + Vstøikovaè generace C dodává do krevního obìhu neurèitou bojovou smìs, která posiluje regeneraci a tlumí bolest. + + + Regeneraèní systém "Fénix" + + + Integrovaný systém, který monitoruje zdravotní stav nositele a v pøípadì potøeby mu dodává vitamíny, adrenalin a anabolické látky. + + + Montáž podpùrného životního systému + + + Tento vlnový vysílaè je pøipevnìn ke krku a pøestože jsou je jeho mechanismus a princip èinnosti neznámé, má velice uklidòující úèinky. + + + Neurostimulátor "Lesk" + + + Úkolem kompenzátoru úderníku je pohltit èást zpìtného rázu, èímž se zlepší pøesnost dávkové støelby. + + + Kompenzátor úderníku + + + Jedna z nejjednodušších a nejoblíbenìjších modifikací, která umožòuje snížení odporu spouštì. Jednoduché a užiteèné. + + + Mìkká spouš + + + Speciální volba komponentù rùzných materiálù dle modelu zbranì. Tyto komponenty nejsou nejlevnìjší, ale zvyšují životnost zbranì. + + + Kompozitové èásti spoušového mechanismu + + + Umožòuje zvýšit kadenci na úkor pøesnosti a spolehlivosti. + + + Urychlovaè spouštì + + + Odstranìní pružiny dovoluje, aby byla první støela vypálena o pùl vteøiny døíve. Není to mnoho, pøesto to mùže zachránit život. + + + Bezpružinová samospouš + + + Ochranný pláš znemožòuje selhání zbranì vlivem poruchy spouštìcího mechanismu. + + + Ochranný pláš spouštìcího mechanismu + + + Bezèepové upevnìní umožòuje rychlejší doplòování nábojové komory, což výraznì zvyšuje kadenci. + + + Bezèepové upevnìní spouštìcího mechanismu + + + V bezrázovém systému úderník do náboje neudeøí, ale proniká jím, èímž je celý prùbìh výstøelu mìkèí. + + + Montáž systému bezrázového spouštìcího mechanismu + + + Prvním stlaèením spouštì dojde k odjištìní zbranì, pøi dalších stlaèeních již dochází k výstøelùm. + + + Dvojitá spouš + + + Jedna z nejjednodušších a nejoblíbenìjších modifikací, která umožòuje snížení odporu spouštì. Jednoduché a užiteèné. + + + Mìkká spouš + + + Èásteèné odjištìní umožòuje zvýšit pøesnost støelby. + + + Spouštìcí mechanismus s èásteèným odjištìním + + + Od první až po poslední støelu je potøeba vyvinout stejný tlak na spouš, což se odráží ve snadnìjší manipulaci se zbraní. + + + Bezpeèná spouš + + + Moderní úprava, která pøedchází oddìlení závìrové èásti od tìla zbranì. + + + Zvìtšený hlavní èep spouštì + + + Modulový spoušový mechanismus umožòuje snadnìjší údržbu a výmìnu jednotlivých èástí, navíc se zbraò lépe používá. + + + Modulový spoušový mechanismus + + + Odjišovací element znaènì snižuje sílu potøebnou na stlaèení spouštì, což zvyšuje pøesnost støelby. + + + Montáž odjišovacího elementu + + + Výsledek nejnovìjšího technologického vývoje, díky kterému lze jednoduchou úpravou docílit zmìny režimu spouštìcího mechanismu. Jde o další krok k lepší ergonomii a snadnému pøizpùsobení zbranì. + + + Režim dvojité støelby + + + Jakmile je vypálena první støela, k vypálení dalších støel je nutná jen polovièní dráha pohybu spouštì. + + + Spouštìcí mechanismus s krátkou dráhou + + + Zaøízení s pøídavnými servomotory umožòuje zvýšit nosnost. + + + Pøídavné servomotory + + + Systém obsahuje látky proti tetanu, zánìtùm a streptokokùm. + + + Integrovaný systém "Polní lékaø" + + + Vìtrací systém obleku s ochranným filtrem pro práci v zamoøených oblastech. + + + Vnitøní termoregulaèní systém + + + Ergonomické vylepšení: speciální úchyty pøipevnìné k obleku zpùsobují, že se nesený náklad zdá lehèí. + + + Vesta pro rozložení zátìže + + + Nádrž s kyslíkem je nutná pro práci v oblastech se vzduchem kontaminovaným chemikáliemi nebo radioaktivními èásticemi. + + + Montáž nádržky s kyslíkem + + + Montáž pøídavné schránky na artefakt + + + Pøídavný pøepravní box na artefakty + + + Systém úchytù umožòuje rovnomìrné rozložení zátìže na celé tìlo. + + + Systém úchytù pro rozložení zátìže + + + Zádový systém ulevuje ramenùm, nebo rozkládá zátìž na celé tìlo a maximální nosnost je vyšší + + + Zádový systém pro rozložení zátìže + + + Systém obsahující dezinfekèní, protitetanové a povzbuzující látky. Vyroben na kolenì, pøesto bezpeèný. + + + Zabudovaná ochrana + + + Systém obsahuje speciální møížku nabitou nábojem vyrovnávajícím energii anomálie, což snižuje její nebezpeènost. + + + Systém proti pùsobení statické elektøiny "Rejnok" + + + Impregnovaná vnitøní vrstva by mìla zabránit otravì chemikáliemi. + + + Impregnovaná vnitøní vrstva pro ochranu pøed chemikáliemi + + + Experimentální model systému urèeného pro dálkový bìh, který vzhledem ke své vysoké cenì a nejistému použití není mimo Zónu používán. + + + Integrovaný systém "Atlet" + + + Tento systém slouží k odstraòování jedù a usazenin z dutin respirátorù. + + + Systém pro odstraòování jedù + + + Montáž pøídavné schránky na artefakt + + + Pøídavná schránka na artefakty se dvìma kapsami + + + Vojenský podpùrný systém integrovaný do obleku, využívaný pøedevším jednotkami Specnaz. Zahrnuje systémy pro vstøikování adrenalinu a srážení krve. + + + Polní podpùrný systém "Varyag“ + + + V tomto prototypu vojenského podpùrného systému konstruktéøi pøed nebezpeèným vstøikováním adrenalinu upøednostnili zahrnutí hojivých látek do systému na srážení krve. + + + Polní podpùrný systém "Skif“ + + + Tato relativnì nákladná modifikace je bìžná v nových generacích zbraní. + + + Montáž pevného závìru + + + Vyztužení závìrné oblasti zbranì brání nechtìnému rozptýlení energie pøi støelbì, což zlepšuje pøímoèarost støely. + + + Vyztužení závìrné oblasti umìlými vložkami + + + Aèkoliv tomu název nenapovídá, úprava se týká závìru, nebo právì on musí vydržet následky zvýšené kadence. + + + Zrychlená samospouš + + + Plynový ventil s elementem, který se pohybuje stejnou rychlostí, pøejímá èást zpìtného rázu. + + + Montáž plynového ventilu s pohyblivým elementem + + + Druhý píst pohybuje protizávažím, èímž dochází ke kompenzaci pohybového momentu závìrného mechanismu. + + + Montáž pøídavného plynového pístu + + + Ochranný pláš zvyšuje spolehlivost a pøedevším zajišuje vzduchotìsnost, která brání nadmìrným ztrátám energie. + + + Ochranný pláš oblasti závìru + + + Úèelem šikmého drážkování v pouzdru závìru je snížení tøení a zachycení malých èásteèek, které by jinak mohly ucpat oblast závìru. + + + Pøidání podélného drážkování + + + Zmenšení prùmìru plynové komory pomocí syntetických elementù znaènì zvyšuje rychlost støely. + + + Øízení toku energie plynu + + + Pøi svém návratu do poèáteèní polohy závìr usmìròuje proud vzduchu do komory hlavnì, èímž ji chladí. + + + Nucené chlazení + + + Závìr zbranì se pohybuje podél hlavnì a brání tak pohybu ústí horním smìrem. + + + Montáž klouzavého závìru + + + Montáž plynového pístu brání plynùm v rozšiøování do oblasti závìru, což výraznì zvyšuje èistotu zbranì. + + + Montáž plynového pístu + + + Tento systém v oblasti závìru jímá èást plynù, což vede ke zlepšení pohybu závìru. + + + Systém pro jímání plynové energie + + + Toto nahrazení mechanismu vzduchového pístu je spíše optimalizací, než vylepšením. Výsledkem je znatelné zvýšení kadence zbranì. + + + Plynový píst s krátkým chodem + + + Posuvný závìrný systém, èasto používaný v moderních zbraních, zmenšuje zpìtný ráz a zvyšuje pøesnost. + + + Zmìna na posuvný systém s uvolnìným závìrem + + + Absorbcí èásti tepelné energie tato komponenta snižují teplotní zmìny bìhem støelby. + + + Komponenta pohlcující teplo + + + Delší chod plynového pístu mírnì zvìtšuje délku zbranì, ale razantnì zvyšuje pøímoèarost støelby. + + + Plynový píst s dlouhým chodem + + + Tlumiè pohyblivých èástí šíøí zpìtný ráz rovnomìrnì po tìle zbranì a díky tomu jsou jeho úèinky menší. + + + Montáž tlumièe pohyblivých èástí + + + Symetrické nucené chlazení hlavnì využitím èinnosti vytahovaèe brání pøehøátí zbranì. + + + Systém symetrického nuceného chlazení + + + Umožòuje zvýšit kadenci pomocí pøídavného zpìtného rázu bez pøetížení ostatních èástí zbranì. + + + Pohyblivý závìr + + + Díky vylepšenému pøenosu impulsu na kulku je trajektorie støely pøímìjší. + + + Systém uzavøení hlavnì v oblasti závìru + + + Zmenšuje intenzitu zpìtného rázu zpomalením pohybu závìru. + + + Systém pro zpomalení zpìtného chodu závìru + + + Pláš chrání zbraò pøed pøedèasným opotøebením. + + + Ochranný pláš závìrného mechanismu + + + Díky lepšímu pøenosu hybnosti na kulku se zvyšuje pøímoèarost støely. + + + Systém naklápìní hlavnì + + + Tìžší uzavøený závìr chrání závìrný mechanismus pistole pøed selháním. + + + Vyztužený a plnì uzavøený závìr + + + Malý doraz, který absorbuje èást zpìtného rázu + + + Polymerový doraz + + + Montáž ocelových vložek pomáhá snížit intenzitu zpìtného rázu. + + + Montáž vloèek se spirálovitým rýhováním + + + Zvìtšením chodu závìru a pøimìøeným vyztužením vratného mechanismu lze zlepšit pøímoèarost støelby. + + + Zvìtšená délka chodu závìru + + + Krátký chod znatelnì zvyšuje kadenci zbranì, aniž by došlo ke zhoršení pøímoèarosti. + + + Montáž závìrného systému s krátkým chodem + + + Delší chod závìru støele dodává vyšší hybnou energii. + + + Montáž závìrného systému s dlouhým chodem + + + Toto nahrazení mechanismu vzduchového pístu je spíše optimalizací, než vylepšením. Výsledkem je znatelné zvýšení kadence zbranì. + + + Montáž systému pro využité energie krátkého chodu + + + Montáž tohoto modulu znaènì zvyšuje pøesnost støelby, aniž by trpìla rychlost støely. + + + Kombinovaný vratný systém se dvìma pružinami + + + Pøidání kompenzaèních otvorù znatelnì snižuje intenzitu zpìtného rázu. + + + Integrovaný kompenzátor pohybu hlavnì + + + Modernizace automatických komponent pistole vhodná pro automatický režim støelby. + + + Plnì automatický režim støelby + + + Vylepšení automatických komponent pistole vhodné pro tøíranný dávkový režim. + + + Tøíranný dávkový režim + + + Cena + + + Nelze namontovat + + + Namontováno + + + Opravdu chceš provést tuto modifikaci? + + + Systém rozpoznávání cílù + + + Systém rozpoznávání cílù + + + x5 optický zamìøovaè + + + x6 optický zamìøovaè + + + Infraèervený skener + + + Hmotnost zbroje + + + Noèní vidìní 2. generace + + + Noèní vidìní 3. generace + + + Držák opt. zamìøovaèe + + + Integrovaný tlumiè + + + Podvìšený granátomet + + + Léèba zranìní + + + Obnova zdraví + + + Noktovizor 1. generace + + + Nastavitelná míøidla + + + Vysoce kontrastní míøidlo + + + Servoposilovaèe + + + Odolnost obleku + + + Nikdo poøádnì neví, jak tato zbraò funguje. Dokud o ní nezjistíš víc, nebude možné ji opravit. + + + Tuto modifikaci nedokáže technik provést + + + Tato souèástka je již modifikovaná + + + Nemáš dost penìz + + + Nepoužívá munici + + + Režim automatické palby + + + Režim dávky tøí výstøelù + + + Poèet kontejnerù + + + technik potøebuje vodku + + + technik potøebuje náøadí na základní práci + + + technik potøebuje náøadí na jemnou práci + + + technik potøebuje náøadí na kalibraci + + + technik potøebuje podrobnìjší informace + + + vyžaduje pøedchozí modifikace + + + Ochranný nátìr „Pásovec“ na bázi safírových krystalkù + + + Vyztužená titanová a beryliová struktura + + + Potah z uhlíkových vláken + + + Pogumovaný podklad + + diff --git a/gamedata/configs/text/cze/st_land_names.xml b/gamedata/configs/text/cze/st_land_names.xml new file mode 100644 index 0000000..eb1ba4c --- /dev/null +++ b/gamedata/configs/text/cze/st_land_names.xml @@ -0,0 +1,171 @@ + + + + Anomálie Paøát + + + Anomálie Železný les + + + Pila + + + Vysílací stanice Krug + + + Továrna na zpracování odpadu + + + Anomálie Cirkus + + + Lovecká stanice + + + Skadovsk + + + Vypálený statek + + + Anomálie Hoøák + + + Bažina + + + Izumrodnoj + + + Ševèenko + + + Rýpací stanice + + + Jeøáby v docích + + + Anomálie v Dubovicích + + + Èerpací stanice + + + Starý èlun + + + Anomálie Jizva + + + Most Pøeobženského + + + Jižní plošina + + + Dílny rozvodny + + + Anomálie Popelištì + + + Chladicí vìž + + + Rozvodna + + + Anomálie Blata + + + Cementárna + + + Kopaèi + + + Janov + + + Lom + + + Bunkr vìdcù + + + Komplex Volkhov AA + + + Jedovatý lesík + + + Parkovištì + + + Kontrolní stanovištì + + + Anomálie Asfalt + + + Východní tunel + + + Skladištì kontejnerù + + + Ventilaèní zaøízení + + + Heliport + + + Anomálie Betonová lázeò + + + Továrna Jupiter + + + Kino Prométeus + + + Pøístav + + + Staré servisní støedisko + + + Škola + + + Nemocnice + + + Centrum služeb Jubilejnyj + + + Prádelna + + + Školka + + + Ubytovna + + + Potraviny + + + Obchodní dùm + + + Knihkupectví + + + Anomálie Sopka + + + Anomálie Réva + + diff --git a/gamedata/configs/text/cze/st_mp_mapdesc.xml b/gamedata/configs/text/cze/st_mp_mapdesc.xml new file mode 100644 index 0000000..469dd0e --- /dev/null +++ b/gamedata/configs/text/cze/st_mp_mapdesc.xml @@ -0,0 +1,126 @@ + + + + Vozovna + + + Zvláštní místo. Tato mlèenlivá budova nejspíš ukrývá nejedno tajemství, ale stalkeøi sem pøicházejí z prozaiètìjších dùvodù - nachází se zde spousty artefaktù. Rizika jsou velká, ale výnosy rovnìž. Budeš-li uvažovat a jednat pohotovì, urèitì se k tobì pøikloní štìstí. + + + Zvláštní místo. Tato mlèenlivá budova nejspíš ukrývá nejedno tajemství, ale stalkeøi sem pøicházejí z prozaiètìjších dùvodù - nachází se zde spousty artefaktù. + + + Parkovištì nacházející se u vstupu do Zóny. Zdejší traktory, autobusy a náklaïáky již nadobro dojezdily. Artefakty tu nikdo žádné nenašel, ovšem místo si oblíbili bandité, kteøí zde loví nováèky a obírají je o všechno, vèetnì životù. Kryj se v budovách i za vozidly a nezapomeò dávat pozor na støelce na støechách! + + + Parkovištì nacházející se u vstupu do Zóny. Zdejší traktory, autobusy a náklaïáky již nadobro dojezdily. + + + Opuštìná stanice a pøilehlé prostory. Dá se tu najít rozlièné vybavení a potraviny - staèí jen poøádnì hledat. Mìj se však na pozoru pøed silnými anomáliemi a odstøelovaèi na støeše hlavní budovy. Z ní je skvìlý výhled na prakticky všechny pøístupové cesty. + + + Upuštìná stanice a pøilehlé prostory. Mìj se na pozoru pøed silnými anomáliemi a odstøelovaèi. + + + Nevyzpytatelné a fascinující místo. Tento bazén pùvodnì sloužil k provádìní jakýchsi experimentù, jeho skuteèný úèel však už navìky zùstane záhadou. Artefakty se zde prakticky nevyskytují, a tak jediné, co by sem mohlo lákat stalkery, jsou zbytky bizarních pøístrojù a mechanismù. Nespouštìj oèi z okolních støech a dávej pozor na extrémnì vysoké úrovnì záøení. + + + Nevyzpytatelné a fascinující místo. Tento bazén pùvodnì sloužil k provádìní jakýchsi experimentù, jeho skuteèný úèel však už navìky zùstane záhadou. + + + Toto nebezpeèné zákoutí Temného údolí je tvoøena dlouhou silnicí a opuštìným institutem. Kdo ví, co se v místních budovách kdysi vyuèovalo? Dnes se zde nauèíš leda tak umìní pøežít. Ach, a nezapomeò sledovat pohyb na støechách... + + + Toto nebezpeèné zákoutí Temného údolí je tvoøena dlouhou silnicí a opuštìným institutem. + + + V této bezútìšné, dezolátní továrnì položil život už nejeden stalker. Èlovìka na každém kroku vítají zástupy anomálií, pøesto se sem návštìvníci hrnou po tuctech, lákáni osudovou pøitažlivostí cenných artefaktù. Pozor na radiaci! + + + V této bezútìšné, dezolátní továrnì položil život už nejeden stalker. + + + Požárnická stanice, jejíž veškeré osazenstvo spìchalo v dubnu 1986 hasit Èernobyl. Z vìže je skvìlý výhled do blízkého i dalekého okolí. Jen málokdo se však odváží do sklepa a horních pater budov, snad ve strachu o vlastní kabát. O toto místo již delší dobu soupeøí jednotlivé frakce Zóny kvùli jeho strategické pozici. + + + Požárnická stanice, jejíž veškeré osazenstvo spìchalo v dubnu 1986 hasit Èernobyl. Nachází se na velmi strategickém místì. + + + Èást rozlehlého smetištì, kam byly po havárii v roce 1986 vyváženy tuny radioaktivního odpadu. Na každém kroku lze narazit na zchátralé jeøáby a vyøazenou techniku. Mezi další pamìtihodnosti patøí polorozpadlé budovy a obrovitý hangár. Blízkost Kordonu a relativní hojnost artefaktù sem pøitahují stalkery, kteøí vyhledávají snadnou koøist. + + + Èást rozlehlého smetištì, kam byly po havárii v roce 1986 vyváženy tuny radioaktivního odpadu. + + + Menší ètvr záhadného mìsta Limansku. Opuštìné bytovky a mezi jimi jedna zpola dostavená budova. Když zde bylo nalezeno nìkolik drahocenných artefaktù, novinky se po Zónì roznesly nebezpeènì rychle. Do Limansku vede jen málo cest, a o ty se dodnes ani na minutu nepøestalo bojovat. + + + Menší ètvr záhadného mìsta Limansku. Opuštìné bytovky a mezi jimi jedna zpola dostavená budova. + + + Opuštìná, zapadlá vesnièka v hloubi Zóny. Pohled na zdejší malý, mìlký rybníèek, v nìmž dnes plavou snad jen desítky rezavìjících vrakù, èlovìka naplní podvìdomým pocitem bezútìšnosti. Dávej pozor na ostøelovaèe a pamatuj: odvážnému Zóna pøeje. + + + Opuštìná, zapadlá vesnièka v hloubi Zóny. Pohled na zdejší malý, mìlký rybníèek, v nìmž dnes plavou snad jen desítky rezavìjících vrakù, èlovìka naplní podvìdomým pocitem bezútìšnosti. + + + Stará armádní základna pyšnící se nepojízdnými náklaïáky, obrnìnými transportéry, zchátralým velitelstvím a kasárnami. Opuštìná však je pouze na první pohled: jde totiž doslova o zlatý dùl artefaktù, což znamená, že nepøítel mùže èíhat za každým rohem. + + + Stará armádní základna pyšnící se nepojízdnými náklaïáky, obrnìnými transportéry, zchátralým velitelstvím a kasárnami. + + + Tìžko najít zlovìstnìjší místo než tuto starou ves. Pokud se sem pøece jen odvážíš vydat, pøiprav se na vøelé uvítání v podobì smršti kulek. Neexistuje zde bezpeèného místa - nejlepším spoleèníkem ti budou tlumiè a puškohled. + + + Tìžko najít zlovìstnìjší místo než tuto starou ves. Dojít až sem je možná snadné, ale tím zábava zdaleka nekonèí. + + + Tohle není bazén, ale spíš krvavé láznì. Vykachlièkovanými chodbami se rozléhají ozvìny výstøelù, výbuchù a smrtelných skøekù. Málokterý stalker dojde až sem a ještì ménì jich odsud odejde. + + + Tohle není bazén, ale spíš krvavé láznì. Vykachlièkovanými chodbami se rozléhají ozvìny výstøelù a výbuchù. + + + Malé nádraží u rostocké továrny + + + Malé nádraží u rostocké továrny, pøeplnìné rezavými vagóny a lokomotivami, které osud navìky pøibil ke kolejím. Pøehršle artefaktù sem pøitahují nebojácné stalkery ze všech koutù Zóny. + + + Opravna nedaleko od malé vesnice. Všechna provozuschopná vozidla byla zrekvírována pøi nápravì škod po nehodì v Èernobylu. Zbylá vozidla byla postupem èasu rozebrána na náhradní díly. Oblast je plná nebezpeèí, napøíklad moèálù a zamoøeného rákosí, ve kterém bys – budeš-li mít štìstí – mohl najít nìco velmi cenného. + + + Opravna nedaleko od malé vesnice. Oblast je plná nebezpeèí, napøíklad moèálù a zamoøeného rákosí. + + + Za betonovými ploty línì rezaví hromady kovù. Na sklonku století zažívala tato továrna nepøetržitý provoz, doprovázený socialistickými slogany, které se linuly z ampliónù místního rozhlasu. Dnes zde však už jen sedá prach. + + + Stará opuštìná továrna: nezùstalo tu nic než tiché haldy kovù za betonovými zdmi. + + + Sportovní støedisko v Pripjati leží nedaleko opuštìné školy. Škála zde provozovaných sportù se od roku 1986 radikálnì zmìnila, stejnì jako poèet nadšených sportovcù. Stalkery sem pøitahuje touha po pomíjivé slávì, koøisti a artefaktech... nìkteøí zde zùstávají už navìky. + + + Sportovní støedisko v Pripjati ležící nedaleko opuštìné školy. + + + Vìru podivné místo. Stalkerùm, kteøí tvrdí, že jej navštívili, se lidé èasto posmívají, pøesto však nejde o báchorku. Gravitaèní anomálie zde rozervaly samotnou zem a utvoøily bizarní krajinu. Místu vévodí tøi vysoké vìže, pozùstatky vojenské techniky a levitující ostrùvky pùdy vyrvané ze zemì. + + + Vìru podivné místo. Gravitaèní anomálie zde rozervaly samotnou sem a utvoøily bizarní krajinu. + + + Tyto okrajové oblasti velkotovárny Rostok si Svoboda zvolila za své sídlo. Jde o místo strašidelné, leè bohaté na artefakty. Každý prázdný hangár èi skladištì jsou plné smrtících nástrah. Dávej si opravdový pozor a nespouštìj zrak z bílé vìže... + + + Tyto okrajové oblasti velkotovárny Rostok si Svoboda zvolila za své sídlo. Jde o místo strašidelné, leè bohaté na artefakty. + + + Do opuštìného mìsta Pripjati, kde døíve bydleli zamìstnanci jaderné elektrárny Èernobyl, se dnes odváží jen málokdo. Pøesto však lze poslední dobou zaslechnout, jak se blízkým okolím kina Prométeus, lodního pøístavištì a Kurchatovovy ulice nesou ozvìny výstøelù. + + + Tato neveliká èást Pripjati rozkládající se mezi kinem Prométeus, pøístavištìm lodí a Kurchatovovou ulicí zažívá poslední dobou líté pøestøelky mezi hrstkou odvážlivcù, kteøí se vypravili do mìsta. + + diff --git a/gamedata/configs/text/cze/st_mp_speechmenu.xml b/gamedata/configs/text/cze/st_mp_speechmenu.xml new file mode 100644 index 0000000..fb36535 --- /dev/null +++ b/gamedata/configs/text/cze/st_mp_speechmenu.xml @@ -0,0 +1,57 @@ + + + + Všichni do útoku! + + + Jdu pro ten artefakt! Kryjte mì! + + + Za mnou! + + + Zatím ten artefakt hlídejte. Ne abyste ho brali! + + + Bráním pozici! + + + Zùstaòte na místech! + + + Berte artefakt! Budu vás krýt! + + + Pomoc! + + + Nemám prachy, kup mi lepší výbavu! + + + Ne. + + + Nikde nikdo! + + + Nahlaste se! + + + Ústup! + + + Vezmìte jim ten artefakt! + + + Rozumím. + + + Drž hubu! + + + Zùstaòte pohromadì. + + + Berte artefakt! + + diff --git a/gamedata/configs/text/cze/st_mp_teamdesc.xml b/gamedata/configs/text/cze/st_mp_teamdesc.xml new file mode 100644 index 0000000..b5edec3 --- /dev/null +++ b/gamedata/configs/text/cze/st_mp_teamdesc.xml @@ -0,0 +1,15 @@ + + + + Místní anarchisté. Zónu berou jako oázu svobody a jsou pøesvìdèeni, že veškeré zákony, pravidla a zvyky vnìjšího svìta zde neplatí. Jejich motto zní: „Dìlej si, co uznáš za vhodný, a starej se jen o svý.“ Svoboda se staví proti vládním snahám o ovládnutí Zóny a zároveò válèí se žoldáky. Její èlenové používají pøedevším sovìtské a ruské zbranì. + + + Frakce Svoboda (Svobodní stalkeøi) + + + Tito dobrodružní hrdloøezové pøicházejí z celého svìta a s radostí vítají i tu nejšpinavìjší práci. Jak by se dalo èíst, jejich motto zní: „Peníze nesmrdí“. Dokud bude po artefaktech poptávka, budou bojovat o nadvládu nad každým nalezištìm. Žoldáci jsou vyzbrojeni zejména západními zbranìmi. + + + Frakce žoldáci (Hrdloøezové) + + diff --git a/gamedata/configs/text/cze/st_quests_general.xml b/gamedata/configs/text/cze/st_quests_general.xml new file mode 100644 index 0000000..64c3f9a --- /dev/null +++ b/gamedata/configs/text/cze/st_quests_general.xml @@ -0,0 +1,18 @@ + + + + Pozor! Emise nastane za: + + + Okamžitì musíš bìžet k nejbližšímu úkrytu a skrýt se pøed emisí. + + + Bìhem emise nesmíš opouštìt svùj úkryt. + + + Emise: ukryj se + + + Emise: poèkej v krytu + + diff --git a/gamedata/configs/text/cze/st_quests_jupiter.xml b/gamedata/configs/text/cze/st_quests_jupiter.xml new file mode 100644 index 0000000..6be11c0 --- /dev/null +++ b/gamedata/configs/text/cze/st_quests_jupiter.xml @@ -0,0 +1,687 @@ + + + + Dluhy: odnes peníze banditùm + + + Váòo dluží banditùm peníze za oblek a nemùže je splatit, nebo úroky narùstají pøíliš rychle. Požádal tì, abys za nìj problém vyøešil. + + + Dluhy: vra se k Váòovi + + + Øekni Váòovi, že splácení dluhu už není nutné + + + Dluhy: poraï si s bandity + + + Splácení Váòových dluhù se zkomplikovalo. Vyøiï bandity. + + + Rukojmí: vyzvedni si odmìnu u Mitjajových pøátel + + + Mitjaj byl osvobozen. Setkej se v baru s jeho pøáteli, aby sis vyzvedl svou odmìnu. + + + Rukojmí: osvoboï Mitjaje + + + Rukojmí: promluv si s Grizzlym a ujisti se, že je pøipraven + + + Pøed pokusem o osvobození rukojmího si musíš promluvit s Grizzlym + + + Rukojmí: osvoboï Mitjaje silou + + + Musíš zlikvidovat bandity a osvobodit stalkera jménem Mitjaj. + + + Rukojmí: setkej se se stalkery + + + Stalkeøi ti pomohou osvobodit rukojmí. V noci se s nimi musíš setkat a spoleènì zaútoèit na bandity. + + + Rukojmí: domluv platbu výkupného za propuštìní Mitjaje + + + Domluv s vùdcem banditù platbu výkupného za propuštìní stalkera zvaného Mitjaj. + + + Osvoboï stalkera zvaného Mitjaj, kterého drží banditi jako rukojmího. + + + Rukojmí: vyveï Mitjaje z tábora banditù + + + Procházení táborem banditù je pøíliš nebezpeèné. Musíš z nìj Mitjaje vyvést. + + + Rukojmí: promluvsi s Mitjajem + + + Mitjaj je v relativním bezpeèí. Promluv si s ním o jeho dalších krocích. + + + Cesta do Pripjati: promluv si s technikem o podjezdu + + + Nalezené dokumenty se jasnì zmiòují o podzemním podjezdu nacházejícím se pod továrnou Jupiter, který vede do Pripjati. Podjezd je bez proudu, je naplnìn plynem a vstup do nìj byl zablokován. Musíš najít technika, který dokáže nahodit generátor a odemknout vchod do podjezdu. + + + Pamìový modul je v rukou odborníkù. Musíš poèkat, až bude odblokován. + + + UAV: odblokuj pamìový modul + + + UAV: vyzvedni si u Nitráka pamìový modul + + + UAV: vyzvedni si u Novikova pamìový modul + + + Nitrák odblokoval pamìový modul. Mìl by sis ho vyzvednout a zjistit, jaké informace obsahuje. + + + Novikov odblokoval pamìový modul. Mìl by sis ho vyzvednout a zjistit, jaké informace obsahuje. + + + Z UAV jsi dokázal zachránit pamìový modul. Aby ses dostal k informacím, které obsahuje, musíš jej odblokovat. + + + UAV: poèkej, až bude pamìový modul odblokován + + + Oáza: najdi dùkaz + + + Oáza byla nalezena a opravdu má léèebné vlastnosti. Musíš najít dùkaz o její existenci, který budeš moci pøinést vìdcùm. + + + Oáza: pøines dùkaz vìdcùm + + + Oáza byla nalezena a opravdu má léèebné vlastnosti. Musíš vzít artefakt, který jsi v ní nalezl a donést ho vìdcùm. + + + Oáza: zjisti, zda je legenda pravdivá + + + Ozersky, vìdec z bunkru, tì požádal, aby ses pokusil nalézt legendární oblast Zóny zvanou Oáza. Podle povìstí by se v ní mìla nacházet léèivá voda, ale nikdo s urèitostí neví, zda Oáza existuje èi nikoliv. + + + Kopaèi: jsi se Strejdou Jarem + + + Strejda Jar s nìèím potøebuje pomoct. Zajdi za ním do vesnice Kopaèi. + + + Kopaèi: zlikviduj žoldáky + + + Zdá se, že Strejda Jar oèekává pøíchod žoldákù. Musíš je zlikvidovat. + + + Kopaèi: zùstaò poblíž Strejdy Jara + + + Kopaèi: promluv si se Strejdou Jarem + + + Kopaèi: promluv si se Strejdou Jarem + + + Žoldáci jsou mrtví. Mìl by sis promluvit se Strejdou Jarem a zjistit, co se vlastnì stalo. + + + Promìnlivé psí-záøení: odnes anomální útvar vìdcùm + + + Dones nalezený vzorek Hermanovi. Zdá se, že jde o vzorek promìnlivého psí-záøení èásteènì pøetvoøený vlivem vystavení úèinkùm anomálie. + + + Støídavé psí-záøení: prozkoumej zdroj + + + Zjisti, zda se v tunelu nenachází nìjaký druh anomálního útvaru. Vìdci se domnívají, že støídavé psí-záøení vychází ze zdroje podobného artefaktu. + + + Støídavé psí-záøení: setkej se s Topolovými lidmi + + + Topolova jednotka vstoupila do tunelu se støídavým psí-záøením, musíš se tam s ní sejít. + + + Støídavé psí-záøení: promluv si s Topolem + + + Pøipoj se k Topolovì jednotce, abys s ní vstoupil do tunelu s výskytem støídavého psí-záøení. Bylo dohodnuto, že zatímco budeš hledat nìco, co bys mohl donést vìdcùm, stalkeøi budou hlídat vstup do tunelu. + + + Mìl bys donést všechny souèástky k rádiu, které jsi našel, Nitrákovi. + + + Nitrák potøebuje souèástky k rádiu. Mùžeš mu dát ty, které už jsi získal, nebo se pokusit najít další. + + + Rádio: najdi souèástky pro Nitráka + + + Nitrák potøebuje souèástky k rádiu. Øíká, že by ses po nich mìl podívat v cementárnì. + + + Krádež: zjisti, kdo je za krádež zodpovìdný + + + Zeptej se stalkerù v Janovì, zda nevidìli nìkoho podezøelého, kdo by mohl stát za ukradenými vìcmi z osobní schránky. + + + Krádež: prozkoumej rozvodnu + + + Musíš prozkoumat rozvodnu, nebo právì tam míøil podezøelý stalker, který by mohl být zodpovìdný za krádež. + + + Krádež: vem si své vìci + + + Všechny vìci, které Pahejl ukradl, by mìly být v jeho skrýši ve stoce za rozvodnou. + + + Podivná rostlina: sežeò vzorek rostliny + + + Poblíž okraje lomu se objevila oblast plná podivných rostlin. Ozersky tì požádal, abys sehnal vzorek rostliny pro jeho výzkum. + + + Podivná rostlina: pøedej vzorek Ozerskému + + + Musíš odnést vzorek rostliny Ozerskému. Ozersky na oplátku pøesvìdèí Hermana, aby ti pøedal vìdecký oblek. + + + Lov: zlikviduj neznámé mutanty + + + Skupina stalkerù narazila v tunelech severnì od továrny Jupiter na neznámý druh mutantù. Prozkoumej oblast a zlikviduj mutanty. + + + Lov: vyzvedni si u Pastièkáøe odmìnu za zabití mutantù v tunelu + + + Mutanti v tunelech severnì od továrny Jupiter byli zlikvidováni. Mìl bys to øíct Pastièkáøi a vyzvednout si svou odmìnu. + + + Domnìnka: polož skener do støedu sesuvu + + + Polož skener do støedu sesuvu, abys otestoval Ozerského domnìnku. + + + Domnìnka: poèkej, až experiment skonèí + + + Skener se v souèasné dobì nachází v aktivním režimu a zaèal zaznamenávat pøítomnost mutantù. Nyní musíš èekat, dokud nebude získáno dostateèné množství dat pro potvrzení nebo vyvrácení domnìnky. + + + Domnìnka: seber skener + + + Bylo shromáždìno dostateèné množství dat pro potvrzení Ozerského hypotézy. Seber skener. + + + Domnìnka: dej skener Ozerskému + + + Musíš pøedat skener Ozerskému. Na základì shromáždìných dat by mìl být schopen potvrdit svou hypotézu. + + + Lov: zabij upíry v bažinách + + + V bažinì, za cementárnou, byla spatøena skupina upírù. Místní stalkeøi tì požádali, abys je zlikvidoval. + + + Lov: vyzvedni si u Pastièkáøe svou odmìnu za zabití upírù + + + Upíøi jsou mrtví. Mìl by sis u Pastièkáøe vyzvednout odmìnu, kterou za jejich zabití vypsali místní stalkeøi. + + + Noèní lov: zabij chiméru + + + Chiméry jsou noèní predátoøi a nikdo netuší, kde leží jejich hnízdo. Musíš si na ni poèíhat v noci, kdy pøes vìtrací potrubí vychází na lov. + + + Noèní lov: øekni Pastièkáøi, že chiméra je mrtvá + + + Zabijácká chiméra je mrtvá a lovec Lišák tak byl pomstìn. Øekni o tom Pastièkáøi. + + + Náøadí: pøines Nitrákovi náøadí + + + Nitrák tì požádal, abys mu sehnal dvì sady náøadí: jednu pro základní úkony a druhou pro jemnou práci. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Nitrákovi náøadí + + + Nitrák tì požádal, abys mu sehnal dvì sady náøadí: jednu pro základní úkony a druhou pro kalibraci. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Nitrákovi náøadí + + + Nitrák tì požádal, abys mu sehnal sadu náøadí pro základní pracovní úkony. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Nitrákovi náøadí + + + Nitrák tì požádal, abys mu sehnal dvì sady náøadí: jednu pro jemnou práci a druhou pro kalibraci. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Nitrákovi náøadí + + + Nitrák tì požádal, abys mu sehnal sadu náøadí pro jemné pracovní úkony. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Nitrákovi náøadí + + + Nitrák tì požádal, abys mu sehnal sadu náøadí pro kalibraci. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Nitrákovi náøadí + + + Nitrák tì požádal, abys mu sehnal tøi sady náøadí: jednu pro základní pracovní úkony, druhou pro jemnou práci a tøetí pro kalibraci. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Pripja 1: najdi oblek s uzavøeným dýchacím okruhem + + + Aby ses dostal pøes podjezd Pripja 1, musíš sehnat oblek s uzavøeným dýchacím okruhem. Podjezd je totiž plný slouèeniny oxidu uhlièitého s neznámou látkou. + + + Pripja 1: doveï Tuláka k Zulusovi. + + + Musíš dovést Tuláka k Zulusovi a pøedstavit ho jako nového èlena jednotky. Zulus by nebyl nadšený, kdyby se u nìj objevil osamìlý bojovník v obleku Monolitu. + + + Pripja 1: promluv si s Tulákem ohlednì ochranného obleku + + + Podjezd Pripja 1 je plný slouèeniny oxidu uhlièitého a neznámé látky. Musíš øíct Tulákovi, že pokud chce podjezdem projít, bude potøebovat oblek s uzavøeným dýchacím obvodem. + + + Pripja 1: sestav jednotku, se kterou se vydáš do Pripjati + + + Nitrák dokázal pøekonat zámek na vchodu do podjezdu Pripja 1, ale bez ochrany s tebou odmítá pokraèovat do továrny Jupiter. Doporuèuje, abys sehnal pár lidí na cestu podjezdem. Zulus, který už je s tebou, navrhuje, abys nové rekruty posílal za ním. + + + Pripja 1: promluv si se Zulusem o cestì do Pripjati + + + Nitrák dokázal pøekonat zámek na vchodu do podjezdu Pripja 1, ale bez ochrany s tebou odmítá pokraèovat do továrny Jupiter. Doporuèuje, abys sehnal pár lidí na cestu podjezdem a navrhuje, aby sis promluvil se Zulusem, který by ti mohl pomoci se složením jednotky. + + + Pripja 1: doveï Sokolova k Zulusovi + + + Sokolov souhlasil s cestou do Pripjati a z bunkru by si mohl vzít vìdecký oblek. Mìl bys ho zavést k Zulusovi a pøedstavit ho jako nového èlena týmu. + + + Pripja 1: promluv si se Sokolovem o ochranném obleku + + + Pripja 1: promluv si s Ozerským o obleku pro Sokolova + + + Sokolov si chce kvùli své ochranì chce vzít vìdecký oblek, ale Herman pravdìpodobnì nedovolí, aby s ním opustil bunkr. Mìl by sis promluvit s Ozerským – je pøíjemnìjší a lépe se s ním vyjednává. + + + Pripja 1: øekni Sokolovi o vìdeckém obleku + + + Ozersky je nadšen vzorkem rostliny. Požádal tì, abys Sokolovovi vyøídil, že si u Hermana mùže vyzvednout svùj vìdecký oblek. + + + Podjezd Pripja 1 je plný slouèeniny oxidu uhlièitého a neznámé látky. Musíš øíct Sokolovovi, že pokud chce podjezdem projít, bude potøebovat oblek s uzavøeným dýchacím obvodem. + + + Pripja 1: sežeò Váòovi peníze na oblek + + + Oblek, za který Váòo dlužil peníze banditùm, disponoval uzavøeným dýchacím okruhem. Váòo ho však musel zastavit, aby splatil své dluhy. Pro jeho zpìtný odkup potøebuje 3000. + + + Pripja 1: doveï Váòa k Zulusovi + + + Váòo je ochoten jít do Pripjati. Musíš ho dovést k Zulusovi a pøedstavit jej jako nového èlena týmu. Cestou si Váòo mùže koupit nazpìt svùj oblek. + + + Pripja 1: promluv si s Vánìm o ochranném obleku + + + Podjezd Pripja 1 je plný slouèeniny oxidu uhlièitého a neznámé látky. Musíš øíct Váòovi, že pokud chce podjezdem projít, bude potøebovat oblek s uzavøeným dýchacím obvodem. + + + Pazourek alias Strakáè je pìknì podlá svinì. Mìl bys o nìm øíct ostatním stalkerùm v Zatonu nebo z ostatních frakcí a dát mu tak poøádnou lekci. + + + Pazourek se vyloženì chvástá a mluví o vìcech, které nikdy nevidìl. Bylo by dobré, aby jeho lži vyšly na povrch. + + + Výmysly: poraï si s Pazourkem + + + Pazourek si sprostì pøivlastòuje zásluhy druhých. Mìl by se nauèit vážit slova. + + + Pazourkovo vychloubání již pøesáhlo hranice – mìl by sis s ním promluvit a dùraznì mu sdìlit svùj názor. + + + Pazourek alias Strakáè je pìknì podlá svinì. Mìl bys o nìm øíct ostatním stalkerùm v Zatonu nebo ostatních frakcích a poøádnì se mu tak pomstít. + + + Výzkum anomálie: vyzvedni si skenery u technika + + + Sežeò skenery od Novikova. Herman chce shromáždit statistická data o artefaktu, z toho dùvodu je potøeba umístit skenery do støedù nìkolika artefaktù. + + + Výzkum anomálie: polož skener do anomálie + + + Výzkum anomálie: vyzvedni si svou odmìnu + + + Vyzvedni si odmìnu slíbenou za umístìní skenerù do anomálií. Teï, když jsou skenery na svých místech, Herman mùže zahájit sbìr dat z tìchto útvarù. + + + Polož skener do støedu anomálie. Herman chce shromáždit potøebná data z anomálie a skenery proto musí být položeny do støedù nìkolika anomálií. + + + Smlouva s vìdci: pøines Garikovi artefakt Koblížek + + + Aby Garik splnil svou èást dohody s vìdci, musí získat artefakt Koblížek. Pøines mu jej. + + + Smlouva s vìdci: pøines Garikovi artefakt Masová kulièka + + + Aby Garik splnil svou èást dohody s vìdci, musí získat artefakt Masová kulièka. Pøines mu jej. + + + Smlouva s vìdci: pøines Garikovi artefakty Masová kulièka a Koblížek + + + Aby Garik splnil svou èást dohody s vìdci, musí získat artefakty Masová kulièka a Koblížek. Pøines mu je. + + + Smlouva s vìdci: artefakt doruèen + + + Gary získal oba artefakty a splnil svou èást dohody + + + Historie Povinnosti: pøedej zájemcùm PDA zakladatele Povinnosti + + + Našel jsi osobní PDA zakladatele Povinnosti, který zemøel v anomálii. Mìl bys toto PDA dát nìkomu, koho by mohly zajímat poslední okamžiky otce frakce. + + + Anomální aktivita: prozkoumej oblast pomocí vylepšeného detektoru + + + Skenery vìdcù zaregistrovaly anomální aktivitu severnì od bunkru. Pomocí vylepšeného detektoru oblast prozkoumej. + + + Ochrana vìdcù: najdi spolehlivé lidi + + + Bunkr vìdcù není nijak chránìn. Musíš najít spolehlivé lidi, kteøí by jej hlídali. + + + Ochrana vìdcù: vra se k Hermanovi pro svou odmìnu + + + Našel jsi stráže pro bunkr vìdcù. Mìl by ses vrátit k Hermanovi a vyzvednout si svou zaslouženou odmìnu. + + + Poslední vývoj: najdi dokumenty v továrnì Jupiter + + + Hermana zajímá poslední vývoj v továrnì Jupiter. Prozkoumej administrativní oblast továrny a najdi dokumenty. + + + Poslední vývoj: dones dokumenty Hermanovi + + + Nalezené dokumenty naznaèují, že veškerá technická dokumentace byla pøemístìna mimo továrnu. Nezjistil jsi mnoho, pøesto bys mìl informovat Hermana. + + + Poslední vývoj: dones Hermanovi dokumenty a Špínovo PDA + + + Pøi hledání dokumentù na tebe zaútoèili žoldáci. Podle PDA, které jsi našel u jejich velitele Špíny, dostali rozkaz zabránit vìdcùm v hledání dokumentù. Navíc jsi zjistil, že veškerá technická dokumentace byla pøemístìna mimo továrnu. Mìl bys o tom øíct Hermanovi a ukázat mu Špínovo PDA. + + + Pozùstalí Monolitu: promluv si s obyvateli Janova o úkrytu + + + Skupina bojovníkù Monolitu se vymanila ze spárù sil, které je uvìznily. Hledají úkryt pøed emisí a mutanty. Musíš si promluvit s obyvateli stanice Janov, aby jednotce Monolitu umožnili zùstat s nimi. + + + Doveï náborové dùstojníky Povinnosti k bývalé jednotce Monolitu. Pokud se bojovníci Monolitu pøipojí k Povinnosti, budou se moci ukrýt pøed emisí a mutanty ve stanici Janov. + + + Doveï náborové dùstojníky Svobody k bývalé jednotce Monolitu. Pokud se bojovníci Monolitu pøipojí ke Svobodì, budou se moci ukrýt pøed emisí a mutanty ve stanici Janov. + + + Pozùstalí Monolitu: doveï náborové dùstojníky k bývalé jednotce Monolitu + + + Výzkum anomálie: kryj stalkery + + + Zdá se, že provádìní mìøení v anomálii pøilákalo mutanty. Musíš chránit stalkery, aby mohli sesbírat všechna potøebná data. + + + Výzkum anomálie: kryj stalkery + + + Zdá se, že provádìní mìøení v anomálii pøilákalo zombie. Musíš chránit stalkery, aby mohli sesbírat všechna potøebná data. + + + Výzkum anomálie: promluv si s Hermanem + + + Mìøení anomálií bylo dokonèeno – informuj o tom vìdce a vyzvedni si svou odmìnu. + + + Výzkum anomálie: promluv si se stalkery + + + Promluv si s jednotkou stalkerù zodpovìdnou za provedení mìøení. Musíš vybrat, o kterou anomálii se mají zajímat. + + + Výzkum anomálie: promluv si se stalkery + + + Všechna potøebná mìøení byla provedena, takže mùžeš zamíøit s jednotkou zpìt do bunkru vìdcù. + + + Výzkum anomálie: promluv si se stalkery + + + Mìøení anomálie bylo provedeno, promluv si s týmem o dalším postupu. + + + Výzkum anomálie: kryj stalkery + + + Herman ti nabídl práci spoèívající v ochranì stalkerù v prùbìhu provádìní mìøení anomálií. + + + Rejnok 4: prozkoumej místo havárie + + + Rejnok 4: odhal pøíèinu spálení elektroniky + + + Prozkoumej místo havárie Rejnoka 4. + + + Musíš odhalit zdroj silného elektrického výboje, který zasáhl vrtulník Rejnok 4. + + + Rejnok 1: pøedej èernou skøíòku technikovi, aby ji dekódoval + + + Èerná skøíòka Rejnoka 1 pøežila havárii. Musíš ji vzít k technikovi, aby ji dekódoval a zpøístupnil tak data, která obsahuje. + + + Rejnok 1: poèkej, až bude èerná skøíòka dekódována + + + Nitrák souhlasil, že dekóduje èernou skøíòku. Mìlo by mu to trvat asi tøi hodiny, musíš na nìj poèkat. + + + Rejnok 1: vra se k Nitrákovi pro zjištìní informací z èerné skøíòky + + + Nitrák už by mìl být hotov s procesem dekódování. Zajdi za ním, aby ses dozvìdìl, co èerná skøíòka skrývá. + + + Rejnok 1: prozkoumej místo havárie + + + Prozkoumej místo havárie Rejnoka 1. + + + Pripja 1: dostaò se do Pripjati + + + Musíš projít podjezdem Pripja 1 a dojít k vojenskému evakuaènímu místu v Pripjati. + + + Cesta do Pripjati: prozkoumej laboratoø chemických slouèenin v továrnì Jupiter + + + Laboratoø chemických slouèenin by mohla obsahovat informace o kontaminaci podjezdu Pripja 1 neznámým plynem. + + + Cesta do Pripjati: prozkoumej administrativní oblast továrny Jupiter + + + Prùvodce o žádné bezpeèné cestì do Pripjati neví, ale navrhl nìkolik míst, na kterých bys mohl najít informace o podzemních tunelech vedoucích z továrny Jupiter do mìsta. Mìl bys zaèít s administrativní oblastí. + + + Cesta do Pripjati: prozkoumej laboratoøe továrny Jupiter + + + Dokumenty nalezené v administrativní èásti se zmiòují o evakuaci výrobního komplexu továrny Jupiter. Více informací o plánech této akce bys mohl najít v laboratoøích. + + + Cesta do Pripjati: prozkoumej bránu podjezdu v Oddìlení 1 + + + Vstupem do podzemního podjezdu je pøepravní brána. Prozkoumej tuto oblast a najdi cokoliv, co se podjezdu týká. + + + Cesta do Pripjati: prozkoumej oddìlení 1 továrny Jupiter + + + V oddìlení 1 by se mìly nacházet informace týkající se podjezdu Pripja 1. Mohly by být velice dùležité, proto je nutné toto místo prozkoumat. + + + Cesta do Pripjati: prozkoumej dodací oddìlení továrny Jupiter + + + Podle poznámek v laboratoøích mìlo evakuaci na starost dodací oddìlení, takže by ses tam mìl také porozhlédnout. + + + Cesta do Pripjati: prozkoumej opravárenské dílny továrny Jupiter + + + Dodací oddìlení údajnì bylo informováno o ztrátách bìhem pøepravy nìèeho, co bylo oznaèováno jako položka 62. Podle záznamù se o tuto záležitost staraly opravárenské dílny, proto by ses do nich mìl podívat. + + + Cesta do Pripjati: promluv si s prùvodcem + + + Podle záznamù èerné skøíòky jednoho z vrtulníkù se jednotka mìla sejít na evakuaèním místì B28. Podle map nalezených v jiném vrtulníkù, který se úèastnil stejné mise, by se toto místo mìlo nacházet v Pripjati. Musíš najít zpùsob, jak se tam dostat a prùvodce by ti v tom mohl pomoci. + + + Skladištì Povinnosti: vem si, co ti patøí + + + Skladištì Povinnosti: setkej se s Morganem + + + Obchodník Morgan ti jako odmìnu za tvé mlèení ve vìci jeho obchodù poskytl pøístup do skladištì Povinnosti. Setkej se s ním blízko lomu, jak jste se dohodli. + + + Pro pokraèování musíš otevøít bránu. + + + Pro pokraèování musíš otevøít dveøe. + + + Pro pokraèování musíš obnovit dodávku proudu do brány. + + + Pro pokraèování musíš odemknout bránu. Pravdìpodobnì se ti to podaøí z velína. + + + Výzkumná skupina: Najmi kvalitní pracovníky + + + Výzkumná skupina pracující pro vìdce zahynula. Aby mohl výzkum pokraèovat, musíš poskládat novou skupinu. + + + Výzkumná skupina: Vra se k Hermannovi pro odmìnu + + + Našel jsi ty správné lidi pro vytvoøení nové výzkumné skupiny. Nyní se mùžeš vrátit k Hermannovi pro svou odmìnu. + + + Pripja 1: dokonèi Ozerského misi + + + Dokonèi Ozerského úkol týkající se anomálií v továrnì a získej ochranný oblek pro Sokolova. + + + Nitrák potøebuje technické podklady k vysílaèce. Najdeš je v cementárnì. + + + Tøíska umøel v anomálii kvùli Pazourkovi, ten ho tam nechal. Bìž se ho zeptat, proè to udìlal. + + + Odplata: pomsti Tøísku + + + Zjisti, kdo nechal Tøísku zemøít v anomálii, ukradl jeho artefakt a utekl. Tøíska bohužel neøekl, jak se onen padouch jmenoval. Jediné, co se o nìm ví, je, že patøil ke Svobodì. + + + Podplukovník Šulga ti dovolil vzít si ze skladištì Povinnosti libovolnou výzbroj. Staèí se k ní jen prostøílet. + + + Loki ti povolil vzít si ze skladištì Povinnosti libovolnou výzbroj. Ale pod jednou podmínkou: sklad musí patøit Svobodì. + + diff --git a/gamedata/configs/text/cze/st_quests_pripyat.xml b/gamedata/configs/text/cze/st_quests_pripyat.xml new file mode 100644 index 0000000..e7bea19 --- /dev/null +++ b/gamedata/configs/text/cze/st_quests_pripyat.xml @@ -0,0 +1,345 @@ + + + + Položka 62: najdi dokumenty ve zkušební dílnì + + + Musíš najít dokumenty týkající se položky 62. Dokumenty by mìly objasnit, zda zbraò mohla být použita k sestøelení vrtulníkù. + + + Neznámá zbraò: skryj se v budovì + + + Musíš se skrýt v budovì a odrazit útok Monolitu. + + + Neznámá zbraò: najdi informace + + + Zbraò není v provozu a není známo, jak funguje. Musíš najít technika, který by celou záležitost s neznámou zbraní mohl objasnit. + + + Neznámá zbraò: zabij velitele jednotky Monolitu + + + Musíš zabít velitele bojovníkù Monolitu používajícího neznámou zbraò. + + + Neznámá zbraò: prohledej mrtvá tìla bojovníkù Monolitu + + + Bojovníci Monolitu sebou mìli mít neznámou zbraò – najdi ji. + + + Neznámá zbraò: promluv si s Kardanem + + + Kardan se koneènì zbavil kocoviny, mìl by sis s ním promluvit o neznámé zbrani. + + + Neznámá zbraò: poèkej, až Kardan pøijde k sobì + + + Kardan zbraò pravdìpodobnì zná a až se probudí, musíš si s ním promluvit. + + + Gaussova puška: øekni o zbrani Kovalskému + + + Musíš øíct Kovalskému všechno, co ses dozvìdìl o položce 62. + + + Neznámá zbraò: pøipoj se k týmu + + + Musíš se pøipojit ke speciální jednotce, se kterou budeš moci ukoøistit zbraò. + + + Neznámá zbraò: seber zbraò + + + Musíš sebrat zbraò velitele jednotky Monolitu. + + + Neidentifikovaná zbraò: odnes zbraò Kovalskému + + + Získal jsi zbraò – teï bys ji mìl ukázat Kovalskému a zjistit, zda tato zbraò mohla zpùsobit pád vrtulníkù. + + + Neidentifikovaná zbraò: zúèastni se léèky na Monolit + + + Prùzkumná vojenská jednotka pøipravuje útok na skupinu Monolitu. Mìl by ses této operace zúèastnit. + + + Armáda Monolitu: setkej se s posilami + + + Kovalský poslal posily, které ti pomohou znièit jednotku Monolitu schovávající se v knihkupectví. + + + Armáda Monolitu: vyèisti knihkupectví + + + Musíš znièit všechny bojovníky Monolitu v budovì. Velké jednotky Monolitu pøedstavují nebezpeèí pro vojenské tábory. + + + Armáda Monolitu: prozkoumej zvláštní výtvor + + + V budovì se nacházelo velice zvláštní zaøízení. Prozkoumej ho. + + + Laboratoø X8: najdi dokumenty týkající se experimentù + + + Nalezené informace se vztahují k centrální laboratoøi zvané X8. Mohla by obsahovat informace o tajných experimentech provádìných v Zónì. + + + Nezvìstná prùzkumná jednotka: najdi jednotku + + + Prùzkumná jednotka vyslaná Kovalským zmizela po ukonèení podivné komunikace. Musíš ji najít a zjistit, co se stalo. + + + Nezvìstná hlídka: prozkoumej oblast, ve které hlídka zahynula. + + + Hlídka se chovala podivnì, proto bys mìl najít a vyšetøit dùvod tohoto chování. + + + Nezvìstná hlídka: najdi hlídku + + + Jeden z vojákù se bìhem své služby ztratil – musíš ho najít a zjistit, proè zmizel. + + + Nezvìstná hlídka: zabij dozorce + + + Nedaleko ztracené hlídky se objevil dozorce – musíš ho zlikvidovat. + + + Rádiové rušení: najdi pohøešovanou jednotku + + + Jednotka, která pátrala po zdroji rušení rádiového vysílání, se ztratila – musíš ji najít. + + + Rádiové rušení: prozkoumej tìla + + + Prozkoumej tìla – možná tak zjistíš, proè zemøeli. + + + Rádiové rušení: prozkoumej tìla + + + Prozkoumej tìla – možná tak zjistíš, proè zemøeli. + + + Rádiové rušení: vyhoï dveøe do povìtøí + + + Pomocí výbušnin musíš odstranit dveøe a dostat se do budovy. + + + Rádiové rušení: prošetøi zvuky + + + Z chladnièky vychází zvláštní zvuky – vypadá to, jako by byl nìkdo zamèený uvnitø. Zjisti, co se dìje. + + + Rádiové rušení: odstraò zdroj rušení + + + Našel jsi zdroj rušení rádiového vysílání – musíš ho znièit. + + + Rádiové rušení: najdi zdroj rušení + + + V budovì se nachází zdroj rádiového rušení – najdi jej. + + + Rádiové rušení: najdi výbušniny + + + Jednotka vyslaná za úèelem nalezení zdroje rušení u sebe mìla výbušniny. Najdi je, abys mohl odstranit vchod do budovy. + + + Rádiové rušení: dostaò se do budovy školky + + + Zdroj signálu je nìkde v budovì školky, takže se musíš dostat dovnitø. + + + Evakuace: kryj armádu + + + Støelec možná umøel, ale armáda se bez tebe k vrtulníkùm stále nedostane. + + + Evakuace: kryj Støelce + + + Velitelství se zajímá o informace, které by Støelec mohl nabídnout. Musíš ho dostat k vrtulníkùm. + + + Evakuace: dostaò se k vrtulníkùm + + + Všichni jsou mrtví – musíš se k vrtulníkùm dostat sám + + + Evakuace: pøed evakuací si promluv s Kovalským + + + Ještì pøed zahájením evakuace si musíš promluvit s Kovalským. + + + Evakuace: øekni Kovalskému, že jsi pøipraven + + + Mìl bys informovat Kovalského, že už jsi pøipraven k zahájení evakuace. + + + Evakuace: poèkej, až emise pøejde + + + Musíš poèkat, až pøejde souèasná vlna emise. + + + Záhada: najdi zdroj signálu + + + Nedaleko základny Kirillov identifikoval zvláštní neznámý signál. Musíš najít jeho zdroj. + + + Záhada: sleduj signál + + + Souøadnice signálu jsou opìt k dispozici, takže je sleduj. + + + Záhada: zjisti poslední známý výskyt signálu + + + Signál zmizel na dvoøe pøed budovou, proto najdi poslední známou pozici signálu. + + + Záhada: pøiprav se na útok na základnu + + + Vra se na vojenskou základnu a pøiprav se na pravdìpodobný útok. + + + Rádiové rušení: promluv si s Kovalským + + + Ptal se po tobì plukovník Kovalsky. + + + Laboratoø X8: dostaò se do výtahové šachty + + + Vstup do podzemní laboratoøe se nachází pod centrem služeb Jubilejnyj a jediným zpùsobem, jak se do ní dostat, je využít výtahové šachty. + + + Laboratoø X8: najdi generátor + + + Napájení dveøí výtahové šachty bylo pøerušeno. Pro otevøení dveøí musíš najít a zapnout záložní generátor. + + + Laboratoø X8: sestup do laboratoøe + + + Aby ses dostal do laboratoøe X8, musíš využít výtahu, který se nachází pod centrem služeb Jubilejnyj. + + + Jediný výstøel: zlikviduj poslíèka + + + Musíš zlikvidovat poslíèka. Bez jeho informací žoldáci nebudou schopní najít laboratoø. + + + Jediný výstøel: poèkej na zákazníkovy lidi + + + Poèkej, až se ukážou zákazníkovi lidi a zabij jejich velitele. Bez nìj žoldáci nebudou schopni najít cestu do laboratoøe. + + + Jediný výstøel: zabij velitele jednotky žoldákù + + + Musíš zabít velitele jednotky žoldákù. Bez nìj budou žoldáci neorganizovaní a nebudou pøedstavovat takovou hrozbu. + + + Jediný výstøel: poèkej, až se objeví žoldáci + + + Musíš poèkat, až se objeví žoldáci a zabít jejich velitele. Bez nìj se žoldáci nedokážou dohodnout a nebudou pøedstavovat takovou hrozbu. + + + Jediný výstøel: promluv si s Kovalským + + + Nahlaš výsledky mise Kovalskému + + + Laboratoø X8: odejdi z komplexu, nebo pokraèuj v hledání dokumentù. + + + Našel jsi dokumenty a nyní mùžeš odejít z laboratoøe. Je však možné, že v komplexu se nacházejí i další dokumenty. + + + Laboratoø X8: buï odejdi z podzemního komplexu, nebo pokraèuj v hledání dokumentù. + + + Našel jsi dokumenty a nyní mùžeš odejít z laboratoøe. Je však možné, že v komplexu se nacházejí i další dokumenty. + + + Laboratoø X8: odejdi z podzemního komplexu + + + Patrnì jsi našel už všechny dokumenty, které v laboratoøi byly. Koneènì mùžeš z tohoto podzemního komplexu odejít. + + + Vojáci Monolitu: poèkej na posily + + + Kovalskij za tebou vyslal posily. Poèkej na nì a potom zabijte vojáky Monolitu, co se udadili v knihkupectví. + + + Tichý svìt: promluv si s Kovalským + + + Bìž si promluvit s Kovalskim. Patrnì ti chce sdìlit cosi dùležitého. + + + Evakuace: braò vrtulníky + + + Musíš bránit vrtulníky pøed nepøítelem, dokud nebudou moci odstartovat. + + + Evakuace: prober zdravotníka + + + Zdá se, že zdravotníka opìt zasáhly neznámí útoèníci. Co nejrychleji ho opìt pøiveï k vìdomí. + + + Evakuace: vra se k vrtulníkùm + + + Musíš se rychle vrátit k vrtulníkùm, každou chvíli mùžou startovat. + + + Evakuace: okamžitì se vra k vrtulníkùm + + + Vrtulníky jsou pøipraveny ke startu. Musíš okamžitì do jednoho nastoupit. Piloti nemohou dlouho èekat! + + diff --git a/gamedata/configs/text/cze/st_quests_zaton.xml b/gamedata/configs/text/cze/st_quests_zaton.xml new file mode 100644 index 0000000..701bf50 --- /dev/null +++ b/gamedata/configs/text/cze/st_quests_zaton.xml @@ -0,0 +1,780 @@ + + + + Bezpeèí: dojdi do Skadovsku + + + Jediným relativnì bezpeèným místem v Zónì jsou velké tábory. Ten nejbližší se jmenuje Skadovsk – mìl by ses tam podívat. + + + Mapy oblastí: najdi nìkoho, kdo bude mít zájem o mapy + + + Mapy oblastí: nabídni mapy Pilotovi + + + Je možné, že místní prùvodce zvaný Pilot bude mít zájem o mapy oblasti mezi Zatonem a Jupiterem. + + + Rejnok 2: prozkoumej místo havárie + + + Prozkoumej místo havárie Rejnoka 2. + + + Rejnok 5: prozkoumej místo havárie + + + Rejnok 5: zjisti, proè elektronika vyhoøela. + + + Posádka Rejnoka: najdi zdroj výboje, který zasáhl dva z vrtulníkù + + + Prozkoumej místo havárie Rejnoka 5. + + + Musíš najít zdroj silného elektrického výboje, který zasáhl helikoptéru Rejnok 5. + + + Musíš zjistit pøíèinu spálení elektroniky v Rejnokovi 4 a 5. Zdá se, že došlo k zásahu silným elektrickým výbojem. + + + Jídlo: sežeò jídlo pro žoldáky + + + Skupina žoldákù v dílnách rozvodny tì požádala, abys jim pøinesl šest plechovek masa, klobásy nebo chleba. + + + Jídlo: zanes jídlo žoldákùm + + + Jídlo, které jsi sehnal, musíš zanést žoldákùm do dílen rozvodny. + + + Nástroje: prozkoumej dílny rozvodny + + + V dílnách rozvodny by údajnì mìly být nìjaké nástroje. Možná najdeš i náøadí, které hledají technici. + + + Lov chiméry: najdi spícího mutanta + + + Musíš najít chiméru ještì pøed tím, než se probudí. + + + Hledání Strakáèe: informuj Gontu + + + Zdá se, že Strakáè – stalker, který založil Gontovu jednotku – se našel. Pøipojil se ke Svobodì a øíká si Pazourek. + + + Lov chiméry: zabij mutanta + + + Chiméra se probudila a mìl bys jí zabít, než bude pozdì. + + + Lov chiméry: ve 3 hodiny ráno se v baru setkej s Gontou + + + Mìl by ses ještì pøed úsvitem setkat s Gontou a pøipojit se k jeho jednotce vyrážející na lov chiméry. + + + Lov chiméry: informuj Pastièkáøe + + + Mìl bys øíct stalkerovi jménem Pastièkáø, že lov chiméry probìhl úspìšnì. Mìl by tì odmìnit. + + + Hledání Strakáèe: najdi stalkera + + + Stalker jménem Strakáè zaøídil, aby na Gontovu jednotku zaútoèila chiméra. Byl jsi požádán, abys toho parchanta našel. + + + Evakuaèní místa: prozkoumej pozici B205 + + + Na mapì, kterou jsi našel v jednom z vrtulníkù, byla vyznaèena evakuaèní místa. Mìl bys zjistit, zda vojáci šli na pozici B205. + + + Evakuaèní místa: prozkoumej pozici B28 + + + Na mapì, kterou jsi našel v jednom z vrtulníkù, byla vyznaèena evakuaèní místa. Mìl bys zjistit, zda vojáci šli na pozici B28. + + + Evakuaèní místo: zjisti souøadnice pozice B28 + + + Èerná skøíòka jednoho z vrtulníkù Rejnok obsahovala nahrávku, na které velitel urèil pozici pro shromáždìní jednotky. Touto pozicí je evakuaèní místo B28 a tvým úkolem je zjistit jeho souøadnice. + + + Evakuaèní místo: dojdi na pozici B28 + + + Místo, na kterém se vojáci mají sejít, je v Pripjati. Najdi zpùsob, jak se tam dostat. + + + Evakuaèní místa: prozkoumej pozici B2 + + + Na mapì, kterou jsi našel v jednom z vrtulníkù, byla vyznaèena evakuaèní místa. Mìl bys zjistit, zda vojáci šli na pozici B2. + + + Zvláštní úkaz: odnes artefakt Fousáèovi + + + Zdrojem tohoto zvláštního žáru byl podobnì zvláštní artefakt. Fousáèe by to mohlo zajímat. + + + Zvláštní úkaz: zeptej se stalkerù na artefakt + + + Stalkeøi by o tomto zvláštním artefaktu mohli nìco vìdìt nebo by alespoò mohli vìdìt o nìkom, kdo se v artefaktech vyzná. Mìl by sis s nimi promluvit. + + + Zvláštní úkaz: najdi zdroj záøe v rýpací stanici. + + + V rýpací stanici byla spatøena podivná záø. Fousáè tì požádal, abys našel jeho zdroj. + + + Zvláštní úkaz: vezmi artefakt + + + Zdrojem tohoto zvláštního žáru byl podobnì zvláštní artefakt. Mìl bys ho vzít. + + + Zvláštní úkaz: øekni Fousáèovi o artefaktu + + + Zdrojem tohoto zvláštního žáru byl podobnì zvláštní artefakt. Pøestože tento artefakt nemáš, mìl bys o nìm øíct Fousáèovi. + + + Cesta na plošinu: skoè do anomálie + + + Zdá se, že cesta na plošinu vede skrz anomálii. Musíš do ní skoèit. + + + Cesta na plošinu: najdi Noemovu tajnou cestu + + + V Noemovì PDA byla zmínka o jeho "tajné cestì" na plošinu. Musíš ji najít. + + + Cesta na plošinu: zjisti od Noema, jak se tam dostat + + + Øíká se, že stalker zvaný Noe zná cestu na plošinu. Musíš od nìj zjistit, jak se tam dostat. + + + Nezvìstní stalkeøi: pøines dùkaz o tom, že za vším stojí Strašák + + + Musíš odnést PDA se Strašákovými záznamy do Skadovsku a ukázat ho Fousáèovi. Záznamy jasnì dokazují, že za mizením stalkerù stojí právì tento zdravotník. + + + Nezvìstní stalkeøi: najdi dùkaz o zapojení Strašáka + + + Musíš zjistit, zda Strašák nezanechal nìjaký dùkaz o svém spojení s mizením stalkerù. + + + Rejnok 3: prozkoumej místo havárie + + + Prozkoumej místo havárie Rejnoka 3. + + + Musíš pøinést artefakt Fousáèovi, ale doba hájení už uplynula. Nyní budou po artefaktu pátrat i tví protivníci. + + + Musíš pøinést artefakt Fousáèovi. Nezapomeò, že po nìm pátrají i tví protivníci. + + + Musíš pøinést artefakt Fousáèovi, ale povídá se, že jiná skupina už jeden našla. Mìl bys sledovat signál a snažit se dokonèit úkol døív, než tví soupeøi. + + + Musíš pøinést artefakt Fousáèovi, ale jiná skupina to už dokázala. Za artefakt tak nyní dostaneš jen polovièní èástku. + + + Musíš pøinést artefakt Fousáèovi. + + + Artefakt na zakázku: pøines Gravi + + + Artefakt na zakázku: pøines Oko + + + Artefakt na zakázku: pøines Bublinu + + + Artefakt na zakázku: pøines Skoøápku + + + Artefakt na zakázku: pøines Zlatou rybku + + + Artefakt na zakázku: pøines Plamen + + + Artefakt na zakázku: pøines Svìtlušku + + + Artefakt na zakázku: pøines Vloèku + + + Musíš najít artefakt pro Fousáèe, ale doba hájení už uplynula. Nyní budou po artefaktu pátrat i tví protivníci. + + + Musíš najít artefakt pro Fousáèe. Nezapomeò, že po nìm pátrají i tví protivníci. + + + Musíš najít artefakt pro Fousáèe, ale povídá se, že jiná skupina už jeden našla. Mìl bys sledovat signál a snažit se dokonèit úkol døív, než tví protivníci. + + + Musíš najít artefakt pro Fousáèe, ale jiná skupina to už dokázala. Za artefakt tak nyní dostaneš jen polovièní èástku. + + + Musíš najít artefakt pro Fousáèe. + + + Artefakt na zakázku: najdi Gravi + + + Artefakt na zakázku: najdi Oko + + + Artefakt na zakázku: najdi Bublinu + + + Artefakt na zakázku: najdi Skoøápku + + + Artefakt na zakázku: najdi Zlatou rybku + + + Artefakt na zakázku: najdi Plamen + + + Artefakt na zakázku: najdi Svìtlušku + + + Artefakt na zakázku: najdi Vloèku + + + Kompas: najdi Noema a zjisti, kde mùžeš najít vzácný artefakt + + + Na starém èlunu musíš najít Noema a zjistit, kde bys mohl získat vzácný artefakt Kompas. Fousáè jej shání už dlouho a je proto ochoten za nìj dobøe zaplatit. + + + Kompas: pøines artefakt Fousáèovi + + + Kompas: zjisti od Noema, kde mùžeš získat vzácný artefakt + + + Sultán se chce zmocnit artefaktu, po kterém se Fousáè shání. Na starém èlunu musíš najít Noema a zjistit, kde se artefakt dá sehnat. + + + Kompas: pøines artefakt Sultánovi + + + Ten artefakt, který ti Noe dal, je právì Kompas, po kterém se shání Sultán. + + + Èerný obchod: vyzvedni si u Fousáèe svùj podíl + + + Mìl by sis u Fousáèe vyzvednout podíl z jeho ziskù. + + + Lákavá nabídka: promluv si se Sultánem + + + Obchodník Hejkal se domnívá, že Fousáè neplní svou èást dohody a navrhuje, aby ses s pomocí obrátil na Sultána, místního šéfa podsvìtí. + + + Èerný obchod: vem stalkerùm detektory + + + Musíš udìlat vše pro to, abys stalkerùm hledajícím artefakty pro Fousáèe vzal prototypy detektoru. Pokud Fousáè nebude mít detektory, bude muset souhlasit se Sultánovými podmínkami. + + + Èerný obchod: promluv si se Sultánem + + + Fousáè už nemá detektory, a proto bys sis mìl promluvit se Sultánem, zda je problém s ostatními dodavateli Fousáèe vyøešen. + + + Èerný obchod: pøinu Vlasáèe, aby pracoval pro Sultána + + + Fousáè už nemá žádné dodavatele ani detektory, takže si sám neškrtne. Pøinu ho pracovat pro Sultána. + + + Èerný obchod: zjisti nìco o aktuálních obchodech Fousáèe + + + Musíš zjistit, s èím zrovna Fousáè obchoduje. To by nám mohlo pomoci odøíznout jeho zásobování. + + + Èerný obchod: odeber stalkerùm druhé detektory + + + Musíš udìlat vše pro to, abys stalkerùm hledajícím artefakty pro Fousáèe vzal prototypy detektoru. Pokud nebude mít detektory, bude muset souhlasit se Sultánovými podmínkami. + + + Lákavá nabídka: pøines Novikovi tøi detektory Veles + + + Obchodník Hejkal ti nabídl úèast v lukrativním podniku. Tvým úkolem je najít tøi detektory Veles a odnést je Novikovi do bunkru vìdcù. + + + Lákavá nabídka: poèkej, až Hejkal dostane detektory + + + Novikov pøijal detektory a slíbil, že je nazpìt Hejkalovi pošle sám. Musíš poèkat, až skonèí s prací na dektorech, a pak od nìj zjisti výsledek. + + + Lákavá nabídka: promluv si s Hejkalem + + + Obchodník Hejkal ti prostøednictvím rádia øekl, že má potíže a chtìl by s tebou mluvit. + + + Lákavá nabídka: pøesvìdè Fousáèe, aby se držel dohody + + + Obchodník Hejkal se domnívá, že Fousáè se nedrží dohody. Musíš si s ním promluvit a pøesvìdèit ho, aby s porušováním dohody pøestal. + + + Lákavá nabídka: vyžádej si podíl od Hejkala + + + Fousáè je pøesvìdèený, že Hejkalovi nic nedluží. Musíš zjistit, kdo má pravdu a vyžádat si od nìj svùj podíl. + + + Pahejl tì požádal, abys mu pøinesl jeho krabici. Ukryl ji ve starém Zaporožci, který po zemìtøesení spadl do trhliny. Pahejl se do ní bojí sestoupit, protože je plná pøíšer. + + + Získal jsi Pahejlovu krabici a nyní bys ji mìl zanést jejímu majiteli, aby mohl spravedlivì rozdìlit její obsah. + + + Doupì upírù: informuj stalkery + + + Musíš øíct stalkerùm o doupìti upírù pod vysílací stanicí Krug. + + + Doupì upírù: informuj Fousáèe + + + Musíš øíct Fousáèovi o doupìti upírù pod vysílací stanicí Krug, aby se mohl rozhodnout, jak ochránit stalkery. + + + Nezvìstní stalkeøi: jdi za Tetøevem + + + Tetøev tì požádal, abys s ním prozkoumal opuštìnou vysílací stanici. Všiml si upírù a chce zjistit, jestli tam nìkde není i onen lovec. + + + Nezvìstní stalkeøi: zjisti, co se stalo + + + Zdá se, že Strašák není tak nevinný, jak se zdálo. Musíš zjistit, co se stalo. + + + Nezvìstní stalkeøi: najdi Tetøeva + + + Tetøev z nìjakého dùvodu odešel smìrem k jeøábùm v docích. Možná zjistil nìco o nezvìstných stalkerech, takže by ses za ním mìl podívat. + + + Nezvìstní stalkeøi: zjisti, kde je Tetøev + + + Tetøev není na žádném ze svých obvyklých míst. Mìl by ses zeptat Fousáèe, kam šel. + + + Nezvìstní stalkeøi: najdi ztraceného lovce + + + Tetøev tì požádal, abys mu pomohl najít ztraceného lovce, který se prý pokoušel nalézt doupì upírù. Podle aktuálních informací mùžou za nedávné mizení stalkerù právì upíøi. + + + Nezvìstní stalkeøi: dostaò se z doupìte upírù + + + V suterénu jsi objevil doupì upírù a zjistil jsi, že jeho obyvatelé jsou jako omámené. Mìl bys odsud odejít, a to co nejtišeji. + + + Nezvìstní stalkeøi: setkej se s Tetøevem + + + Asi bys mìl vyhledat Tetøeva a promluvit si s ním o hledání ztraceného lovce. + + + Nezvìstní stalkeøi: pozdìji se setkej s Tetøevem + + + Ve vysílací stanici nebyla po lovci Danilovi ani stopa. Tetøev se ale tím, co jsi uvnitø zjistil, zdá být zmatený a požádal tì, aby ses s ním pozdìji sešel a celou záležitost s ním podrobnì probral. + + + Nezvìstní stalkeøi: setkej se s Tetøevem + + + Na místì, o kterém Tetøev mluvil, byla jen mrtvý upír, po lovci Danilovi však ani stopa. Ale zdá se, že Tetøev zjistil nìco zajímavého a chtìl by tì požádat, aby ses k nìmu pøidal. + + + Všechno nasvìdèuje tomu, že upíøi nemají s mizejícími stalkery nic spoleèného. Za vším je Strašák, zdravotník ze Skadovsku. + + + Náøadí: pøines Kardanovi náøadí + + + Kardan tì požádal, abys mu sehnal dvì sady náøadí: jednu pro základní úkony a druhou pro jemnou práci. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Kardanovi náøadí + + + Kardan tì požádal, abys mu sehnal dvì sady náøadí: jednu pro základní úkony a druhou pro kalibraci. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Kardanovi náøadí + + + Kardan tì požádal, abys mu sehnal sadu náøadí pro základní pracovní úkony. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Kardanovi náøadí + + + Kardan tì požádal, abys mu sehnal dvì sady náøadí: jednu pro jemnou práci a druhou pro kalibraci. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Kardanovi náøadí + + + Kardan tì požádal, abys mu sehnal sadu náøadí pro jemné pracovní úkony. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Kardanovi náøadí + + + Kardan tì požádal, abys mu sehnal sadu náøadí pro kalibraci. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Náøadí: pøines Kardanovi náøadí + + + Kardan tì požádal, abys mu sehnal tøi sady náøadí: jednu pro základní pracovní úkony, druhou pro jemnou práci a tøetí pro kalibraci. Technik ti za náøadí zaplatí a bude s ním schopen provádìt pokroèilejší úpravy zbraní a zbroje. + + + Tábor žoldákù: seber všechny informace, na které narazíš + + + Obchodník Hejkal slíbil, že za každou informaci, na kterou v táboøe žoldákù v továrnì na zpracování odpadu narazíš, dobøe zaplatí. Zajímají ho plány žoldákù. + + + Tábor žoldákù: seber všechny informace, na které narazíš + + + Obchodník Hejkal slíbil, že za každou informaci, na kterou v táboøe žoldákù v továrnì na zpracování odpadu narazíš, dobøe zaplatí. Zajímají ho plány žoldákù. + + + Tøi kamarádi: zjisti, co se stalo s Bárkou + + + Kardan tì požádal, abys vyøídil omluvu jeho kamarádovi, stalkerovi zvanému Bárka. Pohádali se, Bárka se naštval a odešel neznámo kam. + + + Tøi kamarádi: zjisti, co se stalo Bárkovi a Vtipoòovi + + + Kardan tì požádal, abys vyøídil omluvy jeho kamarádùm, stalkerùm zvaným Bárka a Vtipoò. Pohádali se, oba kamarádi se naštvali a odešli neznámo kam. + + + Tøi kamarádi: zjisti, co se stalo s Vtiponìm + + + Kardan tì požádal, abys vyøídil omluvu jeho kamarádovi, stalkerovi zvanému Vtipoò. Pohádali se, Vtipoò se naštval a odešel neznámo kam. + + + Speciální objednávka: vyzvedni zboží + + + Zboží bylo doruèeno, mìl bys ho pøevzít od Èipery. + + + Speciální objednávka: èekej na doruèení + + + Objednávka byla provedena, nyní bys mìl poèkat, až bude zboží doruèeno Èiperovi. + + + Reputace: najdi Pahejla + + + Musíš najít Pahejla a pøinutit ho, aby držel jazyk za zuby. Èipera nikdy nedìlal do kradených vìcí, zatímco Pahejl není žádný andílek. Naposled byl vidìn u jeøábù v docích, možná tam poøád bude. + + + Musíš najít Pahejla a pøinutit ho, aby držel jazyk za zuby. Pahejl není u jeøábù v docích, bandité by ale mohli vìdìt, kde ho hledat. + + + Musíš najít Pahejla a pøinutit ho, aby držel jazyk za zuby. Zdá se, že v tom jedou i bandité, takže by mohli vìdìt, kde ho hledat. + + + Musíš najít Pahejla a pøinutit ho, aby držel jazyk za zuby. Momentálnì se zdá, že se po nìm slehla zem. + + + Musíš najít Pahejla a pøinutit ho, aby držel jazyk za zuby. Podle PDA nalezeného u jednoho z banditù se zdá, že Pahejla hledají Sultánovi lidi. Bohužel v nìm není ani zmínka o tom, kde by mohl být. + + + Reputace: zjisti, kam zmizel Pahejl + + + Pahejl není na žádném ze svých obvyklých míst, takže by ses mìl zeptat místních, jestli ho náhodou nevidìli. + + + Musíš najít Pahejla a pøinutit ho, aby držel jazyk za zuby. Na obvyklém místì není, ale Sultán by o nìm mohl vìdìt víc. + + + Musíš najít Pahejla a pøinutit ho, aby držel jazyk za zuby. Na obvyklém místì není, ale Fousáè by o nìm mohl vìdìt víc. + + + Reputace: promluv si s Pahejlem + + + Musíš najít Pahejla a pøinutit ho, aby držel jazyk za zuby. Èipera nikdy nedìlal do kradených vìcí, zatímco Pahejl není žádný andílek. + + + Doupì upírù: najdi vìtrací šachtu + + + Najdi vìtrací šachtu a vžeò do doupìte upírù jedovatý plyn + + + Doupì upírù: najdi jedovatý plyn + + + Ke znièení doupìte upírù budeš potøebovat jedovatý plyn. Hejkal by mohl vìdìt, kde se dá sehnat. + + + Ke znièení doupìte upírù budeš potøebovat jedovatý plyn. Hejkal tvrdí, že kanystry s plynem bys mohl najít u opuštìného vojenského konvoje. + + + Doupì upírù: najdi klíèe ke schránce + + + V dokumentech, které jsi nalezl, se nachází zmínka o klíèích ke schránce s kanystry s plynem. Musíš je najít. + + + Doupì upírù: najdi zpùsob, jak odemknout schránku s kanystrem plynu + + + Schránka s kanystrem plynu je zamèená. Musíš najít zpùsob, jak ji otevøít. + + + Doupì upírù: umísti kanystr s plynem + + + Vlož kanystr s plynem do vìtrací šachty suterénu vysílací stanice. Plyn by se mìl rozšíøit ve vìtrací šachtì, nasytit suterén a zabít upíry. + + + Doupì upírù: sdìl Fousáèovi, že doupì bylo znièeno + + + Informuj Fousáèe, že jsi znièil doupì upírù a zajistil tak bezpeènost stalkerù ve Skadovsku. + + + Doupì upírù: otoè ventilem + + + Otoè ventilem, aby se jedovatý plyn mohl vìtrací šachtou rozptýlit v suterénu s doupìtem upírù. + + + Doupì upírù: poèkej, dokud plyn nezapùsobí + + + Musíš se ujistit, že se plyn rozptýlil v doupìti a že upíøi jsou mrtví. + + + Transakce: setkej se s bandity v lovecké stanici + + + Sultán tì požádal, aby ses zúèastnil jednání s obchodníkem. Musíš doprovodit jeho lidi a krýt je v pøípadì, že se nìco pøihodí. + + + Transakce: setkej se s obchodníkem + + + Hejkal ti nabídl práci – ochranu obchodníka pøi obchodním jednání. Obchod samozøejmì není úplnì nejèistší a mùže se stát, že neprobìhne hladce. + + + Transakce: setkej se se stalkery v lovecké stanici + + + Setkej se se stalkery v lovecké stanici a pomoz jim pøerušit obchod mezi bandity a obchodníkem se zbranìmi. + + + Transakce: chraò obchodníka + + + Obchodník ti vysvìtlil tvùj úkol – chránit jej bìhem transakce. + + + Transakce: naslouchej konverzaci + + + Stalkeøi chtìjí, abys vyslechl konverzaci mezi bandity a obchodníkem se zbranìmi. + + + Transakce: naruš prodej zbraní + + + Udìlej vše, co bude nutné, abys narušil obchod mezi bandity a obchodníkem. + + + Transakce: odstraò svìdky + + + Prùbìh transakce se obchodníkovi vymkl z rukou, takže se musíš postarat o všechny svìdky. + + + Transakce: ochraò obchodníka + + + Musíš ochránit obchodníka. Navíc ti pøikázal, aby ses postaral o všechny svìdky obchodu, vèetnì jeho klientù. + + + Transakce: najdi obchodníka + + + Obchodník mùže mít dùležité informace, které by se pozdìji mohly hodit. Dojdi si pro nì. + + + Transakce: kryj bandity bìhem jednání + + + Zùstaò ostražitý a kryj bandity pøi jednáních s obchodníkem. + + + Transakce: promluv si s obchodníkem + + + Obchod s bandity byl dokonèen, mìl by sis vyzvednout svou odmìnu. + + + Transakce: vyzvedni si u Fousáèe odmìnu + + + Fousáè ti slíbil odmìnu, pokud se ti podaøí narušit transakci mezi bandity a obchodníkem. To se ti podaøilo dokonale, takže si mùžeš dojít pro svou odmìnu. + + + Transakce: promluv si s vùdcem banditù + + + Musíš informovat vùdce banditù, že jsi pøipraven zúèastnit se transakce. + + + Zásah: rozhodni se, co udìláš + + + Zásah: zaútoè na stalkery + + + Zásah: vyzvedni si odmìnu + + + Útok na tábor byl odražen, takže si mùžeš promluvit se stalkery ohlednì své odmìny. Kdybys je o útoku neinformoval, pravdìpodobnì by mìli velice tìžkou pozici. + + + Skupina stalkerù se pøidala k banditùm a okrádá svou bývalou rodinu. Musíš se rozhodnout, zda se zúèastníš pøepadení, varuješ stalkery, nebo se do nièeho nebudeš míchat. + + + Zásah: poèkej na dohodnutý èas + + + Úder: Poèkej si na správný okamžik + + + Nepøístupná skrýš: dones schránku Pahejlovi + + + Obchod: promluv si s velitelem stalkerù. + + + Obchod byl pøerušen, pøekupník zbraní je mrtev. Promluv si s velitelem stalkerù. + + + Ztracení stalkeøi: øekni lidem na Skadovsku, co se stalo + + + Musíš vzít nalezené klíèe, odemknout jimi kontejner a vyndat bombu s jedovatým plynem. + + + Pelech upírù: vyndej z kontejneru plynovou bombu + + + Nájezd: pøepadni bandity + + + Když banditùm vpadneš do zad, znaènì tím pomùžeš bránícím se stalkerùm. + + + Nájezd: setkej se s bandity + + + Pøipoj se k banditùm v nájezdu na tábor stalkerù. + + + Nájezd: pøipoj se k banditùm + + + Stalkeøi tì požádali o pomoc pøi obranì pøed bandity. Máš se nejprv pøidat k banditùm. Až se vrhnou do útoku, jednoduše jim zaèneš støílet do zad. + + + Banditi èekají u Ševèenka. Jestli se k nim chceš pøipojit v útoku na stalkery, budeš za nimi muset dojít. + + + Poèkej na setkání s bandity. Chtìjí na stalkery zaútoèit po pùlnoci, až bude poøádná tma. Dohodnuté místo srazu je u Ševèenka. + + + Nájezd: zajdi si pro podíl + + + Útok na stalkery se vydaøil. Zajdi si vyzvednout svùj podíl na koøisti. + + + Poèkej na správný okamžik, kdy budou banditi plnì zabraní do útoku. Potom jim mùžeš zaèít pálit do zad a tak pomoc Ševèenkovým stalkerùm. + + + Temný byznys: zaèni pracovat pro Fousáèe + + + Abys mohl stalkerùm pracujícím pro Fousáèe ukrást prototypy detektorù, musíš se mezi nì vetøít. Teprv pak zjistíš, kde se skrývají tví konkurenci. + + + Vezmi kontejner a odnes ho k jeho majiteli. + + + V palubním poèítaèi Rejnoka 2 byly uloženy mapy oblasti mezi Zatonem a Jupiterem. Tøeba najdeš nìkoho, komu se budou hodit. + + + Cesta na náhorní plošinu: promluv si se stalkery + + + Na náhorní plošinu patrnì nevede žádná pøímá cesta. Zeptej se místních stalkerù, zda se tam nedá dostat nìjak jinak. + + + Ten artefakt, kterej ti dal Noe, není nic jinýho než Kompas, co po nìm tak touží Fousáè. + + diff --git a/gamedata/configs/text/cze/st_subtitles.xml b/gamedata/configs/text/cze/st_subtitles.xml new file mode 100644 index 0000000..98dff16 --- /dev/null +++ b/gamedata/configs/text/cze/st_subtitles.xml @@ -0,0 +1,156 @@ + + + + V brzkých hodinách 26. dubna 1986 se pøehøívá a následnì katastroficky vybuchuje ètvrtý reaktor èernobylské jaderné elektrárny. Vzniklý radioaktivní prach posléze vìtry roznesou napøíè Sovìtským svazem. Prach klesá k zemi i ve vzdálených oblastech Evropy a dostane se dokonce až do Ameriky. + + + Následky havárie jsou tak hrozné, že vláda Sovìtského svazu je nucena neprodlenì evakuovat obyvatele pøilehlých mìst a vesnic. + + + Ze zamoøených oblastí v okruhu 30 kilometrù od elektrárny je poté vytvoøena pøísnì støežená, nepøístupná zóna. + + + Nad znièeným blokem je vztyèen železobetonový Sarkofág a zbytek elektrárny je uveden zpìt do provozu. Pøítomnost výkonného zdroje elektøiny a skuteènost, že oblast je zcela neobydlená, vedou ke vzniku sítì tajných laboratoøí. + + + 10. èervna 2006. Zónu osvìtluje záblesk oslnivého svìtla. Tuto explozi následuje okamžik naprostého ticha. Na obloze se trhají mraèna a po chvíli se zemì otøese pod náporem hlasitého hromu. Vìtšina vojákù strážící okraj Zóny je v jediné vteøinì zabita. + + + 2008. Vìdci si stále lámou hlavu nad tím, co se stalo. Pøíležitostné výpravy do Zóny zpravidla konèí katastrofou. Ta hrstka lidí, kteøí je pøežijí, vypráví historky o zmutovaných zvíøatech s neuvìøitelnými schopnostmi. + + + 2009. Rùzné odhady uvádìjí, že v Zónì dnes žije sto až tøi sta neidentifikovaných osob. Tito lidé si øíkají „stalkeøi“ a vydìlávají si sbìrem anomálních útvarù, jimž se pøezdívá „artefakty“ a které se dají prodat za štìdré sumy. + + + 2010. Pøestože armáda utvoøila po okrajích Zóny støežené kordony, øady stalkerù se rozrùstají. Oblasti dále od okrajù však stále zùstávají neprozkoumány. Každý pokus o proniknutí do nitra Zóny se zatím setkal s neúspìchem. + + + 2012. Stalker jménem Støelec odhalí tajemství „Vypalovaèe mozkù“, mocného vysílaèe schopného znièit lidskou mysl, a deaktivuje jej. Dùsledkem toho se do støedu Zóny hrnou stalkeøi po stovkách: nìkteøí doufají, že naleznou hromady cenných artefaktù, jiní pátrají po legendárním „Plnièi pøání“. + + + Ve svìtle tìchto okolností se Rada národní bezpeènosti a obrany Ukrajiny rozhoduje vyslat na místo okamžitý speciální výsadek, v rámci takzvané Operace Prùplav. Desítky armádních vrtulníkù naložených vojáky se rozletí smìrem k Èernobylu, vybavených mapami anomálních polí, které jim mají umožnit bezpeèný prùlet. Navzdory dùkladným pøípravám však operace konèí fiaskem. Z mise se nevrátí ani jeden vrtulník. + + + Major Dìgtarev, speciální agent Rady bezpeènosti Ukrajiny a sám zkušený stalker, je vyslán do Zóny zjistit, proè se operace nezdaøila. + + + Vyzbrojen útoènou puškou, potravinami na dva týdny a vysílaèkou pro spojení s velitelstvím vykraèuje na cestu do støedu Zóny. + + + Mluvit se stalkery nemá smysl... buï nic nevìdí, nebo vám nic nechtìjí øíct. + + + Zóna neváhá a pøi každé pøíležitosti majorovi pøipomíná, že není žádným rájem. Neuplyne ani den, aniž by nezaútoèili mutanti èi dokonce lidé. + + + Komunikace s velitelstvím nijak nepomáhá: výèet veškerých spolehlivých informací pøedstavují souøadnice pìti ztroskotaných vrtulníkù. Nìkolik kilometrù pøed èernobylskou elektrárnou se vysílaèka zcela odmlèí. + + + Dìgtarev zùstává sám. + + + Za zdárné dokonèení vyšetøování byl Dìgtarev záhy povýšen na plukovníka. Odmítl nabídku pohodlného kanceláøského zamìstnání a místo toho zažádal, aby byl do Zóny vyslán jako permanentní pozorovatel Služby bezpeènosti. + + + Dìgtarevovi nadøízení byli znepokojeni získanými informacemi o psionických zaøízeních. Veškeré informace o laboratoøích X byly vyòaty z armádních záznamù a pøesunuty do složek Pøísnì tajné. Zamìstnanci Služby bezpeènosti, kteøí pracovali v Zónì, obdrželi rozkaz za každou cenu zabránit šíøení informací o laboratoøích a provádìných výzkumech. + + + Na základì technické dokumentace k pøedmìtu 62 bylo provedeno nìkolik experimentù. Po øadì zkoušek se došlo k závìru, že masové nasazení této zbranì by kvùli vysoké cenì munice bylo nehospodárné. Existují však dùkazy o tom, že armáda ve výzkumu Gaussových pušek nadále pokraèuje. + + + Když se Sultánovi a jeho gangu nepodaøilo obsadit Skadovsk, nechali loï jejímu osudu. Stalkeøi se zaèali cítit o poznání bezpeènìji, což vedlo k masivnímu nárùstu prodeje artefaktù Fousáèovi. Jeho obchody zaèaly vzkvétat, zatímco Skadovsk se stal stejnì populárním jako slavný bar U Sta radù. + + + Sultán na Skadovsku ustanovil pevný spoleèenský øád, a loï se tak stala základnou banditù. Fousáè, který odmítal pravidelnì odevzdávat výpalné, se spolu se skupinkou stalkerù vydal na prùzkum neprobádaných oblastí Zóny. Když pak Sultánovi muži lapili nìkolik nezkrotných živlù a hodili je pøes palubu, aby zemøeli v emisích, zbylí stalkeøi se rychle pøestali pokoušet o znovunastolení pùvodních pomìrù. + + + Skadovsk zùstal útoèištìm pro všechny šastné cestovatele, kteøí k nìmu dorazili. Bandité se na lodi sice pokusili zavést „poøádek“, nicménì stalkeøi je umírnili. Na lodi se rozhostil køehký mír. + + + Nic však netrvá vìènì. Nedaleko lodi se nacházel pelech upírù a ti postupnì zaèali pronikat i na loï. Když se upíøí útoky zaèaly opakovat i za bílého dne, stalkeøi vyslali výpravu, která to s nimi mìla skoncovat. Výpravì se však nepodaøilo vymést tunely úplnì doèista a nedlouho poté zaplavila loï vlna bestií, které s posádkou nadobro skoncovaly. + + + Po znièení upíøího pelechu zùstali mutanti pøíliš slabí, než aby dokázali výraznìji zasahovat do dìní na Skadovsku. Staøièká loï se na chvíli stala oázou relativní stability v bouølivém a vìènì se mìnícím prostøedí Zóny. + + + Stalkeøi z nádraží Janov se nakonec pøiklonili ke Svobodì. Povinnost se pokusila své ztracené území znovu dobýt, jenomže v nastalé pøestøelce zemøel podplukovník Šulga. Po ztrátì velitele se družstvo Povinnosti rychle rozuteklo. + + + Díky rostoucí popularitì mezi stalkery a pøívalu nových rekrutù se Povinnosti podaøilo vyhnat Svobodu z nádraží Janov. Loki a jeho bojovníci za Svobodu zemøeli v lítém boji. + + + Na nádraží Janov se ustanovila køehká rovnováha mezi pøívrženci Svobody a Povinnosti. Bojovníci obou frakcí, unavení nesmyslnými šarvátkami, zaèali opouštìt svá družstva a pøidávat se k nezávislým stalkerùm. + + + Vìdecká výzkumná expedice zorganizovaná profesory Hermannem a Ozerskim se zdárnì završila. Získaná data umožnila vývoj mnoha nových vynálezù a lékù. Díky tìmto prùkopnickým projektùm byly ohromnì navršeny rozpoèty všem výzkumným programùm v Zónì. + + + Vìdecká výzkumná expedice zorganizovaná profesory Hermannem a Ozerskim nenasbírala dostatek dat a byla odvolána. Po návratu do civilního svìta se oba vìdci zaèali vìnovat nesouvisejícím projektùm. + + + Garikovo vyprávìní o armádì a jejím zápolení s nástrahami Prijpati oslovilo nejednoho stalkera. Skupinky odvážlivcù zaèaly brzy prozkoumávat mìsto duchù. Stalkeøi se, navzdory neustávajícím útokùm Monolitu, opevnili v bývalém vojenském táboøe, z nìhož zaèali poøádat výpravy hloubìji do mìsta. Postup je pomalý, ale jistý. + + + Garikovo vyprávìní o osudu armády vyvolalo ve stalkerech hrùzu z Pripjati. Ta hrstka stateèných, která se do mìsta pøece jen vypravila, narazila na hrùzné a nevysvìtlitelné jevy, které jen dále pøispìly k již tak pochmurnému obrazu mrtvého mìsta. + + + Oáza již nadále nebyla pouhou legendou. Mezi stalkery se brzy zaèalo šuškat o lidech, jimž se podaøilo najít cestu k této záhadné anomálii. Poèet dobrodruhù, kteøí se rozhodli vydat v jejich stopách, zùstal i nadále vysoký - z èehož se rozhodli tìžit bandité. Nic netušící zelenáè se èasto nechá zlákat slibem, že ho bandita zavede k Oáze, jen aby skonèil pøepaden a ožebraèen daleko od ostatních stalkerù. + + + I po tom všem v Zónì dále pracují skupinky žoldákù. Jejich zájem o tajné laboratoøe dokonce vzrostl, což pøilákalo pozornost ostražité Služby bezpeènosti. Pøesto pøese všechno se stále nedaøí odhalit identitu klienta, jenž si žoldáky najal. + + + Okolí nádraží Janov láká pozornost stále rostoucího poètu stalkerù. Skuteènost, že v oblasti nežije mnoho nebezpeèných mutantù a naopak se tu hojnì vyskytují anomálie, vedla k tomu, že se jí mezi stalkery èím dál èastìji øíká „studnice pokladù“. + + + Okolí nádraží Janov si vybudovalo povìst jedné z nejnebezpeènìjších oblastí v Zónì. Z výprav se vracelo stále ménì a ménì stalkerù, mnozí z nich skonali pod rukama mutantù jen na dohled od tábora. Jedním z nezvìstných je i Zvìroboj, který se sem vydal na svùj patrnì poslední lov chiméry. + + + Zulus se vrátil na hlavní základnu Povinnosti v Rostoku. Nikdo neví, co tam s vùdcem Povinnosti, generálem Voroninem, probíral, ovšem o nìkolik dní pozdìji byl spaøen v èele velké skupiny ozbrojencù, která kráèela smìrem do støedu Zóny. + + + Zvìsti o Zulusovì osudu se donesly až k vùdci Povinnosti, generálu Voroninovi. K nemalému pøekvapení všech se Voronin rozhodl Zuluse posmrtnì vyznamenat nejvyšším ocenìním Povinnosti, støíbrným štítem. + + + Váòo se vypravil do armádních skladiš držených Svobodou, kde mu jeho usmìvavá povaha a optimismus rychle vynesly zaslouženou oblibu. Nakonec se ujal velení malé skupiny vìdcù a pustil se do výzkumu anomálních oblastí. + + + Stalkeøi z Janovského nádraží si i dnes pøíležitostnì vzpomenou na usmìvavého Váòa, jeho bezstarostnost a talent rozeného stalkera. Všichni se shodují, že Váòo udìlal obrovskou chybu, když se pøi svém štìstí vydal hledat cestu do Pripjati. + + + V Zónì se objevila nová skupina stalkerù. Jsou dobøe vycvièení, ale o jejich cílech se nic neví. Nepotvrzené dohady naznaèují, že jde o bývalé bojovníky Monolitu, jimž velí jakýsi muž jménem Tulák. + + + Málokdo si vùbec všiml, že zmizel Tulák, jediný èlovìk, který poøádnì vìdìl, co se stane lidem, kteøí propadnou kouzlu Monolitu... a jediný, kdo jim pomáhal. + + + Nadporuèík Sokolov pokraèoval v pøeletech nad Zónou a nakonec byl sestøelen žoldáky nad Limanskem. Pøežil jen zázrakem a o dva týdny pozdìji jej zachránila hlídka nedaleko kordonu. Brzy poté odešel Sokolov od letectva a dal se na dráhu civilního pilota. + + + Seznam vojákù, kteøí padli v prùbìhu Operace Prùplav, se rozrostl o další jméno: „Nadporuèík O. N. Sokolov. Zemøel pøi výkonu služby.“ + + + Hejkal si vybudoval dobré kontakty s klienty mimo Zónu. Kšeftuje s informacemi a proslýchá se, že k jeho hlavním zákazníkùm patøí i Služba bezpeènosti. + + + Pøi jedné obzvláštì silné emisi se jistá skupina stalkerù uchýlila do bezpeèí Noemovy staré bárky. Nedlouho nato bárku pøepadla tlupa snorkù a stalkeøi si rychle uvìdomili, že nevìdomky našli malou, avšak obranyschopnou pevnost. Ještì víc je však zarazila smeèka pseudopsích štìòat, které sám Noe vyvedl do epické bitvy proti snorkùm. + + + Když Kardan zjistil, co se pøihodilo jeho kamarádùm, vzdal se svých snù o kariéøe stalkera. Pøekonal svùj alkoholismus a odstìhoval se do Janova, kde se seznámil s Nitrem a spolu s ním pak založil opraváøskou dílnu. Oba technici dnes nadšenì investují všechen svùj volný èas do tvorby vozidla, které by pro nehostinné prostøedí Zóny bylo ideální. + + + Kardan pøekonal svùj alkoholismus a odstìhoval se ze Skadovsku. Mezi stalkery se šušká, že se vydal hledat své ztracené pøátele. Vrátil se nìkolik dní poté, zranìný a otrávený záøením. Když se ze svých zranìní nakonec vyléèil, odešel ze Zóny nadobro. + + + Støelec pøedal všechny informace, které objevil v Èernobylu, dùstojníkùm Služby bezpeènosti. Na popud tìchto objevù založila vláda Vìdecký institut pro výzkum èernobylských anomálních oblastí. Støelec v Institutu pøijal pozici vrchního vìdeckého konzultanta. + + + Spolu se Støelcem se ztratily i jeho poznatky. Informace, které objevil v Èernobylu a jež by mohly posloužit k rozlousknutí nejedné záhady Zóny, se nikdy nedostaly do vnìjšího svìta. Zdá se, že Zóna si svá tajemství dokáže ochránit. + + + Když se plukovník Kovalskij, velící dùstojník letky Rejnokù, vrátil ze Zóny, popsal svým nadøízeným dùvody, které zapøíèinily selhání Operace Prùplav. Po sáhodlouhém vyšetøování a marných pokusech generality hodit vinu na jeho hlavu byl plukovník nakonec èestnì zproštìn služby. + + + Plukovník Kovalskij, velící dùstojník letky Rejnokù, se uchýlil k vìènému odpoèinku nedaleko míst, kde skonala i vìtšina jeho jednotky. Jejich tìla vstøebala Zóna a dnes po nich nezbývá nic než staré, vybledlé fotografie ve specializovaných vojenských muzeích, které pøipomínají jejich obìtování za vlast. + + diff --git a/gamedata/configs/text/cze/ui_st_credits.xml b/gamedata/configs/text/cze/ui_st_credits.xml new file mode 100644 index 0000000..3b158c1 --- /dev/null +++ b/gamedata/configs/text/cze/ui_st_credits.xml @@ -0,0 +1,684 @@ + + + + Sergey Chechin + + + Maciej Abramowicz + + + Armen Abroyan + + + Herci + + + Testeøi + + + AMD/ATI + + + Roman Androshiuk + + + Animátor + + + Grafické oddìlení + + + Øeditel výtvarníkù + + + Nikita Atroshenko + + + Damian Bajorek + + + Mikhail Bastrykin + + + Kamil Bilinski + + + Krzysztof Binkowski + + + Arkadiusz Bochenek + + + Justin Boggs + + + Anatoly Bogush + + + Wojciech Borowy + + + Stanislaw Burtsau + + + Modely postav + + + Aleksey Cherevatenko + + + Jerzy Chrul + + + Wojciech Ciemny + + + Skladatel + + + Dmitry „Abe“ Davidyan + + + Aaron Davies + + + Alexander Demidenko + + + Programátorské + + + oddìlení + + + Lukasz Derewonko + + + Ruslan Didenko + + + Yuri Doroshenko + + + Elena Dovgaliuk + + + Rafal Durajczyk + + + Petr Dushinsky + + + Maciej Dziarnowski + + + Sergey Eremenko + + + Yuri „Dark“ Falchenko + + + Jakub Gabryel + + + Cezary Galach + + + Designérské oddìlení + + + Programátoøi herního obsahu + + + CENEGA, záruka kvality + + + Zvláštní podìkování zaslouží + + + Filip Gerasimov + + + Grigory Hermann + + + Angelica Girich + + + Pawel Golubinski + + + Marcin Gorniak + + + Tomasz Goscicki + + + Programátoøi grafiky + + + Holger Grun + + + Pawel Grzywaczewski + + + Sergiy Grygorovich + + + Marcin Gutowski + + + Dmitry Yasenev + + + Intel + + + Sergey Ivantsov + + + Norbert Jankowski + + + Alexander Kachaniuk + + + Dmitry Kalita + + + Aleksander Keska + + + Andrey „Darin“ Kirienko + + + Lukasz Kobylanski + + + Andrey Kolomiets + + + Artur Komorek + + + Yuri Konstantinov + + + Maria Kotolovskaya + + + Alexander Kovach + + + Kirill Koval + + + Irina Krivchikova + + + Dmitry Krivets + + + Eugene Kuchma + + + Svetlana Kudrya + + + Sergey Kurbatov + + + Olga Kuzhel + + + Dmitry Kuzmenko + + + Aleksey Kuznetsov + + + Oleg Kuznetsov + + + Szymon Lazarski + + + Hlavní animátor + + + Hlavní výtvarník + + + Hlavní designér + + + Hlavní programátor + + + Hlavní testeøi + + + Hlavní experti + + + Návrh úrovní + + + Korektury + + + Vladimir Litvinenko + + + Eric Lundgren + + + Sergey Maistrenko + + + Dmitry Macedon + + + Roman Malinkin + + + Projektoví manažeøi + + + Alexander Maniliuk + + + Daniel Mankowski + + + Denis Matveenko + + + Maciej Mazurek + + + Piotr Mazurkiewicz + + + Darren McPhee + + + Igor Melnikov + + + Victor Merkulov + + + Damian Mielnik + + + Pavel Mikhailov + + + Konstantin Mironov + + + Obrovské díky Olegu Fomenkovi + + + a firmì BuntarMedia + + + za pomoc s motion capture + + + Vladimir Morev + + + Andrey Moroz + + + Dawid Mrozowski + + + Yuri Negrobov + + + Programátor hry více hráèù + + + nVidia + + + Aleksey Omelchuk + + + Lukasz Osinski + + + Mikhail Parfeniuk + + + Eugene Pashin + + + Igor Pasichnyi + + + Bartosz Peas + + + Programátor fyziky + + + Jacek Piotrowski + + + Alexander Plichko + + + PR oddìlení + + + Øeditel PR + + + PR manažeøi + + + Sergey Prishepa + + + Producent + + + Projektový manažer + + + Testování + + + Anton Ravin + + + Sebastian Rejent + + + Mateusz Rekorajski + + + Filip Resiak + + + Peter Ross + + + Ivan Rozin + + + Lukasz Ruminski + + + Denis Rutkovsky + + + Lukasz Rynkowski + + + Manažer obchodního rozvoje + + + Piotr Samborowski + + + Maria Shapunova + + + Sergey Shelest + + + Igor Sidorenko + + + Mikolaj Sitkiewicz + + + Yuri Skripal + + + Konstantin Slipchenko + + + Tomasz Sobotka + + + Mistr zvuku + + + Zvláštní podìkování + + + zaslouží + + + Oleg Stalchuk + + + Liudmila Starodub + + + Vladimir Stavitsky + + + Pawel Stempien + + + Pawel Strzelczyk + + + Autoøi + + + Konstantin Stupivtsev + + + Zákaznická + + + podpora + + + Rafal Szekalski + + + Maciej Szumowski + + + Marcin Szwargolinski + + + Vladimir Tereshiuk + + + Sergey Terliuk + + + Textury + + + A všem ostatním, kdo pøispìli + + + k vylepšení hry: + + + Konstantin Morozkov + + + Yaroslav „Drdko Jar“ Alexandrov + + + Dmitry „Komandor“ Ivanov + + + Oleg Chernov + + + Ig. Valerian (Golovchenko) aka oVal + + + M. Bystrykhin + + + Eugene „Mulder“ Khaletskiy + + + Pavel „Goon“ Bolotov + + + Alexander „Leks“ Abramov + + + Alexander Novikov + + + Alexander Poshtaruk, Andrey Oleshk + + + Eugene „KRANZ“ Goncharenko + + + Sergey Dvuzhilny + + + Aleksey „Don Reba“ Badalov + + + Sergey Dvuzhilny, Tolusha + + + Artem Zuev, aka BAC9-FLCL + + + Glot, Patriot, Mers + + + Tiger, Demesis, Kharon, Moby + + + Alexander Oleinik + + + Konstantin „Inkvizitor“ Kriuchkov + + + Alexander Shakhovsky, Igor Dolzhenko + + + Sergey „Tur“ Leshenko + + + Dmitry „Hill“ Gorban + + + Mikhail Kliuev + + + Sergey „Termite“ Volchanov + + + Sergey Tikhomirov + + + Ilya Tolmachev + + + Jakub Trudzik + + + Návrh rozhraní + + + Yuri Uralsky + + + Denis „Tetri$Zs“ Yusupov + + + RandyJ VanderHeyden + + + Vladimir Vazhinsky + + + Andrey Verpakhovsky + + + Alexander Vilkov + + + Anastassia Voskolovich + + + Andrzej Wardziak + + + Programátor webu + + + Dominik Wojcik + + + Lukasz Watroba + + + Eugene Yablon + + + Yuri Yatsenko + + + Eugene Yatsiuk + + + Oleg Yavorsky + + + Valentin Yeltyshev + + + Eugene Zaitsev + + + Andrey Zakoliukin + + + Marek Zdziarski + + + Michal Zegarski + + + Albert Zmudzki + + + Aleksey Zorin + + + Bartosz Zukowski + + + Victoria „Morrant“ Yukhno + + + Sergey „ion“ Kalintsev + + + Roman „RVCool“ Kulikov + + + Maxim Smirnov + + + Omar Al-Shekhly + + + Roman „Marauder“ Arhipov + + diff --git a/gamedata/configs/text/cze/ui_st_inventory.xml b/gamedata/configs/text/cze/ui_st_inventory.xml new file mode 100644 index 0000000..73d69f9 --- /dev/null +++ b/gamedata/configs/text/cze/ui_st_inventory.xml @@ -0,0 +1,303 @@ + + + + Nedostatek penìz + + + Postava nemá dost penìz + + + $$ACTION_QUICK_USE_1$$ + + + $$ACTION_QUICK_USE_2$$ + + + $$ACTION_QUICK_USE_3$$ + + + $$ACTION_QUICK_USE_4$$ + + + aktivovat artefakt + + + pøipojit granátomet + + + pøipojit puškohled + + + pøipojit tlumiè + + + Cena + + + Skupina: + + + Stav + + + odpojit granátomet + + + odpojit puškohled + + + odpojit tlumiè + + + obléct + + + zahodit + + + zahodit vše + + + sníst + + + kg + + + pøipojit k opasku + + + pøesunout do batohu + + + pøesunout na pozici + + + Tento obchodník nemá o takové vìci zájem. + + + Takhle poškozené pøedmìty se prodat nedají. + + + pøehrát + + + prodat pøedmìt + + + Stav zbroje + + + Kontaminace radioaktivitou + + + sundat kombinézu + + + vyndat zásobník + + + použít + + + Hm. + + + Poè. nábojù + + + Pøesnost + + + Koupit základní munici do pistole (Q) + + + Koupit munici do pušky (W) + + + Uzdravování ran + + + Zrušit + + + Zbraò nelze koupit + + + Omezení poètu + + + Poškození + + + Výchozí (F5) + + + Zpìt + + + Koupit podvìšený granátomet na pušku (D) + + + Koupit granáty do podvìšeného granátometu (E) + + + Ovládání + + + Nyní + + + Obnova zdraví + + + Tìžké + + + Zopakovat poslední nákup + + + Pøedchozí (F4) + + + Peníze + + + Vyžadováno + + + Nemáš dost penìz + + + OK + + + Nesená hmotnost + + + Pøed ohnìm + + + Pøed chemií + + + Zbroj + + + Pøed rad. + + + Pøed elek. + + + Pøed psi. + + + Pøed nárazy + + + Obnova výdrže + + + Výzbroj 1 (F1) + + + Výzbroj 2 (F2) + + + Výzbroj 3 (F3) + + + Radiace + + + Omezení hodností + + + Kadence + + + Vynulovat (C) + + + Útoèné pušky + + + Zahánìní hladu + + + Koupit optický puškohled + + + Prodat vše z batohu (X) + + + Pušky + + + Koupit tlumiè na pistoli (A) + + + Koupit tlumiè na pušku (F) + + + Odstøelovaèky + + + Èas + + + To už máš + + + Internetové služby hry S.T.A.L.K.E.R. nejsou dostupné. + + + Nelze se pøipojit k hlavnímu serveru. + + + Ochrana: + + + Výchozí + + + Nakoupená výzbroj uložena jako + + + Celková váha: + + + vypít + + + Obnova výdrže + + + Krvácení + + + Maximální zátìž + + + Zdraví + + + Munice + + + Trvání + + + s. + + + Umožní ti pøežít emisi + + + nasadit pøilbu + + + sundat pøilbu + + diff --git a/gamedata/configs/text/cze/ui_st_ixray.xml b/gamedata/configs/text/cze/ui_st_ixray.xml new file mode 100644 index 0000000..67e115a --- /dev/null +++ b/gamedata/configs/text/cze/ui_st_ixray.xml @@ -0,0 +1,62 @@ + + + + S.T.A.L.K.E.R.: Call of Pripyat + + + Hlavní menu + + + Úroveò: + + + rychlé uložení + + + auto uložení + + + + m + + + Vzdálenost úderu + + + + Otevøený kufr ($$ACTION_USE$$) + + + Použití ($$ACTION_USE$$) + + + + Volný + + + + Autonabíjení + + + + Vícevláknové naèítání textur + + + Stínová mapa + + + 1024x1024 + + + 2048x2048 + + + 3072x3072 + + + 4096x4096 + + + Vždy aktivní + + diff --git a/gamedata/configs/text/cze/ui_st_keybinding.xml b/gamedata/configs/text/cze/ui_st_keybinding.xml new file mode 100644 index 0000000..2d7af2b --- /dev/null +++ b/gamedata/configs/text/cze/ui_st_keybinding.xml @@ -0,0 +1,225 @@ + + + + PDA + + + Rozkaz k útoku + + + Chùze + + + Artefakt + + + Zpìt + + + Dalekohled + + + Nabídka nákupu + + + Chat + + + Týmový chat + + + Konzole + + + Kontakty v PDA + + + Pøikrèení + + + Pøepnout pøikrèení + + + Detektor + + + Dolù + + + Zahodit + + + Støelba + + + Další režim støelby + + + Pøedchozí režim støelby + + + Dopøedu + + + Podvìšený granátomet + + + Obecné + + + Smìr + + + Batoh + + + Pohyb + + + Hra více hráèù + + + Zbraò + + + Batoh + + + Skok + + + Doleva + + + Naklonit doleva + + + Úkrok doleva + + + Mapa v PDA + + + Zbraò na další pozici + + + Noèní vidìní + + + Pauza + + + PDA + + + Zbraò na pøedchozí pozici + + + Zpìt + + + Nabít + + + Opravit + + + Doprava + + + Naklonit doprava + + + Naklonit doprava + + + Body + + + Screenshot + + + Nabídka modelù + + + Bìh + + + Nabídka týmù + + + Baterka + + + Aktivovat + + + Nahoru + + + Použít + + + Rychlý obvaz + + + Rychlá lékárnièka + + + Zahájit hlasování + + + Hlasovat + + + Hlasovat „Ano“ + + + Hlasovat „Ne“ + + + Zbraò 1 + + + Zbraò 2 + + + Zbraò 3 + + + Zbraò 4 + + + Zbraò 5 + + + Zbraò 6 + + + Zmìnit typ munice + + + Pøedchozí zbraò tohoto typu + + + Pøiblížení + + + Hlasové zprávy (1) + + + Hlasové zprávy (2) + + + Rychlá pozice 1 + + + Rychlá pozice 2 + + + Rychlá pozice 3 + + + Rychlá pozice 4 + + diff --git a/gamedata/configs/text/cze/ui_st_loadscreen.xml b/gamedata/configs/text/cze/ui_st_loadscreen.xml new file mode 100644 index 0000000..01681f0 --- /dev/null +++ b/gamedata/configs/text/cze/ui_st_loadscreen.xml @@ -0,0 +1,474 @@ + + + + 100 TIPÙ PRO PØEŽITÍ V ZÓNÌ + + + Zásah nepøítele do oka znamená jeho okamžitou smrt, bez ohledu na kvalitu zbroje. + + + AC-96/2 má jedineèný dávkový režim støelby, pøi kterém dvì souèasnì vystøelené kulky zasáhnou stejné místo. + + + Dvouhlavòové brokovnice mohou oba náboje vystøelit témìø souèasnì. + + + Nepodceòuj pistole. Poskytují slušnou palebnou sílu a proti špatnì obrnìným cílùm mohou být velice efektivní. + + + Odstøelovací pušky jsou vzhledem ke své ploché trajektorii a pøesnosti ideální pro eliminaci nepøátel z dálky. Pøi malých vzdálenostech jejich efektivita klesá. + + + Støelba za pohybu má v porovnání se støelbou ze stoje nebo z pokleku mnohem menší pøesnost. + + + Zbranì a ochranné obleky se v tvrdých podmínkách Zóny rychle opotøebovávají. Opotøebované zbranì ztrácejí pøesnost a mohou selhat, obnošené obleky neposkytují tak dobrou ochranu. + + + Pro vytvoøení snímku obrazovky stiskni "$$ACTION_SCREENSHOT$$". + + + Artefakt nebo hráè, který jej nese, je zobrazen na minimapì. Pokud je artefakt daleko, jeho polohu naznaèuje šipka na minimapì. + + + AC-96/2 má jedineèný dávkový režim støelby, pøi kterém dvì souèasnì vystøelené kulky zasáhnou stejné místo. + + + Dvouhlavòové brokovnice mohou oba náboje vystøelit témìø souèasnì. + + + Nepodceòuj pistole. Poskytují slušnou palebnou sílu a proti špatnì obrnìným cílùm mohou být velice efektivní. + + + Odstøelovací pušky jsou vzhledem ke své ploché trajektorii a pøesnosti ideální pro eliminaci nepøátel z dálky. Na malé vzdálenosti jejich efektivita klesá. + + + Zbranì a ochranné obleky se v tvrdých podmínkách Zóny rychle opotøebovávají. Opotøebované zbranì ztrácejí pøesnost a mohou selhat, obnošené obleky neposkytují tak dobrou ochranu. + + + Nìkteré zdravotnické produkty mají jedineèné vlastnosti. Napøíklad Herkulovy pilulky doèasnì zvyšují tvou nosnost a droga Stop-psí ti pomùže odolat psí-záøení + + + Pro vytvoøení snímku obrazovky stiskni "$$ACTION_SCREENSHOT$$". + + + Tip # + + + Vodka, levná náhražka antiradiaèních pøípravkù, je nejjednodušším zpùsobem snížení efektù ozáøení. + + + Podrobné informace o aktuální misi se zobrazí po stisknutí klávesy "$$ACTION_SCORES$$". + + + Na vyhledávání artefaktù potøebuješ detektor. Hledání je s pomocí nejlepších detektorù snazší a dokonce s nimi mùžeš najít více cenných artefaktù. + + + Stalkeøi nedovolí, aby do jejich táborù vstoupil kdokoliv se zbraní v ruce. Pro ukrytí své zbranì stiskni pøíslušnou klávesu ("$$ACTION_WPN_1$$", "$$ACTION_WPN_2$$", "$$ACTION_WPN_3$$", "$$ACTION_WPN_4$$"). + + + Okraje anomálií mùžeš odhalit pomocí házení šroubù. Šroub vytáhneš klávesou "$$ACTION_WPN_6$$". + + + Kromì zahnání hladu dokáže jídlo zlepšit zdravotní stav. + + + Energetické nápoje doèasnì zrychlují obnovování výdrže, což zvyšuje tvou potenciální pohyblivost. + + + Slabá výdrž mùže ochromit tvùj pohyb a v dùležitých okamžicích tì uèinit zranitelným vùèi útokùm nepøátel. + + + Svùj stupeò ukrytí mùžeš sledovat pomocí indikátorù detektoru hluku a nepøátel, které se nacházejí v levé horní èásti obrazovky. + + + Držení detektoru v jedné ruce nijak nebrání použití nože, pistole nebo šroubù ve druhé. + + + Nìkteré lékaøské produkty zvyšují odolnost tìla vùèi škodlivým látkám a živlùm. Užití tìchto produktù ti bìhem misí v oblastech anomálií mùže zachránit život. + + + Kontextovou nabídku k pøedmìtùm ve svém batohu mùžeš vyvolat umístìním kurzoru myši nad pøíslušný pøedmìt a stisknutím pravého tlaèítka myši. + + + Vìtšina artefaktù má, kromì svých užiteèných efektù, i radioaktivní úèinky. Tu mùžeš kompenzovat použitím artefaktù, které radiaci absorbují. + + + Nùž je proti nepøátelùm se støelnými zbranìmi neefektivní. Jeho využití tkví pøedevším v boji zblízka a v tichém zabíjení. + + + Zátìž, kterou neseš, snižuje tvou výdrž. Nadmìrná zátìž omezí tvou pohyblivost, a pokud budeš úplnì pøetížen, vùbec nebudeš schopen pohybu. + + + Detektor poskytuje jediný zpùsob vyhledávání artefaktù v oblastech anomálií. + + + Vìtšina artefaktù zùstává bìhem svého pohybu v oblastech anomálií neviditelná, dokud nejsou odhaleny detektorem. + + + Aktivita mutantù vzrùstá v noci, což vysvìtluje, proè stalkeøi pøed vstupem do zóny èasto vyèkávají do rozbøesku. + + + Pokud jsi byl vystaven velké dávce ozáøení, použij antiradiaèní drogy. Pokud žádné nemáš, použij léky pro vypoøádání se s poèáteèními symptomy, aby ses mohl dostat k lékaøi. + + + Vìtšina stalkerù tì dokáže provést po blízkém okolí, ale jen zkušený prùvodce tì mùže bezpeènì a rychle dovést do vzdálenìjších míst. Všichni prùvodci ti však dokáží poskytnout pomocnou ruku. + + + Prodej artefaktù není jediný zpùsob, jak se dostat k penìzùm. Výhodné mùže být i zbavování se nepotøebného vybavení. Mìj však na pamìti, že obchodníci vìtšinou nemají zájem o vážnì poškozené pøedmìty. + + + Pro odpojení tlumièe, zamìøovaèe nebo podvìšeného granátometu od své zbranì klikni pravým tlaèítkem na zbraò v batohu a z kontextové nabídky vyber pøíslušnou možnost. + + + Pokud se chceš pohybovat co nejtišeji, stiskni "$$ACTION_ACCEL$$" pro chùzi nebo "$$ACTION_CROUCH$$" pro pøikrèení. + + + Brokovnice patøí k zbraním pro boj zblízka. Èím je tvùj protivník vzdálenìjší, tím ménì je efektivní. + + + Pokud se kryješ pøed støelbou z ruèních zbraní, využij dostateènì pevných pøekážek. Plechy a døevìné desky neposkytují dokonalou ochranu, na rozdíl od betonových zdí. + + + Støely do hlavy mají za následek kritická zranìní a pro vìtšinu nepøátel jsou smrtelné. + + + Každý druh mutantù žijících v Zónì má vlastní zpùsoby boje. Pokud je vezmeš v úvahu, pravdìpodobnost pøežití se zvýší. + + + Délku hodu granátu mùžeš upravit podržením klávesy "$$ACTION_WPN_ZOOM$$". + + + Nepøátelé dokážou používat granáty a také je používají. Jakmile se objeví indikátor granátu, okamžitì opus smrtící oblast. + + + Pokud pøed skokem zrychlíš, dokážeš zdolat vìtší propasti a pøekážky. + + + Hlavní indikátory zobrazující tvùj zdravotní stav a výdrž se nacházejí v pravém dolním rohu obrazovky. + + + Zóna žije svým vlastním životem, což znamená, že i v oblastech, kterými už jsi prošel, mùžeš narazit na další mutanty a nepøátelské stalkery. + + + Pøi pobytu v Zónì se mìj stále na pozoru a nespoléhej na staré informace. Pokud se vrátíš do oblastí anomálií, které jsi už prozkoumal, mùžeš se stát, že døíve ovìøené cesty už nebudeš moci využít. + + + Hovory s bìžnými stalkery ti mohou poskytnout užiteèné informace o nových oblastech nebo aktuálních událostech. + + + Na obou pozicích pro zbranì mùžeš použít kteroukoliv ze zbraní. Díky tomu mùžeš vytváøet rùznorodé kombinace zbraní jako útoèná puška/brokovnice a pistole/odstøelovací puška. + + + Každý obchodník, kterého v rùzných táborech stalkerù potkáš, má unikátní nabídku zboží. Napøíklad zdravotníci vždy disponují kvalitním výbìrem lékaøských produktù. + + + Pokud do tábora stalkerù dorazíš zranìný nebo postižený radiací, mùžeš využít bezplatné pomoci místního zdravotníka. + + + Své vìci mùžeš zanechat v osobní schránce v táboøe, abys sebou nemusel vláèet nepotøebné vìci. + + + Pokud musíš èekat na konkrétní hodinu, pro zkrácení èasu si mùžeš zdøímnout v kempu. Staèí najít místo na spaní, stisknout "$$ACTION_USE$$" a nastavit, jak dlouho chceš spát. + + + Zaøízení pro noèní vidìní nacházející se na tvé helmì mùže být vylepšeno na verzi nové generace. Tím se výraznì zlepší jeho pokrytí. + + + Kdykoliv se vydáš do Zóny, nezapomeò si pøibalit pár zásobníkù navíc – nejspíš se ti budou hodit. + + + Nezapomeò svou hru pravidelnì ukládat – nebudeš tak muset hrát stejnou èást stále dokola. + + + Pokud chceš užívat léky správným zpùsobem, mìl bys vìdìt, k èemu jsou. Pro zjištìní efektu každého léku si pøeèti jeho popis. + + + K útoku na nepøátele v zákrytu mùžeš využít granátù. Nezapomeò vzít v úvahu oblast výbuchu, abys nezranil své spolubojovníky. + + + K odstranìní pøedmìtu ze svého batohu na nìj klikni pravým tlaèítkem a z kontextové nabídky vyber pøíslušnou možnost. + + + V možnostech hry mùžeš využít zvláštního nastavení, pomocí kterého se hra bude v dùležitých místech automaticky ukládat. + + + Jakmile se vrátíš do tábora, mìl bys opravit své vybavení, prodat nepotøebnou koøist a doplnit si munici a lékaøské zásoby. + + + K snížení škodlivých úèinkù anomálních oblastí bìhem výprav do Zóny použij ochranné obleky, artefakty nebo pøíslušné léky. + + + Kromì zbraní a munice u sebe mohou tìla nepøátel ukrývat cenné pøedmìty jako PDA zaøízení se zajímavými informacemi. + + + Artefakty nejsou jen cennou koøistí: kromì toho, že jsou lehké a drahé, mívají nìkdy až neuvìøitelnì užiteèné úèinky. + + + Vzhledem k prostøedí Zóny je mnoho mutantù radioaktivních. Pøiblížení se k nim bez pøimìøené ochrany proti radiaci je tak velice nebezpeèné. + + + K zastavení krvácení mùžeš použít obvaz, vojenský balík se zdravotními potøebami nebo lék "Vinostráz". Pokud rychle nezasáhneš, krvácení mùže vážnì poškodit tvé zdraví. + + + K nìkterým zbraním mùžeš namontovat nastavitelný zamìøovaè. Pro pøiblížení stiskni "$$ACTION_NEXT_SLOT$$" nebo "$$ACTION_PREV_SLOT$$". + + + Do nìkterých míst se nelze dostat ani po pøikrèení. Pokud se chceš skrèit co nejníže, stiskni a podrž souèasnì klávesy "$$ACTION_CROUCH$$" a "$$ACTION_ACCEL$$". + + + Pokud chceš snížit pravdìpodobnost, že tì zasáhne nepøítelova kulka, opìtuj palbu po naklonìní zpoza rohu pomocí klávesy "$$ACTION_LLOOKOUT$$" nebo "$$ACTION_RLOOKOUT$$". + + + Díky vestavìnému mechanismu pro lokalizaci cílù ti dalekohled neposkytuje jen dobrý pohled na vzdálené objekty, ale dokáže také najít nepøátele. Pro vytáhnutí dalekohledu stiskni "$$ACTION_WPN_5$$". + + + Pro zapnutí nebo vypnutí svítilny stiskni "$$ACTION_TORCH$$". + + + Pro vytáhnutí šroubu stiskni "$$ACTION_WPN_6$$". + + + Pokud máš na helmì pøipevnìno zaøízení pro noèní vidìní, zapnout nebo vypnout jej mùžeš pomocí klávesy "$$ACTION_NIGHT_VISION$$". + + + Pro použití pøíslušného pøedmìtu z panelu pro rychlý pøístup stiskni "$$ACTION_QUICK_USE_1$$", "$$ACTION_QUICK_USE_2$$", "$$ACTION_QUICK_USE_3$$" nebo "$$ACTION_QUICK_USE_4$$". + + + Léky nepùsobí okamžitì po jejich požití a nìkteré mají dlouhodobý úèinek. + + + Na svém PDA najdeš mapu, informace o aktuální misi, osobní statistiky a záznamník zpráv. PDA otevøeš stisknutím "$$ACTION_ACTIVE_JOBS$$". + + + Pøi vyhledávání artefaktù musíš vytáhnout svùj detektor, slouží k tomu klávesa "$$ACTION_SHOW_DETECTOR$$". + + + Pro pozastavení hry stiskni "$$ACTION_PAUSE$$". + + + Pro rychlé uložení hry stiskni "$$ACTION_QUICK_SAVE$$". Pro rychlé naètení poslední rychle uložené hry stiskni "$$ACTION_QUICK_LOAD$$". + + + Bìh je nejrychlejším zpùsobem pohybu, je však velice vysilující. Pro bìh stiskni "$$ACTION_SPRINT_TOGGLE$$". + + + Støelba po zamíøení je mnohem pøesnìjší než støelba od boku. Pro zamíøení stiskni "$$ACTION_WPN_ZOOM$$". + + + Pokud máš k dispozici podvìšený granátomet, pomocí klávesy "$$ACTION_WPN_FUNC$$" mùžeš volit mezi ním a klasickým režimem støelby. + + + Pokud máš více druhù nábojù do své souèasné zbranì, mùžeš mezi nimi volit pomocí klávesy "$$ACTION_WPN_NEXT$$". + + + Pro nabití zbranì ještì pøed vyprázdnìním zásobníku stiskni "$$ACTION_WPN_RELOAD$$". + + + Pro odložení své souèasné zbranì stiskni "$$ACTION_DROP$$". + + + Abys pøeèkal emisi, najdi si úkryt v bezpeèné budovì nebo v podzemí. Pokud se emise zaène pøibližovat, na tvém PDA se zobrazí pozice nejbližšího úkrytu. + + + Pro využití pøedmìtu v rámci pozice pro rychlý pøístup ho pøetáhni ze svého batohu na jednu ze ètyø pozic nad schránkami pro artefakty. + + + Symbol kapky krve v pravé spodní èásti obrazovky tì upozoròuje na krvácení a nutnost zastavit jej. Barva symbolu naznaèuje, jak je krvácení závažné. + + + Symbol nebezpeèného záøení v pravé dolní èásti obrazovky upozoròuje, že jsi byl vystaven radiaci. Pokud k tomu dojde, mìl bys využít antiradiaèních pøípravkù. Barva symbolu naznaèuje, jak závažné ozáøení je. + + + Pomocí filtrù mùžeš v mapì na svém PDA zobrazit a skrýt rùzné znaèky. Tlaèítka filtrù se nacházejí nad mapou, pod øádkem s aktuální misí. + + + Artefakty obvykle nejsou statické: èasto se v rámci anomálních oblastí pohybují. Nepromyšlené pokusy o získání artefaktu tì tak mohou okamžitì dostat do problémù. + + + Nìkteøí stalkeøi ti mohou nabídnout své služby, jakými jsou informace, exkluzivní zboží nebo poznámky k urèitým artefaktùm. + + + Nové artefakty se mohou objevit v anomálních oblastech, které jsi již prozkoumal. + + + V nastavení hry mùžeš kdykoliv zmìnit její obtížnost. + + + Technici v táborech stalkerù dokážou vylepšovat tvé zbranì, obleky a helmy. + + + Pokud chceš pøežít, neustále sleduj praskání vydávané Geigerovým poèítaèem varující pøed radiací a signál nebezpeèí anomálií, který tì upozorní, pokud se pøiblížíš k anomálii. + + + Tvùj vztah k lidem pøímo ovlivòuje cenu zboží a služeb, které chceš zakoupit. Pokud je tvùj vztah záporný, žádnou slevu neèekej. Pokud však s lidmi vycházíš dobøe, obchodník ti mùže uèinit zvláštní nabídku. + + + K získání nábojù mùžeš vyjmout zásobníky z nalezených zbraní. Staèí kliknou pravým tlaèítkem na zbraò v batohu a z kontextové nabídky zvolit pøíslušnou možnost. + + + Zabíjením nepøátel a získáváním artefaktù vydìláváš body potøebné ke zvýšení své hodnosti. Pøi zvýšení hodnosti získáš pøístup k novým zbraním, zbrojím a vybavení. + + + Kouøové granáty mùžeš využít k odcizení artefaktu nebo ke krytí. + + + Levá èást nákupní nabídky obsahuje pìt záložek: pistole, silnìjší zbranì, vybavení, munice a zdravotnický materiál. Po zvolení požadované záložky se zobrazí seznam vìcí, kterých se svou hodností mùžeš využít. + + + Nákupní nabídka v pravé èásti obrazovky obsahuje ètyøi pozice pro rychlý nákup. Kliknutím na ikonu disku vybavení uložíš, kliknutím na pøíslušné èíslo toto vybavení naèteš. Na ètvrtou pozici se automaticky ukládá poslednì nakoupené vybavení. + + + Pokud disponuješ více než jednou zbraní, mùžeš mezi nimi pøepínat opakovaným stisknutím "$$ACTION_WPN_3$$". + + + Artefakt mùže být aktivován a vytvoøit tak anomálii. Staèí vytáhnout artefakt stisknutím "$$ACTION_ARTEFACT$$" a podržením "$$ACTION_WPN_FIRE$$". Anomálie, která tak vznikne, je nebezpeèná jak pro nepøítele, tak pro hráèe, který ji vytvoøil. + + + Vìdecký oblek, který ti pomùže pøežít pøi anomáliích a v radioaktivních oblastech. + + + HON ZA ARTEFAKTY: K dosažení vítìzství musíš na svou základnu pøinést urèité množství artefaktù. + + + K odpojení tlumièe, zamìøovaèe nebo podvìšeného granátometu od své zbranì klikni pravým tlaèítkem na zbraò v batohu a z kontextové nabídky vyber pøíslušnou možnost. + + + Pokud se chceš pohybovat co nejtišeji, stiskni "$$ACTION_ACCEL$$" pro chùzi nebo "$$ACTION_CROUCH$$" pro pøikrèení. + + + Brokovnice patøí k zbraním pro boj zblízka. Èím je tvùj protivník dále, tím ménì je efektivní. + + + Pokud se kryješ pøed støelbou z ruèních zbraní, využij dostateènì pevných pøekážek. Plechy a døevìné desky na rozdíl od betonových zdí neposkytují dokonalou ochranu. + + + Støely do hlavy mají za následek kritická zranìní a pro vìtšinu nepøátel jsou smrtelné. + + + Zrychlený pohyb, skoky a zranìní výraznì snižují tvou výdrž. + + + Délku hodu granátu mùžeš upravit podržením klávesy "$$ACTION_WPN_ZOOM$$". + + + Nepøátelé dokážou používat granáty a také je používají. Jakmile se objeví indikátor granátu, okamžitì opus smrtící oblast. + + + SOUBOJ NA SMRT: K dosažení vítìzství získej nejvíce bodù. + + + Pokud pøed skokem zrychlíš, dokážeš zdolat vìtší propasti a pøekážky. + + + Hlavní indikátory zobrazující tvùj zdravotní stav a výdrž se nacházejí v pravém dolním rohu obrazovky. + + + Minimapa zobrazuje polohu artefaktu. Pokud šipka smìøuje nahoru, artefakt je nad tvou souèasnou pozicí; pokud šipka smìøuje smìrem dolù, nachází se pod tebou. + + + K získání více penìz mùžeš sbírat batohy nepøátel. Pøebyteèné vybavení mùžeš prodat na základnì. + + + Za každou cenu bys mìl krýt èlena svého týmu, který nese artefakt. + + + K útoku na nepøátele v zákrytu mùžeš využít granátù. Nezapomeò vzít v úvahu oblast výbuchu, abys nezranil své spolubojovníky. + + + Se svým týmem mùžeš komunikovat pomocí hlasových zpráv. Pro otevøení nabídky hlasových zpráv stiskni "$$ACTION_SPEECH_MENU_0$$" nebo "$$ACTION_SPEECH_MENU_1$$". + + + TÝMOVÝ SOUBOJ NA SMRT: K dosažení vítìzství musí tvùj tým získat více bodù než soupeø. + + + Hlasování mùžeš zahájit stisknutím klávesy "$$ACTION_VOTE_BEGIN$$". + + + Výsledky zobrazíš stisknutím klávesy "$$ACTION_SCORES$$". + + + Pro znovunarození po uplynutí èekací doby stiskni "$$ACTION_JUMP$$". + + + Pro otevøení nabídky nákupù v dobì pobytu na základnì stiskni "$$ACTION_BUY_MENU$$" + + + Veøejnou komunikaci spustíš stisknutím klávesy "$$ACTION_CHAT$$". Pro textovou komunikaci jen v rámci vlastního týmu stiskni "$$ACTION_CHAT_TEAM$$". + + + Bìh je nejrychlejším zpùsobem pohybu, je však velice vysilující. Pro bìh stiskni "$$ACTION_SPRINT_TOGGLE$$". + + + Støelba po zamíøení je mnohem pøesnìjší než støelba od boku. Pro zamíøení stiskni "$$ACTION_WPN_ZOOM$$". + + + Pokud máš k dispozici podvìšený granátomet, pomocí klávesy "$$ACTION_WPN_FUNC$$" mùžeš volit mezi ním a klasickým režimem støelby. + + + Pokud máš více druhù nábojù do své souèasné zbranì, mùžeš mezi nimi volit pomocí klávesy "$$ACTION_WPN_NEXT$$". + + + Pro nabití zbranì ještì pøed vyprázdnìním zásobníku stiskni "$$ACTION_WPN_RELOAD$$". + + + ZÍSKÁNÍ ARTEFAKTU: K dosažení vítìzství je nutné pøinést nìkolik nepøátelských artefaktù na svou základnu. + + + Pro odložení své zbranì stiskni "$$ACTION_DROP$$". + + + Pro nahlédnutí do svého batohu stiskni "$$ACTION_INVENTORY$$". + + + Vìtšina zbraní disponuje nìkolika režimy støelby. Pro pøepínání mezi nimi stiskni "$$ACTION_WPN_FIREMODE_NEXT$$" nebo "$$ACTION_WPN_FIREMODE_PREV$$". + + + Do nìkterých míst se nelze dostat ani po pøikrèení. Pokud se chceš skrèit co nejníže, stiskni a podrž souèasnì klávesy "$$ACTION_CROUCH$$" a "$$ACTION_ACCEL$$". + + + Pro nahlédnutí za roh stiskni "$$ACTION_LLOOKOUT$$" nebo "$$ACTION_RLOOKOUT$$". Pøi nahlížení za roh nemùžeš støílet. + + + ZÍSKÁNÍ ARTEFAKTU: Pro navrácení ukradeného artefaktu na svou základnu musíš zabít nepøítele, který jej nese, a odebrat mu jej stisknutím klávesy "$$ACTION_USE$$". + + + HON ZA ARTEFAKTY: Artefakt mùžeš znièit jeho aktivací. Vyndej artefakt pomocí "$$ACTION_ARTEFACT$$" a podrž "$$ACTION_WPN_FIRE$$". + + + Pøi nesení artefaktu nemùžeš bìhat. + + + Pro nahlédnutí do svého batohu stiskni "$$ACTION_INVENTORY$$". + + + Chceš-li opravit nìjaký pøedmìt, musíš nejprve najít technika, oznaèit daný pøedmìt v obrazovce modifikací a kliknout na tlaèítko Opravit. Když v téže obrazovce klikneš na pøedmìt pravým tlaèítkem, vyskoèí ti seznam dalších možných akcí. + + + Vìtšina zbraní má už v sériovém provedení nìkolik režimù palby. Další režimy si mùžeš pøidat modifikacemi. Pro pøepnutí mezi režimy støelby stiskni "$$ACTION_WPN_FIREMODE_NEXT$$" nebo "$$ACTION_WPN_FIREMODE_PREV$$". + + + Plochost dráhy urèuje trajektorii kulky. Ovládání urèuje, jak rychle zamìøovaèi trvá, než se po výstøelu vrátí do pùvodní pozice. + + + Nìkteré obleky mají i zabudované helmy. Ty není možné odebrat a použít s jinými obleky. + + + Každá zbraò má jinou pøesnost, ovládání, poškození i kadenci. Výbìr je veliký, staèí jen vybrat si tu, která ti nejlépe sedne. + + + Za chùze ti výraznì klesá pøesnost støelby. Pro lepší pøesnost se zastav nebo rovnou pøikrè. + + + Energetický drink ti doèasnì urychlí obnovu energie. Díky tomu vydržíš déle bìžet. + + + V režimu deathmatch mají hráèi neomezené množství munice. + + + Jedním z nejbìžnìjších úskalí zóny je radioaktivní záøení. Vystavíš-li se jeho silnému zdroji, ohrozíš své zdraví. Bez vhodné léèby mùžeš dokonce i zemøít. + + + Než vyrazíš na dlouhou výpravu, nezapomeò si nabrat spoustu jídla. Když máš totiž hlad, znaènì se ti zpomalí obnova výdrže. + + diff --git a/gamedata/configs/text/cze/ui_st_mm.xml b/gamedata/configs/text/cze/ui_st_mm.xml new file mode 100644 index 0000000..a7c84df --- /dev/null +++ b/gamedata/configs/text/cze/ui_st_mm.xml @@ -0,0 +1,936 @@ + + + + Sluneèno + + + Zataženo + + + Støední + + + Maximální + + + Vyšší + + + Nižší + + + Minimální + + + Noc + + + Deštivo + + + TYP HRY + + + Mistr + + + Zelenáè + + + Veterán + + + IKONY + + + MAPA + + + Návrat aktivací + + + Povolit hlasování + + + Èas anomálie (min) + + + Získání artefaktu + + + Prodleva artefaktu + + + Poèet artefaktù + + + Èas artefaktu + + + Navrácení artefaktu + + + Aut. vyvažování týmù + + + Aut. prohazování týmù + + + DOSTUPNÉ MAPY + + + Zrušit + + + CD klíè + + + ovìøit CD klíè + + + Klient + + + Založit + + + Nezranitelnost (s) + + + Ukazatel nezranitelnosti + + + Úmrtí + + + Dedikovaný + + + Seznam záznamù + + + Hráèovy statistiky + + + Nahrát záznam + + + Pøehrávání záznamù + + + Prázdné + + + Filtry + + + Vynucené obnovení (s) + + + Limit záøezù + + + Záøezy + + + Prodleva + + + Støelba do vlastních + + + Ukazatele spojencù + + + Jména spojencù + + + Plné + + + Režim + + + IP/hostitel:port + + + Internet + + + Pøipojit se + + + LAN + + + Naslouchat + + + Opakovat + + + Seznam map + + + Limit hráèù + + + Síová pøipojení + + + Bez anomálií + + + Nastavení + + + Heslo + + + Jméno hráèe: + + + Hráèi + + + Poèet hráèù + + + Internetový server + + + Rychlé obnovení + + + Zmìnit koeficient + + + Obnovit vše + + + Posily (s) + + + Nastavení obnovování + + + ZVOLENÉ MAPY + + + Server + + + Seznam serverù + + + Vlastnosti serveru + + + Info o serveru + + + Server + + + Jméno serveru + + + Nastavení serveru + + + Divák + + + Z první osoby + + + Volná kamera + + + Zamìøená na hráèe + + + Ze tøetí osoby + + + Nastavení pozorovatele + + + Pouze v týmu + + + Poèáteèní poèasí + + + Skóre + + + Èasový limit (min) + + + Zahøívací doba (s) + + + Nastavení poèasí + + + Bez pøát. palby + + + Bez hesla + + + Bez PunkBusteru + + + S heslem + + + LAN + + + Internet + + + Továrna Agroprom + + + Depo + + + Bazén + + + Jméno úspìšnì zmìnìno + + + Temné údolí + + + Továrna Jantar + + + chyba v pøipojení k serveru se statistikami + + + chyba v pøipojení k pøihlašovacímu serveru + + + Pøihlášení probìhlo úspìšnì + + + Opuštìná vesnice + + + Armádní sklady + + + špatné jméno + + + Bazén + + + Nádraží + + + Továrna Rostok + + + Toto jméno je již zabráno + + + Opravdu si pøeješ odstranit záznam + + + Rozboøená továrna + + + PING + + + HRÁÈÙ + + + Statické osvìtlení + + + Plnì dynamické osvìtlení + + + Vylepšené plnì dynamické osvìtlení + + + Dynamické osvìtlení objektù + + + Lepší plnì dyn. osvìtlení (DX10) + + + NÁZEV SERVERU + + + Lov artefaktù + + + Boj o artefakt + + + Všichni proti všem + + + Filtr: + + + Vyšší + + + Nižší + + + Støední + + + Vypnuto + + + Zkušený + + + Legendární stalker + + + Zelenáè + + + Profík + + + Veterán + + + Týmová hra + + + Frekvence 60 Hz + + + Akce + + + Podrobnosti + + + Alternativní + + + Anisotropní filtrování + + + Použít + + + Zpìt + + + Krev + + + Jas + + + Zrušit + + + Aktualizace + + + Kontrast + + + Ovládání + + + Autoøi + + + Vzdálenost zamìøovaèe + + + Výchozí + + + Smazat + + + Opravdu si pøeješ smazat tento soubor? + + + Hustota detailù trávy + + + Obtížnost + + + Odpojit se + + + Opravdu se chceš odpojit? + + + Dohled + + + Dynamický zamìøovaè + + + Dynamická hudba + + + EAX + + + Na celou obrazovku + + + Hra + + + Gamma + + + Detaily objektù + + + Pøevrátit myš + + + Klávesa + + + Nastavení klávesnice + + + Poslední uložená hra + + + Vzdálenost svìtel + + + Naèíst + + + Naèíst hru + + + Odhlásit se + + + Mistr + + + Hlasitost efektù + + + Citlivost myši + + + Vyhladit testovací objekty s alfou + + + Optimalizovat vyhlazování + + + Hra více hráèù + + + Hra více hráèù + + + Hlasitost hudby + + + Zmìny se projeví až po restartování hry. + + + Hra více hráèù + + + Nová hra + + + Zelenáè + + + Svítilny NPC + + + Nastavení + + + Nastavení + + + Vzdálenost èástic + + + Nastavení kvality + + + Zpìt do Windows + + + Ukonèit hru + + + Opravdu si pøeješ ukonèit hru? + + + Opravdu se chceš vrátit do Windows? + + + Detaily bump map + + + Strmé paralaxní mapování + + + Stíny vržené sluncem + + + Stíny trávy + + + Kvalita sluneèního svìtla + + + Používat DX10,1 + + + Vyhlazování celé obrazovky + + + Mokré povrchy + + + Optimalizovat geometrický buffer + + + Volumetrický kouø + + + Render 2 + + + Typ renderu + + + Rozlišení + + + Zpìt do hry + + + Uložit + + + Uložit hru + + + Zobrazit zamìøovaè + + + Zobrazit zbraò + + + Základní + + + Zvuk + + + Mìkké èástice + + + Mìkká voda + + + Zvuk + + + Kvalita zvuku + + + Stalker + + + Kvalita stínù + + + Sluneèní paprsky + + + Vyhlazování hran + + + Poèítaè používá svítilny + + + Detaily textur + + + Rozpoznávání NPC + + + Veterán + + + Obraz + + + Dohled + + + Volumetrická svìtla + + + Vertikální synchronizace + + + Zmìnit pøezdívku + + + Tuto e-mailovou adresu již používá nìkdo jiný + + + Pøes internet + + + Pøes místní sí + + + zrazen spojencem + + + na ztrátu krve + + + pøi výbuchu + + + do oka + + + do hlavy + + + Verze uloženého souboru neodpovídá verzi hry. + + + série záøezù + + + nùž + + + Poslední výzbroj + + + Pøidat se ke høe více hráèù + + + Jméno + + + Zmìnit + + + Výzbroj 1 + + + Výzbroj 2 + + + Výzbroj 3 + + + Vynulovat + + + Prodat vše + + + VERZE + + + Pripja + + + Pøikrèení/stání + + + Automatické ukládání + + + Detailní textury + + + Záznamy + + + Vstoupit + + + Odejít + + + Založit + + + Špatný e-mail nebo heslo + + + Nesprávný profil + + + Chyba pøipojení + + + Server momentálnì není dostupný + + + Je nutné se pøihlásit + + + Chyba pøipojení + + + Chyba pøipojení + + + Chyba pøipojení + + + Špatný název profilu + + + Nesprávné heslo + + + Nesprávná pøezdívka + + + Tato pøezdívka je již zabraná + + + Nejprv se pøihlas ke svému profilu + + + Nejprv se odhlas od svého profilu + + + Chyba pøipojení k profilovému serveru + + + Profil už není možné po založení smazat + + + Kvalita SSAO + + + Režim SSAO + + + Výchozí + + + HDAO + + + HBAO + + + Zobrazit rozhraní + + + Zadaná pøezdívka není registrovaná. Zaregistruj si ji. + + + Zadaná pøezdívka vypršela. Zaregistruj si ji. + + + Stalker + + + max. výška + + + Vylepšené plnì dyn. osvìtlení (DX11) + + + Pøed pøipojením k externímu serveru se musíš pøihlásit + + + Tento úèet GameSpy je momentálnì používán. Pøihlas se prosím k jinému úètu. + + + Špatný e-mail + + + Nesprávné heslo + + + Na místním serveru nemùžeš používat úèet GameSpy. Použij režim hry po místní síti (LAN). + + + Server tì vylouèil ze hry. + + + Administrátor ti zakázal pøístup. + + + Server ti zakázal pøístup. + + + Informace o serveru + + + Zadaná e-mailová adresa je pøíliš dlouhá. Nemùžeš zadat více než 50 znakù. + + + Špatný e-mail + + + Heslo je pøíliš krátké + + + Heslo je pøíliš douhé + + + E-mail nenalezen + + + Nezadána pøezdívka + + + Pøezdívka je pøíliš dlouhá. Nemùžeš zadat více než 30 znakù. + + + Pøezdívka smí obsahovat pouze èísla, písmena latinské abecedy a následující speciální symboly: "#$&'()*+-./:;<=>?@[]^_`{|}~ + + + Pøezdívka nesmí obsahovat mezery + + + Pøezdívka nesmí zaèínat èíslem ani žádným z následujících symbolù: '@', '+', ':' or ‘#’ + + + velmi vysoké + + + Teselace + + + Použít zmìny? Zmìny budou zrušeny za + + diff --git a/gamedata/configs/text/cze/ui_st_mp.xml b/gamedata/configs/text/cze/ui_st_mp.xml new file mode 100644 index 0000000..41c443b --- /dev/null +++ b/gamedata/configs/text/cze/ui_st_mp.xml @@ -0,0 +1,741 @@ + + + + Artefakt + + + Spojenec + + + Maximální ping + + + Profil + + + Režimy + + + Artefakt byl znièen. + + + Na mapì se objevil artefakt. Pøines ho na základnu a získej tak body. + + + Artefakt byl ztracen. + + + Artefakt je na naší základnì. + + + Artefakt je na nepøítelovì základnì. + + + Artefakty + + + Artefakty + + + Automaticky + + + Zpìt + + + 4. Zakázat pøístup + + + Anomálií + + + Zrušit + + + získává artefakt + + + 5. Zmìnit mapu + + + 6. Zmìnit poèasí + + + Zmìnit poèasí na + + + Chat + + + Pøipojeno + + + Úmrtí + + + Popis + + + Odpojeno + + + Zadej popisku k hlasování + + + se pøidává ke høe + + + Požárnická stanice + + + (Pohled z první osoby) + + + Záøezy + + + Záøezy + + + (Volná kamera) + + + (Pohled ze tøetí osoby) + + + z + + + 7. Režim + + + Smetištì + + + KUPØEDU! + + + ztrácí%s artefakt + + + ztrácí artefakt + + + má%s artefakt + + + Žoldáci + + + je nyní + + + se pøipojuje + + + 3. Vylouèit + + + Limansk + + + Naèítám tvá ocenìní... + + + Naèítám tvé záznamy... + + + (Volná zamèená) + + + Popis mapy + + + Hra zaèíná! + + + Stará vesnice + + + Režimy + + + Jméno + + + Další + + + Nehlasoval + + + PING + + + %s vyhrává zápas! + + + Hráèi + + + Tlaèítkem pro støelbu se pøepneš do režimu diváka + + + Tlaèítkem pro skok si koupíš okamžité obnovení + + + Tlaèítkem pro skok si zvolíš vzhled + + + Tlaèítkem pro skok si zvolíš tým + + + Tlaèítkem pro skok se umístíš na mapu + + + Tlaèítkem pro skok spustíš hru + + + Stiskem ($$ACTION_BUY_MENU$$) vyvoláš nabídku nákupu + + + Máš %d $. Za %d$ se mùžeš obnovit. Chceš-li hrát, stiskni Ano. + + + Pøipraven... + + + Opravna + + + 1. Restartovat + + + 2. Rychlý restart + + + vrací artefakt + + + získává bod + + + Zvol hráèe, o jehož zákazu se má hlasovat + + + Zvol kategorii hlasování + + + Zvol hráèe, o jehož vylouèení se má hlasovat + + + Zvol hráèe, o jehož vylouèení se má hlasovat + + + Zvol mapu, o níž se má hlasovat + + + Zákaz bìhu s artefaktem + + + - Poèet + + + - Životnost + + + - Doba obnovy + + + Anomálie + + + Frekvence anomálií + + + Kdykoliv + + + Získán artefakt + + + Artefakty: + + + Aut. vyvažování týmù + + + Aut. prohazování týmù + + + BattlEye + + + Vypnuto + + + Zapnuto + + + - Z první osoby + + + Vynucené obnovování + + + Omezení záøezù + + + - Volný let + + + - Volný pohled + + + Palba do vlastních + + + Ukazatele spojencù + + + Jména spojencù + + + Nekoneèné + + + Neviditelnost: + + + - Ukazatele + + + - Trvání + + + - Ze tøetí osoby + + + Opakování map + + + Maximální ping + + + min + + + Ne + + + Obnovení po + + + Vracení hráèù na základnu + + + s + + + Název serveru + + + Zaštítìné základny + + + Divácké režimy: + + + - Pouze v týmu + + + Èasový limit + + + Verze + + + Hlasování + + + Zahøívací doba + + + Ano + + + Volba vzhledu + + + Diváci + + + Diváci + + + Sportovní støedisko + + + Stav + + + pøechází na stranu + + + Svoboda + + + Volba týmu + + + Vyhrává tým %s! + + + Text + + + Èasu do obnovení: + + + Èasu do zaèátku: + + + Zbývající èas: %d:%d; Dohodnuto: %.2f + + + Výcvikový tábor + + + Hlasovat PRO-[$$ACTION_VOTE_YES$$]\nHlasovat PROTI-[$$ACTION_VOTE_NO$$]\nVýsledky -[$$ACTION_VOTE$$] + + + Ne + + + Ano + + + Hlasoval + + + Ne + + + Ano + + + Hlasování zrušeno serverem! + + + Hlasování '%s' vyvoláno hráèem %s. + + + Hlasování zaèalo! + + + 1. Sluneèno + + + 4. Zataženo + + + 3. Noc + + + 2. Deštivo + + + Zrada! + + + Do hlavy! + + + Máš nepøátelský artefakt, teï jej dones k tomu vašemu! + + + Máš artefakt. Aktivuj ho a vra se na základnu. + + + Tvá momentální hodnost je + + + To jsi ty + + + Na tomto serveru se nedá hlasovat. + + + Žádná aktivní hlasování + + + V jednu chvíli mùže být aktivní jen jedno hlasování. + + + Pøipraven + + + Všem + + + Týmu + + + Hlasování neprošlo! + + + Hlasování prošlo! + + + Základna Svobody + + + Základna žoldákù + + + 2. Lov artefaktù + + + 4. Boj o artefakt + + + 1. Všichni proti všem + + + Vytvoøit nový profil + + + Stahuji hráèské profily + + + Vítej + + + Pøipojuji se k profilu... + + + Profil vytvoøen. Teï se k nìmu prosím pøipoj. + + + Ovìøuji dostupnost jména... + + + Opravdu si pøeješ použít existující profil pod jménem + + + Úèet nalezen. Stahuji registrované profily... + + + Jeden profil už máš. Pøipoj se prosím k nìmu. + + + Ovìøuji úèet... + + + Toto jméno je již zabrané. Zvol si prosím nìkteré z následující nabídky, nebo napiš nové. + + + Hesla nejsou stejná! + + + 3. Týmová hra + + + Zkopírovat odkaz + + + Naèíst mapu + + + Popis + + + Špatná nebo poškozená mapa + + + Mapa nenalezena + + + Ocenìní + + + Záznamy + + + Ovìøit + + + Potvrdit heslo + + + E-mail + + + Zapomenuté heslo? + + + Vytvoøení profilu GameSpy + + + Heslo + + + Pamatovat + + + Unikátní jméno + + + Jméno úspìšnì zmìnìno na + + + Tým + + + Svoboda + + + Žoldáci + + + Nový profil + + + Ovìøení úètu GameSpy + + + pøehrát + + + pøetoèit + + + restartovat + + + na zaèátek + + + k zabití + + + k úmrtí + + + k získání artefaktu + + + ke ztrátì artefaktu + + + k pøinesení artefaktu + + + libovolný + + + Pøihlásit se + + + Screenshoty všeho + + + Nastavení všeho + + + Maximální ping: + + + Maximální ping: + + + Zobrazit zvoleného hráèe + + + Nastavení zvol. hráèe + + + Vylouèit zvoleného hráèe + + + Zakázat hráèi pøístup + + + Restartovat + + + Rychlý restart + + + Zmìnit poèasí + + + Rychlost zmìny poèasí + + + Zmìnit typ hry + + + Zmìnit nastavení hry + + + Pøerušit aktivní hlasování + + + Èasový limit (0, 180) + + + Max. záøezù (0, 1000) + + + Max. artefaktù (0, 100) + + + Zahøívací doba (0, 3600) + + + Ochr. po obn. (0, 60 CTA) + + + Ochr. po obn. (0, 600 T/DM) + + + Doba obnovení (-1, 3600) + + + Neznámá chyba profilu (kód 4) + + + 10 minut + + + 30 minut + + + 1 hodina + + + 6 hodin + + + 1 den + + + 1 týden + + + 1 mìsíc + + + 3 mìsíce + + + Natrvalo + + + Pøezdívka je pøíliš krátká + + + Chyba profilu + + diff --git a/gamedata/configs/text/cze/ui_st_other.xml b/gamedata/configs/text/cze/ui_st_other.xml new file mode 100644 index 0000000..c34666e --- /dev/null +++ b/gamedata/configs/text/cze/ui_st_other.xml @@ -0,0 +1,501 @@ + + + + Zrušit + + + Ne + + + OK + + + Ano + + + Špatný + + + Nepøítel + + + Výborný + + + Zkušený + + + Spojenec + + + Mapa Zóny + + + Dobrý + + + Nevyhranìný + + + Mistr + + + Bonus za PDA + + + V jednu chvíli mùže být aktivní jen jedno hlasování. + + + Neutrální + + + Zelenáè + + + Hra + + + Použil jsi + + + Úroveò + + + Naèítám objekty AI + + + Server: naèítám simulátor A-life + + + Naèítám CFORM + + + Naèítám detaily + + + Naèítám geometrii + + + Naèítám uloženou hru + + + Naèítám sektory a portály + + + Naèítám shadery + + + Naèítám prostorovou databázi + + + Naèítám textury + + + Pøímé IP + + + Žádné aktivní úkoly + + + Nemáš dost penìz + + + Tato postava nemá dost penìz + + + Otevírám stream + + + Ukládám objekty do vyrovnávací pamìti + + + rublù + + + SERVER: Pøipojuji se + + + SERVER: Spouštím + + + Ovìøuji CD klíè + + + Obraz + + + Hrozný + + + Opravit + + + Na svém PC nemùžeš spustit render 2 + + + Frakce + + + Chyba pøipojení: tvùj CD klíè není povolen. Obra se na zákaznickou službu. + + + Chyba pøipojení: tvùj CD klíè již používá jiný hráè + + + Chyba pøipojení: neplatný CD klíè + + + Chyba pøipojení: špatný hostitel + + + Chyba pøipojení: špatné heslo + + + Ke stažení je nový patch.\n Verze: %s\n Umístìní: %s\nPøeješ si ho teï stáhnout? + + + Žádné nové patche nejsou k dispozici. + + + Chyba pøipojení: server zamítl pøipojení + + + Chyba pøipojení: server je plný + + + Chyba pøipojení: rozdílné verze + + + Pøipojuji se k hlavnímu serveru + + + Dní + + + Chyba + + + Chyba pøi naèítání + + + Soubor s tímto názvem již existuje. Pøeješ si jej pøepsat? + + + Soubor nemá jméno + + + Hodiny + + + Odpojeno ochranným systémem BattleEye. Dùvod: + + + Odpojeno. Dùvod: + + + Odejít + + + Naètením této hry pøijdeš o neuložená data. Pokraèovat? + + + min + + + Mìsíce + + + Batoh + + + Parametry + + + Patch se nepodaøilo stáhnout. + + + Stahování patche dokonèeno. Pøeješ si jej nainstalovat? + + + Cena + + + Hodnost + + + Postoj + + + Reputace + + + s. + + + Zvol alespoò jednu mapu + + + Sebrat vše + + + Zbývá + + + Hlasování neprošlo + + + Opravdu si pøeješ odejít ze hry? + + + Celkem + + + velmi špatné + + + velmi dobré + + + Veterán + + + Opravit + + + Opravit zvolený pøedmìt + + + ... + + + pøesun v rámci oblasti + + + pøesun ze Zatonu do Janova + + + pøesun ze Zatonu do Pripjati + + + pøesun z Janova do Zatonu + + + pøesun z Janova do Pripjati + + + pøesun z Pripjati do Zatonu + + + pøesun z Pripjati do Janova + + + pøesun z Pripjati do X8 + + + pøesun z X8 do Pripjati + + + emise + + + zaèátek hry + + + pøíchod na Skadovsk + + + Prùzkum Rejnoka 1 + + + Prùzkum Rejnoka 2 + + + Prùzkum Rejnoka 3 + + + Prùzkum Rejnoka 4 + + + Prùzkum Rejnoka 5 + + + cesta na náhorní plošinu + + + pøíchod do Janova + + + nalezena cesta do Pripjati + + + pøidává se Zulu + + + Váòo splácí dluh + + + pøidává se Váòo + + + nalezena anomální rostlina + + + pøidává se Sokolov + + + Tulák odchází + + + utvoøeno družstvo + + + pøíchod k nadchodu + + + pøíchod do Pripjati + + + nalezena armáda + + + získána neidentifikovaná zbraò + + + nalezeni prùzkumníci + + + dorazily posily + + + „anténa“ prozkoumána + + + nalezen chybìjící záznam + + + zabit kontrolor poblíž hlídky + + + vstup do testovací dílny + + + nalezena dokumentace ke Gaussovì pušce + + + nalezen mrtvý bojovník + + + vstup do školky + + + zachránìn zdravotník + + + obnoven kontakt s velitelstvím + + + zahájena evakuace Pripjati + + + pøíchod k evakuaèním vrtulníkùm + + + evakuace dokonèena + + + detektor mutantù + + + výkupné zaplaceno + + + rukojmí osvobozen + + + mìøení anomálie Spáleništì + + + mìøení anomálie Rákosí + + + pelech upírù + + + poslán do Kopaèi + + + pøíchod k èistièce odpadù + + + nájezd na stalkery + + + ve skrýši nalezen kontejner + + + hon na chiméru + + + nalezena Oáza + + + zahájena Operace jeden výstøel + + + hledání zdroje psionického záøení + + + administrativní dokumenty + + + pøístup k nádražní dílnì + + + kšeft u lovecké stanice + + + skladištì Povinnosti + + + nalezen zdroj podivného záøení + + + Zulus nalezen + + + nebezpeèná jeskynì + + + Opravy a modifikace + + + Koupit + + + Prodat + + + Obchod + + + Zavøít okno ($$ACTION_USE$$) + + + Otevøít okno obchodu ($$ACTION_SPRINT_TOGGLE$$) + + + Otevøít okno oprav a modifikací ($$ACTION_SPRINT_TOGGLE$$) + + + Pøesunout všechny pøedmìty do batohu ($$ACTION_SPRINT_TOGGLE$$) + + + Koupit zvolené pøedmìty + + + Prodat zvolené pøedmìty + + + start evakuaèní helikoptéry + + diff --git a/gamedata/configs/text/cze/ui_st_pda.xml b/gamedata/configs/text/cze/ui_st_pda.xml new file mode 100644 index 0000000..1f895c2 --- /dev/null +++ b/gamedata/configs/text/cze/ui_st_pda.xml @@ -0,0 +1,279 @@ + + + + Èas + + + Svobodný stalker + + + Armáda + + + Bandita + + + Povinnost + + + Vìdec + + + Vedlejší mise + + + Skrýše + + + Svoboda + + + Žoldák + + + Záznam mise + + + Monolit + + + Mutant + + + Duben + + + Srpen + + + Prosinec + + + Únor + + + Leden + + + Èerven + + + Èervenec + + + Bøezen + + + Kvìten + + + Listopad + + + Øíjen + + + Záøí + + + Deaktivovat PDA + + + Záznam zpráv + + + Zobrazit historii zpráv + + + Mapa oblasti + + + Zobrazit mapu zóny a záznam mise + + + Statistiky + + + Zobrazit osobní statistiky + + + Aktuální èas: + + + Filtr dat + + + Zobrazit novinky + + + Zobrazit rozhovory + + + Legenda + + + Èas v Zónì: + + + Pøeèkané emise: + + + Dokonèené mise: + + + Zabito mutantù: + + + Zabito stalkerù: + + + Nalezeno artefaktù: + + + Nalezeno skrýší: + + + Oblíbená zbraò + + + Nejsilnìjší zabitý mutant + + + Místo: + + + Cíl + + + Vedlejší mise + + + Nepøátelé + + + Spojenci + + + Vùdce frakce + + + Hlavní mise + + + Neutrální + + + Prùvodce + + + Skrýše + + + Velitel družstva + + + Obchodník + + + Stalker + + + Záznam zpráv + + + Vystøedit na hráèe + + + Dolù + + + Doleva + + + Zobrazit legendu + + + Doprava + + + Nahoru + + + Maximální oddálení + + + Pøiblížit + + + Oddálit + + + Ocenìní + + + Vystøedit na misi + + + Vystøedit na misi + + + Zombie + + + mìøítko + + + + mìøítko - + + + Technik + + + Zdravotník + + + Aktivní mise + + + Zobrazit/skrýt mise + + + Osobní skøíòka + + + Zaton + + + Okolí Jupiteru + + + Pripja + + + Pripja 1 - nadchod + + + Laboratoø X8 + + + Oblasti + + + Dùležité pøedmìty + + + Oblast + + + Skenery detekovaly tyto artefakty: + + + Skenery nedetekovaly žádné artefakty. + + + Skrýš + + + Prostor na spaní + + diff --git a/gamedata/configs/text/cze/ui_st_screen.xml b/gamedata/configs/text/cze/ui_st_screen.xml new file mode 100644 index 0000000..b5e3b7d --- /dev/null +++ b/gamedata/configs/text/cze/ui_st_screen.xml @@ -0,0 +1,348 @@ + + + + Otevøít osobní skøíòku ($$ACTION_USE$$) + + + Jsi tak vyèerpaný, že ani nemùžeš chodit + + + Jsi tak pøetížený, že ani nemùžeš chodit + + + Otevøít dveøe ($$ACTION_USE$$) + + + Mluvit ($$ACTION_USE$$) + + + Prohledat tìlo ($$ACTION_USE$$) + + + Prohledat tìlo ($$ACTION_USE$$)\nOdtáhnout tìlo (SHIFT+$$ACTION_USE$$) + + + Dokonèena mise: + + + Nesplnìna mise: + + + Získán pøedmìt: + + + Získány peníze: + + + Nová mise: + + + Odebrán pøedmìt: + + + Odeèteny peníze: + + + Zrušena mise: + + + Aktualizována mise: + + + Zasekla se ti zbraò. Musíš znovu nabít. + + + Prohledat skøíòku ($$ACTION_USE$$) + + + Sebrat pøedmìt ($$ACTION_USE$$) + + + Prohledat letadlo ($$ACTION_USE$$) + + + Dveøe jsou zaseknuté + + + Dveøe jsou zamèené zevnitø + + + Trezor je zamèený + + + Potøebuješ kód + + + Zadat kód ($$ACTION_USE$$) + + + Utrhnout rostlinu ($$ACTION_USE$$) + + + Nastavit skener ($$ACTION_USE$$) + + + Sebrat skener ($$ACTION_USE$$) + + + Potlaèovaè agrese „Duha“\nModel vnìjšího ozaøovacího komplexu\nMìøítko 1:20 + + + Zapnout vypínaè ($$ACTION_USE$$) + + + Prozkoumat pøístroj ($$ACTION_USE$$) + + + Umístit nálož ($$ACTION_USE$$) + + + Pøivést ke smyslùm ($$ACTION_USE$$) + + + Výtah není pod proudem + + + Aktivovat generátor ($$ACTION_USE$$) + + + Spát + + + Teï nemùžeš spát! Nebezpeènì krvácíš a máš kritickou hladinu ozáøení. Použij léèiva, nebo se obra na zdravotníka. + + + Teï nemùžeš spát! Nebezpeènì krvácíš. Použij léèiva, nebo se obra na zdravotníka. + + + Teï nemùžeš spát! Máš kritickou hladinu ozáøení. Použij léèiva, nebo se obra na zdravotníka. + + + Spát ($$ACTION_USE$$) + + + Získáváš ocenìní „Nezaujatý“. + + + Získáváš ocenìní „Machr pøes zbranì“. + + + Získáváš ocenìní „Detektiv“. + + + Získáváš ocenìní „Diplomat“. + + + Získáváš ocenìní „Pøítel Povinnosti“. + + + Získáváš ocenìní „Pøítel Svobody“. + + + Získáváš ocenìní „Pøítel stalkerù“. + + + Získáváš ocenìní „Posel spravedlnosti“. + + + Získáváš ocenìní „Hi-tech profík“. + + + Získáváš ocenìní „Pøekupník informací“. + + + Získáváš ocenìní „Strážce tajemství“. + + + Získáváš ocenìní „Šéf“. + + + Získáváš ocenìní „Vùdce“. + + + Získáváš ocenìní „Lovec mutantù“. + + + Získáváš ocenìní „Jeden z nás“. + + + Získáváš ocenìní „Prùzkumník“. + + + Získáváš ocenìní „Vìdecký pracovník“. + + + Získáváš ocenìní „Hledaè artefaktù“. + + + Získáváš ocenìní „Ostøílený stalker“. + + + Získáváš ocenìní „Solventní klient“. + + + Automatické ukládání... + + + Teï už mùžeš vytasit zbraò. + + + Zámek na kód ($$ACTION_USE$$) + + + Za vyøešení záhady ztracených stalkerù byly do tvé osobní skøíòky na Skadovsku vloženy zdravotnické potøeby. + + + Za pomoc Povinnosti byl do tvé osobní skøíòky na Janovì umístìn univerzální ochranný odìv PS5-M. + + + Za pomoc Povinnosti byla do tvé osobní skøíòky na Janovì umístìna služební zbroj Povinnosti, model PSZ-9d. + + + Za pomoc Svobodì byla do tvé osobní skøíòky na Janovì umístìna zbroj „Vítr Svobody“. + + + Za pomoc Svobodì byla do tvé osobní skøíòky na Janovì umístìna zbroj Svobodné gardy. + + + Nepodaøilo se ti vèas dojít k vrtulníkùm a evakuaèní družstvo odletìlo ze Zóny bez tebe. + + + Jsi pøipraven odletìt ze Zóny? Nebudeš se moct vrátit. + + + Konec hry. + + + Stiskem ($$ACTION_JUMP$$) se vrátíš do hlavní nabídky. + + + Pauza + + + Hra uložena + + + Za pomoc pøi odhalení Strakáèe byl do tvé osobní skøíòky na Skadovsku umístìn artefakt. + + + Musíš poèkat, než se dveøe neprodyšnì uzavøou. + + + Pøístup povolen + + + Vyjeï výtahem nahoru ($$ACTION_USE$$) + + + Vyjeï výtahem dolù ($$ACTION_USE$$) + + + Kritická úroveò psionického záøení. Neprodlenì odejdi z nebezpeèné oblasti. + + + Nebezpeèná hladina radiace. Bez ochrany se dál nedostaneš. + + + Prozkoumat vrtulník ($$ACTION_USE$$) + + + Prohledat skrýš ($$ACTION_USE$$) + + + h. + + + Zpráva + + + Dveøe jsou zablokované + + + Zavøít dveøe ($$ACTION_USE$$) + + + Dveøe jsou zamèené - byl vyhlášen poplach + + + Dveøe jsou zamèené - nejdøív schovej zbraò + + + Dveøe jsou zamèené + + + Dveøe nejsou pod proudem + + + Otevøít dveøe ($$ACTION_USE$$) + + + Brána je zablokovaná + + + Použít pøístupovou kartu ($$ACTION_USE$$) + + + Je zapotøebí pøístupová karta + + + Tyto dveøe se nedají otevøít z této strany + + + - + + + Kontejner je zamèený. K odemèení budeš potøebovat dva klíèe. + + + Použít klíè ($$ACTION_USE$$) + + + Použít klíèe ($$ACTION_USE$$) + + + Kontejner je zamèený. K odemèení budeš potøebovat ještì druhý klíè. + + + Otevøít kontejner ($$ACTION_USE$$) + + + Mechanismus dveøí je zablokován zevnitø. + + + Pøipojit nádrž ($$ACTION_USE$$) + + + Pozor! Chemické nebezpeèí! + + + Otoèit ventilem ($$ACTION_USE$$) + + + Prohledat auto ($$ACTION_USE$$) + + + Až budeš potøebovat doplnit zdravotnické potøeby nebo munici, stav se u poruèíkù Rogovce a Kirilova. + + + V Zónì nedávno došlo k emisi. + + + Získáváš ocenìní „Poznamenán Zónou“. + + + Za pomoc pøi likvidaci nebezpeèných mutantù byly do tvé osobní skøíòky v Janovì vloženy náboje. + + + Získány souøadnice skrýše, kterou už jsi objevil døíve. + + + Nalezena skrýš + + + Získány souøadnice skrýše + + + Pokraèuj stiskem libovolné klávesy + + diff --git a/gamedata/configs/text/eng/st_achievement.xml b/gamedata/configs/text/eng/st_achievement.xml new file mode 100644 index 0000000..98d72fd --- /dev/null +++ b/gamedata/configs/text/eng/st_achievement.xml @@ -0,0 +1,372 @@ + + + + Your enemy must feel humiliated after being killed by you ten times in a row and failing to kill you even once during this time! You are not cruel, though - you're just giving him a reason to keep practicing. + + + Time to Reap + + + You're deadly! Killing two birds with one stone... You skewered them both with your Gauss rifle. + + + Skewer + + + Your calm and calculating approach brings a swift death to the enemy, as you expertly hit two targets with two shots of your double-barreled shotgun in the space of a couple of seconds. + + + Two shots, two kills. + + + You obviously know what being a stalker is all about, which is why you're become the number one legendary stalker! + + + Social Climber + + + Cutting through an exoskeleton with a knife? It looks like you’re the kind who likes to cut right down to the bone. + + + Tin Opener + + + They thought they had you, but you showed them who's boss by killing five of them, despite knock'in on death's doorstep yourself! + + + Die Hard + + + What an adrenalin rush! You annihilated your enemy with a hail of bullets - 5 kills in five seconds! Sweet! + + + Unbridled Rage + + + Wow, great aim! You got two for the price of 1 by shooting the enemy in the eye without dying. + + + Eye Specialist + + + Let them hide behind corners and lay their ambushes - that won't stop you. Hell, you can hit a target on the move without even aiming! + + + Lightning Reflexes + + + Let him run as fast as he can - your bullets will catch him either way. + + + Stop the Runner + + + You have slaughtered twenty enemies in a row without dying! Wow, what a bloodbath! + + + Massacre + + + There may have been three of them and they may have had sniper rifles, but your skill put an end to them. + + + Most Accurate Shooter + + + You don't need to fire a single round to outwit the barbarians. + + + Peace Messenger + + + Distance is not a problem for a real sniper! You can hit the bull's eye at distances over 120 meters. + + + Deadly Accuracy + + + Your enemy got you down, but you left him a nice surprise with that live grenade! + + + Something to Remember You By + + + They killed your friends and they deserve your unleashed vengeance. Three enemy corpses for three dead friends - that's justice. + + + Avenger + + + You are your friend's guardian angel. You saved him twice from an attack since he was carrying the artifact. + + + Cherub + + + You kept your honor and your team's by putting some points on the board. + + + Keeping Your Honor + + + Do you really know where the next artifact will show up? Well, you picked it up in a matter of seconds when it appeared! + + + Stalker's Intuition + + + You got lucky there - you killed the enemy with the last bullet in your clip! Better them than you, that's for sure! + + + Lucky Bastard + + + You killed eight enemies in a row. You've drawn a line in the sand - let's see if they're willing to cross it. + + + Blacklist + + + Nobody killed you because you're careful and cautious. You didn't die once during the game and scored over fifteen points. + + + Paranoia + + + You do your work without attracting attention by always using a silencer. Why let the enemy know the direction of death? + + + Silent Death + + + You destroyed your enemy by winning and scoring twice as many points as their leading scorer. + + + Overwhelming Superiority + + + Your bold plan to instantly capture the artifact was successful and within the first three minutes of the game you scored for your team. + + + Blitzkrieg + + + You annihilated the enemy without giving up a single artifact. That’ll show them what real team work is all about. + + + Shutout! + + + You scored highest in every area by getting the most kills, the most artifacts and dying the least! Keep it up! + + + All-rounder + + + Your blade skills are unrivaled! You gutted three enemies in twenty seconds, showing off your hand skills. + + + Fury + + + Every enemy has a weakness, and you found it shooting him in the eye with your sidearm. + + + Achilles' Heel + + + The enemy's bullets are powerless against you. You walk through them without a scratch and moe the enemy down! + + + Faster Than Bullets + + + You’re willing to research the most recent developments in the Zone. You have advanced our understanding of the Zone by finding new anomalous formations previously unknown to science. + + + Pioneer + + + Stalkers think more of you now.\nIn appreciation of your efforts, stalkers have taken to leaving ammo in your personal box at Yanov station. + + + You don’t try to avoid dangerous mutants - you hunt them down and do it well. Good hunters are held in high esteem among stalkers. + + + Mutant Hunter + + + Stalkers think more of you now.\nAs a sign of respect, stalkers have taken to leaving medical supplies in your personal box at Skadovsk. + + + You uncovered the secret behind stalker disappearances at Skadovsk: the guilty party weren’t mutants after all, but a far more dangerous foe - man. Your successful pursuit of the truth has earned you the respect of stalkers. + + + Detective + + + Stalkers think more of you now.\nStalkers have asked Owl the trader to give you a discount. \nBeard is now offering you his best prices for artifacts. + + + You showed the bandits and their leader, Sultan, who’s boss, thus making you a popular man among stalkers. You’re always welcome at Skadovsk. + + + One of Ours + + + You have earned the respect of bandits.\nOwl the trader has given you a discount out of fear that he may be your next victim. \nAs agreed, Beard will now pay you a cut of his proceeds. + + + You helped Sultan outmaneuver the stalkers and take Beard’s business under your control. You are now feared and respected at Zaton. + + + Boss + + + Stalkers decided to give Magpie’s loot, which he had acquired through lies and deceit, to someone more worthy. They put his stuff in your personal box at Yanov. + + + You brought the scumbag to justice. Magpie cheated and deceived many a stalker, and now his time has come. + + + Courier of Justice + + + Stalkers think more of you now.\nBandits will try to hunt you down whenever you venture out into the Zone. + + + You found every type of artifact known to Zone researchers. This earned you the respect of stalkers and the close attention of bandits. + + + Artifact Hunter + + + Cardan can perform a unique modification, which will allow you to move quickly while wearing an exoskeleton, by installing hydraulic servomotor boosters. + + + Now Cardan has all the tools he’ll ever need. This will allow him to perform new and more complex upgrades. + + + Weapon Systems Expert + + + Azot can perform a unique tactical helmet modification: an infrared scanner that allows for detection of nearby humans. + + + Azot has all the tools a Zone technician could dream of. He can now perform hi-tech modifications. + + + Hi-Tech Expert + + + Your experience allows you to find rare artifacts more often. + + + There are virtually no accessible areas by the center of the Zone that you haven’t been to yet. You’ve been a guest of almost every local anomaly. + + + Seasoned Stalker + + + Your leadership qualities improve your team’s chances of survival. + + + You had a team job to do, so you put a great squad together and proved you're a leader. + + + Leader + + + Freedom, Duty, free stalkers and even bandits have come to recognize your negotiation skills, and think highly of you as a result. + + + You know how to solve a problem peacefully. Who needs brute force when simple words can resolve a dispute just as well? Nonetheless, you should watch out for people that shoot first and ask questions later. + + + Diplomat + + + You’ve worked with the scientists for so long that you could rightfully be called a research assistant. Everyone in the scientists’ bunker considers you one of their own. + + + Research Assistant + + + Your relations with Duty have improved. If you find yourself in a pickle, Duty fighters will try to help you.\nAzot, the technician who favors Duty, has offered you a discount. \nYour relations with Freedom have deteriorated. \Hawaiian, the trader who favors Freedom, will now charge you more for his goods. + + + You have provided plenty of help to Duty, and this has earned you the respect of Duty fighters and their friends. But keep in mind that not everyone in the Zone is a Duty fan. + + + A Friend of Duty + + + \nYour relations with Freedom have improved. If you find yourself in a pickle, Freedom fighters will try to help you.\Hawaiian, the trader who favors Freedom, has offered you a discount. \nYour relations with Duty have deteriorated. \nAzot, the technician who favors Duty, will now charge you more for his services. + + + You have provided plenty of help to Freedom, and this has earned you the respect of Freedom fighters and their friends. But keep in mind that not everyone in the Zone is a Freedom fan. + + + A Friend of Freedom + + + Stalkers at Yanov value a balance of power between Duty and Freedom, which is why both the technician and the trader have given you discounts now. + + + You didn’t side with either faction and always acted as a free stalker. You’ve not made any enemies, but you haven’t got any new friends either. + + + A Man of Balance + + + Traders offer you more rare and expensive goods. + + + Although you know what it’s like to be short of cash, you’re not doing too badly at the moment. In fact, sometimes your wealth can be considerable, and traders value a client of your stature. + + + A Wealthy Client + + + After getting the notes, Strelok found a new reason to live on and make it to his objective, whatever the cost. + + + Your foresight has served you well: on finding notes in Strelok's group’s stashes, you kept them until you found their rightful owner. + + + A Keeper of Secrets + + + You managed to survive an emission without taking cover thanks to the anabiotic pills. The effects of this on your psyche are unclear, as you notice a strange silence inside your mind. It seems that you no longer hear a constant stream of thoughts. + + + Marked by the Zone + + + Owl the trader has offered you a discount for being his best informer and partner. + + + When you get your hands on a piece of info, you always find the right buyer. Obviously, you always have your own profit in mind when selling information to those who need it. + + + Trafficker of Information + + + Your relations with stalkers have improved. If you find yourself in a pickle, stalkers will try to help you.\nStalker medics have agreed to sell you medical supplies at cost price. + + + You’ve always helped out stalkers in trouble. Although their faction is not very tight-knit, you now have allies in the unofficial stalker brotherhood who will help you in combat and afterwards too. + + + A Friend of Stalkers + + + Various new information allowed Professors Hermann and Ozersky to create a new experimental drug, an anabiotic, in the Zone. + + + You have a chance of surviving an emission even without the aid of drugs, provided your health is in order. + + + Given how useful you are, Professor Hermann is now offering you medical supplies and equipment intended exclusively for bunker personnel at cost price.\nNovikov is so used to you that he only wants you to pay for parts when performing modifications. + + diff --git a/gamedata/configs/text/eng/st_characters.xml b/gamedata/configs/text/eng/st_characters.xml new file mode 100644 index 0000000..c4a7491 --- /dev/null +++ b/gamedata/configs/text/eng/st_characters.xml @@ -0,0 +1,336 @@ + + + + Jack + + + Vano + + + Lt Col Shulga + + + Loki + + + Hawaiian + + + Bonesetter + + + Senka + + + Zulu + + + Uncle Yar + + + Topol + + + Mace + + + Spirit + + + Snake + + + Vulture + + + Nitro + + + Trapper + + + Flint + + + General Tachenko + + + Lt Bunchuk + + + Col Kosmach + + + Lt Zakharchuk + + + Black + + + Duplet + + + Surgeon + + + Skull + + + Stake + + + Koshey + + + Corpse + + + Strider + + + Armor + + + Sickle + + + Walrus + + + Meeker + + + Foma + + + Professor Ozersky + + + Novikov + + + Professor Hermann + + + Sgt. Shlyachin + + + Lt Sergeev + + + Sgt. Valiushok + + + Sgt. Ostrovsky + + + Captain Klimenko + + + Lt Sokolov + + + Captain Tarasov + + + Col Kovalsky + + + Lt Podorozhny + + + Lt Skelya + + + Sgt. Merkulov + + + Lt Stetsenko + + + Sgt. Yarmoshuk + + + Lt Rogovets + + + Lt Smirnov + + + Strelok + + + Barchuk + + + Major Degtyarev + + + Dwarf + + + Shishak + + + Grizzly + + + Torba + + + Mitay + + + Lt Gavrilenko + + + Kremen + + + Gaiduk + + + Garry + + + Lt Kirillov + + + Serbin + + + Jackal + + + Nimble + + + Crab + + + Garmata + + + Gonta + + + Sledgehammer + + + Crest + + + Owl + + + Grouse + + + Danila + + + Sultan + + + Morgan + + + Knuckles + + + Spartacus + + + Beard + + + Cardan + + + Goblin + + + Oak + + + Pianist + + + Mower + + + Kirzach + + + Tank + + + Mug + + + Hatchet + + + Tuna + + + Noah + + + Pilot + + + Tremor + + + Lt Drapei + + + WO Umerov + + + Snag + + + Hook + + + Ridge + + + Mirone + + + Barge + + + Petruha + + + Awl + + + Major Chepurny + + + WO Valentir + + + Snr. Sgt Morozov + + + Snr Lt Smolyak + + + Splinter + + + Sergeant Gazda + + + Captain Furtez + + + Snr. Sgt. Shveiko + + diff --git a/gamedata/configs/text/eng/st_dialog_manager.xml b/gamedata/configs/text/eng/st_dialog_manager.xml new file mode 100644 index 0000000..a9c9500 --- /dev/null +++ b/gamedata/configs/text/eng/st_dialog_manager.xml @@ -0,0 +1,993 @@ + + + + There's a spot in Zaton where heat anomalies emerged underwater. They call it 'Boiler' because there's steam and stuff coming out from the ground. If you think steam is nothing, think again. Seasoned stalkers say this kind of vapor anomaly hits you at least as hard as a regular heat anomaly, if not harder. The temperature may be a bit lower, but it grills you longer. As for artifacts, they found regular ones, the fire kind. + + + They say there's a nice spot in the quarry, with lots of artifacts, though not scant on anomalies either. Down at the bottom there's so many bubbles from gas anomalies, it hurts the eyes, even with a gas mask on. + + + Ash Heap is at the old graveyard near Kopachy. There's lots of heat anomalies and some zombies from time to time. People try to avoid the place, but they do find artifacts there. + + + They say artifacts have been found in the parking lot. Still got vehicles from the first Chernobyl disaster - those babies give the rad counter heartburn. In addition, the lot is full of electrical anomalies as well. + + + In the Putrid Grove, where trees are all warped from acid. People who've been there say it's full of gas anomalies. There's so much gas in the air that you can't see straight but with enough experience you can find the artifacts you're looking for. + + + If you're after artifacts, go for the acid kind. The best place to get those is the Concrete Bath. You won't have a lot of competition: no one likes that place because of its proximity to the Jupiter building. + + + Not far from the Jupiter plant a piece of the road fell through. They called this place Bitumen, because that's where the pavement melted. There're many anomalies in the gap - heat anomalies mixed with gravitational ones. And since it's two kinds of anomalies, the artifacts must be different, too. + + + There's a small harbor beyond the cement plant called Fen. The whole harbor's turned into a terrible stinking marsh and the water is full of gas anomalies. It's not even really water anymore, more like acid. People have found artifacts there before, but the place is also teeming with monsters. + + + Look in the old cement plant. Lots of anomalies, but it's worth it. Sure, there are spots where artifacts are easier to come by, but so's the competition. Here your only competition consists of hamsters, and that's only if you go down in the basement. + + + You should look near Oakpine. That's that thing growing between the hills, above the gas anomalies. Everyone's been calling it that since some geek identified the bark from that tree as both pine and oak. If you want to search for artifacts there, you'll need good chemical protection. Take lots of ammo, too, because those hills are home to packs and packs of dogs. + + + Sometimes you don't have to jump into anomalies to scare up an artifact. I've been told of an artifact found out in the open field. This one stalker had a detector that started acting up, so he decided to change the batteries. As soon as he did, the detector shows a reading and bam, an artifact basically drops in his hands. Lucky bastard, eh? That's the Zone for you: sometimes it punishes you and sometimes it rewards you. + + + I've heard from seasoned stalkers that sometimes artifacts move outside of anomalies. Your detector starts going "peep," you take it out, but there's nothing there. That means a 'nomadic' artifact walked past you but it's no use chasing it, because only the Zone decides who to reward it with. + + + No one has looked for artifacts in Pripyat yet. Everyone I know has only been here a short while, so they stay cautious. + + + I don't know if anyone knows the good spots. Pripyat is poorly explored so far. + + + I would look in the underground tunnels. They say there's tons of them underneath the city. + + + Not much is known about these parts. Garry's stories, mostly. He says there's a place here where a huge grapevine grows out of an acid anomaly, as tall as a ten-story building. He might be pulling our leg, but I'd check out that vine for artifacts just in case. + + + The surest place is the acid swamp. It's full of gravitational anomalies, but those are easy to spot. Just keep your eye on the water surface and you can't go wrong. Gas anomalies are more of a pain, because there's basically no air to breath. Getting squirted by one is no fun, believe you me. That thing eats through a vest faster than sulfuric acid. + + + There are plenty of heat anomalies at the burnt farmstead up on the hill. People find fire artifacts there. Look in the houses: whichever's got the most anomalies in it after an emission, that's where the artifacts will be. + + + There's probably lots of them in the caves under the burnt farmstead. If you walk on the hill with a detector, it doesn't stop beeping. Getting to them is easy enough - just jump in through the gap from above. Getting out is the hard part, what with all the anomalies down there. Mostly vortexes and acid. Some also claim to have seen something resembling a comet in that gap. A whole mix of dangers, to be sure, but that means the artifacts are probably mixed as well. + + + Have you seen a Circus anomaly? It's a huge springboard anomaly with two comets going round and round - quite a sight to behold. Behold it from a distance, though, because Circus is hot as hell, with lots of heat anomalies. It's got plenty of artifacts, too, but they're guarded by a nasty fire poltergeist that tries to roast you up when you come near. + + + If you're interested in gravitational artifacts, look for them in the Fang anomaly. The place is easy to spot - anomalies have done a job on the terrain, took half the hill clean off. A few caves opened up in the hill and were immediately settled by snorks. Thankfully, they rarely go outside. + + + In the Zone, man, in the Zone. Just don't give up. + + + A great question. Tell me when you know the answer! + + + Where, when, why... Remember: once you find a honey hole, keep it to yourself. + + + Where can I find artifacts? + + + I've already told you. + + + No, I don't know anything else. + + + That's all I know. Ask somebody else. + + + Wassup, bro? + + + Greetings. + + + Hello, stalker. + + + Hello. + + + What do you want? + + + What? + + + Start talking. + + + Good afternoon, Major, sir! + + + Good afternoon! + + + I'm listening, Major, sir. + + + Yeah, hi. + + + What? + + + The man himself. + + + Hey, stalker. What's your hurry? + + + Sup. + + + Sup, man. + + + Oh hey, dude. + + + Howdy. + + + Hey! + + + Help me, bro! + + + Save me brother, I'm dying... + + + I need medical assistance! + + + Medkit!... Quick! + + + Help me, buddy... Ahh, the pain! + + + Gimme a medkit... medkit, now... + + + Dude... argh... c'mon, help me out! + + + Yo, I need a medkit... quick... + + + Help me, stalker... a medkit, please... + + + I'm hurt... help! + + + Need a medkit! + + + Medkit! + + + Have you heard about the dredge station east of Skadovsk? They say something weird glows there at night... Too weird even for the Zone, mind you. I really don't know if it's worth checking out. It might turn out to be something valuable, but is it worth risking my ass over? That's the question... + + + Nothing but old decrepit stuff around here. Take that dilapidated motor column on the Preobrazhensky bridge - it's rusted through and through, the bridge included. Many would love to poke around the area, were it not for snorks and anomalies... + + + Did you hear Sultan planned to take over Beard's business? Skadovsk ain't big enough for his greedy ass, so he wanted to grab an even larger piece of the pie... But we said, "No way, José!" Beard and the rest of our guys gave them hell all right. Sultan's thug operation won't fly here. + + + Wow, did you hear about this? That scumbag Sultan clamped down on Beard... I don't know what he did exactly, but it seems he turned on the meter on Beard! What's the Zone coming to? If they keep this up, Skadovsk is going to be a bandit base before you know it! + + + Have you heard about the Oasis, brother? They say there's this place that's extremely hard to find and, once you know where it is, even harder to get to. There's supposed to be a lake there. You walk into it and all your maladies fade away, all your wounds heal instantly! Ah, talking's no use. Have you seen how many rookie stalkers have come here, to the center of the Zone? Some are looking for a treasure trove of artifacts, some are just curious, but most are hoping to find the Oasis. Word is, it's hidden somewhere around here... + + + They say the Zone is about to croak... Someone found the Oasis and took its artifact - the Heart of the Oasis. Now the Zone will shift into another dimension and no stalkers will ever be able to get out... Just kidding, man. But they really did find some kind of new artifact. Scientists are tinkering with it in their bunker as we speak. + + + Did you hear about Topol? He found some new shithole for his guys to wander into, and of course, they happily went for it. Their escapades ended up with a controller ironing their brains out. They would be pissing all over themselves in hospital bunks if it weren't for this one stalker that was with them. When Topol came to his senses from that zombification crap, that stalker was squatting down right next to the controller, cutting its ears off. + + + Did you hear about the Kopachy village? When the original disaster hit the Chernobyl NPP, that area got it so bad that they decided to bury the whole village. Nothing but small radioactive mounds there now, in place of houses. They say it was an eerie place even before the disaster; I shudder to think what one might find there nowadays. Everyone's too scared to check it out. But what if they're wrong - it could be an artifact goldmine for all we know! + + + You know, there are only two stalkers at Yanov who can feel an emission approaching. Bonesetter, our medic, and Zulu, an ex Duty member. The 'ex' prefix is a recent development... When Duty came to Yanov station, Freedom fighters were already there. As could be expected, things got ugly quickly. Both factions suffered heavy losses, even a few free stalkers were hit by stray bullets. That's when Zulu told them an emission was coming. Left with no choice, Duty and Freedom called a truce and dug in at the station. When it was all over, Zulu quit Duty and settled down at the tower near the station. + + + There's all kinds of weird stories... You shouldn't believe all of them. Storytellers are a dime a dozen in the Zone these days. But the strange thing is, a few stalkers from Yanov station have reported seeing UFOs. They say it looked like a black saucer about 16 feet in diameter. Others claim it looked like an airplane from a distance, they were sure that's what it was. The indisputable fact is that one of the eyewitnesses is a former pilot, and he says he'd never seen anything like it in his whole life. + + + Nothing but bad news lately. Good men are vanishing one after another, then we find their bodies with not a drop of blood. It's got to be those mother fucking bloodsuckers, who else? Ooh, how I'd love to find their lair and pump them bitches full of lead! Soon we'll be going to the john in pairs, you know? Lone stalkers my ass. + + + Got a new one for you. So, the Freedom guys got their hands on the PDA of the legendary founder of Duty. And you know what? It turns out he duped his men, telling them the army leadership abandoned them in the Zone. He made that up just so he could form his own faction! But shit like that don't stick in the Zone. Not long after our hero found himself in a space bubble and that was the end of him. That's how it goes... To think I was actually considering joining Duty! Nah, let 'em spew their self-righteous drivel without me. + + + That new Duty squad, you know... They just about crystallized out of thin air. Think about it: a group of Duty fighters leave Yanov and come back three times as many. Are they cloning themselves or what? I guess you should expect that from Duty, though. Only way they tell each other apart is by rank! + + + That new Freedom squad, you know... They just about crystallized out of thin air. Think about it: a group of Freedom fighters leave Yanov and come back three times as many. I got an idea - they're multiplying by budding! You'd think so, wouldn't you? All that grass they're smoking, they're about to take roots and start vegetative reproduction! + + + Know Gonta and his guys? They were down on their luck for a while, what with Danila disappearing and Crab getting wounded. But they're on a good streak now. They're making out nicely with the scientists, taking measurements for them. Nice, eh? A cushy job and a surefire step toward getting their official permits. + + + Heard about stalkers called Mitay, Torba and Grizzly? I hear they got a job with the scientists, taking measurements. What the heck is that about? If you ask me, those eggheads are up to no good. But hey, at least the guys are taking it easy now. They might even get their official permits one day. + + + Know Spartacus and his crew? Well, you won't see them at Skadovsk anymore - they're guarding the scientists' bunker now. Why not - they can handle mutants all right and know how to keep the bandits at bay. Science is a worthy cause that could use some peace and quiet. + + + Have you seen them mercenaries kicking heels at the substation? Not recently you haven't. They've gone over to Jupiter to guard the scientists' bunker. There had been some other mercs guarding the place before them, but something happened to them, I hear. Ain't a bad trend if you ask me! Some mercs disappear, others take their place and follow suit... A few more rounds like that and we'll be rid of mercs at Zaton altogether. + + + Folks say the scientists' bunker is now being guarded by the valiant warriors of Duty... I wonder what's in it for them? Do they really believe those 'ologists' will pay them back with a brand new plasma gun, to go hamster-hunting? Guards my butt, heh... + + + They say the scientists' bunker is now being guarded by Freedom. Aren't the scientists afraid that their test specimens can go up in smoke - I mean literally? There's a bright side to it, though. If anyone tries to attack the bunker, they'll have to get through a smoke screen first! Ha-ha-ha! + + + Have you seen Jupiter, the radio electronics plant? A creepy place that is. No one really knows what goes on in there. The anomalies and mutants are just like everywhere else... But I still don't feel like going there. My gut's telling me that place is trouble. + + + Lookie here, ain't you that dude who exposed the Skadovsk medic? 'Preciate that, I really do. I coulda been his next patient, ya know... We all thought it was the monsters, but I guess some people can be just as bad. We live in a dog eat dog world, ain't that the truth? + + + I should be asking you that. After you went into those tunnels beneath Jupiter, we heard rumors you reached as far as the center of the Zone. Caused a real turmoil. Got a dozen people itching to follow in your footsteps. Nitro cooled them off, though - he said the tunnel gates closed shut and he couldn't do nothing to reopen them. Sure, we had a few desperados who wanted to blow up the gate, but they're still trying to work out where to get enough dynamite and how they're going to breathe once they actually get down there. + + + Oh, have you heard the latest about Garry? The stalker who used to work for the scientists. He's no longer a 'trespasser' - he's got an official Zone permit, believe it or not! So, you're thinking he should have picked up his loot and gone home, right? Well, instead the crazy bastard up and made for Pripyat. Everyone thought he was gone for good, like the rest, but far from it. He made it, but his feat wasn't much use to stalkers. He ran into some military guys. Now Garry's cool with the jarheads, having a permit and all, but the area is still off limits to regular stalkers. + + + Well... Freedom and Duty are fighting again, this time over some major stash. They say there was enough gear in there to equip three infantry divisions. Don't know who made the stash in the first place, but the showdown was really something. Stirred up all the stalkers at Yanov, but luckily, they stepped aside or we'd have yet another free-for-all. I guess Duty got the worst of it, 'cause now the area is guarded by Freedom squads. + + + Well... Duty and Freedom are fighting again, this time over some major stash. They say there was enough gear in there to equip three infantry divisions. Don't know who made the stash in the first place, but the showdown was really something. Stirred up all the stalkers at Yanov, but luckily, they stepped aside or we'd have yet another free-for-all. I guess Freedom got the worst of it, 'cause now the area is guarded by Duty squads. + + + Something happened recently. A group of stalkers were exploring the Jupiter tunnels and stumbled into something - I mean someone. First their guns came flying out of their hands, and then all kinds of crap went flying straight at them. They got no clue what the hell actually happened, but they lost two boys in there. + + + I heard they found some kind of gross mutant shit in the tunnels north of Jupiter. Trapper sent a stalker in there to investigate. Turned out there used to be a burer lair. Why "used to be"? 'Cause that same stalker wiped out all the burers. On his own... You even seem to fit his description, except he's a bit taller and always carries a grenade launcher. + + + Stalkers are done for... Monsters are coming from Fen. Stalkers at the cement plant saw them lugging off one of our guys. There was at least a dozen of them, huge-ass bastards like you won't believe. Looked like bloodsuckers, only twice as big and much faster. We are praying Trapper figures out how to deal with those beasts... + + + You heard about swamp bloodsuckers? The ones in Fen? Well, they're gone. Trapper came for 'em... Not personally, though - he hired some stalkers. They say he put a crew together, about ten men or so, and combed that swamp through and through, and whatever jumped out they blasted to kingdom come. Ain't a frog living in that place no more. + + + It wasn't long after word began to spread about a chimera that someone popped it. Mutants used to kill stalkers by the dozen, but I guess we're finally wising up and reversing the trend. I also heard from other sources that the guy was an experienced hunter who has killed more monsters than you and I killed mosquitoes in our lifetime. + + + Have you heard the kind of people Freedom recruits nowadays? There was this fella called Flint, bragged left and right about his escapades and trophies... well, he turned out to be the scum of the earth. Left his buddy to die in an anomaly, grabbed his loot and took off. Later they uncovered more of his exploits over at Zaton, where he basically fed a group of hunters to a chimera. I used to think better of Freedom... Hell, I'd rather be factionless than have friends like that. + + + Well, they put down that chimera at Zaton. Gonta's crew with an unknown stalker. Wait, that was you, wasn't it? Maybe you could give me a first-hand account? Thanks a million, by the way - that's one less man-eating mutant to worry about! + + + Don't know if it's newsworthy, but we got this Noah fella here, the loopiest headcase you will ever meet. He's got one ugly barge... Looks like he had a bunch of illegals build it in a week, heh. Watch out for him, he shoots first and doesn't even bother to ask questions later. I say, to hell with that asshole. + + + You know this cat Nimble? Yeah, he's sneaky all right. Sells the best shooters around, no doubt. I wonder how he smuggles them like that. I mean, how do you carry a Vintar so it don't look like you do? Where do you stick that thing? That's some wizard shit right there, man. + + + Word on the street is, Sultan's stepped into some deep shit. The don wanted to bust up Beard and take his business under, but he bit off more than he could chew. Got a mouthful instead. He's got rough times ahead with his crew looking at him all sideways. Ain't got the same weight anymore. + + + Word is, Sultan's got Beard in the palm of his hand, juicing his business. That's good shit and Sultan's got a lot of weight now, but the best thing is we can run Skadovsk our own way now. It's gonna be beautiful. Looking for cover from an emission? No problem, just fork up the toll! + + + Hey man, you hear about the Oasis? Picture that, a place that instantly heals all your pains and sicknesses. It's gotta be some kinda trick or magic... I got another idea, though. There's all this buzz about the Oasis, but not a word about the Wish Granter like it used to be. Well, maybe the Oasis is actually someone's wish come true? + + + There's talk among the eggheads of some artifact dragged here all the way from the Oasis. But get this: once they study it, they're gonna use their research to come up with a cure for cancer! Word up! + + + Same shit, different day... Everyone's digging up old stories about the center of the Zone. Like the one about the Oasis - a place that instantly restores all your energy and heals your wounds. It's pure, unadulterated bullshit, but fun to listen to. Especially when they talk of its location. Oh, I wish there was a place like that for real... we'd have saved so many of our boys. + + + I heard through the grapevine that they've found the Oasis. I'd have never thought it existed, but facts are a stubborn thing. An artifact was found on location. Scientists are studying it as we speak. Perhaps they can use it to make some ultra-fast healing device... Our boys sure could make use of that. + + + Kopachy. Nothing new to the Zone, but new to me. Just imagine - a whole village with houses buried up to their roofs in the ground... Dating all the way back to 1986... the houses emitted so much radiation, they had to bury them. A chilling sight... + + + You know the story how Duty and us ended up rooming together at Yanov? That was all Zulu. He was in Duty back then, and he could smell an emission approaching like no one else... But we came to Yanov first; after stalkers, that is. We barely had time to light up a smoke when those half-assed GIs turned up, waving their shooters at us. The last time I saw that kind of carnage was back at the Garbage over a year ago. Tons of guys dead on both sides. Our emission specialist among them, God save his soul. That's when Zulu goes, "Emission coming! Take cover!" What were we supposed to do, kick them out and let them die? Duty or not, they're still humans. That's how we live now: we squabble when it's quiet, but when an emission hits, we sit tight, side by side. Zulu, he ended up leaving Duty. He lives as a hermit near Yanov now. + + + It ain't no news and no secret neither, but Cardan the technician is on his way to drinking himself to death. They say he started out easy when he came to Skadovsk, drinking only on occasion or for antirad purposes. It wasn't until later that he really began to belt the grape, grief-stricken by the death of his two friends. They must have been really close... + + + OK, here's a funny story. This one fella was talking about a UFO flying over Yanov. The Zone can really drive people crazy, can't it? Poltergeists and controllers ain't enough for them, no, they simply can't do without the good ol' UFO stories. Well, at least we haven't got any psychic loonies exorcizing the evil spirits out of vodka. Imagine one of them going: "Aw Lawd, cast out the evil spirits! Keep the raw spirits!"... Ha-ha. + + + Did you hear about the Kopachy village? When the original disaster hit the Chernobyl NPP, that area got it so bad that they decided to bury the whole village. Nothing but small radioactive mounds there now, in place of houses. They say it was an eerie place even before the disaster; I shudder to think what one might find there nowadays. Everyone's too scared to check it out . + + + This isn't news, but maybe you haven't heard it. We didn't jump in bed with Freedom 'cause we like to snuggle. We owe it to circumstance. When we came here, Freedom pounced on us out of nowhere... Losses were great on both sides, though we were slowly but surely gaining an edge over the anarchists... But as the fight was in full swing, Zulu sensed an emission approaching. He's never wrong, you know... We had no choice but to put the fighting on hold. What I don't get is why Zulu left Duty after that incident... + + + Our scouts recently reported seeing an unidentified flying object over Yanov station. A UFO, in other words. Before you ask any stupid questions, a UFO isn't just some flying saucer with Martians in them. It could be any flying object, from a piece of cardboard to a meteorological probe, as long as eyewitnesses were unable to identify it. Got that? + + + You were the one who brought that PDA to Loki, right? Man, it's the shiznit. The legendary founder of Duty, General Tachenko, conned his own soldiers like some suckers. Broke the radio so they couldn't be reached from the outside, formed his own following of knuckleheads... only to croak in true retard fashion in an effin' space bubble! You couldn't make this shit up, man! + + + Seen the new squad those half-assed GIs been fieldin'? Can't be reinforcements from their base - the ideology hasn't yet replaced good sense altogether. But they're too well trained to be plain stalkers. Who the hell knows. Could they be from the Monolith? I know, that sounds crazy! + + + Seen our new fighters? Oh, you brought them here, didn't you? You rock. They're pretty cool, kinda tense though... That's OK, a few months of hanging with us will free their minds. They'll start digging our way of life and become like us soon enough. + + + We've got some cool new recruits: a squad of former Monolith fighters. And not some rookies either, these are trained fighters. Of course, their heads haven't quite clicked into place after leaving the Monolith. That's all right though, we've got a special Ideology 101 crash course for that, and much more. + + + They say Freedom has recruited some former Monolith fighters. Hard to believe, but they do have a new squad and it definitely didn't come from outside the Zone. I guess they're pretty desperate... that or their brains have completely withered from all those drugs. Who are they gonna recruit next, a zombie brigade? A burer battalion? + + + This area will soon have law and order again. Duty has taken control of key local positions. We've secured a firm footing at Yanov, and we've got a 24/7 protection detail at the scientists' bunker. It's high time for Freedom to pack their things and hit the trail - anarchists aren't welcome here. + + + The newest wonder of the world - a sober Cardan. Can you believe he's on the wagon? Skadovsk people asked him if he got hold of an AA hotline number, to which he replied, "The only number I needed was sixty two." + + + I think it was you who helped our guys get that job guarding the scientists, wasn't it? Thanks for that. It sure was nice to see our men at the bunker instead of those friggin' mercs. Good stuff! + + + Let's see... we're getting a kick from Duty's secret stash. Now we'll use the stash for its intended purpose - as a prison for Duty scum to press them into divulging all their secrets. He-he. Oh, and thanks for tipping us off about the alarm system - without reinforcements we didn't stand a chance. + + + Another victory for Duty! Those anarchists really got too big for their britches... Snuck into our secret warehouse, thinking they could get away with it. Hell no! We surprised them and blew their heads off like rabid hamsters. + + + It ain't news that Freedom is a bunch of lowlifes, but we've uncovered something new about one of their biggest wackos. This hood went by the name of Flint in Freedom, but before he joined he was Magpie, a stalker. At least Magpie was his name when he came to Zaton and almost led a crew of hunters right into mutants' jaws. He set them up so that a chimera almost tore them to pieces, while this bastard grabbed their equipment and came here to Yanov. After joining Freedom, he threw his partner into an anomaly to take away his artifact. So, that's Freedom for you. + + + A new shipbuilding project, led by Noah. That's the newest attraction at Zaton - a stalker by the name of Noah. Experienced, motivated and 100% nuts. His latest crazy idea is to save all stalkers from the Apocalypse. To that end, he's rebuilding an old barge onto an "ark." A real nut factory. If you do decide to drop by, make sure not to annoy Noah. As long as you do that, he's pretty much harmless. + + + Have you met Nimble? He's on Skadovsk right now. He's a real pro of his trade. He can get you anything you need. Well, almost anything. He's focused on shooters and suits lately, but always top of the line! Specialty items, experimental designs, hand-crafted articles... His stuff ain't cheap, but why should it be? Exclusivity costs a pretty penny! + + + Did you know Pilot has been using a new route between Zaton and Jupiter? It used to take a long while - walking uphill, dodging anomalies and so on. Now it's a piece of cake. Not a journey but a walk in the park, not to mention it's half as long. But Pilot gives credit where credit is due - he wasn't the one to discover the route. A stalker showed him his maps. For a fee, of course, but he didn't charge an arm and a leg either. + + + Nothing much, to be honest. + + + There's always something new in the Zone, anywhere you look. + + + Well, you're here now. That's news, I guess. + + + What's new in the Zone? + + + I don't know anything else that would interest you. + + + I would tell you gladly, but that's all I've heard. + + + I told you everything I know. + + + Hrm... Maybe you should ask Grouse over at Skadovsk. He's been looking for help with this one thing - stalkers are disappearing without a trace. Everyone blames bloodsuckers, because when their bodies are found, they're bled completely dry. But this is just too much... They're snatching people almost every other day. Which really isn't bloodsuckers' MO... Grouse even hired an experienced hunter to track down those bloodsuckers. + + + You know, when a stalker needs money he's got two ways to go: find artifacts and offload them to traders at 30 kopecks on the ruble, or work for the scientists. They always come up with something or other a stalker can do, be it the delivery of a rare artifact or a mutant carcass. But above all else, if you get on their good side they can issue you a permit to the Zone, all official and legit. Picture yourself passing a military post, lugging a full backpack of loot, and being saluted! Warms my heart! So anyway, the scientists' bunker is situated west of Yanov station. They've got one stalker working for them already, maybe they can hire another one like you. + + + How successful you are depends on what you do. If you don't mind hunting mutants, you'll have plenty of offers. Drop in the basement at Yanov and ask for Trapper - he pays good coin for purging mutants, but don't go shooting the first pseudodog you see to claim your reward. Trapper gives out orders on specific monsters that either interfere with artifact collection or frequent the places stalkers use to hide from emissions. + + + Fellas like you who come to Skadovsk like to visit Beard. He shells out decent dough for artifacts... But I'll tell you one thing - his business sense is piss poor. He don't wanna share his profits with some powerful people... and that shit's gonna come back to bite him in the ass. Ya dig? + + + If you need hard cash, see Owl. He peddles everything a real man needs on Skadovsk - information, shooters, whatever. If you got something hot and valuable, like a document or a stalker's PDA - take it to Owl and get paid. You can also scare up good dough by taking on his personal orders. Just ask him if he needs something done. + + + You might want to ask Gonta. He and his crew have got quite a story to tell. A chimera turned up at Zaton not long ago, so Gonta and his men went after it. They split into two teams to track down the beast and sent on one of the hunters in search of the bloodsucker lair. They were a bit short-staffed when they finally smelled out the chimera, so another stalker, Magpie, came along. I don't know exactly how it all went down, but most accounts agree that Magpie legged it as soon as he saw the chimera. Gonta barely made it out of there, with one of his men badly wounded. But the chimera is still at large, so they're looking for people to lend a hand. + + + That's easy: if you want serious dough, Sultan's your man. He's the local boss, so if you make out like a goodfella, he'll find a job for you. + + + If you're good at stalking - that is, finding artifacts - talk to Beard. He's got a lot of respect here. He's the only man on Skadovsk who'll give you a good price for your artifacts. He's got the connections to transport them outside the Zone. Besides, he's a good man, you know... always there for you with advice or a suitable job. + + + There's a trader on Skadovsk, Owl's his name. Not the most pleasant of people. Always complaining how all the artifacts go to Beard and not him, but if you need money, you can see what's he's got to offer. That weasel deals in much more than ammo. He can tell you things, sell you things, buy your things and pay for things you know that interest him. Pay him a visit - he's on the second aft deck. I'm sure you can work something out together. + + + You can ask Vano, he hangs around at the Yanov bar. He got on the hook with the bandits - been trying to repay his debt three times already. He's got experience and everything, can spot an anomaly with his eyes closed... and still he always manages to get in trouble. A bunch of people have suggested that he just take off. The Zone's too big for the mob to find him, but he's too proud to run away, and there aren't many people willing to help him work out his issue with the bandits... + + + Forget about jobs, man... The bandits have gotten really out of hand - they took Mitay prisoner and are demanding ransom. Mitay was one of the first stalkers here at Yanov, he built this place up so people could take cover during an emission, and now when he needs help no one gives a crap. No question about Freedom or Duty - they're too busy gnawing at each other's throats... But the rest - they should do something! Ah, what's the use... Mitay's own crew can't figure out how to free him. If you want to help them, talk to Grizzly; you can find him at the station bar. + + + Nitro, the Yanov technician, needs working materials. He's good with weapons and electronics alike, if you didn't know. But sometimes skills are not enough - he needs the right materials, so he's been asking around. The problem is that all the safe places have been cleaned out, while the rest are too dangerous for most. Nitro's hoping to find someone willing to take those risks, but I'm sure he'll pay good money for the trouble. + + + I heard Uncle Yar over at Yanov station was looking for a less-than-curious stalker to help him with something. Not sure why he don't ask his Freedom buddies... Anyways, he's a decent old man, so maybe you should talk to him and see if you can work something out. + + + Hrm... Don't know anyone like that. + + + I'd love to know that myself. + + + How the hell should I know? + + + Know anyone who'd have a job for me? + + + You've asked me that already. + + + Couldn't tell you anything new. + + + You've got my answer already. + + + OK, forget about it. + + + I would like to ask you something. + + + Ask away. + + + Spit it out. + + + Shoot. + + + I'm listening. + + + Help! + + + Take this medkit. + + + Sorry, I got nothing. + + + I see. + + + What are you up to? + + + Can I go with you? + + + Of course. The more the merrier. + + + No, sorry. I'm going my own way. + + + Let's go then. + + + I need to go some place, can you lead me there for a fee? + + + No problem. Where do you need to go? Take your pick. + + + I agree. Let's go. + + + I've changed my mind. + + + No, I've got other urgent business to attend to. + + + I'm just taking it easy. + + + Nothing much, just getting a bit of R&R. + + + What does it look like I'm doing? Not a damn thing. + + + Tracking mutants. + + + I'm shadowing a couple of assholes. Friggin' retards... + + + Tracking down a few mercenaries. Real bastards, these. + + + I'm tailing a squad of fanatics. Monolith fighters, that is... + + + I'm after some zombies. Too many of those poor bastards around... + + + OK. That will cost you + + + You know, I've changed my mind. + + + I don't have that much. + + + Oh, nothing I guess. + + + I'm following some mutants. Someone's got to show them their place. + + + I'm chasing some local thugs. + + + I'm out to get some mercenary scalps. They've got a debt that needs collecting. + + + I'm after those screwy Monolith folk. + + + I'm trying to track down some of my debtors. + + + I'm not doing anything right now. + + + I'm hunting mutants, trying to purge the area of their filth. + + + I'm on a mission, tracking down a bandit squad. + + + Mercenaries are my target. I'm following their squad's tracks. + + + I'm after a Monolith squad. + + + I'm chasing down those half baked assholes - Freedom, that's who... + + + I'm hunting for artifacts. + + + I ain't picking mushrooms... artifacts, more like. + + + I'm looking for artifacts. + + + I'm headed toward the Boiler anomaly, the one next to a small grove. + + + I'm moving out to the northern lake... gonna take some time off on the peninsula. + + + I'm going beyond the northern lake - there's a decent camping spot there. + + + I'm going to the woods beyond the northern lake. + + + I'm headed to a small forest west of the sawmill. + + + I'm headed for the hill that's west of the swamp. None of the swamp pollution can reach me there. + + + I'm heading to the antenna complex. There's a nice little spot west of that. + + + I'm headed for the woods west of Oakpine... come along if you like - I don't mind company. + + + To a grove between the Iron Forest and the workshops. + + + Toward the great bridge... there's supposed to be a safe, private little spot east of there. + + + To a parking lot south of the old barge. + + + Nothing special, just travelling. Gonna set up camp on a hill east of Skadovsk. + + + To a grove between Izumrudnoye and the gas station. + + + A fork in the road near the waste processing station. + + + To the Boiler anomaly. + + + To the ranger station. There's a building complex there, you've probably seen it. One of them even got furnaces - I wonder what kind of business they ran down there. + + + To a grove west of the burnt farmstead. + + + To a grove east of the Boiler anomaly. + + + To a hill just past the northern lake. + + + A little grove south of the burnt farmstead. + + + I'm headed west of Skadovsk... where the pipes come out. + + + I'm headed to a spot midway between Skadovsk and the dredge station. + + + To a bayou near the old barge. + + + To a creek near the Scar anomaly. + + + To the gas station. + + + To the Oakpine ravines. + + + I want to look for artifacts in the Claw anomaly. + + + I'm going toward a hill west of the Boiler anomaly. + + + To the Iron Forest anomaly. + + + I'm going to the Iron Forest anomaly to look for artifacts. + + + I'm going to the swamp. Sure, it ain't easy breathing with all that gas, but the artifacts make up for it. + + + I'm going to the substation workshops. They say it's a nice place to hide from emissions, so I'm going to give it a test run. + + + You know there's a sawmill nearby, that's where I'm headed. I want to double check it for anything of value. + + + I feel like taking some time off at the Izumrudnoye resort. Oh, sure it is a fine resort... for flesh and boars! Ha-ha! Still, I'm sure I can camp out there a bit. + + + To a bridge, I think it's marked Preobrazhensky on the map. + + + To the dredge station. I bet there are still some valuables to be found in the area. + + + To the old barge. + + + I want to swing by the burnt farmstead, see if any new artifacts have popped up. + + + To the southern plateau. + + + To the crack by the gas station. + + + I'm going to the Krug antenna complex - need a safe place to hide from emissions. There's supposed to be lots of monsters there, unfortunately. + + + I'm going to the Krug antenna complex - need a safe place to hide from emissions. There's supposed to be lots of monsters there, unfortunately. + + + I'm going to look for artifacts near Oakpine. Hopefully the mutts will keep at bay. + + + To the cesspool... you know, the waste processing station. It's as good a place as any to hide from emissions. + + + I'm headed to the boat pier on the northern lake. Once there I'll play it by ear. + + + I'm going to the docks, where the cranes are. A decent place to camp out. + + + I'm planning to look for artifacts in the Boiler anomaly. I just hope my suit will survive this little hot springs vacation. + + + To the Scar anomaly. + + + I want to test how fireproof my equipment is, plus look for artifacts - all in the Circus anomaly. + + + To the ranger station. + + + I'm going to camp out on Shevchenko. It's safe from emissions, and a tough spot for mutants to attack. + + + I'm going to camp out on Shevchenko. It's safe from emissions, and a tough spot for mutants to attack. + + + I'm going to the docks, where the cranes are. A decent place to camp out. + + + I want to dump my loot and have a cold one or two. Skadovsk is just the place. + + + I'm going to the army checkpoint, next to the Jupiter plant. + + + To the container warehouse. + + + I'm headed to a totally inconspicuous area between the container warehouse and the southern tunnel. + + + To Yanov station. Finally a time to relax. + + + To the tunnel north of Kopachy. + + + I'm going to a really creepy place, the Kopachy village... or whatever is left of it. Yes, I've stocked up on extra antirads and ammo - I'm gonna need ‘em! + + + To the cement factory. A nice observation point, and no one can sneak up on you there. + + + To the cement factory. Gonna check out that basement. + + + To the substation near Yanov. + + + I'm going to a spot near the southern railroad tunnel. + + + I'm going to a cooling pond near the Jupiter plant. + + + I'm going to the Volkhov AA complex, gonna hunt me some zombies. + + + To the bunker, you know, the one at the Volkhov AA complex. + + + To the anomalous grove near the quarry. Might find an artifact or two. + + + I'm going to the quarry, where the construction workers' vans are. + + + There's this spot between the quarry and Yanov station. I'm gonna lay low there for a while. + + + I'm going to the eastern tunnel, one that goes under the Jupiter plant. + + + To the Bitumen anomaly. Gonna see how fireproof my suit is. + + + I'm going to the Plavni anomaly to look for artifacts. Got enough antidote - it's the monsters I'm worried about. + + + To the ventilation complex, between the factory and the container warehouse. Why? Eh, hell if I know. + + + I'm going to the Jupiter workshops. Maybe I'll find out what gives the place such a bad name. + + + I'm going to the very bottom of the quarry. Stalkers say they find a lot of artifacts down there. + + + To the parking lot where the old vehicles are. Gonna look for artifacts in electric anomalies. + + + There's a neat little spot located between the Volkhov AA complex and the container warehouse, and that's where I'm headed. + + + To the scientists' bunker. + + + To the cooling tower northwest of Yanov station. + + + Toward the Jupiter plant, but I have no desire to go inside. I'll hang around the administration buildings and see what my options are. + + + I'm going to the Ash Heap anomaly, beyond Kopachy. + + + I'm going to the Jupiter workshops. They say a helicopter went down in that area, so I thought I'd check it out. + + + I'm going to the dilapidated train located between the Volkhov AA complex and the parking lot. + + + I'm going to the southern tunnel, just to be safe in case of an emission. + + + I'm going to this one spot between Yanov and Kopachy. + + + I'm going to a spot not far from the canal, south of the cement factory. + + + I'm going to a spot near the canal, north of the Jupiter plant. + + + I'm going to check out the quarry. + + + I'm going to check out the quarry. + + + I'm going to check out the area north of Yanov. + + + Toward the Volkhov AA complex. There's a nice spot to camp out, between the complex and the Kopachy village. + + + Oh, just travelling... Heading toward the container warehouse. + + + I'm surveying the area. Right now I'm going to check out what's south of the army checkpoint. + + + To the helicopter pad, the one between the factory and the container warehouse. + + + I'm going to this spot south of Yanov station, by the railroad. + + + To a spot north of Yanov station. + + + To the anomalous grove. + + + To a spot south of the AA complex. + + + To the cooling pond that's right by the Concrete Bath anomaly. + + + I'm going to check out the area around the plant. + + + I'm going to check out the area around the plant. + + + To the yard behind the laundromat. + + + To the laundromat, the safest place around. + + + To the hospital. I hope I won't run into those Monolith lunatics along the way... + + + To the book store... I heard it provides decent cover from emissions. + + + I'm going to see the local attraction - the All-People Friendship symbol. It's not far from the book store. + + + To the old grocery store. You ain't gonna find any fresh bread in there nowadays, but it's good enough to hide from an emission. + + + To the Berezka store. + + + To the old kindergarten. + + + To the movie theater square, near the Prometheus monument. + + + I'm headed to the school building. They say it's teeming with monsters, but it'll also do in case an emission hits. + + + I'm headed to the old service center. There's supposed to be an anomaly on the first floor, and maybe some artifacts too. + + + I'm exploring this part of town. Right now I'm headed to the old grocery store. + + + I'm exploring this part of town. Right now I'm headed to the old grocery store. + + + I'm surveying the area. Right now I want to check out this one building behind the apartment complex. + + + I want to search the public amenities center, I think it was called Yubileiny. + + + I'm searching this area for anomalies. I heard there's a fire anomaly in a yard, west of the kindergarten... + + + Oh, I'm just touring the town. Heading to the apartment complex right now. + + + Oh, I'm just touring the town. Heading to the apartment complex right now. + + + Oh, I'm just touring the town. Heading to the apartment complex right now. + + + I'm just travelling around, heading to the river port right now. Hopefully I won't run into any Monolith fanatics... + + + I'm looking for a place in Pripyat with lots of artifacts and no monsters or Monolith fighters... He-he... Seriously, I'm going to check out this anomaly I heard of, just south of the river port. + + + Toward the Prometheus movie theater. + + + To the movie theater square, near the Prometheus monument. + + + I want to lay low for a while and catch my breath. There's a neat little spot in a yard north of the kindergarten that'd be perfect for it. + + + South of the apartment complex. + + + I'm going to this place between the kindergarten and the apartment complex. + + + There's this place they call Scar, where the ground looks like it has been hacked with an axe. People have found artifacts there, but once you go in there something weird starts to happen. That thing hits your brains so hard you almost forget how to breathe, let alone try to get your ass out of there. + + + You know where the dredge station is? It's been battered up by gravitational anomalies, but not too bad for an experienced stalker. Just keep throwing bolts as usual. There’s also radiation, inside and out - it’s like being next to a massive chunk of enriched uranium. + + + There's an old substation here, also called the Iron Forest. You'll understand why when you see it. Some people claim to have found clusters of artifacts in that area after an emission hit. It’s not all that dangerous, mainly electric anomalies and a bit of radiation... There’s also a few poltergeists, that will bury you in all kinds of crap if you don't hide in time. + + + Work? I don’t know, to be honest. But if you get a chance to help Freedom out - go see our boss at Yanov. Go to the southern wing and see Loki - that's him. Remember, if you believe in the advancement of humankind, in greater consciousness and significance of the Zone's gifts, you'll be making the right choice. + + + No idea. But if you find something that can help us in our fight against the Zone and those who think it's a gift rather than a curse, go see the commander of Duty's expedition unit - Lieutenant Colonel Shulga. He's the man in charge at Yanov station. You'll find him in the northern wing. One thing’s for sure - any civilian who contributes to Duty’s overall success will get a handsome reward. + + + Everyone's talking about some weird stuff going on at the old cooling tower. If you turn on the common frequency, you catch bits and pieces of distress calls, sounding like some poor bastard trying to get out of an anomaly. When you ask for coordinates, there's no reply. The weirdest thing though is the sound. That kind of distortion can’t be explained away... + + + I’m headed to a place half way between Skadovsk and Shevchenko. + + + To Jupiter. I probably won’t venture too far in though. + + diff --git a/gamedata/configs/text/eng/st_dialogs.xml b/gamedata/configs/text/eng/st_dialogs.xml new file mode 100644 index 0000000..71dd431 --- /dev/null +++ b/gamedata/configs/text/eng/st_dialogs.xml @@ -0,0 +1,978 @@ + + + + Listen, I have a question for you... + + + Spit it out, then. + + + What do you think about Nimble? + + + Nimble? I think that one of these days we'll jump that slippery jackass in a quiet place! + + + You hear anything about the Oasis? + + + Well, I heard a funny story once. Basically, the boys at Garbage started a rumor about where the Oasis is, and made it real believable, too. Then, they went to that location and waited. Well, what can I say? So many gullible losers showed up to share their stuff that the boys who started the whole thing left the Zone soon afterwards. And why not? Fellas were set for life. Only one of them stayed behind, some guy called Yoga... + + + That, if you go there all your problems will be solved... I reckon that's gotta be handy - no more hangovers or hemorrhoids has gotta be good! Find it, set up a resort and let the cash pile up. + + + Why would I bother listening to that crap? All it is, is cheap talk for losers... Real men don't believe that shit. You know, you're sitting in a bar with a cold one in your hand and the stalkers are buzzing all around, arguing over where the Oasis is. And every one of those suckers swears he knows the location... Though for some reason it differs from sucker to sucker. + + + Ever meet a stalker called Magpie? + + + Sure have... One look at him told me he was a complete sucker and then I heard stalkers saying he's total scum, too. I don't know where he is though... You'll have to find him yourself if you're after him. + + + Nah... First time I've heard that name, buddy. + + + Do you know who could have stolen things from a personal box? + + + A rat. I reckon you'd better ask the bosses over at Yanov, 'cause they're known for hunting a rat down. + + + Who could help me with decrypting something here? + + + Well, I heard Nitro at Yanov is good. Apparently, back when he wasn't working for Duty the boys got him to crack stalker PDAs a couple of times... Ah, the good old days... + + + Don't get all scientific on me, chief. You're gonna need a hacker for that shit. Back when I was doing time I met one in the can but that's the only one I know. When I got out he still had about a fiver left... + + + I have the Duty trader's PDA. You know anyone who would be interested in it? + + + There's a trader at Skadovsk called Owl. He pays pretty good and the boys sell him stalker PDAs now and again. He doesn't ask too many questions either, so it's all good. + + + Just about anyone, buddy. Think about it: his own faction will bury the cocksucker alive, other factions will kick up a fuss, but Owl at Zaton would make that PDA disappear real good. Only thing is, only Owl knows where that PDA will turn up later on... It's up to you. + + + Where can I find tools around here? + + + Well, if you need surgical tools I'd look in hospitals and emergency stations. If you're looking for construction tools, then check by the quarry at Jupiter. If it's small tools you're after, then search old workshops. + + + How the hell should I know? I don't need tools to convince stalkers to cough up, just so you know... Relax, I'm just kidding. + + + Who can unblock a memory module? + + + Good question! I mean that's what I specialize in, right? Hah! Are you dumb, buddy? It's either gonna be technicians or scientists... You don't really think I deal with that kind of shit, do you? + + + I'll be honest with you: the last time I unblocked memory modules was back at school and the memory module was a friggin' floppy disk. Go talk to the experts and bust their balls about it. + + + Who could break into a steel container? + + + Know Cardan from Skadovsk? Well, he got wasted the other day and started chasing this asshole around the place with a jimmy. I reckon Cardan could use that jimmy for more useful purposes and crack stuff if you needed. + + + Well, with the right tools even I could do it, but then who drags equipment into the Zone with them? Visit the technicians, buddy - they're good at that kind of thing. + + + I'm looking for a stalker called Snag. Do you know where I can find him? + + + Who knows? Ask Sultan at Skadovsk. The boss usually knows where all the dupes are at. + + + Yeah, I've heard of that loser. He normally hangs around at Zaton, so you won't find him around here. + + + Do you know anything about the crashed helicopters? + + + Who might be interested in information about Duty's founder? + + + I don't know anyone who wouldn't be interested! That's explosive info, buddy, so your best bet is to go through Owl at Skadovsk - that way you'll get some cash but won't make any enemies. + + + No. Think about it, I've got Duty on the left, Freedom on the right and stalkers up my ass - and you expect me to keep my eyes on the sky? + + + Well, the boys said they spotted one swinging on the cables in Iron Forest, but you're gonna see a lot more than that out there... You're bound to run into an anomaly or get your skull crushed by a poltergeist. + + + Yeah, some fellas saw one crash onto a plateau but the thing is there's no way up there... they said it was flyin' so weird it looked like the pilot had popped a pill or something. + + + I heard a chopper went down, right into swamp water. It ran aground pretty quick and the water there is not exactly good for your health either - poison, chemicals and shit. + + + You seen any military around? + + + Who could be interested in maps of the area between Zaton and Jupiter? + + + Pilot, I reckon - he's the main guide around those parts. It would be good if he had some maps instead of using the stars like he's doing now... + + + The boys said that an army squad went down the southern plateau straight for the mercenary camp. They figured that the shit was about to kick off, so they left in a hurry. + + + I heard this story of how the army cockroaches were trying to get some shit out of their crashed chopper in the swamp. Imagine that, five army boys in uniform jumping around in a swamp trying not to get wet... + + + One fella told me how he was following a stalker to get a piece of his loot when he heard gunshots and shit. Turned out the army were fighting the mercs. He hid and waited the firefight out, but by that time the stalker had run off. Tough luck, huh? + + + Well, a bro told me about witnessing a pretty funny scene. Imagine that barge with a mill on top and Noah yapping away next to it, all fired up and shit, and ten army boys trying to get as far away from Noah's dog as possible. Well, my bro had himself a good laugh and left the circus to its own devices. + + + Nah, this is a pretty dodgy place, full of fellas with powered up shooters and shit... I ain't got the time to check which are military and which are Duty on a mission. + + + Do you know how to get to Pripyat? + + + Who could I hire to protect the scientists? + + + Hah, me and the boys will do the job! We'll give them protection like they ain't never seen! Stalkers and mutants will be shit scared to go anywhere near the friggin' place, trust me! Cough up the dough every week and we're all yours. And don't forget a Christmas bonus! + + + By walking, buddy. Walk on over towards Jupiter and ask your questions there, 'cause there's no direct route from Zaton to Pripyat and that's a scientific fact. + + + Hey buddy, do I look like a guide or what? I mean, is there a tattoo on my forehead that says "Ask stupid questions here" or something? Go ask Pilot, he's paid to answer questions about that shit. + + + No... What would I do there anyways? There ain't no stalkers to rip off there! + + + Can you suggest anyone that's not too tied down who'd be willing to make a move for Pripyat? + + + Pripyat ain't no place for guys like us. Think about it, it's full of mutants and anomalies... like the rest of the Zone... but without stalkers and their loot. When stalkers show up in Pripyat, give us a shout and we'll head on over there to maintain the natural order of things. + + + No idea, buddy. Sorry. + + + I found an unusual shooter. Do you know anyone who might know something about it? + + + Well, I'd ask the technicians. I mean, it's their business to know this shit, right? + + + Beats me, but stalkers from Skadovsk believe that Cardan is a technical genius or something. Talk to him if you want... He's just an old drunk if you ask me... + + + Who could I hire to take measurements for the scientists? + + + That's an easy one - our boys will do it. I mean they didn't go to school or anything but they'll take whoever you want and measure them real good. Once they have the measurements, all they need is a nice grave and that's no problem either! + + + I found a very strange artifact. Can you suggest a buyer? + + + A strange artifact, you say? Let's have a look at it... Hand it over so I can see it better... Hah, relax buddy - I'm just kidding, but if I were you I'd keep that kind of thing out of sight. Others might not have such a good sense of humor. + + + You've got balls to be flashing that artifact around here. Respect. Here's the thing: the man to see for that shit is Beard over at Skadovsk. We don't know how he's getting the artifacts out of the Zone yet, so you should be able to sell yours no problem. + + + I found a whole bloodsucker lair nearby. What are we gonna do? + + + Err, what's there to do? Run the hell away, that's what! + + + OK, forget about it. + + + Listen, I have a question for you... + + + Ask away. + + + What do you think about Nimble? + + + Nimble? Never heard of him. Maybe he's in another squad or something? + + + You hear anything about the Oasis? + + + It's a stalker fairytale. That's what stalkers do: make up shit that ain't true and then all get together and search for it! I'd ignore that stuff if I were you. It's like a gateway myth: believe it and you'll believe that the Wish Granter exists before long. + + + Ah, that place where wounds heal by themselves and your energy is magically replenished? I got news for you, friend: it don't exist. Stalkers invent that crap to make the Zone sound less dangerous than it is, but the harsh reality is that there are no safe places in the Zone. And you gotta keep a firm grasp on that reality out here, buddy - dreamer types don't last long in the Zone. + + + Yeah, and all the artifacts there are worth their weight in gold and are presented to you on a silver platter while you're getting your feet rubbed... I'm joking, of course. I doubt it exists, although it would be nice if it did. We could even set up a hospital there without the need for any medics - folks could just show up there and heal... Damn, what a pipe dream that is. + + + Ever meet a stalker called Magpie? + + + I struggle to remember all the people in Duty and you're asking me about stalkers? They have their base over at Skadovsk - go ask there. + + + No, I haven't. + + + Do you know who could have stolen things from a personal box? + + + Here we go! That would never happen at Duty's base but this place is full of those Freedom punks - that's where I'd look first. + + + Who could help me with decrypting something here? + + + There's a technician called Nitro over at Yanov station. He's pretty good with electronics. I once forgot the password to my PDA and he cracked it in five seconds flat! + + + Yanov is where you need to go - look for Nitro, he's good at this stuff. + + + I have the Duty trader's PDA. You know anyone who would be interested in it? + + + A trader in Duty? That's impossible! Then again, if you have some information then you'd best hand it over to Lieutenant Colonel Shulga and let him deal with it. + + + Where can I find tools around here? + + + There's a whole plant nearby. Of course, it may have already been looted by now, but I'd still check the plant warehouses if I were you. + + + I'd start looking in the old workshops if I were you. You might also find something in stores. + + + There's only mutants and anomalies around here. Hah! I wouldn't look in anomalies, and burers and controllers won't help you with that either. + + + Actually, there's a train under the bridge around here. I've seen them before - they're usually used to transport technical personnel, so you might be able to find some tools in there. + + + Who can unblock a memory module? + + + Nitro - he's the only person at Yanov station who knows anything about that kind of thing. + + + You need to see a technician about that. The only decent technician around is Nitro at Yanov. + + + Who could break into a steel container? + + + They say there's a technician among the stalkers. He's a drunk but he knows what he's doing. Talk to him. + + + Hah, you might as well carry a safe around with you. I'm sure Nitro won't be able to help you with that... if it had an electronic lock, it might be a different story... + + + I'm looking for a stalker called Snag. Do you know where I can find him? + + + You'd better ask the stalkers - they know their own. I've never heard of Snog or whatever his name is. + + + Do you know anything about the crashed helicopters? + + + Who might be interested in information about Duty's founder? + + + Our commander, of course. Report everything you know to Shulga and you'll get Duty's gratitude for sure. + + + Yeah, our scouts saw a military helicopter descend towards the reserve pads by Jupiter. They said they kept signaling them to change course but I guess the pilots had other things to worry about. I wonder if the army boys managed to get out of the mine field OK. + + + Not around here, no. Our presence here is limited... try asking our boys near Yanov. + + + Our patrol reported that a military helicopter attempted a crash landing near the Jupiter plant. Unfortunately, the chopper crashed right into the roof above the workshops. There are probably no survivors - the patrol didn't receive any distress signals after the crash. + + + You seen any military around? + + + Who could be interested in maps of the area between Zaton and Jupiter? + + + Someone who has some use for them. I'm talking about Pilot - he's a guide on the route between Yanov and Skadovsk, so he'd find those maps useful, that's for sure. + + + Military? I've not seen any around here, but we don't spend much time in this area. + + + A soldier's corpse was spotted in the mine field recently. He's probably one of the fellas that flew in in that chopper. The chopper carries up to eight people in addition to the crew, so they must have found a way out, though nobody knows where they went. + + + A military fella was seen at the scientists' bunker and he only got there recently. I don't know the details. + + + Some guy in military uniform was seen entering a building by the Volkhov AA complex the other day. It's quite possible that it was just a zombie mistaken for a soldier though. + + + Stalkers spotted a military unit near Jupiter plant. Judging by the description it was special forces. They were accompanied by an unidentified stalker and headed towards Pripyat. This sounds reliable, but experience shows that information like that usually can't be trusted. + + + Do you know how to get to Pripyat? + + + Who could I hire to protect the scientists? + + + They won't find better protection than Duty will provide. Go see Lieutenant Colonel Shulga at Yanov - I'm sure the two of you will work something out. + + + Nah. While they've got Freedom people working for them, we'll stay well away from that place. Listening to those idiots crack their shitty jokes all day long is a fate worse than death. + + + Duty has no reason to look for a way to Pripyat at the moment, but we're collecting information anyway. There are unconfirmed reports that tunnels under the Jupiter plant lead to Pripyat. Checking this information would require searching everything in the plant area thoroughly. + + + No. If you need that kind of information you'll have to speak to a civilian guide - our scouts have enough on their plates as it is. + + + Our scouts regularly check the area for safe paths to Pripyat, but that hasn't yielded any results as yet. + + + Can you suggest anyone that's not too tied down who'd be willing to make a move for Pripyat? + + + Duty's presence in this area is limited. Speak to our people at Yanov. + + + There's a rumor that the scientists have a military guy in their bunker. He hasn't got much of a way out, though. You see, the scientists are there for twelve to eighteen months and he's not going to get to the edge of the Zone on foot and on his own. Considering that, I bet he'd be interested. + + + I suggest you look among people who're after adventures. For example, there's a stalker called Vano over at Yanov station. He doesn't care what kind of shit he gets himself into and he could be useful - that boy can find a way through an anomaly with his eyes closed. + + + Well, you could start a recruitment campaign in a mental hospital... Then again, I know a good alternative - Monolith fighters. Speaking of which, a squad of them was spotted near AA complex and they probably even know the way to Pripyat, too... Hey man, I hope you're not taking me seriously... + + + Look for volunteers in Duty. Strider, for example. He hasn't got a mission yet, so I figure the Lieutenant Colonel might let him go with you. + + + Everyone knows that Duty's got the best fighters... but we've got other objectives at the moment. + + + I found an unusual shooter. Do you know anyone who might know something about it? + + + Well, I'll be! That's some cannon! Did you make it yourself or did you really find it? I've never seen anything like it... Ask the technicians. + + + Who could I hire to take measurements for the scientists? + + + That's a dumb question - Duty, of course. We've got lots of folks with experience and we've worked with the scientists before. Go see Lieutenant Colonel Shulga - I'm sure he'll find a squad for the job. + + + Who'd want to work there if the bunker is protected by Freedom? Those friggin' pacifists are so stoned most of the time they're just as likely to shoot each other as the enemy. + + + I found a very strange artifact. Can you suggest a buyer? + + + Artifacts are all strange and I wouldn't advise carrying it on you either. Hand it over to the experts and be done with it. + + + You should show that thing to stalkers - they're experts in that kind of shit. Better still, show it to the person they sell their artifacts to. + + + I found a whole bloodsucker lair nearby. What are we gonna do? + + + Duty squads are not currently engaging in purging operations in this area, so the lair will have to wait. + + + OK, forget about it. + + + Listen, I have a question for you... + + + Shoot. + + + What do you think about Nimble? + + + I've not heard much about him... You'd best ask the stalkers, he's one of them, ain't he? + + + You hear anything about the Oasis? + + + Loads... A nice story, I'll give you that. A palace in the sands, an island in the mist, a castle in the sky... Shangri La, Eden... the Oasis. Every free person has a dream and I don't blame 'em for it. + + + Well, I did hear an interesting story from this one stalker. I think he was the first person to mention the Oasis to me. He said that according to legend, all your wounds heal there and you become calm and relaxed, as if you're not in the Zone at all. I haven't seen him since... It was only after he left that I remembered that he used to walk with a limp, but when he left he walked straight and looked like he'd gotten a hell of a lot younger. + + + Yes, free stalkers gave me the coordinates... Ten different sets of coordinates. Putting them together gives us an area from the Scorcher to the CNPP with the Yanov bar somewhere near the center. It's entirely possible that we're in the Oasis right now, so enjoy it! + + + Ever meet a stalker called Magpie? + + + Nah. I don't know many free stalkers around here. + + + Magpie? Nah, but that's a cool name. + + + Do you know who could have stolen things from a personal box? + + + Nah, there's no one like that here. We've got folk who'll snatch a bite of your bread or a sip of your drink when you're not looking, but no outright thieves... + + + Who could help me with decrypting something here? + + + I heard that Nitro at Yanov is a fan of combinations and algorithms. I'm not sure though, I've never really spoken to him - he's working for Duty, so he ain't got much time for us free folk. + + + I'm not much of an expert on local experts... Ask our boys over at Yanov next time you're there - they'll know for sure. + + + I have the Duty trader's PDA. You know anyone who would be interested in it? + + + That sounds interesting! I'd give it to Loki, our leader at Yanov. He'll make sure that free stalkers know what kind of folk Duty recruit into their ranks. + + + Where can I find tools around here? + + + At the plant, dude, where else? It's not exactly lively in there, but the warehouses will cheer you up. It's a bit safer and you're bound to find some decent tools in there. + + + That's a good question, man. Let's think about this one. Where do you find tools outside the Zone? Now, if you got half a brain, you buy them in a store... If you don't, you look for the tools and a brain in a workshop. Right? It's the same thing in the Zone - you have to look in the same places. It's that simple, stalker! + + + Tools? Listen, man, is that code for something? There's no pigs here or anything, you can speak freely... Oh, you're serious? In that case I really don't know. + + + Well, I heard that one of our boys was looking for tools and he got into the train under the bridge. Apparently, there's a Tesla there... Anyway, he said it wasn't fun in there... Why am I telling you this? Well, he said he saw tools lying around, but decided to leave them 'cause it wasn't safe. + + + Who can unblock a memory module? + + + Well, Novikov in the scientists' bunker can do it. He's fast, good and polite. There's also Nitro at Yanov, the Duty hanger-on. He's cheap and shitty, but he'll probably do the job. + + + A skilled technician, I guess. The local one is more about mechanical stuff, so unless you need your memory module's barrel rifled, I suggest you ask at Jupiter. + + + Who could break into a steel container? + + + Well, Cardan at Skadovsk is supposed to be good. People say he knows what he's doing, even though he's drunk most of the time. He might be able to help you crack that container. + + + Anyone who breaks into steel containers for a living? Nitro the local technician won't do, though. I hear he's more into breaking into other people's electronics. + + + I'm looking for a stalker called Snag. Do you know where I can find him? + + + Never heard of him... I'd ask other free stalkers if I were you. + + + Do you know anything about the crashed helicopters? + + + Who might be interested in information about Duty's founder? + + + Loki, no question about it. He's our leader here at Yanov. Even if he doesn't know what to do with the info - the main thing is that Duty doesn't get its hands on it. Can you imagine how much propaganda bullshit that'll generate? I get a friggin' headache just thinking about it. + + + Yeah, you heard that story about the chopper in the mine field? Basically, the jarheads crashed onto the reserve landing pad which their fellow jarheads mined six years back. Now some folks say they did it out of stupidity, but I figure there's more to it than that. Look at it like this: nobody is gonna go there, so once the army boys complete their mission they can return to the chopper, patch it up a bit and off they go. I'd love to know what their mission is... + + + I ain't a local buddy, I don't know shit. Pop in to see us at Yanov - our boys will tell you everything you want to know and everything you don't for good measure. + + + Yeah, some boys spotted a chopper flying real messy like the other day. It didn't land in a good place either - right onto one of the Jupiter roofs. The said it crashed and then went through the roof into the building, dragging all kinds of crap down with it. + + + You seen any military around? + + + Who could be interested in maps of the area between Zaton and Jupiter? + + + Pilot for sure, man. He's the main free stalker guide around here - if you want to talk maps, he's the one you want. + + + Chill, dude. There ain't no cops, no jarheads and no friggin' militia around here - you're as safe as can be in the Zone. + + + No, but some fellas told me they saw an army unit crawling through the mine field by the helipads. Those fellas thought about helping them but decided against it. The jarheads are an unpredictable breed, you never know when they'll snap and shoot you in the back. + + + I ain't seen any myself but rumor has it that there's a jarhead at the scientists' bunker. Ozersky, the biologist, said that he's from that chopper which crashed into the plant... The joke doing the rounds is that the nerds have got themselves a pet soldier. + + + Not personally, but I heard some things from free stalkers. They said that a jarhead was spotted by the Volkhov AA complex. Gotta be a ghost or a zombie that's woken up... what do you reckon? + + + Nah. This one fella was sayin' that he saw seven soldiers following a free stalker past the radio plant towards Pripyat. There ain't been any weed in the Zone for a while, so I figure that's gotta be crazy talk, pure and simple. + + + Do you know how to get to Pripyat? + + + Who could I hire to protect the scientists? + + + Freedom, us in other words. We work with the scientists all the time, so guarding them would be piece of cake for us. Talk to our boss Loki over at Yanov - he'll agree for sure. + + + I ain't sure, friend, 'cause from what I've been hearing the eggheads hired a Duty squad to work for them... We'd love to guard the scientists, but staring at those constipated Duty faces every day just ain't worth it. + + + They say you can get there from Jupiter... I mean the plant, not the planet... Hah! That's a good one, you gotta admit! + + + You know, I ain't got a clue. Just can't find the time to go there... I'd ask Pilot in the camp, yeah? He's a free stalker and knows the area better than anyone. + + + Bro, if I knew I'd have gone there a long time ago. Getting away from Duty, the jarheads and all this fighting would be worth it... + + + Can you suggest anyone that's not too tied down who'd be willing to make a move for Pripyat? + + + Sorry, friend, I don't know anyone at Zaton... Take my advice and ask our boys at Yanov. + + + You know the scientists' bunker? Well, they've got a situation on their hands over there. First Garry, the stalker, decided to make for Pripyat and now the jarhead who's there got the same idea. Garry is a loner and proud of it, but that jarhead is exactly what you're looking for. + + + Vano at Yanov is as good as any. He's a decent fella and he could have joined Freedom any time if he wanted. I gather he ain't keen on our struggle with Duty... or any kind of struggle, for that matter. That's his view of things and we respect it! + + + Sure thing. One of our guys spotted a squad by the dry lake. They're bound to know Pripyat like the back of their hands and they don't seem to be working for anyone. They're sure to be brave, too, 'cause they're Monolith fighters! + + + Yeah. Strider, the leader of our new recruits... it seems he feels uneasy in our ranks. His boys have adapted just fine but he's not all that happy here... Speak to him - I hate to see a good man being where his heart don't lie... + + + Nah, no clue. + + + I found an unusual shooter. Do you know anyone who might know something about it? + + + You didn't find a manual to go along with it, did you? No? No idea then. + + + Who could I hire to take measurements for the scientists? + + + I reckon our boys could do the job. Freedom has its share of smart folks and if we don't know something we'll ask at the bunker. We'd love the opportunity to help science! Speak to Loki at Yanov - I'm sure he'll say the same. + + + Me and the boys would love to do it, but Duty's guarding the bunker these days. Popping in to see the scientists is a problem as it is, but being there every day just wouldn't be healthy, that's for damn sure. + + + I found a very strange artifact. Can you suggest a buyer? + + + You need a collector, buddy. You won't find one at Yanov , seeing as even some stalkers are afraid of coming here. You'd best ask at Zaton, it's a bit quieter in those parts. + + + You know Beard, the barman in the free stalker camp? He buys up artifacts and don't rip you off too much either. A nice fella, whichever way you look at it. It's a pity he don't work for us, really. + + + I found a whole bloodsucker lair nearby. What are we gonna do? + + + Man, you gotta warn the free stalkers - they've got their main camp around here, after all. The Zone's wildlife is valuable, to be sure, but I'm more concerned about the people in this place. + + + OK, forget about it. + + + Listen, I have a question for you... + + + Ask away. + + + What do you think about Nimble? + + + I ain't had the pleasure... You'd best ask some Skadovsk regulars. + + + You hear anything about the Oasis? + + + I've heard everything about the Oasis! It's a legend, a myth... every stalker expects something different from it and every damn one of them claims to know the exact location. It's a pity the only thing those locations have in common is that they're friggin' hard to reach. + + + Well, they say that wounds heal instantly there and your energy is replenished in minutes... They say no disease or sickness can last in the Oasis, not even radiation poisoning! The one thing I know for sure, though, is its whereabouts... Wanna know? It's in the center of the Zone! But you gotta keep this between us, not a word to anyone! + + + I heard that any mutant you meet there will just walk on by without so much as looking at you. They also say that there's an artifact there called the Heart of the Oasis... Nobody knows what it does exactly, but one thing's for sure: you shouldn't touch it. Anyone who takes it won't have no place in the Zone no more... Location? Man, everyone knows it's in Pripyat under the Ferris wheel! I mean, where else would it be? + + + Ever meet a stalker called Magpie? + + + Sure have... No idea where he is now though. + + + Hrm... Never heard of him... + + + Do you know who could have stolen things from a personal box? + + + Err, no? Ask the senior folk at Yanov, they might be able to help you out. + + + Who could help me with decrypting something here? + + + Nitro at Yanov, who else? He loves that complicated technology shit... a lot more than he loves dealing with shooters. + + + Nobody I know. Ask at Yanov - they've got an expert there of some kind. + + + I have the Duty trader's PDA. You know anyone who would be interested in it? + + + You know Owl at Skadovsk? I reckon he'd be glad to get his hands on it. He likes to get involved in sensitive business... + + + There used to be a fella called Owl on Skadovsk over at Zaton. He deals in information... your PDA might be of interest to him. + + + Where can I find tools around here? + + + A stalker told me that his old man was working in the substation workshops before 86. He said they had all kinds of equipment there, so I'm guessing there will be tools, too. It's probably all rusted to shit by now, but it might be worth a look anyway. + + + You know the sawmill in the wood on the hill? There should be some tools there, unless someone got to them first, that is. I doubt that, though: the closer you get to that place the more you feel like shitting your pants and running the hell away. It ain't even the radiation that's scary, I'll leave it at that... + + + Well, the Jupiter plant is right here and there's bound to be some tools in there. Personally, I wouldn't go near the plant itself... that place gives me the creeps. You could have a look in the Jupiter warehouses, the ones on the side of the plant. + + + I heard there's a couple of places in Pripyat where you can find all kinds of technical junk. One of them is supposed to be the old Soviet department store. It was pretty much the only place that had anything useful for sale back in the day. + + + How am I supposed to know? Check in old workshops or stores, there could be something usable there. + + + To be honest, the last place I saw decent tools was in Sidorovich's bunker at the Cordon. Sure, you have to pay for them, but they're new and not all that expensive either. + + + You know, buddy, I didn't come to the Zone to search for tools. Think about it, how much use is a radioactive hammer? + + + I heard a rumor that you can pick up bits and pieces at the old service center... You might be able to find tools there, too. But just as with anything else: the only way to get the good stuff is to get to it first. + + + Good question... I'd check in the old train under the bridge if I were you. Don't ask why... My gut tells me you might find something. + + + Who can unblock a memory module? + + + Let me think... Well, Nitro at Yanov will be able to do it for sure. Other than that, there's also Novikov, the scientists' technician and a real pro. You gotta think about what you want though, 'cause Nitro is a lot cheaper. + + + Well, you'll need a technician, but the only one around here is Cardan. Thing is, after that many years at the bottom of a bottle, he's not exactly safe around complex electronics. I'd ask around at Jupiter if I were you - they've got the right experts there. + + + Who could break into a steel container? + + + Cardan at Skadovsk, I guess. I mean, the way he cuts through padlocks is a joy to watch. + + + A technician of some kind, I suppose. Nitro probably won't do it though - he's not into the rough stuff. + + + Hah, you're asking that in Pripyat?! Take my advice and look for someone a bit further away from the center of the Zone. + + + I'm looking for a stalker called Snag. Do you know where I can find him? + + + Better ask Beard, the barman over at Skadovsk. He usually knows where stalkers are. + + + Snag? How the hell should I know? You'd best ask at Zaton, he hangs around there a lot of the time. + + + Do you know anything about the crashed helicopters? + + + Who's interested in information about Duty's founder? + + + I'd have a chat with Owl, the information trader at Skadovsk. You can bet your ass he'll be interested in credible info on a legend like that. + + + I saw one myself... It didn't look like it crashed but it wasn't flying good either. It was swinging from side to side until it landed on a plateau in the south of Zaton... It'd be interesting to see whether anyone survived... If we only knew a way to get up there. Actually, I heard Noah from the psycho barge might know... + + + I heard about a few military choppers crashing not far from here... People say different things, but there's one I remember clearly. They said it landed on the reserve helipad that jarheads themselves mined back in the day. Can you believe the irony in that shit? My old man used to say: "Don't dig a hole for another, 'cause you'll be the one that falls in it." True, ain't it? + + + A buddy of mine told me this story... He went to the Iron Forest to get some artifacts and as soon as he got there he heard this crash behind him. He turned to see what it was and saw a chopper coming towards him at full speed, taking down pylons and shit on its way. He bolted the hell outta there... I'm surprised he made it out without landing in an anomaly. You won't have much trouble finding the Iron Forest - you can see it from miles off. It's full of friggin' poltergeists, too, so keep your wits about ya. + + + I heard one landed on the southern plateau but getting up there ain't easy. The other thing I heard is that someone spotted Noah on the edge of that plateau, which means that psycho knows a way of getting to it. + + + I've not seen any myself but rumor has it that one crashed right into the plant... Nobody wants to check it out though - the place is just too dangerous. + + + One stalker told me he saw several military helis getting into some trouble... He saw the engine on one light up and then it went straight down into a swamp full of anomalies. You'll be able to get there easy enough, but the swamp itself is a friggin' nightmare... It's no place for humans, believe you me. + + + You seen any military around? + + + Who could be interested in maps of the area between Zaton and Jupiter? + + + Pilot, who the hell else? He's a guide, you know? Constantly making trips between Skadovsk and Yanov, so he'll find a use for your maps sure enough. + + + This ain't Zaton or Jupiter, so these maps are useless here, right? Ask around in those places and you might have more luck! + + + I didn't see any myself but I heard a story about some soldiers getting down from the southern plateau on the sewerage works side. Apparently they tried to get down all proper at first, using cables and shit. But then gave up and slid down on their asses, hah! Zone bobsled - gotta love it! + + + I heard a conversation at Skadovsk about five or so jarheads who were spotted coming out of a drainage tunnel by the swamp. They said the soldiers were dirty as hell, and one of them you couldn't even tell from a swamp bloodsucker, covered in slime from head to toe. + + + Not personally, but a friend of mine saw a military unit engage a group of mercs by the processing station. But by the time he found a nice spot to enjoy the show it was over 'cause the jarheads fell back. No casualties on either side either... typical, ain't it? + + + Apparently ten or so jarheads were spotted hanging around Noah's barge. Now, given that the psycho was alive at this point, he probably came to some sort of agreement with them... which is just like him. Obviously nobody wanted to ask Noah about what happened - you never know what to expect from that crazy son of a bitch. + + + I heard something explode at night and then someone at Yanov told me that they saw a dead jarhead in the old mine field and an abandoned army chopper behind him. Seems they couldn't tell where they landed in the dark and went straight across the mines. Nobody knows how many of them made it out of there, but I doubt he flew that chopper in on his own. + + + I've not really seen any military... but I've heard rumors that a jarhead is hanging around with the scientists. The story goes that Garry, a stalker, found him when he went into the missile complex to look for his buddies. Now, the complex is crawling with zombies who aren't exactly friendly to stray humans, so Garry basically saved him from certain death. + + + No, but I heard that a jarhead was spotted by the Volkhov AA complex. I don't really believe it though... They could be lying or maybe they just can't tell a zombie from a soldier. + + + Military? Well, I heard people saying that "a whole military unit lead by a stalker" was making its way past the Jupiter plant, but I didn't pay much attention to that gossip. + + + Do you know how to get to Pripyat? + + + Who could I hire to protect the scientists? + + + You know Spartacus and his squad? You know, the stalkers at Zaton? They're good people and decent fighters - they've been there, done that and got the T-shirt. I have a feeling they'd like the idea of guarding the scientists. + + + Did you run into Hatchet's squad by the substation workshops at Zaton? They've got their problems, like all mercs, but at least they ask questions first and shoot later. I'm guessing if you manage to sign them up for this job, the scientists will be pleased and stalkers can relax a little, too. Everyone's happy, right? + + + Erm... Nothing comes to mind... No, sorry. + + + What I know for sure is that there's no way of getting there from Zaton. Everyone who was bursting to get to Pripyat headed towards Jupiter, so you should ask around in those parts. + + + Well, rumor has it that there are secret tunnels to Pripyat underneath the Jupiter plant... The thing is, these rumors usually get told after the second round, and then Jupiter is such a friggin' nightmare that nobody dares goes near it. + + + How should I know, dude? You got any easier questions for me? All I can say is that you should find Pilot and talk to him - if anyone can help you, it's him. + + + Hah, if I knew the way to Pripyat I wouldn't be here. Why do you think I went towards the center of the Zone? Pripyat is full of artifacts, man! Whoever gets there first is gonna be living the high life! + + + Can you suggest anyone that's not too tied down who'd be willing to make a move for Pripyat? + + + I don't think there's anyone like that around here. Everyone who wanted to be closer to the center of the Zone left for Jupiter. That's where I'd ask if I were you. + + + You heard about the jarhead who's with the scientists at the moment? I reckon he ain't got much to lose by going with you. The scientists are not leaving any time soon, he can't reach the Cordon on his own, so he just might be dumb enough to go to Pripyat with you! + + + You know Vano over at Yanov station? He's an honest fella, a good stalker and gullible as hell. Now there's a cat who's better off around anomalies than people - so long as he's here there will always be someone to take advantage of him. + + + Listen man, I heard that a squad was spotted by the dry lake south of the AA complex... Apparently they're not the usual stalkers or Freedom or Duty - they're Monolith men! So if you need someone to go to Pripyat with, they're just the ticket. Haha, you do realize I'm kidding, right? + + + You know Strider, the leader of the new Freedom squad? If you saw his miserable kisser, you'd know for yourself that Yanov ain't the place for him. You should try speaking to him. He might actually go for it. + + + You know Strider, the leader of the new Duty squad? If you saw his miserable kisser, you'd know for yourself that Yanov ain't the place for him. You should try speaking to him. He might actually go for it. + + + Hrm... Nobody comes to mind. + + + I found an unusual shooter. Do you know anyone who might know something about it? + + + Who knows? I'd ask the experts... you know, technicians and stuff... + + + I reckon asking Cardan at Skadovsk won't hurt, buddy. He deals with weapons and he's good... He might even have a brain cell or two left despite his boozing... + + + Who could I hire to take measurements for the scientists? + + + You know Gonta the hunter? I'm thinking he and his boys wouldn't object to working for the scientists. I mean, if mutants become a nuisance, those boys are exactly what you need to deal with them. + + + You heard of Grizzly, Torba and Mitay, the stalkers at Yanov? They work as a trio and they're shit hot! I think they're right for that kind of work... as long as Mitay has managed to stay out of trouble for once. + + + No clue, fella. We got enough of our own shit to worry about here. + + + I found a very strange artifact. Can you suggest a buyer? + + + Don't think so. People around here go for the familiar. Ask around Zaton, it's closer to the edge of the Zone and all that. + + + I'd show it to Beard, the barman at Skadovsk. They say he works with collectors from the outside world and those cats always go nuts for strange stuff. + + + I found a whole bloodsucker lair nearby. What are we gonna do? + + + Wow, you gotta tell Beard at Skadovsk about that... 'cause either we deal with them or they'll tear us a new one. + + + OK, forget about it. + + + Where's the nearest stalker camp around here? + + + What are you, stupid?... I don't know about stalker camps, but the nearest camp around here is Skadovsk. I'll give you the coordinates and I'll even do it for free. Nice, ain't I? + + + Where's the nearest stalker camp around here? + + + I'll upload the coordinates to your PDA... Skadovsk is the only major camp around here. + + + See you next time. + + + I heard about a few crashing... I don’t know the details - gossip ain’t my thing. Sorry if that doesn’t help you much. + + + Man, I’ve got other shit to worry about without your choppers... I mean, I bet crashing a heli hurts like hell, but other than that I don’t know what to say. + + + What are you talking about, punk? You have to smoke some real hardcore shit to see a chopper around here, ‘cause real ones don’t got nothin’ to do in this place. + + + Huh? Nah, man, I don’t concern myself with shit like that. It don’t help with my mission of disseminating knowledge one bit, you know what I mean? + + + Our patrol watched the helicopters descending, but the details of this were reported to the Lieutenant Colonel personally. It’s on a need-to-know basis, and I really don’t need to know this stuff. + + + Where can I find a suit with a closed-cycle respiratory module? + + + Not sure about find, but the right amount of coin will work wonders - if you know where to invest it. Have a chat with Nimble... If you agree on the details, he'll get your rags somehow. I hope you do... we'd enjoy a few days without him here on Skadovsk... + + + Hell should I know? I ain't been here long myself... You'd best ask at Zaton, our brothas there do their own networking. + + + Not a clue. Why, you planning on sticking your nose into an anomaly? Look, if you come into any artifacts, give us a holler. We'll be right there in a jiffy... To congratulate you on a job well done! + + + Where can I find a suit with a closed-cycle respiratory module? + + + How am I supposed to know? Wait... there's this one dude here on Skadovsk, they say he can get you whatever you need. Sits on the upper deck, name's Nimble. + + + Nah, no one's coming all the way out here with an extra suit like that... You'd better ask at Zaton - a step closer to civilization. + + + I have no idea where you'd look for one... Suits like that are rare even among Duty members. They issue 'em only for special distinction in battle or running operations in highly anomalous areas. + + + Where can I find a suit with a closed-cycle respiratory module? + + + I heard some stalkers talk about this man with connections, Nimble or something. He can get you almost anything. You know: gear, shooters, shit like that... not dope. Hangs out at Skadovsk, if you need him. + + + A good question, man... We don't ever wear those here in Freedom... I'd ask stalkers at Zaton if I were you. There might be someone there who runs that sort of business. + + + Heh, whatcha need that crap for? It ain't no good in action. Then again... I guess it can be of some use. Makes breathing easier, and the sun doesn't get in your eyes as much... I might go for one of those myself. Hey, do you know where I could get one?... + + + Where can I find a suit with a closed-cycle respiratory module? + + + Well, my bet would be Nimble. Third deck at Skadovsk. That dude can get you snow in a friggin' desert... His services aren't easy on the pocket though. + + + Let me think... There used to be a man like that over at Zaton, went by Nimble. Try and see if he's still there. I heard he specializes in up-scale items. + + + Dude, you talk about it like it's office supplies or something... No one knows for sure. Pieces like that are few and far between... Consider yourself lucky if you snatch one. + + + Bye. + + + See ya. + + + Laters. + + diff --git a/gamedata/configs/text/eng/st_dialogs_jupiter.xml b/gamedata/configs/text/eng/st_dialogs_jupiter.xml new file mode 100644 index 0000000..ecb3139 --- /dev/null +++ b/gamedata/configs/text/eng/st_dialogs_jupiter.xml @@ -0,0 +1,3885 @@ + + + + What do you want? + + + I have to speak to Jack. It's about Vano's debt. + + + Go on, then. + + + OK. + + + I'm just taking a walk. + + + This ain't a public park, buddy. Take a hike. + + + Do you know who could have stolen things from a personal box? + + + No, but I have my own shit to worry about... You lost some material things but I could lose my life... + + + Theft, deception... Man, what is the world coming to? I didn't see anyone, but whoever did it is long gone, I'm sure of it. + + + Let's go see Zulu. + + + Of course. We should pay a visit to Hawaiian on the way to buy my suit back. + + + Let's go. + + + I'd be happy to, but I don't feel like being caught by an emission with my pants down. Let's wait a bit. + + + We'll need a suit with a closed-cycle respiratory module to get to Pripyat. + + + Man, that sucks! My suit has one - you can stick your head into an oven and breathe just fine, but I pawned it at Hawaiian's. If only we could get it back - I'm broke and we'll need 5 grand... + + + I could give you money for the suit. + + + Just like that? Are you serious? + + + Here, take your 5 grand. + + + You're really saving my ass here, friend. I'll follow you wherever now! + + + I'd give you the money but I don't have 5 grand. + + + It happens to the best of us, friend... Believe me, I know. + + + I'll think about it. + + + Of course... It's your money, after all. + + + So, will you give it to me or what? + + + I'm putting a team together to go to Pripyat. Wanna join me? + + + You helped me, friend, so I'll help you. + + + I'd love to, man, but I can't leave here while I've got this debt hanging over me. That wouldn't be right, and besides if we ran into them on the way they'd shoot me down like a dog. Those bastards don't care who they kill... + + + So, are you ready to head to Pripyat? + + + I'm like more than ready and stuff! + + + Well, come in. What do you want? + + + You've paid the debt, now get outta here. + + + They were arrogant bastards - I had to take them out. + + + I paid the money, so you're not in debt anymore. + + + Wow, thanks man! I won't forget this. + + + Not great, they made me pay interest, too. + + + That's not good... But they'd charge me even more, believe me. Thanks for your help! I won't forget this. + + + I haven't been to see them yet. + + + Hurry up before they make you pay more. + + + I went to see them but they're demanding interest on the debt. + + + What are they, crazy? I barely put that much together... Do you think you can convince them to forget the interest? You'll need a good weapon - force is the only thing they respect. + + + What did you say about your debt? + + + Well... I had an old suit that was starting to wear out, so I figured I need a new one. Soon as I thought that, I saw a brand spanking new suit for sale... It had a closed-cycle respiratory module and everything... I counted my money this way and that but came up short every time... Then Jack, the seller, said to me, "Don't worry Vano, you can pay me the rest later." I was like, "What a nice guy!" and all that... + + + OK, and? + + + I sold my old suit, got all my cash and brought it to him. Jack was like, "Well done, Vano, but what about the interest?" I thought, "Yeah, he's right... I need to get the interest to him..." I put together some more cash and took it to him. When I got there he said, "While you were out, more interest built up, Vano." Seems the interest grows so fast I can't catch up... I had to pawn the new suit and my weapons, too... + + + So, what now? + + + I want to pay him the money I've earned. There's nothing more important than Vano's reputation... But I'm scared. Could you go see Jack instead of me to pay my debt? + + + OK, I will. + + + The only thing is, when you go see him make sure to whip out a powerful gun or something. Show them you're not one to mess with and they'll give you some respect... + + + I'll work it out. + + + I'm too busy right now. + + + I've had enough. + + + So, can you go see Jack instead of me to pay my debt? + + + OK, OK, don't shoot, I'll pay the debt... Err, sorry, I thought you were someone else... + + + How did it go with the bandits? + + + Hey man, it's good that you came! + + + Hey. + + + We have visitors... A stalker to see Shishak for a word... You come carrying gifts or you got business to discuss? Either way, spit it out, buddy. + + + I didn't think you'd be back... So, what do you have for me? + + + What else is there to discuss, stalker? + + + What do you want? You tired of dragging your loot around or something? We can help you with that. + + + I need to talk to your boss. + + + Hey buddy, I ain't got time for this shit. Get outta my face, pronto! Do it now or I'll help you on your way with this here shotgun. + + + OK, OK - I'm leaving. + + + I'm here about the captive stalker - I want to see your chief. + + + Hrm... Go on then, but you keep it clean and tidy or we'll put you in the ground in no time... Keep going straight and then through the passage in between the containers. Got it? + + + Yep. + + + I was just passing by, I'll disappear now. + + + I'm here about the captive stalker - I want to see your chief. + + + What else do you want? Screw off! + + + OK... + + + Lookit, sucker, you tryin' to insult me or somethin'? You brought enough dough for your punk ass friend, but you ain't paid us for safe passage! That's poor thinking on your part, ya feel me? + + + How much are we talking about? I've gotta get to the base though, so keep that in mind. + + + Oh, you really are a funny guy! This ain't no whorehouse, buddy, we ain't got no friggin' price list... Empty your pockets, bitch! + + + OK, here it is. + + + OK, I'm going. + + + What?! You want to take all my loot? No way! + + + I paid the ransom. There's nothing else to discuss. + + + OK, stalker, we've earned our fee now. Time to go. + + + Thanks, guys. See you next time. + + + Wait. There could be more bandits hiding in cover. + + + OK, time to go. The kid didn't make it, but we've done the best we could... + + + Wait, we ain't done yet! + + + Got ya! + + + Come to Pripyat with me. + + + I'd best stay here for now and make sure that Mitay stays out of trouble. + + + Hey, stalker! Thanks a bunch for getting Mitay out! We were already starting to put a squad together... Here, take this as a token of our gratitude. + + + Hey, stalker! Thanks a bunch for getting Mitay out! You're a beast, taking all those bandits on by yourself... Here, take this as a token of our gratitude. + + + Hey, stalker! Thanks for helping get Mitay out! Personally, I didn't think that paying the ransom would work out too good... I'm sure you could use a little cash, so take this. You have our gratitude. + + + Hey, stalker! Thanks for helping get Mitay out! I was right about the whole thing. You can never give in to bandits! You gotta put some heat on them... And you got the balls for it too. Here, take this - everyone got a piece so it ain't much, but we are truly grateful. + + + So, how did it go with the ransom? + + + Still working on it. + + + So, what's up? When are you gonna put some heat on the bandits? + + + Soon. + + + Did you change your mind or are you having trouble with the bandits?... Oh well, do what you need to do but do it fast - we don't want them losing patience and wasting Mitay. + + + I'll work it out. It'll be all right. + + + I'm glad to see a pro like you, stalker! + + + Man, that was a good guy we lost there... Poor Mitay... We couldn't save him - good friends we are! + + + What can you do? + + + Come to Pripyat with me. + + + I only came to this place to keep my friends company, so I'll stay here with them. + + + Hey, thanks for Mitay... We were just about to head over there with the ransom money. Things worked out real good, that's for sure... + + + Hey, thanks for Mitay... How did you manage to convince them? Man, I've got a lot to learn from you... + + + Hey, thanks for Mitay... I was right, wasn't I? Negotiation is the key to success! + + + Hey, thanks for Mitay... I still think it's better to negotiate, but things worked out all right in the end, so it's all good. + + + Back off - I don't feel like talking to you right now. + + + OK, take it easy. + + + Hello, Mr. Pro! + + + Poor Mitay... He was just a kid... He had his whole life in front of him... + + + What can you do? + + + Great, we're all here. Grizzly told me about you... The plan is simple: the boys get in position to attack around the perimeter and I pick off the sentry from my position - that's the signal to begin the assault... Take note of our positions and do whatever you feel is best. I'm sure you've got your own idea of what to do... Ready? + + + I'll keep that in mind. Let's go. + + + Wait, let me think about it. + + + You feel like taking a trip to Pripyat with me, Mitay? + + + The scientists are looking to hire some people, how do you feel about working for them? + + + What's the job? + + + Guarding their bunker. + + + Nah man, my bandit adventure was enough. I'll just sit tight right here and take it easy. + + + Taking measurements in anomalies. + + + Hrm... That's interesting. I've worked for the scientists before and since it's you asking - sure, I'll do it. Me, Grizzly and Torba will head for the bunker. + + + Tell me how you got captured. + + + Man, don't ask! It was my own fault. The bandits warned me about it but you know... They started demanding a share of my loot, but the Zone don't belong to nobody, so why should I pay them? + + + Me and the boys told them where to shove it and it seemed like we got away with it. But the bandits turned out to be pretty crafty - they set up an ambush. So, when I was stupid enough to go looking for artifacts on my own they jumped out behind me and tied my hands together before I could even get my shooter out... So that's how it was. + + + Thanks for paying the ransom for me! I won't forget it. + + + Thanks for freeing me, stalker! I won't forget it. + + + Thanks for helping to pay the ransom for me! + + + Thanks for helping to free me, stalker! + + + Thanks for helping, stalker... My friends will definitely reward you when we get back... Let's go to the base together, it'll be quicker that way. + + + Let's go. + + + You go, I'll drop by later. I've got some business to finish up here. + + + Man, I thought I was gonna die here... Wow, did Grizzly and Torba hire all these people?! Holy cow! I ain't seen a shootout like that in my life! Can we get out of here now? + + + Wait a minute, there could be more bandits around here. + + + Yes. Let's go. + + + Man, I thought this was gonna be the end of me... Wow, you took on all these bandits on your own! You da man! They won't believe me when I tell this story... Can we get out of here now? + + + Wait a minute, there could be someone left around here. + + + Yes. Let's get out of here right now. + + + Thank you, stalker! Let's move before the bandits change their mind. + + + Let's move. + + + We gotta get out here, fast! + + + We can't give in to the bandits' demands. This problem calls for a forceful solution. + + + Exactly! I know a few fellas who'd be happy to help out... We'll pay you too if you don't mind going in as a team. + + + I'm ready to go. + + + Great! I know a group of stalkers who used to serve in a special police unit. You'll have to meet them at an agreed location after 1AM - they'll be waiting for you. + + + OK. + + + Torba's right. There's no point starting a bloodbath while they've got a hostage. We must negotiate. + + + Hrm, you two might be right... Only thing is, if me and Torba go, the bandits won't want to let us out, seeing as we refused to follow their rules. They said they'd bury us alive next time they see us. Now, if you could act as a negotiator... + + + Sure, I'll do it. Give me the artifact. + + + Be careful. + + + It's gonna be fine. + + + We can argue till the cows come home... Our success depends on whoever drives this thing. I'll deal with the bastards myself. + + + Man, I didn't expect that... Good luck to you. + + + I'll be back soon. + + + I agree, but I need some time to prepare. + + + Stalker, help get our buddy Mitay out of trouble, would you? + + + What happened? + + + Mitay is in real trouble... The bandits have started putting their foot down and demanding a cut of the artifacts stalkers find. We told them to take a hike, 'cause we figured stalkers don't owe nobody shit, and that seemed to be the end of it... But they ambushed the poor bastard when he went hunting for loot on his own and now they're demanding a ransom. + + + What are you going to do? + + + Torba is suggesting giving them an artifact as ransom... I reckon we shouldn't give them shit. If we do, that means stalkers are working for the bandits... We should sell the artifact, hire us a solid crew and attack the bandit base. + + + Let's deal with this a bit later. + + + So, will you help us save Mitay? Torba still reckons we should give them an artifact as ransom. And I'm still insisting that we gotta attack the bandit base. We'd have to sell the artifact and hire some fighters to do that... We still haven't decided what to do. + + + You ready? We'll give you the artifact to buy Mitay out with and we'll wait for you at the bar. + + + You paid the bandits a visit yet? + + + Not yet, I'm still getting ready. + + + Yeah, but it hasn't come to much yet. I'll let you know when things become clearer. + + + I was at the Oasis recently and I found an artifact there. You interested? + + + Hah, you don't expect me to believe that, do you? I've heard a lot about the Oasis but I've NEVER heard of anyone who has actually been there. No offense, but I won't be taking your word for it. + + + I have documents from the Jupiter plant. + + + Yeah, take them all. + + + Yeah, take the evacuation order. + + + Yeah, take the meeting minutes. + + + Yeah, take the delivery schedule. + + + Yeah, take the note from the repair workshop. + + + Maybe next time. + + + Who could have stolen things from a personal box? + + + Not my men, that's for sure. Could be someone from Freedom. If we had full control of Yanov things like that would never happen. + + + Tell me about Duty. + + + What exactly do you wanna know? + + + What is it that you do here? + + + Same thing we always do. Protecting stalkers from all kinds of vermin. You've seen how many mutants there are around here and these ain't the cute little puppies you get at the Cordon. For instance, I saw a chimera with my own eyes last night. It was getting dark, so we didn't chase it... Mutants ain't the only problem around here, either. We've also got to investigate and collect evidence from the abandoned laboratories before those Freedom morons get to them. + + + What brought you to the center of the Zone? + + + Are you kidding me? And what brought you here? I'm gonna venture a wild guess and say we're here for the same reason. The center of the Zone has always been an unreachable objective, a place where we were hoping to get answers to all our questions. We wanted to find out how the Zone was created and how it can be destroyed. That's why as soon as we heard the rumor that the Brain Scorcher had been disabled, we made a move for the center. + + + And what did you find out? + + + Plenty, but that's confidential. All I can say is that there is more to the Zone that meets the eye. Some of our people believe that the Zone is a tumor that must be removed at any cost. Given what I've seen, I'm more inclined to believe that the Zone is a living organism and we are nothing more than bacteria that live inside. Even if we combined the military might of every country on the planet, we still couldn't destroy the Zone. That's why we have to be smarter than that: we have to find the reason for the Zone's existence and eliminate it. + + + What if you can't eliminate that reason? + + + Well, if we can't then we'll have to think of something else, but there's still hope. We must do our duty and stay positive. + + + How did you end up in Duty? + + + That's a boring story and there's no heroism involved. As soon as the Zone appeared, Lenya, a friend of mine, decided to come here and check it out. I was a field officer at the time and Lenya was in the intelligence service. Now, we weren't suckers or anything, but we ended up in a real mess. We crawled for hours, wounded and bleeding, until finally Duty picked us up. I made it, Lenya didn't. I had no friends in the Zone, so I decided to stick around here, with Duty. Plus, I've had a thing against the Zone ever since. + + + What's your relationship with Freedom like? + + + Officially we're at war, but life in the center of the Zone has its own set of rules. There are few safe places here and neither Freedom nor Duty boast a lot of manpower. So what's the point of killing each other? That's why the unspoken rule is that we stay out of each other's way. This rule doesn't apply outside Yanov though: out there we're still at war and it's for real, too. + + + OK, forget about it. + + + Oh... OK. + + + I wanted to talk about a member of Freedom called Flint. + + + I don't care about Freedom people as long as they stay away from us. + + + Flint, also known as Magpie, set up stalker hunters at Zaton, took all their loot and made off with it. + + + So? That doesn't surprise me, 'cause Freedom is full of scum like that. + + + There's something else: I met a stalker at the quarry. Before he died, he told me that Flint left him in an anomaly, took the loot and left. + + + Ah, see, that kind of shit stalkers don't forget... even in Freedom. Thanks for that information - we'll make sure it's put to good use. + + + I've got enough dirt on him. I mean, the jackass actually has the nerve to openly boast about doing things that I did. + + + That'll deal a heavy blow to Freedom's reputation. Thanks for the information. We'll make sure it's put to good use. + + + Never mind. + + + OK, it's your choice. + + + I have the PDA of your supply officer, Morgan. + + + I agree. + + + I'll think about it. + + + I agree. + + + OK. + + + Let's have a look... So that bastard was doing business on the side and using our name as cover... If this comes out, our reputation will go straight down the toilet. How about I buy this PDA from you? I'll give you a good price. Will 4,000 do? + + + That's a serious allegation. Show me the PDA. + + + Here it is. + + + It's fair to say I had my own suspicions about him... Now we'll address them fully. Thank you, stalker! I hope nobody ever finds out about this conversation. I have a modest reward for you - you saved Duty's reputation, after all... + + + I'll hold on to it for now. + + + Another one... Very interesting... I'll add it to the case file. + + + Here it is. + + + Thanks! Here's modest compensation for your efforts... + + + Let me hold on to it as a keepsake. + + + I met a group of fighters that want to join Duty. + + + We're always looking for good men. They should pay me a visit and we'll talk. + + + There's one thing though... They're former Monolith fighters. + + + What do you mean "former" Monolith fighters? In my experience Monolith fighters fit into two categories: current and dead. I've never met any "former" ones. + + + It looks like they were under someone’s control - because they don’t remember what happened to them after they left for the CNPP. Now they’re not aggressive at all and they simply don't know what to do. + + + Well, if they’re not aggressive that's a good thing... I mean, I’d find them something that's easy as pie to do and I’d make sure they’ve got their heads straight, too. I’m just not 100% sure about them at the moment... Can you vouch for them? + + + Yes. I trust them. + + + Hrm... Trouble is, I can’t trust you either... yet. Sorry. + + + OK, but remember that if they screw up, you'll answer for it. The fact is they won't make it to Yanov on their own. What you're gonna do is take my boys and lead them to the Monolith squad. They'll talk to them and if everything is cool, they'll be accepted into Duty. Tell me when you're ready to head out. + + + No. I don’t trust them much. + + + We don't accept just anybody into our faction. + + + I'm ready to lead your people to the Monolith squad. + + + Good. I'll send two people with you. + + + Good. + + + Let's do it later, something's come up. + + + Hold it! You do what you want, but I won't let my boys out to get hit by an emission. + + + I found the Duty founder's PDA. You interested? + + + Let's have a look... So that's how it went down... I don't think the others need to know this. It would be better if nobody ever sees this PDA again. Let the legend of Duty's creation stay as it is. Will you sell me this PDA? + + + Take it. + + + Thanks. Here's your reward. + + + I'll consider your offer. + + + Take the Duty founder's PDA. + + + Thank you! You have done me a big favor. Here's your reward. + + + I need fighters to work for the scientists. Can you help? + + + We're always happy to help the scientists. What needs doing? + + + They're looking for people to protect their bunker. + + + Of course, I'll send some of my boys. + + + Of course, I'll send some of my boys. + + + I'd be happy to, but they're already employing Freedom. Sending our squad there would only intensify what is a pretty heated situation already. + + + I'm planning to make for Pripyat. Will you give me a few fighters for this mission? + + + We're short on manpower as it is! Talk to Strider - he doesn't feel at home in Duty by the looks of things, so maybe he'll find what he's looking for with you. + + + We're short on manpower as it is! I'm not sending anyone on a hopeless mission. + + + Talk quickly, leave even quicker. What do you want? + + + I'm listening. + + + Glad to see you alive. + + + I have documents from the Jupiter plant. + + + I doubt there's anything interesting there. The plant was looted even before the stalkers got there. Although... hrm, there's some decent info here. I'd like to show these to someone. Sell them to me, would you? + + + Yeah, take them all. + + + Yeah, take the evacuation order. + + + Yeah, take the meeting minutes. + + + Yeah, take the delivery schedule. + + + Yeah, take the note from the repair workshop. + + + Maybe next time. + + + Who could have stolen things from a personal box? + + + I ain't a guard and it ain't my job to watch your box! My boys didn't take it for sure - they know better than that. + + + Tell me about Freedom. + + + It's a long story. What do you want to know? + + + What is it that you do here? + + + We're making sure that various officials don't conceal anything from the common folk. You know how it is: as soon as they find a new lab or some documents that shed light on the secrets of the Zone, they immediately organize a military operation and clean everything up better than a friggin' hoover. The only way of finding shit out is by getting there first. + + + What brought you to the center of the Zone? + + + Well, the boys felt like taking a stroll in a new place. Just kidding. It's an opportunity to find stuff that the world ain't seen before. Neither the army nor stalkers have been here before, so there's something new everywhere you look. + + + Did you find anything? + + + A couple of locked doors and some weird new artifacts. + + + How did you end up in Freedom? + + + Well, I was friends with Freedom leaders back when there was no Zone. Mind you, in those days they weren't leaders, they were regular hippies. So when I made a move into the Zone in search of artifacts and ran into familiar faces, I figured I might as well go with what I know. + + + What do you think about Duty? + + + They're idiots, that's what I think. I mean, why the hell would they want to destroy the Zone? It's not consuming precious resources or getting bigger... or anything. They could just sit there and study it to their heart's content - just think of how many scientific discoveries could be made... I mean, in the history of man-kind, no one has never been able to understand antigravitation, right? And in the Zone you've got ready-made antigravitation devices lying all over the place. It wouldn't hurt to kick their asses out of here, but it's too much hassle. By the way, don't be confused by our relations here at Yanov. We are at war... it's just that Yanov has been made neutral territory, if you know what I mean. + + + OK, forget about it. + + + No problem. + + + I wanted to talk to you about one of your stalkers. + + + Really? Go ahead. I hope you're not here to snitch on someone? + + + Your stalker Flint is known at Zaton by the name of Magpie. Local stalker hunters are looking for him because he set them up and ran off with their loot. + + + And you expect me to believe you? + + + Just listen to the stories he tells at the bar. First he swindled those stalkers and now he's lying to you lot. + + + OK, chill. I'll contact Beard and see what's what. If what you say checks out, we'll deal with Flint Freedom-style. + + + Hrm... I was wondering how he managed to get that artifact so quickly. I guess half of his story was complete bullshit. I'll speak to my boys. If what you said checks out, we'll deal with him Freedom-style. + + + Never mind. + + + OK. + + + I agree. + + + I'll think about it. + + + Take it. + + + OK. + + + I met a group of fighters that want to join Freedom. + + + Well, we’re always open to good people. They’re welcome to join if they’re up for it. + + + There’s a small problem - they’re former Monolith fighters. + + + A "small" problem? I prefer to see Monolith fighters through my scope. Anything else is out of the question. + + + These ones are peaceful. It looks like they were under someone’s control - because they don’t remember what happened to them after they left for the CNPP. They simply don't know what to do now. + + + Sorry, but I'm still skeptical. What if you're lying to me on purpose? + + + Well, maybe it wouldn't hurt to talk to them and find out what's what. I’ll send a couple of my boys with you. They’ll have a chat and we’ll accept your Monolith fighters into Freedom if it works out. + + + How about you piss off? I can't believe you're suggesting that we accept all kinds of scum into Freedom. + + + I'm here about accepting that Monolith squad into Freedom. + + + My men are ready to go. + + + OK, have them follow me. + + + A bit later. + + + Let's wait a bit. Emissions ain't healthy. + + + I found the Duty founder's PDA. You interested? + + + Well, as long as it's got something useful on it... Wow, that's real interesting. They keep spreading their bullshit propaganda throughout the Zone, but as it turns out their own history is full of crap. I'd love to give this a thorough read. Listen, I'll pay you well for this PDA. + + + Take it. + + + Thanks. Here's your cash. + + + I'll think about it. + + + Take the Duty founder's PDA. + + + Thanks. Here's your cash. + + + The scientists are looking to recruit some people. Can you send anyone? + + + Well, it depends on the job. + + + The scientists need their bunker protected. + + + Of course, I'll send some of my boys. + + + Of course, I'll send some of my boys. + + + I'd be happy to help, but Duty is already there. We spend enough time together with those bastards at Yanov, so we'll pass, thanks. + + + Will you give me a squad to go to Pripyat with? + + + Talk to our new recruit, Strider. He ain't happy here, so maybe you can give him what he wants. + + + If I had anyone to spare I probably would, but I don't - sorry. We've got enough on our plate here. + + + So, what have you got to say? + + + What's your business here? + + + Good to see you, man! I've heard some good things about you in Freedom. What can I do for you? + + + I found a strange item in the railroad tunnel. You interested? + + + Hrm, nah. It's junk. It looks like an artifact but it ain't got any effects. We normally give that kind of crap to the scientists. + + + I found a strange item at Zaton, you interested? + + + What am I supposed to do with it? I'm not even that interested in normal artifacts, so you know... Show it to the scientists - they pay well for all kinds of junk. + + + I'm looking for people to guard the scientists' bunker. You know anyone? + + + You won't find anyone better than Freedom. You could also try to work something out with stalkers, but they're not exactly trustworthy. If they let you down, how are you gonna be able to find them later? I definitely wouldn't suggest you speak to Duty about it. Those fanatics are only good for purging mutants and that's it. + + + I'm looking for people to collect samples for the scientists. You know anyone? + + + Of course. Go see Loki - he'll be glad to help you with that. You could also try to work something out with stalkers, but some of them ain't too trustworthy. + + + Someone stole things from my box. Do you know who it might have been? + + + What is this place coming to, man? I doubt it was anyone from Duty 'cause they've got strict discipline in their faction, too strict for my liking. Nobody in Freedom needs your junk, so it's gotta be one of the stalkers. + + + I met a Monolith squad recently. + + + Wow, I've never seen any! Though I did hear some real bone-chilling stories from the boys. Something about the Monolith people being complete lunatics. Must have been a hard fight, eh? + + + There was no fight. They're peaceful fellas. They told me it was like a veil lifted from their eyes and they regained control of themselves. They simply don't know what to do now, so I'm looking to get them into a faction or something. + + + Wow, that's an interesting one. Well, stalkers aren't an option 'cause they'd probably shoot them down in view of their past encounters and all that... Try talking to Loki. Nobody will touch them if they put on Freedom uniforms. + + + Who could be interested in the truth about the founder of Duty? + + + I really don't know. It seriously depends on how different this truth is from the official Duty line. Show it to Loki, he'll tell you straight. + + + I have the PDA of Duty's supply officer. You interested? + + + Not in a million years. I know where to buy everything he sells a lot cheaper. There's nothing else there that could interest me either. + + + Who could go to Pripyat with me? + + + Pripyat? Wow! Well, I'd love to just drop everything and take off, but I'm real busy right now... + + + Pripyat? Wow! You should ask Loki for some people. I reckon he won't turn a good man like you down. + + + You come to chill? My drinks ain't nothing special but this is a welcoming and friendly place! + + + I got all the shit you're ever gonna need. What are you after? You fancy some chow, a drink or feel like firing off a few rounds? + + + I'm looking for people to guard the scientists' bunker. Can you suggest anyone? + + + Talk to the stalkers. I'm guessing they would be happy to do some work for the eggheads... After all, that would give them an official permit to be in the Zone. + + + I'm looking for people to collect samples for the scientists. Can you suggest anyone? + + + I suggest that you don't get involved with inexperienced stalkers. They won't find anything and they might even lose something if you know what I mean. + + + I met a Monolith squad recently and I wanted to ask you something. + + + You know, every other person that's come across Monolith fighters I've met usually had a few extra holes in them and no pulse. You, on the other hand, look quite alive, so what is it you wanted to ask? + + + This squad isn't like that. I talked to them, I didn't have to fight them. + + + No way!? + + + Yes way. They told me it was like a veil was lifted from their eyes and they don't know what to do now. They asked me for advice. + + + Well, my advice is that they stay well away from stalkers, 'cause they've got too good a memory to let them live. I suppose you could try helping them join a faction, but I don't know whether Duty or Freedom would want to get involved in this. + + + I have a PDA with the truth about the founder of Duty on it. You interested? + + + I don't do gossip, remember that. If you want to sell information, Owl is the one to see. He loves that kind of shit. Then again, given the nature of your info, Loki or Shulga might be interested in it too. + + + I've got the PDA of Duty's supply officer. You interested? + + + I have a feeling that this PDA would mean problems with Duty and I don't need that. Try talking to Owl instead. + + + I need medical assistance. + + + Let's have a look... + + + That's better. + + + Who could go to Pripyat with me? + + + Talk to Vano, a stalker. He's straight as an arrow, to the point that it gets him into all kinds of trouble. + + + There ain't that many crazy folk around here, buddy, so you'll have to look elsewhere. + + + You looking for medical supplies or just here for a chat? + + + Someone stole things from my box. Do you know who it might have been? + + + Do you know that stalker's name? + + + I heard he's fairly new here... What's his friggin' name... Is it Snob? Snack... No, no. Something kinda dead... Snag, that's it! His name is Snag. + + + Wassup, bro'? + + + Hey. I've got important business to discuss with you. + + + Cool, let's have a drink first to make sure we take this important business as seriously as we should! + + + OK, let's drink! + + + Nah, I don't feel like drinking right now. + + + So, what's this business you mentioned? + + + I'm planning to go to Pripyat via the underground passage that goes under the Jupiter plant. Nitro can get the entrance open. + + + Hrm... Going to Pripyat underground... That's an idea... And that calls for another drink. + + + Cheers. + + + Ehh, this is good stuff. I hope you're not planning on tackling this mission on your own? No... That won't do... I'll go with you... and we're gonna need others, too. A couple of trustworthy people are always useful in this kind of thing... + + + Nitro advised me to get a squad together... + + + Yeah, that's a good idea... Let's have another drink to the success of this mission... + + + Bottoms up! + + + I can do it on my own, you know... I mean, at Zaton I took out a bloodsucker lair on my own... A couple of gas tanks and it's party time. + + + Wow, respect man. Let's drink to always having a gas tank to hand. + + + Amen! + + + Trustworthy, huh? Well, this place is full of scum... I met a trader at Zaton but it turned out he was from Duty... + + + Wow, so Duty's rotting from within, huh... What's the world coming to? Oh well, let's stop worrying about it and have a drink. + + + I yield to your wisdom. Cheers. + + + Mmm... nice, ain't it? A squad is a good idea, we need at least three people... You got anyone in mind? + + + I'll find some folks... We're also gonna need suits with closed-cycle respiratory modules... + + + Yeah, safety first and all that... About that: don't worry about me 'cause my suit is all good, but we will need them for the others and it may take a little work - those suits aren't exactly common around here. Here's to a successful search. + + + Cheers. + + + You know this weird fella called Noah? He locked himself in on a barge with all kinds of goodies... His version of hello is unloading both barrels of his shotgun on you. + + + Yeah, I haven't seen him for a while. He and I worked together a while back. He was a good fighter... too bad he's gone off the deep end like that. Let's drink to him and his mental health! + + + To Noah! + + + I met Vano at Yanov some time back and he couldn't seem to pay off his debt to the bandits... Anyway, I helped the poor bastard out... + + + Cool, the trip is sure to be more fun with him around, plus he can carry all the supplies. To Vano! + + + You can say that again, brother! + + + There's a military guy in the scientists' bunker... He hasn't got anything to do, so he might agree... + + + Yeah, we could use an army type... Let's drink to the hope that he joins us. + + + Let's. + + + You won't believe it but I helped a Monolith squad the other day... Suddenly the loose screws in their heads tightened up or something and they didn't know what to do... So I helped them out and they're chilling at Yanov now. + + + Hrm... Looks like this vodka went straight to your head, hah! Oh well, can't have too much of a good thing! + + + True. + + + OK, well that seems to be it - the main thing is to make sure we don't get lost underground... + + + Don't worry - I've got the schematics. + + + Cool. Let's drink another to the success of our mission. + + + I'll drink to that! + + + Ah, relax man... I found the Oasis the other day... That same one nobody else could get to... + + + Wow, you're a real pathfinder, man. We'll find the way to Pripyat in no time with you around. Cheers. + + + Cheers. + + + Howdy! + + + I think we've got enough people. We can move out. + + + You sure? Another pair of hands wouldn't hurt. + + + I'm sure. Let's go. + + + You're right. I'll try to find some more people. + + + Good. Let's roll, folks! + + + Let's go. + + + Fighters are good but have you made sure to protect yourself? You need a suit with a closed-cycle respiratory module before we go... I ain't dragging your dead ass anywhere - my beast of a cannon and ammo is heavy enough for me. + + + Yeah, I got it. + + + Let's wait this one out. Emissions ain't too healthy! + + + Where can I find fighters to join our squad? + + + Ask the folk around Jupiter... The guys who stayed at Zaton won't go to Pripyat for sure. We need fellas that ain't got nothing holding them back... They've got to be willing to join what is basically a desperate mission. Do you remember meeting anyone like that? Maybe someone owes you or you know someone who ain't settled down... + + + We've got enough people now. There's no need to put a division together... We'll use small squad tactics. + + + What do you think about Strider? + + + Monolith people are usually fanatical, fierce fighters... I'm not sure about former members though. Strider looks calm on the outside, but appearances can be deceiving. + + + Wow! Monolith armor. Where the hell did you get that? + + + It was part of a set. This is Strider, a former Monolith fighter. + + + I didn't realize there were "former" Monolith fighters. Oh well, we'll see what he's like when the real shit starts. + + + What are your thoughts on Sokolov? + + + That fella's got an interesting suit on him, scientific and all. I haven't seen one like that for a couple of years, at least. + + + That's Sokolov, the co-pilot of the military chopper that crashed. + + + Well, I can see he ain't no scientist by the way he carries himself. A good soldier will always come in handy. + + + How long have you known Vano? + + + We met at 100 Rads a couple of times. They say he's honest, optimistic and a good stalker... But he's way too gullible and that's a fatal flaw in the Zone. + + + So Vano's along for the ride, eh? Great, we've got ourselves someone to carry all our supplies... Hah, relax man - I'm just kidding. + + + Who could have stolen things from a personal box? + + + Your things were stolen? That sucks. I don't know what to say. I haven't seen anything suspicious around here... If I find something out, I'll let you know for sure. We don't need no rats at our base. + + + I heard there was some shooting around here recently... + + + Ah, that was me. Some idiots decided to get together by the tower... They had an argument or something, started shouting and shit. I fired off a couple MG rounds and they bolted towards the substation. That was it for the moron convention, hehe. + + + I've decided to hand over the Oasis artifact. + + + A wise decision - please pass it to me. + + + Here. + + + Splendid, this miracle must be studied immediately... Oh, by the way, thank you for your services - here is your fee. + + + Do you need help with something? + + + Thank you - we already have a stalker squad working for us. Although... there is a theory, in fact it's more of a legend... Have you ever heard of the Oasis? + + + I'll try to find the Oasis. + + + Sorry, I have too much on my plate at the moment. + + + No, I haven't heard of it. + + + Then listen. Many people talk about it but it seems that nobody has ever seen it. It's like healing waters. If you walk in, your wounds heal and your energy is replenished. There are many rumors making the rounds, one more incredible than the next... Some claim to have seen it in their dreams... but as a scientist I am obliged to ask, "How do you know it really was the Oasis?" If you agree to look for it... Well, I can't promise you a massive fee, but if the Oasis exists, its discovery would help us make a giant stride in our research. + + + I found the Oasis. + + + Really?! It exists, then?! Please don't consider me a skeptic, but did you bring something back as proof? + + + Yes, I found something that looks like an artifact. + + + Pass it to me, quickly! + + + Take it. + + + Splendid, this miracle must be studied immediately... Oh, by the way, thank you for your services - here is your fee. + + + I don't think so. It might be of use to me. + + + That is extremely selfish of you. Not to mention dangerous. The exact properties of this artifact are unknown. What are you going to do tomorrow if you find your legs are paralyzed? Or your skin is turning green? I assure you that such objects are best handled by scientists - at the very least we strive to protect ourselves from them. + + + Your scare tactics won't work on me. I'm keeping the artifact. + + + OK, fine. Take it. + + + No, I didn't. + + + You didn't? So what do you expect me to study? Do you know what makes scientists different from others? The fact that for us any theory must be supported by facts! I need proof! + + + OK, I'll go back there. + + + I've spent too much time on it as it is. I can't go back now. + + + If you don't care about your fee then think about new medical opportunities the Oasis would open up! If I am not mistaken, the Oasis is anomalous in nature... that's the way of things in the Zone. If that is so, it's the first ever anomaly with healing properties! + + + What brings you here? + + + Did you see the mercenaries who were guarding us? + + + It's wonderful to see another intelligent person. How can I help you? + + + Can you believe it? The mercenaries who were guarding us were killed right outside our bunker! + + + Hermann, do you know anything about the Oasis? + + + The Oasis? Hah. It's a lie, pure and simple. People like to believe in a cure-all panacea, so they make up these fairytales. Believe me, the Oasis is nothing more than a figment of someone's inflamed imagination. + + + Many people talk about it. + + + Too many. But none of them have ever been there. I stick to the scientific point of view: what hasn't been proven to exist, doesn't. + + + OK, I see... Thanks. + + + OK. Let's go. + + + Cool... We'll be back before you can say "bloodsucker" - hah! + + + We'll see. + + + Cool... But let's wait for the emission to finish and then we'll go. + + + Good day to you, stalker. I'm Uncle Yar... I guess you're tired from the road, eh... Have a bite to eat, since you're here. You chose a good time to show up, too - I need some help. At my age there are things I can't do on my own. Back in the day, though... + + + So, feeling fresh? You feel like a walk now? You'd help an old man out... + + + How's life? You look better by the day... + + + What's the job? + + + Easy as pie... The two of us make our way over to Kopachy - it's not far from here. The rest you'll see for yourself when we get there... + + + Won't your Freedom friends help you? + + + I don't want to bother them with this stuff... The two of us can handle it, no problem. + + + Will you go to Pripyat with me? + + + Nah... If I was younger... I remember I used to walk to Siberia and back, but I try to keep my trips short these days... Getting old, I suppose. + + + Take care. + + + Wait. If you're going to Yanov, maybe we could go together? Having someone to talk to is always nice... + + + Thanks, I'd prefer to go on my own. + + + Let's go to Yanov. + + + Thanks for helping an old man out... Take this. If you have any questions - ask away. I'll answer as best I can... + + + Why didn't you ask Freedom members for help? + + + What's the point of getting the mercs angry with Freedom? We had one war and that was enough. This is a personal matter... No point involving them, you know? + + + What happened here anyway? + + + Some lads came here to kill me... You see, I was hiding in the bushes minding my own business when a mercenary squad showed up. Their leader was yapping away on his PDA about a central lab in Pripyat, an urgent order, this and that... Then I stepped on a stupid branch and alerted them to the fact that I was there. So I grabbed my rifle and made a run for it, but I always had the feeling that they'd come for me. That's the price we pay for eavesdropping nowadays. + + + The main thing is don't be surprised at anything. Follow me quietly... If we keep it hush hush and don't move, things will be nice and easy. + + + OK. + + + We need to get out of here. We'll talk later. + + + OK. + + + I'm putting a squad together to go to Pripyat with. Wanna join me? + + + Tempting... but no, thanks. The scientists promised me a permit to be in the Zone and they pay well, too. Sorry, but I'm going to stay here. + + + Ready to take measurements in anomalies? + + + We're always ready, as long as you cover us. Which anomaly shall we go for? + + + Let's go to Fen. + + + Let's go past Kopachy village to the Ash Heap. + + + Wait, I've changed my mind about going now. + + + We're ready all right, but we should probably wait for the emission to pass... + + + OK. + + + Measurements taken, let's move. + + + I don't like hanging around here either. Where to next? + + + Let's go to Fen. + + + Let's go past Kopachy village to the Ash Heap. + + + To the scientists' bunker. + + + Wait, let me think. + + + You ready to head back to the bunker? + + + We're more than ready... + + + Well, let's go then. + + + OK, just wait a sec for me... + + + I have a couple of questions. + + + Ask them and I'll do my best to answer. + + + I think that's it. + + + I want to ask about the scientists' mission. + + + Ah, the tunnel... There's something there, a strange artifact or something like that. That place is just too weird. At first it was really calm and then I could feel something in my head... It was also crawling with hamsters but don't worry about them - we'll deal with them easy. + + + You've been there before? + + + Yes. We didn't go far in - we were taking some measurements for Hermann when the hamsters came out in force. When we got back, the scientists got so excited about the results that I thought they were gonna take off. They wanted us to search the whole tunnel from end to end, but I ain't going in there! Now they've hired you and we're only there to provide cover. + + + I see. + + + Well, we've taken measurements before, so we'll manage. + + + Where did you take measurements before? + + + Well, measurements is a big word for a small job. We only did it once for real - the anomalous psyfield in that friggin' tunnel. Even that time, as soon as we turned the devices on, the hamsters started flooding out of every hole - Mace barely made it out with his bits in one piece. + + + Don't you think that's strange? + + + No, why would I? The Zone doesn't like nosy people, so that's normal. That's what Ozersky told me, and it checks out. Ask him if you want, maybe he knows something but ain't sharing it with the rest of us. + + + I understand. + + + I see. + + + What can you tell me about the people who live in the bunker? + + + Well, it's some group, I'll tell you... Two scientists, Hermann, the top dog around here, and Ozersky. They employ Novikov who handles the technical stuff and Garry is their guide. Then there's us - they recruited us recently to take measurements and do other science stuff. Oh, Garry also brought some army dude into the bunker the other day. That's about it. + + + Can you tell me more about Hermann? + + + Hermann is the boss around here - he's a professor from some institute, probably a secret one... He organized the expedition, so they dropped this bunker in here almost immediately after the Brain Scorcher was disabled. He was also the one to recruit Garry and us - he pays well and even promised us an official permit for entry into the Zone. + + + Let's talk about something else. + + + Can you tell me more about Ozersky? + + + He's a good, friendly fella and he's the number two around here. Hermann does listen to his advice now and again, though. I don't know much more about him - Hermann is the one we deal with most of the time. + + + Can you tell me about Novikov? + + + He's like Einstein on vacation, man. He knows exactly what he's doing when it comes to installing technical things; in fact, he's better than just about anyone you'll meet. I don't know how he ended up here but you can tell he's no stranger to the Zone - he knows more about it than we do. + + + Can you tell me about Garry? + + + Garry is a great guy and he was one of the first to show up here. He told me the scientists were being dropped off just as he got here, so he joined them right then. He's been getting bored lately, 'cause he ain't one to sit around, but he can't leave before his contract with the scientists is complete. If you want to know something else, ask him yourself. + + + Tell me about the army guy. + + + Hah. Garry met him as he was running away from zombies. He was lucky it was Garry, too, 'cause most others would have taken him out for sure. He doesn't leave the bunker much anymore and I don't blame him. + + + What are the mercs doing here? + + + Those friggin' cutthroats are guarding the bunker. They showed up some time ago, had a chat with Hermann and stayed. I suppose Hermann ain't too pleased with them either... Their leader is called Black and he's got a personality to match. + + + What can you tell me about this area? + + + Well, there is an old military base not far from here... Then Kopachy village to the north of it, and a train station to the east of that, which is where stalkers hang out. Oh, there's also a train on the railroad nearby... That’s not a fun place, believe you me. + + + Tell me about the old military base. + + + Well, there's not much to say... Anything of value got looted a long time ago, so there's not a lot there now except mutants and zombies. There's also a small bunker there - enough to take cover from an emission. + + + Tell me about the village. + + + Well, it's not much of a village - just a few mounds, really. It was buried back in 86 to prevent it from emitting radiation. People don't go there 'cause it's not a healthy place and there ain't nothing of value there. + + + Tell me about the train station. + + + Can you tell me anything about the train? + + + Well... Yanov station is worth a visit if you've haven't been there before. It's a good place to grab a cold one and catch up with other stalkers, plus it's the only other safe place besides our bunker in these parts. + + + I see you're sporting new equipment? + + + Yeah baby. We're now officially known as Iskra scientific research & investigation team! Don't be thinking that we forgot all about you now that we're scientists, haha! My "colleagues" and I have discussed this matter in great depth and our conclusion is... That you've earned this, buddy! If you find yourself in an anomaly or hit by an emission, God forbid, take a moment to send us a thank you note. We'll receive the message, trust me! + + + Hey. + + + Howdy. + + + So you ready to move or shall we wait a bit? + + + I thought I'd be left to rot in that tunnel as a brainless zombie! How can I help the man who saved me? + + + Feel like stretching those legs a bit? + + + Hey brother. + + + We owe you and I won't forget that. + + + I have a feeling we're done here and it's time to get the hell away from this place... + + + So, what's the story with this tunnel? + + + There's no dust there, not a single little bit of it. Hermann says it's because of the Tesla, but I have a hard time believing that. + + + Ask the boss, I don't know what I can tell you and what I should keep quiet about. + + + Tell me what you found while you were measuring the psyfield. + + + I saw footprints on the ground. They looked like they were human, but who would be crazy enough to walk barefoot in that place? + + + You mind kinda goes fuzzy and everything you look at starts assuming these weird shapes. It's that friggin' psyfield, you know what I mean? + + + So what did you find underground? + + + Not much, just a couple of dead hamsters. + + + Heh... nothing you can't find everywhere else in the Zone. + + + Are you OK? + + + I'm all right, thanks to you! I'll give you a set of coordinates, as a token of my gratitude. Anything you find there is yours to keep - it's not much, but comes from the heart... + + + How do you feel? + + + Man, thanks a lot! Thanks to you... I'm lost for words. Take these coordinates of our stash - a token of our gratitude. + + + You alive? + + + Thanks, I won't forget this. Here, take the coordinates of our stash - you deserve them... + + + Your brain still working? + + + Man, the shit I saw when I was... That's gonna stay with me for life... + + + So, back to the bunker? + + + You betcha! + + + Let's go, then. + + + You go ahead, I'll see you there. + + + Is your squad ready to head for the tunnel? + + + Just say when. + + + When. Let's move out. + + + Wait a bit longer. + + + I'll go on my own. See you there. + + + I'll go on my own. See you there. + + + No, we don't trust you and time is money, so either you go with us or we stay right here. + + + In that case, let's go together now. + + + In that case, you'll have to wait. + + + No way... No point risking it during an emission. + + + So, here we are. + + + So... let's start? + + + Yes, of course. + + + Give me a second to get my bearings. + + + What the hell do you want? + + + I was just passing by. + + + Well, keep walking then. + + + OK. + + + Relax, moron. + + + None of your business! + + + Oh... Hi... + + + Nimble told me that you're a deceitful bastard. I figure you've cheated many a stalker... + + + What are you talking about? I've never done anything like that in my life! Nimble's messed up in the head! + + + What did you tell the bandits about me? Why were they waiting for me by the dock cranes? + + + You must've taken me for someone else - I have no business with bandits! + + + Nimble told me about you... I suggest you give me the shooter and make it easy for both of us. + + + What could he tell you?! I don't have anything that ain't mine! + + + Take a hike, buddy... + + + Help me out, bro - I need a medkit! + + + Tell me where you hid my stuff first! + + + I'm sorry man, I really needed the money... I'll tell you everything, just help me! Honestly, I'm done with that shit, I've gone straight! + + + OK, here. + + + Thanks, man! I hid the stuff in my stash in the sewers behind the substation. + + + I see. + + + I don't believe you. You ain't getting a medkit. + + + Take this. + + + You ain't getting it. + + + Thanks. I didn't think you'd help me... + + + Who could I hire to protect the scientists? + + + Duty, of course. Who else? They're the best fighters in the Zone, after all! Heavy assault guards - how does that sound? + + + They're employing Freedom at the moment? In that case, I really don't know. I was going to suggest Duty, but they don't go well together. + + + Who could I hire to take measurements for the scientists? + + + Try talking to Shulga. They're not all rocket scientists over there, but he's got some bright fellas in his employ. + + + Are they still paying Freedom to protect them? If so, I would advise against recruiting Duty... That's about all the advice I can give you on that. + + + When we got into the underpass the elevator stopped working... + + + Hah, you went down using the only operational generator... And it's the backup one at that. I barely got it working, so it did its job done and then died. You should be grateful it didn't go out halfway... That elevator doesn't have an emergency exit! + + + Who could have stolen things from a personal box? + + + Damn! I really don't know. What I can tell you is that if Shulga was running things at Yanov, that would never have happened. + + + Can you break into a steel container? + + + I'm not the guy, man. Metal ain't my thing... If you have any electronic issues - give me a shout. + + + A group of peaceful Monolith fighters is looking for refuge. Who could help them? + + + Are you serious? I heard they're animals... Well, stalkers won't give them the time of day, that's for sure... You should probably speak to Shulga. If the Lieutenant Colonel lets them join Duty, they'll be safe. They might even find something useful to do. + + + Can you decrypt a black box? + + + Let's have a look... This is gonna be some work. It'll take about three hours and it won't be cheap. I'll do the work and then we'll talk... go take a walk while I do this, so I can concentrate... + + + Let's have a look... This is gonna be some work. It'll take about three hours and it won't be cheap. I'll do the work and then we'll talk... Meanwhile why don't you look for the components I need? You'll earn some cash and I'll charge you less for this job. + + + What? I'm still working on it. Damn, this box is a friggin' nightmare... + + + I'm done with your black box... A shitty job if I've ever done one... + + + What do I owe you? + + + 3,000, at least. + + + Take this. + + + I don't have that much. + + + Well, I can give you a discount when you bring me the components. + + + Well, don't be a stranger. + + + Too rich for my blood... I'll think about it. + + + I'll give you a discount. Only 2,850. + + + I'll give you a discount. Only 2,700. + + + I'll give you a discount. Only 2,550. + + + I'll give you a discount. Only 2,400. + + + I'll give you a discount. Only 2,250. + + + I'll give you a big discount. Only 2,100. + + + I'll give you a big discount. Only 1,950. + + + I'll give you a big discount. Only 1,800. + + + I'll give you the very best price for this. Only 1,650. + + + Heh, obviously I don't know why you need the recording, but for what it cost you I sure hope it's gonna be useful. + + + We'll see. + + + I'm still working on the black box... Why don't you make yourself useful and get me those components? + + + Senka? Back when I was making my way through Zaton he stuck with me and he's been with me since... He's a professional drunk with extensive experience... hah! I use him to run errands here and there... + + + Who might be interested in information about Duty's founder? + + + Shulga, of course... Duty remembers its beginnings. You know what they say: unless you study history, it will repeat itself... The main thing is that Freedom doesn't get its hands on this information, because they'd distort it, that's for sure. Not out of any malice, simply due to poor memory... + + + I brought you tools. + + + Great... So, which ones are for me? + + + The ones for basic work. + + + Great! Now I just need tools for fine work and calibration... + + + The ones for fine work. + + + Great! Now I just need tools for basic work and calibration... + + + The ones for calibration. + + + Great! Now I just need tools for basic work and also ones for finer work... + + + None, for now. + + + Cool! Some calibration tools and I'm all set. + + + Cool! Some tools for fine work and I'm all set. + + + Cool! Some tools for basic work and I'm all set. + + + Wow! Where the hell did you find them? + + + If you need any tools, I can get them. + + + That would be awesome. At the moment, it's like working in the Stone Age. The only difference is that the soldering iron has replaced the shaman's staff... If I had tools, I could do some top upgrades and you better believe there'd be coin in it for you too... + + + OK. I'll look for them. + + + I've changed my mind. + + + Good idea. I can do upgrades and you can earn cash... + + + I have the Duty trader's PDA. You know anyone who would be interested in it? + + + A trader in Duty? No kidding... Give the PDA to Shulga and he'll deal with it. Not a word to Freedom, you get me? They'll use one asshole to sabotage the reputation of the whole faction... + + + I found some documents. They describe a way of getting to Pripyat. + + + Let's have a look... Yeah, yeah, yeah... So, to summarize, there's an underground underpass designated Pripyat 1, which runs under the city of Pripyat, with one section that ends in a lock located in the Jupiter plant's transportation section. Impressive! Judging by the notes it has been sealed, filled with gas and the power to it has been cut. I suppose I could try to revive the generator and open the lock. Only... + + + ...Only I ain't going through Jupiter without protection, and I suggest that you don't even think about going underground on your own. You'll need to have a couple of buddies with you, at least. You're all going to need suits with closed-cycle respiratory modules, too, otherwise you won't last a minute down there... Listen, Zulu lives in a tower not far from here - try talking to him. If you guys hit it off, he'll tell you how to put a squad together. + + + You mentioned materials... + + + Right, finding materials to use for working with radio equipment is damn near impossible around here. I've used everything I could find and there's nobody supplying any materials here, because you can make more cash selling guns... I heard there could be something left at the cement factory, though... + + + I found the materials, here you go. I searched the cement factory from top to bottom! + + + Wow, bro - I'm impressed! I'll make a note right here: free labor on all repairs and upgrades for my favorite stalker! + + + I managed to find some of the materials you wanted. Here you go. + + + Wow! Discounts galore for you, my friend! + + + I can get the materials for you. + + + That would be great! If you find anything like colophonium or capacitors, bring them to me... hell, I would even be grateful for some textolite. I can't promise you lots of cash, but you'll get a discount, that's for sure. + + + What do you need the materials for? + + + Well, I do work with shooters and equipment... I mean, a man's gotta do what a man's gotta do to eat... But my passion is radio equipment. You know that feeling when you put something together and it works? I remember I once built a jammer... It was real useful - I turned it on when the announcements by 100 Rads kept waking me up. + + + Why would there be radio materials at the cement factory? + + + Cement factory is just a name... It stopped making cement long before the Chernobyl disaster. They disassembled what they could and started using the building to make electrical appliances. + + + I found some documents at Jupiter. Will you have a look? + + + So... Nothing of interest here... just some administrative crap... + + + Hrm... There's something of interest here and there, but I can't be certain of anything... We need the complete information. Try checking the places mentioned in the documents. + + + I really need some friggin' materials. How am I supposed to work like this?... Oh, hello. What's up? + + + Howdy! You need something technical done? Obviously, I don't have any materials, but I can still repair your kit and do minor upgrades. + + + Oh, hey. Listen, I've been thinking... It turns out that all those materials I need are simply collecting dust at the cement factory... Just the thought of it drives me crazy... + + + Hey! Did something break or have you put some dough together for an upgrade? Remember, you've got a lifetime discount! + + + Hello, brother! How can I help you? Remember, you get the best prices possible from yours truly. + + + Can you unblock a memory module? + + + I think so... I've never done it before, so I'll need at least three hours. I'd be happy to give it a shot, though... Bearing all that in mind, I'll give you a good price - just 1,000. + + + I can wait, so let's call it a deal! + + + Great! I'll get to work and you take your time... I'll let you know when I'm done. + + + I don't have that much. + + + Well, come back if you still want the job done. You won't get it done cheaper anyhow. + + + I'll think about it. + + + I told you I'll be able to do it in about three hours. 1,000 is a great price, so I'd take it if I were you. + + + So, did you unblock the memory module? + + + No, I'm still working on it... Don't worry, I'll let you know when it's ready. + + + Huh? You didn't get the module?... You must have missed Senka - I had sent him your way to deliver the module... Well, never mind. Basically, other than soil layer thickness and vegetation density readings, it also contained the coordinates of three radio beacons. I'll upload them to your PDA... + + + Did you try tracking the chimeras down? + + + The wounded one went to Zaton. Gonta's group is following it... Then again, I heard they're lacking an experienced hunter. If you help them out, I'll make it worth your while... The other one, the one that killed Fox... Well, I lost it. It was as if it just vanished... Poor Fox... He was a good man, but age sure takes its toll... + + + Well, you dealt with one, the wounded one... The other one, the one that killed Fox... Well, I lost it. It was as if it just vanished... Poor Fox... He was a good man,but age sure takes its toll... + + + What do you do? + + + Well, I'm Trapper and until recently I hunted mutants that were a danger to stalkers... Nowadays, I take orders and give them to younger hunters. I train them and teach them hunting tactics... + + + Tell me about hunting mutants... + + + Well, mutants require different approaches... Burers and poltergeists require one, pseudogiants and controllers need another... And chimeras are a real special case. + + + Tell me about burers. + + + Burers use gravitation attacks... When at close proximity they'll throw you and when they're far away they'll try to throw something at you... Your best bet is to keep them at medium range from you and keep moving, unless you enjoy getting hit by something heavy... But be careful to conserve your energy! Burers can use directed gravitational impulses to yank weapons out of your hands and if you're tired it might just work. + + + Tell me about poltergeists. + + + There are two types of poltergeists. The first type sends items crashing into the enemy using gravitation, while the second type is the fire poltergeist that uses flames to burn its victims. Inexperienced hunters try to circle around them to evade their attacks... The trick is to know that poltergeists can't see or hear in the usual sense of those words and use that to your advantage. They sense objects that move in the gravitational field... So a seasoned hunter freezes as soon as he sees a poltergeist, fires and then freezes again, rinse repeat. + + + Tell me about controllers. + + + They use your own mind against you. When you're hunting a controller, it's important to use cover, because it must see you to affect your mind... Also, they're quite slow, so if your life is at stake, use grenades. + + + Tell me about chimeras. + + + They're very dangerous nocturnal predators. They try to get behind you under cover of darkness and leap on top of you. If you know there's a chimera around, keep checking your back and cover your friends' asses... + + + Tell me about pseudogiants. + + + The most difficult thing about hunting pseudogiants is killing them. They can take incredible punishment without so much as batting an eyelid... All I can say is that you may want to try using a shotgun at close range. Just remember that pseudogiant attacks can detach anything that's not been fixed to concrete. Attack it from above... and make sure that whatever you're standing on can withstand some damage. + + + OK, forget about it. + + + Why don't you hunt anymore? + + + I’m getting old, man. That’s why Fox died... He was my partner and friend. We hunted many a beast together, shoulder to shoulder... Then we ran into these two chimeras by Zaton that haven’t been seen in the Zone for eighteen months... One knocked Fox to the ground before I could even get my shotgun out. When I wounded the other one, they ran off... I hope they burn in hell forever! + + + Who could have stolen things from a personal box? + + + Hrm... Don't know... That kind of thing just doesn't happen among the hunters. Piss enough people off and you might find them saving their ammo when you've got a bloodsucker getting close and personal. + + + Desperate times call for desperate measures... Knowing what I know about bloodsuckers, I would think a couple of them were out hunting... But now that they've not got anywhere to come back to, they won't be a danger to stalkers anymore. + + + You got any other work for me? + + + Sure. A stalker squad went into the tunnels to the north of the plant the other day and ran into a mutant lair. They were all so shocked that none of them can even explain what kind of mutants they were, but two of the stalkers didn't make it out of there alive. After that the folks at Yanov got real scared about the whole thing, so they put together a 5,000 reward for anyone who's willing to deal with this lair. It's a dangerous job, so you decide for yourself... Will you do it? + + + I'll do it. + + + You're a brave man... Good luck. You'll need it. + + + Not now. + + + I don't blame you... I doubt anyone will have the balls to take on a whole lair of mutants. + + + Same as before. Unidentified mutants in the tunnels to the north of the Jupiter plant. 5,000 reward... Will you do it after all? + + + Stalkers are worried about the mutants in the tunnels at the moment... + + + The mutants in the tunnels were mutated dwarfs. Now they're dead mutated dwarfs. + + + I'm guessing they must have been burers. That explains why the folks at Yanov got all excited about the whole thing... Well, seeing as they're dead, the reward is yours! + + + I'm guessing they must have been burers... The ones that killed two stalkers recently. That explains why the folks at Yanov came up with a reward for killing them. Well, seeing as they're dead, the reward is yours! + + + I'm ready to deal with the chimera. + + + Great. The hunter who found that bastard saw it just as it got dark. It was headed towards the ventilation complex. Chimeras are nocturnal and territorial, so it was probably going to its hunting grounds... I think that's where you should look for it come nightfall. Then again, it's more active when it's dark... Be careful and good hunting. + + + The chimera is dead. + + + Thank you... Thank you! You have avenged Fox and he can now rest in peace. Here's your money - you've earned it... There's something else. Take my shotgun. You brought me something a lot more important - some peace at last... + + + I'm Trapper... There's no need to introduce yourself. + + + What brings you here? + + + Thanks for coming... I need a reliable and experienced hunter and you're the best Yanov has to offer. After all that has happened, I can't let the chimera escape again... I'm putting up all my savings for this : 10,000. I want to make sure the job is done right... Fox must be avenged! + + + I'm begging you to deal with the chimera. If you don't want to rid Yanov of this mutant killer, then do it for the money... 10,000 is a lot of cash. + + + What's the situation with the chimera?... Time is of the essence, for it could move on to new hunting grounds. + + + Good to see you!... What's new? + + + You got any other work for me? + + + Of course... A group of swamp bloodsuckers has been spotted in Fen, behind the cement factory. They seem to be keeping to their swamp for now... But local stalkers want to make sure they stay there forever, if you know what I mean. The price for the whole group is 3,000. Will you do it? + + + I'll do it. + + + Great. Happy hunting... + + + Not now. + + + Up to you... There's still time to change your mind before other hunters take the job. + + + Same as before... The group of swamp bloodsuckers in Fen, behind the cement factory. The reward is 3,000... You game? + + + Nothing other than the bloodsuckers in Fen at the moment... + + + I killed the swamp bloodsuckers. + + + Now stalkers can relax a little. Here's your fee as agreed. + + + Yeah, the local stalkers will be happy to be rid of those neighbors. They even put together reward money for it, 3,000 to be precise... Here, take it. + + + Me and Gonta killed the chimera at Zaton. + + + Thank you for that. The fewer of those beasts around, the better it is for us all. Now, if you could track down that other one... + + + Thank you for dealing with the second beast, too. It's good to know that those chimeras won't take another stalker's life... + + + Tell me how you killed the controller. + + + Listen and learn, my friend, listen and learn... I went to my stash to pick up my loot and when I got there, I clocked a controller sitting right on top of it. So I grabbed a metal grate that was on the ground and used it to shield myself as I was sneaking up on it. By the time it woke up to what was going on, I'd pumped half a clip into the cocksucker's head. Just as it started trying to control me, I gave it a final bash with my rifle butt and that was that. + + + Tell me about the artifacts at the quarry. + + + Hah! There's not much to say, 'cause there's jack shit left in the quarry now. There's no point looking in anomalies Flint has looked in, everyone knows that. + + + So it was you who left your buddy to die in the quarry! + + + What?! + + + You can't prove anything. You're just bullshitting... It's your word against the word of a Freedom member - good luck with that. + + + We'll see about that. + + + Nothing. + + + Thanks, bye. + + + Tell me the story about the bloodsuckers at Zaton. + + + When I was at Zaton, bloodsuckers made life real difficult for stalkers. Stalkers kept at 'em day and night but it didn't help one bit. I decided to help them out, so I took my shotgun and went straight for the bloodsucker lair. After some quality time with yours truly the bloodsucker problem at Zaton is all but over. + + + You probably don't even know where that lair is. + + + Scram. + + + What do you want? Go spew your horseshit somewhere else! + + + Take a hike, buddy... It's your word against the word of a Freedom member - good luck with that. + + + We'll see about that. + + + Thanks, bye. + + + Tell me the story about the shortcut to Jupiter. + + + Well, the guide used to take a massive detour on his way from Zaton. I decided to go straight... so I did. I tried a few places and worked out the way through the anomalies pretty quick. So I sold that info to the guide and now he takes everyone that way. + + + How about we ask Pilot who got him the maps? + + + Scram. + + + What do you want? Go spew your horseshit somewhere else! + + + You can't prove shit. It's your word against the word of a Freedom member - good luck with that. + + + We'll see about that. + + + Thanks, bye. + + + Tell me about your trip to the Oasis. + + + I was the first person to ever get to the Oasis. It's free of mutants and anomalies - just peace and quiet, all 'round. Full of artifacts too, just take your pick and walk on home. + + + Bullshit. I've been to the Oasis and it's nothing like that. + + + Scram. + + + What do you want? Go spew your horseshit somewhere else! + + + Bullshit yourself. It's your word against the word of a Freedom member - good luck with that. + + + We'll see about that. + + + Thanks, bye. + + + Tell me about your work with the scientists. + + + I visited their bunker the other day. They were real happy and said, “you're exactly what we need right now, Flint!” It turns out they wanted their devices set up under anomalies. So I was like, “that's a piece of cake” - and I did everything they wanted easy. Getting those nerds to fork up the reward money was the hard part. + + + Stop claiming the credit for other people's achievements. I did that, not you! + + + Scram. + + + What do you want? Go spew your horseshit somewhere else! + + + Lies... You can't prove anything. It's your word against the word of a Freedom member - good luck with that. + + + We'll see about that. + + + Thanks, bye. + + + Hey. You want to listen to my stories too? + + + You want to ask something? + + + What do you want? + + + Buddy... shit... I'm dying... + + + Take this medkit. + + + Thanks friend... but it won't help... Listen... I was here with a member of Freedom... We found an artifact... I walked into a gas anomaly on the way back... If he had helped me, I could have made it... But... He took the artifact and left me here. He claimed he was going to get help... Find him. I want people to know that he can't be trusted... + + + I'll find him. + + + I doubt I'll be able to prove anything. + + + Grab on to my shoulder, we'll get you to a medic. + + + Shit happens. Bye. + + + I have something for you... + + + A Meat Chunk, here, take it. + + + Thanks. Scientists pay well, but I care more about the permit. + + + Thanks a hell of a lot, friend! Now I can finally make a move for Pripyat - I just need to think of a way to get there. + + + A Kolobok, here, take it. + + + Thanks. Scientists pay well, but I care more about the permit . + + + Thanks a hell of a lot, friend! Now I can finally make a move for Pripyat - I just need to think of a way to get there. + + + A Meat Chunk and a Kolobok, here, take them. + + + Thanks a hell of a lot, friend! Now I can finally make a move for Pripyat - I just need to think of a way to get there. + + + None. + + + Is it boring around here? + + + You mentioned your contract... + + + Well, I signed up to do some work for the scientists, thinking it would be easy. What I failed to notice was that the contract only expires when all the work is done. The scientists promised to give me an official permit to be in the Zone at the end of it. + + + I've completed every damn clause of the contract, except one little thing. I have to find all chemical artifacts in existence. Who could have known that you can't get Meat Chunks or Koloboks around here? If I could get those two, I would have headed towards Pripyat a long time ago, but I can't! + + + I might be able to help you with those artifacts. + + + That's a pity. + + + Yeah... A Meat Chunk and a Kolobok and I'm off to Pripyat! + + + What's so special about Pripyat? + + + Nobody knows how to get there... We're in the Zone, after all, so you can't just walk straight there. They say it's a real treasure trove of artifacts... Either way, there've been so many legends circulating around Pripyat that I'm just plain curious. + + + I'm putting a squad together to go to Pripyat with. Want to join us? + + + Actually, I've been thinking of heading over there myself... But it would be on my own. Nothing personal, I'm just used to working solo... + + + Hah, I'm actually setting out to Pripyat soon... But it will be on my own. Nothing personal, I'm just used to working solo... + + + Welcome to boredom. + + + Man, I really want to go to Pripyat! + + + I just need to work out a way of getting to Pripyat and I'll be there in no time. + + + It's good here! This is life like it's meant to be lived! + + + It's good to feel safe, for sure. I just wish it wasn't so boring! + + + I might be able to help you with those artifacts. + + + Do you really know the way to Pripyat? + + + I don't, but if it's full of artifacts like people say, I'm ready to find one right now. I mean, I'm a trailblazer like no other - I was one of the first to find the way to Jupiter. But I always work solo - I ain't got time to watch someone else's back. + + + Will you take me to Jupiter? + + + Of course. You ready to go? + + + Yes. + + + Not yet. + + + Not during an emission. + + + Will you lead me to Pripyat? + + + I'll give it a shot for 5,000. I like it there! + + + Deal. + + + No, thanks. + + + OK, it's your choice. + + + I don't think I have enough cash. + + + I'll give it a shot for 5,000... Let's just wait for the emission to finish. + + + Can you lead me to Zaton? + + + Nah, man - it's way too boring there. There's Pilot over there - he's the one you want for the safe but tedious work. + + + Well, I can lead you to Yanov and for 3,000 I can get Pilot to take you to Zaton. What do you say? + + + I agree. + + + No. + + + Up to you. + + + I don't have enough cash. + + + Well, I can lead you to Yanov and for 1,000 I can get Pilot to take you to Zaton. What do you say? + + + Nah, man - it's way too boring there. There's Pilot over there - he's the one you want for the safe but tedious work - ask him after the emission. + + + Well, I can lead you to Yanov and for 3,000 I can get Pilot to take you to Zaton... Once the emission is over, obviously. + + + Well, I can lead you to Yanov and for 1,000 I can get Pilot to take you to Zaton... Once the emission is over, obviously. + + + They say you made it through the tunnels?... I also came from Jupiter - I found a passage underground. I can take you back there for free if you need... I'm, you know, happy to provide any assistance required to the authorities. + + + Long time no see! They say you made it through the tunnels?... I found a passage underground. I can take you back for free if you need... I'm, you know, happy to provide any assistance required to the authorities. + + + Long time no see! They say you made it through the tunnels?... You won't believe it but I managed to get out of my contract and still get the permit... As soon as I did, I headed here and found a passage underground. I can take you back for free if you need... I'm, you know, happy to provide any assistance required to the authorities. + + + Long time no see! They say you made it through the tunnels?... I found a passage underground. I can take you back for free if you need... I'm, you know, happy to provide any assistance required to the authorities. By the way, thanks for helping me complete that contract with the scientists... I've had a little look around here and found this - take it. I'm sure you'll find a use for it. + + + Topol, why don't you protect the scientists' bunker? + + + Well, we're employed to take measurements and collect samples. We're almost scientists at this stage. Plus, while I don't have anything against the job per se, I'm not sure I can handle the eggheads' new enemies. I don't feel like dying from a merc bullet. + + + You're in the wrong place, buddy! And you better leave before we make it the wrong time, too. + + + You looking for trouble or something? Get out of here before you find it! + + + Get lost, buddy. Do that, and we'll keep it peaceful. + + + What are you going to do now? + + + We're going to Yanov station soon. Come with us, if you like. + + + Yeah, that's on my way. I'll join you. + + + Nah, that's out of my way. + + + It's a good thing you brought them to us - they wouldn't have lasted long on their own. + + + Thanks for making an arrangement with Duty. + + + What are you going to do now? + + + We're going to Yanov station soon. Come with us, if you like. + + + Yeah, that's on my way. I'll join you. + + + Nah, that's out of my way. + + + You did the right thing, man. You helped those dudes and brought us reinforcements. Respect. + + + Thanks for making an arrangement with Freedom. + + + Do you know who could have stolen things from a personal box? + + + I don't know - there's all kinds of folk around here... You could try asking Bonesetter, he knows almost everyone in this place... + + + Let's go see Zulu. + + + OK. I hope he's not going to shoot when he sees my old armor! We need to pick it up on the way... and return the one I'm wearing. + + + Let's go. + + + Wait. Emissions ain't healthy... Let's wait a bit. + + + What happened? + + + Well... We don’t remember how we got here. I remember that we were a Monolith squad... We had this burning desire to reach the center of the Zone. That’s where the Monolith is - it’s a meteor, that brought the beginnings of new life from other planets... I remember reaching the CNPP together... And then it’s all fragmented. I remember a bright light... cosmic cold... and a clear voice... Everything was just... perfect. I don't remember what that voice ordered me to do now. Several years of my life... just gone. The boys are the same... We don’t know what to do. We definitely need somewhere to take cover from emissions... and mutants, right? Do you have any ideas about where we would be safe? + + + There's a stalker base not far from here, I can point it out to you on a map. + + + I’m not sure that’s safe... When we were on our way to the CNPP, we were treated with suspicion... I think we actually killed stalkers afterwards. Do you know how people treat our faction right now? They’ll probably start shooting... Can you help us? Could you tell everyone at the stalker camp that we’re not killers anymore? Could you speak to them and get them to accept us? + + + No problem, I'll speak to them the next time I'm at the base. + + + Sorry, I can’t help you. + + + What kind of help do you need? + + + We need somewhere to take cover from emissions... and mutants, right? Can you find a place where we would be safe? + + + OK. I’ll ask the folks at Yanov. + + + Sorry, I can’t help you. + + + You'll need a suit with a closed-cycle respiratory module to get to Pripyat. + + + That's fine - I kept my Monolith armor and it comes with exactly that. The problem is that I can't be seen wearing it at Yanov. + + + I'm putting a squad together to go with me to Pripyat. Will you join us? + + + I'd go... I mean, I'm more than curious to find out what happened to us there. But I can't go now. I can't leave my boys here . They've been through a lot as it is. + + + Yes, I'll go with you. I want to know what happened to us. I have my fingers crossed that we'll find the answer to that question in Pripyat. I just have to warn Loki, but I doubt he'll object. + + + Yes, I'll go with you. I really want to know what happened to us. I hope to find the answer to that question in Pripyat. I just have to warn Shulga, but I doubt he'll object. + + + Are you ready to go? + + + Ready. + + + Hello, stalker. Could you help us? + + + Hello. Did you find out if we can go to the stalker base? + + + No, I'm still working on it... + + + Hurry up, 'cause you never know what could happen here. + + + Hello. Thanks for helping us. + + + Hello. + + + How are things? + + + Things are OK, the squad is in order, but I really want to know what happened to us. + + + What are the mercenaries doing here? + + + You should speak to Hermann about that. He deals with all administrative aspects of the laboratory. As far as I am aware, the mercenaries have made an agreement with Hermann concerning the protection of our laboratory. I am not familiar with the details of this arrangement. However, I must point out that they have proven themselves as reliable fighters on numerous occasions. + + + What are you doing here? + + + A rhetorical question, don't you think? We are researching. Are you interested in something specific? + + + What is the purpose of your research? + + + We have no specific objective in mind. We're scientific scouts, if you will. We are seeking to identify correlations in certain phenomena, develop theories and prove or disprove them. Some of our theories have no practical purpose as we know it. + + + What do you know about the Zone? + + + I can only hypothesize at this stage... I believe that the Zone was formed as a consequence of some new force. Electromagnetic fields, physical force or radiation couldn't have changed the biosphere so quickly. Obviously, some mutations can be explained by radiation... But, excuse me! An ordinary pig would need hundreds, if not thousands, of years to mutate into flesh! In the Zone the mutation occurred in a couple of years. It's as if someone directly altered the genetic information in individual animals. The thought of that is enough to send shivers down my spine. + + + How long have you been in the Zone? + + + No more than a week. It took tremendous effort to cut through all the red tape and organize this expedition. If it weren't for Hermann, we might've still been waiting on the borders of the Zone, while stalkers removed invaluable items from it. + + + That's all I wanted to know. + + + Ozersky, why did Hermann hire me to protect the squad during the taking of measurements? + + + It was my idea. He didn't see the point, but I convinced him. My research indicates that the effects of our high wave equipment on anomalous fields induces a heightened state of aggression in nearby mutated species, as well as, boosts their activity levels. Long story short, they start looking for something to kill. + + + Ozersky, I've got news. + + + Yes? I'm listening. + + + You were right. The mutants wouldn't let us rest for a moment while we were taking measurements, but as soon as the devices were switched off, things calmed down. + + + What?! If... if my hypothesis proved correct, it is probable that mutated animals that acquired the ability to access informational fields can telepathically receive signals from outside... artificial signals... in which case... the unnatural similarity in mutations and these typical changes in cell structure... are not accidental... + + + Could you be more specific? And could you actually make some sense this time? + + + No! These are but my conjectures. Oh, how terribly rude of me! Thank you very much for your assistance in our research. + + + What needs to happen for you to talk to Hermann about a suit? + + + An area filled with a previously unknown anomalous plant has appeared near the edge of the quarry. I really want a sample of this plant, but stalkers refuse to go near the place. If I had one of those plants, I could speak to Hermann about rewarding you with one of the spare suits. + + + I'll find the plant for you. + + + OK, I uploaded the anomaly coordinates to your PDA. + + + Maybe next time. + + + Drop in if you change your mind. + + + Here, I brought the plant you wanted. Now how about that suit? + + + Great. Hah, Sokolov has actually let slip that the suit is for him. Well, it doesn't matter. I'll show Hermann the plant and he'll agree to hand over the suit in no time. Tell Sokolov to come and collect it. + + + I can find some new guards for you. + + + That would be kind of you. Please speak to Hermann about this matter since it falls within the scope of his responsibilities. + + + I'd like to check my resistance to the psy-field. + + + Hah, so Hermann sent you to see me? OK, let me explain this as simply as I can. In order to properly analyze your resistance to psy-emissions, I will need a scientific research complex and years of study. What I actually have is a field kit with a couple of dirty test tubes. + + + It's impossible, then? + + + Not so fast. We're not talking about a full analysis. For our aims we merely need to assess the resistance of your neurons to psy-emissions. A basic examination will do just fine. So... It seems that your head is in order. That is to say that you can be affected by relatively high levels of psy-emissions without losing consciousness. + + + What about the hypothesis concerning increased mutant aggression? + + + I have two theories about that. The first is that mutant aggression may be caused by the intrusion of several people into their territory, in which case that is normal behavior for most unmutated species, including humans. The other theory is that mutants are somehow capable of receiving the active emissions of our measurement devices. Clearly, the latter theory is far more intriguing. + + + How could this be tested? + + + The measurement device should be activated in an area where there was no previous mutant activity. Furthermore, in order to minimize the human intrusion effect, the experiment should be conducted by a maximum of one person. + + + I brought the scanner. + + + What results did you get? + + + I don't know what your device will show, but I believe the hypothesis fully checks out. After I activated the scanner, it took all of five minutes for snorks to come charging at me. + + + That's what I thought. For some reason, it is usually the most undesirable theories that prove to be right. In any case, it is a good thing that you tested this. Now we'll have to make sure any squad we send out to take measurements is ready for some rough stuff. + + + I'm ready to try to confirm or disprove the hypothesis. + + + I'm delighted that there are still people in the world who are willing to make sacrifices for the greater scientific good. The best place to conduct the experiment is the landslide on the southern edge of the quarry - that area is full of gravitational anomalies that mutants normally try to avoid. The device I am giving you has a built-in mutant detection sensor. When you return the device after you have completed the experiment, I will be able to track the effects of emission levels on mutant aggression. Are you prepared to do this? + + + Yeah, I'll do it. + + + Not at the moment. + + + Is there any way I could get a scientific suit? + + + That's against protocol. We have to account for every item of equipment we have. Then again, knowing Hermann, he probably ordered more than we need. I think that in certain circumstances, he could be convinced to part with one of them. + + + Do you need any artifacts found? + + + No, sorry. We don't send random people on artifact hunting assignments anymore. We signed a contract with an experienced artifact hunter, and whatever we may need, he gets it for us. + + + I can find some new guards for you. + + + That would be good. The Zone is never peaceful... Talk to Hermann about it - he's the boss around here. + + + You're supposed to issue me with scanners for anomaly research. + + + Take this. Three, as Hermann said. + + + Take this. Two more, as Hermann said. + + + How can I get a scientific suit? + + + Hermann is in charge of inventory. But I'll save you the trouble of asking: you won't get anything from him. Try talking to Ozersky instead. On the one hand, he's a bit more laid back, on the other - he can influence Hermann. + + + What brings you here? + + + Listen, where did those mercs go? The ones who were protecting you? + + + How's life? + + + Listen... Someone gunned down those mercs who were protecting you. I didn't like them much myself, but that's going a bit far... + + + CS-3a - cool! That's pretty good armor... Reminds me of the good old days... + + + Can you unblock a memory module? + + + Let's have a look... No problem. I've done this before... It won't take more than an hour. I'll do it for... hrm, 2,000. Deal? + + + Deal. + + + Good. I'll let you know once I've unblocked it. + + + I haven't got that much money. + + + Hrm. Well, you know where to find me. I doubt anyone can do a better job of this than me. + + + I'll think about it. + + + Like I said, I'll do it in an hour for 2,000. + + + So, did you unblock the memory module? + + + The hour ain't up. I told you I'd contact you when it's done. + + + Yes, here it is. It's ready for you to access the information. + + + I found a strange semi-artifact. You interested? + + + Of course. Where did you find it? + + + At Zaton, in the abandoned dredge station. + + + Deal. + + + No thanks! I'll look for another buyer. + + + What are the mercs doing here? + + + We have a contract with them for the protection of the mobile laboratory. In anticipation of your question, I will tell you that I had no choice but to recruit them. Due to some secret military operation, we were not given the appropriate protection for laboratory deployment. That fact coupled with stalkers suddenly going bonkers for artifact hunting and I had no other choice but the mercenaries if I wanted to keep the laboratory safe. + + + What do you do here? + + + We research various phenomena. + + + What is the purpose of your research? + + + We are conducting fundamental research. In other words, we are not here to test suits, invent new drugs or things like that. We are trying to find a logical explanation for the things we see in the Zone. If we uncover the secrets behind even ten percent of the phenomena we see here, that would give global technological development a massive shot in the arm. + + + What do you know about the Zone? + + + Not much, if I'm honest. We are just starting to understand the mechanisms that drive some of the phenomena we encounter, and unfortunately we're far from understanding the Zone as a system. This is particularly difficult by the fact that the Zone evolves over time. I don't mean the appearance of new anomalies or little things like that. I'm talking about more serious changes, ones that cannot always be spotted with the naked eye. The weakening of the magnetic field is an example of this. The saddest thing is that we don't know what this is all leading to. All that is left for us to do is to sit and wait. + + + How long have you been in the Zone? + + + Not long, about a week. That said, I did visit Sakharov's laboratory a few times. I still regret the fact that we failed to get this expedition off the ground faster. I told the people at the Ministry of Education many times that we must always have two fully equipped mobile laboratories ready to go at any moment... they just nodded their fat heads at me and that was it! Thanks to them we almost missed the greatest research opportunity the Zone has ever provided! + + + I see. + + + Is there any information on the scanners I placed in the anomalies? + + + Which anomaly are you interested in, specifically? + + + The anomaly by the parking lot. + + + Yes, our devices indicate the presence of artifacts in that anomaly! + + + Unfortunately, there are no signs of artifacts in that anomaly. + + + Concrete Bath anomaly + + + Bitumen anomaly + + + Fen anomaly + + + Ash Heap anomaly + + + That's it for now. + + + I'm listening carefully. + + + Recent events have made it very clear that our research team is not sufficiently prepared to conduct proper field work. You, on the other hand, managed to deal with the controller on your own! That is quite astounding! + + + What's your point? + + + My point is that it would be only logical for us to at least attempt to recruit such a capable expert as you. Our science group is most positively in need of your assistance. We need to take measurements, position scanners... + + + Go on... + + + I am trying to find the correlation between emissions and the appearance of artifacts in anomalies. I have a theory that the next emission can be forecast using the number and quality of artifacts that appear. In order to make specific calculations, I will need to gather statistics. All we need to do is position a few scanners in the middle of anomalies of different types. + + + Sorry, but I'm not interested. + + + That's a pity. You could have served science. + + + OK, I'll help you out. + + + Excellent! You need to get the scanners from Novikov and position them in the anomalies marked on your PDA. When you're done, come back to see me - I have another matter that concerns scanners and measurements to discuss with you. + + + I'll think about it and come back later. + + + I put the scanners in the anomalies. + + + Excellent! I already have the first results. I can't wait for an emission - it will provide us with the necessary statistical sample... + + + I'm listening very carefully! + + + When I got near it and got the scientific detector out, everything around me began to warp, as if it was being compressed. Then, after a while, dead stalker bodies dropped out of thin air! Then it stopped. + + + That's incredible! Obviously, the information is devastatingly scarce and nothing can be deduced from that for certain, but we will enter this description in our records. We'll call the anomaly a Space Bubble! + + + Looks like you've got new guards? + + + Yes, they're quite nice. We feel very safe with them around. Thank you for your efforts - here's your reward. + + + Have a look at these documents. + + + Let's have a look... I won't ask how you got these, but this is simply incredible! Let me make a copy of this... Oh, by the way, here's your modest reward. + + + What happened to your guards? + + + I don't know, they just disappeared! + + + I have connections in the Zone. I could find you some new guards. + + + That would be wonderful! They will be given full scientific support and the latest technological developments in exchange for their work! You'll get a reward, too! + + + Deal! + + + I can't wait! + + + I've changed my mind. + + + That's a pity. + + + It happens. + + + Anything else? + + + Our guards were killed! Gunned down right outside our bunker! + + + I found some documents at the Jupiter plant. Would you like to have a look? + + + That's interesting, but not very useful. Thanks for your efforts anyway. If you find anything else, bring it here. + + + I was attacked by mercenaries while I was looking for documents. Here's their leader's PDA. + + + Wow, and I thought that they were here to protect us. Looks like I'll have to bring this up to my superiors... Thank you very much, young man. + + + Unfortunately, it doesn't contain any interesting information. + + + There is something: we need to find out about the latest developments made at the Jupiter plant. I really need the technical documents concerning these developments. You should probably look for them in the administrative part of the plant. + + + I'll look for them and bring back whatever I find. + + + No, I won't be able to help you with that. + + + I brought the documents back from Jupiter. + + + That's interesting, but not very useful. Thanks for your efforts anyway. If you find anything else, bring it here. + + + I was attacked by mercenaries while I was looking for documents. Here's their leader's PDA. + + + Wow, and I thought that they were here to protect us. Looks like I'll have to bring this up to my superiors... Thank you very much, young man. + + + I'll try to find the anomaly. + + + I haven't got time. + + + I'm here to see you about my participation in your research. + + + I know that I speak for all of the team when I say that we would be delighted if you agree to serve science once more. What are you interested in? + + + I would like to help with taking measurements. + + + You're really willing to assist us in carrying out a full external scan? + + + Yes, I'll help - tell me what to do. + + + No, I need to think things over again. + + + You mentioned positioning scanners. + + + I am trying to find the correlation between emissions and the appearance of artifacts in anomalies. I have a theory that the next emission can be forecast using the number and quality of artifacts that appear. In order to make specific calculations, I will need to gather statistics. All we need to do is position a few scanners in the middle of anomalies of different types. + + + OK, I'll help you out. + + + Excellent! You need to get the scanners from Novikov and position them in the anomalies marked on your PDA. + + + I'll think about it and come back later. + + + The scanners in anomalies are transmitting information. All we have to do is wait for the results. You can place a few more scanners in anomalies if you want. We could always use extra information and as your reward, we'll inform you when artifacts appear in anomalies. + + + I agree. + + + Excellent! You need to get the scanners from Novikov and position them in the anomalies marked on your PDA. + + + I'll think about it and come back later. + + + Unfortunately, we have a rule which prevents us from assigning more than one task at a time to the same person. I'm sorry but we have to stick to it. + + + Did you get the anomaly field measurement results from the squad I protected? + + + Oh yeah, your measurements clearly got mutant's and zombie's attention. It took some time and effort to fight them off. + + + Hrm, so you think they reacted to the scans? Interesting. Well, in that case, it looks like you're confirming Ozersky's hypothesis that mutants telepathically access various fields. I think it's worth discussing it with him. Here is your payment for the work you've done. You've earned it! + + + Hrm, so you believe they reacted to the scans? Interesting. Well, in that case it seems Ozersky's hypothesis that mutants telepathically access various fields is confirmed by you as well and you should probably tell Ozersky about it. It's a pity about the stalkers. A portion of our modest funds will be used to pay compensation to their families. The rest is your fee for the work you've done for us. Thank you! + + + Is there any way I could get a scientific suit? + + + No! The number of suits is strictly limited and I simply cannot afford to give them away! + + + What would you like to say to me? + + + Have you by any chance seen the people responsible for guarding our bunker? + + + Go on. + + + You won't believe it but someone killed our guards, right next to our bunker! + + + Do you need help? + + + We're trying to collect a new type of samples at the moment. They don't have any anomalous effect on their own, but experiments we conduct with them produce incredible results! + + + Keep going... + + + Cut the crap and tell me what needs doing. + + + OK... The stalkers who found the psy-field believe that it contains a mutant lair. I don't really believe them... I mean, no mutant other than a controller can survive in an intermittent psy-field! Don't worry, our boys will deal with the mutants. We need you simply because regular contact with psy-fields has reduced our stalkers' resistance to their effects. + + + Let me get this straight: you want me to go into an unknown psy-field and get you a sample of something that might not even be there, and if it is there nobody knows what it looks like? + + + Exactly! This mission is essential for science in general and for our team in particular. Your help would be invaluable. If you have any doubts, go see Ozersky. He will conduct the necessary analysis, which will identify your current resistance to psy-emissions. You can also ask our stalkers and they'll explain it all to you. So, are you willing to aid science? + + + Yes. + + + You don't know? Your stalker squad is dead. + + + Given that you failed to show up at the tunnel the last time, it will be very difficult for me to convince the team to work with you. + + + That was an accident. + + + I believe you, but our sample collection team is made up of peculiar people - you shouldn't let them down. I'll speak to them again and I should be able to persuade them into changing their minds. But don't fail me this time, I'm waiting for the sample. + + + Forgive me for this, but I must refuse. Your equipment is simply unsuitable for an intermittent psy-field - you will meet a swift and painful death, and I don't need that on my conscience. + + + I got you the sample. + + + Really? Show it to me, I can't wait to see it! + + + I got your sample and as it turned out there was a controller in the tunnel. It tried to take over your squad and almost succeeded. I managed to kill it before it did. + + + You're amazing! You killed a controller and saved the stalkers from a psy-attack... If I didn't know it was true, I would never have believed you! It's excellent experience and a fantastic sample. Your contribution to science is noteworthy indeed. Thank you from me personally, on behalf of my team and all the scientists of the world! + + + Unfortunately the squad was attacked by a controller. I had to defend myself. The controller is dead, but so are the stalkers. + + + A controller, you say? How terrible, who could have known? I mourn the loss of those brave boys... They were loyal servants of science. Even though they were not technically scientists, they did more for science than many professors! Thank you and please take this modest reward... + + + Unfortunately the squad was attacked by a controller. I barely made it out. + + + What are the mercs doing here? + + + Getting in my way. But that's my personal opinion. At first they kept asking me to fix this or attach that... And then yesterday they lost whatever shame they had left and started asking how our equipment works. I simply fail to see how that's going to help them guard the bunker. + + + What equipment modifications can you perform? + + + You can see, this is a scientific complex... There's no Kevlar or weapons for spare parts here. What I can do is patch up body armor or modify it using one of my personal developments. As you can imagine, I've got plenty of top notch equipment to spare. + + + Thanks to you and the sample you retrieved from the psy-field, Ozersky was able to come up with something to protect people from emissions. I converted his idea into something practical... that I can install in your suit if you want. + + + Well, other than the usual upgrades, I can offer you filtering and psy-protection modifications. After all, you were the one who helped to make them happen... Ozersky and Hermann were happy like pigs in shit! + + + Well, other than the usual upgrades, I can offer you isolation and psy-protection modifications. After all, you were the one who helped to make them happen... Ozersky and Hermann were happy like pigs in shit! + + + I've got the full range of mods: isolation, filtering and psy-protection. A suit that has all of those installed will allow you to walk into any anomaly... And you might even be able to walk back out. By the way, thank you for participating in Hermann's research. Without that, I wouldn't have all these options for you. + + + Tell me about your bunker. + + + Hrm. What do you wanna know? + + + What does the laboratory do? + + + I doubt even Hermann and Ozersky can answer that question. Obviously they do all sorts of research... But the end result is measly at best. Then again, you could have a chat with Ozersky... I was able to come up with a couple of decent suit modifications on the basis of his theories. + + + What do you know about the Zone? + + + Nothing in a scientific sense, but I've got a lot of practical experience of the Zone. The only thing of value here is something that increases your chances of survival. The Zone doesn't care whether you're a bandit or a stalker collecting artifacts to feed his family. Only those who are best suited to life in the Zone survive here. + + + How long have you been in the Zone? + + + A while now. At first, I was hunting for artifacts just like everyone else, but my health was declining steadily until I realized I just can't do it anymore. Thankfully, I've got a brain cell or two, so it's not difficult to find work. I spent about a year with a faction made up of former scientists. They were good people... it's a pity they died in a blind pursuit of some hazy goal. After that I spent some time wandering the Zone and then I started working for the scientists. No regrets so far. + + + That's all I wanted to know. + + + I'm planning to go into the intermittent psy-field. You got any advice for me? + + + What can I say? I doubt you're familiar with the informational-energy field theory... You can be sure that brief exposure to the psy-field is not dangerous... in the long run, anyway. But don't relax too much when you're in there. Those who underestimate psy-fields end up as zombies. + + + Can you break into a steel container? + + + That's not for me. I don't have the right equipment... And it's against our health and safety rules. + + + Can you decrypt a black box? + + + I can, but I'm not going to. I used to do that kind of thing... And I didn't like it. Too much hassle... I get enough work from the scientists. + + + What's special about the CS-3a? + + + Other than the fact that I designed it?... It's one of the best suits in the Zone. That's why you're wearing it, right? It's light, mobile and has solid army body armor at its core. I added the anomaly protection stuff myself... It's a pity that we had a shortage of materials in those days... But what else do you expect in the middle of a swamp... Still, all it would take is a couple of patches and you've got a real modern suit... I've got plenty of top notch equipment to spare, so that's no problem either. + + + Do you work for Owl? + + + No. He helped me get something the other day... A favor for a favor. + + + Owl asked me to bring you detectors. Here they are. + + + Good. I'll do some work with them and return them to Owl with the guides... Anything else is personal business between you and Owl. + + + Oh! So you were the one selling weapons to bandits at Zaton! + + + Shh... Are you crazy talking about that shit here? We don't know each other, you got that? + + + Got it. + + + How about I tell the commander about your little business on the side? + + + And what are you going to tell him? You got nothing on me. I mean, you were the one who helped to take out the witnesses. You got no proof, and you'll look like an idiot accusing me of stuff with no evidence. + + + I found a PDA on some dead mercs. It contains a contract to assassinate me. With you as the client. + + + I've had enough of you... Listen, give me the PDA and I'll give you an excellent weapon used exclusively by elite Duty troops. So, how about it? + + + OK, I'll take that shooter. + + + Keep it. I don't need handouts from a backstabbing snake! + + + I have another PDA with a contract to assassinate me. You're the client, again. + + + Damn it... Friggin' mercs... can't trust them to do shit... Listen, let's put an end to this... Here's what we'll do. The mercs are going to stop looking for you and you're gonna leave me alone. In order to compensate your losses, I will lead you to Duty's secret warehouse where you can take all the weapons you can carry. + + + OK, let's do that. + + + Good, let's meet there. The stash is next to the quarry. + + + I'm not going anywhere. You'll have to give me all that stuff right here. + + + I don't have anything here! I'm not that stupid! Either we meet by the stash or you don't get anything. + + + No, thanks. + + + I don't need handouts from a backstabbing snake! + + + I want to leave the Zone. + + + You sure? There ain’t no way back. + + + I’m sure. Let’s go. + + + Actually... I’ll stay for now. + + + Let’s have a look... Well, your liver is bigger than I'd expect, but that's an occupational hazard, right? Apart from that, you’re as healthy as a burer. + + + It would be just about normal if it didn’t glow. It’s a scary thing, the way it is now. Go have a look for yourself... I doubt you’ll enjoy the visit though. + + + OK, it’s your choice. + + + "Former" Monolith fighters? Well, it’s your call... Will you vouch for them? + + + "Former" Monolith fighters? No, thanks. The last thing I need is a rabid mob of fanatics. + + + Hah. Good boy. You take care of your own, and that means you know you gotta keep my palms nice and greasy. So what have you got for me, an artifact or the 15,000? + + + I brought an artifact. + + + All right, which one? + + + I don't have an artifact worth that much. + + + Flame. + + + Goldfish. + + + Firefly. + + + Snowflake. + + + Hrm... None, for now. + + + Well, I've said what I had to say. Now I wanna hear you talk. + + + See ya. + + + Of course! The intermittent psy-field still needs to be studied, and the sooner, the better. Let me ask, how certain are you of the relative safety of this venture? We most positively need your assistance in obtaining a test sample. So, are you willing to help science? + + + I may be able to find a few good people to staff your new research group. + + + Indeed? Such help would be most welcome and, I suppose, warrant a reward. + + + All right. I will hire the right people. + + + I'll think about it some more. + + + Here it is. I found a controller in that tunnel. Then I killed him. + + + You're amazing! You killed a controller and obtained what we needed... If I didn't know otherwise, I would never have believed you! It's excellent experience and a fantastic sample. Your contribution to science is noteworthy indeed. On behalf of me personally and scientists everywhere, please accept my sincerest gratitude! + + + Here it is. I found a controller in that tunnel. I barely made it out. + + + A controller, you say? How terrible, but who could have known? The important thing is that you brought us the sample and thereby made a noteworthy contribution to science. Thank you, and please take this modest reward. + + + How do you like your new research group? + + + Oh, just fine. Competent young men, I must say. Please take this. We appreciate your, err, human resources skills. + + + Wassup, bro? Obviously, I’m glad to see you, but I wouldn’t mind being on my own for a while either. + + + I’m here about the captive stalker. I want to buy him out. + + + And I want respect for the bandits and our rules, buddy, but I ain't interested in unnecessary trouble either... 15,000 or a suitable artifact will do for now... I'm a fair man - I won't take more than I'm owed. + + + Here’s the cash. + + + OK... I respect what you’re doing. Take this loser and tell the stalkers that next time the price will be higher. + + + I don't have that much on me. + + + OK, you ain’t got shit, what else is new? + + + I haven’t got anything suitable at the moment - I’ll come back later. + + + Let’s have a look... Well, there’s nothing of strategic importance here, but it could come in handy. I’ll buy all of these at 500 per document. Deal? + + + Let's have a look. Holy crap... This info would damage Duty’s reputation... a lot! I’ll buy it for 4000. + + + Interesting. Well, I would be prepared to purchase it from you for 2000. + + + Yes, but the price is the same as before: 2000. + + + OK, see you. + + + But that’s terrible! What on Earth could have happened to them? Hrm... Mutants are a possibility. I’ll have to ask Ozersky which type of monster it could be... Hrm. Nonetheless, the psy-field needs to be studied. This mission is essential for science in general and for our team in particular. We badly need your help with acquiring a sample. If you have any doubts, go see Ozersky. He will conduct the necessary analysis, which will identify your current resistance to psy-emissions. So, are you willing to aid science? + + + I’ll think about it. + + + Our research team, made up of local stalkers, recently found a psy-field that is highly unusual. According to our theories and the measurements taken, the nature of this field is such that it has intermittent psy effects, as opposed to emitting them permanently. + + + Unfortunately, our research team is dead, and until we find a replacement, there's no chance of taking any measurements. + + + Please wait... Would you be so kind as to give me a moment’s attention? + + + What are the anomaly scan results? + + + You got any other work for me? + + + I’ve heard of it. + + + Unfortunately, I have not been able to convince Hermann to equip a search team yet... I admit, the rumors about this phenomenon are too contradictory, but something tells me that the Oasis exists. My intuition rarely lets me down, so if you can find it and bring me proof of its existence, I would be extremely grateful. + + + I would look for it, but I’ve already been to the Oasis. + + + Hrm... Err... I think I must have misheard you. What did you say? + + + I'm here to pay Vano’s debt. + + + Yeah, I remember him. His debt ain't small and with the juice running it's up to 7 Gs. + + + OK, here. + + + Tell Vano he don't owe us anymore. + + + OK. + + + I don’t have that much. + + + Come back when you do. + + + Interest wasn’t part of the deal. + + + What are you talking about? Do you take me for a sucker - lending out cash without charging interest? It’s 7 Gs and that’s the end of it. + + + Think carefully now. I’ve got my shooter here and I don’t mind using it... Tell me, what is your corpse gonna do with all that interest? + + + OK, OK, calm down chief! I’m sure we can come to an agreement. Just pay me 5 Gs and that’s his debt settled. + + + Hah... shove that pea shooter up your ass, punk! It’s 7 Gs including interest. End of story. + + + Did you forget me? I’ve still got the shooter. + + + I prefer to shoot you down for free. + + + I’ll think about it. + + + 7 Gs, including interest. + + + I ain’t up for any big jobs right now. I need to get my shit together... You know, I might even go home... find a proper job and forget these damn artifacts... I just don't know how I'd leave Grizzly... and Torba... We're real close now, always helping each other out... I don't know, maybe I just need to rest and get my head on straight... + + + I ain’t up for any big jobs right now. I’m gonna work for the scientists and get my shit together... You know, I might even go home... Find a job on the outside... Ah, I don’t know. I need to just chill and get my head on straight... + + + So, you ready to save Mitay? I hope you don’t mind working together with some fellas I hired... + + + I have the PDA of Duty’s trader, Morgan. You interested? + + + I have a PDA which proves that Morgan has links to the mercenaries. + + + Actually... I’m gonna keep it. + + + I knew that the desire to advance science and do good in the world would triumph inside you in the end! All right, here is the plan. A stalker research group will take the measurements. Your job is to escort them, that is to protect them and guide them through difficult terrain. Good luck. The stalkers are waiting for you outside. + + + Howdy, stalker. Surprised to see an old man here? He-he. I came here with the boys for a change of scenery. I fix equipment and sometimes people too... + + + Now that you’re here, what can I do for you? + + + How did you get to Pripyat? + + + Garry showed me the way. Those stalker fellas have been planning to come here for a long time, but they didn’t feel like dealing with the military. As soon as Garry said the army had taken off, I didn’t think twice about it. Have no fear, Uncle Yar is here! Hah! + + + I need medical assistance. + + + Let this old man have a look... + + + There we go, you’ll live. If you get any swelling, just take a leak on it - I hear that helps. + + + You look healthy enough to me! You must be pulling an old man's leg, hah... + + + Welcome to my humble abode of pleasure and joy. You after joy, pleasure or both in equal measure? + + + Well, the boys are always saying that I'm too kind, like a fairy godmother, so you best be happy about this... I ain’t gonna be so kind next time. Now get out of here, loser! + + + I’ve been there already. The bandits are dead. + + + Wow, you’re hardcore! Thank you so much! Here, take this money - it was meant to pay the debt off but now it’ll go to someone who actually deserves it. + + + Wow, you’re hardcore! Thank you so much! Keep the money that was meant to pay off the debt. Now it’ll go to someone who deserves it! + + + Our scanners registered unusual activity north of here... Judging by the received data, I expect that the anomalous formation there is unstable. Unfortunately, I can’t say any more than that from here. We need to conduct research in the field... The only thing I can say is that regular stalker detectors won’t be able to detect the anomaly - you’ll need a Svarog, one of our own inventions. + + + Scanners continue to register unstable anomalous activity north of here. If you have something better than a regular stalker detector, a Svarog, for example, you could try to conduct research in the field. + + + Only from the swamp anomalous area so far. Despite this, Novikov has already found a practical application for it. Thank you for the work you have done and we look forward to the second batch of results. + + + Only from the anomalous area beyond Kopachy so far. Despite this, Novikov has already found a practical application for it. Thank you for the work you have done and we look forward to the second batch of results. + + + Of course. I received the full results. To be honest, the volume of data that was produced is so great that it will take weeks if not months to process it fully. Despite this, Novikov has already found excellent practical uses for it. Thank you very much for your help. + + + No, nothing like that has happened here. Hrm... I did see one suspicious guy very recently though. I went for a walk and on my way back I spotted a stalker leaving Yanov. As soon as he clocked me, he started being rude for no reason and said something about knowing where I live or some shit like that. I just ignored him at the time, ‘cause I thought he was drunk or something but now that I think about it, it’s pretty dodgy. + + + Where did he go? + + + North-east. I heard some shots being fired over there but that’s pretty normal around here. Ask Zulu - he’s in his tower day and night, so he might have seen something. + + + North-east. He probably went to the substation. + + + I see. + + + What’s up, friend? + + + How are you doing? + + + I’m doing good. I mean, it ain’t easy but we’ll make it out of here. Together we can do anything! + + + How are you doing? + + + I’m not sure... I don’t feel great here. I have a feeling I need to move on. I might leave soon...don’t hold it against me. + + + I wiped out the bloodsucker lair at Zaton. Completely. + + + [continue...] + + + [continue...] + + + [continue...] + + + [continue...] + + + I need people to take measurements in anomalies. + + + I need measurements to be taken in anomalies. + + + Who’s that sleeping beauty? + + + You found the artifact? + + + You bet! There's nothing to do here - all we've got for entertainment is this backgammon board. This isn’t Pripyat... Man, if only I could complete this friggin’ contract, that’s where I’d be! + + + [continue...] + + + You can go to the quarry - that’s where Splinter died. Just before he passed on he told me that Flint stole his loot and left him to die in an anomaly. + + + His name was Splinter. He walked into a gas anomaly and you ran off with his artifact. As you can see, he was able to tell me everything before he died. + + + I’m not going to ask where you got this from. Let’s make this simple: I’ll buy this PDA from you for 4,000. I’ve long been curious as to what our supply officer is doing when he’s not at work... + + + Let’s have a look... Wow, what a piece of shit! Not only was he selling them our weapons, he handed the warehouse over to Freedom!!! Damn, we’ll have to organize a friendly meet & greet team right away. + + + Let’s have a look... I don't believe this shit! We knew about the warehouse and we even planned to pay a visit, but we didn't have a clue about the alarm because that scumbag didn’t say a word about it. Wait a second, I’ll warn the boys. + + + Well, I’ll give you 4,000 out of pure curiosity. + + + Well, he ain't exactly a storm trooper but he can handle a gun just fine. He’s always got a sour look on his face though, as if his rations ain’t nothing but lemons. + + + I found a strange anomaly at the old cooling tower. + + diff --git a/gamedata/configs/text/eng/st_dialogs_pripyat.xml b/gamedata/configs/text/eng/st_dialogs_pripyat.xml new file mode 100644 index 0000000..a5a1381 --- /dev/null +++ b/gamedata/configs/text/eng/st_dialogs_pripyat.xml @@ -0,0 +1,906 @@ + + + + Hah! That showed 'em! Thanks for helping me out. If it weren't for you, those bastards would've gobbled me up before long. You know, you're a good stalker, after all... Sorry I got in a huff back there, but you could have told me that you're USS earlier. + + + No problem. We better make for the military camp - it's safer there. + + + Yeah, it's bound to be better than wandering around Pripyat on my own. + + + Let's go, then. + + + I've got some business to finish up here, but you go ahead. The camp is in the laundromat building. + + + Time for me to go. + + + Wait... Take this... It's the most reliable MG in the Zone. + + + Wait, don't you need it anymore? + + + I'll always have something to fight off a couple of mutants with. Plus I've decided to go back - Garry will be taking me to Jupiter. So you'll need it more. Take it and use it well. + + + Good luck to you. + + + Thanks, it's a great weapon. + + + Hah! It's not great, it's the best in the Zone. It's modified, so it's a touch on the heavy side, but then you don't need to run when you've got that kind of cannon on you - let the enemy do the running! + + + Bye. + + + Cool! + + + Do you know where Zulu went? + + + He left... He asked me to take him to Jupiter and we parted ways not far from the plant. He didn't tell me where he was going. + + + Wait... I had a rather unpleasant experience I wanna share... Some mercs asked me to lead them to Pripyat. Initially they won me over with a juicy fee, but I soon realized I was in the brown stuff... They didn't let me out of their sight for a second and threatened me at gunpoint. I managed to escape as we approached Pripyat but they're bound to be in the city by now, so be careful. + + + Did you hear what the mercs were talking about by any chance? + + + Some of it, yeah. They clearly had no intention of letting me live, so they didn't conceal their plans. They were mainly discussing meeting the client's people, who were going to show them the object and the purpose of their mission. + + + Where is the meeting going to happen? + + + Nearby, in the yard of the apartment complex. + + + Thanks for the information. + + + You mentioned the mercs - did you hear what they were talking about? + + + Some of it, yeah. They clearly had no intention of letting me live, so they didn't conceal their plans. They were mainly discussing meeting the client's people, who were going to show them the object and the purpose of their mission. + + + Where is the meeting going to happen? + + + Nearby, in the yard of the apartment complex. + + + I've made some arrangements with the scientists about a suit - go see Hermann about it. + + + OK... Where's the meeting point? + + + Near Yanov station, at Zulu's place. + + + It's full of stalkers! How about you take me there, because if I show up on my own there could be trouble. If you're with me, they won't shoot because they know you. + + + Which evacuation point did you go to? + + + Sorry, I can't discuss that - it's classified. + + + Let's go see Zulu. + + + OK. But first we'll need to go see Hermann to get the scientific suit. + + + Let's go. + + + I'd go... But there's an emission out there. Let's wait a bit? + + + How did you end up here? + + + My helicopter crashed onto a Jupiter workshop and went through the roof. I'm the only survivor - I managed to get out of the Jupiter plant and make my way to the nearest evacuation point, but there was nobody there. Then I met Garry and he led me to the bunker. + + + You'll need a suit with a closed-cycle respiratory module to get to Pripyat. + + + What do you do here? + + + My orders are to proceed to the evacuation point, but the Zone is too dangerous. I'm a pilot, not a storm trooper! That's why I'm waiting here in the hope that I'll be collected once the operation is completed. + + + I'm putting a squad together to go to Pripyat with. Wanna join me? + + + Pripyat? You know, I think I will... Maybe some of our guys survived and made it there... There's an evacuation point in Pripyat, so that's actually my destination. I'd never make it on my own, but I'm willing to give it a go together with your squad. + + + Are you ready to go? + + + I guess you could say that. + + + Hello, stalker. + + + Hey. + + + Hello. + + + Hello, Major. + + + Where did you get a military uniform? + + + Heh... Well, I guess everyone knows that the military helicopters crashed by now... I'm Lieutenant Sokolov, copilot of one of the helicopters. + + + About that sentry... + + + His signal is coming from the old grocery store, but he's not responding... Maybe he lost his radio... It's hard to be certain at this point. We need to find him... + + + Thank you, Colonel! I think I'll manage. + + + About that sentry... + + + Well... It's all because of that controller... That's probably what happened to the recon squad, too. It made them shoot each other... Those creatures are some of the worst in the Zone, plus we have not been trained to fight them. The controller came as a complete surprise to us and we've lost men yet again... + + + At least this controller has been dealt with. + + + I hope things calm down a bit now... I'm grateful for your help, Major. I suspect you must have used a lot of ammunition in the course of this mission... Find Lieutenant Kirillov and ask him to issue you with the necessary kit. + + + Thank you, Colonel! + + + Don't worry, Colonel... I'll deal with that mutant. + + + Can you give me more details on the mission? + + + Who is he? + + + If we don't find the source of interference soon, we'll have little left to do but wait and die. The first mass Monolith attack will tear the military into shreds... And the operation will result in definitive failure... + + + I'll try to find the source as soon as possible. + + + So, Major? Did you find the source of radio interference? + + + No, I'm still working on it... + + + Garry told me about the incident with the mercenaries... + + + Yes, he told me about it too... As soon as Garry escaped he came here in fear of being pursued. Fortunately - both for him and for us - the mercs didn't track him... We're watching the place where the mercs and the client's people are supposed to meet, but it's all quiet... I'd love to know what the mercs are after here... + + + I have information that the mercs are looking for a secret laboratory in Pripyat. + + + A secret laboratory, here in Pripyat? But where did you get this information? + + + From a merc notebook in Zaton. It's also confirmed by a story told to me by a stalker called Uncle Yar. + + + Hrm... Do you know anything else? + + + They're looking for the central laboratory. I was able to find out its coordinates during my investigation. + + + If this is true, it means that we've got another enemy on top of the zombies and fanatics... We need to decide on a course of action. + + + We must observe the meeting and eliminate the client's representative, if possible - that will ensure that nobody goes to the X8 laboratory for a while. + + + That's a good solution in that although we won't find out who else knows about the laboratory, we'll at least make sure the mercenaries don't reach it. At the same time, the mercenaries will react fast and they'll be a threat to us. Try to kill both targets if you can. I'll order Lieutenant Kirillov to go with you. + + + OK. + + + Wait, maybe we should choose the other target. + + + Decide which target is the priority. + + + We need to eliminate the mercenary leader - do that and the beheaded merc squad won't be much of a problem anymore. + + + That's a decent solution, but the messenger will probably escape and then hand over the information about the laboratories somewhere else, so that the mercenaries will still reach it eventually. Try to kill both targets if you can. I'll order Lieutenant Kirillov to go with you. + + + I don't have the time for this. + + + From a merc notebook in Zaton. + + + A story told to me by Uncle Yar, a stalker from Yanov station. + + + About the mercs... + + + Great job - both targets have been killed. Now the mercs won't get in our way and will avoid needless interest in the lab. You can keep the rifle. Here's some more ammo for it. + + + Good, now that the leader is dead, the mercenaries won't be a problem for us. But, seeing as the client's people made it out, they could show up at the lab. Stay alert... You can keep the rifle. Here's some more ammo for it. + + + Good - now that the person who knew the location of the laboratory is dead, the mercenaries won't find it. Then again, I doubt they'll be leaving Pripyat and that means they'll be a constant threat to us. Stay alert... You can keep the rifle. Here's some more ammo for it. + + + So, you changed the target at the last minute? Well, it was a decent decision. Now that the leader is dead, the mercenaries won't be a problem for us. But, seeing as the client's people made it out, they could show up at the lab. Stay alert... You can keep the rifle. Here's some more ammo for it. + + + So, you changed the target at the last minute? Well, it was a decent decision. Now that the person who knew the location of the laboratory is dead, the mercenaries won't find it. Then again, I doubt they'll be leaving Pripyat and that means they'll be a constant threat to us. Stay alert... You can keep the rifle. Here's some more ammo for it. + + + That didn't go so well. The mercenary leader is alive and so is the client's man. Now the mercs know about us and they'll be as much of a threat as the Monolith forces. On top of that they now know the laboratory location, so it's only a matter of time before they show up there. Stay alert... You can keep the rifle. Here's some more ammo for it. + + + Get your soldiers ready, Colonel. I'm good to go. + + + OK. Cover Strelok, Major. We'll take care of ourselves. + + + So... Among us you and Strelok have the most experience in the Zone. The difference is that while Strelok's experience remains hearsay, the fact that you're a pro is clear as day. What's I'm trying to say is that I'm counting on you, Major. Keep an eye on Strelok - there's not many of us left. + + + The squad is ready to move out. We're just waiting on you, Major. + + + Looks like the crazies are all dead. Grab that rifle and let's get the hell outta here while we can. + + + Makes sense to me. + + + I'm ready, let's move. + + + OK. The squad is ready. + + + Move out. + + + We'll have to wait. I don't want to lose men in the emission. + + + I'm Captain Tarasov. You may be a Major, but I'm in command here and that means my orders are not up for discussion. The lives of every man in the squad depend on that. The plan is as follows: we get in position in the western section of the hospital and wait for the Monolith forces to show up. We have to work quickly to make sure we don't attract unnecessary attention. + + + Roger, let's go. + + + OK. The squad is ready. + + + Move out. + + + We'll have to wait. I don't want to lose men in the emission. + + + Wait, Captain, I'm not ready yet. + + + Anything new on the interference front? + + + I identified many sources, one of which is somewhere close. If it is destroyed, we may well be able to communicate with HQ. + + + I have worked out the coordinates of the source of interference. It must be some sort of specialized, high frequency or even microwave transmitter. + + + The device you destroyed was the source of interference - there are probably loads of them, but we've already established comms with HQ. + + + Tell me about the signal. + + + The signal keeps appearing and disappearing, but every time it shows up again it's closer to the base. + + + Is that it? + + + Not quite - the thing is that the signal is being transmitted on frequencies that are rarely used for radio communication. + + + I see. + + + Take this shooter and ammo... You can chill for now - I'll watch the position from the other side and contact you as soon as they show up. + + + OK. + + + Greetings. I'm Lieutenant Kirillov. I am responsible for weapon maintenance and ammunition storage. + + + You got any ammo? + + + Yeah, we broke into a Monolith warehouse the other day and it was full of ammo for every type of weapon you get in the Zone... I wonder how they get so much weaponry in here... I'm guessing one of the perimeter guards must be selling it to them... + + + So you can repair my shooters, too? + + + Of course. We were trained to repair all kinds of weapons. + + + I see. + + + Greetings. + + + Where did this headache come from... + + + Here it is, the moment of truth - I wonder if we'll make it out or not... + + + I need ammo. + + + No problem... What exactly do you need? + + + 9x18 pistol ammo... + + + Here... Anything else? + + + Here... + + + 9x19 pistol ammo... + + + 11.43x23 pistol ammo... + + + Shotgun ammo... + + + 5.45x39 assault rifle ammo... + + + 5.56x45 assault rifle ammo... + + + 9x39 assault rifle ammo... + + + Sniper rifle ammo... + + + MG ammo... + + + I can't issue you any more, Major... The Colonel's orders are to conserve ammunition. + + + OK, forget about it. + + + I need grenades. + + + No problem... What kind? + + + Hand grenades. + + + Here... + + + VOG-25 launcher ammo. + + + M209 launcher ammo. + + + Actually, never mind. + + + I can't issue you any more, Major... The Colonel's orders are to conserve ammunition. + + + I need medical assistance. + + + I'm always glad to help. Let's have a look... + + + That's you, healthy and good to go. + + + How do you feel after what happened? + + + I'm OK now... I was in a state of shock after kindergarten, but as soon as the emission started I snapped out of it pretty quick... + + + Greetings. + + + The main thing is reaching the helicopters. + + + I need medical supplies. + + + Let's see what I've got. Here, take this... + + + Sorry, I don't have much left, so I can't give you any more. + + + We monitored your radio signal. + + + Yes. I contacted a stalker called Guide. He told me how to get to this place via the underground tunnels. + + + Who is Guide? + + + He's a legendary stalker - they say he can lead you anywhere in the Zone... The army boys are lucky to have met him - they wouldn't have lived long without him. + + + How did you know that the military are here? + + + Guide told me - he was the one who brought Kovalsky and his squad here. + + + I see. + + + What information do you want to hand over to the Government? + + + Lots of things... I'm sure that the information I have can be used to destroy the Zone. I thought I could do it myself... But it turned out to be far more complicated. The people who started it weren't in control anymore... I'll explain everything when we get out of here. + + + What did you see in the sarcophagus? + + + It's all fake... The Monolith, the Wish Granter, is just a lie, a device that clouds your mind. And the people behind it are hiding out somewhere else... + + + Do you know who is behind it? + + + Maybe yes, maybe no... I don't know what to believe anymore... Despite that, I found out more than they wanted me to. + + + OK, enough about that. + + + I'll share everything I know. As long as this information reaches the right people. + + + I found your group's stashes on the way here... + + + I wonder how you managed to find them... There should have been some records inside, did you find any? + + + Yes, I found these three notes. + + + Thank you... Ghost and Fang were my friends... Together we managed to get past the Scorcher and reach the CNPP. Unfortunately, they both died. After our return, we parted company - I was wounded and stayed with the Doctor at the swamps. I didn't see them again... It wasn't until much later that I had learned that Fang was killed by mercs and Ghost died because he trusted the scientists... Anyway, that's the past... Now I know what needs to be done to make sure that my friends did not die in vain. + + + Yes, here is your message to Ghost. + + + Thank you... Ghost was my friend... Together with Ghost and Fang we managed to get past the Scorcher and reach the CNPP... After our return from the center, we parted company - I was wounded and stayed with the Doctor at the swamps. I didn't see them again... It wasn't until much later that I had learned that Fang was killed by mercs and Ghost died because he trusted the scientists... + + + Yes, here's Fang's note to you. + + + Thank you... Fang was my friend... Together with Ghost and Fang we managed to get past the Scorcher and reach the CNPP... After our return from the center, we parted company - I was wounded and stayed with the Doctor at the swamps. I didn't see them again... It wasn't until much later that I had learned that Fang was killed by mercs and Ghost died because he trusted the scientists... + + + Yes, here is your message to Fang. + + + Thank you... Fang was my friend... Together with Ghost and Fang we managed to get past the Scorcher and reach the CNPP... After our return from the center, we parted company - I was wounded and stayed with the Doctor at the swamps. I didn't see them again... It wasn't until much later that I had learned that Fang was killed by mercs and Ghost died because he trusted the scientists... + + + Yes, here's your note to Ghost and Fang's note to you. + + + Thank you... Ghost and Fang were my friends... Together we managed to get past the Scorcher and reach the CNPP. Unfortunately, they both died. After our return, we parted company - I was wounded and stayed with the Doctor at the swamps. I didn't see them again... It wasn't until much later that I had learned that Fang was killed by mercs and Ghost died because he trusted the scientists... + + + Yes, here's your note to Ghost and another one to Fang. + + + Thank you... Ghost and Fang were my friends... Together we managed to get past the Scorcher and reach the CNPP. Unfortunately, they both died. After our return, we parted company - I was wounded and stayed with the Doctor at the swamps. I didn't see them again... It wasn't until much later that I had learned that Fang was killed by mercs and Ghost died because he trusted the scientists... + + + Yes, here is your message to Fang and his message to you. + + + Thank you... Fang was my friend... Together with Ghost and Fang we managed to get past the Scorcher and reach the CNPP... After our return from the center, we parted company - I was wounded and stayed with the Doctor at the swamps. I didn't see them again... It wasn't until much later that I had learned that Fang was killed by mercs and Ghost died because he trusted the scientists... + + + Yes. Unfortunately, I don't have them on me. + + + Let's have a look... You’re in trouble Major... I mean, you’d probably pass the Space Program medical exam, but apart from that you’re in terrible shape! Hah! + + + Come on, Major. The Monolith people won’t wait. + + + Major, we’re missing a sentry - he left his post. His beacon signal is coming from the grocery store but he’s not responding. God knows what happened there. He might have freaked out - the helicopter crash shook the kid up real bad. Will you check out the beacon signal for me? + + + I will. + + + I can’t promise anything. + + + Major, we need to find the recon unit. + + + You and the assault squad need to proceed to object A17 - Captain Tarasov will show you. The target is two hospital wings connected by a passage. Monolith fighters are currently in the western wing. You are to set up an ambush in the other wing. They should have the rifle with them, probably carried by the biggest crackpot. + + + He’s probably that squad’s leader. The boys saw him giving his fighters a sermon. Literally! Be careful - who knows what you can expect from him? + + + Roger, Colonel. + + + Greetings. I am Colonel Kovalsky, commander of this unit. + + + I’m Major Degtyarev, USS. I’m authorized to investigate the failure of Operation Fairway. + + + I see. Then listen up, Major. Operation Fairway went down the pan together with our choppers. Half my boys are dead and we ain’t got comms with HQ. I want to know why the operation failed as much as you do. + + + Any ideas? + + + My only idea is that the helicopters were shot down. Shot down using an extremely powerful weapon that we don't know much about. Monolith fighters used one against us during the first assault on the CNPP... I’m planning to capture one of these weapons and investigate. If you want in on the action, the Monolith squad carrying this weapon has been tracked down, and the assault team is waiting for my signal to begin the operation. What do you say? + + + I agree on the condition that you provide me with all the information you’ve got and give me complete freedom of action. + + + I have info on the unidentified weapon, the Gauss rifle. + + + Wow! How does it work? Can it be used to shoot down a helicopter? + + + Technically it can, but the accelerated bullet would have left holes in the choppers, and there weren’t any. + + + Damn... That’s a dead end, then. I don’t have any other ideas. All we can do now is sit on our asses in the middle of this friggin’ Zone and hope that they’ll come for us... OK, that’s enough whining from me. Let’s concern ourselves with things we can affect here and now. Thanks to you we now know that hiding in cover isn’t gonna keep us safe from those accelerated bullets, and that’s already something. So thank you, Major. I’ll contact you if we get anything new. + + + Technically it can, but Stingrays 4 and 5 crashed due to electronic malfunctions. Accelerated bullets couldn’t have done that. + + + How’s the operation going? + + + Sergeant Morozov was killed. Monolith fighters led us into a trap by sacrificing their own people. + + + Bastards! They couldn’t have known about our plan... So we’ve lost our sniper. What about the aim of the operation? + + + We took some losses... Monolith fighters led us into a trap by sacrificing their own people. + + + Bastards! They couldn’t have known about our plan... So we’ve lost some men. What about the aim of the operation? + + + The squad is dead... Monolith fighters led us into a trap by sacrificing their own people. + + + Bastards! They couldn’t have known about our plan... So we’ve lost Tarasov and his men. What about the aim of the operation? + + + I got the weapon. It was damaged during the fighting. + + + So we can’t determine whether it was used to shoot down the helicopters. Listen, Major: you’ve got connections among the stalkers. It’s possible that they’ve come across this weapon before. They should have technicians among them. Will you try talking to them? + + + OK. + + + Good... Oh, by the way. Another stalker made it here from Jupiter - have a chat with him first, if you feel like it. + + + I’m still working on it. + + + I see. Major, we need that weapon. I’m sure you understand how important this is. + + + Uh-huh. + + + I found your note at the Volkhov AA complex. Take it. + + + Listen... Oh, never mind. I don’t think any of our people will show up at the location anyway. If you do spot any military around here, let me know, OK? Thanks in advance... + + + Major... Thank God! I’m saved! + + + How did you end up here? + + + Err... I don’t remember much... I was so scared I could barely think and I don’t even know what scared me. I just had a feeling I had to hide, so I ran... I remember streets, turnings somewhere... I came to in this hole. The door was locked from the outside... I thought I was gonna die in here. How did you find me? Actually, let’s get the hell out of here and get closer to the base. This place is giving me the willies... + + + Let’s go. + + + Hi. You need medical assistance? I'm not a doctor, but I can remove bullets and sew up wounds if it comes to that. + + + I need information. + + + Ask away. + + + About Operation Fairway... + + + What about it? + + + Did something unusual happen while the helicopters were in the air? + + + Not until the choppers started crashing. We stuck to the operation plan: took off 90 seconds before the emission, activated our protection system and put the birds on autopilot. We were following the shortest safe route, calculated using the anomaly map. The fact that we had zero visibility shouldn’t have affected the mission because the corridor was wide enough. According to the plan, we should have reached the power plant in twelve and a half minutes. After nine minutes we lost comms with Stingray 4, and then the others started dropping like flies. + + + I have a few more questions about the operation... + + + What happened to the helicopters? + + + Not much. Stingray 2 and 4 are a complete mystery. I don’t know where they crashed or what happened to the men on board. Information about the other choppers comes from the men who made it out, so don’t expect an accurate picture. We had other things to worry about. + + + Tell me about Stingray 1. + + + How did you get here? + + + We met a stalker not far from the minefield. I think he must have heard the mine exploding. A strange guy... called himself Guide. He didn’t ask any questions and just offered to lead us to Pripyat. That suited our plan, so I agreed. We kept him in our sights just in case, but everything went smoothly... He didn't say a word until we reached the city, and when we did he just disappeared without warning. I ordered my men to leave him be. + + + Tell me about Stingray 3. + + + Captain Tarasov says that both engines failed. They had to land on the hill around position B2. They were lucky in that they had a soft landing, but the technician didn’t have time to identify the cause of the malfunction because they were attacked by snorks and lost three men. The others decided not to stick around - they contacted Stingray 5 and went to meet them. They got into a fight with a well-armed enemy squad on the way, but managed to get out of there without taking losses. + + + How did they get to Pripyat? + + + The crews of Stingrays 3 and 5 managed to link up not far from the crash locations near some sort of barge. It was reported to me that the man who lived there was crazy as a loon: when my men tried to detain him, he tried to detain them! I mean, the poor bastard was outnumbered eleven to one. Anyway, chancing upon this stalker turned out to be a fortunate development, as the parties managed to come to an agreement, and he led the whole squad to Pripyat almost unharmed. The only casualty was Lieutenant Stetsenko, who lost a couple of toes in a gravitational anomaly on his way here. + + + Tell me about Stingray 5. + + + The electronics malfunctioned and Stingray 5 dropped straight into a swamp. Five men survived the crash. They were contacted by Stingray 3 as they were getting their equipment out of the chopper. The squad commander, Major Neborsky, died on the way to the meeting point. Poor bastard was killed by a bloodsucker near the scanning station... The others made it without any problems. They lost another man, Senior Sergeant Batyai, one of the snipers, when they reached Pripyat and got into a fight with Monolith forces. + + + How did they get to Pripyat? + + + The crews of Stingrays 3 and 5 managed to link up not far from the crash locations near some sort of barge. It was reported to me that the man who lived there was crazy as a loon: when my men tried to detain him, he tried to detain them! I mean, the poor bastard was outnumbered eleven to one. Anyway, chancing upon this stalker turned out to be a fortunate development, as the parties managed to come to an agreement, and he led the whole squad to Pripyat almost unharmed. The only casualty was Lieutenant Stetsenko, who lost a couple of toes in a gravitational anomaly on his way here. + + + Not much. Stingray 2 is a complete mystery. I don’t know where it crashed or what happened to the men on board. You should know more about Stingray 4 than I do. Lieutenant Sokolov, the one that came here with you, is the only survivor from that chopper. Information about the other choppers comes from the men who made it out, so don’t expect an accurate picture. We had other things to worry about. + + + Not much. Stingray 2 is a complete mystery. I don’t know where it crashed or what happened to the men on board. You can ask Lieutenant Sokolov about Stingray 4 yourself. He’s the only one from that chopper’s crew who made it to Pripyat. Information about the other choppers comes from the men who made it out, so don’t expect an accurate picture. We had other things to worry about. + + + I need other information. + + + I don’t have any more questions. + + + What’s the situation in Pripyat? + + + As shitty as it gets. Pripyat is crawling with a mixture of Monolith fanatics and zombies. Emissions hit one after another, and there’s always mutants and anomalies to watch out for... Welcome to Hell. + + + How are you doing for equipment and supplies? + + + Tell me about the Monolith. + + + They’re fanatics, pure and simple. I don’t know what’s spurring them on but they’re constantly looking for a fight. They don’t retreat even if they’re outnumbered and outgunned... And that’s pretty rare for this place. It looks like they’re getting regular reinforcements from the CNPP. Screw them, we’ve already lost some fine men to their attacks... + + + Have you tried interrogating one of them? + + + It’s useless. First of all, they fight to the death. Then our boys managed to get one alive when he was stunned by a grenade, but it didn’t help much. We took our eyes off him for a second and he banged his head against the wall so hard that his skull cracked open like an egg. + + + What are you going to do now? + + + I don’t believe it’s possible to go ahead with Operation Fairway. Your presence here confirms it. My plan is to hold the base until the choppers show up. I have several possible evacuation dates. + + + There won’t be any choppers until we know what caused the Stingrays to crash. + + + So that’s how it is... Well, we can’t make it out of here on foot! God knows how many miles of this shit, and then the Zone is full of stalkers who aren’t exactly our best buddies. That means our only choice is to conduct our own investigation, and not buy the farm in the process. Major, we're working towards the same goal here. + + + Not now. + + + I’m listening, Major. + + + The only equipment we have is what we carried here ourselves. Oh, we also managed to seize some Monolith stuff, mainly ammo. That means we’re extra careful about issuing what we have. Same thing with food - all we got is rations and some chow from the Monolith warehouse. + + + The only equipment we have is what we carried here ourselves. Oh, we also managed to seize some Monolith stuff, mainly ammo. That means we’re extra careful about issuing what we have. As for supplies, it’s pretty much the same thing except I’ve made a deal with Garry. He brings us canned food and we let him stay in the base and look the other way when he’s out looking for artifacts... It’s not like we have any other choice anyway. + + + We avenged our boys... Do what you need and let’s go back. I don’t feel like hanging around here. + + + Let’s not waste any time here, OK? I want to get back to the base, ASAP... + + + OK. + + + There’s that strange thing over there! What do you reckon they need it for? Ah, never mind. Come on, buddy, do your stuff and let’s get back to base. + + + You done here? I vote for heading back to the base and getting some chow... + + + OK. + + + How are you doing? + + + Shit. It’s nice to be with your own kind, but I don’t take much heart from being together with other people in one big shithole. + + + I’ve not seen you here before. Did you get here recently? + + + Yes. I’m Lieutenant Sokolov, copilot of Stingray 4. + + + How did you get here? + + + I came with a stalker called Garry. I asked him to take me with him when he was looking for a way to Pripyat. It was some trip, believe you me! It’s a good thing we ran straight into our recon team as soon as we got to Pripyat. + + + What happened to Stingray 4? + + + Who the hell knows? I had a bad feeling about the whole thing... We were flying on autopilot, the equipment was fine, and then suddenly we were flying in a piece of scrap metal with all the electronics disabled. Me and the pilot tried to reach flat ground but it didn’t work. We fell straight into the main workshop of the Jupiter plant, right through the roof... I was the only one who made it. + + + I need body armor. + + + OK. Here’s the helmet, to start with... Now armor - I hope it’s your size because we don’t have any other size anyway. I patched it up, so it should hold up. + + + Of course, Major... Given the circumstances, I don't have much of a choice... By the way, go see Lieutenant Kirillov. He’ll issue you with some equipment. + + + About the helis... + + + I’m listening. + + + Man, that’s crazy stuff... I can see Kirillov begging me for aspirin later on. + + + Waiting is the worst part. It just grinds you down like nothing else... + + + OK, Major, the boys are good to go. Stock up by visiting Rogovets and Kirillov if you need. Let me know when you’re ready. + + + OK. + + + Move out. + + + Well, in that case we need it to be rock solid, like the ones the scientists have. Then again, talking Hermann into giving me a suit isn’t going to be easy. I get the feeling he'd rather I walk bare-assed to the edge of the Zone than take up precious room in their bunker... You could ask Ozersky, I guess. He's a bit nicer and he might agree to issue me with a suit. + + + So, Major? + + + [continue...] + + + [continue...] + + + I was on it. As soon as comms with Stingray 4 went down, I informed the others of the designated evacuation point in Pripyat - I thought we could walk to the power plant. Almost immediately after that the chopper took a hit and I could smell something burning - the engine caught fire. The pilots managed to get us to the helipads near the Jupiter plant but they were both killed on impact. Then we lost Sergeant Shlyachin when it turned out that the approach to the helipads was full of mines... We lost another man, a Senior Lieutenant, in Pripyat while fighting Monolith forces for this building. + + diff --git a/gamedata/configs/text/eng/st_dialogs_zaton.xml b/gamedata/configs/text/eng/st_dialogs_zaton.xml new file mode 100644 index 0000000..8a12c70 --- /dev/null +++ b/gamedata/configs/text/eng/st_dialogs_zaton.xml @@ -0,0 +1,3117 @@ + + + + There was a strange artifact at the dredge station. Here. + + + Interesting - a semi-artifact... Here's your fee. I pay well for a job well done... Looks like you've got decent training. Come see me when you need a job. I often get orders for certain artifacts, and the pay is more than fair. + + + Got a job for me? + + + Got a little something... Last night stalkers saw some kind of weird glow at the dredge station... Too weird even for these parts. Why don't you check it out? + + + I will. + + + Make sure to watch yourself there. I'm warning you, that place is full of radiation. Don't forget your meds — you'll thank me later. + + + Not right now. + + + I've handed out all the assignments I had for today. + + + Take this semi-artifact. + + + Here's your piece of the pie. I pay well for a job well done... Looks like you've got decent training. Come see me when you need a job. I often get orders for certain artifacts, and the pay is more than fair. + + + I picked up a strange artifact at the dredge station. Wanna take a look? + + + Interesting - a semi-artifact... Let me take it off your hands. 3,000 seems like a fair price. + + + I saw that someone brought you an artifact I found. + + + Sorry, but I'm not getting dragged into this. My rules are very simple: You deliver - you get paid. You know how the Zone works - keep your eyes open, act quickly, and don't trust anyone farther than you can throw them. But if you need steady work, I'm your man. I often get orders for certain artifacts, and the pay is more than fair. + + + What artifacts do you need? + + + I'll get a Gravi. + + + Excellent! That was quick. Here's your compensation. + + + I'll get an Eye. + + + I'll get a Bubble. + + + I'll get a Shell. + + + I'll get a Goldfish. + + + I'll get a Flame. + + + I'll get a Firefly. + + + I'll get a Snowflake. + + + I can sell you a Gravi. + + + Something screwy's going on. Guys take on orders and then go missing... I'm getting a bad vibe here. Gotta close shop. + + + I can sell you an Eye. + + + I can sell you a Bubble. + + + I can sell you a Shell. + + + I can sell you a Goldfish. + + + I can sell you a Flame. + + + I can sell you a Firefly. + + + I can sell you a Snowflake. + + + I see. I'll be back some time later. + + + Both teams who worked for me have gone missing... I've decided not to accept any more orders for now. + + + The job is done. + + + Excellent! Here's your compensation. + + + Here. It may not be a lot, but it's definitely something. + + + Tell me about your artifact orders. + + + Who could I hire to protect the scientists? + + + My guys - Spartacus and his crew. They've been around the block. Some were security guards before coming to the Zone and some even come from special police forces, believe it or not. They know which end of a gun goes boom... If they're available, they'd make a good security detail. + + + I'd have a tip for you, but in light of recent events... The Spartacus crew is no more, may they rest in peace. + + + Who could I hire to take measurements for the scientists? + + + You know Gonta and his guys? Outside their hunting season they... ahem... are happy to take on side jobs. Especially if there's no shooting involved. Their thinking is, "if I feel like having my finger go numb on the trigger, I've always got hunting." + + + Couldn't tell you, really. I would recommend Gonta's crew, but I haven't heard any news of them in a long while. + + + Tell me what life is like here. + + + That's a broad topic. Try asking some specific questions and I'll do my best to answer them. + + + What do stalkers do here? + + + Ask yourself that, pal. They step ashore from Skadovsk to explore the terrain and search for artifacts, shooting back at everything and everyone who comes rushing at them. They come back on Skadovsk to get drunk and talk trash... enjoy some R&R before the next raid. Though when an emission hits, it's quite a different scene. That's when we all sit tight and remember those who didn't make it to a cover in time... + + + What drove stalkers to the center of the Zone? + + + A funny question. Some were out to discover the next artifact goldmine. Some were driven here by the Oasis rumors. Others sought the Wish Granter. And then there are the base human desires - greed and curiosity... Everyone's got their reasons. I'm sure you have yours, too. + + + How did you end up here? + + + I came here with Grouse after the Scorcher was disabled. But I'm sure that's not what you really wanna know, am I right? I deal mainly in artifacts. The outside is full of trinkets already, so valuable customers want the rare stuff. That's why I decided to set up a stalker camp, where real high-value articles can still be found. I mean, when a stalker comes back with his loot, what does he really need? A cold one in his hand and good ol' human contact, that's what. And that's what Skadovsk is all about. + + + What do you think about bandits? + + + Well, it's like this. I got nothing against 'em on board the Skadovsk, so long as they act decent. After all, you don't meet total douche bags all that often. Some of them are actually former stalkers. Who knows, one of them poor bastards might actually decide to give up the crook business before he catches a bullet... Life is full of surprises. + + + Nah, that's okay. Fuhgetaboutit. + + + If you say so. + + + Tell me, did any military show up here? + + + Think about it. What would those jarheads be doing in our camp? Trust me when I say that they prefer to steer well clear of this place. Too many of us here remember what it was like to crawl through dirt at the Cordon, under fire from their damn machine guns... + + + Tell me about the Compass. + + + The artifact is the stuff of legends. They say the Compass has no harmful side effects and, if used wisely, can lead you out of any anomaly. You can see why customers would line up to get their hands on it. Just the other day someone told me that Noah knows something about it. He's a stalker who lives south of here. + + + Okay, I'll pay Noah a visit. + + + I'll think about it. + + + A legendary artifact, like I told you before. They say a stalker named Noah may know something about it. He lives south of here. + + + I picked up a strange artifact not far from Yanov. You interested? + + + Lemme take a look... Sure is an odd item, but I don't think I'll find a buyer for it. I'd suggest you head back to Yanov and show it to the scientists. Weird shit like this always gets their juices flowing. + + + Owl says you're not keeping up your end of the bargain. + + + We had a very clear understanding: I get the detectors, put them to use in the field, and he gets a cut of the proceeds. I've paid him for two detectors already, so I'm fully abiding by these terms. That's the extent of my agreement with Owl. If you're working for him, you can take back the third detector - I'm not buying it. + + + So what should I tell Owl? + + + Suppose so. + + + I wouldn't deal with Owl if I were you. If you're looking to make a good buck, I can give you a head start in the artifact hunt. Two-three hours - enough to beat all the others. Plus, if you're interested, I've got a special order. You see, I urgently need an artifact called Compass. + + + Sultan managed to intercept the Compass. + + + That bastard's got a bug up his ass... all right, no biggie. Try and talk to Noah again. According to the latest rumors, it might prove... useful. + + + I found a Compass. Here. + + + You're a life saver, buddy! Safe to say I've got this big shot customer in my pocket now. Rumors had it that Sultan wanted to take over my business. He's up for a bitter but deserved disappointment. Here, take this - you've earned it fair and square. + + + I refuse to look for a Compass for you. + + + Too bad. Oh well. + + + Sultan says hi. By the way, all your supply channels have been shut off. + + + Now it's obvious who's behind all this... Well, I'm not leaving Skadovsk. Looks like I've got no choice but work for you and Sultan. He'll get his share of the sales, and you'll come daily to pick yours up. The money will be waiting. + + + Give me my share. + + + There you go. + + + You're early. I ain't got the cash yet. + + + Think Nimble might be dealing in stolen goods? + + + I doubt it... From what I know about him, he prefers to leave the shady stuff to others. A good businessman values his name and reputation. All in all, I've never heard anyone say anything bad about Nimble. + + + I'm looking for Snag. Do you know where I can find him? + + + Last I saw him he was walking out of a bar. If I remember the bar conversation correctly, he left for the dock cranes. You might wanna look for him there. + + + Someone is planning to stick up a group of stalkers. Our own guys, too. + + + Whoa, man. We've got bandits multiplying like rabbits, and now we're fighting amongst ourselves? + + + I got an offer to attack the camp near Shevchenko at night. + + + Assholes... It would actually be nice if you took up their offer. See what I'm getting at?... That way I can tip my boys off so they prepare a warm welcome for our guests. + + + I agree. + + + OK, go see those douche bags and I'll tell the boys. + + + Sorry, you're on your own. + + + I've got an artifact from the Oasis. You interested? + + + The Heart of the Oasis? Nah, I think I'll pass. People say different things... It could be just superstition, but I'd rather keep my distance from it. I think you'd do well to hand it off to the scientists. Let them study it and give us a better understanding of how it affects people. + + + You new here? That's all right, you'll settle in soon enough... You know, the Zone is a tough teacher. I'm Beard, the local bartender. Got any questions, you come to me, y' hear? + + + Go ahead. + + + How do you feel about earning some cash searching for artifacts? + + + How's my order coming along? Remember, the faster the stalker, the more he makes... + + + You're late, someone has already delivered that artifact. But if you've completed the order, I can still pay you. Just not as much. + + + Something's just come up. The word is that some bandits are planning to buy a batch of weapons. Our boys want to follow them and spoil the transaction. We'd appreciate any help. + + + Well? + + + What are mercenaries doing at the waste processing station? + + + You ought to stay out of there. It's no concern of yours. + + + Do you enjoy working for the scientists? + + + Quite. I'm glad you came to us of all people. We're the best protection the scientists could have gotten. + + + I'm putting a squad together to go to Pripyat with. Will you join us? + + + No. Gotta keep an eye on the scientists... You might try talking to Sokolov - I seem to remember he wanted to go to Pripyat. + + + No. Gotta keep an eye on the scientists... After all, we're here to guard them. + + + Ahem... No, my place is here for now. + + + Would you like to work for the scientists? + + + That depends... What kind of work? + + + Guarding their bunker. + + + Sure, and thanks for the offer. + + + Taking measurements in anomalies. + + + That kind of work ain't for us. Better ask the stalkers. + + + Listen, stalker. My empty stomach is already killing me and your nagging only makes it worse... + + + I could bring you some food. + + + Hah! 'Kay, you do that. Canned meat, sausage and bread... Six of each. Make sure to bring enough to go around, 'cause we're hungry as shit. + + + I heard there might be tools around here. + + + Who the hell knows? But I wish you'd stop running around so much. We've got too much work to do as it is - can't even send anyone to get food. + + + Who the hell knows? But feel free to dig through this junk. You just might find what you need. + + + Here's the food. + + + Wow, I had lost all hope... Thanks. This'll make a nice lunch for the guys. So what did you want? Dig through the junk? Aight, go ahead. You just might find what you need. Just quit wavin' that shooter around! + + + Wow, I had lost all hope... Thanks. This'll make a nice lunch for the guys. Listen, if you wanted to check out the area... Go ahead. Just quit wavin' that shooter around! + + + You're not welcome here. This is our camp, and you've got no business prowling around it. My boys are too starved and high-strung as it is... + + + Beat it, 'cause my guys are so starved their fingers are getting real jittery on those triggers... + + + Oh, stalker... Is it something important? If not, I gotta get back to my work. + + + I'm ready to go hunting. + + + Okay. Let's go. + + + Let's go. + + + It ain't time yet. Come back at three A.M. + + + I see. + + + So are we... Except for the emission - the chimera can't be asleep now. I guess we'll have to try our luck another night... + + + Gonta is dead. How did that happen... Are you heading to Yanov by any chance? Trapper, Gonta's friend, is there. Could you tell him the chimera's dead?... I'll probably be heading home now. + + + Take care. + + + Get outta here. Gonta died no small thanks to you... What are we gonna do now?... + + + Take care. + + + Tell me about yourself. + + + I'm Gonta, leader of the hunting crew. We destroy mutants for cash. We can also capture them alive - for scientific experiments or if anyone needs an exotic pet... As Trapper used to say, "To each animal its own bullet..." + + + Tell me about hunting mutants. + + + Well, I'm not the most seasoned of hunters, but I can tell you a good bit about animals than run in packs. Flesh, boars, blind dogs, pseudodogs, snorks, hamsters... I even know a thing or two about bloodsuckers. + + + Tell me about boars and flesh. + + + Okay, flesh are the most harmless of mutants. They try to stay away from stalkers, but they'll fight back if you attack 'em. Now, if there's a boar among those fleshes, that spells trouble. Three hundred kilos of rage is nothing to toy with. Try not to stand in its path as it charges at you... Use its momentum against it. A heavy bulk like that won't be able to turn on the dime, will it? Dodge to the side, then plug it full of shot. + + + Tell me about blind dogs and pseudodogs. + + + Lone canines aren't that dangerous, but packs of them are a real pain in the ass. They only attack if they're hungry... the bad thing is, they're almost always hungry. If you're up against a whole pack, try to pick them off from a high spot, else they'll just run you over. Especially if there are mature pseudodogs among 'em. They ain't much tougher than blind ones, but much more cunning and dangerous... If one suddenly turns into a whole pack, then remember: you’re being attacked by phantoms. The real pseudodog will hang back and only try to bite you now and again... Try to identify it. As soon as the real dog is dead, the phantoms will simply disappear. + + + Tell me about snorks. + + + Remnants of humans... A lone snork isn't much of a problem for an experienced hunter. You wait for him to jump on you and pump him full of shot in the air. Now, when there's a few of 'em... You've gotta just shoot at them as fast as you can while dodging their jumps. They know this and usually try to attack together. + + + Tell me about hamsters. + + + A hunter's nightmare... The worst thing you can do is underestimate them because of their small size. They're incredibly fast, agile and always run in packs. When you feel dozens of small fangs tearing into you - that's when you stop underestimatin' and start shootin'... And that's the scariest part: they're extremely hard to hit. That's why I always tell stalkers to carry a loaded shotgun. + + + Tell me about bloodsuckers. + + + They're expert hunters themselves, with excellent disguise. When they're camouflaged you can barely see them. If you're hunting a bloodsucker, try to startle it. You can see it better when it's on the move... Remember, a bloodsucker will try to sneak up behind you and weave its feelers around your neck. That's some creepy shit, man... If you are unlucky enough to run into a few bloodsuckers, always watch your back. + + + OK, forget about it. + + + If I see Magpie, I'll let you know for sure. + + + I'll make it worth your while... I'll pluck his feathers good. + + + What has Magpie done to harm you? + + + OK, he comes up to me once and says he can't get his loot out 'cause of a controller. My crew was one man short right then. Our pathfinder Danila went off to track bloodsuckers to their lair. So, we decided to help Magpie get his loot and took him hunting with us. All he had to do was keep a lookout for the chimera near the lair... + + + And what happened next? + + + What happened next was - the bastard ran away, taking his loot and pocketing ours, too. It was a hell of a surprise when the chimera finally showed up. Garmata, for one, had no time to react. I mean, who would?... Instead of hunting our game, I ended up defending my crew. In the end I wounded the chimera, but it managed to rip Crab a good one and made off. We lost a full week of preparation. + + + Hunting's in your blood, man! Here's a trophy personally from me... As Trapper used to say, "Skill is your main weapon..." By the way, are you heading to Yanov? It would be nice to tell Trapper the chimera's dead. I'll stay here on Skadovsk for now, wait for Crab to get better. Are you going with us? + + + Yes. Let's go. + + + No. I'll take a few more strolls around the place. + + + We did it. This small trophy is personally from me... It could've been smoother, but that's all right. As Trapper used to say, "With experience, who needs traps?..." By the way, are you heading to Yanov? It would be nice to tell Trapper the chimera's dead. I'll stay here on Skadovsk for now, wait for Crab to get better. You coming with us? + + + Garmata's dead... That chimera cost us dearly. You're not heading to Yanov, are you? We should let Trapper know the chimera's dead. I'll stay here on Skadovsk for now, wait for Crab to get better. You going? + + + I found Danila. He's dead. Killed by the late Tremor. + + + Oh, man! Why do the best of us always go first?... And that son of a bitch Tremor! Killing Danila... He was damn good people! + + + Think Nimble might be dealing in stolen goods? + + + Stolen goods? What made you think that? I've known Nimble for a long time, been ordering weapons from him on a regular basis. Great stuff at good prices. First time I've heard that. I suppose he's got new competitors who are getting desperate, spreading rumors and all... + + + I'm putting a squad together to go to Pripyat. Will you join us? + + + I've got an agreement with the scientists I have to keep. Plus, I don't really feel like going. You should speak to Sokolov. He's been nagging me, saying how much he needs to go to Pripyat but ain't got the guts to go alone. A real soldier, that one. + + + I've got an agreement with the scientists I have to keep. Plus, I don't really feel like going. Sorry, man. + + + Nah, I don't feel like it. The hunt is all here. You know better than most how many mutants are still roaming these parts - enough to last a good hunter several lifetimes. + + + Would you like to work for the scientists? + + + What's the job? + + + Guarding their bunker. + + + No, thanks. I'm a hunter, my job is all about mutants. And mutants ain't a threat to the bunker. People, yeah, that's different. + + + Taking measurements in anomalies. + + + Why not? We can do that. I officially declare the end of hunting season! Gonna be a nice break from the routine, you know, the creeps you get every time you head out there... + + + No, not right now. It's the hunting, you see. Gotta settle the score with this chimera first. We just can't let this bloodthirsty mutant roam the Zone and snatch stalkers left and right. + + + What I want right now is to get a nice tight grip on Magpie's throat. Then I'll be perfectly calm and ready to discuss work with you. + + + Later. We've got enough on our plate as it is. We got ourselves a chimera to nail and Magpie to track down. No time for other jobs. + + + I found Magpie. He's at Yanov station, posing as 'Flint.' + + + That son of a bitch still alive? Well, not for long... Take this - I appreciate the tip. Can't wait to meet that dickhead. So, Flint you say... + + + Yes. Thanks. + + + Dude, you seen this Magpie guy? Know him?... No? Well, if you come across that scumbag, feel free to put a bullet in his head. Or you can tell me where he can be found and I'll make it worth your while. + + + Well, hello there. + + + Wait!... We've tracked down the chimera, so we can't lose any time. Crab is still down, Danila's not back yet and pursuing the beast with the two of us is just stupid. We need a third. You're a stand-up guy though. You found Magpie. What do you say we go hunting that stinking chimera together? + + + Wait!... We've tracked down the chimera, so we can't lose any time. Crab is still down, and Danila... Well... A hunting party of two is just stupid. We need a third. You seem like a stand-up guy. What do you say we go hunting that stinking chimera together? + + + My pleasure. + + + As Trapper used to say, "When you're hunting, hunting's only half the job..." Anyway, look: after a night of hunting, the chimera comes back to its lair at around three in the morning. By then it's out like a light. That's when we gotta pounce on it... When you're ready, come here at three AM and we'll make a go at it. We'll be at the bar. + + + I'll think about it. + + + Well, if you make up your mind, drop by the bar around three AM. That's when the chimera crawls back to its lair for some beauty sleep. + + + Howdy. How's it hanging? You look rested. + + + Ah, cool. It's a small world, heh. + + + So? It's right about chimera-busting time... + + + You getting any butterflies in your stomach before the hunt? + + + Trapper asked me to help you hunt down the chimera. + + + I see, his gut feeling's still spot on. The thing is that we finally tracked the chimera down. Unfortunately, Crab is still down, and Danila's not back either... So it's just the three of us. But if Trapper chose you, you must be a fair hunter. Look, after a night of hunting, the chimera comes back to its lair at around three in the morning. By then it's out like a light. That's when we gotta pounce on it... When you're ready, come here at three AM and we'll make a go at it. We'll be at the bar. + + + You making a fool out of me? + + + That's what you are. And fools must be educated. + + + No matter. The world is small and the Zone is smaller still. We'll cross paths again. + + + Go... Get outta here. There's no fistfighting on Skadovsk. + + + Yeah, right. + + + I admit, I made a mistake. But you broke the rules. + + + That's the Zone for you. all right, cut the blah-blah now. + + + I guess he's a real dumbass if he let the artifact slip away. + + + OK, don't go crying now. A lesson learned is a lesson remembered. And just so it sticks better, go have a beer on me - it'll cheer you up. + + + I take what I'm given. + + + No thanks, I can afford my own booze. + + + You the shiznit, or what?! Shut up and stay put now! Hand over the artifact, nitwit! + + + Asshole. Keep the artifact... I hope you choke on it. + + + Screw you. + + + Brother! Listen, there's this artifact, it's got healing powers... I need it real bad. A buddy of mine is about to buy the farm from this weird sickness, our medicine can't do crap... I tried to grab that artifact but stumbled into a gas anomaly. You haven't come across it, have you? + + + If it's such a big deal, here you go. + + + Thanks, bro! I won't forget this. + + + Take care. + + + I got one. But I need it for myself. + + + Oh, come on! My buddy... He's dying for real! + + + In the Zone it's every man for himself. Take care. + + + No, I haven't seen it. Take care. + + + That artifact won't do you any good in the end. Take my word for it. + + + If you need it that bad - here, take it. + + + Thanks, bro! I won't forget this. + + + Take care. + + + We'll see. + + + I have nothing to discuss with you. + + + Why do you live on this garbage can? + + + It's an ark! Remember that... you will, if you want to live! When a Wave starts, stay close. Here you'll have a chance to survive. No mutant will ever break in here. + + + You mentioned a Wave... + + + Yeah, the wave of mutants that will crush and drive people from the Zone! And whatever poor bastards survive will be swept away by a ginormous emission!!! It will decimate every living thing in the Zone!... Except those who are prepared. + + + Where did you get this dog? + + + That's Lassie. A sweet little bitch... If not for her, I'd have been devoured in my sleep long ago. Cursed mutants... I hate them! Soon as you close your eyes, they start reaching for you with their nasty claws, fangs and feelers... + + + I need a Compass artifact. Do you know where I might find it? + + + That crap won't save you when the muties crawl out of the woodwork! Here, take this and get out of my face. + + + Thank you. + + + Do you know anything about the crashed helicopters? + + + I know something about one of them... I know that it’s on the plateau and the area around it is crawling with snorks. I go shooting at them every couple days... Why are you looking at me like that? Their whole lair can't be taken out in one go. + + + How do I get to the plateau? + + + Want to gun down some snorks, too, eh? Props...I can lead you there. + + + Let's go. + + + Another time. + + + A stalker. + + + I see. What are you after? + + + None of your business. + + + I'll lead you there. Stay here for now. There's an emission... Get it? An emission!!! + + + I was at the lair. + + + Yeah? There's no calming them down... Mutants are only gonna grow in number. And one fine day they will attack! Their wave will sweep the Zone clean of everyone who's not prepared!.. + + + Listen, umm, would you happen to have a Compass by any chance? + + + You think that'll protect you from an emission? Heh, take it and beat it! + + + Thank you. + + + Who are you? + + + A stalker. We've met before. + + + I don't recall... Anyway, what do you need? + + + A stalker. Just a stalker. + + + I see. Looking for refuge in the Ark? Feel yourself at home. + + + None of your business. + + + Ah, it's you. What do you want? + + + Would you happen to have an extra Compass to dish out? + + + Tell me about anomalies. + + + As you approach an anomaly, keep in mind that it's going to be either very hot, or the air will be full of toxic gases, or it will be a radiation hot-spot. There can also be psy-disruptions, but I won't go into those right now. It depends on the nature of the anomaly - be it heat, gas or electricity... or gravity, but I hope you won't have to deal with those. There are also moving anomalies, but that's a different kettle of fish altogether. + + + Tell me about heat anomalies. + + + If you see a sort of glimmering, like air steaming over pavement on a hot summer day - that's a heat anomaly. When something gets in it, that spot bursts into an extremely hot flame. At first they thought those were jets of natural gas, but that theory has since fallen into obscurity. + + + Tell me about gas anomalies. + + + This type of anomaly is dubbed such for its strange, never-ending chemical processes. They produce acid that eats your skin in a matter of seconds, as well as toxic gases that eat your lungs just as fast... Thankfully, gas anomalies are easy to spot out in the open. When you walk into one in a dark tunnel - now that's bad. + + + Tell me about electrical anomalies. + + + A very interesting type of anomaly which accumulates a substantial amount of static electricity. Stalkers usually take advantage of the fact that an electrical anomaly can be discharged with any metallic item. They throw a bolt in and dash right through before it charges up again. I prefer to go around - the recharge phase is just too quick. + + + Tell me about gravitational anomalies. + + + They are typically stationary. When you look at a particular spot and notice that objects are distorted behind it - you've got one. And you better keep your distance. All three known varieties react instantly, the moment something touches them. Springboard hurls everything from under it - often at a great distance. Vortex does the opposite: it sucks an object in, crushes it with terrible pressure, only to send the bits flying seconds after. Whirligig lifts its victim in the air, spins and tears him to shreds... An unpleasant end, whichever way you go. + + + Tell me about moving anomalies. + + + Personally I've only come across a Comet and a Tesla. The former is a fireball about three feet in diameter. But I assure you, you'll feel the heat from a much greater distance... The latter is, for lack of a better description, a ball of lightning. It's definitely a ball and it's definitely electrical in nature. Both anomalies always keep moving, but usually in closed-loop paths. A careful stalker should be able to easily go around them... Just don't lose your focus. + + + OK, forget about it. + + + Tell me about yourself. + + + My name is Pilot for a reason. I only use safe routes. I don't have what it takes to collect artifacts or fight bandits, so... Everyone should use their talents and let others benefit from them. Every talent has its price, of course. + + + Tell me about emissions. + + + I have some maps of the area between Zaton and Jupiter. Want to have a look? + + + Let me see... Good, lots of detail. In our business details make the difference between life and death. all right! These maps indicate there's a safe route straight through between Skadovsk and Yanov. I'll copy the data to my PDA, if you don't mind. Now I can offer you a nice discount. + + + Perhaps you need a guide? To show you the way around all the anomalies, keep you safe from emissions? Pilot at your service. + + + Do you need the help of a guide? + + + Nice to see you. What can old Pilot do for you? + + + Hitting the road again? + + + Good day to you. Can't stay in one place for long, huh? I'm at your service. + + + Hello. If you need a guide, I'm your man. As soon as the emission is over. Meanwhile we can talk about anomalies to kill time... + + + I'm afraid I'm not much use as a guide right now... The emission is in full swing. + + + How much to get to Yanov station? + + + Unfortunately, it's a long ways from here, so the price is 3,000. + + + That's fine, let's go. + + + I don't have that much on me. + + + I'm not leaving yet. + + + With your maps - only 1,000. + + + That's fine, let's go. + + + I don't have that much on me. + + + I'm not leaving yet. + + + It's a long ways from here, so the price is 3,000. I will be ready to leave as soon as the emission subsides. + + + With your maps - only 1,000. Only we have to wait for the emission to die down. + + + Can you lead me to Pripyat? + + + No. Everyone has his specialty. See Garry over there? I think he'll be able to help you. + + + Not personally, no. But for 6,000 I can take you to Yanov station and make the arrangements with Garry. From there he will lead you to Pripyat. What do you say? + + + OK, let's go. + + + I don't have that much on me. + + + I'm not leaving yet. + + + Not personally, no. But for only 4,000 I can take you to Yanov station and make the arrangements with Garry. From there he will lead you to Pripyat. What do you say? + + + OK, let's go. + + + I don't have that much on me. + + + I'm not leaving yet. + + + No. Everyone has his specialty. See Garry over there? I think he'll be able to help you, after the emission is over. + + + Not personally, no. But for 6,000 I could take you to Yanov station and make the arrangements with Garry. From there he will lead you to Pripyat. As soon as the emission is over, of course. + + + Not personally, no. But for only 4,000 I could take you to Yanov station and make the arrangements with Garry. From there he will lead you to Pripyat. As soon as the emission is over, of course. + + + Can you lead me to Pripyat? + + + Pripyat? No. There's enough demand for my current route that I don't have to look for another. But I have a good buddy who used to work at the Jupiter plant. He told me there are tunnels underneath the plant that lead to Pripyat. He didn't have any details, but he said he'd start looking in the plant's administrative section. + + + No. If you want to get there, try finding those tunnels underneath the Jupiter plant. + + + How much to get to Skadovsk? + + + Since we'll have to make a detour, the price is 3,000. + + + That's fine, let's go. + + + I'm a little short right now. + + + I'm not leaving yet. + + + With the new route it's only 1,000. + + + That's fine, let's go. + + + I'm a little short right now. + + + I'm not leaving yet. + + + Since we'll have to make a detour, the price is 3,000. I will be ready to leave as soon as the emission subsides. + + + With the new route it's only 1,000. Only we have to wait for the emission to die down. + + + Where can you lead me? + + + To Yanov station, not far from the Jupiter plant. And then back to Skadovsk from there. I'd rather know one route well than claim to know many. + + + I spoiled the bandits' weapons transaction. + + + Thanks for helping out. I think back to the 90s and its thugs with RPGs and just shudder... Here, take this. Cash is always good to have. + + + I'm looking for Grouse. We were supposed to meet here. + + + Grouse left a message for you. He said he was heading to the dock cranes. And that he learned something new about the missing stalkers. + + + Grouse is dead. Tremor killed him, like the other stalkers... Tremor is dead, too. + + + Tremor? Damn. The snake was right under our nose. That could have been any one of us... I mean if Grouse, of all people... Thank you, friend. You've saved our whole camp. Here. + + + Tremor?!... I'm sorry, pal, I just don't buy that. If there were some kind of evidence, then maybe... Poor Grouse. + + + Here's Tremor's PDA. It contains evidence that confirms he was involved. + + + Damn. The snake was right under our nose. That could have been any one of us... I mean if Grouse, of all people... Thank you, friend. You've saved our whole camp. Here. + + + I'll help you deal with the bandits. + + + Great. Go to the ranger station - that’s where our boys are. They'll give you all the details. + + + What do you know about Nimble? Could he be dealing in stolen arms? + + + I don't really know him. I doubt he's into that. If you're dealing in hot items, you don't take orders for them ahead of time... + + + I knew I'd be exposed eventually. It was just a matter of time... + + + Tremor?!... Would you mind explaining what's going on? + + + I'm not hiding anything anymore. It's no use. You know now that it was me who killed Grouse... Same with Danila and the other missing stalkers. + + + OK, I got it. Enough talking. + + + You didn't get anything, nobody will ever get me... + + + Why did you do it? + + + Hemoglobin addiction... I wouldn't wish it on anyone... There's no getting rid of it. Sometimes you feel like you can go a whole month without drinking a drop of blood, and it did happen to me a few times, but then... You explode inside and start making up for lost blood like crazy... + + + How did you manage to keep it secret? + + + When I worked at the surgeon clinic, it was easy to cover up. There was always a surplus of donor blood to be had. But the Zone was different... I thought that this harsh environment would push my condition to the sidelines. But I was wrong. I experienced the most terrible explosion of all and just couldn't think of anything else. I decided to make the killings look like bloodsucker attacks. I usually picked targets that were already wounded. + + + And what about Danila and Grouse? + + + Danila came to me for help after the bloodsucker raid. He was wounded. When he and Grouse decided to go hunt bloodsuckers together, I realized I won't be able to hold out much longer. I still tried to protect my secret, but my resolve was weakening... Then Grouse came along. He made sense of the situation and tried to kill me. Which brings us here. I'm sorry for all these people, but my pity won't bring them back. + + + OK, I got it. Enough talking. + + + You didn't get anything, nobody will ever get me... + + + I'm listening. + + + Hello, do you need help? + + + Hello. + + + I need medical assistance. + + + Let me have a look... + + + Well, that's about it. You can go. + + + Howdy! Looking for artifacts, too? + + + Hey! Artifact-picking we go, heh? Well, there should be plenty for everyone. + + + Oh, hey! Trying to score some artifacts too, eh? + + + Howdy. You taking that artifact to Beard? + + + Maybe yes, maybe no. What's it to you? + + + I need it. + + + So do I... But I'll trade you for a new shooter. A high end one. + + + I have a good weapon. Let's trade... + + + Fine. + + + No, this won't work. + + + Then get the hell outta my face. + + + Okay. + + + Well, none really. + + + What do you know about Nimble? + + + Oh, nothing much... We don't do business together. While he's out combing the Zone for a super-dooper shooter, I manage to sell a hundred regular ones. He's pretty big-headed, too, refuses to deal with the local thugs. So he's a lousy trader, which is a good thing for me, really. + + + Beard told me you had a different arrangement. + + + "Different" my ass! That bearded hog is getting' too big for his britches! He oughta be reminded who's boss around here... Listen, there's this one influential type over at Zaton, goes by the name of Sultan. Pay him a visit - he'll tell you what to do. + + + I'll go talk to Sultan. + + + No sultans. Give me my share right now! + + + Uhh... Fine. Here's the cash... But remember, Beard is pulling wool over your eyes. + + + I need information. + + + What do you want to know? + + + I need poison gas. I heard you were the man to ask. + + + I am. I'll tell you for 2,000. + + + Here. + + + Listen. Once there was a military motor column here transporting gas which didn't make it. No one knows what happened, but the gas tanks should still be there. All clear? Yeah, there might be some documents there, too. If you find them, bring them to me and you just might recoup your investment. + + + Too expensive for me. + + + Up to you. + + + Where can I find a stalker called Magpie? + + + I can give you a hint... for 1,000. + + + Here. + + + You won't find him here, but a little bird told me he might be around Jupiter, maybe near Yanov station. Keep in mind that whoever made a mess of things in one place doesn't keep the same name when he leaves for another place... He's probably changed his guise too, figuring people will be looking for him among stalkers. + + + I'm looking for Snag. Do you know where I can find him? + + + I'll tell you for 1,000. + + + Here. + + + Snag is a greedy fool 'cause he's got in with dangerous people. He's burned his bridges, so you should look for him around Jupiter. He's got no other place to go. You ain't the only one looking for him. + + + What do you know about the crashed helicopters? + + + Hrm... Everyone around here knows where they fell. One came down at the southern plateau, the second landed in the swamp, and the third sat right on top of the substation pylons. Which place are you asking about? + + + The southern plateau. + + + The substation. + + + The swamp. + + + That's it for helicopters. + + + Pay up now, you owe me 200. + + + Here. + + + So, this chopper landed right next to a snork den. As far as I know, the military got out of there, not all but most of them. Wiped out the mutants and climbed down. By the way, if you're heading up there, I can offer you a nice shotgun and some ammo to help deal with those beasts. Only thing is, no one except Noah, that loopy bastard, knows how to climb up to that plateau. + + + Too expensive for me. + + + Up to you. + + + I'll tell you for 200. + + + Here. + + + I'll tell you for 200. + + + Here. + + + Nothing right now. + + + Got a job for me? + + + First off, there's a small job with the scientists; second, we need to get information from the mercenary camp; and third, the trader still needs a security detail. Lots of things going on, just take your pick. + + + Tell me about the job with the scientists. + + + You've got to find three Veles detectors and bring them to the scientists' bunker near Jupiter. Once there talk to Novikov, he said he'd tinker with them... When detectors start to turn in a profit, we'll split it evenly. All clear? Then go. It's a piece of cake, really. + + + Deal. + + + Maybe next time. + + + Tell me about the mercenary camp. + + + Some kind of mercenaries appeared at the processing station and I'm dying to know what they're cooking... Sneak into their camp and dig up whatever information you can about their plans. PDAs, paper documents, bring me whatever you find. You got me? Go. It's nothing but kid stuff if you keep it quiet. + + + I agree. + + + Not right now. + + + Tell me about protecting the trader. + + + The trader needs guards for a business deal. You hardly have to do anything, just stand there and make everything look legit... OK? The trader will wait for you at the ranger station. He'll fill you in on the details... + + + Okay. + + + Wait. + + + Another time. + + + There's a small job with the scientists, that's one, and two, I need someone to get some information from the mercenary camp. Take your pick... + + + There's a small job with the scientists, that's one, and two, the trader still needs a guard. C'mon, make your call. + + + I need someone to get information from the mercenary camp, that's one, and two, the trader still needs a guard. C'mon, make your call. + + + A small job with the scientists. It's a piece of cake, really - fetch me this, bring me that... + + + The trader still needs a guard for a business transaction. Easy as pie, that one. + + + No more jobs. + + + I think you might be interested. + + + Whatcha got? + + + Noah's PDA. + + + The psycho from the barge?... I'll give you 1,000. + + + Deal. + + + No, thanks. I'll hold on to it for now. + + + Make sure it don't burn a hole in your pocket... + + + A mercenary's PDA, nickname is Hook. Found it at the waste processing station. + + + I'll give you 1,000. + + + Deal. + + + Very interesting... Great job, stalker. + + + A mercenary's PDA, nickname is Ridge. Found it at the waste processing station. + + + I'll give you 1,000. + + + Deal. + + + PDA with information on the Monolith's caches. + + + I'll give you 5,000. + + + Deal. + + + PDA of a man connected with the mercenaries' client. + + + I'll give you 4,000. + + + Deal. + + + PDA of one of Duty's founders, General Tachenko. + + + I'll pay you well for that one - 2,500. + + + Deal. + + + A mercenary's PDA. + + + I'll give you 1,000. + + + Deal. + + + Morgan's PDA. + + + Information about the Duty trader who sells weapons left and right. Gotta be useful for something. I'll pay you 4,000. + + + Deal. + + + A note from Strelok's group stash. Addressed to Ghost. + + + I'll give you 500. + + + Deal. + + + A note from Strelok's group stash. Addressed to Strelok. + + + I'll give you 500. + + + Deal. + + + A note from Strelok's group stash. Addressed to Fang. + + + I'll give you 500. + + + Deal. + + + Documents from the Jupiter plant, a folder containing the general evacuation order. + + + I'll give you 750. + + + Deal. + + + Documents from the Jupiter plant, a notebook entry. + + + I'll give you 750. + + + Deal. + + + Documents from the Jupiter plant, a delivery schedule. + + + I'll give you 750. + + + Deal. + + + Documents from the Jupiter plant, a letter with the decree to transport item 62 only through the underpass. + + + I'll give you 750. + + + Deal. + + + Nah. With Sultan involved, I'd rather stay out of it. + + + Let's see... Yeah, this is good stuff. Buy it off you? + + + Sure, I don't have any use for them. + + + Notebook from the mercenary camp at the waste processing station. + + + I'm offering you 2,000. + + + Deal. + + + Heh... Well, take it to Beard or the scientists. I'm not keen on dubious merchandise... don't need me some acute radiation sickness at night. + + + And that's where it should stay. I don't like to take unnecessary risks. Who knows, maybe that thing will form an anomaly field around itself by midnight... Why don't you take it to the scientists, let them study it or something. + + + And I've got a nuclear warhead in my kitchen cabinet! You might get a laugh out of scientists, though - they dig that sort of stuff. + + + Snag's PDA. + + + Let's have a look. Hrm... Nothing special. You've probably already cleared out that stash, so my price is 200. + + + I agree. + + + PDA of one of the Sultan's crew. + + + Interesting... Could be of use. I'll give you 1000. + + + I agree. + + + Memory module from an unmanned aerial vehicle. + + + A very interesting find... But it won't make you rich. Who knows if I'm the first one to read the information on it? My price is 500. + + + Done. + + + Nothing right now. + + + About those detectors... + + + Yeah? + + + Where can I find them? + + + I don't know, just find them. + + + I've got the detectors. + + + Then why are you still here? Take them to Novikov at the scientists' bunker near Jupiter. + + + I took the detectors to Novikov. + + + Great. Now we wait for him to tinker with them. Novikov promised he'd send them over with a trusted man once he's done. + + + We've got problems. Our little business here is up in the air now. Novikov did a heck of a job on those detectors - extended the working range, improved sensitivity and some other stuff... These detectors let you run circles around all other artifact hunters. I made a deal with Beard so that stalkers he hires use these new detectors... + + + And? + + + Our agreement was to split the loot evenly, but stalkers refuse to bring our half. You need to see Beard and convince him to hold up his end of the deal... C'mon, you want your share too, don't you? + + + I need your new detector. + + + Hah. And I need a heavy-hitting shooter. If you got a good, expensive weapon, I'll trade you. + + + That's a deal. + + + No, thanks. + + + I need your new detector. + + + Is that a threat? I need it too, obviously. + + + You're not following, are you? Yours is the last one. I didn't have too hard a time disposing of the other owners... + + + You did what?... You rubbed them out? Take it and leave me alone. + + + Hey, how about you suck it? + + + I'll take a rain check on that. Now I'm asking you nicely to hand over the detector. + + + And I'm asking you nicely to suck it. + + + Stalker, you wanna get paid? + + + What's the job? + + + You see, I hid some loot in this old Zaporozhets car. But then an earthquake hit and the car fell underground. I checked it out and the car seems to be within reach... Only, umm, there's mutants there, you know, snorks. Believe it or not, I ain't even scared of controllers, but those damn snorks are just too creepy and disgusting for me. If you get a hold of the container with a security lock, we'll split the loot fair and square. + + + Deal. + + + Thank you, stalker. + + + Is this your container? + + + Yeah, it is! Wow, you rock! + + + Another time. + + + Too bad. + + + No, I'm too busy right now. + + + OK, suit yourself. + + + So? Any news? + + + What do you want? Can't you see I'm busy? + + + Hey, that's my shooter! Where did you get it from, you thief? Mine was stolen just the other day. + + + What are you talking about? I bought it recently. + + + I don't know where or how you got your hands on it, but it's the one they stole from me. So please, you don't wanna get me upset, just give me the gun and we'll be on our merry ways. + + + OK, here you go. I don't want any trouble. + + + Hand it over. + + + This shooter is mine. + + + It is, is it?!... I'm warning you, I've got connections! Everyone knows me here! You think you'll last long in the Zone with a bad rep, stalker? What do you say to that, huh? Don't be expecting help from anyone around here, 'cause you'll be shit outta luck! + + + Screw off! + + + Are you sure it's your weapon? + + + Of course I'm sure. It's not exactly common in the Zone, now is it? And this one's mine for sure. + + + You've made a mistake. Back off now and we'll keep it peaceful. + + + What? I've made a mistake?! Think twice before you speak, asshole! If you stir shit up, everyone's gonna be on my side. Gimme back that shooter and we'll be on our merry ways. I'll even be nice and not tell anyone about the gun. + + + What?! Have you given any thought to the fact that I can put a hole in your head with this very shooter right friggin' now? + + + OK, chill, dude. This exchange got a little heated, but I'm cool now. Don't have a cow either. I must have made an honest mistake. + + + About that container... + + + Did you find it? + + + I'm still working on it. + + + I've decided not to look for it any longer. + + + Too bad. + + + OK, let me see... + + + Of course. Just a sec... + + + I've decided to keep the container. + + + Oh you little... Don't think for a second that I'll forget this! + + + Here's the container. + + + Ok, let's divvy up the loot now, right? + + + Let's. + + + Let's see what we got here... My old but lethal Fora. A long time ago my uncle modified it with his own hands. Almost like a family heirloom, yeah... so, let me hold on to that. + + + No, give it to me! + + + Uhh, well, all right... + + + See what's next. + + + No, you've got enough items already. + + + See what's next. + + + all right, take it. What else is there? + + + Okay... Let's see. An excellent medical kit. Good enough to go up against a bear or even a controller. That's mine... + + + Actually, I could use a medical kit! + + + Hrm... okay. + + + See what's next. + + + No, you've got enough items already. + + + See what's next. + + + You can keep that. What else is there? + + + Okay... Wow. I doubt you've ever held this kinda shooter in your hands... An enhanced AKM-74/2U. I gave this Duty fella a ton of first aid kits to get my hands on this beauty. That was when Freedom pounded a Duty squad so bad that they actually ran out of meds. Three times this baby saved my life since then... This is definitely for me. + + + Maybe I can have it? + + + Hrm... It really breaks my heart. But a deal's a deal. Take it. + + + See what's next. + + + No, you've got enough items already. + + + See what's next. + + + Okay, keep it for yourself. What's next? + + + Oh-h-h... A beautiful and valuable piece. This artifact is worth a mountain of gold! I got it myself from an anomaly, mind you. I shat my pants more than once as I did, too. It's my trophy, earned with blood and tears. + + + I think I need it more than you do. + + + You're killing me, man... Take it - you won't be forgetting my generosity any time soon. + + + See what's next. + + + You've got enough items already. + + + See what's next. + + + Keep it. What's next? + + + And last but not least... An excellent helmet, handmade. A while ago we got this new stalker at the Cordon, a real handyman. Made a bunch of real cool stuff before he croaked. This helmet is one of them. You won't find one like it anywhere!... I'm keeping it. + + + Look here, I'm the one who put my life on the line against that horde of snorks... I deserve that helmet. + + + Well... okay, fine. Enjoy it. + + + See what's next. + + + You've got enough items already. I've got to keep something for myself, don't I! + + + See what's next. + + + all right, keep it. + + + That's it man, that's all of my loot. + + + OK then, see you. + + + That's it. But I can't let you go empty-handed... Here, take my pistol! + + + Good luck. + + + What do you do? + + + I serve and protect. Used to be a police detective and here I'm sort of the local sheriff. I came here with Beard, then he decided to set up camp. Why go any deeper if no one knows the road to Pripyat anyway? There's plenty of artifacts here as it is. So we stayed. + + + Who could I hire to protect the scientists? + + + We've got a few good fellows. Spartacus' group, for one. Stand-up guys, real professionals, lots with a law enforcement background. If they're available, you won't fine a better protection detail anywhere. + + + I might've had some names for you a while back, but not anymore. None of the local stalkers will sign up for that. + + + Who can I hire to take measurements for the scientists? + + + There's a group of stalkers, Gonta's the man in charge. Talk to him, he might sign up... I'm sure they'll welcome a break from shooting mutants. + + + If Gonta was here with his group, I'd refer you to him... But since he's not... I don't have anyone suitable in mind. + + + Have you bought weapons from Nimble? Would you know if he deals in stolen goods? + + + Think he's sneaky enough to pull off shit like that behind my back?... Nope. No friggin' way. I've got a gut feeling Nimble is no dealer. + + + I'm looking for Snag. Do you know where I can find him? + + + Snag - sure, I know him. A real numbnut, that one. Some of the boys saw him over at the dock cranes the other day. Must be his new hangout spot. Check it out. + + + Hello stalker. How would you like to earn some cash and help out our camp at the same time? + + + Hello stalker. You still here? You keep this pace up and bloodsuckers will soon wipe us all out. + + + Talk after. I've got something else to check out. + + + What kind of job can you offer me? + + + Here's the deal. Several stalkers have gone missing. No one has heard anything about them, but just the other day they found one body. No signs of violence, but it was bled completely dry. Tremor searched the body, he could give you more details... Anyway, it's got to be bloodsuckers! I talked to Danila the hunter and he went off to search for their lair. Haven't seen hide nor hair of him since. + + + What do I need to do? + + + You have to find the lair and hopefully track down Danila. The job ain't pretty, but I'll make it worth your while. OK? + + + I agree. + + + OK. OK, I've earmarked two places to check first. I uploaded one of the coordinates to your PDA. I'm gonna go run some errands and then check out the other place. I'll let you know what I find. + + + Deal. + + + I think I'll pass. + + + Come back if you change your mind. + + + Not interested. + + + The same one... As long as there's a bloodsucker lair about somewhere, we're all out on a limb. And we still haven't heard from Danila the hunter. Would you help us deal with this? + + + Grouse told me you searched the body of one of the missing stalkers. Do you think it was a bloodsucker that killed the man? + + + Yeah, I did... Just like all the other dead bodies... No other creature is capable of doing that, that is, sucking all the blood out of a man's body, down to the last drop. All the evidence points to a bloodsucker attack... What other conclusion can I make? + + + Tell me about yourself. + + + I'm a medic. A trained brain surgeon. What else would you like to know? I can excise a hypothalamus with laser precision, but I haven't had any such orders in the Zone so far. Here I'm just a regular physician, one of many, who knows his trade well. + + + I'm listening. + + + Can you decrypt a black box? + + + Well... That's not really my specialty. All those charts and algorithms... Not my cup of tea. Bring me something that's based on simple physics and I'll figure it out in a snap... Fiddle here, twiddle there and everything's working hunky dory. + + + Think Nimble might be dealing in stolen goods? + + + Whoa, whoa... Nimble and stolen goods? I'll never buy that. When I was building my workshop it was none other than Nimble who helped me. Didn't charge me a penny, either... No matter what anyone says, I know that Nimble is a good man. + + + Got any work for me? + + + Oh, sure. I need a few tools but I have no time to go look for them. Hardware is like that, takes up all your time. If you bring me a few useful gadgets, I'll show you what upgrading is all about. You'll also make a buck or two. + + + Okay, I'll keep an eye out. + + + No. Maybe later. + + + Oh, sure. I need tools, remember? A bit of help for me and a bit of coin for you. + + + Can you unblock a memory module? + + + Nah, man, can't help you there. All this modern electronics, computers... Not my field. Better find someone younger... they soak that stuff up with their mother's milk, man. + + + Can you break into a steel container? + + + That's a cinch. Top service for only 500. + + + Here. + + + Okay, lemme fix that... Lift this, push here... And bam! All ready! Ain't a thing been invented that I couldn't open with a crowbar and a hammer. + + + I don't have that much. + + + Come back when you do. I ain't goin' nowhere! + + + I'll think about it. + + + Got some booze. Want a shot? + + + Nah, I'm off the bottle, man. When I saw item 62, I thought "That's it, I'm having the jumps"... See, booze just screws you up. Not a part of a healthy diet. And if I'm gone, who's gonna hammer out ammo for your Gauss rifle? + + + Here's another bottle for you. + + + I've got a third one, if you need more. + + + I brought you tools. + + + Nice. Which ones? + + + The ones for basic work. + + + Cool! Now I just need tools for fine work and calibration. + + + The ones for fine work. + + + Cool! Now I just need tools for basic work and calibration. + + + The ones for calibration. + + + Cool! Now I just need tools for basic work and calibration. + + + None, for now. + + + Great. Now just some calibration tools and I'm good. + + + Great. Now just some tools for fine work and I'm good. + + + Great. Now just some tools for basic work and I'm good. + + + Awesome! Way to go! What's your secret, man? Now I've got the full range of mods, hah! Watch me make a machine gun out of lighters! + + + I brought the schematics and documentation for item 62. + + + You did it! Cool! I knew the bastards wouldn't have enough time to destroy everything. Let me have a look... Mm-hmm... So that's what those sons of bitches are up to. Fine! I need a couple hours to sort this out for good. Leave the Gauss rifle with me, I'll try to patch it up. Wait here, I need a minute to get this baby singing again! + + + I need batteries for my Gauss rifle. + + + You get my favorite customer price: 2,000. + + + Here you go. + + + I'll think about it. + + + I'm a tad short at the moment. + + + You done with the Gauss rifle? + + + Piece of cake. The power supply system is clear as day. If it starts acting up, just bring it back here for a tune-up. + + + Still working on it. I just love to put my hands to work... + + + I've got an unknown weapon model. + + + What do you mean, unknown? Give it here, lemme take a look... + + + Have a look... Ever seen anything like this before? + + + Ah-h, it's you... We had a hell of a time, heh. I had a dream where you brought me something from the past... Good drinking I haven't been thing... + + + It wasn't this here weapon in your dream, was it? + + + Whoa, man... I guess it wasn't a dream, after all. This gun is a Gauss rifle, or item 62 as it used to be called officially. Whew... Back then I used to do contract work for the Jupiter plant. I designed weapons, if memory serves, "based on the principle of projectile acceleration via an electromagnetic field." See those reels? I made those... Too bad they shut down the project in 2004. We never did find a compact enough energy source. + + + This rifle has been fired before. What could have changed? + + + Who the hell knows? To be honest, I wouldn't dare stick a screwdriver in that battery. There's also some mechanical damage in the power supply system. The schematics would be real handy right about now. The testing workshop I worked in handled all the production documentation. Maybe the schematics and support documentation for this Gauss rifle are still there... Funnily enough, I've still got a keycard to the workshop... + + + Would you give me the keycard? + + + Yeah, well... I guess so. Just try not to lose it. If you bring me those documents, I just might fix that gun. + + + Here's your access card back, safe and sound. + + + Thanks. It reminds me of the good old days. + + + So?... You, err... feel free to bring me all your broken shooters, suits full of holes and whatnot... I ain't half as good when I'm sober, but I'll give it a shot... + + + Where have you been? I was getting worried, looked everywhere for you. Where is that stalker, I said... Cheers, eh? + + + Howdy. Nice of you to come by. Make yourself at home... Did you bring me something to fix or something to drink? + + + Whew! Cool! My hands aren't shaking, but my head says "I want more"... Pour me another one, young man! + + + Why so slow? Open the next bottle, c'mon! Let's drink to our common cause. Yeah. Vodka brings out the mechanic genius in me, I shit you not. + + + I wish Joker was here, we'd drink to Barge together... Well, may he rest in peace. He was good man, a real die-hard. Tough like a rock. + + + I wish Barge was here, we'd drink to Joker together... Well, may he rest in peace. He was a good man, always there for you. Never went back on his word. + + + Uhh... Barge... Joker... How did it all come to this... So, one thing leads to another... + + + Mm-hmm?... What do we got here? I'll deal with the armored SMGs tomorrow... Don't worry, it ain't no thing. Got some good booze waitin'... + + + That number sixty two... I'd really like a peek at the circuit schematics. + + + A wise choice, my friend. Gotta keep your gun in mint condition. And if you got a bottle or two on you, I can make it upgrade galore in here. Want a parachute sewn to your shotgun? I can do that, hehe. + + + Would you look at that! They stuck an electrostatic artifact into the battery! Hah! I knew it was some kind of weird anomalous shit! The principle is a no-brainer - now I can hammer out these cells myself. + + + Need some nut-and-bolt work? + + + This reads like gibberish. I guess I haven't read technical documents in a while... + + + Yeah, I came to Zaton with two of my buddies, Barge and Joker... Young kids, full of piss and vinegar! Itching to get their hands on mountains of artifacts, dying to be the first, the fastest... And I looked at those burning eyes and I said to myself, that ain't gonna do them no good. Loot's nice to have, sure, but it ain't worth charging headlong into a mutant's jaws. + + + So what happened? + + + Well... We were hanging out one night, drinking, and started arguing over what to do next - should we go on or stay, and if we go, where to. Everyone's sticking to his guns, standing pat. Things got pretty heated and when the argument was over, we all went our own way, me included. I told them they ain't seen life yet... and some other unpleasant things. Man... If I only I could see them again, I would say I'm sorry for what I said then... We'd hang out together like before and remember the good ol' times... + + + I can pass your apologies on to Barge if I run into him. + + + That would be good. + + + I can pass your apologies on to your buddies if I run into them. + + + That would be good. + + + I can pass your apologies on to Joker if I run into him. + + + That would be good. + + + I found this PDA - have a look. + + + What do I need a PDA for? Whose is it? + + + Barge is dead?!... I can't believe it!... Oh, man! He was as tough as they come... Oh, Barge... Rest in peace. I hope Joker is all right at least. + + + Barge is dead?!... I can't believe it!... Oh, man! He was as tough as they come... Oh, Barge... and Joker, too... May you kids rest in peace. How did it come to this... + + + They're dead!?... I can't believe it!... Oh, man! Barge was as tough as they come... and Joker... Oh, Joker... We won't be laughing at your jokes anymore. May you kids rest in peace. How did it come to this... + + + Can you answer a couple of questions? + + + Sure. + + + How long till my order's ready? + + + It depends on how complex it is. It usually takes me a day, sometimes less. + + + Tell me about yourself. + + + Nothing much to tell. I've had it good and I've had it bad, like most people. Stepped into a few anomalies, been a hostage to bandits... I came to the Zone a young lad, a long time ago. I was a gofer at first - antirads, armor-piercing ammo, that sort of thing. Then I worked for Sidorovich... paying him back for saving my ass. As I pulled chestnuts out of the fire for him, I made some useful connections and branched out on my own as soon as I could to start delivering exclusive orders. So far I've been able to dodge everything life has thrown at me, but I've a feeling my luck is running out. At the same time, I've no desire to bust my ass for pennies anymore. + + + Thanks, I see. + + + Glad to help. + + + You sold me a stolen weapon! + + + What are you talking about? I don't deal in stolen goods. I only do direct business. If you don't believe me, talk to anyone at the base and they'll tell you I'm an honest trader who's never let anyone down. + + + I ran into a stalker who claimed this shooter was his. + + + And what's his name? + + + Snag. + + + What's it to you? + + + It matters. Someone's putting you on, stalker. + + + We'll see about that. + + + Someone's putting you on, stalker. + + + I'm here to collect my order. + + + Here's your Steppe Eagle. It turned out trickier than I thought. Some kind of pistol buff showed a lot of interest, but I barely snatched it in time. See for yourself - a hand-crafted gun, components are all adjusted with unmatched precision. Ever wonder what a perfect sniper pistol would look like? Well, this is it. You owe me 2,800 extra. + + + Okay, here you go. + + + There you go. Nice doing business with you. + + + I don't have that much on me. + + + Okay, I'll hold the gun for you a while. I hope you find the money soon. + + + I don't want to buy this. + + + If you refuse to collect the order, I won't be able to rely on you next time around. I'll have to include the risk estimate in the price and ask for a larger advance. + + + Still, I will not be collecting this order. + + + All right, suit yourself. + + + I'll think about it. + + + Sure, that's up to you. I'll hold the gun for you a while. + + + Here's your ultrahigh-accuracy Steppe Eagle. You owe me 2,800 extra. + + + Behold the Alpine - a real beauty. You can rest assured this pistol is one of a kind in the whole Zone. A unique model, very limited issue commissioned for a single special unit. It wasn't easy to obtain, I even had to involve one of my overseas associates. An expanded magazine, extra hard steel barrel, receiver made of extra strong polymers. Add the remaining 2,800 and this baby's yours. + + + Here's your Alpine pistol with an expanded magazine. Add the remaining 2,800 and this baby's yours. + + + Lookit, this is March. The pistol belonged to a mercenary called Wolfhound. A compact high-caliber shooter with short blowback and a lightened bolt. Wolfhound was one hundred percent scum, but he knew his weapons, gotta give him that. They say his favorite trick was to blow all four of his victims' limbs off and then his head - before it hit the ground. Anyway, that'll be 2,800. + + + Here's your rapid-fire March pistol. You owe me 2,800 extra. + + + Here you go - Cutter, a submachine gun. Let me say it right off, don't you mind the appearance. It's a brand new model, not in serial production yet. It's a prototype, fresh from the armory. The designers aimed to make a new-generation close-range weapon: a combination of high caliber, rapid fire and accuracy. So that'll be 8,000 extra. + + + Yes, here's Cutter, a rapid-fire submachine gun. That'll be 8,000 extra. + + + Here's a fine specimen - Carabineer. A true army shotgun. Capable of automatic fire while providing good anti-recoil thanks to a balanced, shock-free system. Add 8,000 and it's yours. + + + Here's Carabineer, an automatic shotgun. Add 8,000 and it's yours. + + + I reckon this is just what you need. Eliminator, a latest development. The whole batch was supposed to be shipped to Central Africa, but I got a 'sample' as a special favor from friends. An automatic shotgun with a large magazine and an excellent rate of fire. Yours for only 8,000. + + + Sure. Automatic shotgun Eliminator, with an extended magazine. For 8,000. + + + Sure. Behold Storm, a submachine and grenade launcher in one. This prototype is a modified version of a conventional weapon designed for special units operating in the Zone. Technical innovation at its best from our Slavic brothers... Add 16,000 and it's yours. + + + Sure. Here's Storm, a submachine and grenade launcher with an extended magazine, for an extra 16,000. + + + Here it is - GP37, a new-generation assault rifle. Accurate, reliable, and convenient with a built-in optical scope. It was previously owned by a UN observer. Their group was sent to the Zone to investigate. However, the situation turned for the worse... 16,000 and the rifle is yours. + + + Here it is - GP37, a new-generation assault rifle. The price is 16,000. + + + Just a sec. Here's a modular FT-200M rifle, the brainchild of Belgian gunmakers. Accurate, all-purpose, handy for both righties and lefties, comes with an optical scope and a grenade launcher. I got it from some unlucky UN observers... That'll be 16,000 extra. + + + Here's a modular FT-200M rifle. That'll be 16,000 extra. + + + Here's Tide. Based on a silent sniper rifle, it was specifically designed for military units to fight zombies. Tide yields rate of fire in favor of stopping power, allowing the sniper to pick off zombies one by one without disclosing his location. However, it then became clear that stalkers alone will be enough to stop zombies at the Barrier, so the rifle never reached mass production. This baby's yours for an extra 16,000. + + + Here's Tide, a silent sniper rifle with increased stopping power. Add an extra 16,000 and enjoy. + + + Here. This is an SVU2-A, a short sniper rifle with an increased rate of fire. I bought it off Mac, the legendary Freedom guard. He swore there are no others like it in the whole Zone. It's an exclusive item, at least in these parts. It'll be 16,000 extra. + + + Yeah. SVU2-A, a short sniper rifle with an increased rate of fire. It'll be 16,000 extra. + + + Sure, just look at Lynx here. Hand-crafted by a local expert. He's deceased now, so there won't be any copies. It looks just like any other rifle, but take it out for some target practice and you'll feel all the difference. It's got a perfect combination of accuracy and stopping power. Add the remaining 16,000 and this baby's yours. + + + Yeah, Lynx - a sniper rifle with increased accuracy and power. Add 16,000 and it's yours. + + + Look here. I managed to get everything off my list - a CS-3a with a helmet. The helmet is nothing special on its own, but it allows for installing a mobile tactical complex, which includes a high-quality night vision system and an active infrared sensor. Now, the CS-3a armor is a real beauty. Excellent protection from bullets and anomalies is a rare feature indeed in a suit as light and mobile as this one. The whole thing will cost you 32,000. + + + Yeah. A set of CS-3a armor with a tactical helmet. 32,000 in all. + + + Specially for you, a SEVA suit. Everything just like you ordered - a closed-cycle respiratory module, thermal resistant, protective electrical circuit, and outer-surface anticorrosion materials. Plus several built-in artifact containers as a bonus. A must-have suit for any stalker. Toss in 24,000 like we agreed and it's yours. + + + Here. A SEVA suit. The price is 24,000, like we agreed. + + + There it is, a combat exoskeleton as large as life. The best protection you can get in the Zone from bullets, claws or grenade fragments, with the exception of armored vehicles. But it also takes after armored vehicles in that it relieves your weight burden - within reason, of course. 48,000 and it's yours, warts and all... err... by that I mean batteries and servomotors. + + + There it is, a combat exoskeleton as large as life. 48,000 and it's yours. + + + I want to place an order. + + + No problem. What do you need? + + + A pistol. + + + Of course. It'll be 3,500, of which I will require an advance payment of 700. + + + Okay, here you go. + + + I'll get in touch with you as soon as the order is ready. + + + I don't have the money on me. + + + Well, please come back when you've got the cash. + + + You know, I've changed my mind. + + + Fine. If you finally decide to make an order, I'm always here. + + + You're not a very reliable customer, so the pistol will cost you 4,200. And I will require an advance payment of 1,400. + + + I'm afraid the best pistols have already sold out. If you want the regular stuff, Owl's the man to see. + + + A close-range weapon. + + + Sure thing. The price is 10,000, and I'll need 2,000 of that in advance. + + + You refused to pick up your last order... So this one will cost you 12,000, and I'll need 4,000 of that in advance. + + + Hrm... You know, I probably can't help you there. The demand is too high. + + + An assault weapon. + + + Something high-caliber and with rapid fire capability, okay... The regular price is 20,000, with a 4,000 advance payment. What do you say? + + + You're a tough customer. I'll have to charge you 24,000 and I need 8,000 paid in advance. Deal? + + + Right now is a bad time... the military are making things hot at the Cordon. Someone attacked their outpost the other day, which made them even more difficult to deal with. + + + A sniper weapon. + + + For you I can get the best for only 20,000, but you'll have to pay me 4,000 in advance. + + + Working with you entails a certain amount of risk... I can try to arrange your order for 24,000, but you'll need to make a 8,000 down payment. + + + Sorry, this type of weapon is hard to come by right now. My contact for sniper stuff is... let's say he's indisposed. + + + An armored suit. + + + Yeah, I can think of something... suitable. It'll cost you 40,000, but you'll have to pay me 8,000 in advance. + + + Yeah, I can think of something... suitable. You refused to collect your last order, so the price will be 48,000 and you'll have to pay me 16,000 in advance. + + + I won't be able to do any better than the last suit I got for you. That one was both unique and top of the line. + + + A suit with a closed-cycle respiratory module. + + + That's a tall order... Won't be easy to obtain, not by a long shot. I can try to get one of these babies for 30,000, but I have to ask for a down payment of 6,000. + + + You let me down on the last order, so I have to think twice this time. I can try to get one of these babies for 36,000, but I have to ask for a down payment of 12,000. + + + I bent over backwards to get the last one. Don't think I'll be able to repeat that. + + + An exoskeleton. + + + You must have given this choice a lot of thought. I can get my hands on a combat version, but it'll cost you 60,000. Expensive, I know, but well worth it. Keep in mind I'll need 12,000 of that paid right now. + + + You didn't treat me very nicely on the last order, so this one'll set you back 72,000. Keep in mind I'll need 24,000 of that paid right now. + + + No way. Since they closed the manufacturing plant, vacant exoskeletons are typically found only on corpses... That's just not my method. + + + Nothing right now. + + + Sorry, my shop is closed at the moment. Temporary difficulties with order shipments... + + + Hello. I'm Nimble. People come to me for unique weapons. Rare models, prototypes, unique shooters - stuff like that. Plus elite equipment, the latest modifications of protective and combat suits. I check every item personally, so quality is guaranteed. + + + Hello. Would you like to place an order? + + + Hello. + + + Your order will be delivered very soon. + + + The order is finished. Please come to collect it. + + + Hey! Are you Snag's pal? + + + Yes, I know him. + + + He told me you're bringing us some loot... + + + I don't remember agreeing to that. + + + Yeah, all right. We ain't no bitches to be waitin' on Snag like that. + + + Bye. + + + No can do! + + + Think carefully now. If you've got half a brain, you'll know it's best to play nice when you're outnumbered. + + + I said no! + + + No. I don't know him. + + + Ahh... damn... I'm hurt real bad... Help me, bud, I need a medkit... I ain't got long... + + + Take this medkit. + + + Whew! Thank you, buddy. I was this close to buying it in a Boiler. The mutant dogs would've had a field day... Here, take my detector. Might come in handy one day... Thanks for saving my life, really. I think I'll take a breather at the base now. + + + Good luck. + + + Whew! Thank you, buddy. I was this close to buying it . The mutant dogs would've had a field day... Here, take this artifact. Might come in handy one day... Thanks for saving my life, really. I think I'll take a breather at the base now. + + + I can't, I need it myself. + + + I don't have a medkit. + + + Thanks again! Without you I'd be pushing up daisies right now... + + + Stalker! Quick, come help Petrukha! Look over there, at the edge of the crevice! He got whacked by an anomaly! Even his suit didn't help one bit! And me, I don't have one. Petrukha and I pooled all our money together to buy that one... If I take another step, I'm done for! Help us, please!! + + + OK, stay where you are. I'll give it a try. + + + Deal with it yourselves. + + + Thanks for saving Petrukha. Damn, why didn't we save up for a better suit! + + + Get out of my sight. You let Petruha die... He was twice the man you'll ever be! + + + See you next time. + + + I wiped out the bloodsucker lair. + + + Good. You avenged our dead brothers, God bless their souls... You've earned this reward. + + + I found a whole bloodsucker lair underneath the antenna complex. + + + Okay. The lair must be wiped out. Let me think a second... Who the hell knows how many bloodsuckers there are in those tunnels. Maybe we could gas them instead. I remember Owl saying something about gas tanks. You talk to him - we're not on very good terms... If you manage to get the gas tank, just connect it to the antenna complex ventilation system and it'll all be over in a few minutes. + + + OK, I'll do that. + + + I'll think about it. + + + I've already got a gas tank. + + + Wow. You got skills, pal. + + + Ah, there's our stalker. We've been waiting for you. + + + What's the plan? + + + We're going to a meet. You won't have to do much, or so I hope. Just stand by and be cool. + + + OK. + + + Hah. We sure made them sorry. Nice trigger skills, stalker. Here. + + + Good luck. + + + You friggin wannabe. You botched up a sure thing, now get lost. + + + Bye. + + + What's your hurry? + + + Nothing. + + + Owl sent you? + + + Yes. He told me you needed help. + + + I need help, that's true. I reckon you'll do just fine. + + + OK. What's the job? + + + Provide protection during a business transaction. That's it. + + + I can do that. + + + Stand by and cover me. + + + Got it. + + + I'll talk to the boss only. + + + Up to you. + + + Thank you, stalker. You were a lot of help. I had a feeling those assholes would screw up one way or another. They were being trailed all the way! This is for your troubles. + + + Good luck. + + + You make a fine slacker, but a lousy bodyguard. But I promised to pay you, so I will. + + + Good luck. + + + You make a fine slacker, but a lousy bodyguard. But I promised to pay you, so I will. + + + Good luck. + + + What do you want? There's nothing to thank you for. I barely made it... Go away! + + + Good luck. + + + Attaboy, thanks for coming. We want to sneak up close to the bandits and listen in. Then we'll see what happens. + + + I see. + + + Thank you, stalker. Take this from us... Barman's got your main reward. + + + I see. + + + Tell me about your life here. + + + It ain't a walk in the park, that's for sure... What exactly do you want to know? + + + What is it that you do here? + + + We watch over stalkers. You have to admit that a good half of you are more like little kids than men. You come to the Zone with some silly dreams, or to play heroes, or just because life's treating you badly. You don't realize all that's waiting for you in here - the grim reaper, mostly. That's the kind we look after. We find one at the Garbage, we take his gear and send 'im back to the Cordon. Some wise up and go back to the outside. Those with the stones to come back here, we put under our protection and we tax 'em. I'm tellin' ya, no one dares go on our territory - not the army, not the mercenaries, not even mutants. + + + What brought you to the center of the Zone? + + + Our legs. We came here for stalkers, what else? Without us around to keep order it's sheer goddamn chaos. You loot it, you keep it, sure, but who's gonna pay your taxes? You know, the peace and security tax. Like if one of youse is milking an anomaly while we're on the lookout, keeping mutants at bay. If he comes out fine, we take a cut... for maintaining order, you understand. + + + How did you become boss? + + + Where do I begin... I guess it goes back to high school. I had a good buddy, a best friend, if you will. We hung out together, smoking, drinking and whatnot. Only he wanted more and more thrills. He got into drugs: some weed at first, then smack and then coke, when he started getting some coin. I told him, "You gotta get off this shit, Tolyan, before it's too late." But he didn't listen. He scored some bad shit one day and that was that. I found his dealers and got even for my buddy... Got my picture took and all hell broke loose - the slammer, the gang fights, the shiv in the belly... Got out, started a business, got busted again... When I got out again, I left all that shit behind and set my sights on the Zone. Spent a couple months toughing it out, then got promoted. So now I'm in charge here, upholding the local law. + + + What do you think about stalkers? + + + They're all different, like. Some are punks who don't last here a week, others are earners... and others still are okay guys that life has kicked around on both sides of the Cordon. We fleece the first kind, tax the second kind. As far as the last kind, well, we just try not to get in each other's way. Too bad you can't always tell them apart right away... + + + Oh, never mind. Fuhgetaboutit. + + + Suit yourself. + + + Now Beard will work for us. + + + You know what they say, "the cow is ours, let's get to milkin'." Pay him a visit once in a while and remind him to pay up his fee. + + + Beard got an important order for an artifact called Compass. + + + We must intercept the artifact. Beard won't get his panties in a bunch for some small fry. My gut says he needs this thing to save his ass... to stay in business, that is. Bring me this Compass thing as soon as you find it. + + + I found the Compass. Here. + + + I refuse to look for the Compass for you. + + + Hey jackass, you get this straight. If you say you're down for something and you let me down, well, I ain't gonna like you much after that. And people I don't like tend not to enjoy life. You got that? + + + I'll keep that in mind. + + + I'll get those detectors from the stalkers. + + + Good. Meanwhile I'll deal with our client's other channels. + + + A little bird told me you delivered a Compass to Beard. Now you listen to me, jag-off. If you say you're down for something and you let me down, well, I ain't gonna like you much after that. And people I don't like tend not to enjoy life. You got that? + + + I'll keep that in mind. + + + Beard is now out of upgraded detectors. + + + Sweetness. While you were gone, I kept myself busy cutting off his other channels. Now the client's ours, lock stock and barrel. Go talk to Beard, tell him Sultan says 'Hi.' + + + Beard owes me money. Owl said you could help me. + + + I guess I can... Here's my thinking: we drive Beard broke and take over his setup, you get your money and a cut of the business. Deal? + + + Deal. + + + Now your job's to find out what's keeping Beard busy right now. Cutting off his supply channels will do the trick. + + + I'll think about it. + + + Just remember, thinking's bad for your health. + + + Think Nimble might be dealing in stolen goods? + + + Nimble? Nah, he ain't got the guts. Owl's our local dealer for the hot stuff. Whatever you're selling, he'll buy it, no questions asked. + + + I'm looking for Snag. Do you know where I can find him? + + + I do. My boys saw him at the dock cranes a couple days ago. I ought to shake that punk down for some money he owes me, but I keep forgetting. + + + I've got a job for you. My boys need to see a trader... you know, business related. It's been hot in the Zone lately, so I thought an extra shooter wouldn't hurt. Make sure the shit goes down nice and smooth. + + + OK. + + + Good. My people will meet you near the ranger station. The coordinates are in your PDA. + + + I see. + + + I'm not interested. + + + The hell you still doin' here? Get your ass to the ranger station. + + + Uh-huh. + + + So, you make up your mind yet? Are you with us or what? + + + I am with you. + + + I'm on my own. + + + Remember. I'm Sultan. Everything that goes down here is either under my control or will be soon. If you want to live the good life, you gotta work for me. If you don't, you'll live the shitty life. That's how we roll, bro. + + + What do you need? + + + What brings you here? + + + Well? + + + I killed all the stalkers myself. + + + Whoa, dude... shit, you a rough rider. Coming in here and taking them out like that, shit. What the hell did I hire you for... You ain't got us no cash, only heat... Cool the hell down man, you hear... + + + Do you enjoy working for the scientists? + + + It ain't bad. No problems yet, everything seems cool. The scientists tossed some equipment our way, so we're doing good. + + + Excellent! The work is simple and they pay well. No one's come looking for the scientists while we've been here. Not even the monsters. + + + I'm putting a squad together to go to Pripyat with. Will you join us? + + + Nah... I ain't got a hard-on for Pripyat, unlike others... Plus we got a job to do, protecting the scientists... You might wanna take that soldier dude with you. He'd get a chance to look for his army buddies, and we'd breathe easier, too. The guy's okay, kinda, but this ain't the best place for him... + + + Nah... I ain't got a hard-on for Pripyat, unlike others... Plus we got a job to do, protecting the scientists... + + + Would you like to work for the scientists? + + + What's the job? + + + Guarding their bunker. + + + Well, guarding, heh... wouldn't be the first time. I agree. We'll start for the bunker as soon as we're ready. + + + Taking measurements in anomalies. + + + Measurements, heh. Do I look like a lab technician to you? It's not really my profile. + + + Let's talk about that later. There's too many new hoods running around; gotta put them back in their place and maybe then think about work. + + + All right, let's blow this joint. We'll give it to 'em good! + + + Good. + + + We better find some cover though. It's the friggin' emission! + + + Let's blow this joint. We'll give it to 'em good! Stay cool, it's gonna be all right. + + + Popped 'em good, eh! Here's the coin, pal. I'll holler atcha if we get any more 'business.' + + + Whoa, dude... shit, you're a rough rider. Coming in here and taking them out like that, shit. What the hell did I hire you for... You ain't got us no cash, only heat ... Cool the hell down man, you hear... + + + You ain't clear?! Where the stalkers at, huh?!... What kinda bullshit is this? You snitched, didn't ya? Couldn't have been no one else! All my bros were right next to me all this time... Now your dumb ass is gonna get the pluckin' the stalkers woulda gotten! What the hell you looking at - empty your pockets now, bitch! + + + We should get going... to the barge. + + + Hey there, chief. Sorry, but I ain't in the talking mood right now. + + + I'll help you. + + + Great. We'll set up the meet as agreed and you'll head out. When they come up, we'll drop the bomb on them from all sides. Make sure to keep your distance, don't catch friendly fire. + + + OK. + + + Nah. I ain't down with that. + + + Howdy, stalker. I'm busy right now. Let's talk later, okay? + + + Thanks for the warning. Maybe you can agree to our plan? A nice chance to shoot the bastards in the back, so to speak. + + + We'll ambush them. When we do, you start shooting the shitheads from the rear. + + + Those assholes are as good as dead. Thanks for the heads up. + + + Thanks for helping us. + + + Howdy. Listen, if it ain't urgent, let's chat later, k? + + + Hello. + + + I found Magpie. He was at Yanov station, posing as 'Flint.' He’s been dealt with. + + + Dealt with? That’s a pity. I sure would have loved to hurt that cockroach myself... Oh well, it's good news either way. Here, take this - I’m a man of my word. + + + Thanks. + + + I want to leave the Zone. + + + You sure? There ain’t no way back. + + + I’m sure. Let’s go. + + + Actually... I’ll stay for now. + + + OK, take the money. I don't want to fight. + + + Huh? Gimme everything you got, bitch! Then get lost and stay lost! + + + I'm leaving. + + + No can do! + + + Let's have a look... With your health? Well, if you’re doing badly, I must be dead or something... + + + Listen, there's some urgent business. A trader I know wants to swing a deal. Only problem is, his customers are the bothersome type, so he's hiring a security guard just in case. You interested? + + + Yes. + + + OK. The trader will be waiting for you by the ranger station, he'll fill you in on the details. + + + Not really. + + + Up to you. If you do change your mind soon enough, the job may still be up for grabs. + + + What kind of job can you offer me? + + + The money-making kind. Now think: why am I asking you? You're the new guy with no connections to speak of but if you play your cards right you could quickly gain the locals' respect. Wanna know what I'm thinking? + + + Yeah, sure. + + + All right, then listen up. We got a mind to shake down a few of Beard's stalkers. It's a real cinch. Late at night, you and our guys come up to Shevchenko, and before these tourists figure out what's going down, you take ‘em for a ride. We get the dough, you get the props... Catch my drift? Alrighty then. See Knuckles standing over there? He'll give you all the details. + + + Not really. + + + Too bad. Take some time and think it over... You'll come back if you know what's good for you, buddy. + + + The kind you'd appreciate if you wanna go places... Wanna know what I'm thinking? + + + Barge's PDA. I found his dead body in the caves under the burnt farmstead. + + + I found it near some bare bones not far from Oakpine. It's Joker's PDA. + + + Joker's?!... That's impossible! Wow, I'm so devastated... Joker's dead... Oh Joker, we won't be laughing at your jokes anymore... Rest in peace... I hope Barge is all right at least... + + + Joker's?!... That's impossible! Wow, I'm so devastated... So Joker's dead too... Oh Joker, we won't be laughing at your jokes anymore... Rest in peace... And you too, Barge... How did it come to this... + + + Barge's and Joker's. I found one by a skeleton near Oakpine, and the other on a dead body in the caves under the burnt farmstead. + + + To be honest with you, there's not much to tell. Emissions are especially dangerous and almost always fatal. You can feel one coming on gradually, by the changing weather, but it passes soon after hitting its peak. At the first signs of its approach, run for the nearest cover - a cave, something made of concrete, bricks or steel... Like some others, I can feel an emission coming on when my back starts to ache. As for the nature of emissions, I don't have anything useful to tell you - I just don't know. + + + Need goods? Information?.. Or maybe you want to sell information? + + + Sultan says you’re planning to fleece the stalkers. Count me in. + + + Great. Get your ass over to Shevchenko after midnight - we'll be waiting for you. Just don’t wait till morning to show up. + + + Oh, it's you, bro. So, what did you and Sultan agree on? + + + So... Get over to the barge after midnight but before the sun comes up - we’ll be waiting for you. + + + I think I better stay with you. We’ll wait for midnight and then you can show me the way to Shevchenko. + + + No problem, stick around. Taking you to the barge ain’t a problem. + + + Actually... I’m gonna go take care of some things. + + + I have major customers outside the Zone who regularly order specific artifacts, which must be delivered within a specific period of time. You bring me what I ask and I pay you good money for it. Keep in mind that these orders are very important for me, which is why I try to commission several agents at a time... You get the full fee only if you deliver first. + + + Via the burnt farmstead. Hrm... Who are you, anyway? + + + They also call that place the Iron Forest. The chopper crashed slap bang into the power pylons. None of the jarheads survived... Even if they did, they'd never make it out alive. Those poltergeists just love chasing people into electric anomalies... Those scumbags respond to the tiniest movement, as I’m sure you know. + + + Listen... After the chopper came down, five army guys were spotted there. Apparently they even managed to climb out of that swamp successfully... Reaching that place is no big deal, just stay away from water and keep to steady ground. And you'll need chemical protection, too. So, if you're planning on heading out there, buy some antidotes from the medic. + + + Too bad my buddies Joker and Barge aren't here... We'd have a hell of a time. We were like brothers, always got each others' backs... How did it all come to this?... I'm still here, but they're gone hell knows where... + + + Tell me about Joker and Barge. + + + I’ve already got something from there. + + + Start talking... Did you get something for me? + + + Well, that explains it. I know him. He's always been a crook, but lately he's gotten really out of hand, scamming stalkers like that... He needs to be put in his place. + + + I need information from the mercenary camp. It’s not as hard as it sounds. + + + OK, I’ll be waiting... Keep in mind that the job is urgent - it has to be done within two days. + + + Sultan’s messenger’s PDA. + + + It’s not that interesting. I'll give you 500 for it. + + + OK. + + + Detector prototypes. Would you like to buy them back? + + + Secret documents, I found them on the bridge by the motor column. Wanna have a look? + + + A strange artifact. I found it at the dredge station. + + + A strange artifact. I found it near Yanov station. + + + Heart of the Oasis artifact. + + + Let’s rock. + + + Wait. + + + A group of stalkers is planning to stick you up. Stay alert. + + + Rat bastards... All right, we'll give them a warm welcome... Listen, try to make them think you’re on their side. Do that and you can help us fight them off... We'll make it worth your while... + + + I don't give a shit what you agreed to. Hand it over! + + + Okay, here you go. + + + You don't?... We don't give a rat's ass. Hand it over, moron! + + + Easy, easy... Here you go. + + + Rat bastards... All right, we'll give them a warm welcome... Listen, help us fight them off if you can. We'll make it worth your while... + + + Popped 'em good, eh! You didn’t get involved, so you ain’t getting a cut. I'll holler atcha if we get any more 'business.' + + + You’re no use... Don’t expect a reward. Well, at least you came to have a chat, That’s something. + + + See ya. + + + Attaboy. Now we put the screws on our little client. I heard Beard gave his stalkers some very powerful detectors designed for finding rare artifacts. So you need to join up with those stalkers and make it so those detectors don't slip past your pocket. Catch my drift? + + + No chance of outmuscling him. I tried to squeeze up his supply routes but that bearded scumbag managed to get a Compass anyway. Looks like he’s doing just fine... for now. + + + [continue...] + + + [continue...] + + + [continue...] + + + Grouse is dead. It looks like Tremor killed him... but he’s dead too. + + diff --git a/gamedata/configs/text/eng/st_generate_fnames.xml b/gamedata/configs/text/eng/st_generate_fnames.xml new file mode 100644 index 0000000..8464cef --- /dev/null +++ b/gamedata/configs/text/eng/st_generate_fnames.xml @@ -0,0 +1,492 @@ + + + + Sanek + + + Shurik + + + Vadya + + + Vasyan + + + Vasek + + + Vityukha + + + Vetal + + + Vovan + + + Zhorka + + + Grishka + + + Grishko + + + Dimon + + + Lekha + + + Dimukha + + + Zheka + + + Fimka + + + Ilyukha + + + Kostyan + + + Mitka + + + Mikhal + + + Mikha + + + Mikhas + + + Kolyan + + + Tolyan + + + Pavlukha + + + Sashok + + + Stepka + + + Stepukha + + + Timokha + + + Felka + + + Yuras + + + Yashka + + + Andryukha + + + Tokha + + + Arkasha + + + Temka + + + Boryan + + + Bodya + + + Captain + + + Lieutenant + + + Private + + + Andrey + + + Anton + + + Oleg + + + Roman + + + Aleksandr + + + Sergey + + + Anatoly + + + Yuri + + + Bohdan + + + Veniamin + + + Vitaly + + + Vladimir + + + Dmitry + + + Ivan + + + Konstantin + + + Alexey + + + Sanya + + + Sanek + + + Arthur + + + Yashka + + + Yarik + + + Yara + + + Slava + + + Borya + + + Borka + + + Bohdan + + + Slavik + + + Vadim + + + Vadya + + + Vadik + + + Valik + + + Valera + + + Shurik + + + Vasya + + + Vaska + + + Vasko + + + Venya + + + Vitya + + + Vitka + + + Vitalik + + + Vlad + + + Vova + + + Vovka + + + Lenya + + + Seva + + + Sevka + + + Gena + + + Genka + + + George + + + Gosha + + + Zhora + + + Mark + + + Gleb + + + Grisha + + + Alex + + + Grishka + + + Grishko + + + Danya + + + Kiryukha + + + Danko + + + Dennis + + + Dima + + + Dimka + + + Dmitro + + + Zhenya + + + Leshka + + + Zhenka + + + Egor + + + Egorka + + + Fima + + + Vanya + + + Vanka + + + Igorek + + + Ilya + + + Kostya + + + Kostik + + + Tolik + + + Leva + + + Lenya + + + Lyonka + + + Max + + + Matvei + + + Mitya + + + Misha + + + Mishka + + + Nikita + + + Nik + + + Anton + + + Kolya + + + Oleg + + + Pasha + + + Pashka + + + Petro + + + Petya + + + Petka + + + Roma + + + Romka + + + Rostik + + + Toshka + + + Rus + + + Savva + + + Semyon + + + Sema + + + Serega + + + Rusik + + + Stepan + + + Stepa + + + Tima + + + Timka + + + Artem + + + Fedor + + + Fedya + + + Fedka + + + Filya + + + Filka + + + Edik + + + Yurka + + + Yurik + + + Yurko + + + Yasha + + + Master Sergeant + + + Sergeant + + diff --git a/gamedata/configs/text/eng/st_generate_snames.xml b/gamedata/configs/text/eng/st_generate_snames.xml new file mode 100644 index 0000000..722b150 --- /dev/null +++ b/gamedata/configs/text/eng/st_generate_snames.xml @@ -0,0 +1,4836 @@ + + + + Gray + + + Berserk + + + Rotten + + + Patty + + + Spy + + + Bison + + + Beaver + + + Bulldog + + + Ox + + + Sparrow + + + Woodpecker + + + Beast + + + Warlock + + + Humpback + + + Boar + + + Crucian + + + Canary + + + Bedbug + + + Nark + + + Moose + + + Rat + + + Boa + + + Loaf + + + Broken + + + Long John + + + Mayhem + + + Bolt + + + Razor + + + Drum + + + Junk + + + Screw + + + Dynamite + + + Trump + + + Shovel + + + Joint + + + Dead Duck + + + Cross + + + Tar + + + Sock + + + Crowbar + + + Panadol + + + Shiv + + + Piston + + + Nickel + + + Tails + + + Lethal + + + Percher + + + Grindstone + + + Ace + + + Chisel + + + Jackstraw + + + Shortstop + + + Crosstie + + + Stud + + + Jiggers + + + Fist + + + Bruise + + + Tadpole + + + Hacker + + + Khan + + + Koschei + + + Rambo + + + Tour Guide + + + Terminator + + + Chapai + + + Genghis + + + Banana + + + Loaf + + + Butterfingers + + + Papa + + + Spike + + + Homeboy + + + Gangrene + + + Glitch + + + Degree + + + Antelope + + + Fubar + + + Pariah + + + Aspic + + + Charcoal + + + Trump + + + Joint + + + Sock + + + Goblin + + + Moor + + + Reefer + + + Flop + + + Ravioli + + + Chili + + + Grater + + + Fatso + + + Biscuit + + + Ghoul + + + Miser + + + Broken + + + Tightwad + + + Squint + + + Fiend + + + Cripple + + + Kicker + + + Skew + + + Crooked + + + Shifter + + + Toupee + + + Fierce + + + Crony + + + Local + + + Slime + + + Champ + + + Monocle + + + Rascal + + + Deadbeat + + + Hotshot + + + Turd + + + Defunct + + + Psycho + + + Loudmouth + + + Torn + + + Grabber + + + Blind + + + Snot + + + Hipster + + + Met + + + Corpse + + + Slasher + + + Ears + + + Jester + + + Greyhound + + + Lame + + + Sturdy + + + Cranky + + + Connoisseur + + + Robust + + + Squire + + + Leech + + + Artist + + + Conman + + + Banker + + + Hobo + + + Baron + + + Peddler + + + Unorthodox + + + Tramp + + + Bosun + + + Pigmy + + + Bourbon + + + Bourgeois + + + Chauffeur + + + Thief + + + Shaven + + + Gangster + + + Messenger + + + Count + + + Tyrant + + + Savage + + + Strangler + + + Counselor + + + Player + + + Cheat + + + Godfather + + + Veteran + + + Coach + + + Bling-bling + + + Maniac + + + Undertaker + + + Butcher + + + Ninja + + + Executioner + + + Punk + + + Guerilla + + + Pacifist + + + Boulder + + + Pirate + + + Arsonist + + + Prince + + + Brigand + + + Kamikaze + + + Pimp + + + Tyrant + + + Hitman + + + Trombone + + + Chemist + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchitsky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Sinaev + + + Feigelman + + + Ledentsov + + + Alferov + + + Antipin + + + Blinov + + + Bogomolov + + + Vasilevich + + + Geshkenbein + + + Dyakonov + + + Erokhin + + + Zaikin + + + Zakharov + + + Ivchenko + + + Kabanov + + + Larin + + + Manko + + + Mironov + + + Stepanenko + + + Oganesyan + + + Chernodub + + + Shilov + + + Chirikov + + + Belyavin + + + Fadeev + + + Steklov + + + Andreev + + + Spirin + + + Balitsky + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + White + + + Green + + + Immortal + + + Rusty + + + Romantic + + + Atrocious + + + Brawny + + + Storyteller + + + Blind + + + Brave + + + Snot + + + Debater + + + Oldtimer + + + Berserk + + + Hipster + + + Met + + + Grim + + + Slouch + + + Dry + + + Lucky Bastard + + + Flecked + + + Fatso + + + Belly + + + Corpse + + + Broken + + + Smart Aleck + + + Slasher + + + Ears + + + Mummer + + + Jester + + + Lame + + + Sturdy + + + Bone + + + Cynic + + + Dude + + + Blithe + + + Cranky + + + Alert + + + Connoisseur + + + Robust + + + Sophomore + + + Native + + + Aviator + + + Agent + + + Squire + + + Leech + + + Crony + + + Disciple + + + Artist + + + Ascetic + + + Conman + + + Banker + + + Bard + + + Baron + + + Peddler + + + Unorthodox + + + Jogger + + + Athlete + + + Fighter + + + Tramp + + + Bosun + + + Pigmy + + + Bourbon + + + Bourgeois + + + Bureaucrat + + + Vandal + + + Barbarian + + + Janitor + + + Zinger + + + Witcher + + + Visitor + + + Viking + + + Chauffeur + + + Diver + + + Chief + + + Thief + + + Voyager + + + Shrink + + + Horseman + + + Loudmouth + + + Gangster + + + Geologist + + + Gladiator + + + Messenger + + + Guest + + + Count + + + Porter + + + Grandpa + + + Defector + + + Salesman + + + Greyhound + + + Dandy + + + Deputy + + + Tyrant + + + Savage + + + Diplomat + + + Doc + + + Doctor + + + Professor + + + Strangler + + + Warden + + + Hobo + + + Counselor + + + Ack-ack + + + Quack + + + Player + + + Indian + + + Iroquois + + + Captain + + + Cheat + + + Clown + + + Duke + + + Red + + + Shaven + + + Cossack + + + Cook + + + Warlock + + + Comanche + + + King + + + Godfather + + + Merchant + + + Smoker + + + Courier + + + Coach + + + Veteran + + + Legionnaire + + + Healer + + + Forester + + + Lord + + + Tycoon + + + Bling-bling + + + Maniac + + + Martian + + + Mason + + + Mechanic + + + Bigtime + + + Undertaker + + + Moderator + + + Milkman + + + Butcher + + + Merc + + + Tuner + + + Boss + + + Ninja + + + Operator + + + Gunsmith + + + Lucky + + + Shah + + + Executioner + + + Polkan + + + Punk + + + Daddy + + + Guerilla + + + Pastor + + + Shepherd + + + Elder + + + Plowman + + + Fortunate + + + Pacifist + + + Transporter + + + Whistle + + + Pilot + + + Trailblazer + + + Pirate + + + Carpenter + + + Arsonist + + + Firefighter + + + Slipper + + + Beanpole + + + Subzero + + + Ambassador + + + Postman + + + Poet + + + Prince + + + Prophet + + + Professor + + + Jumper + + + Beekeeper + + + Workhorse + + + Loyal + + + Rabby + + + Sparks + + + Brigand + + + Rasta + + + Warden + + + Rocker + + + Miner + + + Samurai + + + Minesweeper + + + Orderly + + + Bugeyed + + + Priest + + + Secretary + + + Gigolo + + + Sham + + + Scythian + + + Pathfinder + + + Machinist + + + Kamikaze + + + Breeder + + + Lifesaver + + + Boulder + + + Sportsman + + + Stranger + + + Student + + + Judge + + + Toadstool + + + Pimp + + + Beancounter + + + Trooper + + + Dancer + + + Tyrant + + + Rotten + + + Haggler + + + Mopper-up + + + Sweeper + + + Ethnic + + + Tourist + + + Hitman + + + Trombone + + + Quarterback + + + Sniper + + + Chemist + + + Rusty + + + Verbal + + + Patty + + + Painter + + + Sheep Herder + + + Shaman + + + Pitman + + + Coalminer + + + Sheriff + + + Chief + + + Scholar + + + Cabby + + + Humpback + + + Spy + + + Electrician + + + Cadet + + + Heathen + + + Alligator + + + Anaconda + + + Baboon + + + Bison + + + Beaver + + + Mantis + + + Proud + + + Bulldog + + + Chipmunk + + + Ox + + + Grice + + + Sparrow + + + Raven + + + Muskrat + + + Plantain + + + Scavenger + + + Rook + + + Bitter + + + Manul + + + Goose + + + Dolphin + + + Dinosaur + + + Thrush + + + Woodpecker + + + Hedgehog + + + Beetle + + + Hare + + + Beast + + + Thunder + + + Warlock + + + Aurochs + + + Turkey + + + Boar + + + Crucian + + + Canary + + + Bedbug + + + Cobra + + + Mosquito + + + Stallion + + + Bully + + + Cat + + + Croc + + + Grasshopper + + + Nark + + + Moose + + + Mammoth + + + Elephant + + + Germ + + + Gnat + + + Ant + + + Long John + + + Gadfly + + + Spider + + + Rat + + + Pilgrim + + + Piranha + + + Python + + + Hare + + + Owl + + + Falcon + + + Marmot + + + Softie + + + Gopher + + + Minnow + + + Cockroach + + + Tarantula + + + Hamster + + + Boa + + + Owl + + + Ferret + + + Worm + + + Pitman + + + Dead Duck + + + Absolute + + + Anomaly + + + Bumper + + + Loaf + + + Broken + + + Mayhem + + + Fireball + + + Bolt + + + Razor + + + Drum + + + Percher + + + Doughnut + + + Vacuum + + + Junk + + + Pebble + + + Fan + + + Chopper + + + Wind + + + Screw + + + Collar + + + Nail + + + Redhead + + + Tadpole + + + Cartridge + + + Globe + + + Boulder + + + Grenade + + + Fog + + + Coffin + + + Summertime + + + Engine + + + Dynamite + + + Holey + + + Butterfingers + + + Legal + + + Lock + + + Breech + + + Isotope + + + Rock + + + Trap + + + Sorcerer + + + Karma + + + Brick + + + Glue + + + Meany + + + Key + + + Whip + + + Trump + + + Cap + + + Log Splitter + + + Whiskey + + + Root + + + Scythe + + + Space + + + Shovel + + + Scrub + + + Joint + + + Cross + + + Tar + + + Trigger + + + Sock + + + Crowbar + + + Machine + + + Target + + + Motor + + + Pump + + + Iron + + + Nocturnal + + + Shotgun + + + Panadol + + + Parachute + + + Round + + + Five + + + Shiv + + + Piston + + + Putty + + + Gunpowder + + + Hardware + + + Nickel + + + Rocket + + + Rack + + + Reactor + + + Hatchet + + + Sieve + + + Tails + + + Robot + + + Stag + + + Spade + + + Charcoal + + + Moonshine + + + Boot + + + Cider + + + Lethal + + + Booze + + + Gouge + + + Barrel + + + Chest + + + Axe + + + Butt + + + Swifty + + + Grindstone + + + Ace + + + Knot + + + Factor + + + Lamp + + + Chisel + + + June + + + Garlic + + + Jackstraw + + + Chance + + + Fatso + + + Shortstop + + + Thorn + + + Closet + + + Crosstie + + + Roach + + + Nozzle + + + Rod + + + Stud + + + Screw + + + Jiggers + + + Miser + + + Brainiac + + + Fang + + + Claw + + + Bone + + + Fist + + + Nerve + + + Skeleton + + + Tail + + + Crest + + + Bruise + + + Gray + + + Tightwad + + + Hacker + + + Khan + + + Athlete + + + Pinocchio + + + Witcher + + + Voldemort + + + Homer + + + Dragon + + + Thunder + + + Gioconda + + + Squint + + + Noodle + + + Tin Man + + + Icarus + + + Casanova + + + Koschei + + + Caesar + + + Kolobok + + + Kutuzov + + + Peewee + + + Bonaparte + + + Thinker + + + Nelson + + + Neptune + + + Oscar + + + Prometheus + + + Pushkin + + + Friday + + + Rambo + + + Roquefort + + + Tour Guide + + + Terminator + + + Dork + + + Ink + + + Caesar + + + Chapaev + + + Chapai + + + Chebur + + + Cheburashka + + + Chingachgook + + + Genghis + + + Shtirlitz + + + Banana + + + Hawk + + + Brownie + + + Loaf + + + Papa + + + Spike + + + Homeboy + + + Bulkin + + + Bulldozer + + + Buffer + + + Dumpling + + + Whist + + + Saber + + + Gangrene + + + Hybrid + + + Glitch + + + Drummer + + + Highlander + + + Degree + + + Gremlin + + + Antelope + + + Uncle + + + Fubar + + + Chilly + + + Pariah + + + Kagor + + + Cabbage + + + Carbide + + + Aspic + + + Trump + + + Commodore + + + King + + + Joint + + + Sock + + + Fiend + + + Ice + + + Goblin + + + Moor + + + Madera + + + Spaghetti + + + Master + + + Mutant + + + Reefer + + + Flop + + + Pond + + + Cripple + + + P.I. + + + Ravioli + + + Chili + + + Strap + + + Doughboy + + + Bubble + + + Grater + + + Burr + + + Ryazansky + + + Moonshine + + + Cripple + + + Morel + + + Biscuit + + + Tobacco + + + Timesheet + + + Ace + + + Zucchini + + + Ghoul + + + Trombone + + + Phantom + + + Stunt + + + Gray + + + Kicker + + + Coma + + + Skew + + + Clumsy + + + Spine + + + Crooked + + + Rainbow + + + Shifter + + + Bush + + + Toupee + + + Siniy + + + Brown Nose + + + Fierce + + + Peewee + + + Stiff + + + Necro + + + Local + + + Grave + + + Slime + + + Champ + + + Narcissus + + + Black + + + Lax + + + Loser + + + Goofy + + + Nuisance + + + Crybaby + + + Monocle + + + Rascal + + + Deadbeat + + + Paranoia + + + Hotshot + + + Teflon + + + Rogue + + + Turd + + + Defunct + + + Righteous + + + Simpleton + + + Psycho + + + Workhorse + + + Torn + + + Grabber + + + Harsh + + diff --git a/gamedata/configs/text/eng/st_items_artefacts.xml b/gamedata/configs/text/eng/st_items_artefacts.xml new file mode 100644 index 0000000..1c0cb44 --- /dev/null +++ b/gamedata/configs/text/eng/st_items_artefacts.xml @@ -0,0 +1,153 @@ + + + + A compound of several hollow organic formations, this artifact emits a gaseous substance that can neutralize radioactive particles inside the body without harming it. Because of its effectiveness, this artifact is in great demand. + + + Bubble + + + A reddish formation of compressed and fossilized plants, soil and animal debris. Can partially neutralize chemical poisons. Emits radiation. + + + Stone Blood + + + This artifact is formed in anomalous zones with intense thermal activity. Actively consumes excessive heat, remaining cool to the touch throughout. Emits radiation. + + + This artifact is made up of a granite-like stone deformed by an extreme gravitational force, resulting in a crystallized formation that has not been explained by science to date. Can provide moderate protection against psy-emissions and is radioactive. + + + Stone Flower + + + Crystal + + + The composition of this artifact includes electrostatic elements, but scientists have yet to identify the exact physical conditions required for its formation. The artifact is popular in the Zone and valued by its residents and visitors for its energizing properties, although it can tire the body out through prolonged use. Emits radiation. + + + Battery + + + This artifact used to be considered trash, devoid of any useful properties. However, scientists recently discovered that if kept in constant contact with the body, it has an excellent stimulating effect on the nervous system. Emits radiation. + + + Shell + + + Much about this artifact remains a complete mystery to scientists. At the same time, it is known for certain that emissions produced by pulses in its thicker sections force blood in open wounds to clot quicker, forming a protective scab. One of the most noticeable effects of this artifact is the increased speed of wound healing. Emits radiation. + + + Mama's Beads + + + This electrostatic artifact is a powerful absorbent of electricity, which it later discharges. Flash is capable of protecting its bearer from electric shocks of up to 5,000 volts. Emits radiation. + + + Flash + + + This unique electrostatic artifact can resonate under the influence of psy-waves. Stalkers have learned to fine-tune the artifact so that it resonates in opposite phase to the main source of emissions, thus fully or significantly neutralizing their effects. Emits radiation. + + + Moonlight + + + A bright representative of the electrostatic family of artifacts, this artifact can smooth fluctuations in electric field density. Emits radiation. + + + Sparkler + + + This artifact, which resembles the human eye, considerably increases the body's metabolism, helping wounds heal quicker. Experienced stalkers say that the Eye also brings luck. Emits radiation. + + + Eye + + + This artifact forms in areas of high thermal activity. Produces powerful infrared emissions, which intensify metabolic processes, healing wounds before its bearer's very eyes. As this artifact is very rare, it is extremely valuable. Emits radiation. + + + Flame + + + Even though Fireball is a thermal artifact, it can be handled without fear of being burned. This artifact is valued for its ability to maintain a temperature of 75 degrees Fahrenheit within a small radius, virtually regardless of its surroundings. Emits radiation. + + + Fireball + + + A relatively rare artifact which forms in areas contaminated with chemicals, Kolobok is highly valued for its ability to heal wounds of any kind in mere minutes. For unknown reasons, scientists are spreading rumors among stalkers that the artifact interacts with the bearer's genetic code. Emits radiation. + + + Kolobok + + + Firefly + + + The result of an interaction between a large number of gravitational fields, Goldfish produces its own powerful internally directed gravitational field, which renders items within its range almost weightless. This artifact is most effective for reducing carried weight, which explains why it is always in great demand. Emits radiation. + + + Goldfish + + + Gravi is formed from metallic substances exposed to prolonged gravitation. This makes it capable of sustaining an antigravitational field, and many stalkers use it to reduce the weight of their backpacks. Emits radiation. + + + Gravi + + + At first glance, this artifact resembles Kolobok. Some claim that it actually is Kolobok, its properties reinforced by exposure to a powerful electric field. Thanks to its unique properties, the artifact can significantly increase the bearer's muscle tone. Emits radiation. + + + Snowflake + + + This gravitational artifact attracts and absorbs radioactive particles, reducing the effects of radiation on the body. Very common in the Zone and is unofficially used outside the Zone for treating acute radiation sickness in exceptional circumstances. + + + Jellyfish + + + This organic artifact consists of deformed, mutated animal tissue. When placed in a chemically contaminated area, Meat Chunk transforms the airborne chemicals into a mucous fluid. Emits radiation. + + + Meat Chunk + + + This glowing artifact can generate a local directed low-gravity field. Widely used by stalkers along with Gravi, a similar artifact, to increase maximum load. Emits radiation. + + + Night Star + + + A unique organic artifact with properties just as unique. Somehow it increases the body's overall recovery rate from damage of any kind, without accelerating the accumulation of toxins. Thanks to its effects and attractive appearance, this artifact is a valuable collector's item. Emits radiation. + + + Soul + + + This bizarrely-shaped artifact appears in places with increased gravitational activity. Acting as a kind of sponge that absorbs radioactive elements, this artifact provides protection from outside radiation as well as from radioactive particles that have already made their way into the body. + + + Wrenched + + + Compass + + + A rare artifact - it's been several years since one was found. The artifact can locate gaps in anomaly fields. It is believed that it can help one traverse the most complex anomaly fields completely unharmed. However, very few know how to handle it properly. + + + Heart of the Oasis + + + This artifact was found at the center of the legendary Oasis. It appears that the Heart is a crystallized plant, which has acquired the healing properties of the Oasis. Unlike the Oasis itself, however, this artifact is extremely radioactive. + + + Firefly interacts with fields unknown to science, considerably speeding up regeneration of tissue and organs in living beings, as well as normalizing metabolic processes. This artifact can literally get a badly wounded stalker back on his feet in seconds. Unfortunately, Firefly is extremely rare. Emits radiation. + + diff --git a/gamedata/configs/text/eng/st_items_equipment.xml b/gamedata/configs/text/eng/st_items_equipment.xml new file mode 100644 index 0000000..5b90273 --- /dev/null +++ b/gamedata/configs/text/eng/st_items_equipment.xml @@ -0,0 +1,156 @@ + + + + Anti-radiation drugs + + + Mexaminum radiation protection drugs are common in the Zone. When used, this drug induces contraction of peripheral blood vessels and oxygen deprivation, which serves to treat and prevent radiation exposure. The drug does not have severe side effects, although isolated cases of mild nausea, dizziness, cramps and stomach pain have been reported. + + + Bandage + + + A normal elastic bandage used to stop bleeding and prevent infection of wounds. For regular bleeding, carefully apply the bandage to the wound. For arterial bleeding, urgently tie the bandage around the affected area. + + + Standard issue military binoculars with a maximum of x7.5 magnification. Useful in the Zone in that they allow its owner to observe things from a distance. + + + Binoculars + + + Bread + + + No bakers have ever been identified in the Zone, but this bread is neither contaminated nor radioactive, being fresh and quite edible. At least no complaints have been reported thus far. + + + "Tourist's Breakfast" can + + + Presumably, these canned goods were looted by stalkers from an army ration depot. Without any kind of label on the can, it's hard to say for sure. Should still be good to eat, if you believe the best before date. + + + Echo detector + + + This dated anomalous activity detector produces an alarm signal when anomalous particles enter a special chamber as you approach an anomaly. It can also register the presence of artifacts and measure the distance to the nearest one. The distance is indicated by the frequency of the sound the detector emits. To switch to artifact search mode, open the device's front cover. Due to its simple design, Echo can only be used to locate the most common artifacts. + + + Detector "Bear" + + + Veles detector + + + A next generation scientific detection scanner. Thanks to three modernized detection chambers, the position of artifacts is shown on a special display screen. When closed, the device registers only radiation and anomalies. To switch to artifact search mode, open the front LED display. When in search mode, the detector is capable of locating all artifacts known to science. + + + Svarog detector prototype + + + A prototype of an expanded functionality anomalous frequency scanner. This device comes with a program used to identify static areas of anomalous activity stored in its database, while retaining the ability to locate artifacts. The position of anomalous areas and artifacts is displayed on a special screen. The artifact search mode, which can be activated by opening the front LED display, has been modified to detect anomalous formations currently unknown to science. + + + A standard head-mounted flashlight. Useful for stalkers who find themselves out and about after dark, but may attract trouble if used unwisely. + + + Flashlight + + + Anabiotics + + + Antidote + + + The IP2 antitoxin is a complex drug comprising several antidotes, including metoclopramidum, pyridoxine, thiamine, riboxin and other pharmaceuticals. The drug is used to inject a range of antibiotics to neutralize natural poisons, together with synthetic poison absorbers, into the bloodstream. IP2 is not particularly popular in the Zone, as most stalkers rely on a gas mask and a protective suit, there are still those who have a pack of this antidote stashed away. The effects of the drug are long-lasting. + + + Hercules + + + Vinca + + + Ukrainian Vikasolum - an artificial equivalent of vitamin K. The main purpose of this drug is to increase blood coagulation speed. In great demand among stalkers who want slow-healing wounds and lacerations inflicted by mutants to close up faster. The effects of the drug are long-lasting. + + + Psy-block + + + A drug that blocks avalanche-like nerve impulses. Consumption induces short-term loss of all emotion. Used exclusively in the Zone to counteract the effects of anomalous psy-fields. The effects of the drug are long-lasting. + + + Radioprotectant + + + Stalker energy drink + + + Often used by stalkers on long trips when no breaks can be afforded. The drink contains easily digestible carbohydrates, as well as drugs that stimulate the release of adrenaline into the bloodstream. + + + A trusty guitar. + + + Guitar + + + Diet sausage + + + For better or worse, this sausage - a mix of chicken and a soy substitute - is often a stalker's breakfast, lunch and dinner in one. Can be stored for a long time due to high preservative content. + + + First-aid kit + + + Army medkit + + + A specialized medical kit for providing first aid to combat casualties. The kit includes blood coagulants based on menadione, painkillers, antibiotics and immunostimulants, as well as a kit for removing bullets and fragments from the body. This medkit is issued to army personnel as standard and is sometimes used by Duty forces. + + + A general purpose single-use medical kit. Handy for treating various injuries - wounds, bruises, regular and chemical burns and various types of poisoning. In demand among stalkers. + + + Scientific medkit + + + A medical kit designed specifically for use in the Zone. The kit contains products for handling wounds, as well as preventing the development of radiation poisoning and reducing accumulated radiation in the body. Contains Vikasolum, Batilolum and Naphazoline, unlike other medkits. + + + No data stored. + + + PDA + + + Cossacks Vodka + + + Made by GSC. Goes down easy and considerably lowers the effects of radiation. Should be enjoyed in moderation. + + + This last generation anomalous activity detector can be used to locate anomalous formations and has a color diode panel, which not only indicates the direction of artifacts, but also measures the distance to them. To switch to artifact search mode, open the device's front cover. Unfortunately, the device is programmed with a somewhat outdated list of detectable artifacts. + + + An experimental drug developed by Professor Ozersky for scientific research teams working in the Zone. At its core, the drug contains tetrodotoxin, known colloquially as "zombie powder," which causes a complete shutdown of the body's central nervous system that may allow people to survive emissions outside cover. The drug has not undergone clinical or field testing, which puts its effectiveness in doubt and raises the issue of possible side effects. + + + Bolt + + + The main component of this product is an anabolic androgen, an artificial steroid, the chemical composition of which resembles testosterone. Often used by stalkers during long raids to reduce muscle fatigue. Significantly increases weight-carrying capacity. The effects of the drug are long-lasting. + + + B190 Indraline radioprotectant, included in medkits issued to nuclear power plant personnel. Used in the Zone instead of the excessively toxic PC1 cystamine hydrochloride, repeated use of which often caused death. Reduces the effects of gamma radiation on live tissue. Best consumed before exposure, as effects are not instant. The effects of the drug are long-lasting. + + + Harmonica + + + For blues and prison romance lovers. + + diff --git a/gamedata/configs/text/eng/st_items_outfit.xml b/gamedata/configs/text/eng/st_items_outfit.xml new file mode 100644 index 0000000..f6291e5 --- /dev/null +++ b/gamedata/configs/text/eng/st_items_outfit.xml @@ -0,0 +1,117 @@ + + + + CS-3a body armor + + + PSZ-9d Duty Armor + + + PS5-M Universal Protection + + + Exoskeleton + + + Bulat armored suit + + + This exoskeleton provides outstanding protection against bullet and fragmentation damage at the cost of mobility. Vulnerable to armor-piercing rounds. + + + Exoskeleton + + + A military armored suit made for assault operations. Provides outstanding protection against full metal jacket rounds and fragmentation damage without reducing the wearer's mobility. Vulnerable to armor-piercing rounds. + + + Military armored suit + + + A regular black leather trench coat. Has no special purpose other than to keep the wearer warm at night or protect him from a blind dog bite. Although the trench coat is not particularly comfortable, it is often used by bandits in the Zone - either because it allows them to hide in the dark or simply due to its "cool" appearance. + + + Leather trench coat + + + SEVA bodysuit + + + Berill-5M armored suit + + + Sphere M12 helmet + + + An aluminum/titanium helmet with a cloth exterior that comes with pockets for additional steel armor pieces and an armor face mask. Sphere M12 is normally used as part of a combination that includes PSZ series Spetsnaz body armor. Quite popular in the Zone thanks to its respirator and built-in first generation night vision device, as well as providing the maximum head protection possible. Comes with electronics slots. + + + Steel helmet + + + A desperately outdated steel army helmet without any additions. Provides no protection against anomalies or radiation, but can deflect bullets. This helmet was never particularly popular in the Zone, except for use in brief armed conflicts between factions. + + + Screen helmet + + + A light helmet with an airtight visor intended for protection from anomalies. Judging by the design, the helmet is made by the same Defense Research Institutes as the SEVA bodysuit. Its intended use may very well be in combination with military suits for operations in highly anomalous areas. + + + Gas mask + + + A regular plastic and rubber gas mask, used for filtering air for radioactive particles and poisonous substances. Widely used by rookies and veterans of all factions due to its universal functionality. Does not provide any physical protection. + + + Tactical helmet + + + A Western model of a tactical helmet that lacks camouflage. It is not known how it made its way into the Zone. The helmet is designed to provide a squad leader with strategic superiority over the enemy via its many scanners and satellite communications devices, which have not been installed in this particular helmet. Comes with multi-layered Kevlar protection and armored elements to protect electronic components. Includes a respirator and a first generation night vision device. + + + Sunrise bodysuit + + + Freedom Guard bodysuit + + + This lightweight stalker bodysuit is made by Freedom craftsmen. The suit's fabric is treated with Horizon, a special solution developed by the faction by trial and error to increase resistance to anomalies. Like the Sunrise suit, the Wind of Freedom comes with built-in body armor and artifact containers. + + + Wind of Freedom bodysuit + + + This modern version of the Duty bodysuit is better suited for stalker recruits who are used to lightweight suits. Unlike the PSZ series, this suit provides good protection against anomalies while also being capable of stopping a pistol bullet. The suit cannot be modified with an artifact container, but may be upgraded with a combat support system instead. + + + This modern military armored suit is designed for assault operations in anomalous areas. Comprises a PSZ-12p heavy military armored suit, built-in compensation suit, and an anomalous protection bodysuit. The armor provides excellent protection against bullet and fragmentation damage, without greatly reducing the wearer's mobility. Does not come with an artifact container. + + + This bodysuit, intended for conducting research in the Zone, combines a closed-cycle respiratory module and an external isolation coating, resulting in excellent protection from anomalies. Due to poor protection from physical impact, the suit is not a good defense against bullet and fragmentation damage. Comes with a built-in artifact transportation container. + + + This suit, produced by one of Kiev's Defense Research Institutes, is a great alternative to homemade stalker suits. While its built-in body armor can only stop a pistol round, the anomaly and radiation protection system is second to none. Fully upgradeable and boasting two built-in artifact containers, this bodysuit is the equipment of choice for many experienced stalkers. + + + This item comprises military PS5 series body armor with beryllium sputter modified for use in the Zone. Designed for assault operations in highly radioactive areas, it is ineffective in areas of high anomalous activity. The suit makes its way to stalkers through the military, who exchange it for loot. Does not come with an artifact container. + + + This DIY stalker bodysuit is a combination of a bodysuit of twin-layered rubberized cloth with plexiglass lining and built-in body armor. Despite the fact that the body armor is incapable of protecting the wearer from even pistol bullets, the suit enjoys great popularity due to its low cost and modification potential. Comes with built-in artifact containers. + + + This stalker bodysuit with reinforced body armor made by Freedom craftsmen represents a good compromise between combat and anomaly protection. The built-in body armor comprises armor plating and ten Kevlar layers, capable of stopping a pistol bullet. The suit uses the relatively expensive Sovereign compound for anomaly protection. Comes with an artifact container. + + + This early model of the Duty bodysuit is the Spetsnaz PSZ-9 body armor modified for the Zone. The suit is capable of stopping a rifle bullet, however, this level of protection comes at the cost of its weight, bulkiness and virtually non-existent anomaly protection. The suit cannot be modified with an artifact container, but may be upgraded with a combat support system. + + + Once used as standard by Clear Sky assault squads, after the faction’s elimination this armor serves as a reminder that even an excellent protective bodysuit cannot guarantee you safety this side of the perimeter. The armor is capable of stopping a pistol bullet, while the wearer is also well protected from anomalies. Comes with a built-in artifact container. + + + An experimental sample of a military exoskeleton. Was never mass-produced due to extraordinary cost and some design flaws. Despite this, it is in demand due to its ability to take on the weight of all carried equipment, and therefore small batches are made in underground facilities outside Ukraine. Comes with a built-in artifact container. + + + SEVA bodysuit + + diff --git a/gamedata/configs/text/eng/st_items_quest.xml b/gamedata/configs/text/eng/st_items_quest.xml new file mode 100644 index 0000000..df997cd --- /dev/null +++ b/gamedata/configs/text/eng/st_items_quest.xml @@ -0,0 +1,369 @@ + + + + Documents with notes + + + The documents mention that pursuant to an order of Department 1, following the sealing of the transportation lock, the Pripyat 1 underpass was flooded with carbon dioxide mixed with some kind of chemical additive. Consequently, all staff were instructed to wear chemical protection suits with closed-cycle respiratory modules. + + + Letter concerning deliveries of item 62 + + + "Due to anomalous activity, transportation of item 62 over open ground is not feasible. Use the underground Pripyat 1 underpass for delivery. The plan of delivery and subsequent sealing of the underpass has been sent to Department 1." + + + Folder with the order + + + The documents mention evacuation of the production complex from the Jupiter plant into underground laboratories. This matter was supposed to have been discussed in the laboratory section. + + + Delivery Schedule + + + "Schedule for deliveries of item 62: 07/14 - 20 units (one damaged); 07/21 - 32 units (2 damaged); 07/28 - 26 units (one damaged). The consignment note concerning losses en route has been sent to the plant administration, with a copy sent to the repair workshop." + + + Notebook Sheet + + + The following decision was made at the meeting: the delivery department is to concentrate on evacuating the production complex for item 62. + + + Duty Shift Log + + + "...18:30 - airtight sealing of all P-1 underpass sections complete. 19:00 - airtight sealing of railroad lock doors complete. Welding had to be used to seal the doors. 19:45 - transportation lock doors closed. Operation of the lock door mechanism required the activation of the backup generator, because the power to the underpass had already been cut. 20:00 - the chemical workshop has initiated flooding of the underpass with gas. 22:00 - work to seal the underpass has been completed, with all documents sent to Department 1." + + + Underpass Schematics + + + Pripyat 1 underpass schematics, which show that the underpass is under the city of Pripyat. The document has several notes: 1. Seal transportation lock doors. 2. Use gas from chemical workshop to seal underpass. + + + Altered Insulator + + + This used to be an insulator. It has now almost turned into an unstable artifact. It is probably the source of intermittent psy-emissions. + + + A can of colophonium + + + A can of colophonium used for soldering. Quite rare in the Zone, which explains why local technicians often use blue electrical tape to repair broken equipment. + + + A pack of capacitors + + + A pack of capacitors - one of the basic electrical components around. They're not that rare in the Zone, as they're used for hi-tech equipment upgrades, but this sort of capacity is not normally required. + + + Textolite base + + + Textolite is one of the basic components of printed circuits. The feelings experienced by an amateur radio technician in relation to an untouched textolite base are similar to those experienced by a writer in relation to a blank piece of paper. + + + A box of transistors + + + A box of transistors - semiconductors that generate, transform and amplify electrical oscillation. Transistors are the dream of every radio technician in the Zone. + + + A roll of copper wire + + + A roll of copper wire is an excellent conductor and simultaneously a source of a base metal. Due to the latter, such wire is very rare in the Zone. All the reserves of this wire were found, melted and delivered to recycling centers back in the 90s. + + + Mutant detection scanner + + + Based on a regular anomalous activity scanner, this device is combined with a limited range mutant detection sensor and a recording component for storage of results. The device is equipped with an automatic deactivation switch that is fired when a certain amount of data has been collected. + + + Administrative documents + + + A folder of documents containing purely administrative information. According to the documents, pursuant to an order from the central laboratory, technical documentation pertaining to item 62 was passed to the testing workshop. + + + Black's PDA + + + One message stands out among a handful of others. The sender is called Jackal and the message reads: "My man at the research institute will recommend that you lead the expedition. He will have to hire your boys to guard the bunker. That will make things easier for you. Remember, the client doesn't want ANY information about the operation of X-designated objects to reach the scientists. If it does, we will not be able to leave the Zone. Don't let me down, Black." + + + Black Box + + + The Stingray 1 black box which survived the crash. It should contain details of the flight's last moments, albeit in encrypted format. + + + Military grade plastic explosives with a 5 second timer. + + + Explosives with a timer + + + Altered Wheel + + + Snag's PDA + + + The PDA contains a map with a mark by the substation, clearly indicating a stash, along with a couple of erotic photographs. Nothing special. + + + Bandit's PDA + + + The last message on the PDA reads: "Catch that Snag bastard and bring him to me - we are due for a heart-to-heart. I don't care where he is - just find him. If he puts up a fight - teach him a lesson. Sultan." + + + This PDA contains details of Morgan's clients, as well as the coordinates of Duty's secret warehouse from which he took weapons. Morgan then sold the weapons to mercenaries and also established contact with someone called Sultan. To cover his tracks, Morgan decided to leak the warehouse location to Freedom. His accomplice, Vulture, was supposed to convey this information. The PDA also mentions a sensor that only Morgan can disable, which will alert Duty if the stash is opened. This information is bound to be of interest to both Duty and Freedom. + + + Morgan's PDA + + + A note on the back of an old document: "Ghost, I'm taking my things. Thanks for the assault rifle - I'm going to need it. In exchange, I'm leaving you some of Doctor's medical supplies. I managed to trap the mercenary who was on my tail, so I'm not going to need them... I hope. I'm going to meet Fang now - he managed to put the decoder together. Let's meet at the usual place, if you can make it. Strelok." + + + A note to Ghost + + + A note on checkered paper: "Strelok, I've left the other decoder in our Pripyat stash just in case. Me and Ghost are heading to Agroprom, so we'll leave our extra ammo here. Take it if you need it. Happy hunting! Fang." + + + A note to Strelok + + + A note on the back of an old document: "Fang, I can't wait for you any longer - I've got a whole squad on my tail. I'm going to the sarcophagus on my own. I'll leave my lucky shooter here - I haven't got any more ammo for it anyway. If I don't make it back, give it to Ghost. If he takes care of the shooter, the shooter will take care of him. Take care. Strelok." + + + A note to Fang + + + A memory module from the UAV. Novikov unblocked the module, allowing you to access the information the UAV collected. Among other things, it contains the coordinates of three radio beacons. + + + Memory Module (unblocked) + + + A memory module from the UAV. Despite the crash, the module is fully operational, but unfortunately it is blocked. + + + Memory Module (blocked) + + + And old sheet with the sentry duty schedule and the numbers 1421 underneath. A note written using a marker over the old writing reads: "Lieutenant V.I. Sokolov. Following the crash of the helicopter I proceeded to evacuation point B205. No evacuation attempts were made for two days and remaining at this position is risky. I have therefore decided to leave B205 and proceed to the scientific expedition's mobile laboratory. The laboratory is located northeast of the evacuation point." + + + Sokolov's note + + + A plant that was part of a grove, which was partially transformed by anomalous activity. The grove reacted to the intrusion with aggression, but the plant does not appear to be dangerous so far. + + + Anomalous Plant + + + The last message received on the PDA is from Morgan. It is basically a contract for the assassination of a stalker called Degtyarev. The message has several photographs attached. Morgan's final instructions are to delete the message after reading. + + + Mercenary's PDA + + + This case combines an artifact detector, a battery and a powerful transmitter. The device will scan anomalies to determine the number and type of artifacts that appear. All of this information will be automatically relayed to the scientists' bunker. + + + Anomalous Activity Scanner + + + The last entry on the PDA is an audio recording: \n"...Whichever way we go, we always end up at the same exact spot. I still can't get used to this fog... It's weird that Chepurny disappeared without a trace. Maybe he found a way out?... \nDay six... We have run out of water... The Colonel flipped his lid, shot two people at point blank range and then himself... Now I'm on my own in this damn anomaly... If I hadn't fixed for our communications with HQ to go down, they could have rescued us... and Duty wouldn't have existed. I wonder how things would have turned out... Ah, screw it. That Captain Tachenko died a long time ago... And this General Tachenko of Duty will follow him... that's justice, I suppose..."\nThe recording terminates just after a gunshot can be heard. + + + General Tachenko's PDA + + + The manual describes how to use item 62. The instructions emphasize that no adjustments need to be made for bullet trajectory or wind, as these are not important at distances within the weapon's effective range.\nThese documents must not fall into anyone else's hands, as they would be of great interest to USS analysts. + + + Manual for item 62 + + + The notebook contains a detailed description of an experiment assessing a psy-field's effect on an object in another hemisphere. A group of scientists in the Caribbean received the signal, but it was distorted. The signal was altered in a strange way, as though corrected by someone. A possible explanation is that the noosphere theory is correct and the changes were made by the noosphere.\nThese documents must not fall into anyone else's hands, as they would be of great interest to USS analysts. + + + A notebook with a description of an experiment + + + The documents describe the technical characteristics of the antenna and how they deviate from their planned values. There is a note on the reverse side which indicates that these documents were prepared in lab X10.\nThese documents must not fall into anyone else's hands, as they would be of great interest to USS analysts. + + + Rainbow emitter - main technical characteristics + + + The documents refer to one of the side discoveries of the research, specifically the discovery that living creatures are able to generate directed psy-emissions. A biological field emitter, essentially a giant brain, was grown as part of the research conducted in lab X16.\nThese documents must not fall into anyone else's hands, as they would be of great interest to USS analysts. + + + Research documents + + + The report details the study of biological samples sent from lab X18. The samples were subjected to informational field effects of varying intensities. The report meticulously describes the mutation of living beings following exposure to emissions.\nThese documents must not fall into anyone else's hands, as they would be of great interest to USS analysts. + + + Report on study of samples + + + The document refers to the transfer of the research team and all materials to another laboratory called X7, which will be used to research matters relating to the influence of the noosphere. The research team comprises: N.A. Lebedev, E.F. Kalancha and V.I. Suslov.\nThese documents must not fall into anyone else's hands, as they would be of great interest to USS analysts. + + + Order of Transfer + + + The last note on the PDA reads: "I found the emergency generator on the sixth floor - the technical floor. It took two hours to get it working again. I'd love to turn it on, but Serbin ordered me to stay put until he brings some people in." + + + Barchuk's PDA + + + A red magnetic keycard marked with X8. + + + Red X8 keycard + + + The PDA contains many meaningless entries, but one stands out: The Monolith is communicating with the recipient of the message and ordering him to collect surplus ammunition and store it in locations unknown to the nonbelievers. These locations are to be marked with the mark of the Monolith. When difficult times come, those who hear the Monolith shall benefit from its wisdom... I have conveyed the will of the Monolith to my brothers and told them where to place the ammo..." + + + Monolith fighter's PDA + + + A children's toolkit. Unlikely to be suitable for fine work, but given the deficit of tools in the Zone, could be useful for a thrifty technician. + + + Tools for basic work + + + A decent set of tools. It looks like it was carefully put together by an experienced technician for his own use. Despite their age, the tools are in good condition. + + + Tools for fine work + + + A professional set of tools for fine-tuning of equipment. The note on the container indicates that the set was made in Germany. The toolkit contains everything required for almost any kind of tuning and calibration work. + + + Calibration tools + + + Old magnetic keycard + + + Cardan's magnetic keycard. Was used for access to the item 62 testing workshop. + + + Documents concerning item 62 + + + Documents which describe the operating mechanism and main technical characteristics of the electromagnetic device.\nThere is a note inside the documents which reads: "Documents must be returned to X8, the central laboratory. I will be busy, so deliver them yourself. Use the magnetic card in the Pripyat Yubileiny service center to go down to the second underground floor. You'll work it out from there. The access card is enclosed.\nN. Lebedev"\nThese documents must not fall into anyone else's hands, as they would be of great interest to USS analysts. + + + Yellow X8 keycard + + + Order No. 562 + + + Internal order No. 423 + + + Key A + + + A regular key designated with the letter "A". + + + Key B + + + A regular key designated with the letter "B". + + + One of the audio recordings sounds particularly psychopathic: "So, that's where those damn mutants are!... Sly bastards climbed up to the plateau thinking that Noah won't get to them... I bet they don't know that I've got a personal path up there by the northern farmstead... You're in for a fun ride, assholes!!" + + + Noah's PDA + + + The notebook contains one message marked as important among a heap of spam:\n"Set up a camp near the waste processing station and everyone who is going to be participating in this job will join you. Don't expect Black, because he and his people will be at Jupiter on a different mission. The army has suspended all flights into the Zone, so there won't be any trouble from that side. When stalkers find a way to Pripyat we'll send a guide and wait for the client's people there - they'll show us where the lab is.\nJackal." + + + Mercenary notebook + + + The final incoming message reads:\n"We're kicking heels by some old workshops. I sent two boys ahead to scout the road for you. Then again, we'll wait here until the client's courier shows up - the air is a hell of a lot fresher here.\nTesak" + + + PDA of Hook the mercenary + + + PDA of Ridge the mercenary + + + A canister of a dangerous chemical nerve agent. + + + A canister of Perin B3 gas + + + The box is locked with a rather clever lock installed into it. Judging by its weight and the noise it makes when shaken, there's something inside. + + + Steel box + + + Note on the PDA: "I'm positive the artifact is on the tree itself. It's clear from here that I could climb onto the tree from the hill. I just hope the hills are free of mutants. It's too bad I had to come here on my own after that argument with Cardan and Barge, but when I bring back the artifact they'll see I was right all along..." + + + Joker's PDA + + + The last note on the PDA conveys that the person who made it was upset: "Cardan, that old drunk. Not only is he a lazy bastard once he's had a drink - "it's better here, we need to take it easy" - but then he goes and takes a run at me and Joker, saying we're young and ain't got a clue... Heh... Joker's a piece of work, too: gets pissed off, grabs his bag and disappears. While I was trying to calm Cardan down, he left and hell if I know where he went. And what I am supposed to do? Drink with that senile moron? No thank you! His vodka is shit... Eww..." + + + Barge's PDA + + + Tremor kept a diary in his PDA, and his last notes are the most interesting:”Recording 12. My research will be over soon... People at the camp are starting to suspect something. Grouse and Danila are planning to hunt some bloodsuckers ... I wonder when they’ll figure it out... I need to sort the jars of blood to find out which ones have been contaminated, then hide the rest... [quickly:] Someone’s coming. [the sound of the recording device being switched off, then on again]. Recording 13... possibly my last. First that nosy hunter and now Grouse... I won’t get away with this. They’ll come for me, I know it. Doesn’t really matter - this hemoglobin dependency will kill me soon anyway. And I’d rather die from a bullet than a disease...” + + + Tremor’s PDA + + + Top Secret. Order # 562 of the HQ commander responsible for the security of object # 1 R. Yu. Didenko.\nChemical Protection Unit # 423: relocate from sector B103 to sector A19 to conduct field testing of Perin B3 chemical solution in near combat conditions. Colonel P.P. Slavin, unit commander, is responsible for conducting the tests. Lieutenant Colonel K.S. Valov, deputy unit commander, is responsible for transportation and security. + + + Top Secret. Order from Colonel P.P. Slavin.\nIn accordance with this order, members of chemical protection unit # 423 are to be familiarized with the following information:\n1. Keys to the container with Perin B3 chemical solution are held by Colonel P.P. Slavin (key A) and Lieutenant Colonel K.S. Vlasov (Key B).\n2. Convoy order starting from the front: Deputy unit commander’s vehicle, escort vehicle # 8, APC # 1, transportation vehicle # 1, APC # 3, escort vehicle # 2, unit commander’s (P.P. Slavin) vehicle.\nCopies of the order to be handed to Lieutenant Colonel K.S. Vlasov and Senior Lieutenant R.B. Nazarenku. + + + A yellow magnetic keycard marked with X8.\nThe card must not fall into anyone else's hands, as it can be used to access the secret laboratory. + + + Sultan’s messenger’s PDA + + + The last message sent from this PDA is an audio message: “Sultan, I dealt with that loser real good! ..That’ll teach him not to mess with us!" + + + This was once the dredge station wheel. It has now half-converted into a strange artifact. No properties are notable, other than active glowing and a little radioactivity. + + + Incoming message reads:\n"I managed to arrange something about the weapons and that greedy bastard is going to sell us his faction's stock. It's gonna be fairly cheap but we’ll have to haul ass to Jupiter.\nVulture.” + + diff --git a/gamedata/configs/text/eng/st_items_weapons.xml b/gamedata/configs/text/eng/st_items_weapons.xml new file mode 100644 index 0000000..5ca020b --- /dev/null +++ b/gamedata/configs/text/eng/st_items_weapons.xml @@ -0,0 +1,567 @@ + + + + .45 ACP rounds + + + The .45 caliber full metal jacket round has enjoyed popularity for more than a hundred years thanks to its heavy bullet and a relatively small propelling charge. As a result, the bullet in this round is relatively slow but highly accurate and provides considerable stopping power. + + + .45 ACP + + + .45 ACP Hydrashock rounds + + + This unusual .45 ACP caliber round is comprised of a jacketed soft point bullet with an expanding hollow and a steel core. It is a combination of jacketed expanding soft point and armor piercing bullets, benefiting, from the advantages of both and, suffering from their downsides. + + + .45 Hydro + + + 12x70 shot rounds + + + Standard 12-caliber round filled with 6 mm shot. Highly lethal at close range. Only suitable for use with smoothbore weapons. + + + 12x70 shot + + + 12x76 slug rounds + + + This heavy 12 caliber slug round is normally used for hunting big game, but is also good for other purposes. Instead of piercing, this hefty slug simply crushes through armor. + + + 12x76 slug + + + 5.45x39 mm AP rounds + + + Military 5.45x39 7H22 caliber armor-piercing round for automatic rifles of Warsaw Pact countries. The bullet contains a hard-alloy armor piercing penetrator. Effective against body armor. + + + 5.45x39 AP + + + 5.45x39 mm rounds + + + Military 5.45x39 7H10 caliber improved piercing round for automatic rifles of Warsaw Pact countries. Provides better accuracy than the 7.62 caliber round thanks to reduced recoil and a 100 meter increase in range. + + + 5.45x39 + + + 5.56x45 mm AP rounds + + + A common NATO military 5.56x45 caliber armor piercing round, known under its SS190/M855 index, widely used by Western security agencies and special services. Effective against body armor. + + + 5.56x45 mm AP + + + 5.56x45 mm rounds + + + A standard issue NATO 5.56x45 caliber round specially designed for accurate automatic fire. Provides good ballistic characteristics, having been designed on the basis of a hunting round. Widely known under its SS109 index. + + + 5.56x45 + + + 7.62x54 mm 7H1 rounds + + + A 7.62 caliber sniper round with a steel penetrator specially designed for the SVD. Unlike the machine gun round, the 7H1 provides tight groupings and excellent penetration characteristics. + + + 7.62x54 7H1 + + + 7.62x54 mm PP rounds + + + Cheap 7.62 caliber machine gun round. Its design makes it unsuitable for sniper rifles, so it is used only with the RP-74 machine gun. + + + 7.62x54 PP + + + 9x18 mm rounds + + + A full metal jacket round with a steel penetrator and a lead core under a metal jacket. Provides good stopping power but is ineffective against body armor. + + + 9x18 + + + 9x18 mm +P+ rounds + + + This round contains a bullet with enhanced stopping power, while its European +P+ designation indicates "overpressure ammunition" with a 30% increase in muzzle velocity. Ineffective against body armor. + + + 9x18 +P+ + + + 9x19 mm FMJ rounds + + + This basic 9x19 caliber round with a jacketed bullet has good characteristics while being simple to produce. The round is popular due to the fact that international conventions prohibit the use of expanding ammunition in combat. Ineffective against body armor. + + + 9x19 FMJ + + + 9x19 mm JHP rounds + + + This 9x19 caliber jacketed hollow point bullet with an expanding hollow provides high stopping power and low ricochet propensity. Used by police and for self-defense. Ineffective against body armor due to its low penetration potential. + + + 9x19 JHP + + + 9x39 mm SP-6 rounds + + + The SP-6 is a subsonic assault rifle round with a jacketed soft point bullet with a hard steel core that protrudes from the casing. Requires a silencer for stealth firing. Used by special services of Warsaw Pact countries. Effective against body armor. + + + 9x39 SP-6 + + + 9x39 mm SP-5 rounds + + + The SP-5 is a subsonic sniper round with a bimetallic casing. The round contains a steel core with a gap behind it that is filled with lead. Requires a silencer for stealth firing. Used by special services of Warsaw Pact countries. + + + 9x39 mm SP-5 + + + Batteries + + + M203 grenade + + + 40 mm grenade for the M203 underbarrel grenade launcher. This round has a 5 meter kill zone. Also suitable for use in the FT-200M integrated grenade launcher. + + + M203 + + + OG-7V warhead + + + Fragmentation warhead for anti-personnel warfare used with the RPG-7u grenade launcher. The main purpose of the warhead is to kill enemies in cover outside the range of hand grenades using the RPG-7u launcher. + + + OG-7V + + + VOG-25 grenade + + + Regular fragmentation grenade for the GP-25 Koster underbarrel grenade launcher. This round has a 5 meter kill zone. The VOG-25 grenade is also used in the Tunder S14 complex and Bulldog 6 revolver-type grenade launcher. + + + VOG-25 + + + PSO-1m scope + + + A common Soviet-made 5.0x fixed zoom optical scope with a range scale. Attached to weapons by means of a dovetail mount, which is standard in Warsaw Pact countries. + + + PSS-2x scope + + + A 5.0x fixed zoom optical scope with a built-in heat visor used to identify heat sources typical of the human body. Designed for use by special forces. Attached to weapons by means of a dovetail mount. + + + NSPU-3 scope + + + An image intensifier night vision 5.0x fixed zoom scope for combat in darkness. Attached to weapons by means of a dovetail mount. + + + SUSAT 4x scope + + + An adjustable long-range 1.6-4x zoom scope that can use automatic adjustment to provide greater fire effectiveness. Attached to weapons by means of the NATO-standard Picatinny rail. + + + A 4x fixed zoom scope produced primarily in Western countries. Attached to weapons by means of the NATO-standard Picatinny rail. Often used for accurate fire from small arms at medium to long range. + + + SUSAT Twilight x1.6 scope + + + An optical SUSAT 1.6x higher contrast scope for combat in reduced lighting conditions. Attached to weapons by means of the NATO-standard Picatinny rail. + + + SUSAT Night x4 scope + + + A 4.0x fixed zoom scope with a night vision device for long range combat in darkness. Attached to weapons by means of the NATO-standard Picatinny rail. + + + SUSAT 1.6x scope + + + An optical SUSAT 1.6x scope for combat at short to medium range. Attached to weapons by means of the NATO-standard Picatinny rail. + + + PSU-1 scope + + + A 2.7x optical scope for urban combat at medium range. Attached to weapons by means of a dovetail mount. + + + Silencer + + + An effective silencer which can be modified on the go as required. The body of the silencer around the barrel contains a roll of fine brass mesh, while the front comprises a set of metal diaphragms with holes for the bullet to pass through. The set includes adaptors and sealants for most weapons. Normally used to thin out enemy ranks without drawing attention. + + + F1 grenade + + + A defensive hand grenade, with fragments capable of piercing medium level body armor. The grenade has a 7 meter kill radius. Stalkers get F1 grenades from trading with the military, who write them off as having been used for fighting mutants. + + + GP-25 Koster + + + A single shot, front loaded, rifled underbarrel grenade launcher for assault rifles made in Warsaw Pact countries. The firing mechanism is self-cocking, with a manual safety catch and automatic shot prevention if incorrectly installed onto a rifle. Uses VOG-25 grenades. + + + M203 + + + A modified M203 grenade launcher that has been shortened by three inches, attached to weapons by means of a Picatinny Rail. Thanks to a changed mount, this grenade launcher is widely used around the world. + + + RGD-5 grenade + + + An offensive hand grenade with a small kill zone of 5 meters. Often used by stalkers to "smoke out" mutants due to its relatively low cost. + + + Smoke grenade + + + A hand smoke grenade. Used to put up smoke screens. Once the grenade is thrown it takes 10 seconds for the smoke screen to expand. + + + Knife + + + AC-96/2 + + + AKM-74/2 + + + AKM-74/2U + + + Martha + + + Sawed-off Shotgun + + + A sawed-off hunting shotgun with two side-by-side barrels, making it lighter and more compact than a full shotgun. One of the most popular weapons among bandits due to its combination of ease of concealment and extreme effectiveness in close combat. + + + Kora-919 + + + Steppe Eagle + + + A hand-made pistol based on the Black Kite design. The components are finely tuned to achieve incredible accuracy for a handgun of this type. + + + Black Kite + + + FT-200M + + + Fora-12 + + + GP37 + + + Gauss rifle + + + Tunder S14 + + + This assault rifle combined with a grenade launcher, which is similar to the AKM series, was specially developed for rapid response units. The main differences are its 9x39 caliber ammunition, bullpup layout and extensive configuration options. This weapon is highly valued by military stalkers due to its ability to kill enemies wearing body armor behind improvised cover at a distance during urban combat, as well as its excellent stopping power. + + + Storm + + + An experimental version of an assault rifle and grenade launcher system, a Russian modification of the standard Tunder S14, this weapon was specially designed for units operating in the Zone. Notable for its increased magazine capacity. + + + HPSS-1m + + + A modified model of a pistol from the first half of the 20th century, which is as reliable, powerful and accurate as the original. Pistols of this series deserve their reputation as one of the best handguns of the 20th century and are in great demand in the Zone. + + + IL 86 + + + TRs 301 + + + Viper 5 + + + This submachine gun has gained popularity around the world thanks to its reliability, ease of use and accuracy. Over the last few decades the Viper 5 was in service with special armed forces and police units worldwide. Not surprisingly, having flooded the global black markets, it eventually made its way to the Zone. + + + Frasier + + + A submachine gun prototype based on the excellent Viper 5 model. Designed as a next generation close quarter combat weapon, it benefits from a higher caliber, rate of fire and accuracy. + + + PB-1s + + + Zulu's RP-74 + + + This weapon was previously owned by Zulu. Its special features include an enlarged ammo box and a particularly reliable retracting mechanism design. The modifications meant an increase in the weapon's weight, but that wasn't a problem for the last owner. + + + PMm + + + Honorary PMm + + + An ancient PMm received by Degtyarev as a reward for "Successful execution of highly dangerous state orders, as well as valor and courage shown in the line of duty." + + + Eliminator + + + Bulldog-6 + + + This revolver-type grenade launcher uses six rifled front-loading barrels, identical to underbarrel launcher attachments. The drum is also front-loading. Widely used for rapid suppression of enemy firing positions and, when in the open, attacking defended fixed targets or fighting particularly tough monsters. + + + RP-74 + + + This belt-fed machine gun is a portable modification with a complex two-stage feeding system. Despite its weight and low precision, this LMG has found admirers in the Zone. Used primarily to fight off outnumbering enemy forces during faction conflicts and clear out mutant lairs. + + + RPG-7u + + + SIP-t M200 + + + Alpine + + + A unique model of the SIP-t M200 handgun. Part of a small limited edition made for an unidentified special forces unit. The model benefits from an increased magazine capacity, a high durability steel barrel and an ultradurable polymer receiver. + + + SGI-5k + + + A relatively new assault rifle that has quickly found admirers around the world, despite lacking a "trendy" design. Weapons of this series are one of the best in their class, renowned for their reliability, accuracy and ease of use. Despite being relatively difficult to obtain in the Zone, this assault rifle is often ordered by experienced stalkers at considerable expense. + + + Strelok's SGI-5k + + + A Swiss-made SGI-5k assault rifle. Although it is hardly new, it is clear that the previous owner took good care of it: the weapon has been taken apart and put back together, with every component fine-tuned for optimum performance, increasing stopping power. The letter "S" has been carved into the stock, along with 16 small notches. + + + SPSA-14 + + + SPSA-AUT + + + The SPSA-AUT self-cocking shotgun is made only in Duty workshops. This weapon is intended for fighting large groups of mutants. Its improved feeding mechanism ensures a high rate of fire and the magazine capacity has been increased to 10 rounds. Uses 12x70 caliber rounds. + + + Carabineer + + + An army shotgun designed specifically for assault units on the basis of the SPSA-14. Capable of automatic fire like its predecessor, but provides better recoil compensation thanks to a balanced shock free system. + + + SVDm-2 + + + An army sniper rifle that has been on the market for more than fifty years and has earned its reputation for exceptional reliability and ease of use. The SVDm-2 is normally used by the army to improve the effective range of its units, but stalkers respect this weapon for its armor-piercing properties, which allow it to penetrate mutant hide and army body armor. + + + Lynx + + + A hand-assembled version of the SVDm-2 sniper rifle. No different in appearance, it nonetheless provides an ideal combination of accuracy and stopping power. + + + SVUmk-2 + + + SVU2-A + + + This shortened sniper rifle with an increase rate of fire is the next step in the evolution of the SVUmk-2 sniper rifle. This weapon used to belong to Max, the legendary guardian of Freedom. + + + Hunting shotgun + + + This extremely common over-and-under hunting shotgun can offer better protection against mutants than a pistol, thanks to its accuracy and stopping power. Used mostly by rookies on the outskirts of the Zone. + + + Unidentified weapon + + + An unknown weapon, the firing mechanism of which has not been established. The weapon appears faulty - squeezing the trigger doesn't do anything. + + + UDP Compact + + + Impeccable reliability and durability combined with excellent accuracy are the main noteworthy features of this weapon. Its minor drawbacks include its considerable size, relatively high center of gravity and massive bolt, which make it difficult to conceal but do not outweigh the weapon's positive features. The weapon is especially popular with the Zone's veterans. + + + March + + + A compact, large caliber pistol with short bolt movement and lightweight bolt assembly. Used to belong to a mercenary called Wolfhound. Appears to be a modified UDP Compact pistol. + + + SA Avalanche + + + Vintar BC + + + A special military sniper rifle purpose-built for silent, flashless sniping during special operations where early detection of the shooter may be critical. The Vintar BC provides high armor-piercing capability and stopping power, as well as being equipped with an integrated sniper and optical scope. Highly rated by many stalkers despite its small magazine. + + + Tide + + + A weapon made for military units on the basis of the silent sniper rifle. The rifle has higher stopping power than the Vintar BC, its predecessor, at the expense of its rate of fire, which allows the shooter to eliminate enemy forces one by one without revealing his position. + + + Walker P9m + + + Chaser 13 + + + A Western smoothbore shotgun that is extremely popular around the world thanks to its amazing reliability and faster reloading speed. Particularly valued for its functionality by the Zone's hunters. All of its parts are coated with an anticorrosion compound. + + + Predator + + + A tailor-made pump-action shotgun which used to belong to Trapper. The hunter's only requirement in respect of his weapon was that it needed to kill predators in one shot. This philosophy was based on the belief that no matter how many people an animal had killed, it was still just an animal, and thus should not suffer. + + + Homemade batteries + + + SUSAT Mera scope + + + A modern assault rifle developed as a replacement for the ageing AKM 74/2. The main difference is its high speed 2-round burst firing mode, which allows two bullets to be fired at exactly the same spot on a target up to 100 meters away. This significantly increases the likelihood of hitting the target in comparison to the 1 round firing mode, which considerably improves kill potential, stopping power and armor piercing capability. + + + This weapon, designed in 1974, signaled the adoption of small caliber and low impulse rounds by Warsaw Pact countries. A descendant of the most popular assault rifle in the world, the AKM-74/2 has an even bigger muzzle brake, resulting in a reduction of what was already manageable recoil. This facilitates better accuracy and groupings, especially when fired in fast single shots or bursts. As before, the rifle is very simple and reliable. + + + Despite being similar to submachine guns in size, weight and tactical purpose, this weapon is classified as an assault rifle due to the fact that its internal mechanism is identical to that of the AKM 74/2. The weapon is notable for its mobility in close quarters and high armor-penetration capacity, while its drawbacks are its short effective range, despite the relatively long bullet range, a tendency to overheat and high ricochet propensity. + + + An improved version of a classic automatic pistol, which passed all the major armed conflicts of the 20th century with flying colors and entered the new millennium with confidence. Produced by dozens if not hundreds of arms manufacturers around the world in both standard and modified configurations. The weapon’s only drawback, its mediocre magazine capacity, is largely compensated by the hard-hitting ammo it uses. + + + The ultimate hand cannon - bulky, heavy and highly lethal. Developed as a specialized weapon for hunting medium-sized and large game, as well as for shooting competitions involving firing at steel body targets at distances over 50 meters. Its limited use in the Zone can be attributed to its price, size and weight, which are all double those of other pistols. + + + This futuristic-looking weapon with a bullpup layout is actually a mass produced modular system, comprising a rifle & grenade complex with a computerized fire control system and a 40-mm grenade launcher. Despite its bulky appearance, the weapon is highly ergonomic, easy to use and benefits from good technical characteristics. + + + A Ukrainian-made pistol predominantly used by law enforcement organizations. Provides higher accuracy, better ergonomics and has a larger magazine than the PMm. These pistols make it into the Zone in large numbers thanks to the sale of defective weapons, which suffer from technical miscalculations in early design models. Despite this, the pistol is in demand among stalkers thanks to its good combat characteristics. + + + A new addition to the Western-made assault rifle family, which differs significantly from previous models in the series built on an automatic foundation with a semi-open bolt assembly, this weapon is more like American automatic gas-operated assault rifles with a short-stroke gas piston system. These changes ensure that the rifle is a first-rate example of a modern weapon - lightweight, reliable and ergonomic. + + + This rifle’s considerable number of drawbacks caused most of these weapons to be modernized, with the retired stock making its way to the Zone via the black market. The rifle's main advantages are its built-in 4x scope, high single-shot accuracy and reliable upgrade technology. When the weapon is fired in bursts, its accuracy decreases significantly and the rifle's basic internal mechanisms become somewhat unreliable. + + + A new step in the development of this famous weapon family. The changes were made to the upper half of the steel construction comprising the barrel, gas tube and bolt assembly, reducing the weapon’s weight, improving ergonomics and its gas system. The weapon is highly accurate, although its propensity to catch dirt makes it a poor choice for the Zone’s difficult conditions. + + + This pistol was developed in the second half of the 20th century on the basis of the PMm for use by special forces and scouting units. The front of the pistol’s barrel is covered with an integrated silencer, while the bolt mechanism is short, which prevents a back-moving spring from being located inside it, and it is therefore situated in the weapon’s handle. Morally obsolete, the weapon is still effective in the right hands. + + + This Soviet legacy is the most common pistol in the Zone and is one of the best compact self-defense handguns available. It is small, highly reliable, easy to use and maintain in working order. It also suffers from several drawbacks, including its short range, low firing accuracy and poor stopping power, while also losing out to modern pistols in its class in terms of weight and magazine size. + + + A smoothbore combat revolver-type shotgun intended to provide extreme firepower for militarized units. The weapon benefits from a large magazine and a high effective rate of fire, but its bulkiness and considerable weight, combined with a long reload time, are the price to be paid for these advantages. Rare in the Zone and is used primarily to clear closed spaces of mutants. + + + This grenade launcher from the 1960s made its way into the Zone from army depots. The weapon is a smoothbore single-shot recoilless launch system with an open-rear tube. Comes with a PGO-7 x2.7 optical scope. Although its huge size and weight make it an unlikely choice for stalkers, given its huge destructive power and ease of use, it has found admirers in the Zone. + + + The only remaining mass produced model of a globally renowned pistol, this weapon has earned a reputation for its excellent ergonomics and accuracy, and while its magazine is relatively small, it benefits from powerful ammo and a mechanism that functions like a Swiss watch. Some believe the SIP-t M200 to be the best mass produced .45ACP caliber handgun there is and it has certainly got a following among experienced stalkers and mercenaries. + + + This special purpose smoothbore automatic shotgun was designed in the second half of the 20th century and comes with pump-action and self-cocking firing modes. Used as an all-purpose weapon by the police and assault troops. Notable for its reliability and tactical flexibility. Despite its large weight, complex mechanism and considerable cost it is in demand in the Zone due to its effectiveness against mutants. + + + A modernized version of the SVDm-2 sniper rifle in a compact bullpup design made on the order of rapid response forces. It allows faster precision fire and is considerably lighter, while its single shot firing accuracy at short and medium range is similar to that of its predecessor. These qualities have earned it the admiration of countless stalkers. + + + A modified version of the silent Vintar BC sniper rifle, this assault rifle was designed as a special forces weapon. The rifle’s primary purpose is effective fire against enemies employing modern personal protection equipment without disclosing the shooter’s location. Thanks to its integrated silencer and 9x39 caliber round with a heavy subsonic bullet, the weapon’s noise and muzzle flash have been reduced to a minimum. + + + A super-accurate hi-tech weapon known as item 62, this rifle was developed in secret laboratories located inside the Zone. The weapon operates by accelerating bullets to extremely high speeds using a system of electromagnets, which provides incredible stopping power with virtually no recoil. The weapon is powered by using capsulated artifact fragments in the batteries. + + + Martha pistols enjoy the reputation of a relatively reliable, albeit somewhat cumbersome weapon, around the world. In service with armed forces and police across the ocean, as well as various military and law enforcement organizations worldwide. The pistol is equally popular with members of the underworld, thanks to its powerful round and magazine capacity. Marthas found in the Zone are usually dated, probably from retired stock. + + + An excellent Western pistol known for its reliability, high capacity magazine and good accuracy, as well as being among the most ergonomic handguns in its class. One of the most widely used pistols in the Zone, both among professionals and rookies who can afford it. + + + Batteries that use a capsulated fragment of the Flash artifact as their power source. Manufactured using hi-tech equipment. + + + These lower-capacity cells use capsulated fragments of the Flash artifact as their power source. Their lower capacity is due to makeshift production conditions and lack of specialized equipment. + + diff --git a/gamedata/configs/text/eng/st_items_weapons_upgrades.xml b/gamedata/configs/text/eng/st_items_weapons_upgrades.xml new file mode 100644 index 0000000..0f824de --- /dev/null +++ b/gamedata/configs/text/eng/st_items_weapons_upgrades.xml @@ -0,0 +1,2022 @@ + + + + Flatness + + + Caliber + + + Recoil + + + Reliability + + + 1.6x reflex sight + + + 4x optical scope + + + Silencer + + + underbarrel mount + + + Weight + + + External threading allows a silencer to be installed. + + + External threading of the barrel + + + Installation of a mount for attachment of an optical scope. + + + Optical mount + + + Installation of a mount for attachment of an underbarrel grenade launcher. + + + Underbarrel grenade launcher mount + + + Replacing a standard magazine with a bigger one. + + + Increased magazine capacity + + + A complex, integrated alteration of the weapon's mechanical and automated parts, which allow its caliber to be changed at the cost of reliability. + + + Change of caliber to 5x45 + + + A complex, integrated alteration of the weapon's mechanical and automated parts, which allow its caliber to be changed at the cost of reliability. + + + Change of caliber to 5x56 + + + A complex, integrated alteration of the weapon's mechanical and automated parts, which allow its caliber to be changed at the cost of reliability. + + + Change of caliber to 9x18 + + + A complex, integrated alteration of the weapon's mechanical and automated parts, which allow its caliber to be changed at the cost of reliability. + + + Change of caliber to 9x19 + + + Magazine capacity increase without increasing weapon part length + + + Magazine capacity increase + + + A lighter yet higher-capacity polycarbonate box magazine, which offsets some of the weight increase. + + + Increased box magazine capacity + + + Increased number of titanium plates considerably improves body armor durability. + + + Additional aluminum/titanium plates + + + Reinforced plates that last longer, but are not more durable. + + + Kevlar plates + + + An aluminum & titanium alloy allows the weight of titanium to be reduced for use in personal protection equipment. + + + Aluminum & titanium plates + + + Titanium is normally too heavy to be used in personal protection equipment, but is sometimes utilized in exoskeletons. + + + Solid titanium components + + + Replacing metal with carbon fiber allows the weight of body armor to be reduced without sacrificing reliability. + + + Replacing metal body armor components with carbon fiber + + + Kevlar is one of the most commonly used materials in body armor. + + + Kevlar plates + + + Polycarbonate is capable of stopping a pistol bullet, while remaining as light as plastic. + + + Polycarbonate plates + + + Ceramic plates don't last long but they're more reliable than Kevlar thanks to improved bullet impulse negation. + + + Installation of ceramic plates + + + Simple steel plates sewn into a trench coat. + + + Steel plates + + + A ceramic outer layer can deflect armor piercing bullets that impact at an angle and cause armor piercing bullets that make a direct impact to crumble into fine dust. + + + Ceramic body armor outer layer + + + Additional internal armor layer in case the outer layer is damaged. + + + Duplicate protective plate layer + + + Armor with an inner layer that spreads impact over a greater area. + + + Addition of a compensation element + + + The frame is capable of stopping a pistol bullet if the main body armor is damaged. + + + Additional armored frame + + + Thinner sheets of armor are layered to increase the armor's wear-resistance. + + + Segmented protection + + + While more plates don't mean improved protection, they do guarantee better durability. + + + A second, backup layer + + + Mobile plates protect joints from gunshot wounds. + + + Installation of mobile protective plates for joints + + + A lighter aluminum frame for plates to replace the steel frame. + + + A lighter aluminum frame + + + Thickened inserts to reduce the force of bullet impacts felt through body armor. + + + Thickening leather inserts + + + Additional ceramic layer with silicon amortization. + + + Reinforced ceramic plates + + + Use of lighter materials to reduce body armor weight. + + + Installation of lighter synthetic and plastic components + + + While solid titanium plates are much too heavy for an infantry soldier to drag around, an exoskeleton with its powerful servomotors can handle the weight. + + + Cuirass titanium armor + + + SBK-RKhZ.m.II - a special radiochemical protection combat bodysuit, mark two. + + + SBK-RKhZ.m.II airtight radiation protection bodysuit + + + This labor-intensive and time consuming upgrade is not very popular, although it has been known to save lives. + + + Sewn-in chainmail shirt + + + The Scale comprises overlaying ceramic plates that prevent the wearer from being hit in the same place. + + + Deflective ceramic Scale modification + + + Once treated with Sovereign, the bodysuit becomes virtually invulnerable to mechanical damage and fabric splitting. + + + Treatment with Sovereign holding compound + + + Ceramics considerably soften bullet impact by deflecting it onto fragments that break off. + + + Application of a ceramic layer onto plates + + + Reinforced matrix that uses beryllium instead of aluminum is one of the most reliable ways of protecting infantry soldiers. + + + Ceramics considerably soften bullet impact by deflecting it onto fragments that break off. + + + Ceramic layer on plates + + + Carbon fiber is one of the most durable and wear-resistant materials that is even used in aviation construction. + + + Combined multi-layered polymer and ceramic coating. + + + Screen combined plate coating + + + Domestic technology and one of the latest developments in the field of personal protection - the growing of artificial sapphires. + + + Adjustment of components allows the weapon to last longer without jamming. + + + Component adjustment + + + The fashion for plastic components has not only paid off, but it has also become quite a popular upgrade. + + + Poly-material components + + + A low impulse firing mechanism ensures less recoil than older versions. + + + Low impulse firing mechanism + + + Thanks to firm positioning of the round as it is fired, the bullet continues on a straight path and hits the target. + + + Installation of a round positioning unit + + + Often used in weaponry, a roller locking system reduces recoil and improves groupings. + + + Semifree bolt with a roller system + + + Installation of an additional gas cylinder reduces weapon load, which allows the rate of fire to be increased significantly. + + + Installation of an additional gas cylinder + + + A gas motor is used in self-cocking shotguns for semi-automatic fire. + + + Gas motor installation + + + Protective sputter makes misfiring due to mechanism malfunction impossible. + + + Protective component sputter + + + When a shot is fired, a component opens a path into the barrel and returns to the closed position by means of a lengthwise sliding movement of the foregrip. + + + Barrel closing system + + + An inertial automatic system allows the pump-action mechanism on regular shotguns to be converted into a self-cocking one. + + + Installation of an inertial automatic system + + + A unified blowback module is one of the best technological solutions for reducing recoil. + + + Unified blowback module + + + An automatic driving rod improves a weapon's precision. + + + Installation of an automatic driving rod + + + An active counter-weight moves from the bolt frame, partially compensating for recoil. + + + Addition of an active counter-weight + + + Installation of additional roller parts reduces recoil. + + + Installation of a blowback roller compensation system + + + Replacement of the weapon's bolt mechanism with a more suitable design, which improves the rate of fire. + + + Open bolt firing systems + + + When the weapon is fired, the bolt frame counter-weight moves in the opposite direction to the bolt, which allows for more comfortable firing of the machine gun. + + + Installation of a self-regulating counter-weight + + + A counter-weight is installed as an additional component into the receiver to reduce recoil by means of counter force. + + + Addition of a mobile counter-weight + + + The fashion for polymer components has not only paid off, but it has also become quite a popular upgrade. + + + Impact-resistant polymer components for automatic elements + + + Installation of a special mechanism to protect the weapon from dirt. + + + Automatic two-position gas regulator + + + A special component seals the barrel in an airtight manner to increase pressure when a shot is fired. + + + Installation of a barrel closing device + + + Synchronization is achieved by means of a cog, which allows flatness to be increased. + + + Rod movement synchronization + + + A component installed on the rear side of the receiver that reduces bolt speed. Installed to improve effectiveness of aimed fire. + + + Inertia delay mechanism + + + A special component installed into the bolt mechanism to soften bolt movement and reduce recoil. + + + Addition of a blowback speed reduction device + + + An integrated improvement that is normally used for sniper rifles in view of the considerable increase in the weapon's weight. + + + Built-in recoil amortization system + + + Installation of a mechanism with mobile components that increase round feeding speed when the weapon is fired. + + + Automatic round feeding + + + Upgrade of the weapon's automatic components that requires a number of parts to be replaced. Improves accuracy. + + + Balanced impact-free system + + + A synthetic component immediately in front of the bolt movement area, which compresses it significantly to improve firing accuracy. + + + Addition of a stopping device + + + A link fixes the position of the barrel and if the barrel moves, additional compensation holes are opened. + + + Installation of a "smart compensation" component + + + Modernization that allows the trigger mechanism to be smoother, which is important for snipers. + + + Installation of a trigger release regulation mechanism + + + This component allows the shooter to get a feel for the moment at which the shot is fired, improving firing accuracy. + + + Installation of an advance notice trigger + + + Often used in Western weaponry, a roller locking system reduces recoil and improves groupings. + + + Semifree bolt with a roller system + + + A special mechanism takes on some of the impact during firing, which makes shooting the weapon more comfortable. + + + Firing amortization system + + + As sniper rifles are more demanding in terms of maintenance than regular weapons, they can be upgraded with three-positional gas regulation devices. + + + Installation of an automatic three-position gas regulation device + + + Sputter prevents energy from dispersing, which increases bullet impulse. + + + Tuning of automatic parts using sputter + + + Installation of a long firing mechanism rod allows a sniper rifle to be fired in automatic mode. + + + Long firing mechanism rod system + + + A stopping device affects the blowback mechanism, improving firing precision. + + + Installation of a stopping device + + + Replacement of a regular barrel with a longer one improves accuracy and flatness. + + + Longer barrel + + + The lack of big gas chambers and barrel mounting on the foregrip has a positive effect on accuracy. + + + Installation of a "floating" barrel + + + This modification is used to reduce the harm caused by excessive firing rate modifications. + + + Installation of a barrel with cooling fins + + + Replacement of a dated component with a more modern one reduces recoil + + + Optimized compensation muzzle brake + + + Installation of a barrel with additional threaded canals improves bullet speed and weapon accuracy at the cost of a considerable increase in recoil. + + + Additional threaded canals in the barrel + + + This barrel is intended to increase the kill zone in close quarter combat and is therefore not suitable for accurate fire. Improves the rate of fire due to the simplification of the rifled part of the barrel. + + + Installation of a barrel with a simplified rifled section + + + Polygon rifling is usually performed to improve accuracy. + + + Installation of a barrel with a polygon rifled section + + + Allows barrel heat to be reduced and increases the rate of fire. + + + Sinusoidal rifling of barrel chamber + + + A peculiar barrel replacement for weapons with good flatness characteristics that improves their accuracy. + + + Rifled sniper rifle canals + + + High durability materials slow down wear and tear of the weapon's barrel. + + + High durability alloy barrel + + + Treatment of the internal surface of the barrel protects it from mechanical damage. + + + Treatment of the barrel + + + Synthetic thickening of the barrel cavity causes a considerable improvement in groupings. + + + Synthetic barrel thickener + + + Replacement of a regular barrel with a longer one improves flatness. + + + Longer barrel sections + + + The introduction of gas venting canals to the barrel not only prevents it from collecting dirt, but also partially redirects recoil into the barrel itself. + + + Longitudinal gas venting canals + + + Replacement of a regular barrel with a longer one improves flatness. + + + Longer barrel section + + + This sputter prevents the barrel from overheating, removes manufacturing defects and significantly increases the barrel's life cycle. + + + Application of a protective sputter to the internal part of the barrel + + + The barrel balancing system includes several mobile pistons that make a weapon more stable when held. + + + Barrel balancing system + + + The rifled part of the barrel makes it impossible to fire shot, but the accuracy achieved outweighs this drawback. + + + Rifled barrels + + + Thickening with poly-materials allows barrel pressure to be increased, improving bullet speed. + + + Dynamic barrel thickener + + + Cylindrical drilling of barrel helps to improve the weapon's rate of fire without affecting accuracy. + + + Cylindrical drilling of barrel + + + When the weapon is fired, an active counter-weight simultaneously moves to the muzzle section of the barrel, thus compensating for part of the recoil. + + + Addition of an active counter-weight to the barrel jacket + + + Replacement of a regular barrel with a longer one improves accuracy and flatness, but reduces the rate of fire. + + + Long barrel section + + + Barrel perforation causes a reduction in recoil with gas escaping via special holes. + + + Perforated barrel section + + + A more technological shortened barrel improves the weapon's rate of fire without sacrificing flatness and accuracy. + + + Shortened barrel section + + + Chrome plating improves the barrel's life cycle. + + + Chrome plating of the internal side of the barrel + + + Separators take on some of the recoil. + + + Addition of rubber separators. + + + A simplified rifled part is useful for close quarter combat where the emphasis is on the rate of fire rather than accuracy. + + + Installation of a barrel with a simplified rifled section + + + Installation of a barrel with additional threaded canals improves bullet speed and weapon accuracy at the cost of a considerable increase in recoil. + + + Additional threaded canals in the barrel + + + Unloading the barrel allows recoil to be reduced considerably. + + + Transferring the barrel compensator/flash reducer onto the frame + + + Allows barrel heat to be reduced and increases the rate of fire without sacrificing flatness. + + + Sinusoidal rifling of barrel + + + Polygon rifling is usually performed to improve accuracy of sniper rifles. + + + Installation of a barrel with a polygon rifled section + + + A pneumatic booster allows some of the recoil to be converted into higher barrel pressure, increasing muzzle velocity. + + + Pneumatic booster installation + + + Additional movement devices allow maximum carried load to be increased. + + + Additional servomotors + + + A development of Freedom technicians, who were the first to replace metal with carbon fiber in view of exoskeletons' huge weight. + + + Replacing metal components with carbon fiber + + + Armoring protects the exoskeleton's critical components from being damaged by accurate fire. + + + Drive device armoring + + + The easy movement system uses reinforced springs and joints, which allow the wearer to use the exoskeleton's own weight to ease motor functions. + + + Shagohod easy movement system + + + Installation of hydraulic boosters is a modification that separates third generation exoskeletons from the fourth generation. Allows for sprinting in an exoskeleton. + + + Addition of hydraulic boosters into drive devices + + + A fabric insert prevents soft tissue damage in the event of impact against the plate. + + + Amortization fabric layer + + + More effective that their rubber counterparts, silicon thickeners absorb impact with less damage to the wearer. + + + Amortization silicon thickeners + + + Fabric, clips and thickeners are replaced with lighter synthetic materials to reduce armor weight. + + + Lighter, synthetic and polymer materials + + + Rubberizing prevents soft tissue damage in the event of impact against the plate. + + + Amortization rubberized layer + + + The underlayer will help if the main fabric is torn. + + + A multi-layered polycarbonate, silicon and carbon fiber insert in case the main armor is penetrated. + + + Protective polymer inserts + + + Freedom's airtight Expanse bodysuit used to locate artifacts in anomalous areas. + + + Expanse anomalous protection bodysuit + + + Airtight layer of synthetic materials in case the external layer is damaged. + + + Synthetic layer + + + A number of ergonomic adjustments that use a rubber construction, which allow mobility to be retained even when wearing bulky armor. + + + A rubber mobility bodysuit + + + Constantan is capable of isolating against electricity and has a very high melting point. + + + Constantan thermal isolation inserts + + + Lead is a reliable defense against radiation because it absorbs all three types thereof. + + + Addition of lead to bodysuit + + + Basic protection against rain and caustic substances coming into contact with the skin + + + Canvas bodysuit + + + Fabric treated with a fire-resistant substance is popular among stalkers searching for fire artifacts. + + + Fabric treated with a fire-resistant substance + + + Magnesium inserts protect the wearer from thermal dangers. + + + Magnesium plate inserts + + + Even a simple plastic inner layer can protect the wearer from chemical and electrical hazard. + + + Airtight plastic inner layer + + + Fabric, clips and thickeners are replaced with lighter synthetic materials to reduce armor weight. + + + Replacement of fabric with synthetic materials + + + Plexiglass absorbs two types of radiation while being a lot lighter than lead. + + + Plexiglass inner layer for radiation protection + + + Reliable protection from chemical and electrical hazard. + + + An elastic airtight plastic inner layer + + + A thin layer of constantan is capable of isolating against electricity. + + + Constantan-based inner layer for isolation + + + Fiberglass is used in bodysuits worn by natural disasters response teams. + + + Thermal fiberglass protection + + + Impregnated fabric should prevent chemical poisoning. + + + Impregnated bodysuit fabric + + + Rubber is a basic way of protecting yourself from brief radiation exposure. + + + Rubberized bodysuit fabric + + + Used in stalker suits to improve durability. + + + Shield high durability protective frame + + + Nickel is sufficiently fire-resistant to be used for body armor inserts + + + Fire-resistant bodysuit with nickel inserts + + + This nickel and magnesium alloy is used in armor to prevent electric shocks. + + + An isolation bodysuit with manganin inserts + + + Airtight bodysuit with an anti-corrosion layer and Kevlar armor. + + + Second Skin integrated armored bodysuit + + + A bodysuit made using new unspecified polymers previously used by the Kiev research institute in developing the Ecologist suit with cavities filled with bismuth. + + + Ecologist polymer bodysuit with bismuth inserts + + + The lead mesh creates unbreachable radiation and chemical protection without sacrificing mobility. + + + Lifesaver plexiglass bodysuit with flexible lead mesh + + + A domestic development which appeared after the Chernobyl disaster. Used in exoskeletons to prevent electronic malfunctions. + + + Evacuator bodysuit with lead inserts + + + Mounting of an assault scope for close range combat. + + + 1.6x reflex sight + + + Mounting of an optical scope for medium and long range combat. + + + 4.0x optical scope + + + Mounting of an optical scope for long range combat. + + + 5.0x optical scope + + + Mounting of an optical scope for long range combat. + + + 6.0x optical scope + + + A modification made to assault weapons with reflex sights by means of a simple improvement in sight contrast in the yellow range. Important for combat in twilight conditions and dim buildings. + + + Improvement of sight contrast + + + A heat visor allows the wearer to detect and identify matching heat sources. + + + Automatic optical target acquisition + + + Night vision devices have saved many a sniper since their inception. + + + Night vision device installation + + + This modification allows the sight to be easily adjusted to the firing distance. + + + Adjustable range-finder sight + + + A pneumatic stock is used to reduce recoil during burst fire. + + + Pneumatic stock + + + A mobile shoulder rest considerably reduces recoil impact on the body. + + + Installation of an amortization shoulder rest + + + A more modern stock, which takes account of the specific nature of human physiology. + + + Ergonomic stock + + + When the weapon is fired, some of the powder gases are removed from the barrel into the cavity behind the bolt, ensuring that it stops smoothly on the way back. + + + Installation of a bolt assembly gas buffer + + + Partial lengthening of the bolt frame into the stock allows flatness to be increased at the cost of more recoil. + + + Lengthening the bolt frame shock buffer + + + Installation of a mobile component into the stock, which creates a counter-effect when the weapon is fired. + + + Mobile counter-weight + + + A larger rest allows for accurate fire. + + + Increased rest size + + + An amortization spring recoil buffer partially removes the discomfort experienced when firing a hand-held machine gun. + + + Built-in spring-based recoil buffer + + + A bolt assembly buffer position in the stock takes on and absorbs most of the recoil. + + + Additional bolt assembly gas buffer + + + A rubberized recoil-softening part is often used on factory-made stocks for large caliber sniper rifles. + + + Amortization stock component + + + An adjustable stock with a cheek pad is useful for firing from both convenient and inconvenient positions. + + + Adjustable stock with a cheek pad + + + A component for large caliber weapons with powerful recoil installed in the stock. + + + Hydraulic stock recoil buffer + + + Active filters can resist even corrosive chemicals. + + + Active filters + + + The closed band has been demonstrated to provide partial protection against direct psy-emissions. + + + A psy-protection band made of paired steel grills + + + A mask used in contaminated air or critical air temperature conditions, which are too low or too high for breathing. + + + Application of a screening coating + + + Application of a screening coating + + + A filter with a reinforced anti-corrosive coating with an additional preventing layer for removal of poisons + + + Filter for work in contaminated areas + + + A plexiglass mask can provide partial protection from radiation + + + Plexiglass coating + + + A plexiglass mask can provide partial protection from radiation + + + Plexiglass breathing mask + + + Respirator for total blocking of poisons + + + Impregnated breathing mask + + + This beryllium & aluminum matrix provides excellent protection without a significant increase in the helmet's weight. + + + Beryllium & aluminum plates + + + A beryllium & titanium matrix ensures more effective protection without a significant weight increase. + + + Beryllium & titanium plates + + + Improved filters maintain the same level of oxygen supply regardless of how contaminated the area is. + + + Installation of improved filters for scientific work + + + Hi-tech psy-protection that is said to have been invented by a scientist called Sakharov. + + + Installation of the Psy-Dome band + + + Protective alloy frame to prevent thermal and electrical damage. + + + Thunderbird constantan face armor + + + Additional armor to improve helmet durability. + + + Reinforced armored helmet body + + + A filter with an additional purification coating and a system for removal of poisons. + + + Reinforced respirator for extreme conditions + + + Installation of a night vision device for operations at night or in reduced lightning conditions. + + + First generation night vision device + + + A system for switching to closed cycle breathing in the event of critical air contamination with radioactive or chemical particles. + + + Radioactive and chemical threat prevention system + + + Steam purification & respiration mask + + + Installation of a more advanced night vision device for operations in complete darkness. + + + Second generation night vision device + + + A heat visor allows the wearer to detect and identify matching heat sources. + + + Automatic target acquisition system + + + Scientific wave-based device developed for work in anomalous areas with psy-emissions. + + + Oracle psy-stimulator + + + Installation of a more advanced night vision device for operations in complete darkness. + + + Third generation night vision device + + + Ionized air particles move between the system's electrodes in reverse to the movement of electrons using electricity, creating an ion wind. + + + Ion Wind cooling system + + + An infrared scanner allows for detection of nearby humans. + + + Infrared scanner + + + SPB - VPZ.m.IV Psychological Security Wave Psy Protection System, mark four. + + + SPB - VPZ.m.IV combat system + + + The reinforced spring is used to increase bullet speed. + + + Reinforced return spring + + + Installation of thickeners onto mobile parts of the mechanism ensure that the barrel deviates from the target less during firing. + + + Amortization of the return mechanism + + + Installation of an additional spring with a reverse coil to reduce recoil without sacrificing flatness. + + + Additional return spring + + + Protective sputter increases reliability and, more importantly, ensures airtightness, which prevents energy dissipation. + + + Protective return mechanism component sputter + + + Titanium rods can endure a much higher rate of fire than regular rods. + + + Titanium return mechanism rods + + + A synthetic element installed onto rods ensures that they move strictly as intended, increasing accuracy. + + + Addition of a balancing element + + + Thickening of the sleeve allows barrel pressure to be increased, improving bullet speed. + + + Return mechanism sleeve thickener + + + A link that is opened by gases and closed by the return mechanism itself, which allows part of the gas energy to be used to operate the return mechanism. + + + Installation of a distribution link + + + Replacement of the return mechanism with a more powerful version comprising two guiding rods and return springs. Increases the weapon's rate of fire. + + + Conversion to a two rod system + + + Special gas exit canals around the drum part of the weapon that reduce recoil. + + + Use of gas energy + + + Addition of diagonal cam slots onto the drum, which speed up rotation of the mechanism which uses gas energy. + + + Addition of diagonal cam slots onto the drum + + + The advantage of this European standard modification is reduced weight without a fall in reliability. + + + Impact-resistant polymer stock + + + A high durability receiver helps assault rifles endure combat conditions on a daily basis. + + + High durability alloy receiver + + + A simple addition of weight to the front of the receiver to reduce recoil. + + + Addition of counter-weight to the steel box + + + Installation of jackets helps to address increases in the weapon's rate of fire, which produce additional heat that must be controlled. + + + Additional cooling jacket + + + A more convenient handle shape, which allows for better handling of the weapon when firing on the move. + + + Ergonomic receiver shape + + + A modification used exclusively for barrels with solid bullpup receivers, which simplifies maintenance of the weapon. + + + Modular receiver + + + This sputter prevents the barrel from overheating, removes manufacturing defects and significantly increases the barrel's life cycle. + + + Smoothing receiver groove and indent sputter + + + A light mobile component is installed in the inclined handle to stabilize the weapon by creating a counter-effect to recoil when the weapon is fired. + + + Inclined handle + + + The cavity inside the handle allows the weapon's weight to be reduced. + + + Inclined handle + + + Lighter version of the standard stock. + + + Lighter stock + + + A lighter poly-material allows the weapon's weight to be reduced. + + + Impact-resistant polymer stock + + + Addition of a mass component to the weapon to reduce recoil. + + + Addition of a counter-weight + + + A more modern and comfortable handle simplifies weapon handling. + + + Ergonomic handle + + + An amortization handle reduces recoil. + + + Amortization handle + + + A more modern and comfortable stock simplifies weapon handling. + + + Ergonomic stock + + + A special coating protects the weapon from the elements. + + + Anti-corrosive coating + + + A mercury recoil absorber is located in the weapon's stock, partially consuming some of the recoil when the weapon is fired. + + + Mercury recoil absorber + + + A free-moving impulse counter-weight component, which moves from the bolt when the weapon is fired and absorbs some of the recoil. + + + Addition of an impulse counter-weight + + + A change of material reduces barrel damage from uneven heating during firing, which allows the weapon's rate of fire to be increased. + + + High-durability, thermal resistant alloys + + + An important modification that protects the weapon from air temperature effects during firing + + + Addition of thermal regulation jackets + + + A technological improvement, finning requires extreme precision to prevent the formation of overheating points on the barrel. + + + External barrel finning + + + Replacement of the barrel with a more modern version allows for a considerable increase in accuracy. + + + Changing barrel geometry + + + An expensive frame for a weapon that will serve a long time. + + + Titanium frame + + + In this case the frame is more reliable than composite. + + + Solid steel frame + + + A technical replacement of the pistol frame with a lighter one does not affect the weapon's reliability. + + + Polymer pistol frame + + + A more modern and comfortable handle simplifies weapon handling. + + + Ergonomic handle + + + An amortization handle reduces recoil. + + + Amortization handle + + + Protective thickening flaps should protect the weapon from dirt and impact. + + + Protective body thickeners + + + A change in the rear section makes for a more ergonomic handle shape. + + + Changing handle shape with a straight rear section + + + The possibility of choosing a suitable handle length makes for a more ergonomic handle shape. + + + Adjustable handle + + + This modification is only possible if a return spring has been installed into the handle. + + + Installation of a return spring amortization component + + + The possibility of choosing a suitable plate makes for a more ergonomic handle shape. + + + A handle with a changed shape with replaceable plates + + + Intended for weapons that are used often, the jacket protects them from early wear. + + + Installation of a perforated steel jacket + + + A more technological and more recoil dampening component than used in regular automatic weapons. + + + Effective compensation muzzle brake + + + A more modern and suitable barrel for sniper fire at very long range. + + + Installation of a heavy barrel section with polygon rifling + + + Longitudinal fullers of the barrel section prevent the barrel from overheating and dirt contamination. + + + Longitudinal fullers of the barrel section + + + Integrated silencer and flash suppressor, essential for stealth fire. + + + Installation of an integrated silencer + + + Sinusoidal rifling of the barrel chamber is usually performed on assault weapons to increase their rate of fire. + + + Sinusoidal rifling of barrel chamber + + + Generation A injector, developed by one of Kiev's research institutes, regularly injects the bloodstream with tiny doses of adrenalin, which may be dangerous but may also save your life in an emergency. + + + Fury adrenalin injector + + + A system for removal of condensate with poisons from the purification filter. + + + A system for removal of poisons + + + A Clear Sky development, this small wave emitter is mounted on the back, effectively increasing blood clotting speed when worn constantly. + + + Ray hemostimulator + + + A system that supplies electricity to the suit's exterior, repelling radioactive and chemical particles. + + + A built-in dust repellant system + + + Generation B injector, which regularly introduces a coagulation agent into the bloodstream when blood pressure drops significantly. + + + Hydra hemoglobin injector + + + By maintaining optimal body temperature, this system prevents exhaustion. + + + Installation of a thermal regulation system + + + This wave emitter is mounted on the chest and considerably increases wound healing speed, immune system strength and the wearer's pain barrier when in constant use. + + + Sun biostimulator + + + Scientific wave-based device developed for work in anomalous areas with psy-emissions. + + + Oracle psy-stimulator + + + Generation C injector that introduces a combat mix of dubious content into the bloodstream, improving tissue regeneration and removing pain. + + + Phoenix restoration system + + + An integrated system that monitors the wearer's health and supplies vitamins, adrenalin or anabolic substances as required. + + + Installation of a life support system + + + This wave emitter is mounted on the neck, and while its mechanism and method of operation are unclear, it has a strong calming effect. + + + Reflection neurostimulator + + + The purpose of the bolt hammer compensator is to absorb some of the recoil, improving groupings when firing in bursts. + + + Bolt hammer compensator + + + One of the simplest and most popular modifications, which allows trigger resistance to be reduced. Simple and handy. + + + Soft release + + + A special selection of components made from various materials specific to that weapon. It may not be cheap, but it increases the life cycle of your firearm. + + + Composite firing mechanism components + + + Allows the rate of fire to be increased at the cost of accuracy and reliability. + + + Forcing trigger delay device + + + Removal of the combat spring allows the first shot to be made half a second earlier. It may not be much, but it can save your life. + + + Springless release + + + Protective sputter makes misfiring due to firing mechanism malfunction impossible. + + + Protective firing mechanism component sputter + + + Boltless fixing allows for automatic load to be increased, considerably improving the weapon's rate of fire. + + + Boltless fixing of the firing mechanism + + + The impactless system pierces the round instead of striking it by means of a special hammer, which makes the firing process considerably softer. + + + Installation of an impactless firing mechanism system + + + The trigger is armed by the first shot, with all other shots occurring during automatic trigger arming. + + + Double trigger firing mechanism + + + One of the simplest and most popular modifications, which allows for trigger resistance to be reduced. Simple and handy. + + + Soft release + + + Partial arming allows firing accuracy to be improved. + + + Firing mechanism with partial pre-arming + + + Allows the same pressure to be applied to the trigger from the first to the last shot, which has a positive effect on ease of use. + + + Safe release device + + + A modern modification which prevents the weapon from bolt section detachment. + + + Increased trigger bolt head + + + A modular firing mechanism provides easier maintenance and parts replacement, as well as certain improvements in ease of use. + + + Modular firing mechanism + + + The arming component considerably reduces the amount of pressure required on the trigger, improving accuracy. + + + Installation of an arming component + + + A new technological development that allows a simple adjustment to change the firing mechanism mode - another step towards better ergonomics and easy weapon adjustment. + + + "Double" firing mode + + + Once the first shot is fired, half the trigger movement is required to make subsequent shots. + + + Short movement firing mechanism + + + Additional movement devices allow for maximum carried load to be increased. + + + Additional servomotors + + + The system supplies anti-tetanic, anti-inflammatory and streptocide substances. + + + Field Doctor built-in system + + + A bodysuit ventilation system with a prevention filter for work in contaminated areas. + + + Internal thermal regulation system + + + An ergonomic improvement: special mounts attached to the bodysuit allow for carried weight to feel lighter. + + + Weight distribution vest + + + An oxygen tank is required in areas with air contaminated by chemicals or radioactive particles. + + + Installation of an oxygen tank + + + Installation of an additional artifact container. + + + Additional artifact container + + + A system of mounts allows for weight to be distributed onto the whole body more evenly. + + + A mount system for weight distribution + + + A back frame relieves focused shoulder load from carried weight by distributing it over the body, which increases maximum load. + + + A weight distribution back frame + + + A system used to supply antiseptic, anti-tetanic and stimulating substances. Homemade, but doesn't seem to do any harm to the body. + + + Care built-in system + + + This system charges a special grate with an identical charge to that of the anomaly so as to reduce the threat. + + + Stingray electrostatic countermeasure system + + + Impregnated inner layer should prevent chemical poisoning. + + + Impregnated inner layer for chemical protection + + + An experimental model of a marathon running system, which is not used outside the Zone due to its high price and dubious application. + + + Athlete built-in system + + + This system removes poisons together with condensate from respirator cavities. + + + Antidote poison removal system + + + Installation of an additional artifact container. + + + Additional two-compartment artifact container + + + A combat support system built into the whole suit. Used rarely, primarily by the Spetsnaz. Comes preinstalled with adrenaline and blood clotting systems. + + + Varyag field support system + + + In this combat support system prototype, the designers opted against harmful adrenaline injections, instead including healing substances into the blood clotting system. + + + Skif field support system + + + This fairly expensive modification is actually common for new generation weapons. + + + Solid bolt installation + + + Thickening of the bolt section prevents energy dissipation, which improves flatness. + + + Bolt section thickening with synthetic inserts + + + Despite the name, it is the bolt that is replaced, as it has to endure the consequences of an improved rate of fire. + + + Rapid automatic release + + + Gas vent comes with a block that moves at the same speed, taking on part of the recoil. + + + Installation of a gas vent with a moving block + + + A second piston moves the counter-weight, compensating for the bolt mechanism movement impulse. + + + Installation of an additional gas piston + + + Protective sputter increases reliability and, more importantly, ensures airtightness, which prevents excessive energy dissipation. + + + Protective bolt section sputter + + + The purpose of titled grooves on the receiver is to reduce friction and catch small particles, preventing contamination of the bolt section. + + + Addition of a longitudinal grooves + + + Reducing the gas chamber diameter by means of synthetic thickeners considerable increases bullet speed. + + + Directed gas energy + + + On its way back to its starting position, the bolt redirects the air flow via the barrel chamber, cooling it. + + + Forced cooling + + + The weapon's bolt slides along the barrel, preventing upward movement of the muzzle section. + + + Creeping bolt installation + + + Installation of a gas pistol stops gases from entering the bolt frame, which considerably reduces weapon dirtiness. + + + Gas piston installation + + + This system collects some of the gases using the bolt section to improve its movement. + + + Gas energy collection system + + + A replacement of the automatic parts is more of an optimization than improvement of the gas piston. Provides a considerable increase in the weapon's rate of fire. + + + Short movement gas piston + + + Often used in modern weaponry, a roller locking system reduces recoil and improves groupings. + + + Change to a roller system with a semifree bolt + + + In absorbing some of the heat, the components reduce weapon temperature changes during firing. + + + Heat absorbing components + + + A longer movement of the gas piston slightly increases weapon length, with a serious improvement in flatness. + + + Long gas piston movement + + + A moving parts buffer evenly distributes recoil throughout the weapon when it is fired, making it less pronounced. + + + Installation of a special moving parts buffer + + + Symmetrical force cooling of a part of the barrel happens due to the work of an ejector and prevents weapon overheating. + + + Even forced cooling system + + + Provides an increase in rate of fire without overloading other parts through additional recoil. + + + Moving bolt section + + + Provides an increase in flatness thanks to improved transfer of impulse to the bullet. + + + Bolt section barrel closing system + + + Softens recoil by slowing down bolt section movement. + + + Slow bolt backward movement system + + + Sputter protects weapons from early wear. + + + Protective bolt section sputter + + + Improves flatness thanks to improved transfer of impulse to the bullet. + + + Barrel skew closing system + + + A heavier and closed bolt prevents the pistol's bolt section from malfunctioning. + + + Reinforced and fully closed bolt + + + A small buffer that takes on some of the recoil. + + + Polymer recoil buffer + + + Installation of a steel insert helps to reduce recoil. + + + Installation of a closing insert with a shaped spiral groove + + + By increasing bolt movement and reinforcing the return mechanism appropriately, you can improve flatness. + + + Increased bolt movement + + + Short movement considerably increases the weapon's rate of fire without sacrificing flatness. + + + Installation of a short bolt movement arrangement + + + Long bolt movement gives a bullet greater energy. + + + Installation of a long barrel movement arrangement + + + A replacement of the automatic parts is more of an optimization than improvement of the gas piston. This considerably improves the weapon's rate of fire. + + + Installation of a short movement recoil energy use arrangement + + + Installation of this module considerably improves groupings without sacrificing firing speed. + + + Combined two spring return module + + + Introduction of additional compensation holes brings about a significant reduction in recoil. + + + Integrated barrel lifting compensator + + + Modernization of the pistol's automatic parts suitable for automatic fire. + + + Fully automatic firing mode + + + Improvement of the pistol's automatic parts suitable for three round burst fire. + + + Three round burst firing mode + + + Cost + + + Cannot be installed + + + Installed + + + Are you sure you want to install: + + + Automatic target acquisition system + + + Automatic target acquisition system + + + x5 optical scope + + + x6 optical scope + + + Infrared scanner + + + Body armor weight + + + Second generation night vision device + + + Third generation night vision device + + + Optical scope mount + + + Integrated silencer + + + Underbarrel grenade launcher + + + Wound healing + + + Health restoration + + + First generation night vision device + + + Adjustable sight + + + High contrast sight + + + Servomotor boosters + + + Suit durability + + + It’s not clear how the weapon works. It can’t be repaired without additional information about its design. + + + The technician cannot perform this modification + + + This part has already been modified + + + Not enough money + + + Does not use shot + + + Automatic fire mode + + + 3-round burst mode + + + Number of containers + + + the technician needs vodka + + + the technician needs tools for basic work + + + the technician needs tools for fine work + + + the technician needs tools for calibration + + + the technician needs additional information + + + preceding modifications required + + + Armadillo protective coating based on sapphire crystals + + + Reinforced titanium & beryllium matrix + + + Extra carbon fiber coating + + + Rubberized cloth underlayer + + diff --git a/gamedata/configs/text/eng/st_land_names.xml b/gamedata/configs/text/eng/st_land_names.xml new file mode 100644 index 0000000..07ecd97 --- /dev/null +++ b/gamedata/configs/text/eng/st_land_names.xml @@ -0,0 +1,171 @@ + + + + Claw anomaly + + + Iron Forest anomaly + + + Sawmill + + + Krug antenna complex + + + Waste processing station + + + Circus anomaly + + + Ranger station + + + Skadovsk + + + Burnt farmstead + + + Boiler anomaly + + + Swamp + + + Izumrudnoye + + + Shevchenko + + + Dredge station + + + Dock cranes + + + Oakpine anomaly + + + Fuelling station + + + Old barge + + + Scar anomaly + + + Preobrazhensky bridge + + + Southern plateau + + + Substation workshops + + + Ash Heap anomaly + + + Cooling tower + + + Substation + + + Plavni anomaly + + + Cement factory + + + Kopachy + + + Yanov + + + Quarry + + + Scientists’ bunker + + + Volkhov AA complex + + + Anomalous grove + + + Parking lot + + + Checkpoint + + + Bitumen anomaly + + + Eastern tunnel + + + Container warehouse + + + Ventilation complex + + + Helipads + + + Concrete Bath anomaly + + + Jupiter plant + + + Prometheus movie theater + + + River port + + + Old service center + + + School + + + Hospital + + + Yubileiny service center + + + Laundromat + + + Kindergarten + + + Apartment complex + + + Grocery store + + + Department store + + + Book store + + + Volcano anomaly + + + Vine anomaly + + diff --git a/gamedata/configs/text/eng/st_mp_mapdesc.xml b/gamedata/configs/text/eng/st_mp_mapdesc.xml new file mode 100644 index 0000000..451be28 --- /dev/null +++ b/gamedata/configs/text/eng/st_mp_mapdesc.xml @@ -0,0 +1,126 @@ + + + + Vehicle station + + + A weird place. This silent building likely conceals its share of secrets, but stalkers are drawn here for another reason - a generous supply of artifacts found in this high risk / high reward area. Think fast and act fast, then luck will surely be on your side. + + + A weird place. This silent building likely conceals its share of secrets, but stalkers are drawn here for another reason - a generous supply of artifacts. + + + A depot, located at the entrance to the Zone. Its tractors, buses and trucks have stopped in their tracks for good... No artifacts have been spotted here so far, but the place is popular with raiders, who hunt down rookies and kill them for loot. Seek cover in buildings and behind vehicles, and watch out for enemies on rooftops! + + + A depot, located at the entrance to the Zone. Its tractors, buses and trucks have stopped in their tracks for good... + + + Deserted depot building and adjacent territory. Some equipment and supplies can be found here - if you look hard enough. Watch out for powerful anomalies and snipers on the roof of the depot - that is a great vantage point overseeing almost every approach to the area. + + + Deserted depot building and adjacent territory. Watch out for powerful anomalies and enemy snipers. + + + An enigmatic and fascinating place. This pool was built to conduct experiments on someone or something, but its exact purpose will forever remain a mystery. There are no artifacts to speak of, so stalkers may only be drawn here by the remnants of bizarre assemblies and devices. Watch the rooftops carefully and keep in mind the area's extremely high radiation levels. + + + An enigmatic and fascinating place. This pool was built to conduct experiments on someone or something, but its exact purpose will forever remain a mystery. + + + This dangerous part of the Dark Valley comprises a long street and a deserted institute. Who knows what they used to teach at the institute? The only thing to be learned here these days is survival! Oh, and keep a close eye on the roofs... + + + This dangerous part of the Dark Valley comprises a long street and a deserted institute... + + + This dreary desolate factory is the resting place of countless stalkers. A host of anomalies await visitors at every step, but they still flood in, attracted as though by a magnet to its valuable artifacts. Beware of radiation! + + + This dreary desolate factory is the resting place of countless stalkers. + + + The fire station whose entire forces were thrown to salvage the Chernobyl NPP in 1986. The tower is an excellent vantage point, overseeing the surroundings near and far. Very few visit the upper floors of buildings and basements, though that may all be for the better. For some time now the Zone's factions have been at each others' throats in this area - fighting for this strategic position. + + + The fire station whose entire forces were thrown to salvage the Chernobyl NPP in 1986. The station is an excellent tactical position. + + + Part of a huge junkyard, where heaps of radioactive refuse were dumped after the 1986 disaster, full of decrepit cranes and various equipment. Other local attractions include old dilapidated buildings and a huge hangar. Proximity to the Cordon and a relative abundance of artifacts draws in stalkers that prefer easy pickings. + + + Part of a huge junkyard, where heaps of radioactive refuse and equipment were dumped after the 1986 disaster. + + + A small district of the enigmatic city of Limansk - abandoned apartment blocks and one half-constructed building between them. When several expensive artifacts were found here, the news spread all over the Zone all too quickly. A few roads were opened to Limansk, and the shooting hasn't stopped for a minute ever since. + + + A small district of the enigmatic city of Limansk - abandoned apartment blocks and one half-constructed building between them. + + + An abandoned, godforsaken village in the depths of the Zone. A small, shallow, rusty lake, home to scores of wrecked vehicles, fills you with subconscious fear of the Zone's reality. Beware of snipers, but remember: the Zone favors the brave. + + + An abandoned, godforsaken village in the depths of the Zone. A small, shallow, rusty lake, home to scores of wrecked vehicles, fills you with subconscious fear of the Zone's reality. + + + An abandoned army base with forever immobile trucks and APCs, dilapidated headquarters and barracks. The deserted look, however, is deceptive: this is a real artifact goldmine, which means the enemy could be lurking around any corner. + + + An abandoned army base with forever immobile trucks and APCs, dilapidated headquarters and barracks. + + + This old village is a truly sinister place. If you're brave enough to come here, be ready to avoid a welcome in the form of a bullet to the head. No spot is safe here, so may your scope and silencer be with you! + + + This old village is a truly sinister place. You may have made it here, but this is no time to relax. + + + This is no pool - more like a blood bath. Echoes of bullets, explosions and shrieks of the dying roam its tiled corridors... Few stalkers know the way here, but even fewer know the way out. + + + This is no pool - more like a blood bath. Echoes of bullets and explosions roam its tiled corridors. + + + A small railway station near the Rostok factory. + + + A small railway station near the Rostok factory, full of rusted rail cars and locomotives, forever stopped in their tracks. An abundance of artifacts draws in fearless stalkers from all corners of the Zone. + + + A repair base in the vicinity of a small village. All the vehicles that were in order got lifted to deal with the aftermath of Chernobyl. Over time, the rest of the equipment has been ransacked for spare parts. The area is full of dangers, such as treacherous swamps and contaminated reeds, in which, if you're lucky, you might find something truly valuable. + + + A repair base in the vicinity of a small village. The area is full of dangers, such as treacherous swamps and contaminated reeds. + + + Piles of metal rust idly behind concrete walls. Before the turn of the century, the plant was in constant operation with the accompaniment of socialist slogans spewed forth from loudspeakers, but the building was abandoned long ago. + + + Old deserted plant: silent piles of metal behind concrete walls are all that’s left. + + + A sports center in Pripyat located not far from the deserted school. The types of sport practiced here have changed greatly since 1986, as well as the number of enthusiasts willing to participate. Stalkers are drawn here by dubious fame, loot, and artifacts...and sometimes remain here forever. + + + A sports center in Pripyat located not far from the deserted school. + + + A very strange place. Many laugh at stalkers who claim to have seen it but it exists nonetheless. Gravitational anomalies have torn up the ground creating an alien landscape. The area is dominated by three huge towers, remnants of military hardware and floating islands of earth, ripped out of the ground. + + + A very strange place. Gravitational anomalies have torn up the ground creating an alien landscape... + + + These were the fringes of the Rostok factory before Duty settled down here. An eerie place, which is nonetheless rich in artifacts. Every empty hangar or warehouse is full of deadly perils. Be extremely careful and keep close watch over the white tower... + + + These were the fringes of the Rostok factory before Duty settled down here. An eerie place, which is nonetheless rich in artifacts. + + + Few dare to venture into the deserted city of Pripyat, formerly home to employees working at the CNPP. Despite this, the streets of the dead city have been troubled recently by fierce gunfire in a small part of the town between the Prometheus movie theater, the pier and houses on Kurchatova Street. + + + A small part of Pripyat between the Prometheus movie theater, the pier and houses on Kurchatova Street saw fierce fighting between the few who made it into the dead city. + + diff --git a/gamedata/configs/text/eng/st_mp_speechmenu.xml b/gamedata/configs/text/eng/st_mp_speechmenu.xml new file mode 100644 index 0000000..336116d --- /dev/null +++ b/gamedata/configs/text/eng/st_mp_speechmenu.xml @@ -0,0 +1,57 @@ + + + + Everyone, attack! + + + I'm going for the artifact! Cover me! + + + Follow me! + + + Guard the artifact for now. Don’t take it yet! + + + I'm holding my position! + + + Hold your positions! + + + Take the artifact! I’ll cover you! + + + I need help! + + + No money - buy me equipment! + + + No. + + + No one in sight! + + + Report, now! + + + Retreat! + + + Return the artifact! + + + Roger. + + + Shut up! + + + Stick together. + + + Take the artifact! + + diff --git a/gamedata/configs/text/eng/st_mp_teamdesc.xml b/gamedata/configs/text/eng/st_mp_teamdesc.xml new file mode 100644 index 0000000..942621f --- /dev/null +++ b/gamedata/configs/text/eng/st_mp_teamdesc.xml @@ -0,0 +1,15 @@ + + + + The Zone's anarchists. They hold that the Zone is a sanctuary of freedom and believe that all laws, rules and conventions of the outside world are void here. Their motto is "Do what you want and mind your own business." Freedom fights the government's attempts to control the Zone and is at war with the Mercenaries. Its members are equipped mainly with Soviet and Russian firearms. + + + Freedom faction (Free Stalkers) + + + These adventure-seeking cutthroats come from all over the world and welcome even the dirtiest of work. Their motto is predictably "Money has no smell." They’ll keep fighting for complete control over artifact fields, so long as there’s demand for them. Mercenaries are equipped mainly with Western firearms. + + + Mercenary faction (Cutthroats) + + diff --git a/gamedata/configs/text/eng/st_quests_general.xml b/gamedata/configs/text/eng/st_quests_general.xml new file mode 100644 index 0000000..5149fbf --- /dev/null +++ b/gamedata/configs/text/eng/st_quests_general.xml @@ -0,0 +1,18 @@ + + + + Attention! Emission starts in: + + + You must run to the nearest cover immediately and hide from the emission. + + + You must not leave cover during an emission. + + + Emission: find cover + + + Emission: wait in cover + + diff --git a/gamedata/configs/text/eng/st_quests_jupiter.xml b/gamedata/configs/text/eng/st_quests_jupiter.xml new file mode 100644 index 0000000..fd94b4d --- /dev/null +++ b/gamedata/configs/text/eng/st_quests_jupiter.xml @@ -0,0 +1,687 @@ + + + + Debts: take money to the bandits + + + Vano owes the bandits money for a suit and can't pay it back because the interest builds up too quickly. He's asked you to deal with this problem. + + + Debts: return to Vano + + + Tell Vano how his debt repayment went. + + + Debts: deal with the bandits + + + Repaying Vano's debts has gotten messy. Take out the bandits. + + + Hostage: receive your reward from Mitay's friends + + + Mitay has been freed. Meet his friends at the bar to receive your reward. + + + Hostage: free Mitay + + + Hostage: talk to Grizzly to make sure he's ready + + + You must talk to Grizzly before attempting to free the hostage. + + + Hostage: free Mitay by force + + + You must eliminate the bandits to free a stalker called Mitay. + + + Hostage: meet the stalkers + + + Stalkers will help you to free the hostage. You need to meet them at night to attack the bandits together. + + + Hostage: arrange a ransom payment for Mitay's release + + + Arrange a ransom payment with the bandit leader to free a stalker called Mitay. + + + Free a stalker called Mitay, who was taken hostage by the bandits. + + + Hostage: lead Mitay out of the bandit camp + + + The bandit camp is too dangerous to hang around in. You must escort Mitay outside the camp. + + + Hostage: talk to Mitay + + + Mitay is relatively safe. Talk to him about your next course of action. + + + Road to Pripyat: talk to the technician about the underpass + + + The documents you found make it clear that there is an underground underpass located underneath the Jupiter plant that leads to Pripyat. The underpass has no power, is filled with gas, and the entrance to it has been blocked. You must find a technician who can activate the generator and open the underpass lock. + + + The memory module is in expert hands. You must wait for it to be unblocked. + + + UAV: unblock the memory module + + + UAV: collect the memory module from Nitro + + + UAV: collect the memory module from Novikov + + + Nitro has unblocked the memory module. You should collect the module to see what information it contains. + + + Novikov has unblocked the memory module. You should collect the module to see what information it contains. + + + You managed to salvage a memory module from the UAV. It must be unblocked for you to access the information it holds. + + + UAV: wait for the memory module to be unblocked + + + Oasis: find proof + + + The Oasis has been found and this place really does have healing properties. You need to find some proof to take back to the scientists. + + + The Oasis: take proof to the scientists + + + The Oasis has been found and this place really does have healing properties. You need to take the artifact you found there to the scientists as proof. + + + The Oasis: check whether the legend is true + + + Ozersky, the scientist from the bunker, asked you to try to find the Oasis, a legendary place in the Zone. According to rumors, there should be some healing waters there, but nobody really knows whether it exists or not. + + + Kopachy: go with Uncle Yar + + + Uncle Yar needs help with something. Go to Kopachy village with him. + + + Kopachy: eliminate the mercenaries + + + Looks like Uncle Yar anticipated the mercenaries' arrival. You must eliminate them. + + + Kopachy: stay close to Uncle Yar + + + Uncle Yar asked you to stay close to him and keep quiet. + + + Kopachy: talk to Uncle Yar + + + The mercenaries are dead. You should talk to Uncle Yar to get an explanation of what happened. + + + Intermittent psy-emissions: take the anomalous formation to the scientists + + + Take the sample you found to Hermann as agreed. It looks like this is the source of intermittent psy-emissions, an item that is half-transformed through anomalous exposure. + + + Intermittent psy-emissions: investigate the source + + + Investigate the tunnel for some kind of anomalous formation. The scientists believe that the intermittent psy-field has a source, which will probably resemble an artifact. + + + Intermittent psy-emissions: meet Topol's squad + + + Topol's squad went to the tunnel with the intermittent psy-emissions and you must meet them there. + + + Intermittent psy-emissions: talk to Topol + + + Join Topol's squad to go to the tunnel with the intermittent psy-emissions. The agreement is that stalkers will guard the tunnel while you search for what the scientists want. + + + You should take all the radio technical materials you found to Nitro. + + + Nitro needs radio technical materials. You can give him what you already have or try to find more. + + + Radio equipment: find materials for Nitro + + + Nitro needs radio technical materials. He says you should look for them at the cement factory. + + + Theft: find out who is responsible for the theft + + + Ask stalkers at Yanov if they've seen anyone suspicious who could have stolen things from a personal box. + + + Theft: check the substation + + + You need to check out the substation, as that's where the suspicious stalker who may be responsible for the theft was headed. + + + Theft: take your things + + + All the items Snag stole should be in his stash in the sewers behind the substation. + + + Anomalous plant: get a plant sample + + + An area filled with anomalous vegetation has appeared near the edge of the quarry. Ozersky has asked you to get a plant sample for his research. + + + Anomalous plant: give the sample to Ozersky + + + You must take the plant sample to Ozersky. In exchange, Ozersky will convince Hermann to hand over a scientific suit. + + + Hunting: eliminate unidentified mutants + + + A group of stalkers encountered unidentified mutants in the tunnels north of the Jupiter plant. Investigate the area and eliminate the mutants. + + + Hunting: get your reward for killing the mutants in the tunnel from Trapper + + + Mutants in the tunnels north of the Jupiter plant have been eliminated. You should inform Trapper and collect your reward. + + + Hypothesis: place the scanner in the center of the landslide + + + Place the scanner in the center of the landslide to test Ozersky's hypothesis. + + + Hypothesis: wait for the experiment to end + + + The scanner is now in active mode and has begun to register mutant presence. You must wait until enough data has been collected to confirm or disprove the hypothesis. + + + Hypothesis: take the scanner + + + Enough data has been collected to confirm Ozersky's hypothesis. Take the scanner. + + + Hypothesis: give the scanner to Ozersky + + + You must give the scanner to Ozersky. The data collected should be enough to confirm his hypothesis. + + + Hunting: kill the swamp bloodsuckers + + + A group of swamp bloodsuckers has been spotted in Fen, behind the cement factory. Local stalkers have asked you to eliminate them. + + + Hunting: get your reward for killing the swamp bloodsuckers from Trapper + + + The swamp bloodsuckers are dead. You should collect the reward put up by local stalkers from Trapper. + + + Night hunt: kill the chimera + + + Chimeras are nocturnal predators and nobody knows the whereabouts of this one's daytime lair. You must kill it at night when it comes out to hunt by the ventilation complex. + + + Night hunt: tell Trapper that the chimera is dead + + + The killer chimera is dead and Fox, the hunter, has been avenged. Tell Trapper about this. + + + Tools: bring Nitro tools + + + Nitro has asked you to get two sets of tools: one for basic work and one for fine work. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Nitro tools + + + Nitro has asked you to get two sets of tools: one for basic work and one for calibration. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Nitro tools + + + Nitro has asked you to get a set of tools for basic work. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Nitro tools + + + Nitro has asked you to get two sets of tools: one for fine work and one for calibration. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Nitro tools + + + Nitro has asked you to get a set of tools for fine work. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Nitro tools + + + Nitro has asked you to get a set of tools for calibration. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Nitro tools + + + Nitro has asked you to get three sets of tools: one for basic work, one for fine work and one for calibration. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Pripyat 1: find a suit with a closed-cycle respiratory module + + + You will need a suit with a closed-cycle respiratory module to go through the Pripyat 1 underpass, as it has been filled with carbon dioxide mixed in with an unknown substance. + + + Pripyat 1: take Strider to see Zulu + + + You must take Strider to see Zulu and introduce him as a new member of the squad. Zulu may not be welcoming if a fighter wearing a Monolith suit shows up on his own. + + + Pripyat 1: talk to Strider about a protective suit + + + The Pripyat 1 underpass has been filled with carbon dioxide mixed in with an unknown substance. You must inform Strider that he will need a suit with a closed-cycle respiratory module to go through the underpass. + + + Pripyat 1: assemble a squad to go to Pripyat + + + Nitro could open the Pripyat 1 underpass lock, but he refuses to go into the Jupiter plant without protection. He further recommends that you get a few people to go through the underpass with. You already have Zulu, and he has suggested that you send new recruits to him. + + + Pripyat 1: talk to Zulu about going to Pripyat + + + Nitro could open the Pripyat 1 underpass lock, but he refuses to go into the Jupiter plant without protection. He further recommends that you get a few people to go through the underpass with. He suggested that you speak to Zulu, as he could help you assemble a squad. + + + Pripyat 1: take Sokolov to see Zulu + + + Sokolov has agreed to go to Pripyat and could take a scientific suit when he leaves the bunker. You should take him to see Zulu and introduce him as a new member of the squad. + + + Pripyat 1: talk to Sokolov about a protective suit + + + Pripyat 1: talk to Ozersky about a suit for Sokolov + + + Sokolov is willing to wear a scientific suit for protection, but Hermann is unlikely to let him take one from the bunker. You should talk to Ozersky - he's nicer and easier to deal with. + + + Pripyat 1: tell Sokolov about the scientific suit + + + Ozersky is very happy with the plant sample. He has asked you to tell Sokolov that he can collect his scientific suit from Hermann. + + + The Pripyat 1 underpass has been filled with carbon dioxide mixed in with an unknown substance. You must inform Sokolov that he will need a suit with a closed-cycle respiratory module to go through the underpass. + + + Pripyat 1: get Vano money for the suit + + + The suit for which Vano owed money to the bandits had a closed-cycle respiratory module. Vano had to pawn it to pay his debts. Now he needs 3,000 to buy it back. + + + Pripyat 1: take Vano to see Zulu + + + Vano is willing to go to Pripyat. You must take him to see Zulu and introduce him as a new member of the squad. Vano can buy back his suit on the way. + + + Pripyat 1: talk to Vano about a protective suit + + + The Pripyat 1 underpass has been filled with carbon dioxide mixed in with an unknown substance. You must inform Vano that he will need a suit with a closed-cycle respiratory module to go through the underpass. + + + Flint, AKA Magpie, is a sneaky son of a bitch. You should expose him to the stalkers at Zaton or other factions. This will teach him a good lesson. + + + Flint is showing off and talking about things that he hasn't even seen. It would be good to expose his deceit. + + + False claims: deal with Flint + + + Flint is clearly taking credit for the achievements of others. He needs to learn to mind his tongue. + + + Flint's showboating is beyond belief - you should talk to him and get him to see your point. + + + Flint, AKA Magpie, is a sneaky son of a bitch. You should expose him to the stalkers at Zaton or other factions - that would be revenge of the highest order. + + + Anomaly research: get scanners from the technician + + + Get scanners from Novikov. Hermann wants to collect artifact formation statistics and the scanners must be placed in the center of several anomalies for this purpose. + + + Anomaly research: place the scanner in the anomaly + + + Anomaly research: collect your reward + + + Collect the reward promised to you for placing scanners in anomalies. Now that the scanners are in position, Hermann can begin to collect artifact formation data. + + + Place the scanner in the center of the anomaly. Hermann wants to collect artifact formation statistics and the scanners must be placed in the center of several anomalies for this purpose. + + + A contract with the scientists: bring Garry the Kolobok artifact + + + Garry needs the Kolobok artifact in order to complete his contract with the scientists. Bring him this artifact. + + + A contract with the scientists: bring Garry the Meat Chunk artifact + + + Garry needs the Meat Chunk artifact in order to complete his contract with the scientists. Bring him this artifact. + + + A contract with the scientists: bring Garry the Meat Chunk and Kolobok artifacts + + + Garry needs the Meat Chunk and Kolobok artifacts in order to complete his contract with the scientists. Bring him these artifacts. + + + A contract with the scientists: artifacts delivered + + + Garry has both artifacts and his contract is complete. + + + Duty history: give the Duty founder's PDA to interested parties + + + You found the personal PDA of the founder of Duty, who died in the anomaly. You should get this PDA to someone who would be interested in the faction leader's last moments. + + + Anomalous activity: investigate the area using an improved detector + + + Scientists' scanners have registered unusual activity north of the bunker. Investigate the area using an improved detector. + + + Guarding the scientists: find reliable people + + + The scientists' bunker is unprotected. You must find reliable people to guard it. + + + Guarding the scientists: return to Hermann for your reward + + + You have found guards for the scientists' bunker. You should return to Hermann for the reward you're due. + + + Last developments: find documents at the Jupiter plant + + + Hermann is interested in the Jupiter plant's last developments. Find the documents in the administrative section of the plant. + + + Last developments: take the documents to Hermann + + + The documents you found indicate that all technical documentation was moved outside the plant. Although it's not much, you should convey this information to Hermann. + + + Last developments: take the documents and Black's PDA to Hermann + + + A mercenary attack took place while you were searching for the documents. According to the PDA you found on Black, their leader, they were sent to prevent the scientists from looking for the documents. At the same time, the documents you found indicate that all technical documentation was moved outside the plant. You should convey this information to Hermann and show him Black's PDA. + + + Monolith survivors: talk to Yanov residents about cover + + + A squad of Monolith fighters has broken free of the spell that possessed them. They're looking for cover from emissions and mutants. You need to talk to the residents of Yanov station about allowing the Monolith squad to take cover there. + + + Take Duty recruitment officers to the former Monolith squad. If the Monolith fighters join Duty, they'll be able to take cover from emissions and mutants at Yanov station. + + + Take Freedom recruitment officers to the former Monolith squad. If the Monolith fighters join Freedom, they'll be able to take cover from emissions and mutants at Yanov station. + + + Monolith survivors: take recruitment officers to the former Monolith squad + + + Anomaly research: cover the stalkers + + + It looks like the taking of measurements in the anomaly attracted mutants. You must cover the stalkers until they have collected all the data required. + + + Anomaly research: cover the stalkers + + + It looks like the taking of measurements in the anomaly attracted zombies from Kopachy. You must cover the stalkers until they have collected all the data required. + + + Anomaly research: talk to Hermann + + + The anomaly measurements have been completed - inform the scientists of this and collect your reward. + + + Anomaly research: talk to the stalkers + + + Talk to the stalker squad responsible for taking measurements - you need to choose which anomaly to go for. + + + Anomaly research: talk to the stalkers + + + All the required measurements have been taken, so you can head back to the scientists' bunker together with the squad. + + + Anomaly research: talk to the stalkers + + + Measurements have been taken from the anomaly, so you need to talk to the squad to discuss where to go next. + + + Anomaly research: cover the stalkers + + + Hermann has offered you the job of covering stalkers while they take measurements in anomalies. + + + Stingray 4: investigate the crash site + + + Stingray 4: find the reason for electronic burn out + + + Investigate the Stingray 4 crash site. + + + You must find the source of the powerful electric charge which hit the Stingray 4 helicopter. + + + Stingray 1: give the black box to a technician for decryption + + + The Stingray 1 black box survived the crash. It must be taken to a technician for decryption for you to access the information it holds. + + + Stingray 1: wait for black box decryption to be completed + + + Nitro has agreed to decrypt the black box. He said it would take around three hours. You must wait for him to finish. + + + Stingray 1: return to Nitro for information held by the black box + + + Nitro should have completed the decryption process by now. Go see him to get the information held by the black box. + + + Stingray 1: investigate the crash site + + + Investigate the Stingray 1 crash site. + + + Pripyat 1: get to Pripyat + + + You must get through the Pripyat 1 underpass and reach the military evacuation point in Pripyat. + + + Road to Pripyat: investigate the chemical compound workshop at the Jupiter plant + + + The chemical compound workshop should contain information about the flooding of the Pripyat 1 underpass with some sort of gas. + + + Road to Pripyat: investigate the administrative section of the Jupiter plant + + + The guide does not know of a safe route to Pripyat, but he has suggested where you can find information about underground tunnels that lead from the Jupiter plant to the city. You should start with the administrative section. + + + Road to Pripyat: investigate the laboratory section of the Jupiter plant + + + The documents found in the administrative section mention evacuation of the production complex from the Jupiter plant. Information concerning this matter should be in the laboratory section. + + + Road to Pripyat: check the Pripyat 1 underpass transportation lock + + + The entrance to the underground underpass is behind the transportation lock. Investigate the area and look for any information concerning the underpass. + + + Road to Pripyat: investigate Department 1 of the Jupiter plant + + + There should be information about the Pripyat 1 underpass in Department 1. This information could be very useful, so you should check there. + + + Road to Pripyat: investigate the delivery department of the Jupiter plant + + + Judging by the note in the laboratory workshop, the evacuation was supposed to have been carried out by the delivery department, so you should check there as well. + + + Road to Pripyat: investigate the repair workshop of the Jupiter plant + + + The delivery department had information about losses during transportation of something referred to as item 62. According to the records, the repair workshop was charged with handling this matter - you should check there. + + + Road to Pripyat: talk to the guide + + + According to the recording in the black box of one of the helicopters, the military units were supposed to converge on evacuation point B28. According to the maps found in the other helicopter that took part of the mission, this point is located in Pripyat. You'll have to find some way of getting there - talk to the guide about it. + + + Duty warehouse: take what you're owed + + + Duty warehouse: meet Morgan + + + Morgan the trader has offered you access to Duty's warehouse as payment for your silence about his business. You need to meet him near the quarry as agreed. + + + You must open the gate to keep going. + + + You must open the door to keep going. + + + You must activate the power supply to the gate to keep going. + + + You must unblock the gate to keep going. This can probably be done from the control room. + + + Research group: Hire the right people + + + A research group working for the scientists has perished. You must staff a new group so research can continue. + + + Research group: Return to Hermann for the reward + + + You've found the right people for a new research group. Now return to Hermann to collect your reward. + + + Pripyat 1: complete Ozersky’s mission + + + You need to complete Ozersky’s mission involving the anomalous plant to get a protective suit for Sokolov. + + + Nitro needs radio technical materials. You need to find them in the cement factory. + + + It was Flint who left Splinter to die in the anomaly. Talk to him and find out why he did it. + + + Retribution: avenge Splinter + + + Find whoever left Splinter to die in an anomaly, having taken the artifact and left. Unfortunately, Splinter didn’t manage to name the villain, so all that’s known about him is that he is a member of Freedom. + + + Lieutenant Colonel Shulga has permitted you to take any equipment you want from the Duty warehouse if you manage to capture it. + + + Loki has allowed you to take any equipment you want from the Duty warehouse as long as it’s held by Freedom fighters. + + diff --git a/gamedata/configs/text/eng/st_quests_pripyat.xml b/gamedata/configs/text/eng/st_quests_pripyat.xml new file mode 100644 index 0000000..807c145 --- /dev/null +++ b/gamedata/configs/text/eng/st_quests_pripyat.xml @@ -0,0 +1,345 @@ + + + + Item 62: find documents in the testing workshop + + + You need to find documents concerning item 62. The documents should clarify whether the weapon could have been used to shoot down the helicopters. + + + Unidentified weapon: take cover in the building + + + You must take cover in the building and repel the Monolith attack. + + + Unidentified weapon: find information + + + The weapon is not operational and it's not clear how it works. You need to find a technician who can make sense of the unidentified weapon. + + + Unidentified weapon: kill the Monolith squad leader + + + You must kill the Monolith squad leader, the one using the unidentified weapon. + + + Unidentified weapon: search the dead Monolith fighters + + + The Monolith fighters should have the unidentified weapon with them - find it. + + + Unidentified weapon: talk to Cardan + + + Cardan should have shaken off his hangover by now - time to talk to him about the unidentified weapon. + + + Unidentified weapon: wait for Cardan to come to his senses + + + Cardan probably knows about the weapon - you need to talk to him when he wakes up. + + + Gauss rifle: tell Kovalsky about the weapon + + + You need to tell Kovalsky everything you've learned about item 62. + + + Unidentified weapon: join the squad + + + You need to join the special squad in order to capture the weapon together. + + + Unidentified weapon: pick up the weapon + + + You need to pick up the Monolith squad leader's weapon. + + + Unidentified weapon: take the weapon to Kovalsky + + + You have the weapon - now you should show it to Kovalsky and find out whether the weapon could have caused the helicopter crashes. + + + Unidentified weapon: take part in the Monolith ambush + + + The military recon unit is setting up an ambush to attack the Monolith squad. You should take part in the operation. + + + Monolith forces: meet with the reinforcements + + + Kovalsky has sent reinforcements to help you eliminate the Monolith squad holed up in the book store. + + + Monolith forces: clear out the book store + + + You need to eliminate all Monolith forces in the building. Large Monolith units are a danger to the military camp. + + + Monolith forces: investigate the strange construction + + + There was a strange device in the building. Investigate this device. + + + Laboratory X8: find documents concerning experiments + + + The information you found refers to a central laboratory, designated X8. It could contain information about secret experiments conducted in the Zone. + + + Missing recon unit: find the squad + + + The recon unit dispatched by Kovalsky disappeared after a strange communication session. You must find them to work out what happened. + + + Missing sentry: investigate the area where the sentry died + + + The sentry was behaving very strangely, so you should investigate and find the reason for this. + + + Missing sentry: find the sentry + + + One of the soldiers went missing from his post - you need to find him and determine why he went missing. + + + Missing sentry: kill the controller + + + There was a controller near the missing sentry - it must be eliminated. + + + Radio interference: find the missing squad + + + The squad which was looking for the source of radio interference went missing - you need to find it. + + + Radio interference: search the bodies + + + Search the bodies - this may help to establish why they died. + + + Radio interference: search the body + + + Search the body - this may help to establish why he died. + + + Radio interference: blow up the door + + + You'll have to blow up the door using explosives to make your way into the building. + + + Radio interference: investigate the sound + + + There is a noise coming from the fridge - looks like someone's locked inside it. Investigate. + + + Radio interference: eliminate the source of interference + + + You have located the source of radio interference- you need to destroy it. + + + Radio interference: find the source of interference + + + There is a source of radio interference in the building - find it. + + + Radio interference: find the explosives + + + The squad sent to look for the source of interference had explosives. Find them to clear the entrance to the building. + + + Radio interference: get inside the kindergarten building + + + The source of the signal is somewhere in the kindergarten building, so you must get inside. + + + Evacuation: cover the military + + + Strelok may be dead, but you still have to help the military get to the helicopters. + + + Evacuation: cover Strelok + + + The HQ is interested in the information Strelok has to offer. You must get him to the helicopters. + + + Evacuation: get to the helicopters + + + Everyone is dead - you'll have to get to the helicopters on your own. + + + Evacuation: talk to Kovalsky + + + You need to talk to Kovalsky before the evacuation starts. + + + Evacuation: tell Kovalsky you are ready + + + You should inform Kovalsky that you are ready to begin the evacuation. + + + Evacuation: wait for the emission to finish + + + You need to wait for the emission to finish. + + + Unknown: investigate the source of the signal + + + Kirillov has identified a strange signal not far from the base. You need to investigate the source of the signal. + + + Unknown: follow the signal + + + The signal coordinates are accessible again, so follow them. + + + Unknown: investigate the last known signal location + + + The signal vanished in the building's yard, so investigate the last known signal location. + + + Unknown: prepare for an attack on the base + + + Return to the army base and prepare for a likely attack. + + + Radio interference: talk to Kovalsky + + + Colonel Kovalsky has asked for you. + + + Laboratory X8: get inside the elevator shaft + + + The entrance to the underground laboratory is below the Yubileiny service center, with the only way of getting inside being the elevator shaft. + + + Laboratory X8: find the generator + + + The power to the elevator shaft doors has been cut. Opening them will require you to find and activate the emergency generator. + + + Laboratory X8: descend into the laboratory + + + You need to use the elevator to get into laboratory X8, which is below the Yubileiny service center. + + + One shot: eliminate the messenger + + + You must eliminate the messenger. With him dead, the mercenaries won't be able to find the laboratory. + + + One shot: wait for the client's people + + + Wait for the client's people to show up and kill their leader. With him dead, the mercenaries won't be able to find the laboratory. + + + One shot: kill the mercenary squad leader + + + You must kill the mercenary squad leader. With him dead, the mercenaries will be disorganized and not much of a threat. + + + One shot: wait for the mercenaries to appear + + + You must wait for the mercenaries to show up and kill their leader. With him dead, the mercenaries will be disorganized and not much of a threat. + + + One shot: talk to Kovalsky + + + Report the mission results to Kovalsky. + + + Laboratory X8: leave the underground complex or continue looking for documents + + + You have found documents and you can now leave the laboratory, however there may still be other documents inside the complex. + + + Laboratory X8: leave the underground complex or continue looking for documents + + + You have found documents and you can now leave the laboratory, however there may still be other documents inside the complex. + + + Laboratory X8: leave the underground complex + + + It looks like you have collected all the documents in the laboratory. You can now leave the underground complex. + + + Monolith forces: wait for reinforcements + + + You need to wait for reinforcements sent by Kovalsky to eliminate the Monolith forces in the book store + + + A quiet word: talk to Kovalsky + + + You need to talk to Kovalsky. It looks like he’s got something important to say. + + + Evacuation: hold out by the helicopters + + + You must protect the helicopters from the enemy until they can take off. + + + Evacuation: revive the medic + + + It seems the medic has been hit by unidentified forces again. Revive him as quickly as possible. + + + Evacuation: return to the helicopters + + + You must return to the helicopters as they might be able to take off any moment now. + + + Evacuation: return to the helicopters ASAP + + + The helicopters are ready for take-off. You must board one of them immediately - the pilots cannot wait long. + + diff --git a/gamedata/configs/text/eng/st_quests_zaton.xml b/gamedata/configs/text/eng/st_quests_zaton.xml new file mode 100644 index 0000000..0b8d772 --- /dev/null +++ b/gamedata/configs/text/eng/st_quests_zaton.xml @@ -0,0 +1,780 @@ + + + + Safe spot: reach Skadovsk + + + The only relatively safe places in the Zone are large camps. The nearest one is Skadovsk - that's where you should be headed. + + + Area maps: find someone interested in the maps + + + Area maps: offer the maps to Pilot + + + It's possible that Pilot, the local guide, could be interested in maps of the area between Zaton and Jupiter. + + + Stingray 2: investigate the crash site + + + Investigate the Stingray 2 crash site. + + + Stingray 5: investigate the crash site + + + Stingray 5: find the reason for electronic burn out + + + Stingray squad: find the source of the charges which hit the two helicopters + + + Investigate the Stingray 5 crash site. + + + You must find the source of the powerful electric charge which hit the Stingray 5 helicopter. + + + You must find out what caused the electronics in Stingrays 4 and 5 to burn out. It seems they were hit by powerful electric charges. + + + Food: get food for the mercenaries + + + The mercenary squad in the substation workshops has asked you to bring them six cans of meat, pieces of sausage or bread. + + + Food: take the food to the mercenaries + + + You must take the food you've collected to the mercenaries in the substation workshops. + + + Tools: investigate the substation workshops + + + They say there might be tools in the substation workshops. You might even find the ones the technician is after. + + + Hunting the chimera: find the mutant while it's sleeping + + + You need to find the chimera before it wakes up. + + + In search of Magpie: inform Gonta + + + It looks like Magpie, the stalker who set up Gonta's squad, has been found. He has joined Freedom and now calls himself Flint. + + + Hunting the chimera: kill the mutant + + + The chimera is awake and you should kill it before it's too late. + + + Hunting the chimera: meet Gonta in the bar at 3AM + + + You should meet Gonta before sunrise to join his squad in their chimera hunt. + + + Hunting the chimera: inform Trapper + + + You should inform a stalker called Trapper that the chimera hunt was successful. He should give you a reward. + + + In search of Magpie: find the stalker + + + A stalker called Magpie set up Gonta's squad to be attacked by a chimera. They've asked you to find the bastard. + + + Evacuation locations: investigate position B205 + + + The map you found in one of the helicopters indicated evacuation locations. You should check if the soldiers went to location B205 + + + Evacuation locations: investigate position B28 + + + The map you found in one of the helicopters indicated evacuation locations. You should check if the soldiers went to location B28 + + + Evacuation location: find the coordinates of location B28 + + + The black box of one of the Stingray helicopters had a recording where the squad commander designates a position at which the squad is to converge. This position is evacuation point B28 and you need to work out its coordinates. + + + Evacuation location: reach location B28 + + + The position at which the soldiers are supposed to converge is in Pripyat. Find a way of getting there. + + + Evacuation locations: investigate position B2 + + + The map you found in one of the helicopters indicated evacuation locations. You should check if the soldiers went to location B2 + + + Strange phenomenon: take the artifact to Beard + + + The source of the strange glow was an equally strange artifact. It's bound to be of interest to Beard. + + + Strange phenomenon: ask stalkers about the artifact + + + Stalkers may know something about the strange artifact or they could suggest someone who does. You should talk to them. + + + Strange phenomenon: find the source of the glow at the dredge station + + + A strange glow was spotted at the dredge station. Beard asked you to find its source. + + + Strange phenomenon: take the artifact + + + The source of the strange glow was an equally strange artifact. You should take it. + + + Strange phenomenon: tell Beard about the artifact + + + The source of the strange glow was an equally strange artifact. Even though you don't have the artifact, you should tell Beard about it. + + + Getting to the plateau: jump into the anomaly + + + It looks like the way to the plateau is through the anomaly. You need to jump into it. + + + Getting to the plateau: find Noah's secret path + + + Noah's PDA mentioned his own "secret path" to the plateau. You need to find it. + + + Getting to the plateau: find out how to get there from Noah + + + They say a stalker called Noah knows a path onto the plateau. You need to find out how to get there. + + + Missing stalkers: bring back proof of Tremor's involvement + + + You need to take the PDA with Tremor's recordings to Skadovsk and show it to Beard. The recordings make it clear that the medic was the one responsible for stalker disappearances. + + + Missing stalkers: find proof of Tremor's involvement + + + You need to check whether Tremor left any evidence of his involvement in stalker disappearances. + + + Stingray 3: investigate the crash site + + + Investigate the Stingray 3 crash site. + + + You need to bring Beard the artifact, but the head start time has expired. Now your competitors are searching for the artifact as well. + + + You need to bring Beard the artifact. Remember: your competitors are also searching for it. + + + You need to bring Beard the artifact, but there is a report that another group has already found one. You should track the signal and try to complete the job before your competitors do. + + + You need to bring Beard the artifact, but another group has already done that. Now you'll only get half your fee for the artifact. + + + You need to bring Beard the artifact. + + + Artifact order: bring back a Gravi + + + Artifact order: bring back an Eye + + + Artifact order: bring back a Bubble + + + Artifact order: bring back a Shell + + + Artifact order: bring back a Goldfish + + + Artifact order: bring back a Flame + + + Artifact order: bring back a Firefly + + + Artifact order: bring back a Snowflake + + + You need to find the artifact for Beard, but the head start time has expired. Now your competitors are searching for the artifact as well. + + + You need to find the artifact for Beard. Remember: your competitors are also searching for it. + + + You need to find the artifact for Beard, but there is a report that another group has already found one. You should track the signal and try to complete the job before your competitors do. + + + You need to find the artifact for Beard, but another group has already completed the order. Now you'll only get half your fee for the artifact. + + + You need to find the artifact for Beard. + + + Artifact order: find a Gravi + + + Artifact order: find an Eye + + + Artifact order: find a Bubble + + + Artifact order: find a Shell + + + Artifact order: find a Goldfish + + + Artifact order: find a Flame + + + Artifact order: find a Firefly + + + Artifact order: find a Snowflake + + + Compass: locate Noah and find out where you can get the rare artifact + + + You need to locate Noah at the old barge and find out where you can get the rare Compass artifact. Beard has been looking for the artifact for a long time and he's willing to pay well for it. + + + Compass: take the artifact to Beard + + + Compass: find out where you can get the rare artifact from Noah + + + Sultan wants to intercept the artifact Beard is looking for. You need to locate Noah at the old barge and find out where you can get the artifact. + + + Compass: take the artifact to Sultan + + + The artifact Noah gave you is the Compass Sultan is looking for. + + + Shady business: get your cut from Beard + + + You should get your cut of Beard's revenue from him. + + + Tempting business: talk to Sultan + + + Owl the trader believes that Beard is not sticking to the agreement and suggests you contact Sultan, the local crime boss, for help. + + + Shady business: take detectors from stalkers + + + You must do whatever you can to take the detector prototypes away from the stalkers who are searching for artifacts for Beard. If he has no detectors, he'll have to agree to Sultan's terms. + + + Shady business: talk to Sultan + + + Beard doesn't have the detectors, so you should speak to Sultan to find out whether he has resolved the problem with Beard's other suppliers. + + + Shady business: force Beard to work for Sultan + + + Now that Beard no longer has any suppliers or detectors, he can't do anything on his own - force him to work for Sultan. + + + Shady business: find out about Beard's current business + + + You need to find out what business Beard is involved in at the moment. This will help you cut off his supply channels. + + + Shady business: take the second detector away from stalkers + + + You must do whatever you can to take the detector prototypes away from the stalkers who are searching for artifacts for Beard. If he has no detectors, he'll have to agree to Sultan's terms. + + + Tempting business: bring Novikov three Veles detectors + + + Owl the trader has offered you to participate in a lucrative venture. Your job is to find three Veles detectors and take them to Novikov in the scientists' bunker. + + + Tempting business: wait until Owl gets the detectors + + + Novikov accepted the detectors and promised to send them back to Owl himself. You need to wait for him to finish working with the detectors and then find out about the results from Owl. + + + Tempting business: talk to Owl + + + Owl the trader has contacted you by radio to tell you that he's having problems and that he wants to see you. + + + Tempting business: convince Beard to stick to the agreement + + + Owl the trader believes that Beard is not sticking to the agreement. You need to talk to him and convince to quit violating the agreement. + + + Tempting business: demand a cut from Owl + + + Beard believes he doesn't owe Owl anything - you need to find out who is right and demand your cut from that person. + + + Snag has asked you to bring him his container. He hid it in an old Zaporozhets car, which fell into a crack following an earthquake. Snag is afraid to go down there because it's full of snorks. + + + You have Snag's container and you should now take it back to the owner to split its contents fairly. + + + Bloodsucker lair: tell the stalkers + + + You need to inform stalkers about the bloodsucker lair under the Krug antenna complex. + + + Bloodsucker lair: tell Beard + + + You must tell Beard about the bloodsucker lair found underneath the Krug antenna complex so that he can decide on how to protect the stalkers. + + + Missing stalkers: follow Grouse + + + Grouse has asked you to investigate the abandoned antenna complex building with him. He spotted bloodsuckers and wants to check if the hunter is there. + + + Missing stalkers: find out what happened + + + Looks like Tremor isn't as innocent as he seemed. You need to work out what happened. + + + Missing stalkers: find Grouse + + + Grouse went towards the dock cranes for some reason - maybe he found something out about the missing stalkers, so you should look for him there. + + + Missing stalkers: find out where Grouse is + + + Grouse isn't where he normally is. You should ask Beard where he went. + + + Missing stalkers: find the missing hunter + + + Grouse has asked you to help with finding the missing hunter. The hunter was supposed to find the bloodsucker lair. According to current information, it is bloodsuckers who are responsible for recent stalker disappearances. + + + Missing stalkers: get out of the bloodsucker lair + + + You discovered a bloodsucker lair in the basement and that its residents are in some kind of daze. You should get out of here and do it quietly. + + + Missing stalkers: meet Grouse + + + You should probably meet Grouse and discuss the search for the missing hunter. + + + Missing stalkers: meet Grouse later + + + There was no trace of Danila the hunter in the antenna complex building. However, Grouse seems to be perplexed by what you found inside and he asked you to meet him later to discuss the matter in more detail. + + + Missing stalkers: meet Grouse + + + The place Grouse indicated had a dead bloodsucker and no signs of Danila the hunter. However, it seems that Grouse has found something interesting and he's asking you to join him. + + + As it turns out, bloodsuckers had nothing to do with stalker disappearances - it was Tremor, the Skadovsk medic. + + + Tools: bring Cardan tools + + + Cardan has asked you to get two sets of tools: one for basic work and one for fine work. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Cardan tools + + + Cardan has asked you to get two sets of tools: one for basic work and one for calibration. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Cardan tools + + + Cardan has asked you to get a set of tools for basic work. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Cardan tools + + + Cardan has asked you to get two sets of tools: one for fine work and one for calibration. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Cardan tools + + + Cardan has asked you to get a set of tools for fine work. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Cardan tools + + + Cardan has asked you to get a set of tools for calibration. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Tools: bring Cardan tools + + + Cardan has asked you to get three sets of tools: one for basic work, one for fine work and one for calibration. The technician will pay you for the tools and will be able to perform more advanced weapon and armor modifications. + + + Mercenary camp: take any information you can find + + + Owl the trader promised good payment for any media you can find in the mercenary camp at the waste processing station. He is interested in the mercenaries' plans. + + + Mercenary camp: take any information you can find + + + Owl the trader promised good payment for any media you can find in the mercenary camp at the waste processing station. He is interested in the mercenaries' plans. + + + Three comrades: find out about Barge's fate + + + Cardan asked you to pass on his apologies to his comrade, a stalker called Barge. They had an argument and Barge left in an unknown direction. + + + Three comrades: find out about Barge's and Joker's fates + + + Cardan asked you to pass on his apologies to his comrades, stalkers called Barge and Joker. They had an argument and his comrades left in an unknown direction. + + + Three comrades: find out about Joker's fate + + + Cardan asked you to pass on his apologies to his comrade, a stalker called Joker. They had an argument and Joker left in an unknown direction. + + + Special order: collect the goods + + + The goods have been delivered - time to collect them from Nimble. + + + Special order: wait for delivery + + + The order has been made, so now you should wait for Nimble to get the goods. + + + Reputation: find Snag + + + You need to find Snag and force him to keep his mouth shut. Nimble has never dealt in stolen goods, while Snag seems dishonest more often than not. He was last seen by the dock cranes, so he could still be there. + + + You need to find Snag and force him to keep his mouth shut. Snag is not by the dock cranes, but the bandits might know where he is. + + + You need to find Snag and force him to keep his mouth shut. It seems the bandits are involved in this, so they should know where to look for him. + + + You need to find Snag and force him to keep his mouth shut. There are no clues to his whereabouts at the moment. + + + You need to find Snag and force him to keep his mouth shut. Judging by the PDA found on one of the bandits, Sultan's people are looking for Snag. Unfortunately, there aren't any clues as to where he can be found. + + + Reputation: find out where Snag disappeared to + + + Snag is not where he used to be, so you should ask the locals if they saw where he went. + + + You need to find Snag and force him to keep his mouth shut. He is not where he used to be. Maybe Sultan knows where Snag is. + + + You need to find Snag and force him to keep his mouth shut. He is not where he used to be. Maybe Beard knows where Snag is. + + + Reputation: talk to Snag + + + You need to find Snag and force him to keep his mouth shut. Nimble has never dealt in stolen goods, while Snag seems dishonest more often than not. + + + Bloodsucker lair: find the ventilation shaft + + + Find the ventilation shaft to fill the bloodsucker lair with poisonous gas. + + + Bloodsucker lair: find poisonous gas + + + You will need poisonous gas to destroy the bloodsucker lair. Owl should know where you can get some. + + + You will need poisonous gas to destroy the bloodsucker lair. Owl claims that you'll find gas canisters at the deserted military convoy. + + + Bloodsucker lair: find keys to the container + + + The documents you found mention keys to the gas canister container. You need to find them. + + + Bloodsucker lair: find a way to open the gas canister container + + + The container with the gas canister is locked. You need to find a way to open it. + + + Bloodsucker lair: position the gas canister + + + Position the gas canister in the antenna complex basement ventilation system. The gas should get in via the ventilation shaft and fill the basement, killing the bloodsuckers. + + + Bloodsucker lair: inform Beard that the lair has been destroyed + + + Inform Beard that you have destroyed the bloodsucker lair, securing the safety of Skadovsk stalkers. + + + Bloodsucker lair: turn the valve + + + Turn the valve to allow poisonous gas to fill the basement with the bloodsucker lair via the ventilation shaft. + + + Bloodsucker lair: wait until the gas takes effect + + + You need to make sure the gas filled the lair and the bloodsuckers are dead. + + + Transaction: meet the bandits by the ranger station + + + Sultan has asked you to take part in a transaction with a trader. You need to accompany his people and cover them in case something happens. + + + Transaction: meet the trader + + + Owl has offered you a job - protecting some trader during a transaction. Clearly, the transaction is shady and it might not go very smoothly. + + + Transaction: meet the stalkers by the ranger station + + + Meet the stalkers by the ranger station and help them disrupt the transaction between the bandits and the weapons trader. + + + Transaction: protect the trader + + + The trader has explained your job - to protect him during the transaction. + + + Transaction: eavesdrop on the conversation + + + Stalkers want to listen in on the conversation between the bandits and the weapons trader. + + + Transaction: disrupt the weapons sale + + + Do whatever it takes to disrupt the transaction between the bandits and the trader. + + + Transaction: eliminate witnesses + + + The trader's transaction didn't work out, so you need to take out all the witnesses. + + + Transaction: protect the trader + + + You need to protect the trader. Also, he ordered you to take out all the witnesses to the transaction, including his clients. + + + Transaction: search the trader + + + The trader may have important information which may come in handy later. You should take it. + + + Transaction: cover the bandits during the transaction + + + Stay on your guard and provide cover to the bandits while they are negotiating with the trader. + + + Transaction: talk to the trader + + + The transaction with bandits is complete, so you should collect your reward. + + + Transaction: collect your reward from Beard + + + Beard promised you a reward if you disrupted the transaction between the bandits and the trader. With the transaction positively botched, you can go ahead and collect your reward. + + + Transaction: talk to the bandit leader + + + You need to inform the bandit leader you're ready to take part in the transaction. + + + The hit: decide what to do + + + The hit: attack the stalkers + + + The hit: collect your reward + + + The attack on the camp was repelled, so you can talk to the stalkers to get your reward. They would probably have had a very tough time if they hadn't been warned about the attack. + + + A group of stalkers has turned to a bandit existence of robbing their own kind. You need to decide whether to take part in their assault, warn the stalkers or not get involved. + + + The hit: wait for the agreed time + + + The hit: Wait for the right moment + + + Unreachable stash: take the container to Snag + + + Transaction: talk to the leader of the stalker squad + + + The transaction has been sabotaged, the weapon trader is dead. Talk to the leader of the stalker squad. + + + Missing stalkers: tell the folks at Skadovsk what happened + + + You need to open the container using the keys you found and take the poison gas tank out. + + + Bloodsucker lair: get the gas tank out of the container + + + The hit: attack the robbers + + + Attacking the robbers from behind will help stalkers repel their attack. + + + The hit: meet the robbers + + + Join the robbers in attacking the stalker camp. + + + The hit: join the robbers + + + Stalkers have asked you to help them repel the robbers’ attack. You should join the robbers. When they begin the assault, you’ll be able to attack them from behind with impunity. + + + The robbers should be waiting by Shevchenko. You’ll need to meet them to take part in their assault on the stalkers. + + + Wait for the meeting with the robbers. They want to attack the stalker camp after midnight while it’s still dark. The agreed meeting place is Shevchenko. + + + The hit: get your cut + + + The attack on the stalkers was successful and you should get your cut of the loot. + + + Wait for the right moment when the robbers are distracted by the attack. You can then pounce on them from behind to help the Shevchenko stalkers. + + + Shady business: start working for Beard + + + Taking detector prototypes off stalkers working for Beard requires you to blend into their ranks. This will allow you to find out where your competitors are. + + + You need to take the container and deliver it to its owner. + + + The Stingray 2 onboard computer had maps of the area between Zaton and Jupiter. You should find someone who could use them. + + + Getting to the plateau: talk to stalkers + + + It looks like there’s no direct route to the plateau. Ask local stalkers about other ways of getting there. + + + The artifact you got from Noah is the Compass that Beard wants. + + diff --git a/gamedata/configs/text/eng/st_subtitles.xml b/gamedata/configs/text/eng/st_subtitles.xml new file mode 100644 index 0000000..06af74c --- /dev/null +++ b/gamedata/configs/text/eng/st_subtitles.xml @@ -0,0 +1,156 @@ + + + + On the morning of April 26, 1986, the reactor of power block 4 of Chernobyl NPP is destroyed following a massive thermal explosion. The resulting radioactive dust carried by the wind descends on the USSR, also scattering pockets of radiation across Europe, and even reaching America. + + + The ramifications of the disaster are so serious that the Government of the Soviet Union is forced to urgently evacuate the residents of nearby towns and villages. + + + The contaminated areas within a 30-kilometer radius of the power plant are converted into a strictly guarded Exclusion Zone. + + + Operation of the CNNP resumes following the erection of a reinforced concrete sarcophagus over the destroyed power block. The existence of a massive power source, coupled with the fact that the area is no longer inhabited, leads to the creation of a network of secret laboratories. + + + June 10, 2006. The Zone lights up with a flash of blinding light. This explosion of light is followed by a moment of complete silence and clouds evaporating in the sky. A peal of thunder then shakes the ground. Most of the soldiers guarding the perimeter are killed instantly. + + + 2007. Scientists are still unable to explain what happened. Rare expeditions into the Zone usually end in tragedy, with rare survivors telling stories of mutated animals with incredible abilities. + + + 2009. According to various estimates, the Zone is home to between one and three hundred unidentified individuals. These people call themselves stalkers and make their living by collecting anomalous formations known as artifacts, which can be sold for considerable sums of money. + + + 2010. Despite military cordons around the perimeter, the stalker phenomenon is growing in numbers. However, only the areas around the Zone’s edges have been explored: attempts to penetrate deeper into the Zone have all ended in failure. + + + 2012. A stalker called Strelok solves the secret of the Brain Scorcher, a powerful emitter capable of destroying human minds, and deactivates it. After this, stalkers rush for the center of the Zone in large numbers: some in hopes of finding a treasure trove of artifacts, others in search of the legendary Wish Granter. + + + In these changing circumstances, the National Security and Defense Council of Ukraine decides to launch an immediate special operation, known as Operation Fairway. Dozens of military helicopters carrying troops head for the CNPP, using anomaly field maps drawn up in advance to navigate the skies. Despite meticulous preparation, the operation is a failure and none of the helicopters return from the mission. + + + Major Degtyarev, a USS special agent and formerly experienced stalker, is sent into the Zone to investigate the failure of the operation. + + + Equipped with an assault rifle, two weeks’ worth of supplies and a radio to communicate with HQ, he begins his journey towards the center of the Zone. + + + Talking to stalkers yields no results... Either they don’t have the information or they don’t want to share it... + + + The Zone takes every opportunity to remind the Major that it’s no resort. Not a day passes without an attack by mutants or, worse yet, people. + + + Communication with HQ is unhelpful at best: the only reliable information available consists of the coordinates of the five crashed helicopters. Within several kilometers of the CNPP, the radio goes dead. + + + Degtyarev is alone. + + + For successfully completing his investigation, Degtyarev was rewarded with an early promotion to Colonel. He declined an offer of a cushy office position and instead requested to be sent to the Zone as the Security Service’s permanent observer. + + + The information about psy-devices obtained by Degtyarev put his superiors on alert. All the information on X-designated laboratories was removed from military archives and filed as Top Secret. USS personnel working in the Zone were ordered to prevent the disclosure of information about the work done in these laboratories at any cost. + + + Several experimental samples were made on the basis of technical documents for item 62. Following a series of tests, it was decided not to go ahead with large scale deployment of the weapon due to the high cost of ammunition. Nonetheless, there is evidence that further secret development of the Gauss rifle is ongoing. + + + Sultan and his gang left the Skadovsk after their attempts to capture the ship failed. The ensuing feeling of relative safety among stalkers led to a massive increase in the number of artifacts sold to Beard, causing his business to boom, while the Skadovsk became almost as popular as the famous 100 Rads bar. + + + Sultan’s social order settled firmly into place on the Skadovsk, and the vessel became a bandit base. Unwilling to continue paying protection fees, Beard set off with a group of stalkers to explore the yet uncharted regions of the Zone. Stalker attempts to regain control of the ship quickly ceased after a few unruly characters were made example of by being thrown off the vessel to die in emissions. + + + Skadovsk remained home to all those lucky enough to reach it. Bandits tried to establish their so-called “order” on the ship, but stalkers kept them at bay. A fragile peace broke out on the vessel. + + + Unfortunately, it didn’t last long. Bloodsuckers from the lair near the Skadovsk made their way to the ship. When bloodsucker attacks began to occur even in broad daylight, a mission was launched to deal with the problem. Unfortunately, the operation failed to clear the tunnels, and soon afterwards a wave of predators swept the ship’s residents away into oblivion. + + + Following the destruction of the bloodsucker lair, mutants were unable to significantly affect the state of affairs on the Skadovsk. For a while, the old ship became a center of relative stability in the ever-changing world that is the Zone. + + + Freedom managed to earn the trust of stalkers at Yanov station. Duty organized an assault in an attempt to regain lost ground, but Lieutenant Colonel Shulga was killed in the ensuing firefight. The Duty squad quickly fell apart after losing its commander. + + + New recruits and growing popularity among stalkers allowed Duty to drive Freedom out of Yanov station. Loki and his Freedom squad were killed after a fierce battle. + + + A fragile balance was reached between Freedom and Duty squads at Yanov station. Tired of the pointless struggle, fighters of both factions started leaving their squads and joining the free stalkers. + + + The scientific research expedition organized by Professors Hermann and Ozersky was a success. The data they collected facilitated the development of several unique devices and drugs. In light of this, funding of research programs in the Zone was vastly increased. + + + The scientific research expedition organized by Professors Hermann and Ozersky did not collect enough data and was withdrawn. On returning to the outside world, the two scientists proceeded to engage in unrelated work. + + + Garry’s stories about the army’s struggle against the dangers of Pripyat interested many, and various groups soon began exploring the ghost town. Despite the constant Monolith attacks, stalkers managed to dig in at the former army camp, which they used as a base to launch raids deep into the city, making steady progress. + + + Garry’s story about the army’s fate scared stalkers away from Pripyat. The few who dared to venture into the city ran into inexplicable and terrifying phenomena, which added further dark strokes to an already gloomy picture of the dead city. + + + The Oasis was no longer the stuff of legends. The identity of those who managed to find a way to this secret anomaly became an increasingly regular topic of conversation among stalkers. The number of adventurers trying to follow suit remained high - something the bandits continue to take advantage of. Rookies are fooled by their offers to lead them to the Oasis, which usually end in muggings at a safe distance from other stalkers. + + + Mercenary squads continue to be active in the Zone. Their interest in the secret laboratories has grown and attracted the intense attention of the USS. Despite this, attempts to establish the identity of the client behind the mercenaries proved unsuccessful. + + + The area around Yanov station continues to attract growing numbers of stalkers. The lack of dangerous mutants and abundance of anomalous areas have led to the area being referred to by stalkers as a “treasure trove” with increasing regularity. + + + The area around Yanov station gained the reputation of being one of the most dangerous places in the Zone. Fewer and fewer stalkers made it back from raids, many dying at the hands of mutants within view of the camp. One of those missing is Zveroboi, who set out to track down a chimera on what appears to have been his last hunt. + + + Zulu returned to Duty’s main base at the Rostok plant. Nobody knows what he discussed with the leader of Duty, General Voronin, but several days later he was spotted at the head of a large squad on its way to the center of the Zone. + + + Rumors of Zulu’s fate reached the leader of Duty, General Voronin. To everyone’s great surprise, Voronin decided to posthumously award Zulu with the Silver Shield, Duty’s highest decoration. + + + Vano headed off to the Freedom-controlled military warehouses, where his cheerful personality and optimism quickly earned him the popularity they merited. Ultimately, he took charge of a small group of researchers involved in investigating anomalous areas. + + + Stalkers at Yanov station still think of the cheerful Vano from time to time, recalling his light-heartedness and natural stalker skills. The consensus is that given his luck, Vano made a big mistake in deciding to look for a road to Pripyat. + + + A new stalker group appeared in the Zone. They are well-trained but their objectives are not known. Unconfirmed rumors suggest that they used to be Monolith fighters, with the squad led by a man known as Strider. + + + Few noticed the disappearance of Strider, the only man concerned with understanding what happened to those who fell under the Monolith’s spell, and helping them. + + + Senior Lieutenant Sokolov continued to fly over the Zone and was shot down by mercenaries over Limansk. Two weeks later he was picked up by a patrol near the Cordon, his survival being a minor miracle. Sokolov left the air force soon after, joining a civil airline instead. + + + The list of casualties suffered in the course of Operation Fairway was amended with yet another name: “Senior Lieutenant O.N. Sokolov. Died in the line of duty.” + + + Owl established good contacts with clients outside the Zone. He trades in information, and if rumors are true, one of his major clients is the USS. + + + A group of stalkers was forced to seek shelter on Noah’s old barge during an especially powerful emission. The barge was attacked by a horde of snorks soon after, and the stalkers quickly realized that the barge was a small but formidable fortress. Even more astonishing was a litter of pseudodog puppies that Noah himself led into battle against the snorks. + + + On discovering his friends’ fates, Cardan gave up dreams of a stalker career. Having overcome his alcoholism, he moved to Yanov, where he partnered up with Nitro to set up a full service repair shop. Both technicians gladly devote all their spare time to building a vehicle suitable for the Zone’s unforgiving environment. + + + Having overcome his alcoholism, Cardan left the Skadovsk. Stalkers said that he went to look for his missing friends. Several days later he returned, wounded and suffering from radiation poisoning. As soon as his wounds healed, he left the Zone forever. + + + Strelok passed on the information he obtained at the Chernobyl NPP to the USS commanders. This prompted the Government to create a Scientific Institute for Research of the Chernobyl Anomalous Area. Strelok took up the position of Chief Scientific Consultant to the Institute. + + + Strelok’s knowledge was lost with him. The information he found at the Chernobyl NPP, which could have been used to solve the Zone’s riddles, never reached the outside world. It seems the Zone knows how to keep its secrets. + + + When Colonel Kovalsky, commander of the Stingray group, returned from the Zone, he reported to his commanders on the reasons for the failure of Operation Fairway. Following a dragged-out investigation and the brass’ failed attempts to pin the blame on him, the Colonel was finally given an honorable discharge. + + + Colonel Kovalsky, commander of the Stingray group, found his resting place not far from the majority of his squad. Their bodies were taken in by the Zone, with nothing but old faded photographs in a specialized military museum left to remind the country of their sacrifice. + + diff --git a/gamedata/configs/text/eng/ui_st_credits.xml b/gamedata/configs/text/eng/ui_st_credits.xml new file mode 100644 index 0000000..d3fba78 --- /dev/null +++ b/gamedata/configs/text/eng/ui_st_credits.xml @@ -0,0 +1,684 @@ + + + + Sergey Chechin + + + Maciej Abramowicz + + + Armen Abroyan + + + Actors + + + Testers + + + AMD/ATI + + + Roman Androshiuk + + + Animator + + + Graphics Department + + + Art Director + + + Nikita Atroshenko + + + Damian Bajorek + + + Mikhail Bastrykin + + + Kamil Bilinski + + + Krzysztof Binkowski + + + Arkadiusz Bochenek + + + Justin Boggs + + + Anatoly Bogush + + + Wojciech Borowy + + + Stanislaw Burtsau + + + Character Models + + + Aleksey Cherevatenko + + + Jerzy Chrul + + + Wojciech Ciemny + + + Composer + + + Dmitry “Abe” Davidyan + + + Aaron Davies + + + Alexander Demidenko + + + Programming + + + Department + + + Lukasz Derewonko + + + Ruslan Didenko + + + Yuri Doroshenko + + + Elena Dovgaliuk + + + Rafal Durajczyk + + + Petr Dushinsky + + + Maciej Dziarnowski + + + Sergey Eremenko + + + Yuri "Dark” Falchenko + + + Jakub Gabryel + + + Cezary Galach + + + Game Design Department + + + Gameplay Programmers + + + CENEGA QA + + + Special thanks to + + + Filip Gerasimov + + + Grigory Hermann + + + Angelica Girich + + + Pawel Golubinski + + + Marcin Gorniak + + + Tomasz Goscicki + + + Graphics Programmers + + + Holger Grun + + + Pawel Grzywaczewski + + + Sergiy Grygorovich + + + Marcin Gutowski + + + Dmitry Yasenev + + + Intel + + + Sergey Ivantsov + + + Norbert Jankowski + + + Alexander Kachaniuk + + + Dmitry Kalita + + + Aleksander Keska + + + Andrey “Darin” Kirienko + + + Lukasz Kobylanski + + + Andrey Kolomiets + + + Artur Komorek + + + Yuri Konstantinov + + + Maria Kotolovskaya + + + Alexander Kovach + + + Kirill Koval + + + Irina Krivchikova + + + Dmitry Krivets + + + Eugene Kuchma + + + Svetlana Kudrya + + + Sergey Kurbatov + + + Olga Kuzhel + + + Dmitry Kuzmenko + + + Aleksey Kuznetsov + + + Oleg Kuznetsov + + + Szymon Lazarski + + + Lead Animator + + + Lead Artist + + + Lead Game Designer + + + Lead Programmer + + + Lead Testers + + + Lead Experts + + + Level Design + + + Proofreading + + + Vladimir Litvinenko + + + Eric Lundgren + + + Sergey Maistrenko + + + Dmitry Macedon + + + Roman Malinkin + + + Project Managers + + + Alexander Maniliuk + + + Daniel Mankowski + + + Denis Matveenko + + + Maciej Mazurek + + + Piotr Mazurkiewicz + + + Darren McPhee + + + Igor Melnikov + + + Victor Merkulov + + + Damian Mielnik + + + Pavel Mikhailov + + + Konstantin Mironov + + + Huge thanks to Oleg Fomenko + + + and BuntarMedia + + + for advice on MOCAP + + + Vladimir Morev + + + Andrey Moroz + + + Dawid Mrozowski + + + Yuri Negrobov + + + Multiplayer Programmer + + + nVidia + + + Aleksey Omelchuk + + + Lukasz Osinski + + + Mikhail Parfeniuk + + + Eugene Pashin + + + Igor Pasichnyi + + + Bartosz Peas + + + Physics Programmer + + + Jacek Piotrowski + + + Alexander Plichko + + + PR Department + + + PR Director + + + PR Managers + + + Sergey Prishepa + + + Producer + + + Project Manager + + + Testing + + + Anton Ravin + + + Sebastian Rejent + + + Mateusz Rekorajski + + + Filip Resiak + + + Peter Ross + + + Ivan Rozin + + + Lukasz Ruminski + + + Denis Rutkovsky + + + Lukasz Rynkowski + + + Business Development Manager + + + Piotr Samborowski + + + Maria Shapunova + + + Sergey Shelest + + + Igor Sidorenko + + + Mikolaj Sitkiewicz + + + Yuri Skripal + + + Konstantin Slipchenko + + + Tomasz Sobotka + + + Sound Producer + + + Special + + + thanks to + + + Oleg Stalchuk + + + Liudmila Starodub + + + Vladimir Stavitsky + + + Pawel Stempien + + + Pawel Strzelczyk + + + Credits + + + Konstantin Stupivtsev + + + Customer + + + Support + + + Rafal Szekalski + + + Maciej Szumowski + + + Marcin Szwargolinski + + + Vladimir Tereshiuk + + + Sergey Terliuk + + + Textures + + + And everyone else who helped us + + + make the game even better: + + + Konstantin Morozkov + + + Yaroslav “Uncle Yar” Alexandrov + + + Dmitry “Comandor” Ivanov + + + Oleg Chernov + + + Ig. Valerian (Golovchenko) aka oVal + + + M. Bystrykhin + + + Eugene “Mulder” Khaletskiy + + + Pavel “Goon” Bolotov + + + Alexander “Leks” Abramov + + + Alexander Novikov + + + Alexander Poshtaruk, Andrey Oleshk + + + Eugene “KRANZ” Goncharenko + + + Sergey Dvuzhilny + + + Aleksey "Don Reba” Badalov + + + Sergey Dvuzhilny, Tolusha + + + Artem Zuev, aka BAC9-FLCL + + + Glot, Patriot, Mers + + + Tiger, Demesis, Kharon, Moby + + + Alexander Oleinik + + + Konstantin “Inquisitor” Kriuchkov + + + Alexander Shakhovsky, Igor Dolzhenko + + + Sergey “Tur” Leshenko + + + Dmitry “Hill” Gorban + + + Mikhail Kliuev + + + Sergey “Termite” Volchanov + + + Sergey Tikhomirov + + + Ilya Tolmachev + + + Jakub Trudzik + + + Interface Design + + + Yuri Uralsky + + + Denis “Tetri$Zs” Yusupov + + + RandyJ VanderHeyden + + + Vladimir Vazhinsky + + + Andrey Verpakhovsky + + + Alexander Vilkov + + + Anastassia Voskolovich + + + Andrzej Wardziak + + + Web Programmer + + + Dominik Wojcik + + + Lukasz Watroba + + + Eugene Yablon + + + Yuri Yatsenko + + + Eugene Yatsiuk + + + Oleg Yavorsky + + + Valentin Yeltyshev + + + Eugene Zaitsev + + + Andrey Zakoliukin + + + Marek Zdziarski + + + Michal Zegarski + + + Albert Zmudzki + + + Aleksey Zorin + + + Bartosz Zukowski + + + Victoria “Morrant” Yukhno + + + Sergey “ion” Kalintsev + + + Roman “RVCool” Kulikov + + + Maxim Smirnov + + + Omar Al-Shekhly + + + Roman =Marauder= Arhipov + + diff --git a/gamedata/configs/text/eng/ui_st_inventory.xml b/gamedata/configs/text/eng/ui_st_inventory.xml new file mode 100644 index 0000000..6ea4299 --- /dev/null +++ b/gamedata/configs/text/eng/ui_st_inventory.xml @@ -0,0 +1,303 @@ + + + + Not enough money + + + The character does not have enough money + + + $$ACTION_QUICK_USE_1$$ + + + $$ACTION_QUICK_USE_2$$ + + + $$ACTION_QUICK_USE_3$$ + + + $$ACTION_QUICK_USE_4$$ + + + activate artifact + + + attach grenade launcher to + + + attach scope to + + + attach silencer to + + + Price + + + Group: + + + Condition + + + detach grenade launcher + + + detach scope + + + detach silencer + + + wear suit + + + drop + + + drop all + + + eat + + + kg + + + attach to belt + + + move to backpack + + + move to slot + + + The trader isn’t interested in items like this. + + + The item is too damaged to be traded. + + + play + + + sell item + + + Armor condition + + + Radioactive contamination + + + remove suit + + + unload + + + use + + + Wgt. + + + Mag. size + + + Accuracy + + + Buy basic ammo for pistol (Q) + + + Buy rifle ammo (W) + + + Wound healing + + + Cancel + + + Cannot buy weapon + + + Amount restrictions + + + Damage + + + Default (F5) + + + Back + + + Buy underbarrel grenade launcher for rifle (D) + + + Buy underbarrel grenade launcher grenades (E) + + + Handling + + + Now + + + Health restoration + + + Heavy + + + Buy last purchased loadout + + + Previous (F4) + + + Money + + + Required + + + Not enough money + + + OK + + + Weight carried + + + Ther. prot. + + + Chem. prot. + + + Armor + + + Rad. prot. + + + Elec. prot. + + + Psy prot. + + + Impact neg. + + + Energy recovery + + + Loadout 1 (F1) + + + Loadout 2 (F2) + + + Loadout 3 (F3) + + + Radiation + + + Rank restriction + + + Fire rate + + + Clear (C) + + + Assault rifles + + + Hunger elimination + + + Buy optical scope for rifle (S) + + + Sell all items in backpack (X) + + + Rifles + + + Buy silencer for pistol (A) + + + Buy silencer for rifle (F) + + + Sniper + + + Time + + + Already got one + + + Online S.T.A.L.K.E.R. services are not accessible. + + + Cannot connect to master server. + + + Protection: + + + Default + + + Purchased loadout saved as + + + Total weight: + + + drink + + + Energy recovery + + + Bleeding + + + Maximum weight + + + Health + + + Ammo + + + Duration + + + sec + + + Allows you to survive an emission + + + wear helmet + + + remove helmet + + diff --git a/gamedata/configs/text/eng/ui_st_ixray.xml b/gamedata/configs/text/eng/ui_st_ixray.xml new file mode 100644 index 0000000..12c522f --- /dev/null +++ b/gamedata/configs/text/eng/ui_st_ixray.xml @@ -0,0 +1,424 @@ + + + + S.T.A.L.K.E.R.: Call of Pripyat + + + Main menu + + + Level: + + + quick save + + + auto save + + + Protagonist Shadow + + + Grass Shadows + + + Hud Shadows + + + Cloud Shadows + + + Rendering Scale + + + FXAA + + + SMAA + + + TAA + + + Scaling + + + Standard (Linear) + + + Point + + + DLSS + + + FSR2 + + + Intel XeSS + + + Freeplay + + + Multithreaded Texture Loading + + + Shadow Map + + + 1024x1024 + + + 2048x2048 + + + 3072x3072 + + + 4096x4096 + + + Always Active + + + Open trunk ($$ACTION_USE$$) + + + Use ($$ACTION_USE$$) + + + m + + + Hit Distance + + + DoF on Reload + + + DoF on Talk + + + FPS Counter + + + Sharpness + + + Alpha Testing + + + GTAO + + + Vignette + + + Chromatic aberr. + + + Water refl. + + + Scaling Quality + + + Anti-Aliasing + + + Quality + + + Balanced + + + Performance + + + Ultra Performance + + + Custom + + + General Settings + + + Surface Settings + + + Anti-Aliasing and Scaling Settings + + + Lighting Settings + + + Sunlight Settings + + + Effects + + + Postprocessing + + + Saturation + + + take + + + take all + + + Stash all + + + Stash all items + + + move + + + move all + + + Enhanced full dyn. lighting (DX10) + + + ultra + + + % + + + Binocular + + + Knife + + + BM16 + + + Groza + + + SVD + + + AK74 + + + LR300 + + + HPSA + + + PM + + + RG6 + + + RPG7 + + + Shotgun + + + AutoShotgun + + + Magazine + + + SVU + + + USP45 + + + VAL + + + Vintorez + + + Walther + + + Stat mgun + + + Bloodsucker + + + Boar + + + Dog + + + Flesh + + + PseudoDog + + + Burer + + + Cat + + + Chimera + + + Controller + + + Izlom + + + Poltergeist + + + PseudoGiant + + + Zombie + + + Snork + + + Tushkano + + + PsyDog + + + PsyDog (Phantom) + + + Extended grass shadows + + + Volumetric puddles + + + Grass distance + + + Artefact + + + Car + + + Smart terrain + + + Level changer + + + Actor (player) + + + Stalker + + + Helicopter + + + Space restrictor + + + Physics Object + + + Smart cover + + + Destroyable object + + + Hanging lamp + + + + Screenshot format + + + .jpg + + + .tga + + + .png + + + CLIENT: Connecting to + + + CLIENT: Spawning + + + CLIENT: Synchronizing + + + Creating new game + + + Language + + + Russian + + + English + + + max + + + off + + + on + + + Contacts + + + Contacts + + + Show stalker contact list + + + take off backpack + + + put on backpack + + + Camera bobbing factor + + + Slowdown after damage + + + Toggle Aim + + + Wipe mask + + + Mouse sensitivity in UI + + diff --git a/gamedata/configs/text/eng/ui_st_keybinding.xml b/gamedata/configs/text/eng/ui_st_keybinding.xml new file mode 100644 index 0000000..33e017c --- /dev/null +++ b/gamedata/configs/text/eng/ui_st_keybinding.xml @@ -0,0 +1,225 @@ + + + + PDA + + + Order to attack + + + Walk + + + Artifact + + + Back + + + Binoculars + + + Buy menu + + + Chat + + + Team Chat + + + Console + + + Contacts in PDA + + + Crouch + + + Toggle crouch + + + Detector + + + Down + + + Drop + + + Fire + + + Next firing mode + + + Previous firing mode + + + Forward + + + Underbarrel grenade launcher + + + General + + + Direction + + + Backpack + + + Movement + + + Multiplayer + + + Weapon + + + Backpack + + + Jump + + + Left + + + Lean left + + + Strafe left + + + Map in PDA + + + Weapon in next slot + + + Night vision device + + + Pause + + + PDA + + + Weapon in previous slot + + + Back + + + Reload + + + Repair + + + Right + + + Lean right + + + Strafe right + + + Points + + + Screenshot + + + Model selection menu + + + Run + + + Team selection menu + + + Flashlight + + + Activate + + + Up + + + Use + + + Quick bandage + + + Quick medkit + + + Start vote + + + Vote + + + Vote “No” + + + Vote "Yes” + + + Weapon 1 + + + Weapon 2 + + + Weapon 3 + + + Weapon 4 + + + Weapon 5 + + + Weapon 6 + + + Change ammo type + + + Previous weapon of this type + + + Zoom + + + Voice messages (1) + + + Voice messages (2) + + + Quick Access Slot 1 + + + Quick Access Slot 2 + + + Quick Access Slot 3 + + + Quick Access Slot 4 + + diff --git a/gamedata/configs/text/eng/ui_st_loadscreen.xml b/gamedata/configs/text/eng/ui_st_loadscreen.xml new file mode 100644 index 0000000..919326e --- /dev/null +++ b/gamedata/configs/text/eng/ui_st_loadscreen.xml @@ -0,0 +1,474 @@ + + + + 100 ZONE SURVIVAL TIPS + + + Shooting an enemy in the eye will result in an instant kill, regardless of his armor level. + + + The AC-96/2 has a unique two round burst firing mode. In this mode, both bullets in a burst will hit the same spot. + + + Double-barreled shotguns can be used to fire both barrels almost simultaneously. + + + Don't underestimate pistols. They provide considerable stopping power and can be very effective against poorly armored targets. + + + Sniper rifles are ideal for eliminating enemies from a distance, thanks to their flatness and accuracy characteristics. They are less effective at close range. + + + Firing on the move is considerably less accurate than when you are standing still or crouching. + + + Weapons and protective suits will wear out quickly in the harsh conditions of the Zone. Worn-out weapons are less accurate and prone to misfire, while suits will not protect you as well. + + + To make a screenshot, press "$$ACTION_SCREENSHOT$$". + + + The artifact or the player carrying it is shown on the minimap. If the artifact is far away, an arrow on the minimap will indicate its direction. + + + The AC-96/2 has a unique two round burst firing mode. In this mode, both bullets in a burst will hit the same spot. + + + Double-barreled shotguns can be used to fire both barrels almost simultaneously. + + + Don't underestimate pistols. They provide considerable stopping power and can be very effective against poorly armored targets. + + + Sniper rifles are ideal for eliminating enemies from a distance, thanks to their flatness and accuracy characteristics. They are less effective at close range. + + + Weapons and protective suits will wear out quickly in the harsh conditions of the Zone. Worn-out weapons are less accurate and prone to misfire, while suits will not protect you as well. + + + Some medical products have unique properties. For example, Hercules pills allow you to temporarily carry more weight, while psy-blocking drugs help you resist psy-emissions. + + + To take a screenshot, press "$$ACTION_SCREENSHOT$$". + + + Tip # + + + Vodka, a cheap alternative to antirad meds, is the easiest way to reduce the effects of radiation on the body. + + + You can access detailed information about the current mission by holding "$$ACTION_SCORES$$". + + + You need a detector to search for artifacts. The best detectors make searching easier and may even detect more valuable artifacts. + + + Stalkers don’t let people with their weapons out into their camps. To hide your weapon press the appropriate key ("$$ACTION_WPN_1$$", "$$ACTION_WPN_2$$", "$$ACTION_WPN_3$$", "$$ACTION_WPN_4$$"). + + + You can locate the edges of an anomaly by throwing bolts. To get your bolt out, press "$$ACTION_WPN_6$$". + + + As well as addressing your hunger, food will also slightly improve your health. + + + Energy drinks temporarily improve your endurance recovery, which increases your potential mobility. + + + Low endurance can make you immobile and vulnerable to enemy attack at crucial moments. + + + You can monitor your concealment status using the noise and enemy detection indicators located in the top left-hand corner of the screen. + + + Having a detector in one hand doesn’t stop you from using a knife, pistol or bolt with your other hand. + + + Some medical products increase the body’s resistance to harmful effects. Using such products can save your life during missions into anomalous areas. + + + You can bring up the context menu for items in your backpack by placing your mouse over the required item and pressing the right mouse button. + + + In addition to their useful effects, most artifacts are also radioactive. This can be compensated for by using artifacts that absorb radiation. + + + Your knife is ineffective against enemies armed with firearms. Use it in close combat or for a stealthy kill. + + + The weight you are carrying reduces your endurance. Excess weight will restrict your mobility, while being completely overloaded will stop you from moving altogether. + + + A detector is the only reliable way of checking anomalous areas for artifacts. + + + Most artifacts will remain invisible as they move around in the anomalous area, until they are identified by your detector. + + + Mutants are more active come nighttime, which explains why stalkers prefer to wait for sunlight before venturing into the Zone. + + + If you have suffered serious radiation exposure, use anti-radiation drugs. If you don't have any, use medkits to deal with the initial symptoms and until you make it to a medic. + + + Most stalkers can take you to nearby locations, but only an experienced guide can lead you safely and quickly to distant areas. Despite this, they will all charge you an arm and a leg for the service. + + + Selling artifacts isn’t the only way to make some cash: offloading unneeded equipment can be a profitable business, too. Keep in mind that traders aren’t usually interested in items that are seriously damaged. + + + To detach a silencer, scope or underbarrel grenade launcher from your weapon, right-click on the weapon in your backpack and select the appropriate action from the context menu. + + + If you want to move with minimal noise, press "$$ACTION_ACCEL$$" to walk or "$$ACTION_CROUCH$$" to crouch. + + + Shotguns are close-combat weapons. The further your enemy is from you, the less effective they are. + + + When taking cover from small arms fire, make sure to hide behind something solid. Unlike concrete walls, wooden boards and sheet metal don't make for very safe cover. + + + Headshots do critical damage and are fatal for most enemies. + + + Each type of mutant in the Zone has its own combat traits. If you take these into account, you will be far more likely to survive. + + + You can adjust how far you throw a grenade by holding "$$ACTION_WPN_ZOOM$$". + + + Enemies can and will use grenades. When you see the grenade indicator, leave the kill zone immediately. + + + Speeding up before you jump allows you to overcome big gaps and cracks. + + + Key indicators that show your health and endurance are located in the bottom right-hand corner of the screen. + + + The Zone has a life of its own, which means that there’s always a chance of bumping into mutants or enemy stalkers in areas that you have already cleared. + + + Stay alert in the Zone and don’t rely on old information. When you return to an anomalous area you’ve already explored, you may find that the old tested path is no longer available. + + + Talking to regular stalkers may yield useful information about new areas or recent events. + + + You can use any weapon in both weapon slots. This allows you to create flexible weapon combinations, such as assault rifle/shotgun and pistol/sniper rifle. + + + Every trader you encounter in various stalker camps offers his own, unique range of goods. As an example, medics are bound to have the best selection of medical products. + + + If you get to a stalker camp wounded or with radiation poisoning, you can make use of free assistance from the local medic. + + + You can leave your things in a personal box at the camp to avoid dragging around unnecessary stuff. + + + If you need to wait for a specific hour you can take a nap at the camp to pass the time. To do this, find the sleeping area, press "$$ACTION_USE$$" and choose how long you want to sleep for. + + + The night vision device in your helmet can be upgraded to the next-generation version. This will expand its coverage range considerably. + + + When out in the Zone, keep a couple of spare magazines on you - they’re bound to come in handy. + + + Remember to save your game regularly - this will prevent you from playing the same parts over and over. + + + To use drugs appropriately it helps to know what they do. Consult drug descriptions to find out the effects of certain drugs. + + + Use grenades to attack enemies in cover. Keep in mind the grenade’s blast radius to avoid hurting friendly fighters. + + + To discard an item from your backpack right-click the item and select the appropriate action from the context menu. + + + You can use the special setting in the options menu to have the game save your progress automatically at key points. + + + When you return to camp you should repair your equipment, sell unneeded loot and restock on ammo and medical supplies. + + + To reduce the harmful effects of anomalous areas during raids into the Zone, use a protective suit, artifacts, or take appropriate drugs. + + + In addition to weapons and ammo, enemy bodies may contain valuable items like PDAs with information on them. + + + Artifacts aren’t just valuable loot: in addition to being light and expensive, they can often have extremely useful effects. + + + Due to the Zone’s environment, many mutants are radioactive. Approaching them without adequate radiation protection is extremely dangerous. + + + You can use a bandage, a military medkit or Vinca drugs to stop bleeding. If you don’t deal with it quickly, bleeding can seriously damage your health. + + + Some weapons allow you to install an adjustable long-range scope. To adjust range, press "$$ACTION_NEXT_SLOT$$" or "$$ACTION_PREV_SLOT$$". + + + Some places are impossible to pass through even when crouching. To crouch as low as you can, press and hold "$$ACTION_CROUCH$$" and "$$ACTION_ACCEL$$" simultaneously. + + + To reduce your chances of being hit by enemy fire, return fire by leaning around corners. To do this hold "$$ACTION_LLOOKOUT$$" or "$$ACTION_RLOOKOUT$$". + + + Thanks to a built-in target location mechanism, your binoculars allow you to not only get a good look at distant objects but also locate enemies. To get your binoculars out, press "$$ACTION_WPN_5$$". + + + To turn your flashlight on or off, press "$$ACTION_TORCH$$". + + + To get your bolt out, press "$$ACTION_WPN_6$$". + + + If you have a night vision device built into your helmet, you can activate and deactivate it by pressing "$$ACTION_NIGHT_VISION$$". + + + Press "$$ACTION_QUICK_USE_1$$", "$$ACTION_QUICK_USE_2$$", "$$ACTION_QUICK_USE_3$$", "$$ACTION_QUICK_USE_4$$" to use the appropriate item in your quick access panel. + + + Drugs don’t take effect immediately and some last for quite a long time. + + + Your PDA has a map, information about current missions, your personal statistics and a message log. To open your PDA, press "$$ACTION_ACTIVE_JOBS$$". + + + You need to get your detector out to search for artifacts. To do this, press "$$ACTION_SHOW_DETECTOR$$". + + + To pause the game, press "$$ACTION_PAUSE$$". + + + To quicksave, press "$$ACTION_QUICK_SAVE$$". Press "$$ACTION_QUICK_LOAD$$" to quickload the last quicksave. + + + Running is the fastest way of moving, but also the most tiring. Press "$$ACTION_SPRINT_TOGGLE$$" to run. + + + Firing while aiming is far more accurate than firing from the hip. To aim, press "$$ACTION_WPN_ZOOM$$". + + + If you have an underbarrel grenade launcher, you can switch between it and the normal firing mode by pressing "$$ACTION_WPN_FUNC$$". + + + If you have several types of ammo for your current weapon, you can switch between them by pressing "$$ACTION_WPN_NEXT$$". + + + To reload your weapon before your magazine is empty, press "$$ACTION_WPN_RELOAD$$". + + + To discard your current weapon, press "$$ACTION_DROP$$". + + + To wait out an emission, take cover in a reliable building or underground. When an emission is approaching, the nearest cover will be marked on your PDA. + + + To use an item via the quick access slot, drag it from your backpack to one of the four slots above the artifact containers. + + + The blood drop symbol in the bottom right-hand corner of the screen warns you of bleeding and the need to stop it. The color of the symbol indicates how serious the bleeding is. + + + A radiation danger symbol in the bottom right-hand corner of the screen will warn you that you have been exposed to radiation. When this happens, you should use anti-radiation meds. The color of the symbol indicates how badly exposed you are. + + + You can hide and show different markers on the map in your PDA using filters. Filter buttons are located above the map, under the current mission line. + + + Artifacts are not usually static: they tend to move within an anomalous area. Gun ho attempts to chase down an artifact will lead you into an anomaly in no time. + + + Some stalkers may offer you services, such as information, exclusive goods, or give you orders for specific artifacts. + + + New artifacts may appear in anomalous areas that you’ve already explored after an emission. + + + You can change the game difficulty in the game options menu at any time. + + + Technicians in stalker camps can upgrade your weapons, suits and helmets. + + + If you want to survive, always keep track of the crackling noise made by the Geiger counter, which warns you of radiation, and the anomaly danger signal that lets you know you’re close to an anomaly. + + + Your relations with people directly affect the price of goods and services you may wish to purchase. If your relationship is sour, don’t expect a discount. If you’re getting along well, the trader might even be inclined to offer you something special. + + + You can unload the weapons you find to get more ammo. To do this, right-click on the weapon in your backpack and select the appropriate action from the context menu. + + + Killing enemies and acquiring artifacts earns you points required to increase your rank. When your rank increases, you will gain access to new weapons, armor and equipment. + + + Smoke grenades are used to steal the artifact or create cover. + + + The left part of the buy menu contains five tabs, from the top down: pistols, main weapons, equipment, ammunition and medical supplies. Selecting the required tab shows you the range of items available at your rank. + + + The buy menu on the right-hand side of the screen contains four quick buy slots. Pressing the disk icon saves the loadout, while pressing the relevant number will load that loadout. The fourth slot is used to automatically save the last loadout purchased. + + + If you have more than one weapon, you can switch between them by repeatedly pressing "$$ACTION_WPN_3$$". + + + An artifact can be activated to create an anomaly. To do this take the artifact out by pressing "$$ACTION_ARTEFACT$$" and holding "$$ACTION_WPN_FIRE$$". The anomaly which appears is equally dangerous to enemies and the player who created it. + + + A scientific suit will help you survive in anomalies and radioactive areas. + + + ARTIFACT HUNT: In order to win, you must bring a certain number of artifacts to your base. + + + To detach a silencer, scope or underbarrel grenade launcher from your weapon, right-click on the weapon in your backpack and select the appropriate action from the context menu. + + + If you want to move with minimal noise, press "$$ACTION_ACCEL$$" to walk or "$$ACTION_CROUCH$$" to crouch. + + + Shotguns are close-combat weapons. The further your enemy is from you, the less effective they are. + + + When taking cover from small arms fire, make sure to get behind something solid. Unlike concrete walls, wooden boards and sheet metal don't make for very safe cover. + + + Headshots do critical damage and are fatal for most enemies. + + + Accelerated movement, jumping and wounds significantly reduce your endurance. + + + You can adjust how far you throw a grenade by holding "$$ACTION_WPN_ZOOM$$". + + + Enemies can and will use grenades. When you see the grenade indicator, leave the kill zone immediately. + + + DEATHMATCH: Get the most kill points to win. + + + Speeding up before you jump allows you to leap over big gaps and cracks. + + + Key indicators that show your health and endurance are located in the bottom right-hand corner of the screen. + + + The minimap shows the direction of the artifact. If the arrow is pointing up, the artifact is above your current position; if the arrow is pointing down, it is below you. + + + You can collect enemy backpacks to gain additional cash. Excess equipment can be sold at the base. + + + You should cover the artifact-carrying member of your team at all costs. + + + Use grenades to attack enemies in cover. Keep in mind the grenade’s blast radius to avoid hurting friendly fighters. + + + You can communicate with your team using voice messages. To access the voice message menu, press "$$ACTION_SPEECH_MENU_0$$" or "$$ACTION_SPEECH_MENU_1$$". + + + TEAM DEATHMATCH: In order to win, your team needs to get more kill points than the enemy. + + + A vote can be started by pressing "$$ACTION_VOTE_BEGIN$$". + + + To see game scores, press "$$ACTION_SCORES$$". + + + To respawn press "$$ACTION_JUMP$$" once the waiting period has ended. + + + To open the buy menu, press "$$ACTION_BUY_MENU$$" while inside your base. + + + You can open general chat by pressing "$$ACTION_CHAT$$". To communicate with your team only using text chat, press "$$ACTION_CHAT_TEAM$$". + + + Running is the fastest way of moving, but also the most tiring. Press "$$ACTION_SPRINT_TOGGLE$$" to run. + + + Firing while aiming is more accurate than shooting from the hip. To aim, press "$$ACTION_WPN_ZOOM$$". + + + If you have an underbarrel grenade launcher, you can switch between it and the normal firing mode by pressing "$$ACTION_WPN_FUNC$$". + + + If you have several types of ammo for your current weapon, you can switch between them by pressing "$$ACTION_WPN_NEXT$$". + + + To reload your weapon before your magazine is empty, press "$$ACTION_WPN_RELOAD$$". + + + CAPTURE THE ARTIFACT: In order to win, you must bring a certain number of enemy artifacts to your base. + + + To discard your current weapon, press "$$ACTION_DROP$$". + + + To look in your backpack, press "$$ACTION_INVENTORY$$". + + + Most weapons have several firing modes. To switch between firing modes, press "$$ACTION_WPN_FIREMODE_NEXT$$" or "$$ACTION_WPN_FIREMODE_PREV$$". + + + Some places are impossible to pass through even when crouching. To crouch as low as you can, press and hold "$$ACTION_CROUCH$$" and "$$ACTION_ACCEL$$" simultaneously. + + + To look around a corner, press "$$ACTION_LLOOKOUT$$" or "$$ACTION_RLOOKOUT$$". You cannot fire while looking around a corner. + + + CAPTURE THE ARTIFACT: To return a stolen artifact to your base, you need to kill the enemy carrying it and pick it up by pressing "$$ACTION_USE$$". + + + ARTIFACT HUNT: You can destroy the artifact by activating it. To do this, take the artifact out by pressing "$$ACTION_ARTEFACT$$" and hold "$$ACTION_WPN_FIRE$$". + + + You cannot run while carrying the artifact. + + + To look in your backpack, press "$$ACTION_INVENTORY$$". + + + To repair an item you'll need to find a technician and click the repair button once you have selected the item in the modification screen. You can also right-click on the item in the same window to select the appropriate action from the context menu. + + + Most weapons have several firing modes by default and you can buy modifications to add new ones later. To switch between firing modes, press "$$ACTION_WPN_FIREMODE_NEXT$$" or "$$ACTION_WPN_FIREMODE_PREV$$". + + + Weapon flatness affects bullet trajectory, while handling determines the time it takes the sight to return to its original position after firing. + + + Some suits have integrated helmets. It is not possible to use other helmets with such suits. + + + Each weapon has unique accuracy, handling, damage and rate of fire characteristics, allowing you to pick one that’s right for you from a large selection. + + + Firing accuracy suffers considerably when you’re on the move. Stand still or crouch to improve it. + + + This energy drink temporarily speeds up energy recovery, allowing you to sprint for longer. + + + You have unlimited ammo when playing in Deathmatch mode. + + + One of the most common threats in the Zone is radiation. Serious exposure will harm your health and can be terminal if not treated adequately. + + + Take some food with you when going out on a long raid. If you get really hungry, your endurance recovery will suffer greatly. + + diff --git a/gamedata/configs/text/eng/ui_st_mm.xml b/gamedata/configs/text/eng/ui_st_mm.xml new file mode 100644 index 0000000..154af8d --- /dev/null +++ b/gamedata/configs/text/eng/ui_st_mm.xml @@ -0,0 +1,936 @@ + + + + Clear + + + Cloudy + + + medium + + + maximum + + + high + + + low + + + minimal + + + Night + + + Rain + + + GAME TYPE + + + master + + + rookie + + + veteran + + + ICONS + + + MAP + + + Return by activation + + + Allow voting + + + Anomaly time (min) + + + Artifact capture + + + Artifact delay + + + Number of artifacts + + + Artifact time + + + Artifact return + + + Team autobalance + + + Auto team-swap + + + AVAILABLE MAPS + + + Cancel + + + CD-key + + + check CD-key + + + Client + + + Create + + + Invulnerability (sec) + + + Invulnerability indicator + + + Deaths + + + Dedicated + + + Demo list + + + player stats + + + Record demo + + + Demo recording + + + Empty + + + Filters + + + Forced respawn (sec) + + + Frag limit + + + Frags + + + Delay time + + + Friendly damage + + + Friendly indicators + + + Friendly names + + + Full + + + Mode + + + IP/host:port + + + Internet + + + Connect + + + LAN + + + Listen + + + Repeat + + + Map list + + + Player limit + + + Network connection + + + No anomalies + + + Options + + + Password + + + Player name: + + + Players + + + number of players + + + Internet server + + + Quick refresh + + + Change coefficient + + + Refresh all + + + Reinforcements (sec) + + + Respawn options + + + SELECTED MAPS + + + Server + + + Server list + + + Server properties + + + Server info + + + Server + + + Server name + + + Server settings + + + Spectator + + + First person + + + Free camera + + + Free-locked + + + Third person + + + Spectator settings + + + Team only + + + Starting weather + + + score + + + Time limit (min) + + + Warmup (sec) + + + Weather options + + + No friendly fire + + + No password + + + No PunkBuster + + + With password + + + LAN + + + Internet + + + Agroprom factory + + + Vehicle station + + + Pool + + + Unique name change successful! + + + Dark Valley + + + Yantar factory + + + error in connecting to stats server + + + error in connecting to log in server + + + Authorization successful + + + Desolated village + + + Military warehouses + + + wrong name + + + Pool + + + Railway station + + + Rostok factory + + + wrong unique name + + + Are you sure you want to remove + + + Deserted factory + + + PING + + + PLAYERS + + + Static lighting + + + Full dynamic lighting + + + Enhanced full dynamic lighting + + + Objects dynamic lighting + + + Enhanced full dyn. lighting (DX10) + + + SERVER NAME + + + Artifact hunt + + + Artifact capture + + + Free for all + + + Filter: + + + high + + + low + + + medium + + + off + + + experienced + + + legendary stalker + + + rookie + + + professional + + + veteran + + + Team play + + + Frequency 60Hz + + + Action + + + Advanced + + + Alternative + + + Anisotropic filtering + + + Apply + + + Back + + + Blood + + + Brightness + + + Cancel + + + Game updates + + + Contrast + + + Controls + + + Credits + + + Crosshair target distance + + + Default + + + Delete + + + Do you really want to delete this file? + + + Grass detail density + + + Difficulty + + + Disconnect + + + Are you sure you want to disconnect? + + + Depth of field + + + Dynamic crosshair + + + Dynamic music + + + EAX + + + Full screen + + + Game + + + Gamma + + + Object detail + + + Invert mouse + + + Button + + + Keyboard setup + + + Last save + + + Lighting distance + + + Load + + + Load game + + + Quit profile + + + Master + + + SFX Volume + + + Mouse sensitivity + + + Smooth A-test objects + + + Optimize smoothing + + + MULTIPLAYER + + + Multiplayer + + + Music volume + + + Changes will only take effect after the game is restarted + + + Multiplayer + + + New game + + + Rookie + + + NPC flashlights + + + OPTIONS + + + Options + + + Particle distance + + + Quality settings + + + Exit to Windows + + + Quit game + + + Are you sure you want to quit the game? + + + Are you sure you want to exit to Windows? + + + Detail bump + + + Steep parallax + + + Sun shadow + + + Grass shadow + + + Sun quality + + + Use DX10.1 + + + Full screen smoothing + + + Wet surfaces + + + Optimize geometric buffer + + + Volumetric smoke + + + Render 2 + + + Render type + + + Resolution + + + Return to game + + + Save + + + Save game + + + Draw crosshair + + + Show weapon + + + Basic + + + Sound device + + + Soft particles + + + Soft water + + + Sound + + + Sound quality + + + Stalker + + + Shadow quality + + + Sun rays + + + Antialiasing + + + AI uses flashlights + + + Texture detail + + + NPC identification + + + Veteran + + + Video + + + Vision distance + + + Volumetric light + + + Vertical sync + + + Change unique name + + + This e-mail is already in use + + + Via the Internet + + + Via the LAN + + + stabbed in the back + + + of blood loss + + + in an explosion + + + in the eye + + + in the head + + + Save file version does not match game version. + + + kill streak + + + knife + + + Last loadout + + + Enter multiplayer + + + Name + + + Change + + + Loadout 1 + + + Loadout 2 + + + Loadout 3 + + + Reset + + + Sell all + + + Version + + + Pripyat + + + Crouch/stand mode + + + Autosaving + + + Detailed textures + + + Movies + + + Enter + + + Exit + + + Create + + + Wrong e-mail or password + + + Wrong profile + + + Connection error + + + Server currently unavailable + + + Profile login required + + + Connection error + + + Connection error + + + Connection error + + + Wrong profile name + + + Wrong password + + + Wrong unique nickname + + + Unique nickname already in use + + + Please login to your profile first + + + Please log out of your profile first + + + Error in connecting to profile server + + + You will not be able to delete the profile after creating it + + + SSAO quality + + + SSAO mode + + + default + + + HDAO + + + HBAO + + + Show interface + + + Unique nickname not registered. Please register it + + + Unique nickname expired. Please reregister it + + + stalker + + + max high + + + Enhanced full dyn. lighting (DX11) + + + Please login to connect to the external server. + + + This GameSpy ID is currently in use. Please use another GameSpy ID. + + + Wrong e-mail + + + Wrong password + + + You cannot use a GameSpy ID to connect to a local server. Please use the LAN game mode. + + + You were kicked by the server. + + + You were banned by administrator: + + + You were banned by the server + + + Server info + + + The e-mail address is too long. You cannot enter more than 50 characters. + + + Wrong e-mail + + + The password is too short + + + The password is too long + + + E-mail not found + + + Unique nickname not set + + + Unique nickname is too long. You cannot enter more than 30 characters. + + + The unique nickname may only contain numbers, Latin letters and the following special symbols + + + The unique nickname cannot contain spaces + + + The unique nickname may not begin with a number or any of the following symbols: '@', '+', ':' or ‘#’ + + + very high + + + Tessellation + + + Apply changes? All changes will be reverted in + + diff --git a/gamedata/configs/text/eng/ui_st_mp.xml b/gamedata/configs/text/eng/ui_st_mp.xml new file mode 100644 index 0000000..6b16028 --- /dev/null +++ b/gamedata/configs/text/eng/ui_st_mp.xml @@ -0,0 +1,741 @@ + + + + Artifact + + + Friendly + + + Max ping + + + Profile + + + Modes + + + The artifact was destroyed. + + + The artifact has spawned. Bring it to the base to score a point. + + + The artifact was lost. + + + The artifact is at our base. + + + The artifact is at the enemy base. + + + Artifacts + + + Artifacts + + + Autoselect + + + Back + + + 4. Ban + + + By anomaly + + + Cancel + + + captured the artifact + + + 5. Change map + + + 6. Change weather + + + Change weather to + + + Chat + + + Connected + + + Deaths + + + Description + + + Disconnected + + + Enter text for the vote + + + joined the game + + + Fire station + + + (First person view) + + + frags + + + Frags + + + (Free camera) + + + (Third person view) + + + with + + + 7. Mode + + + Garbage + + + FORWARD! + + + lost%s the artifact + + + lost the artifact + + + got%s the artifact + + + Mercenaries + + + is now + + + has joined + + + 3. Drop + + + Limansk + + + Loading your awards... + + + Loading your records... + + + (Free-locked) + + + Map description + + + Match started! + + + Old village + + + Modes + + + Name + + + Next + + + Haven't voted + + + Ping + + + %s won the match! + + + Players + + + Press Fire to switch to Spectator mode + + + Press Jump to buy an instant respawn + + + Press Jump to select a skin + + + Press Jump to select teams + + + Press Jump to spawn + + + Press Jump to start + + + Press ($$ACTION_BUY_MENU$$) to access the buy menu + + + You have %d$. You can respawn for %d$. Click Yes to pay. + + + Ready... + + + Repair base + + + 1. Restart + + + 2. Fast restart + + + returned the artifact + + + scored a point + + + Select player to ban by voting + + + Select voting category + + + Select player to kick by voting + + + Select player to kick by voting + + + Select map to vote for + + + No running with artifact + + + - Count + + + - Stay time + + + - Respawn time + + + Anomalies + + + Anomaly period + + + Any time + + + Artifact captured + + + Artifacts: + + + Team autobalance + + + Auto team-swap + + + BattlEye + + + Disabled + + + Enabled + + + - First person + + + Forced Respawn + + + Frag limit + + + - Free Fly + + + - Free Look + + + Friendly Fire + + + Friendly indicators + + + Friendly Names + + + Infinite + + + Invisibility: + + + - Indicators + + + - Time + + + - Third person + + + Map rotation + + + Max ping + + + min + + + No + + + Respawn + + + Players returned to bases + + + sec + + + Server Name: + + + Shielded Bases + + + Spectator Modes: + + + - Team only + + + Time Limit + + + Version: + + + Voting + + + Warmup + + + Yes + + + Skin selection + + + Spectator + + + SPECTATORS + + + Sports center + + + Status + + + has switched to + + + Freedom + + + Team selection + + + Team %s WON! + + + Text + + + Time until respawn + + + Time until start: + + + Time remaining: %d:%d; Agreed: %.2f + + + Training camp + + + Vote FOR-[$$ACTION_VOTE_YES$$]\nVote AGAINST-[$$ACTION_VOTE_NO$$]\nResults-[$$ACTION_VOTE$$] + + + No + + + Yes + + + Voted + + + No + + + Yes + + + Vote cancelled by server! + + + Vote '%s' started by %s. + + + Voting has started! + + + 1. Clear + + + 4. Cloudy + + + 3. Night + + + 2. Rain + + + Backstabbed! + + + Headshot! + + + You captured the enemy artifact, now take it to yours! + + + You got the artifact. Activate it to return it to your base! + + + Your rank is now + + + It’s you + + + Voting is not available on this server. + + + No active votes. + + + Only one active vote permitted. + + + Ready + + + To all + + + To team + + + Vote failed! + + + Vote successful! + + + Freedom base + + + Mercenary base + + + 2. Artifact hunt + + + 4. Capture the artifact + + + 1. Free for all + + + Create a new profile + + + Obtaining account profiles + + + Hello + + + Connecting to profile + + + Profile created successfully. Please connect to it. + + + Verifying unique name... + + + Do you want to use the existing profile with the name + + + Account found. Obtaining registered profiles... + + + You already have a profile. Please connect to it. + + + Verifying account... + + + This unique name is already in use. Please choose from the drop-down list below or enter another one. + + + Passwords do not match! + + + 3. Team play + + + Copy link + + + Load map + + + Description + + + Map incorrect or corrupt + + + Map not found + + + Awards + + + Records + + + Check + + + Confirm password + + + E-mail + + + Forgot password? + + + GameSpy ID creation page + + + Password + + + Remember + + + Unique name + + + Unique name successfully changed to + + + Team + + + Freedom + + + Mercenaries + + + New profile + + + GameSpy ID authorization + + + play + + + rewind + + + restart + + + to the start + + + to the kill + + + to the death + + + to the artifact capture + + + to the artifact loss + + + to the artifact delivery + + + any + + + Login + + + Screenshot all + + + Configs for all + + + Ping limit: + + + Ping limit + + + Scrn. selected player + + + Cfg for selected player + + + Kick selected player + + + Ban selected player + + + Restart + + + Fast restart + + + Change weather + + + Weather change speed + + + Change game type + + + Change game settings + + + Stop current vote + + + Time limit (0, 180) + + + Frag limit (0, 1000) + + + Artifact limit (0, 100) + + + Warm up time (0, 3600) + + + Spwn prot time (0, 60 CTA) + + + Spwn prot time (0, 600 T/DM) + + + Respawn time (-1, 3600) + + + Uknown profile error (code: 4) + + + 10 minutes + + + 30 minutes + + + 1 hour + + + 6 hours + + + 1 day + + + 1 week + + + 1 month + + + 3 months + + + Permanently + + + The nickname is too short + + + Profile creation error + + diff --git a/gamedata/configs/text/eng/ui_st_other.xml b/gamedata/configs/text/eng/ui_st_other.xml new file mode 100644 index 0000000..b6d8b9e --- /dev/null +++ b/gamedata/configs/text/eng/ui_st_other.xml @@ -0,0 +1,501 @@ + + + + Cancel + + + No + + + OK + + + Yes + + + Bad + + + Enemy + + + Excellent + + + Experienced + + + Friend + + + Map of the Zone + + + Good + + + Indifferent + + + Master + + + PDA bonus + + + Only one active vote permitted. + + + Neutral + + + Rookie + + + Game + + + Used + + + Level + + + Loading AI objects + + + Server: Loading alife simulator + + + Loading CFORM + + + Loading details + + + Loading geometry + + + Loading saved game + + + Loading sectors & portals + + + Loading shaders + + + Loading spatial-DB + + + Loading textures + + + Direct IP + + + No active task + + + Not enough money + + + The NPC does not have enough money + + + Opening stream + + + Prefetching objects + + + rubles. + + + SERVER: Connecting + + + SERVER: Starting + + + Validating CD Key + + + Video + + + Terrible + + + Repair + + + You can't run Render 2 on your PC + + + Faction + + + Connection error: Your CD-Key is disabled. Contact customer service. + + + Connection error: CD-Key already in use. + + + Connection error: Invalid CD-Key. + + + Connection error: Invalid host + + + Connection error: Invalid password + + + A new patch is available.\n Version: %s\n Location: %s\nDo you want to download it now? + + + No new patches currently available + + + Connection error: connection rejected by server + + + Connection error: server full + + + Connection error: Different version. + + + Connecting to master server + + + Days + + + Error + + + Load error + + + A file with this name already exists. Do you want to overwrite it? + + + The file name is empty + + + Hours + + + Was disconnected by BattleEye protection system: + + + Disconnected. Reason: + + + Leave + + + Loading this game will cause unsaved data to be lost. Proceed? + + + min + + + months + + + Backpack + + + Parameters + + + Unable to download the patch. + + + Patch successfully downloaded. Do you want to install it? + + + Price + + + Rank + + + Attitude + + + Reputation + + + sec + + + Please select at least one map + + + Take all + + + Remaining + + + Vote failed + + + Do you really want to leave the game? + + + Total + + + very bad + + + very good + + + Veteran + + + Repair + + + Repair selected item + + + ... + + + moving within an area + + + moving from Zaton to Yanov + + + moving from Zaton to Pripyat + + + moving from Yanov to Zaton + + + moving from Yanov to Pripyat + + + moving from Pripyat to Zaton + + + moving from Pripyat to Yanov + + + moving from Pripyat to X8 + + + moving from X8 to Pripyat + + + emission + + + beginning of the game + + + arrival at the Skadovsk + + + Stingray 1 examined + + + Stingray 2 examined + + + Stingray 3 examined + + + Stingray 4 examined + + + Stingray 5 examined + + + getting to the plateau + + + arrival at Yanov + + + road to Pripyat found + + + Zulu joins the squad + + + Vano’s debt repaid + + + Vano joins the squad + + + anomalous plant collected + + + Sokolov joins the squad + + + Strider joins the squad + + + squad assembled + + + arrival in the underpass + + + arrival in Pripyat + + + military forces located + + + unidentified weapon captured + + + recon squad found + + + reinforcements arrived + + + “antenna” examined + + + missing sentry found + + + controller near sentry killed + + + testing workshop accessed + + + Gauss rifle documentation found + + + dead fighter found + + + entry to the kindergarten + + + military medic rescued + + + established communications with HQ + + + Pripyat evacuation initiated + + + evacuation helicopters reached + + + evacuation complete + + + mutant detector + + + ransom paid for hostage + + + hostage freed + + + Ash Heap anomaly measurements + + + Plavni anomaly measurements + + + bloodsucker lair + + + sent to Kopachy + + + approach to the waste processing station + + + stalker hit + + + container found in stash + + + hunting the chimera + + + Oasis found + + + Operation One Shot initiated + + + search for the psy-emission source + + + administrative documents + + + approach to the substation workshop + + + deal by the ranger station + + + Duty warehouse + + + strange glow source found + + + Zulu found + + + dangerous cave + + + Repair/modifications + + + Buy + + + Sell + + + Trade + + + Close window ($$ACTION_USE$$) + + + Open trading window ($$ACTION_SPRINT_TOGGLE$$) + + + Open repair and modification window ($$ACTION_SPRINT_TOGGLE$$) + + + Move all items to your backpack ($$ACTION_SPRINT_TOGGLE$$) + + + Buy selected items + + + Sell selected items + + + evacuation helicopter take-off + + diff --git a/gamedata/configs/text/eng/ui_st_pda.xml b/gamedata/configs/text/eng/ui_st_pda.xml new file mode 100644 index 0000000..7881200 --- /dev/null +++ b/gamedata/configs/text/eng/ui_st_pda.xml @@ -0,0 +1,279 @@ + + + + Time + + + Free Stalker + + + Military + + + Bandit + + + Duty + + + Scientist + + + Side missions + + + Stashes + + + Freedom + + + Mercenary + + + Mission log + + + Monolith + + + Mutant + + + April + + + August + + + December + + + February + + + January + + + July + + + June + + + March + + + May + + + November + + + October + + + September + + + Deactivate PDA + + + Message log + + + Show message history + + + Area map + + + Show Zone map and mission log + + + Stats + + + Show personal stats + + + Current time: + + + Date filter + + + Show news + + + Show dialogs + + + Legend + + + Zone time: + + + Emissions survived: + + + Missions completed: + + + Mutants killed: + + + Stalkers killed: + + + Artifacts found: + + + Stashes found: + + + Favorite weapon + + + Most powerful mutant killed + + + Location: + + + Objective + + + Side mission + + + Enemies + + + Friends + + + Faction leader + + + Main mission + + + Neutrals + + + Guide + + + Stashes + + + Squad commander + + + Trader + + + Stalker + + + Message log + + + Center on player + + + Move down + + + Move left + + + Show legend + + + Move right + + + Move up + + + Maximum zoom out + + + Zoom + + + Zoom out + + + Achievements + + + Center map on mission + + + Center map on mission + + + Zombie + + + scale + + + + scale - + + + Technician + + + Medic + + + Current Missions + + + Show/Hide Missions + + + Personal box + + + Zaton + + + The area around Jupiter + + + Pripyat + + + Pripyat 1 underpass + + + Laboratory X8 + + + Areas + + + Important objects + + + Area + + + Scanners have detected artifacts: + + + Scanners have not detected any artifacts + + + Stash + + + Sleeping area + + diff --git a/gamedata/configs/text/eng/ui_st_screen.xml b/gamedata/configs/text/eng/ui_st_screen.xml new file mode 100644 index 0000000..59cfd86 --- /dev/null +++ b/gamedata/configs/text/eng/ui_st_screen.xml @@ -0,0 +1,348 @@ + + + + Open personal box ($$ACTION_USE$$) + + + You’re too exhausted to move + + + You’re too overloaded to move + + + Open door ($$ACTION_USE$$) + + + Speak ($$ACTION_USE$$) + + + Search body ($$ACTION_USE$$) + + + Search body ($$ACTION_USE$$)\nDrag body (SHIFT+$$ACTION_USE$$) + + + Mission complete: + + + Mission failed: + + + Item received: + + + Money received: + + + New mission: + + + Item lost: + + + Money lost: + + + Mission cancelled: + + + Mission updated: + + + Your weapon has jammed. Reload it. + + + Search box ($$ACTION_USE$$) + + + Pick up item ($$ACTION_USE$$) + + + Search aircraft ($$ACTION_USE$$) + + + Door jammed + + + The door is locked from the inside + + + Safe locked + + + Code needed + + + Enter code ($$ACTION_USE$$) + + + Take plant ($$ACTION_USE$$) + + + Set up scanner ($$ACTION_USE$$) + + + Take scanner ($$ACTION_USE$$) + + + Rainbow aggression suppressor\nmodel of external emissions complex\nscale 1:20 + + + Activate switch ($$ACTION_USE$$) + + + Examine device ($$ACTION_USE$$) + + + Plant explosives ($$ACTION_USE$$) + + + Recover ($$ACTION_USE$$) + + + Elevator has no power + + + Activate generator ($$ACTION_USE$$) + + + Sleep + + + You cannot sleep! You are bleeding dangerously and suffering from radiation exposure. Use drugs or contact a medic. + + + You cannot sleep! You are bleeding dangerously. Use drugs or contact a medic. + + + You cannot sleep! You are suffering from radiation exposure. Use drugs or contact a medic. + + + Sleep ($$ACTION_USE$$) + + + You have attained the Man of Balance achievement. + + + You have attained the Weapon Systems Master achievement. + + + You have attained the Detective achievement. + + + You have attained the Diplomat achievement. + + + You have attained the Friend of Duty achievement. + + + You have attained the Friend of Freedom achievement. + + + You have attained the Friend of Stalkers achievement. + + + You have attained the Courier of Justice achievement. + + + You have attained the Hi-Tech Expert achievement. + + + You have attained the Trafficker of Information achievement. + + + You have attained the Keeper of Secrets achievement. + + + You have attained the Boss achievement. + + + You have attained the Leader achievement. + + + You have attained the Mutant Hunter achievement. + + + You have attained the One of Ours achievement. + + + You have attained the Pioneer achievement. + + + You have attained the Research Assistant achievement. + + + You have attained the Artifact Hunter achievement. + + + You have attained the Seasoned Stalker achievement. + + + You have attained the Wealthy Client achievement. + + + Autosaving... + + + You can now take your weapon out. + + + Code lock ($$ACTION_USE$$) + + + Medical supplies have been placed in the personal box on the Skadovsk for solving the secret of the missing stalkers. + + + A PS5-M Universal Protection suit has been placed in the personal box at Yanov for helping Duty. + + + A PSZ-9d Duty Armor suit has been placed in the personal box at Yanov for helping Duty. + + + A Wind of Freedom suit has been placed in the personal box at Yanov for helping Freedom. + + + A Freedom Guard suit has been placed in the personal box at Yanov for helping Freedom. + + + You didn’t manage to reach the helicopters and the evacuation team left the Zone without you. + + + Are you ready to leave the Zone? There’s no way back. + + + Game over. + + + Press ($$ACTION_JUMP$$) to exit to the main menu. + + + Pause + + + Game saved + + + An artifact has been placed in the personal box on the Skadovsk for helping to expose Magpie. + + + You must wait for the dock to become airtight + + + Access granted + + + Take the elevator up ($$ACTION_USE$$) + + + Take the elevator down ($$ACTION_USE$$) + + + Critical psy-emission level. Leave danger area immediately. + + + Dangerous radiation levels. Protection required to go further. + + + Examine helicopter ($$ACTION_USE$$) + + + Search the stash ($$ACTION_USE$$) + + + h + + + Message + + + Door blocked + + + Close door ($$ACTION_USE$$) + + + Door locked - the camp is on alert + + + Door locked - you must holster your weapon + + + Door locked + + + Door is not being powered + + + Open door ($$ACTION_USE$$) + + + Gate blocked + + + Use the access card ($$ACTION_USE$$) + + + Access card required + + + The door cannot be opened from this side + + + - + + + The container is locked. Two keys are needed to open it. + + + Use key ($$ACTION_USE$$) + + + Use keys ($$ACTION_USE$$) + + + The container is locked. You need the second key to open it. + + + Open container ($$ACTION_USE$$) + + + The door mechanism has been blocked from the inside. + + + Connect gas tank ($$ACTION_USE$$) + + + Warning! Chemical hazard! + + + Turn valve ($$ACTION_USE$$) + + + Search car ($$ACTION_USE$$) + + + You can restock on medical supplies and ammo by visiting Lieutenant Rogovets and Lieutenant Kirillov. + + + An emission has recently occurred in the Zone. + + + You have attained the Marked by the Zone achievement. + + + Ammo has been placed in the personal box at Yanov for eliminating dangerous mutants. + + + Received coordinates of a stash that has already been discovered. + + + Stash found + + + Stash coordinates received + + + Press any key to play + + diff --git a/gamedata/configs/text/fra/st_achievement.xml b/gamedata/configs/text/fra/st_achievement.xml new file mode 100644 index 0000000..855a3c7 --- /dev/null +++ b/gamedata/configs/text/fra/st_achievement.xml @@ -0,0 +1,372 @@ + + + + Votre ennemi doit en avoir assez : vous venez de le tuer 10 fois sans qu'il parvienne à vous éliminer ! Ce n'est pas de la cruauté, vous voulez simplement l'aider à s'améliorer... + + + Moisson d'âmes + + + Vous avez fait d'une pierre deux coups... en éliminant deux ennemis avec la même balle de votre fusil Gauss. + + + Brochette + + + Votre approche calme et mesurée a porté ses fruits : vous avez touché deux cibles en deux tirs de votre fusil à canon scié, en l'espace de quelques secondes. + + + Deux balles, deux morts + + + La carrière de stalker n'a plus aucun secret pour vous ! Vous êtes désormais une légende ! + + + Ascension sociale + + + S'attaquer à un exosquelette avec un couteau ? Vous n'avez pas froid aux yeux et relevez les défis les plus difficiles sans sourciller ! + + + Ouvre-boîte + + + Ils pensaient vous avoir eu, mais vous leur avez démontré le contraire en tuant cinq d'entre eux alors que vous étiez agonisant. + + + Dur à cuire + + + Profitant d'une poussée d'adrénaline, vous avez déchaîné une pluie de plomb sur vos cibles et tué 5 ennemis en cinq secondes ! + + + Berserker + + + En plein dans l'œil ! Vous avez éliminé deux ennemis d'une balle dans l'œil sans vous faire tuer. + + + Ophtalmologue + + + Qu'ils tendent leurs embuscades, cela ne vous arrêtera pas ! Vous arrivez même à toucher une cible en mouvement, sans viser ! + + + Réflexes éclair + + + Il peut courir aussi vite qu'il peut... Vos balles le rattraperont quoi qu'il fasse ! + + + Cours, Forrest, cours ! + + + Vous avez massacré 20 ennemis d'affilée sans vous faire tuer. Un vrai bain de sang ! + + + Massacre + + + Ils étaient trois, chacun armé d'un fusil de précision... mais cela ne leur a pas servi à grand-chose... + + + Mortelle précision + + + Laissant les barbares s'amuser entre eux, vous avez démontré qu'il était possible de gagner sans tirer un seul coup de feu. + + + Colombe de la paix + + + Peu importe la distance pour un vrai tireur de précision. Vous tirez en plein dans le mille à plus de 120 m de distance. + + + Œil de lynx + + + L'ennemi vous a abattu, mais vous lui avez laissé une surprise : une grenade prête à exploser ! + + + Souvenir + + + Ils ont tué vos amis et mérité votre courroux. Trois morts pour trois amis abattus, ce n'est que justice. + + + Vengeur masqué + + + Vous êtes l'ange gardien de votre ami. Vous l'avez sauvé deux fois alors qu'il transportait l'artefact. + + + Ange gardien + + + Vous avez sauvé votre honneur et celui de votre équipe en marquant quelques points. + + + L'honneur est sauf + + + Avouez que vous saviez où l'artefact allait apparaître. Non ? Pourtant, vous l'avez récupéré dans la seconde où il est apparu. + + + 6e sens + + + Vous avez eu de la chance : vous avez tué l'ennemi avec la dernière balle de votre chargeur ! Tant mieux pour vous ! + + + Cul bordé de nouilles + + + Vous avez tué 8 ennemis d'affilée. Voyons comment votre adversaire va réagir ! + + + Liste noire + + + Vous n'êtes pas mort au cours de la partie et avez marqué plus de 15 points. On dirait que la prudence a du bon... + + + Paranoïaque + + + Vous travaillez sans attirer l'attention, avec un silencieux. Après tout, l'ennemi n'a pas besoin de savoir d'où venait la balle... + + + Mort silencieuse + + + Vous avez anéanti l'ennemi en gagnant et en marquant deux fois plus de points que le meilleur joueur adverse. + + + Supériorité écrasante + + + La chance sourit aux audacieux ! Vous avez bien fait de récupérer l'artefact immédiatement et avez marqué des points pour votre équipe dès les trois premières minutes de la partie. + + + Blitzkrieg + + + Vous n'avez pas laissé le temps à l'équipe adverse de récupérer un seul artefact. Vive le travail en équipe ! + + + Ni vu ni connu + + + Vous avez obtenu le meilleur score dans toutes les catégories en faisant le plus de victimes, en récupérant la plupart des artefacts et en mourant le moins ! Continuez comme ça ! + + + Premier de la classe + + + Vous avez éviscéré trois ennemis en moins de 20 secondes, démontrant ainsi votre maîtrise du combat au corps-à-corps. + + + Machine à découper + + + Chaque ennemi a son talon d'Achille et vous l'avez démontré une fois de plus en plaçant une balle dans l'œil d'un ennemi très bien protégé. + + + Talon d'Achille + + + Les balles de l'ennemi ne vous font pas peur ! Elles ne font que vous effleurer sans vous blesser et ne vous empêchent pas d'abattre vos adversaires ! + + + Plus rapide que les balles + + + Vous êtes prêt à examiner les derniers développements dans la Zone. Vous nous avez permis d'approfondir notre connaissance de la Zone en découvrant de nouvelles formations anormales encore inconnues de la science. + + + Pionnier + + + Les stalkers vous estiment davantage à présent.\nPour vous remercier de vos efforts, ils ont décidé de déposer des munitions dans votre cantine de la gare de Yanov. + + + Vous n'évitez pas les mutants, vous les traquez et avec talent ! Les bons chasseurs sont appréciés parmi les stalkers. + + + Chasseur de mutant + + + Les stalkers ont une meilleure opinion de vous.\nEn témoignage de leur respect, ils ont décidé de déposer des fournitures médicales dans votre cantine sur le Skadovsk. + + + Vous avez résolu le mystère des disparitions du Skadovsk. Le coupable n'était pas un mutant, mais un ennemi bien plus redoutable : un homme. Votre quête de la vérité vous a valu le respect de vos pairs. + + + Détective + + + Les stalkers ont une meilleure opinion de vous.\nIls ont demandé au Hibou de vous faire une ristourne. \nLe Barbu vous propose désormais ses meilleurs prix en échange de vos artefacts. + + + Vous avez montré aux bandits et à leur chef, Sultan, qui est le patron et avez gagné en popularité auprès des stalkers. Vous serez toujours le bienvenu sur le Skadovsk. + + + L'un des nôtres + + + Vous avez gagné le respect des bandits.\nCraignant d'être votre prochaine victime, le Hibou vous a fait une ristourne.\nComme convenu, le Barbu vous remettra désormais une partie de ses bénéfices. + + + Vous avez aidé Sultan à vaincre les stalkers et à prendre le contrôle des affaires du Barbu. Vous êtes à la fois craint et respecté à Zaton. + + + Boss + + + Les stalkers ont décidé de remettre le butin de la Pie, obtenu par le mensonge et la tromperie, à quelqu'un de plus méritant. Ils ont déposé le tout dans votre cantine de Yanov. + + + Justice a été faite. La Pie, cette petite ordure, a trompé plus d'un stalker et il est temps pour lui de payer ! + + + Messager de la justice + + + Les stalkers ont une meilleure opinion de vous.\nLes bandits tenteront de vous attaquer où que vous soyez dans la Zone. + + + Vous avez découvert tous les types d'artefacts connus des chercheurs de la Zone. Cela vous a valu le respect des stalkers et l'attention des bandits. + + + Chasseur d'artefacts + + + Cardan peut améliorer votre exosquelette en y ajoutant des servomoteurs hydrauliques qui vous permettront de vous déplacer plus rapidement. + + + Cardan a tous les outils dont il a besoin. Cela lui permettra de réaliser de nouvelles améliorations plus complexes. + + + Expert en armement + + + Azote peut modifier un casque tactique de façon unique : il y ajoute un détecteur infrarouge permettant d'identifier la présence d'humains à proximité. + + + Azote dispose de tous les outils dont un technicien de la Zone pourrait rêver. Il peut à présent réaliser des modifications de pointe. + + + Expert en technologie de pointe + + + Votre expérience vous permet de trouver des artefacts rares plus fréquemment. + + + Les lieux accessibles autour du centre de la Zone n'ont plus aucun secret pour vous. Vous connaissez toutes les anomalies du coin ou presque. + + + Stalker aguerri + + + Vos qualités de chef augmentent les chances de survie de votre groupe. + + + Obligé de travailler en équipe, vous avez formé un groupe solide et prouvé que vous aviez l'étoffe d'un chef. + + + Chef + + + La Liberté, le Devoir, les stalkers indépendants et même les bandits ont fini par reconnaître vos talents de négociateur et ont une profonde estime pour vous. + + + Vous savez résoudre les problèmes avec diplomatie. À quoi bon recourir à la force lorsque de simples paroles peuvent suffire à régler un différend ? Faites tout de même attention à ceux qui tirent avant et discutent après... + + + Diplomate + + + Vous travaillez avec les scientifiques depuis si longtemps qu'on pourrait vous prendre pour un laborantin. Tous les scientifiques du bunker vous considèrent comme leur collègue. + + + Laborantin + + + Vos relations avec le Devoir se sont améliorées. En cas de problème, les combattants du Devoir seront là pour vous aider.\nAzote, le technicien du Devoir, vous a offert une ristourne.\nVos relations avec la Liberté se sont détériorées.\nL'Hawaïen, le marchand de la Liberté, vous fera payer sa marchandise plus cher. + + + Vous avez été d'une grande aide au Devoir, ce qui vous a valu le respect de ses combattants et de leurs alliés. Mais n'oubliez pas que certains résidents de la Zone ne s'entendent pas aussi bien que vous avec cette faction. + + + Ami du Devoir + + + Vos relations avec la Liberté se sont améliorées. En cas de problème, les combattants de la Liberté seront là pour vous aider.\nL'Hawaïen, le marchand de la Liberté, vous a offert une ristourne.\nVos relations avec le Devoir se sont détériorées.\nAzote, le technicien du Devoir, vous fera payer sa marchandise plus cher. + + + Vous avez été d'une grande aide à la Liberté, ce qui vous a valu le respect de ses combattants et de leurs alliés. Mais n'oubliez pas que certains résidents de la Zone ne s'entendent pas aussi bien que vous avec cette faction. + + + Ami de la Liberté + + + Les stalkers de Yanov estiment qu'il est important de maintenir l'équilibre entre le Devoir et la Liberté. En conséquence, leur technicien et leur marchand ont tous deux décidé de vous faire profiter de leurs tarifs préférentiels. + + + Vous ne vous êtes rangé du côté d'aucune faction et avez toujours agi en stalker indépendant. Vous n'avez pas d'ennemis, mais vous ne vous êtes pas fait de nouveaux amis non plus. + + + Un homme équilibré + + + Les marchands vous proposent de la marchandise plus rare et plus chère. + + + Vous avez connu des périodes de vache maigre, mais les affaires ne vont pas trop mal en ce moment. Vous parvenez même parfois à mettre beaucoup d'argent de côté et les marchands savent reconnaître un bon client. + + + Bon client + + + Les messages que vous avez remis à Strelok lui ont donné une nouvelle raison de vivre et d'atteindre son objectif, coûte que coûte. + + + Vous avez été bien inspiré : lorsque vous avez trouvé les messages dans les planques du groupe de Strelok, vous avez décidé de les conserver pour les remettre à leur propriétaire. + + + Gardien des secrets + + + Vous avez réussi à survivre à une émission sans vous mettre à couvert grâce aux anabiotiques. Les effets sur votre psychisme commencent à se faire sentir ; un étrange silence s'est installé dans votre esprit, vous n'entendez plus le brouhaha de vos pensées. + + + Affecté par la Zone + + + Le Hibou vous a offert une ristourne pour vous remercier d'être son meilleur informateur et partenaire. + + + Lorsque vous dénichez des informations, vous trouvez toujours le bon acheteur. Évidemment, lorsque vous les vendez, vous faites toujours en sorte que cela soit dans votre intérêt. + + + Trafiquant d'informations + + + Vos relations avec les stalkers se sont améliorées. En cas de problème, ils seront là pour vous aider.\nLeurs médecins ont accepté de vous vendre des fournitures médicales à prix coûtant. + + + Vous avez toujours aidé les stalkers indépendants dans les coups durs. Leur faction n'est pas la plus unie, mais vous avez désormais des alliés dans la fraternité officieuse des stalkers qui vous feront de leur mieux pour vous aider. + + + Ami des stalkers + + + Différentes informations ont permis aux professeurs Hermann et Ozersky de créer une nouvelle drogue expérimentale de type anabiotique dans la Zone. + + + Vous avez une chance de survivre à une émission même sans médicament, dans la mesure où vous êtes en bonne santé. + + + Content de votre efficacité, le professeur Hermann accepte à présent de vous vendre à prix coûtant des fournitures médicales et de l'équipement destinés exclusivement au personnel du bunker.\nNovikov vous connaît bien et ne vous facture plus la main-d'œuvre lorsqu'il vous prépare des modifications. + + diff --git a/gamedata/configs/text/fra/st_characters.xml b/gamedata/configs/text/fra/st_characters.xml new file mode 100644 index 0000000..102345e --- /dev/null +++ b/gamedata/configs/text/fra/st_characters.xml @@ -0,0 +1,336 @@ + + + + Jack + + + Vano + + + LCl Shulga + + + Loki + + + Hawaï + + + Chiropracteur + + + Senka + + + Zulu + + + Oncle Yar + + + Topol + + + Masse + + + Gnôle + + + Serpent + + + Vautour + + + Nitro + + + Trappeur + + + Flint + + + Général Tachenko + + + Ltn Bunchuk + + + Col Kosmach + + + Ltn Zakharchuk + + + Black + + + Duplet + + + Chirurgien + + + Kran + + + Pieu + + + Koshey + + + Dépouille + + + Arpenteur + + + Armure + + + Faucille + + + Phoque + + + Lopette + + + Foma + + + Professeur Ozersky + + + Novikov + + + Professeur Hermann + + + Sgt Shlyachin + + + Ltn Sergeev + + + Sgt Valiushok + + + Sgt Ostrovsky + + + Capitaine Klimenko + + + Ltn Sokolov + + + Capitaine Tarasov + + + Col Kovalsky + + + Ltn Podorozhny + + + Ltn Skelya + + + Sgt Merkulov + + + Ltn Stetsenko + + + Sgt Yarmoshuk + + + Ltn Rogovets + + + Ltn Smirnov + + + Strelok + + + Barchuk + + + Major Degtyarev + + + Nabot + + + Shishak + + + Grizzly + + + Torba + + + Mitay + + + Ltn Gavrilenko + + + Kremen + + + Gaïduk + + + Garry + + + Ltn Kirillov + + + Serbin + + + Chacal + + + Allegro + + + Crabe + + + Garmata + + + Gonta + + + Marteau-piqueur + + + Blason + + + Hibou + + + Faisan + + + Danila + + + Sultan + + + Morgan + + + Poing + + + Spartacus + + + Barbu + + + Cardan + + + Gnome + + + Chêne + + + Pianiste + + + Tondeuse + + + Kirzach + + + Tank + + + Mug + + + Hachette + + + Thon + + + Noah + + + Pilote + + + Sismik + + + Ltn Drapeï + + + Adj Umerov + + + Accroc + + + Crochet + + + Pic + + + Mirone + + + Barge + + + Petruha + + + Poinçon + + + Major Chepurny + + + Adj Valentir + + + Sgt Morozov + + + Ltn Smolyak + + + Senya + + + Sergent Gazda + + + Capitaine Furtez + + + Sgt Shveiko + + diff --git a/gamedata/configs/text/fra/st_dialog_manager.xml b/gamedata/configs/text/fra/st_dialog_manager.xml new file mode 100644 index 0000000..df82baf --- /dev/null +++ b/gamedata/configs/text/fra/st_dialog_manager.xml @@ -0,0 +1,993 @@ + + + + Il y a un coin dans Zaton où les anomalies calorifiques émergent de sous l'eau. On l'appelle la 'Bouilloire' parce qu'il y a pas mal de vapeur bizarre qui en sort. Et si tu crois qu'il y a rien à craindre d'un peu de vapeur, dis-toi que les stalkers les plus expérimentés y réfléchissent à deux fois avant de s'y aventurer : ils disent que ça fait deux fois plus mal qu'une anomalie calorifique normale parce que, même si la température est un peu moins élevée, tu grilles beaucoup plus longtemps. Quant aux artefacts, on y trouve les grands classiques, ceux de feu. + + + Il paraît qu'il y a un coin sympa dans la carrière, avec pas mal d'artefacts, mais aussi beaucoup d'anomalies. Tout au fond, les anomalies gazeuses font tellement de bulles que ça fait mal aux yeux, même avec un masque à gaz. + + + Le Tas de cendres se trouve dans le vieux cimetière près de Kopachy. Cet endroit est plein d'anomalies calorifiques. On y croise aussi des zombies de temps en temps. La plupart des gens l'évitent comme la peste, mais le fait est qu'on peut y trouver des artefacts. + + + Il paraît qu'on a trouvé des artefacts sur le parking. Tu sais, celui qui est rempli de véhicules datant de la première catastrophe de Tchernobyl... Ces épaves donneraient des coups de soleil à un compteur Geiger ! En plus, l'endroit est plein d'anomalies électriques. + + + Dans le Bosquet putride, là où les arbres sont tous bouffés par les acides. Ceux qui y sont allés disent qu'il est plein d'anomalies gazeuses. Il y a tellement de gaz dans l'air qu'on ne peut pas voir à un mètre devant soi, mais avec un peu d'expérience, on peut y trouver de beaux artefacts. + + + Si tu cherches des artefacts, essaie donc ceux qui sont acides. Le meilleur endroit pour en trouver, c'est le Bain de béton. Tu n'y croiseras pas grand monde vu que personne n'aime y aller, rapport à la proximité de Jupiter. + + + Pas très loin de l'usine de Jupiter, y a un morceau de la route qui s'est effondré. On l'appelle le Puits à bitume parce que le macadam y a carrément fondu. Le trou est plein d'anomalies, principalement calorifiques et gravitationnelles. Et comme il ya deux types d'anomalies, il faut s'attendre à ce que les artefacts soient un peu différents. + + + Derrière la cimenterie, il y a un petit port qu'on appelle la Tourbière. L'eau s'y est transformée en marais nauséabond et regorge d'anomalies gazeuses. C'est même plus vraiment de l'eau, mais plutôt une sorte d'acide. Les stalkers qui ont pu échapper aux monstres qui y grouillent en ont rapporté des artefacts. + + + Va voir dans la vieille cimenterie ! Elle regorge d'anomalies, mais cela en vaut la peine. C'est sûr, y a des endroits où les artefacts sont plus faciles à trouver, mais faudra compter avec les autres stalkers. Là-bas, au moins, tu trouveras que des hamsters, et encore, seulement si tu descends au sous-sol. + + + Tu devrais aller voir du côté du Pinchêne. C'est le truc qui pousse entre les collines, au-dessus des anomalies gazeuses. Tout le monde l'appelle comme ça depuis qu'un petit malin a déclaré que l'écorce de cet arbre tenait autant du pin que du chêne. Par contre, si tu veux y chercher des artefacts, prévois une bonne combinaison anti-chimique. Et pas mal de munitions, aussi ! Ces collines grouillent de meutes de chiens ! + + + Des fois, c'est pas la peine de sauter dans les anomalies pour dénicher un artefact. On m'a raconté l'histoire d'un artefact trouvé au beau milieu d'un champ, complètement à découvert. Le détecteur du stalker qui l'a trouvé commençait à faiblir, alors il a décidé de changer les piles. Et là, le détecteur a repéré un truc et un artefact lui est littéralement tombé dessus ! Sacrée chance, non ? C'est la Zone tout craché, ça ! Des fois, elle te punit, d'autres fois, elle te récompense ! + + + Des vétérans m'ont raconté que les artefacts sortent parfois des anomalies. Ton détecteur commence à bipper, mais, le temps de le sortir, y a plus rien ! Ça veut dire qu'un artefact "sauteur" t'est passé sous le nez, mais que ça sert à rien de le chercher, parce que c'est la Zone qui décide qui elle récompense. + + + Personne n'a encore été chercher d'artefacts à Pripyat. Tous les mecs que je connais viennent juste d'arriver, donc ils restent sur leurs gardes. + + + Je sais pas s'il y a qui ce que soit qui connaisse déjà les bons coins. Les gars ont pas encore eu le temps d'explorer Pripyat à fond. + + + Moi, je regarderais dans les souterrains. Il paraît qu'il y en a des kilomètres sous la ville. + + + On sait pas grand-chose sur ce coin, à part les histoires de Garry, bien sûr. Il dit qu'il y a un endroit où une vigne haute de 10 étages pousse au cœur d'une anomalie acide. Possible qu'il raconte n'importe quoi, mais ça mérite certainement une inspection. + + + Le marais acide est le meilleur endroit. Il est plein d'anomalies gravitationnelles, mais elles sont faciles à repérer. Il suffit de garder les yeux sur la surface de l'eau, tu peux pas les rater ! Les anomalies gazeuses, par contre, c'est plus difficile, parce qu'il y a pas d'air à respirer. C'est pas très drôle de se faire gicler dessus par une de ces saloperies... Ça te bouffe une veste plus vite que de l'acide sulfurique ! + + + Y a plein d'anomalies calorifiques dans la ferme brûlée au sommet de la colline. Des gars y ont déjà trouvé des artefacts de feu. Cherche dans les maisons : celle qui contiendra le plus d'anomalies après une émission sera celle qui regorgera d'artefacts. + + + Il doit y en avoir plein dans les grottes sous la ferme brûlée. Si tu montes au sommet de la colline avec un détecteur, il arrêtera pas de bipper. D'ailleurs, c'est facile de les atteindre, il suffit de sauter dans le trou. Ressortir, par contre, c'est une autre paire de manches, avec toutes les anomalies qu'il y a dans le coin... Principalement des vortex et des acides. Y en a même qui disent avoir vu un genre de comète. Y a que l'embarras du choix, alors ça doit être pareil pour les artefacts ! + + + T'as déjà vu une anomalie Soleil ? on dirait deux comètes qui tournent autour d'un axe central. C'est impressionnant à voir, crois-moi ! Enfin, à bonne distance, évidemment, parce que ce truc est hyper chaud et contient plein d'anomalies calorifiques. Elle contient plein d'artefacts aussi, d'ailleurs, mais ils sont gardés par une saloperie de poltergeist du feu qui essaye de te rôtir dès que t'approches. + + + Si tu t'intéresses aux artefacts gravitationnels, cherche donc l'anomalie Crocs ! L'endroit est facile à trouver : les anomalies ont quasiment scalpé la colline et les grottes qui se sont créées ont aussitôt été colonisées par des snorks. Heureusement, ils en sortent pas souvent. + + + Dans la Zone, mon pote, dans la Zone ! Baisse pas les bras ! + + + Bonne question ! Viens me donner la réponse dès que tu l'auras ! + + + Où ça, quand ça, pourquoi... Oublie pas : une fois que t'as trouvé ton pot de miel, pas besoin de le partager ! + + + Où est-ce que je peux trouver des artefacts ? + + + Je te l'ai déjà dit ! + + + Non, je ne sais rien d'autre. + + + C'est tout ce que je sais. Faut demander à quelqu'un d'autre ! + + + Quoi de neuf, mon pote ? + + + Salut ! + + + Bonjour, stalker. + + + Salut. + + + Qu'est-ce qu'il y a ? + + + Quoi ? + + + Ben vas-y, parle ! + + + Bonjour, major ! + + + Bonjour ! + + + J'écoute, major ! + + + Ouais, salut. + + + Quoi ? + + + Le grand homme en personne ! + + + Hé, stalker. Y pas le feu au lac, si ? + + + Salut ! + + + Salut, mec ! + + + Salut, mon pote ! + + + Ça roule ? + + + Hé ! + + + À l'aide ! + + + Au secours... Je vais crever ! + + + J'ai besoin de soins médicaux ! + + + Un médikit... Vite ! + + + Faut m'aider... Aaahh, j'ai mal ! + + + Il me faut un médikit... vite ! + + + Allez... pitié... faut venir m'aider... + + + Hé, j'ai besoin d'un médikit... et vite... + + + Au secours, stalker... un médikit, par pitié ! + + + Je suis blessé... À l'aide ! + + + J'ai besoin d'un médikit ! + + + Un médikit ! + + + T'as entendu parler de la station de dragage à l'est du Skadovsk ? Il paraît qu'il y a des trucs étranges qui y luisent la nuit... Même pour la Zone, c'est trop bizarre... Je ne sais pas trop si ça mérite que j'aille y jeter un coup d'œil... Ça vaut peut-être le coup, mais à quoi bon risquer son cul ? C'est l'éternelle question... + + + Y a rien que des vieilleries par ici. La colonne d'épaves sur le pont de Preobrazhensky, par exemple. La rouille a tout bouffé, même le tablier du pont... Y a plein de gars qui seraient prêts à aller y jeter un coup d'œil s'il n'y avait pas autant de snorks et d'anomalies... + + + Sultan voulait prendre le contrôle du business du Barbu... Le Skadovsk lui suffisait plus, alors il voulait une plus grosse part du gâteau... Mais y avait pas moyen qu'on le laisse faire ! Avec le Barbu et les autres gars, on lui a bien fait comprendre, à Sultan, qu'il fallait pas nous chercher ! + + + Hé, t'as entendu la dernière ? Cette enflure de Sultan s'est occupé du Barbu... Je sais pas comment il a fait, mais ça augure rien de bon. La Zone devient de plus en plus hostile... À ce rythme-là, le Skadovsk sera bientôt un vrai repaire de bandits. + + + T'as entendu parler de l'Oasis ? Paraît que c'est un endroit hyper difficile à trouver, que même quand tu sais où elle se trouve, ça garantit pas que tu l'atteindras. On dit aussi qu'il y a un lac et que si tu te baignes dedans, toutes tes maladies guérissent et toutes tes blessures se referment ! Mais ça sert à rien de causer dans le vide... T'as vu combien de stalkers bleubites sont venus ici, au centre de la Zone ? Certains sont à la recherche d'artefacts, d'autres sont juste curieux, mais la plupart espèrent trouver l'Oasis. Apparemment, elle serait cachée dans les environs. + + + Il paraît que la Zone va disparaître... Quelqu'un a trouvé l'Oasis et récupéré son artefact : le Cœur de l'Oasis. Maintenant, la Zone va passer dans une autre dimension et plus aucun stalker ne pourra en partir... Hé, je plaisante, mec ! Mais y a vraiment des gars qui ont trouvé de nouveaux genres d'artefacts. Les scientifiques sont en train de jouer avec dans leur bunker en ce moment même ! + + + T'as entendu parler de Topol ? Il avait trouvé un nouveau coin à explorer et, évidemment, il y est allé tout guilleret avec ses gars. Ils se sont vite retrouvés avec un contrôleur qui leur triturait le cerveau. Autant te dire qu'ils seraient tous en train de se pisser dessus dans des lits d'hôpitaux si un stalker les avait pas aidés. Quand Topol a retrouvé toute sa tête après la zombification, le stalker était en train de découper les oreilles du contrôleur pour les ajouter à son collier. + + + T'es au courant pour le village de Kopachy ? Après le premier désastre de Tchernobyl, l'endroit avait été tellement touché que les autorités ont décidé de raser tout le village : il n'en reste plus rien à part des petits tertres... Paraît que le coin était étrange, même avant la catastrophe ; je n'ose même pas imaginer ce que ça doit être maintenant. Les gens ont trop la trouille pour aller voir sur place, mais si ça se trouve, c'est une vraie mine d'artefacts ! + + + Il n'y a que deux stalkers à Yanov qui puissent sentir une émission en approche. Chiropracteur, notre toubib, et Zulu, un 'ancien' membre du Devoir. Le côté 'ancien', c'est assez récent, en fait... Quand le Devoir est venu à la gare de Yanov, les gars de la Liberté y étaient déjà. Comme on pouvait s'y attendre, la situation a rapidement dégénéré. Les deux factions ont subi des pertes importantes et quelques stalkers indépendants se sont pris des balles perdues. C'est à ce moment-là que Zulu a annoncé qu'une émission se préparait. Le Devoir et la Liberté ont déclaré un cessez-le-feu et se sont réfugiés dans la gare. Une fois l'émission terminée, Zulu a quitté le Devoir et s'est installé dans la tour près de la gare. + + + Les histoires à dormir debout, ça manque pas ici... Vaut ne mieux pas y croire... La Zone compte de nombreux affabulateurs ces derniers temps. Mais il y a quand même quelques stalkers vétérans de la gare de Yanov qui ont dit avoir vu des ovnis, des sortes de soucoupes volantes d'environ 5 mètres de diamètre. D'autres disent que ça ressemblait à un avion vu de très loin. La seule chose dont on soit sûr, c'est qu'un des témoins est un ancien pilote et qu'il a déclaré n'avoir jamais rien vu de pareil. + + + Rien que des mauvaises nouvelles ces derniers temps... Des gars disparaissent les uns après les autres et plus tard, on retrouve leurs cadavres complètement vidés de leur sang. C'est forcément ces saletés de sangsues ! J'aimerais vraiment trouver leur nid et le remplir de plomb ! Va bientôt falloir aller aux chiottes deux par deux, si ça continue ! Bonjour la vie de stalker solitaire ! + + + J'ai entendu un truc intéressant... Des mecs de la Liberté ont récupéré le PDA du fondateur légendaire du Devoir. Apparemment, ce type aurait trompé ses hommes en leur disant que le commandement de l'armée les avait abandonnés dans la Zone. Il aurait inventé ce mensonge, histoire de pouvoir monter sa propre faction ! Mais dans la Zone, y a toujours un retour de manivelle. Peu de temps après, il s'est retrouvé coincé dans une bulle spatio-temporelle et il a clamsé. Voilà toute l'histoire... Et dire que j'avais envisagé de rejoindre le Devoir ! Ils vont avoir l'air fin, maintenant, avec leurs leçons de morale ! + + + Pff, cette nouvelle unité du Devoir... C'est à croire que ces gars sont sortis de nulle part ! C'est fou quand même : un groupe de soldats du Devoir part de Yanov et revient peu après, avec trois fois plus de monde... Ils se sont clonés ou quoi ? Remarque, ça serait pas très étonnant, quand on y pense... le seul moyen de les distinguer les uns des autres, c'est par leur grade ! + + + Pff, cette nouvelle unité de la Liberté... C'est à croire que ces gars sont sortis de nulle part ! C'est fou quand même : un groupe de soldats de la Liberté part de Yanov et revient peu après, avec trois fois plus de monde... À mon avis, ils se sont reproduits par mitose... Avec toute l'herbe qu'ils fument, ils ne doivent pas être loin de prendre racine et de se lancer dans la reproduction végétale ! + + + Apparemment, Gonta et ses gars ont traversé une mauvaise passe, entre la disparition de Danila et les blessures de Crabe... Mais ils sont repris du poil de la bête : ils bossent pour les scientifiques maintenant et s'occupent de faire tout un tas de relevés. Pas mal, hein ? Ils se sont récupéré un boulot peinard et un bon moyen d'obtenir un permis officiel ! + + + Paraît que les stalkers Mitay, Torba et Grizzly bossent pour les scientifiques maintenant et font tout un tas de relevés. Je me demande ce que ça peut bien vouloir dire. À mon avis, les intellos nous préparent un sale coup. Mais au moins, ces gars peuvent se la couler douce maintenant. Ils obtiendront peut-être même un permis officiel un de ces jours. + + + Tu connais Spartacus et son groupe ? Eh ben, tu les reverras pas de sitôt au Skadovsk : ils protègent le bunker des scientifiques maintenant ! Et pourquoi pas, après tout : ils sont de taille face aux mutants et ils savent comment tenir les bandits en respect. Les scientifiques vont pouvoir travailler en paix. + + + Les mercenaires ne sont plus vraiment en train de se la couler douce. Ils sont partis à Jupiter pour garder le bunker des scientifiques. Apparemment, leurs prédécesseurs se sont évanouis dans la nature... Remarque, ça me dérangerait pas qu'ils continuent comme ça. Des mercenaires qui disparaissent, d'autres qui les remplacent et qui disparaissent aussi... Encore une ou deux relèves et il n'y aura plus un seul mercenaire à Zaton ! + + + Apparemment, le bunker des scientifiques est désormais sous la garde des vigilants guerriers du Devoir... Je me demande ce qui a bien pu les convaincre. Est-ce qu'ils croient vraiment que ces têtes d'œuf vont les récompenser en leur offrant des fusils à plasma flambants neufs pour chasser les hamsters ? J'aimerais bien voir ça, tiens... + + + Il paraît que le bunker des scientifiques est protégé par la Liberté maintenant. À croire que les scientifiques n'ont pas peur que leurs spécimens de test partent en fumée... littéralement ! Mais il faut voir le bon côté des choses : si quelqu'un essaie d'attaquer le bunker, il devra d'abord traverser un écran de fumée ! Ah ah ah ! + + + Tu es déjà allé dans l'usine d'électronique de Jupiter ? Cet endroit me fout les jetons... Personne sait vraiment ce qui s'y passe. On y trouve des anomalies et des mutants, comme partout ailleurs... Mais ça me tente pas du tout. Mon instinct me dit qu'il y a quelque chose de louche là-dessous... + + + Hé, visez-moi ça ! Ce serait pas le mec qui a découvert les manigances du toubib du Skadovsk ? Je te tire mon chapeau, mec, sincèrement ! J'aurais pu être son prochain patient, tu sais... On pensait tous que c'étaient les monstres qui avaient fait ça, mais y a certains mecs qui sont pires que des sangsues, pas vrai ? + + + Ce serait plutôt à moi de poser cette question. Quand tu es parti dans les tunnels sous Jupiter, la rumeur a couru que tu avais atteint le centre de la Zone. Ça a fait un de ces souks ! Il y avait plus d'une douzaine de gars qui mouraient d'envie de suivre ton exemple. Mais Nitro les a vite calmés en leur disant que les portes du tunnel s'étaient refermées et qu'il ne pouvait pas les rouvrir. Bon, il y a quand même quelques acharnés qui veulent toujours les faire sauter, mais ils sont encore en train de chercher comment ils vont pouvoir rassembler assez de dynamite, sans oublier qu'ils savent pas comment ils feront pour respirer une fois qu'ils y seront. + + + Oh, tu as entendu la dernière à propos de Garry ? Le stalker qui bossait pour les scientifiques ? C'est fini, il n'est plus un 'clandestin' ! Il a obtenu un permis officiel, c'est dingue, non ? C'est clair qu'à sa place, n'importe qui aurait rassemblé son barda et serait rentré chez lui fissa... Eh bien, cet allumé, il est parti pour Pripyat ! Tout le monde pensait qu'il allait clamser, comme tous les autres, mais pas du tout : il y est arrivé sans problème ! Mais bon, ça n'a pas servi à grand-chose, apparemment... Il est tombé sur des militaires. Alors maintenant, il est en règle avec eux, permis officiel et tout ça, mais l'endroit reste toujours interdit aux stalkers normaux. + + + Eh bien... Le Devoir et la Liberté se sont encore mis sur la gueule, et pour un gros butin, cette fois. Paraît qu'il y avait assez de matos pour équiper trois divisions d'infanterie là-bas ! Je ne sais pas qui a rassemblé tout ça, mais ça a méchamment cartonné. Ça a réveillé tous les stalkers de Yanov mais heureusement, aucun ne s'en est mêlé, sinon ça aurait complètement dégénéré. Apparemment, c'est le Devoir qui a morflé, parce que c'est la Liberté qui garde l'endroit maintenant. + + + Eh bien... Le Devoir et la Liberté se sont encore mis sur la gueule, et pour un gros butin, cette fois. Paraît qu'il y avait assez de matos pour équiper trois divisions d'infanterie là-bas ! Je ne sais pas qui a rassemblé tout ça, mais ça a méchamment cartonné. Ça a réveillé tous les stalkers de Yanov mais heureusement, aucun ne s'en est mêlé, sinon ça aurait complètement dégénéré. Apparemment, c'est la Liberté qui a morflé, parce que c'est le Devoir qui garde l'endroit maintenant. + + + Il s'est passé un truc bizarre récemment. Un groupe de stalkers qui explorait les tunnels sous Jupiter est tombé sur quelque chose ou plutôt, quelqu'un. Leurs flingues se sont envolés de leurs mains et des tas de saletés leur sont tombées dessus... Ils n'ont pas la moindre idée de ce qui s'est passé, mais ils y ont laissé deux gars. + + + J'ai entendu dire qu'on avait trouvé un truc mutant vraiment dégueulasse dans les tunnels au nord de Jupiter. Trappeur y a envoyé un stalker pour enquêter. Apparemment, c'était un nid de domovoï. Heureusement, le stalker a éliminé toute la meute de sales petits gnomes. À lui seul, en plus ! C'est marrant, tu ressembles pas mal à la description qu'on m'en a fait, sauf qu'il est un peu plus grand et qu'il se trimbale toujours avec un lance-grenades. + + + Les stalkers sont foutus... Les monstres sortent de la Tourbière ! Des stalkers de la cimenterie les ont vu attaquer un de nos gars. Il y en avait au moins une douzaine, des créatures énormes, comme t'en as jamais vu ! On dirait des sangsues, mais deux fois plus grosses et plus rapides... Tout le monde espère que Trappeur trouvera un moyen de nous débarrasser de ces saloperies. + + + T'as entendu parler des sangsues du marais ? Celles qui vivaient dans la Tourbière ? Eh bien, il n'y en a plus, Trappeur s'en est chargé. Enfin, pas en personne, hein ! Il a embauché des mecs. Il paraît qu'il a rassemblé un groupe d'environ dix stalkers et qu'ils ont passé le marais au peigne fin et arrosé de plomb tout ce qui mouftait. Il ne reste même plus une grenouille là-bas. + + + Quand on a appris qu'il y avait une chimère dans les parages, il n'a pas fallu longtemps pour que quelqu'un lui règle son compte. Avant, les mutants tuaient les stalkers par dizaines, mais on dirait que la tendance s'est inversée. Paraît que le mec qui s'en était occupé était un chasseur expérimenté qui tue plus de mutants en une journée que toi et moi, on écrase de moustiques en un an. + + + C'est incroyable le genre de mecs que recrute la Liberté ces derniers temps ! Il y avait ce gars, Flint, il arrêtait pas de se vanter de tous les exploits du monde... Eh bien, apparemment c'était une belle ordure : il a laissé crever son pote dans une anomalie et s'est barré avec le butin. Ensuite, on en a appris un peu plus sur ses exploits à Zaton : il a emmené un groupe de chasseurs se faire bouffer par une chimère ! J'avais une bonne opinion de la Liberté avant... Mais là, je me dis qu'il vaut mieux être tout seul qu'avoir des amis pareils. + + + Bien, ils ont enfin réussi à abattre la chimère de Zaton. C'est l'équipe de Gonta et un stalker inconnu qui s'en sont chargés. Hé, mais attends, c'était toi, pas vrai ? Tu voudrais pas me raconter ta version des faits ? Et, d'ailleurs, merci pour ce que tu as fait : ça fait toujours un mutant mangeur d'hommes en moins ! + + + Je ne sais pas si ça peut t'être utile, mais on a notre 'idiot du village' par ici. Il s'appelle Noah et il en tient une sacrée couche : il s'est fait construire une espèce de péniche par un groupe de clandestins en une semaine. Fais gaffe à lui, il commence par tirer et il se donne même pas la peine de poser de questions après... + + + Tu connais Allegro ? Ouais, celui qui est toujours hyper discret. Il vend les meilleurs flingues du coin, y a pas de doute là-dessus. Je me demande comment il fait pour les récupérer... Je veux dire, comment est-ce que tu fais pour transporter un Vintar sans que ça ressemble à un Vintar ? Où est-ce que tu le planques ? Y a un truc qui tourne pas rond, c'est sûr... + + + Apparemment, Sultan s'est foutu dans une sacrée merde. Il a voulu se débarrasser du Barbu ou lui piquer son business, je sais pas, mais il a eu les yeux plus gros que le ventre et s'y est cassé les dents. Maintenant, les membres de son gang le regardent plus de la même façon et il a perdu pas mal d'influence. + + + Il paraît que Sultan a pris le contrôle du business du Barbu. Il est vraiment devenu un des cadors du coin et ça veut dire qu'on peut gérer le Skadovsk à notre guise. Ça va être cool ! Imagine : t'as besoin de te mettre à couvert à cause d'une émission ? Pas de problème, suffit de passer à la caisse... + + + Hé, t'as entendu parler de l'Oasis ? Imagine un peu, un endroit qui guérit instantanément toutes tes maladies et tes blessures ! Ça doit être de la magie ou un truc dans le genre... Mais j'ai ma théorie perso : tout le monde parle de l'Oasis, mais t'as remarqué que personne ne parle plus de l'Exauceur de vœux ? Eh bien, peut-être que l'Oasis, c'est simplement le vœu de quelqu'un qui s'est réalisé... + + + Les scientifiques parlent d'un artefact que quelqu'un leur a rapporté de l'Oasis. Et apparemment, ils disent qu'après l'avoir étudié, il devrait leur permettre de trouver un remède au cancer. C'est fou, non ? + + + Une nouvelle journée, et toujours la même merde... Tout le monde raconte toujours les mêmes salades sur le centre de la Zone. Comme l'Oasis, par exemple : un lieu qui soigne toutes tes blessures et maladies instantanément. Même si c'est marrant à écouter, ça n'en est pas moins un bon paquet de conneries. Surtout quand ils parlent de son emplacement... Ah, si seulement elle existait vraiment... On aurait pu sauver tant de nos hommes... + + + À en croire les rumeurs, quelqu'un aurait trouvé l'Oasis. Je n'aurais jamais pensé qu'elle pouvait vraiment exister, mais les faits sont les faits. On y aurait même trouvé un artefact bizarre, que les scientifiques sont déjà en train d'étudier. Peut-être qu'ils réussiront à le transformer en une sorte de super médikit... Nos gars en auraient bien besoin. + + + Kopachy. Rien de neuf pour la Zone, mais j'avoue que pour moi, c'est du jamais vu. Imagine un peu : tout un village enseveli... Et ça date de 1986... Les baraques émettaient tellement de radiations qu'ils ont dû les enterrer. Ça fait froid dans le dos... + + + On t'a raconté pourquoi on cohabite avec le Devoir dans la gare de Yanov ? C'est la faute de Zulu. À l'époque, il faisait partie du Devoir et il pouvait sentir mieux que personne quand une émission allait se déclencher... Mais on était arrivés les premiers à Yanov. Enfin, après les stalkers, évidemment ! On avait à peine eu le temps de s'en rouler un que débarquaient les soldats du dimanche, avec le doigt qui tremblait sur la gâchette... Ça s'est terminé en un carnage pire que le combat à la Décharge, l'année dernière. Des tas de morts des deux côtés, dont notre spécialiste des émissions, qu'il repose en paix... C'est alors que Zulu s'est mis à gueuler "Émission en approche ! À couvert !". Qu'est-ce qu'on allait faire, les laisser crever dehors ? Devoir ou pas, ce sont quand même des êtres humains. Et voilà, c'est comme ça qu'on en est arrivé là : on se prend le chou pendant les périodes de calme, mais dès qu'une émission se déchaîne, on attend bien sagement, les uns à côté des autres, en serrant les fesses. Zulu a préféré quitter le Devoir et vit seul pas loin de Yanov maintenant. + + + C'est pas un scoop ni un secret que Cardan, le technicien, est en train d'essayer de noyer son foie dans l'alcool. Il paraît que quand il est arrivé au Skadovsk, il ne buvait que de temps en temps ou pour faire passer les radiations. Ce n'est que plus tard, suite à la mort de ses deux potes, qu'il a commencé à sérieusement lever le coude. Ils devaient vraiment être très proches, tous les trois... + + + J'en ai entendu une bonne récemment : apparemment, un type aurait vu un ovni planer au-dessus de Yanov. La Zone, ça rend dingue, hein ? Les poltergeists et les contrôleurs, ça leur suffit pas, faut qu'ils aillent aussi chercher de bonnes vieilles histoires d'ovnis. Enfin, au moins, on n'a aucun de ces prêcheurs à la manque qui essayent d'exorciser les esprits malfaisants avec de la vodka... + + + Tu es au courant pour le village de Kopachy ? Après le premier désastre de Tchernobyl, l'endroit avait été tellement touché que les autorités avaient décidé de tout raser : il n'en reste plus rien à part des petits tertres radioactifs. Il paraît que le coin était étrange, même avant la catastrophe ; je n'ose même pas imaginer ce que ça doit être maintenant... Mais bon, personne n'a le courage d'y aller de toute façon. + + + C'est pas nouveau, mais je ne sais pas si tout le monde est au courant. On ne fait pas chambre commune avec la Liberté pour le plaisir, c'est juste une affaire de circonstances. Quand on est arrivé ici, les gars de la Liberté nous sont tombés dessus... Même si on prenait l'avantage lentement, mais sûrement, il y avait de sacrées pertes des deux côtés... Et puis, au beau milieu du combat, Zulu a senti qu'une émission approchait. Il ne se trompe jamais... Donc on n'avait pas le choix, il fallait faire une trêve. Mais bon... je n'ai jamais vraiment compris pourquoi Zulu a quitté le Devoir après cet incident. + + + Nos éclaireurs ont signalé qu'ils avaient vu un objet volant non identifié au-dessus de la gare de Yanov. Un ovni, pour faire court. Mais attention, hein ! Un ovni n'est pas forcément une soucoupe volante remplie de petits hommes verts ! Ça peut être n'importe quel objet volant, un morceau de carton, une sonde météo, tant que celui qui l'observe n'est pas capable d'identifier. Compris ? + + + C'est toi qui as apporté le fameux PDA à Loki, hein ? C'est de la bombe, ce truc ! Le fondateur légendaire du Devoir, le général Tachenko, a menti à ses hommes ! Il a saboté sa propre radio pour couper les communications avec l'extérieur et pouvoir monter sa propre faction... tout ça pour finir comme un con dans une bulle spatio-temporelle ! Une histoire pareille, ça s'invente pas ! + + + T'as vu la nouvelle unité de troufions du Devoir ? Y a pas moyen que ce soit des renforts de leur base, ils sont pas assez intelligents pour ça. Mais bon, ces mecs sont trop bien entraînés pour n'être que de simples stalkers. Qui sait, peut-être que ce sont des gars du Monolithe ? Je sais, je sais, ça paraît dingue... + + + Tu as vu nos dernières recrues ? Oh, c'est toi qui les as amenées, hein ? Trop de la balle, mec ! Ils sont plutôt cools, un peu stressés, peut-être... Mais c'est pas grave, au bout de quelques mois, ils apprendront à se détendre. Il faut juste qu'ils trouvent leurs marques. + + + On a de nouvelles recrues : des anciens du Monolithe ! Et attention, pas des bleubites, hein, des vrais vétérans ! Bon, évidemment, il leur manque quelques neurones, rapport à leur ancienne allégeance, mais on va leur faire suivre notre programme de rattrapage idéologique vite fait bien fait et tout ira bien. + + + Il paraît que la Liberté a recruté d'anciens combattants du Monolithe. C'est difficile à croire, mais, effectivement, ils ont une nouvelle unité et c'est clair qu'elle ne vient pas de l'extérieur de la Zone. Ils doivent être plutôt désespérés... à moins que leur cerveau ne se soit complètement ramolli à cause de toutes ces drogues. Qui est-ce qu'ils vont recruter ensuite ? Une brigade de zombies ? Une escouade de domovoï ? + + + Cette région sera bientôt sécurisée. Le Devoir a pris le contrôle de tous les points stratégiques locaux. Nous avons une base solide à Yanov et nous assurons la protection du bunker des scientifiques 24 heures sur 24, 7 jours sur 7. Il est temps que la Liberté mette les voiles : les anarchistes ne sont pas les bienvenus ici ! + + + La dernière merveille du monde : Cardan à jeun ! C'est fou ! Quand les gars du Skadovsk lui ont demandé s'il s'était procuré le numéro des Alcooliques Anonymes, il a répondu : "Le seul numéro dont j'avais besoin, c'était le 62". + + + C'est toi qui as proposé aux scientifiques de recruter nos gars, non ? Eh bien, merci ! Ça fait du bien de voir nos hommes devant le bunker au lieu de ces satanés mercenaires. + + + Alors... On s'éclate à profiter de la planque du Devoir ! Maintenant, on va pouvoir y enfermer ces raclures pour leur faire avouer tous leurs petits secrets. Hé hé ! Oh, et merci de nous avoir dit pour système d'alarme. Sans renforts, on aurait eu aucune chance. + + + Et une autre victoire pour le Devoir ! Ces anarchistes ont eu les yeux plus gros que le ventre... Ils pensaient pouvoir venir en douce dans notre entrepôt et repartir sans qu'on réagisse ? Alors ça, hors de question ! On a préparé un comité d'accueil et on leur a explosé la tronche ! + + + Tout le monde sait que la Liberté n'est qu'un ramassis de crapules, mais on vient de découvrir un truc pas croyable au sujet de l'un des pires d'entre eux. Cette enflure se faisait appeler Flint dans la Liberté mais, avant de rejoindre leurs rangs, il était connu sous le nom de la Pie. Enfin, en tout cas, c'était son nom quand il est arrivé à Zaton et qu'il a mené tout un groupe de chasseurs droit dans la gueule d'une chimère afin de piquer leur matos pendant qu'ils se faisaient dévorer. Et quand il est arrivé à Yanov, il a rejoint la Liberté et a poussé son partenaire dans une anomalie pour voler son artefact. Eh oui, ça se passe comme ça dans la faction de la Liberté... + + + Un nouveau chantier naval commandité par Noah ! C'est la toute dernière attraction de Zaton. Noah : expérience, motivation, 100% barré ! Il a décidé de sauver tous les stalkers de l'apocalypse en convertissant une vieille péniche en "arche". Quel taré... Il est plutôt inoffensif... enfin tant qu'on l'énerve pas. + + + Tu as déjà rencontré Allegro ? Il est sur le Skadovsk en ce moment. C'est un vrai pro. Il peut te trouver tout ce dont tu as besoin. Enfin, presque... Récemment, il a commencé à se spécialiser en fusils et en combinaisons, mais il fournit que de la qualité ! Objets spéciaux, prototypes, articles fait-mains... Tout ça coûte assez cher, mais c'est assez normal ! + + + Apparemment, Pilote passe par un nouveau chemin pour faire le trajet entre Zaton et Jupiter. Avant, ça prenait un bon bout de temps de traverser les collines, contourner les anomalies et tout ça. Mais maintenant, c'est du gâteau : une vraie promenade à la campagne et, en plus, c'est deux fois plus court ! Mais ce n'est pas Pilote qui a trouvé ce chemin et il insiste pour rendre à César ce qui est à César. C'est un stalker qui lui a montré ses cartes. Contre rémunération, bien évidemment, mais le prix était raisonnable. + + + Pas grand-chose, en fait. + + + Il y a toujours quelque chose de nouveau dans la Zone, il suffit de regarder. + + + Eh bien, tu viens d'apparaître devant moi. Si ça, c'est pas du neuf... + + + Quoi de neuf dans la Zone ? + + + Je ne sais rien qui pourrait d'intéressant. + + + J'aimerais pouvoir en dire plus, mais c'est tout ce que je sais. + + + J'ai déjà raconté tout ce que je sais. + + + Hum... il vaudrait mieux demander au Faisan, sur le Skadovsk. Il a besoin d'aide pour découvrir ce qui est arrivé aux stalkers disparus. Tout le monde accuse les sangsues, parce que les cadavres qu'on a retrouvés avaient été complètement vidés de leur sang. Mais il y a anguille sous roche, à mon avis... Des gars disparaissent presque tous les jours maintenant. Les sangsues ne sont pas aussi voraces... Mais bon, dans le doute, le Faisan a embauché un chasseur expérimenté pour trouver leur nid. + + + Quand un stalker a besoin d'argent, il a le choix entre deux méthodes : trouver des artefacts et les revendre à un marchand pour une bouchée de pain, ou travailler pour les scientifiques. Ils ont toujours des missions à confier aux stalkers, qu'il s'agisse de livrer un artefact très rare ou la carcasse d'un mutant. Mais surtout, ceux qui se les mettent dans la poche peuvent obtenir un permis tout ce qu'il y a de plus officiel pour pouvoir rester dans la Zone. C'est dingue, non ? Ce serait trop fort de passer devant un poste de contrôle militaire, le sac à dos plein de butin, avec les bidasses au garde à vous ! Ça me réchauffe le cœur rien que d'y penser ! Enfin bref... Le bunker des scientifiques se trouve à l'ouest de la gare de Yanov. Ils ont déjà un stalker qui travaillent pour eux, peut-être qu'ils seront prêts à embaucher quelqu'un d'autre ? + + + Si tu n'as rien contre la chasse aux mutants, ce ne sont pas les offres qui manquent. Va parler à Trappeur au sous-sol de Yanov. Mais attention, ne va pas descendre le premier pseudo-chien que tu croises et le lui apporter en espérant obtenir une récompense ! Trappeur ne donne que des cibles bien précises, en général des monstres qui empêchent de récupérer des artefacts ou qui traînent dans les endroits où les stalkers vont s'abriter en cas d'émission. + + + Les mecs comme toi qui montent à bord du Skadovsk vont en général voir le Barbu. Il paie un bon prix pour des artefacts... Mais laisse-moi te dire une bonne chose : il n'y connaît que dalle au business ! Il veut pas partager ses bénefs avec ceux qui font régner l'ordre... Ça va lui revenir dans la gueule un de ces jours, si tu vois ce que je veux dire... + + + Si tu as besoin de fric, va voir le Hibou ! Il a tout ce dont les vrais mecs peuvent avoir besoin sur le Skadovsk : des infos, des armes, tout ce que tu veux ! Et si t'as un truc d'aussi dangereux que précieux, comme un document secret ou un PDA de stalker, apporte-le au Hibou ! Tu peux aussi te faire pas mal de thune en acceptant ses missions. Il suffit de lui demander s'il a besoin d'un coup de main. + + + Il vaudrait mieux demander à Gonta. Lui et ses gars ont une sacrée histoire à raconter : une chimère a fait son apparition à Zaton il n'y a pas très longtemps, alors Gonta et ses hommes se sont mis en chasse. Ils se sont séparés en deux groupes pour traquer la bête et ont envoyé l'un des chasseurs à la recherche du nid des sangsues. Comme ils étaient un peu ric-rac niveau effectif, ils ont emmené la Pie, un autre stalker. Je ne sais pas exactement ce qui s'est passé, mais apparemment, la Pie se serait défilé en voyant la chimère. Gonta a failli y rester et un de ses hommes a été grièvement blessé. Malheureusement, la chimère est toujours en liberté... C'est pour ça qu'ils cherchent de l'aide. + + + C'est facile : si t'as besoin de fric, il suffit de demander à Sultan. C'est le chef de la pègre locale, alors s'il t'a à la bonne, il te trouvera du boulot. + + + Si tu es doué pour trouver des artefacts, va parler au Barbu. Tout le monde le respecte par ici, parce que c'est le seul gars du Skadovsk qui te les achètera à un prix honnête. Il a aussi les contacts qu'il faut pour faire sortir tout le matos de la Zone. Et en plus, c'est un type sympa... toujours disponible pour donner des conseils ou te trouver du boulot. + + + Il y a un marchand sur le Skadovsk, le Hibou qu'il s'appelle. Toujours en train de se plaindre que les gens filent leurs artefacts au Barbu et pas à lui... Mais si t'as besoin d'argent, tu peux aller voir ce qu'il a à proposer. Cette petite fouine se contente pas de vendre des munitions : il peut aussi te vendre des infos et du matos, ou te payer si tu as des renseignements qui l'intéressent. Rends-lui visite, il est sur le pont arrière. Je suis sûr que vous trouverez un terrain d'entente. + + + Vano saura sûrement. Il traîne au bar de Yanov la plupart du temps. Le pauvre a des soucis avec les bandits : ça fait déjà trois fois qu'il essaie de rembourser sa dette. Il a toute l'expérience qu'il faut, il peut repérer des anomalies les yeux fermés et pourtant, il trouve toujours le moyen de s'attirer des ennuis. Des tas de gens lui ont suggéré de se tirer... Après tout, la Zone est tellement grande, les bandits ne risquent pas de le retrouver. Mais il est trop fier pour se sauver comme un voleur. Malheureusement, il n'y a pas grand monde qui puisse l'aider à résoudre son problème... + + + Oublie le boulot, mec... Les bandits ont complètement pété les plombs : ils ont capturé Mitay et demandent une rançon ! Mitay est l'un des premiers stalkers à avoir atteint Yanov. C'est lui qui a construit cet endroit pour que les gars puissent s'abriter en cas d'émission et maintenant qu'il a besoin d'aide, personne lève le petit doigt ! La Liberté et le Devoir sont trop occupés à se sauter à la gorge, mais tous les autres... ils devraient intervenir ! Ah, c'est pas croyable... Mais bon, même les hommes de Mitay savent pas comment faire pour le libérer. Si tu veux leur filer un coup de main, va parler à Grizzly ; tu le trouveras dans le bar de la gare. + + + Nitro, le technicien de Yanov, a besoin de matos. Il se débrouille aussi bien avec les armes qu'avec les appareils électroniques. Mais parfois, il ne suffit pas d'être doué, il faut le matériel adapté et c'est ce qu'il cherche désespérément. Le problème, c'est que la plupart des planques ont déjà été nettoyées et que celles qui ne l'ont pas encore été sont trop dangereuses pour la plupart des stalkers. Nitro cherche quelqu'un qui serait prêt à prendre des risques... Je suis sûr qu'il y aura une belle récompense à la clé. + + + Il paraît qu'Oncle Yar, de la gare de Yanov, est à la recherche d'un stalker qui ne pose pas trop de questions pour l'aider. Je ne sais pas trop pourquoi il ne veut pas demander à ses potes de la Liberté... Mais bon, c'est un mec bien, donc ça peut valoir le coup de lui parler, histoire de voir si vous pouvez trouver un accord + + + Hum... Ça ne me dit rien. + + + Si seulement je le savais... + + + Et comment je saurais ça ? + + + Qui pourrait me proposer du travail ? + + + J'ai déjà répondu à cette question. + + + Je n'ai rien à ajouter. + + + J'ai déjà répondu à cette question. + + + On oublie ça, ok ? + + + J'aurais une petite question... + + + J'écoute. + + + Vas-y, accouche ! + + + Oui ? + + + J'écoute. + + + À l'aide ! + + + Voilà un médikit ! + + + Désolé, je n'ai rien. + + + Je vois. + + + Qu'est-ce qui se passe ? + + + Je peux venir ? + + + Bien sûr. Plus on est de fous... + + + Non, désolé, je préfère y aller seul. + + + Allons-y dans ce cas ! + + + J'ai besoin d'un guide. Je suis prêt à payer. + + + Aucun problème. C'est pour aller où ? Y a que l'embarras du choix ! + + + OK. On y va. + + + J'ai changé d'avis. + + + Non, je dois m'occuper d'affaires plus urgentes. + + + Je me la coule douce. + + + Rien de spécial, à part du repos intensif. + + + Ça ne se voit pas ? Je bulle... + + + Je chasse des mutants. + + + Je suis quelques connards à la trace... + + + Je suis des mercenaires à la trace. De sacrés enfoirés... + + + Je suis des fanatiques à la trace. Des soldats du Monolithe... + + + Je suis à la poursuite de zombies. Il y a bien trop de ces pauvres débris dans le coin... + + + D'accord, mais ça va coûter cher. + + + En fait, j'ai changé d'avis. + + + Je n'ai pas autant sur moi. + + + Rien de spécial... + + + Je chasse des mutants. Il faut bien que quelqu'un leur apprenne à se tenir à carreau. + + + Je pourchasse des bandits locaux. + + + J'ai l'intention de scalper quelques mercenaires. Comme on dit, œil pour œil, dent pour dent... + + + Je compte me faire ces tarés du Monolithe. + + + J'essaie de retrouver quelques-uns de mes débiteurs. + + + Je ne fais rien de spécial pour l'instant. + + + Je chasse des mutants, j'essaie d'éradiquer la vermine du coin. + + + Je suis en mission. Je dois retrouver un groupe de bandits. + + + Ma cible est une unité de mercenaires. Je les suis à la trace. + + + Je suis à la poursuite d'un groupe de combattants du Monolithe. + + + Je suis à la poursuite de fauteurs de troubles... Ces anarchistes de la Liberté, évidemment ! + + + Je cherche des artefacts. + + + Qu'est-ce que tu crois ? Que je ramasse des champignons ? Je cherche des artefacts ! + + + J'essaie de trouver des artefacts. + + + Je vais à la Bouilloire, l'anomalie près du petit bosquet. + + + Je vais prendre du bon temps au lac qui se trouve au nord d'ici. + + + Je vais au nord, après le lac. Il y a un bon coin pour camper par là-bas. + + + Je vais dans les bois après le lac, au nord. + + + Je vais dans la petite forêt à l'ouest de la scierie. + + + Je vais à la colline à l'ouest du marais. J'y serai à l'abri de la pollution. + + + Je me dirige vers la station-relais. Il y a un petit coin bien sympa pas loin à l'ouest. + + + Je vais dans les bois à l'ouest du Pinchêne... Viens si tu veux, c'est plus sympa de se balader à plusieurs. + + + Je vais dans un bosquet entre la Forêt de Fer et les ateliers. + + + Je vais au grand pont... Il paraît qu'il y a un petit coin tranquille par là-bas, à l'est. + + + Je vais au parking au sud de la vieille péniche. + + + Rien de spécial, je me balade. Je vais m'installer sur une colline à l'est du Skadovsk. + + + Je me dirige vers un bosquet entre Izumrudnoye et la station-essence. + + + Je vais au croisement près de la station de traitement des déchets. + + + Je vais à la Bouilloire. + + + Je me rends au poste des rangers. Il y a tout un complexe industriel là-bas. L'un des bâtiments a même un fourneau, je me demande bien ce qu'ils y fabriquaient avant. + + + Je me dirige vers une forêt à l'ouest de la ferme brûlée. + + + Je vais à un bosquet à l'est de la Bouilloire. + + + Je vais à la colline derrière le lac, au nord. + + + Je me dirige vers un petit bosquet au sud de la ferme brûlée. + + + Je vais à l'ouest du Skadovsk... là où on peut voir les tuyaux. + + + Je me dirige vers un point situé entre le Skadovsk et la station de dragage. + + + Je vais au bayou pas loin de la vieille péniche. + + + Je vais à la crique non loin de l'anomalie Balafre. + + + Je vais à la station-essence. + + + Je vais dans les ravins du Pinchêne. + + + Je vais chercher des artefacts dans l'anomalie Griffe. + + + Je me dirige vers une colline à l'ouest de la Bouilloire. + + + Je vais à l'anomalie de la Forêt de Fer. + + + Je vais à la chasse aux artefacts dans l'anomalie de la Forêt de Fer. + + + Je vais dans le marais. Bien sûr, c'est pas évident de respirer avec tout ce gaz, mais ça vaut vraiment le coup, vu les artefacts qu'on peut y trouver. + + + Je vais aux ateliers du poste électrique. Il paraît que c'est un bon endroit pour s'abriter des émissions, alors je vais tenter le coup. + + + Tu connais la scierie pas loin d'ici ? C'est là que je vais. Je veux m'assurer qu'il n'y a rien de valeur là-bas. + + + J'ai envie de me détendre un peu à Izumrudnoye. C'est un vrai camp de vacances... pour les sangliers et les chiens aveugles ! Ah ah ! N'empêche, je pense que je vais y traîner un peu.... + + + Je vais au pont, celui qui s'appelle Preobrazhensky sur la carte. + + + Je suis en route pour la station de dragage. Je parie qu'il reste quelques trucs de valeur là-bas. + + + Je vais à la vieille péniche. + + + Je veux faire un tour par la ferme brûlée, au cas où de nouveaux artefacts y seraient apparus. + + + Je vais au plateau du sud. + + + Je suis en route pour le ravin à côté de la station-essence. + + + Je suis en route pour la station-relais de Krug. Il faut que je me trouve un bon abri pour me protéger des émissions. Malheureusement, il paraît que ça grouille de monstres dans le coin. + + + Je suis en route pour la station-relais de Krug. Il faut que je me trouve un bon abri pour me protéger des émissions. Malheureusement, il paraît que ça grouille de monstres dans le coin. + + + Je vais chercher des artefacts près du Pinchêne. Avec un peu de chance, les bestiaux se tiendront à carreau. + + + Je vais au bouillon de culture... Tu sais, la station de traitement des déchets. Après tout, c'est un endroit comme un autre pour s'abriter pendant les émissions. + + + Je vais à l'embarcadère du lac au nord. Une fois sur place, j'improviserai. + + + Je vais sur les quais, où se trouvent les grues. C'est pas mal comme endroit pour camper. + + + Je compte chercher des artefacts dans la Bouilloire. J'espère que ma combinaison résistera à la température... + + + Je vais à la Balafre. Tu sais, l'anomalie ? + + + Je vais tester la résistance au feu de mon équipement et chercher des artefacts dans l'anomalie Soleil. + + + Je vais au poste des rangers. + + + Je vais au Chevtchenko. J'y serai à l'abri des émissions et hors de portée des mutants. + + + Je vais au Chevtchenko. J'y serai à l'abri des émissions et hors de portée des mutants. + + + Je vais sur les quais, où se trouvent les grues. C'est pas mal comme endroit pour camper. + + + Je veux revendre ma camelote et me payer une bière ou deux. C'est pour ça que je me dirige vers le Skadovsk. + + + Je suis en route pour le poste de contrôle près de l'usine de Jupiter. + + + Je vais à l'entrepôt à conteneurs. + + + Je suis en route pour un endroit inintéressant au possible, situé entre l'entrepôt à conteneurs et le tunnel sud. + + + Je vais à la gare de Yanov. Je vais enfin pouvoir souffler un peu. + + + Je me dirige vers le tunnel au nord de Kopachy. + + + Je vais dans un endroit vraiment flippant, le village de Kopachy... ou plutôt ce qu'il en reste. Je sais, je sais, j'ai fait mes provisions de médicaments antiradiations et de munitions. Je vais en avoir besoin. + + + Je suis en route pour la cimenterie. C'est un bon poste d'observation et personne risque de t'y prendre par surprise. + + + Je vais jeter un coup d'œil dans le sous-sol de la cimenterie. + + + Je vais au poste électrique de Yanov. + + + Je me dirige vers un point pas très loin du tunnel ferroviaire sud. + + + Je vais au bassin de refroidissement près de l'usine de Jupiter. + + + Je vais chasser le zombie dans le complexe Volkhov AA. + + + Je vais au bunker, tu sais, celui dans le complexe Volkhov AA. + + + Je vais essayer de trouver un artefact ou deux dans le bosquet anormal près de la carrière. + + + Je suis en route pour la carrière, là où se trouvent les camionnettes des ouvriers du bâtiment. + + + Je vais aller me planquer dans un coin entre la carrière et la gare de Yanov pendant quelque temps. + + + Je vais au tunnel est, celui qui passe sous l'usine de Jupiter. + + + Je compte vérifier à quel point ma combinaison résiste au feu dans le Puits à bitume. + + + Je vais chercher des artefacts dans l'anomalie Plavni. J'ai ce qu'il faut niveau antidotes, mais ce sont les monstres qui m'inquiètent. + + + Je vais jeter un coup d'œil au système d'aération entre l'usine et l'entrepôt à conteneurs. Pourquoi ? Eh ! Pourquoi pas, d'abord ? + + + Je vais fouiner dans les ateliers de Jupiter. Peut-être que j'arriverai à comprendre pourquoi l'endroit a si mauvaise réputation. + + + J'ai décidé de descendre jusqu'au fond de la carrière. Des stalkers m'ont dit qu'ils y avaient trouvé un bon paquet d'artefacts. + + + Tu connais le parking plein d'épaves ? C'est là que je vais, j'espère trouver des artefacts dans les anomalies électriques. + + + Il y a un coin vraiment sympa entre le complexe Volkhov AA et l'entrepôt, c'est là que je vais. + + + Je vais au bunker des scientifiques. + + + Je me dirige vers la tour de refroidissement au nord-ouest de la gare de Yanov. + + + Je vais m'approcher de l'usine de Jupiter, mais je compte pas y entrer. Je vais traîner dans les bâtiments administratifs, histoire de voir ce qu'il est possible d'y trouver. + + + Je vais faire un tour dans le Tas de cendres, derrière le village de Kopachy. + + + Je suis en route pour les ateliers de Jupiter. Il paraît qu'un hélicoptère s'y est écrasé, alors je me suis dit que j'irais voir ça de plus près. + + + Je vais au vieux train entre le parking et le complexe Volkhov AA. + + + Je me dirige vers le tunnel sud, histoire d'être à l'abri en cas d'émission. + + + Je vais à un endroit entre Yanov et Kopachy. + + + Je me dirige vers un endroit pas loin du canal, au sud de la cimenterie. + + + Je suis en route pour le canal, au nord de l'usine de Jupiter. + + + J'ai l'intention d'aller faire un tour dans la carrière. + + + J'ai l'intention d'aller faire un tour dans la carrière. + + + J'ai l'intention de faire un tour au nord de Yanov. + + + Je vais vers le complexe Volkhov AA. Il y a un coin sympa pour camper entre le complexe et le village de Kopachy. + + + Je me balade, tout simplement. Là, je vais à l'entrepôt à conteneurs. + + + Je fais le tour de la région. Là, je vais voir ce qu'il y a au sud du poste de contrôle militaire. + + + Je vais à l'héliport, celui qui se trouve entre l'usine et l'entrepôt à conteneurs. + + + Je vais au sud de la gare de Yanov, pas loin de la voie ferrée. + + + Quelque part au nord de la gare de Yanov. + + + Je vais au bosquet anormal. + + + Je vais au sud du complexe Volkhov AA. + + + Je vais au bassin de refroidissement juste à côté l'anomalie du Bain de béton. + + + J'ai l'intention d'aller inspecter les alentours de l'usine. + + + Je vais faire un tour pas loin de l'usine. + + + Je vais dans la cour derrière la laverie. + + + Je vais à la laverie, c'est l'endroit le plus sûr du coin. + + + Je vais à l'hôpital. J'espère que je ne vais pas tomber sur un de ces cinglés du Monolithe en cours de route... + + + Je vais à la librairie... On m'a dit que c'était une bonne planque en cas d'émission. + + + Je vais voir la plus grande attraction du coin : le symbole de l'amitié. Il est pas loin de la librairie. + + + Je vais à l'épicerie. On n'y trouve plus de pain frais de nos jours, mais au moins, j'aurais pas à craindre les émissions là-bas. + + + Je vais au magasin Berezka. + + + Je me dirige vers l'école maternelle. + + + Je vais au cinéma, près du monument Prometheus. + + + Je vais à l'école. Il paraît que ça grouille de monstres, mais au moins, je pourrai m'y abriter en cas d'émission. + + + Je suis en route pour le vieux centre de service. On dit qu'il y a une anomalie au premier étage, alors j'y trouverai peut-être des artefacts. + + + J'ai décidé d'explorer cette partie de la ville. Là, je me dirige vers l'ancienne épicerie. + + + J'ai décidé d'explorer cette partie de la ville. Là, je me dirige vers l'ancienne épicerie. + + + J'explore le coin. Là, je compte aller inspecter un bâtiment derrière le complexe résidentiel. + + + Je vais fouiller le centre de service, celui qui s'appelle Yubileiny, je crois. + + + Je cherche des anomalies. J'ai entendu dire qu'il y avait une anomalie calorifique à l'ouest de la maternelle. + + + Je me balade dans la ville. En ce moment, je me dirige vers le complexe résidentiel. + + + Je me balade dans la ville. En ce moment, je me dirige vers le complexe résidentiel. + + + Je me balade dans la ville. En ce moment, je me dirige vers le complexe résidentiel. + + + Je me contente de faire un tour. Là, je me dirige vers le port fluvial. J'espère que je ne vais pas tomber sur ces fanatiques du Monolithe. + + + Je fouille Pripyat à la recherche d'un endroit plein d'artefacts et sans monstres ou soldats du Monolithe... Hé, hé, on peut toujours rêver, pas vrai ? Bon, plus sérieusement, je compte aller voir une anomalie dont on m'a parlé, au sud du port fluvial. + + + Je vais au cinéma Prometheus. + + + Je vais au cinéma, près du monument Prometheus. + + + Je veux faire profil bas, le temps de reprendre mon souffle. Il y a un coin dans une cour au nord de l'école maternelle qui sera parfait pour ça. + + + Je vais au sud du complexe résidentiel. + + + Je vais à un endroit situé entre l'école maternelle et le complexe résidentiel. + + + Il y a un endroit qu'ils appellent la Balafre, où on dirait que le sol a été coupé en deux. On y a trouvé des artefacts, mais, une fois que tu y pénètres, il se passe un truc étrange : ton cerveau part en vrille, à tel point que t'en oublies quasiment de respirer et de te barrer en courant. + + + Tu sais où est la station de dragage ? C'est plein d'anomalies gravitationnelles, mais rien qu'un stalker expérimenté ne puisse gérer. Il suffit d'utiliser les boulons, comme d'habitude. Il y a aussi pas mal de radiations, à l'intérieur comme à l'extérieur. C'est un peu comme si tu te baladais près d'un gros tas d'uranium enrichi... + + + Il y a un vieux poste électrique par là, on l'appelle la Forêt de Fer, on comprend tout de suite pourquoi en la voyant. Il paraît qu'on y a trouvé des paquets d'artefacts après des émissions. Il y a pas mal d'anomalies électriques et de radiations, mais rien de vraiment dangereux... Et quelques poltergeists qui te balancent tout un tas de saletés... + + + Du boulot ? Franchement, je ne sais pas. Mais si tu veux filer un coup de main à la Liberté, va voir notre chef à Yanov : va dans l'aile sud et demande Loki. Et oublie pas : si tu crois à l'évolution des connaissances et de la conscience humaines, et à l'importance des dons de la Zone, tu fais le bon choix. + + + Aucune idée. Mais si tu trouves quelque chose qui nous aide à combattre la Zone et ceux qui pensent que c'est un don plutôt qu'une malédiction, va voir le commandant de l'expédition du Devoir, le colonel Shulga. C'est lui qui est responsable de la gare de Yanov, il se trouve dans l'aile nord. Une chose est sûre en tout cas : tout civil qui contribue au succès du Devoir sera récompensé. + + + Tout le monde parle de trucs vraiment bizarres qui se passent à la tour de refroidissement. Quand on se branche sur la fréquence commune, on capte des morceaux de signal de détresse, comme si un pauvre connard était bloqué dans une anomalie. Mais dès qu'on demande les coordonnées, y a plus de réponse. Le plus étrange, c'est le bruit de fond... Personne peut l'expliquer... + + + Je me rends à un endroit à mi-chemin entre le Skadovsk et le Chevtchenko. + + + Je vais à Jupiter. Mais je ne m'aventurerai sûrement pas très loin... + + diff --git a/gamedata/configs/text/fra/st_dialogs.xml b/gamedata/configs/text/fra/st_dialogs.xml new file mode 100644 index 0000000..c3b95b4 --- /dev/null +++ b/gamedata/configs/text/fra/st_dialogs.xml @@ -0,0 +1,978 @@ + + + + J'aurais une petite question à poser... + + + Vas-y, accouche ! + + + Qu'est-ce que tu penses d'Allegro ? + + + Allegro ? Je pense qu'un de ces jours, je vais me choper ce petit con au fond d'un bois et lui foutre une bonne dérouillée des familles ! + + + Tu as entendu parler de l'Oasis ? + + + Ouais, j'ai entendu une sacrée blague à propos de cet endroit. En fait, les gars de la Décharge ont lancé une rumeur concernant l'emplacement de l'Oasis. Ils se sont cassé le cul pour que ça ait l'air vrai, tu vois le genre ? Ensuite, ils sont partis là-bas et ils ont attendu. Ça a pas raté, il y a eu tellement de stalkers naïfs qui sont venus leur refiler leur matos que les gars ont pu se barrer de la Zone les poches pleines. Et pourquoi pas, après tout ? Ils avaient mis assez de côté pour leurs vieux jours. Y en a qu'un seul qui soit resté, un certain Yoga... + + + Ouais, paraît que si t'y vas, toutes tes maladies seront guéries... Ça doit être bien pratique : plus de gueule de bois ou d'hémorroïdes, le pied ! Si tu le trouves, t'as plus qu'à y ouvrir un petit commerce et regarder la thune s'accumuler sans que tu lèves le petit doigt ! + + + Qu'est-ce que ça peut me foutre ? Tout ça, c'est des conneries pour occuper les bleubites... Les vrais mecs, ils ont pas besoin de ça. C'est toujours la même chose : tu viens prendre une binouze au bar et tous les connards arrêtent pas de parler de l'Oasis. Et chacun te jure qu'il sait où elle se trouve... mais bizarrement, ils ont tous des infos différentes ! + + + Tu as déjà rencontré un stalker qui se fait appeler la Pie ? + + + Ouais. Et il m'a suffi d'un coup d'œil pour voir que c'était une belle buse... et puis, j'ai aussi entendu des stalkers dire que son surnom complet, ça serait plutôt la Pie voleuse... Enfin, si tu veux le trouver, faudra que tu te débrouilles tout seul. + + + Nan... Jamais entendu ce nom-là... + + + Qui aurait pu voler des affaires dans une cantine personnelle ? + + + Un salaud, je vois que ça. Tu devrais en parler aux boss à Yanov, ils savent s'occuper de ce genre de vermine. + + + Qui pourrait m'aider à décrypter quelque chose par ici ? + + + Ben, il paraît que Nitro à Yanov se débrouille pas trop mal. Apparemment, avant qu'il se mette à bosser pour le Devoir, les gars lui ont demandé de pirater quelques PDA... Ah, c'était le bon temps... + + + Hé, t'as pas besoin d'un polytechnicien pour ça. Il te suffit de trouver mec qui sache pirater ton système. J'en ai rencontré un quand j'étais au trou, mais ça fait un bail. Ça va pas t'aider, il avait encore cinq ans à tirer quand je suis sorti. + + + J'ai le PDA du marchand du Devoir. Tu ne connaîtrais pas quelqu'un que ça intéresserait ? + + + Il y bien a un marchand sur le Skadovsk... Hibou, qu'il s'appelle. Il paye toujours rubis sur l'ongle et les gars lui vendent des PDA de temps en temps. Il pose pas trop de questions non plus, ce qui est pas plus mal. + + + Ça peut intéresser quasiment tout le monde, mon pote... Réfléchis un peu : sa propre faction lui en ferait voir des vertes et des pas mûres, et les autres feraient des pieds et des mains pour obtenir ces infos. À mon avis, vaut mieux que le Hibou le fasse disparaître. Par contre, y aura que lui qui saura où la marchandise finira, mais bon, c'est à toi de voir... + + + Où est-ce que je peux trouver des outils par ici ? + + + Si tu cherches des instruments chirurgicaux, va voir dans les hôpitaux et les dispensaires. Si tu veux des outils de construction, va voir dans la carrière de Jupiter. Sinon, fouille dans les vieux ateliers. + + + Qu'est-ce que j'en sais, moi ? J'ai pas besoin d'outils pour faire parler les stalkers, tu sais... Allez, relax, je rigole. + + + Qui pourrait me débloquer un module de mémoire ? + + + Bonne question ! À ton avis, j'ai une tronche à savoir ce genre de connerie ? T'es pas un peu con, des fois ? Va plutôt voir des techniciens ou des scientifiques ! Tu t'attends quand même pas à ce que je puisse t'aider avec ce genre de truc, si ? + + + Pour tout te dire, la dernière fois que j'ai "débloqué un module de mémoire", c'était à l'école et c'était une putain de disquette ! Alors, va donc faire chier des mecs qui s'y connaissent dans ce genre de trucs, ok ? + + + Qui pourrait forcer un conteneur en acier ? + + + Tu connais Cardan, du Skadovsk ? Eh bien, il était torché l'autre jour et il s'est mis à poursuivre un autre abruti avec un pied-de-biche. Je suis sûr que tu dois pouvoir le convaincre de l'utiliser à des fins plus... comment dire... orthodoxes. + + + Eh ben, avec des bons outils, même moi, je pourrais y arriver. Mais bon, personne vient dans la Zone avec des outils... Donc tu ferais mieux de t'adresser à des mécanos, c'est leur domaine, après tout. + + + Je cherche un stalker du nom d'Accroc. Tu sais où je peux le trouver ? + + + Aucune idée... Demande plutôt à Sultan sur le Skadovsk. Le boss sait où sont tous les caves, en général. + + + Ouais, j'ai entendu parler de ce tocard. Il traîne à Zaton la plupart du temps, donc tu ne risques pas de le croiser par ici. + + + Qu'est-ce que tu peux me dire sur les hélicoptères qui se sont écrasés ? + + + Qui serait intéressé par des informations concernant le fondateur du Devoir ? + + + Je connais personne qui serait pas intéressé ! Ce sont des infos explosives, mon pote ! À mon avis, t'aurais plutôt intérêt à aller voir le Hibou, sur le Skadovsk. Tu y perdras peut-être un peu au change, mais au moins, tu te feras pas d'ennemis. + + + Ben, rien ! Réfléchis un peu : j'ai le Devoir à ma droite, la Liberté à ma gauche et des stalkers plein le cul ! Tu crois vraiment que j'ai que ça à foutre, de zyeuter le ciel ? + + + Les gars m'ont dit qu'ils en avaient vu un pris dans des câbles électriques de la Forêt de fer, mais ça t'avancera pas à grand-chose... à moins que tu tiennes vraiment à marcher dans une anomalie ou à te faire défoncer le crâne par un poltergeist. + + + Ouais, un mec m'a dit qu'il en avait vu un s'écraser sur un plateau, mais y a aucun moyen d'y accéder. Paraît que le pilote aurait pété un câble, vu la façon dont il volait. + + + Paraît qu'un hélico s'est pris pour un sous-marin et a fini dans le marais. Autant dire que ça s'est mal terminé, vu que l'eau par ici, elle est pas vraiment potable... + + + Il y a des militaires dans le coin ? + + + Qui serait intéressé par des cartes de la région entre Zaton et Jupiter ? + + + Pilote, je pense. C'est le guide principal de la région. Ça pourrait pas lui faire de mal de se référer à de vraies cartes au lieu des étoiles... + + + Les gars m'ont dit qu'une unité militaire était descendue du plateau sud, droit vers le camp des mercenaires. Ils se sont dit que ça allait barder, alors ils se sont tirés vite fait. + + + Paraît que des bidasses ont essayé de sortir leur matos de leur hélicoptère avant qu'il s'enfonce dans le marais. T'imagines ? Cinq troufions dans le marais à essayer de pas se mouiller les pieds ? Hé hé, ça devait pas être beau à voir. + + + Un type m'a dit qu'il traquait un stalker pour choper son butin quand il a entendu des coups de feu. Apparemment, les militaires étaient en train de se battre contre les mercenaires. Il s'est planqué et a attendu que ça se calme, mais du coup, son stalker en a profité pour se faire la malle. C'est con, hein ? + + + Un de mes potes m'a raconté qu'il avait vu un truc vraiment bizarre : y avait Noah et sa péniche avec le moulin dessus, tout excité à sauter dans tous les sens, et dix bidasses qui couraient dans tous les sens pour s'éloigner de son sale clébard. Autant te dire que mon pote s'est bien marré avant de s'éloigner de ce cirque. + + + Nan, c'est pas un coin tranquille, trop de mecs avec des flingues chargés et la gâchette facile... J'ai autre chose à foutre que faire le tri entre les militaires en vadrouille et les gars du Devoir en mission. + + + Tu sais comment aller à Pripyat ? + + + Qui est-ce que je pourrais recruter pour protéger les scientifiques ? + + + Ha, moi et les gars, on ferait l'affaire ! On va leur donner une protection comme ils en ont jamais vue ! Les stalkers et les mutants oseront plus s'approcher, crois-moi ! Suffit de cracher le fric toutes les semaines et c'est une affaire qui roule ! Mais faut pas oublier le 13e mois ! + + + Ben, à pied, mon pote ! Va jusqu'à Jupiter et demande aux gars du coin ! Y a pas de route directe entre Zaton et Pripyat ! + + + J'ai une tronche de guide touristique ? C'est pas marqué 'Questions connes bienvenues' sur mon front ! Va demander à Pilote. Lui, il est payé pour répondre à ce genre de questions. + + + Non... Qu'est-ce que j'irais foutre là-bas de toute façon ? Y a pas de stalkers à plumer dans ce trou ! + + + Je cherche quelqu'un qui serait prêt à se rendre à Pripyat. + + + Pripyat vaut pas le coup pour des mecs comme nous. Réfléchis un peu, ça grouille de mutants et d'anomalies... comme le reste de la Zone, d'ailleurs... mais en plus, y a pas de stalkers à plumer ! Quand les stalkers iront à Pripyat, fais-moi signe et on y ira, histoire de mettre un peu d'ordre, mais pas avant. + + + J'ai pas d'idée, mec. Désolé. + + + J'ai trouvé une arme étrange. Qui pourrait m'aider à savoir de quoi il s'agit exactement ? + + + À ta place, je demanderais aux techniciens. Après tout, c'est leur boulot de savoir ce genre de trucs, non ? + + + Aucune idée... Les stalkers du Skadovsk pensent que Cardan est un génie de la mécanique. Si tu veux mon avis, c'est qu'un vieux poivrot, mais tu pourrais peut-être t'adresser à lui... + + + Qui pourrais-je recruter pour faire des relevés pour les scientifiques ? + + + Nos gars peuvent s'en charger sans problème. Bon, c'est pas comme s'ils avaient fait des études, hein, mais tu leur montres n'importe qui et ils te le retournent dans tous les sens vite fait bien fait. Ils pourront même te creuser une tombe sur mesure ! + + + J'ai trouvé un artefact très étrange. Qui serait prêt à me l'acheter ? + + + Un artefact étrange, tu dis ? Fais voir... File-le-moi, histoire que je puisse bien le voir... Hé, du calme, je plaisante ! Mais à ta place, je montrerais pas ce truc à n'importe qui... Y a des tas de mecs qui sont pas aussi sympas que moi, si tu vois ce que je veux dire... + + + Mec, t'as des couilles en béton pour venir montrer ça dans le coin. Respect ! Écoute, le mec qu'il te faut, c'est le Barbu, sur le Skadovsk. Personne sait comment il arrive à faire sortir les artefacts de la Zone, mais il te débarrassera de ce machin pour un bon prix. + + + J'ai trouvé un nid de sangsues pas loin d'ici. Qu'est-ce qu'on doit faire ? + + + Ben, qu'est-ce que tu veux qu'on fasse ? On fout le camp, et vite, c'est tout ! + + + Ok, oublie ça. + + + J'aurais une question... + + + J'écoute. + + + Je cherche à me renseigner au sujet d'un certain Allegro. + + + Allegro ? Jamais entendu parler de lui. Il serait pas dans une autre unité ? + + + Je cherche des informations au sujet de l'Oasis. + + + C'est un conte de fée des stalkers. C'est ce qu'ils font depuis toujours : ils inventent une histoire pas possible et ensuite, ils partent à la recherche du saint Graal ! Moi, j'écoute pas ses racontars, ça apporte que des emmerdes. Y en a même qui croient à l'existence de l'Exauceur de vœux ! + + + Ah oui, l'endroit où les blessures se referment toutes seules et les maladies sont guéries comme par magie ? Ben, tout ça, c'est que du vent ! Les stalkers inventent ce genre de conneries pour se donner l'impression que la Zone n'est pas si dangereuse que ça, mais la triste vérité, c'est qu'il n'y a aucun endroit sûr dans toute la Zone. Faut savoir garder les pieds sur terre par ici ! Les rêveurs, ils survivent pas longtemps dans le coin. + + + Ouais, et tous les artefacts qu'on y trouve valent leur poids en or et ils sont présentés sur un plateau d'argent pendant qu'on te masse les orteils... Ben voyons... Je n'y crois pas une seule seconde, même si ce serait bien pratique. On pourrait y installer un hôpital sans médecins : les blessés viendraient et ils seraient soignés sans rien faire. Mais, c'est trop beau pour être vrai... + + + Je cherche un stalker qui se fait appeler la Pie. + + + J'ai déjà du mal à me rappeler tous les gars du Devoir, alors un stalker ! Jamais entendu parler ! Les stalkers ont leur base sur le Skadovsk, vaut mieux s'adresser directement à eux ! + + + Non. + + + Qui aurait pu voler des affaires dans une cantine personnelle ? + + + Alors, ça, ça n'arriverait jamais dans une base du Devoir. Mais ici, avec tous ces glandeurs de la Liberté, on ne sait jamais... + + + Qui pourrait m'aider à décrypter quelque chose par ici ? + + + Il y a un technicien du nom de Nitro dans la gare de Yanov. Il se débrouille bien en électronique : il m'a dépanné quand j'avais oublié le mot de passe de mon PDA. Il s'en est occupé en cinq secondes chrono ! + + + Pour ça, il vaut mieux aller à Yanov et parler à Nitro. Il est plutôt doué pour ce genre de trucs. + + + J'ai le PDA du marchand du Devoir. Qui est-ce que ça pourrait intéresser ? + + + Un marchand du Devoir ? C'est impossible ! Quoi qu'il en soit, c'est le lieutenant-colonel Shulga qui s'occupe de ce genre de choses. Il saura quoi en faire. + + + Où est-ce que je peux trouver des outils par ici ? + + + Il y a une usine pas loin d'ici. Bien sûr, il y a des chances qu'elle ait été pillée, mais ça vaut peut-être le coup quand même. + + + À mon avis, il doit en rester quelques-uns dans les vieux ateliers, ou alors dans certains des magasins. + + + Il n'y a que des mutants et des anomalies dans le coin ! Ha ! Et aussi des contrôleurs, mais ils ne sont pas vraiment du genre serviable... + + + Eh bien, il y a un train sous le pont pas loin d'ici. J'en ai déjà vu des comme ça avant : ils servent généralement à transporter des techniciens, donc ils doivent sûrement contenir du matériel. + + + Qui pourrait débloquer un module de mémoire ? + + + Nitro. C'est le seul gars de la gare de Yanov qui s'y connaisse. + + + Il vaut mieux s'adresser à un technicien pour ça. Et le seul technicien compétent du coin, c'est Nitro. Il traîne dans la gare de Yanov. + + + Qui pourrait forcer un conteneur en acier ? + + + Il paraît qu'il y a un technicien chez les stalkers. C'est un alcoolique, mais il connaît son métier. + + + Ha, autant demander qui pourrait forcer un coffre-fort ! Je suis sûr que Nitro pourra rien y faire... s'il y avait une serrure électronique, ça serait une autre histoire. + + + Je suis à la recherche d'un stalker du nom d'Accroc. + + + Il vaudrait mieux en parler aux autres stalkers, c'est l'un d'entre eux, ils doivent savoir où il est. Moi, j'ai jamais entendu parler de ce Maquereau... + + + Je cherche des informations sur les hélicoptères qui se sont écrasés. + + + Qui serait intéressé par des informations concernant le fondateur du Devoir ? + + + Le commandant, évidemment. C'est Shulga qui s'occupe de ce genre de chose. Le Devoir sait récompenser ses amis... + + + Ouais, nos éclaireurs ont vu un hélico militaire qui se dirigeait vers les héliports de réserves de Jupiter. Ils ont essayé de lui dire de changer de cap, mais les pilotes devaient avoir d'autres chats à fouetter. Je me demande si ces bidasses ont réussi à traverser le champ de mines... + + + On n'est pas encore très bien implantés dans le coin... Il vaut mieux en parler à nos gars près de Yanov. + + + Une patrouille a signalé qu'un hélicoptère militaire a tenté un atterrissage d'urgence près de l'usine de Jupiter. Malheureusement, l'appareil s'est écrasé sur le toit des ateliers. Il n'y a probablement aucun survivant, vu que nous n'avons reçu aucun signal de détresse. + + + Il y a des militaires dans le coin ? + + + Qui serait intéressé par des cartes de la région entre Zaton et Jupiter ? + + + Quelqu'un qui en aurait l'utilité ? Pilote, par exemple : c'est le guide sur la route entre Zaton et le Skadovsk. De telles cartes lui seraient bien utiles, c'est sûr. + + + Des militaires ? J'en ai pas vu beaucoup dans le coin, mais c'est vrai qu'on passe pas trop de temps par ici. + + + Quelqu'un a repéré le cadavre d'un soldat dans le champ de mines il y a quelque temps. Ces hélicoptères peuvent emmener 8 hommes en plus de l'équipage, alors certains ont dû en réchapper, mais personne ne sait où ils sont passés. + + + Un militaire a été aperçu dans le bunker des scientifiques très récemment, mais je ne sais rien de plus. + + + L'autre jour, un mec en uniforme a été aperçu en train d'entrer dans un bâtiment près du complexe Volkhov AA. Mais bon, ça aurait très bien pu être un zombie... + + + Des stalkers ont vu un groupe de militaires près de l'usine de Jupiter. À en croire la description qu'ils en ont fait, je dirais que ces mecs faisaient partie des forces spéciales. Ils étaient accompagnés par un stalker et se dirigeaient vers Pripyat. Les descriptions étaient très détaillées, mais l'expérience m'a appris à me méfier des rumeurs trop plausibles pour être honnêtes. + + + Comment faire pour aller à Pripyat ? + + + Qui je pourrais recruter pour protéger les scientifiques ? + + + Ils ne pourront pas trouver meilleure protection que celle fournie par le Devoir. Le lieutenant-colonel Shulga à Yanov se charge de ce genre de mission. Je suis sûr que vous arriverez à vous mettre d'accord. + + + Tant qu'ils bosseront avec ces clowns de la Liberté, on s'approchera pas de l'endroit. Plutôt crever que d'écouter ces abrutis sortir leurs vannes merdiques à longueur de journée. + + + Le Devoir n'a aucune raison de chercher un chemin menant à Pripyat pour l'instant, mais cela peut quand même nous intéresser. Différents rapports non confirmés indiquent l'existence d'un tunnel entre l'usine de Jupiter et Pripyat, mais la vérification de cette information impliquerait de passer toute la région au peigne fin. + + + Pour obtenir ce genre d'infos, il vaut mieux s'adresser à un guide civil. Nos éclaireurs ont déjà assez de pain sur la planche comme ça. + + + Nos éclaireurs parcourent souvent la région à la recherche d'un passage sûr vers Pripyat, mais sans résultat pour l'instant. + + + Je cherche quelqu'un qui serait prêt à tenter d'atteindre Pripyat. + + + La présence du Devoir est limitée dans cette région. Il vaut mieux en parler à nos gars de Yanov. + + + Selon la rumeur, les scientifiques hébergeraient un militaire dans leur bunker. Paraît qu'il est coincé là-bas : les scientifiques ne bougeront pas avant 12 à 18 mois et il ne risque pas de tenter d'atteindre la frontière de la Zone tout seul et à pied. Alors, je me dis que ça pourrait peut-être l'intéresser. + + + Il doit bien y avoir quelques têtes brûlées qui seraient prêtes à tenter le coup. Par exemple, un stalker du nom de Vano à la gare de Yanov : ça le dérange pas d'aller se fourrer dans les pires emmerdes et il est plutôt débrouillard. Ce type arriverait à sortir d'une anomalie les yeux fermés ! + + + Peut-être qu'en lançant une campagne de recrutement dans un asile... Quoi que... j'ai même mieux ! Des combattants du Monolithe ! D'ailleurs, puisqu'on en parle, on en a repéré un group près du complexe AA, ils connaissent sûrement un moyen d'atteindre Pripyat, eux... Je plaisante, bien sûr... + + + Certains membres du Devoir se porteront sûrement volontaires. Arpenteur, par exemple. Il n'a pas encore de mission, alors peut-être que le lieutenant-colonel le laissera y aller. + + + Tout le monde sait que les meilleurs combattants font partie du Devoir... mais nous avons d'autres objectifs pour l'instant. + + + J'ai trouvé une arme étrange. Qui saurait me dire de quoi il s'agit exactement ? + + + Waouh, sacrée pétoire ! J'ai jamais rien vu de pareil... Faudrait demander aux techniciens. + + + Qui pourrais-je recruter pour faire des relevés pour les scientifiques ? + + + Quelle question, le Devoir, bien sûr ! Nous comptons beaucoup d'hommes expérimentés et nous avons déjà travaillé pour les scientifiques. Il veut mieux en parler au lieutenant-colonel Shulga, je suis sûr qu'il mettra une unité à leur disposition. + + + Personne ne voudra travailler là-bas si c'est la Liberté qui se charge de la protection du bunker ! Ces pacifistes à deux balles sont tellement stones la plupart du temps qu'ils ont autant de chances de tirer sur leurs amis que sur les ennemis ! + + + J'ai trouvé un artefact très étrange. Qui serait susceptible de me l'acheter ? + + + Tous les artefacts sont étranges et je déconseille à quiconque de les trimballer comme ça. Il vaut mieux laisser faire les experts. + + + Ça intéressera sûrement les stalkers, ils s'y connaissent dans ce genre de choses. Encore mieux, le mec qui leur achète leurs artefacts ! + + + J'ai trouvé un nid de sangsues pas loin d'ici. Qu'est-ce qu'on doit faire ? + + + Les unités du Devoir n'ont pas d'opérations de nettoyage prévues pour l'instant, donc ce nid va devoir attendre. + + + Ok... + + + J'aurais une question à te poser... + + + Je t'écoute ! + + + Qu'est-ce que tu penses d'Allegro ? + + + Je sais pas grand-chose à son sujet... Tu devrais en causer aux stalkers. C'est l'un d'entre eux, non ? + + + Tu as entendu parler de l'Oasis ? + + + Plein de fois... Ça fait envie, je dois bien l'avouer : un palais dans les sables, une île dans la brume, un château dans le ciel... Shangri-la, le Paradis ou l'Oasis, même combat ! Tout le monde a le droit de rêver ! + + + Un stalker m'a raconté une histoire intéressante là-dessus, je me demande même si c'était pas la première fois que j'entendais parler de l'Oasis... Il m'a dit que d'après les légendes, toutes les blessures s'y referment, qu'on y devient calme et serein, comme si on n'était pas du tout dans la Zone. Je l'ai pas revu depuis... Et c'est seulement une fois qu'il est parti que je me suis souvenu qu'il boitait. Sauf qu'en partant, il boitait plus du tout et il avait même l'air d'avoir rajeuni... + + + Ouais, des stalkers m'ont même filé les coordonnées... Dix ensembles de cordonnées différents, qui vont du Lobotomisateur à la centrale de Tchernobyl, en passant par le bar de Yanov ! Qui sait, si ça se trouve, on est en plein dans l'Oasis en ce moment même, alors détends-toi et profites-en ! + + + Je cherche un stalker qui se fait appeler la Pie. + + + Jamais entendu parler... Je connais pas beaucoup de stalkers indépendants dans le coin. + + + La Pie ? Nan, mais c'est cool comme nom ! + + + Qui aurait pu voler des affaires dans une cantine personnelle ? + + + Personne d'ici en tout cas ! Y a bien des mecs qui vont te piquer une bouchée de ton casse-dalle ou une gorgée de ta gnôle quand tu regardes pas, mais on n'a pas de vrais voleurs ici... + + + Qui pourrait m'aider à décrypter quelque chose par ici ? + + + Il paraît que Nitro, à Yanov, est un fada d'algorithmes et de combinaisons. Mais bon, je suis pas vraiment sûr de mon coup, je lui ai jamais parlé : il bosse pour le Devoir, alors il a pas trop de temps à nous consacrer. + + + Je suis pas un expert en experts locaux... Demande à nos gars de la gare de Yanov la prochaine fois que tu y passes, ils pourront sûrement t'aider. + + + J'ai le PDA du marchand du Devoir. Qui est-ce que ça pourrait intéresser ? + + + Hé, ça a l'air intéressant ! Moi, je le filerais à Loki, notre chef à Yanov. Il s'assurera que les stalkers indépendants sachent quel genre de malades le Devoir recrute. + + + Où est-ce que je peux trouver des outils par ici ? + + + Dans l'usine, quelle question ! Bon, c'est pas une sinécure, mais tu trouveras forcément ton bonheur dans les entrepôts. + + + Bonne question ! Laisse-moi y réfléchir deux secondes... Où est-ce qu'on trouve des outils en dehors de la Zone ? Dans un magasin, non ? Sinon, y en a forcément dans des ateliers, pas vrai ? Ben, c'est la même chose ici ! Suffit de regarder au bon endroit, c'est qu'une question de bon sens, stalker ! + + + Des outils ? Euh, c'est un code qui veut dire quoi, ça ? Y a pas de flics par ici, tu peux causer normalement, tu sais... Oh, des vrais outils ? T'es sérieux ? Désolé, pour ça, je peux pas t'aider. + + + J'ai entendu dire qu'un de nos gars cherchait des outils et qu'il était allé dans le train sous le pont. Apparemment, y a un Tesla là-bas... Enfin bref... il a dit que c'était pas du gâteau... Pourquoi je te raconte ça ? Ben, il a dit aussi qu'il y avait des outils qui traînaient par terre, mais il a préféré pas s'en approcher parce que ça avait l'air dangereux. + + + Qui pourrait débloquer un module de mémoire ? + + + Ben, Novikov, dans le bunker des scientifiques, doit pouvoir s'en charger. Il est rapide, doué et poli. Y a aussi Nitro, le technicien du Devoir dans la gare de Yanov. Il est pas cher et pas très doué, mais il devrait pouvoir te dépanner. + + + Un bon technicien, j'imagine. Celui du coin est plus branché mécanique, alors à moins de vouloir rayer le canon de ton module, vaut mieux que tu demandes du côté de Jupiter. + + + Qui pourrait forcer un conteneur en acier ? + + + On m'a recommandé Cardan, qui bosse sur le Skadovsk, l'autre jour. Paraît qu'il sait ce qu'il fait, même s'il est rond comme une queue de pelle la plupart du temps. Il devrait pouvoir t'aider. + + + Quelqu'un qui en a fait son métier ? Le technicien local, Nitro, pourra pas s'en occuper, il est plutôt du genre à pirater des trucs électroniques, lui... + + + Je suis à la recherche d'un stalker du nom d'Accroc. + + + Jamais entendu parler... Tu devrais demander aux autres stalkers indépendants. + + + Je cherche des informations sur les hélicoptères qui se sont écrasés. + + + Qui serait intéressé par des informations concernant le fondateur du Devoir ? + + + Ça intéressera Loki, pas de doute là-dessus ! C'est lui le boss à Yanov. Même s'il sait pas quoi en faire... l'important, c'est que ces infos tombent pas entre les mains du Devoir. T'imagines la propagande ? J'en ai mal au crâne rien que d'y penser ! + + + Ouais, t'as entendu l'histoire de l'hélico dans le champ de mine ? Ben, les bidasses se sont écrasés sur l'héliport de réserve que leurs prédécesseurs avaient miné il y a 6 ans. Maintenant, certains disent qu'ils l'ont fait parce qu'ils sont cons, mais j'en doute : après tout, personne ira les faire chier là-bas, alors, une fois qu'ils auront rempli leur mission, ils peuvent retourner à leur taxi, le rafistoler et se tirer. Mais j'aimerais bien savoir pourquoi ils sont venus... + + + Je suis pas du coin et je sais que dalle. Va donc voir nos gars de Yanov : ils te diront tout ce qu'ils savent et le reste, ils l'inventeront ! + + + Ouais, certains de nos gars ont vu un hélico en détresse l'autre jour. Il a pas choisi le meilleur endroit pour atterrir, d'ailleurs : droit sur le toit de Jupiter ! Paraît qu'il s'est écrasé, que le toit a cédé et que tout le bordel est tombé à l'intérieur ! + + + Il y a des militaires dans le coin ? + + + Qui serait intéressé par des cartes de la région entre Zaton et Jupiter ? + + + Pilote, pas de doute. C'est le principal guide des environs. Si tu veux vendre des cartes, ça l'intéressera forcément ! + + + Du calme, mec. Y a pas de flics, pas de bidasses et pas de putain de milice par ici ! Y a pas de coin plus peinard dans toute la Zone ! + + + Non, mais un mec m'a dit qu'il avait vu une unité de militaires traverser le champ de mines près des héliports. Il a hésité à leur filer un coup de main, mais a décidé de s'abstenir. Les militaires, vaut mieux les laisser tranquilles, on sait jamais quand ils vont péter un câble et te plomber le cul ! + + + Perso, j'ai rien vu, mais paraît qu'il y a un militaire chez les scientifiques. Ozersky, le biologiste, dit que c'est un survivant de l'hélico qui s'est crashé sur la centrale... Ici, on raconte en rigolant que les grosses têtes se sont trouvé un nouvel animal de compagnie. + + + Pas directement, mais j'ai entendu des stalkers indépendants en parler. Ils auraient vu un bidasse près du complexe Volkhov AA. À mon avis, c'est plutôt un fantôme ou un zombie qui s'est réveillé... Qu'est-ce que t'en penses, toi ? + + + Non, mais y a un mec qui dit avoir vu 7 soldats suivre un stalker derrière la station-relais sur la route de Pripyat. Ça fait un bout de temps qu'y a plus d'herbe dans la Zone, alors on va mettre ça sur le compte du manque... + + + Comment faire pour aller à Pripyat ? + + + Qui je pourrais recruter pour protéger les scientifiques ? + + + La Liberté ! Nous, quoi ! On bosse tout le temps avec les scientifiques, alors ça serait pas compliqué de les protéger. Va en parler à notre chef, Loki, à Yanov. Il sera sûrement d'accord. + + + Je sais pas trop... Paraît que les crânes d'œuf ont embauché une unité du Devoir pour les protéger... On adorerait aider les scientifiques, c'est sûr, mais il est hors de question de bosser avec ces faces de rat du Devoir dans les parages ! + + + Paraît que tu peux y accéder à partir de Jupiter... l'usine, hein, pas la planète ! Ah ! Allez, elle était pas mal, avoue ! + + + J'en aucune idée ! J'ai carrément pas le temps de me pencher sur la question... À ta place, je demanderais à Pilote au camp. Après tout, il connaît la région comme sa poche... + + + Si je le savais, ça ferait longtemps que j'y serais allé... J'adorerais laisser le Devoir, les bidasses et tous ces combats derrière moi... + + + Je cherche quelqu'un qui serait prêt à tenter d'atteindre Pripyat. + + + Désolé, mon pote, je ne connais personne que ça peut intéresser à Zaton... Tu ferais mieux de demander à nos gars de Yanov. + + + Tu connais le bunker des scientifiques ? Ben, ils ont un sacré problème sur les bras là-bas ! D'abord Garry, le stalker, qui a décidé de partir pour Pripyat et maintenant, leur soldat qui s'est mis la même idée en tête ! Garry, c'est un loup solitaire, un vrai de vrai, mais le bidasse, c'est exactement le genre de gars qu'il te faut. + + + Vano, que tu trouveras à Yanov. Il est pas plus mauvais qu'un autre. C'est un gars bien qui aurait pu rejoindre la Liberté, mais il a pas trop envie de se friter avec le Devoir... ou avec qui que ce soit, d'ailleurs. C'est son point de vue et on le respecte ! + + + Je sais qui il te faut ! Un de nos gars a repéré un groupe pas loin du lac asséché, ces types seraient parfaits. Ils connaissent sûrement Pripyat comme leur poche et ils ont pas l'air de bosser pour qui que ce soit. Et ils sont courageux, ça, y a pas de doute ! Le seul problème, c'est que ce sont des combattants du Monolithe... + + + Ouais. Arpenteur, le chef des nouveaux... Il a pas l'air à l'aise parmi nous. Ses gars se sont bien adaptés, mais lui pas vraiment... Va donc lui parler ! C'est trop con de laisser un mec se morfondre ici s'il a une meilleure chance de faire son trou ailleurs. + + + Désolé, j'ai pas d'idée. + + + J'ai trouvé une arme étrange. Qui saurait me dire de quoi il s'agit exactement ? + + + T'as pas trouvé le manuel qui va avec ? Ben, je peux rien faire pour toi, alors... + + + Qui pourrais-je recruter pour faire des relevés pour les scientifiques ? + + + Je pense que nos gars pourraient s'en charger. Après tout, la Liberté engage pas que des idiots et si on a un doute, on demandera au bunker. C'est cool de faire avancer la science ! Va à Yanov et parles-en à Loki ! Je suis sûr qu'il sera d'accord ! + + + On adorerait s'en charger, mais c'est le Devoir qui garde le bunker ces derniers temps. Alors, pour passer voir les scientifiques de temps en temps, on s'en accommode, mais ça serait pas une bonne idée d'en faire une habitude. + + + J'ai trouvé un artefact très étrange. Qui serait susceptible de me l'acheter ? + + + C'est un collectionneur qu'il te faut, mon pote ! T'en trouveras pas à Yanov, vu que même les stalkers ont les foies de venir ici. Tu ferais mieux d'aller voir à Zaton, c'est un peu plus calme par là-bas. + + + Tu connais le Barbu, le barman du camp des stalkers indépendants ? Il achète les artefacts et il t'arnaque pas trop en général. C'est un mec sympa, crois-moi. Dommage qu'il bosse pas pour nous... + + + J'ai trouvé un nid de sangsues pas loin d'ici. Qu'est-ce qu'on doit faire ? + + + Faut que t'ailles prévenir les stalkers indépendants, leur camp est pas très loin, après tout. La faune de la Zone doit être protégée, c'est sûr, mais les gens sont quand même plus importants. + + + Ok, oublie ça. + + + J'ai une question pour toi... + + + Je t'écoute. + + + Qu'est-ce que tu penses d'Allegro ? + + + Inconnu au bataillon... Tu ferais mieux de demander aux habitués du Skadovsk. + + + Tu as déjà entendu parler de l'Oasis ? + + + J'ai tout entendu à propos de l'Oasis. C'est une légende, un mythe... Chaque stalker en attend quelque chose de différent et chacun prétend savoir où elle se trouve. C'est quand même dommage que tous ces lieux n'aient en commun que le fait d'être impossibles à atteindre ! + + + Ouais, ils disent que les blessures s'y referment d'elles-mêmes et qu'on s'y repose en un instant... Qu'aucune maladie ne résiste et que même les radiations n'ont plus aucun effet ! La seule chose dont je sois sûr, c'est l'endroit où se trouve ce petit paradis... Tu veux savoir ? C'est en plein centre de la Zone, pardi ! Mais ça reste entre nous, ok ? + + + Il paraît que les mutants que tu y croises ne s'intéressent pas à toi et qu'il y a même un artefact appelé le Cœur de l'Oasis... Personne sait ce qu'il a comme effet, à part qu'il ne faut pas y toucher. Ceux qui le prennent n'ont plus leur place dans la Zone... Où c'est ? Tout le monde sait que l'Oasis est à Pripyat, en dessous de la grande roue ! Où veux-tu que ce soit d'autre ? + + + Je cherche un stalker qui se fait appeler la Pie. + + + Ouais, je vois qui c'est... Mais j'ai pas la moindre idée de l'endroit où il peut être... + + + Hum... Jamais entendu parler de lui. + + + Qui aurait pu voler des affaires dans une cantine personnelle ? + + + Quoi ? Demande plutôt aux huiles de Yanov, ils pourront peut-être t'aider. + + + Qui pourrait m'aider à décrypter quelque chose par ici ? + + + Nitro à Yanov, bien sûr ! Il adore tous ces trucs technologiques hyper compliqués... Bien plus que jouer avec des flingues ! + + + Personne que je connaisse, en tout cas. Va plutôt te renseigner à Yanov, paraît qu'ils ont expert dans ce genre de truc... + + + J'ai le PDA du marchand du Devoir. Qui est-ce que ça pourrait intéresser ? + + + Tu connais le Hibou sur le Skadovsk ? Je suis sûr qu'il serait très ravi de mettre la main là-dessus... + + + Il y avait un mec appelé le Hibou à bord du Skadovsk, à Zaton. Il achète et revend toutes sortes d'informations... Ton PDA l'intéressera peut-être. + + + Où est-ce que je peux trouver des outils par ici ? + + + Un stalker m'a raconté que son paternel bossait dans un des ateliers avant 86. Paraît qu'il y avait tout un tas de matos là-bas, alors il devrait rester quelques outils, j'imagine. Ils sont sûrement rouillés à mort, mais ça vaut peut-être le coup d'y aller. + + + Tu connais la scierie dans les bois sur la colline ? Il devrait y avoir des outils là-bas, à moins que quelqu'un les ait déjà pris, ce dont je doute... Cet endroit, plus tu t'en approches, plus t'as envie de t'en éloigner... Et les radiations, c'est pas le pire, crois-moi... + + + Ben, l'usine de Jupiter est là, sous ton nez. Il doit forcément y avoir des outils à l'intérieur. Perso, je m'en approcherais pas... Cet endroit me fout trop les jetons. Mais tu pourrais fouiller les entrepôts à côté du bâtiment principal. + + + Paraît qu'il y a quelques endroits à Pripyat où on peut trouver du matériel technique. Il y aurait même un grand magasin soviétique d'époque. C'était le seul endroit où les gens pouvaient trouver quoi que ce soit d'utile... + + + Comment tu veux que je sache ça, moi ? Va voir dans les vieux ateliers et les magasins, tu finiras bien par trouver quelque chose ! + + + Franchement, le dernier endroit où j'ai vu des outils à peu près utilisables, c'était chez cet escroc de Sidorovich, dans son bunker du Cordon. Évidemment, faut cracher au bassinet, mais au moins, ils sont neufs et pas si chers que ça au final. + + + Je suis pas venu dans la Zone pour trouver des outils, moi. Réfléchis 5 minutes : à quoi pourrait bien te servir un marteau radioactif ? + + + Paraît qu'on peut récupérer toutes sortes de vieilleries dans l'ancien centre de maintenance... Tu devrais pouvoir y trouver des outils. Mais bon, pour ça comme pour le reste, le seul moyen d'obtenir du bon matos, c'est de s'en emparer en premier, alors bonne chance ! + + + Bonne question... À ta place, j'irais voir dans le train sous le pont. Me demande pas pourquoi... J'ai juste l'impression que tu pourras y trouver ce que tu recherches. + + + Qui pourrait débloquer un module de mémoire ? + + + Laisse-moi réfléchir... Ben, y a Nitro, à Yanov, qui devrait pouvoir s'en occuper. Sinon, y a Novikov, le technicien des scientifiques, ce type-là, c'est un vrai pro. Mais réfléchis bien avant de te décider, parce que Nitro, il est vachement moins cher ! + + + Pour ça, t'auras besoin d'un technicien et le seul dans le coin, c'est Cardan. Le truc, c'est qu'après avoir passé tant d'années au fond d'une bouteille, il est plus trop à la pointe de la technologie... Demande donc aux mecs de Jupiter, ils doivent bien avoir quelques experts là-bas. + + + Qui pourrait forcer un conteneur en acier ? + + + Cardan, sur le Skadovsk, je pense. Apparemment, il semble pas avoir trop de problème avec les cadenas, alors... + + + Faudrait que tu te trouves un technicien, j'imagine. Nitro y arrivera sûrement pas, c'est un peu trop lo-tec pour lui... + + + Ha, tu demandes ça à Pripyat ? Suis mon conseil et cherche quelqu'un un peu plus loin du centre de la Zone. + + + Je suis à la recherche d'un stalker du nom d'Accroc. + + + Tu ferais mieux de t'adresser au Barbu, le barman du Skadovsk. Il est au courant de tout, en général. + + + Accroc ? Alors, là, aucune idée ! Demande aux gars de Zaton, il passe tout son temps là-bas. + + + Je cherche des informations sur les hélicoptères qui se sont écrasés. + + + Qui serait intéressé par des informations concernant le fondateur du Devoir ? + + + À ta place, j'irais discuter avec le Hibou, sur le Skadovsk. Je te parie qu'il serait intéressé par des infos sur une légende comme celle-là. + + + J'en ai vu un... Je peux pas dire qu'il se soit crashé, mais il s'est pas posé en douceur en tout cas... Il arrêtait pas de se balancer d'un côté à l'autre et a fini par se poser sur un plateau au sud de Zaton... Je me demande s'il y a des survivants... Si seulement on connaissait un moyen d'aller là-haut. D'ailleurs, ça me fait penser que ce taré de Noah sait peut-être par où passer... + + + J'ai entendu parler de quelques hélicos militaires qui se sont écrasés pas loin d'ici... Les gens ont toutes sortes d'explications, mais il n'y en a qu'une qui m'ait marqué : ils auraient atterri sur les héliports de réserve qui avaient été minés par d'autres soldats. C'est con, hein ? Comme le disait mon paternel : "Creuse pas un trou pour quelqu'un d'autre, parce que tu risques d'y tomber toi-même". Il avait pas tort, hein ? + + + Un de mes potes m'a raconté une histoire... Il allait dans la Forêt de Fer pour trouver des artefacts et, à peine arrivé, il a entendu un grand fracas juste derrière lui. Il s'est retourné et s'est retrouvé nez à nez avec un putain d'hélicoptère qui fonçait droit sur lui en entraînant des pylônes, des câbles et un tas de bordel. Autant te dire qu'il a décampé sans se poser de questions ! Je me demande comment il a réussi à s'en sortir sans foncer droit dans une anomalie. T'auras pas de mal à trouver la Forêt de fer, on peut la voir depuis des kilomètres. C'est plein de poltergeists, par contre, alors fais gaffe ! + + + J'en ai entendu un atterrir sur le plateau au sud, mais c'est pas facile d'y accéder. Et il paraît que quelqu'un a vu Noah sur le bord de ce même plateau, ce qui veut dire que ce cinglé sait comment y aller. + + + J'ai rien vu, mais la rumeur veut que l'un d'entre eux se soit écrasé sur l'usine... Personne a voulu aller vérifier, c'est beaucoup trop dangereux. + + + Un stalker m'a dit qu'il avait vu plusieurs hélicos militaires en difficulté... Le moteur de l'un d'entre eux s'est enflammé avant que l'appareil pique tout droit dans un marais rempli d'anomalies. On peut y accéder relativement facilement, mais le marais lui-même est un enfer. Crois-moi, t'as pas envie d'y aller ! + + + Il y a des militaires dans le coin ? + + + Qui serait intéressé par des cartes de la région entre Zaton et Jupiter ? + + + Pilote, bien sûr ! C'est un guide, t'es pas au courant ? Toujours à faire l'aller-retour entre le Skadovsk et Yanov... Alors, c'est sûr qu'il aura rien contre des cartes plus détaillées. + + + Hé, on est pas à Zaton ou Jupiter ici ! Alors tes cartes, elles servent pas à grand-chose. Va tenter ta chance dans ces coins-là, tu trouveras beaucoup plus d'acheteurs. + + + J'en ai pas vu moi-même, mais j'ai entendu parler de soldats qui descendaient du plateau sud par les égouts. Apparemment, au début, ils ont essayé de pas trop se dégueulasser, avec des cordes et des poulies, mais ils ont vite laissé tomber et se sont laissé glisser sur le cul. Hé hé ! Du bobsleigh dans la Zone... La grande classe, non ? + + + J'ai entendu une conversation sur le Skadovsk... Paraît que 5 ou 6 soldats ont été aperçus en train de sortir des tunnels de drainage du marais. Ils étaient tellement dégueulasses et couverts de merde des pieds à la tête qu'ils auraient pu passer pour des sangsues ! + + + Perso, j'ai rien vu, mais un pote a aperçu une unité militaire qui attaquait un groupe de mercenaires près de la station de traitement. Le temps pour lui de trouver un bon point d'observation, c'était déjà terminé. Les bidasses se sont retirés en bon ordre, sans perte d'un côté ou de l'autre... Typique, non ? + + + Apparemment, des gars ont vu une dizaine de soldats traîner autour de la péniche de Noah. Et, vu qu'il était encore vivant à ce moment-là, ils ont dû arriver à un accord... Mais comme personne veut lui demander ce qui s'est passé... Faut dire qu'on sait jamais à quoi s'attendre avec ce taré. + + + J'ai entendu une explosion l'autre nuit et plus tard, quelqu'un à Yanov a dit avoir vu un militaire mort dans le champ de mines, pas loin d'un hélico. À croire qu'ils ont pas vu où ils atterrissaient dans le noir et qu'il a foncé droit dans le champ de mines. Personne ne sait s'il y a de survivants, mais c'est sûr qu'il n'était pas tout seul. + + + J'ai pas vu de militaires... mais j'ai entendu dire qu'il y en avait un qui traînait avec les scientifiques. Il paraît que Garry le stalker l'a trouvé alors qu'il se dirigeait vers le silo à missiles pour rejoindre ses potes. Et comme le complexe grouille de zombies, on peut dire que Garry lui a sauvé la mise. + + + Non, mais on m'a dit qu'un militaire avait été repéré près du complexe Volkhov AA. Mais bon, j'y crois pas vraiment... C'est un mensonge ou alors ils ne savent plus faire la différence entre un zombie et un soldat. + + + Des militaires ? Ben, j'ai entendu dire qu'il y avait "toute une escouade de soldats menée par un stalker" qui est passée pas loin de l'usine de Jupiter, mais j'ai pas vraiment suivi la conversation. + + + Comment faire pour aller à Pripyat ? + + + Qui je pourrais recruter pour protéger les scientifiques ? + + + Tu connais Spartacus et son groupe ? Tu sais, les stalkers de Zaton ? Ce sont de bons gars qui sont pas nés de la dernière pluie. Je pense que ça leur plairait bien comme taf. + + + T'es tombé sur Hachette et son groupe dans les ateliers de Zaton ? Comme tous les mercenaires, ils ont leurs propres problèmes, mais, au moins, ils posent des questions avant de tirer. Je me dis que si t'arrives à les convaincre de prendre ce boulot, les scientifiques seront contents et les stalkers pourront se détendre un peu. + + + Hum... Non, je vois pas trop... Désolé. + + + Ben, ce dont je suis sûr, c'est qu'il n'y a pas de chemin direct à partir de Zaton. Tous ceux qui veulent aller à Pripyat se dirigent d'abord vers Jupiter, en général, alors il doit bien y avoir un truc... + + + Ben, la rumeur veut qu'il y ait un passage secret qui mène à Pripyat sous l'usine de Jupiter... Le hic, c'est que cette histoire ne sort jamais avant la deuxième tournée et que Jupiter est un tel enfer que personne ose s'en approcher. + + + Alors, là, aucune idée ! T'aurais pas des questions plus faciles ? Tout ce que je peux te dire, c'est que tu ferais mieux d'aller causer à Pilote, c'est le seul qui pourra t'aider. + + + Ha, si je connaissais le chemin de Pripyat, je resterais pas ici ! Pourquoi tu crois que je suis venu au centre de la Zone ? Pripyat regorge d'artefacts ! Celui qui y arrivera en premier se fera des couilles en or ! + + + Je cherche quelqu'un qui serait prêt à tenter d'atteindre Pripyat. + + + Je crois pas que tu trouveras qui que ce soit par ici. Tous ceux qui voulaient s'approcher du centre de la Zone sont déjà partis pour Jupiter. Tu devrais aller là-bas pour te renseigner. + + + T'as entendu parler du militaire qui squatte chez les scientifiques ? Je me dis qu'il doit pas avoir grand-chose à perdre à te suivre... Les grosses têtes vont pas partir de sitôt et il peut pas retourner au Cordon tout seul, alors il est peut-être assez désespéré pour vouloir t'accompagner à Pripyat. + + + Tu connais Vano, de la gare de Yanov ? C'est un mec réglo et un bon stalker. Il se débrouille mieux avec les anomalies qu'avec les gens, si tu vois ce que je veux dire... Tout le monde a tendance à profiter de lui. + + + Tu sais, j'ai entendu dire qu'un groupe avait été repéré près du lac asséché au sud du complexe AA... C'était pas des stalkers normaux, ni la Liberté ou le Devoir, mais des combattants du Monolithe ! Alors, si tu cherches des gars pour aller à Pripyat, t'auras du mal à trouver mieux ! Hé hé, t'as compris que je plaisantais, hein ? + + + Tu connais Arpenteur, le chef de la nouvelle unité de la Liberté ? Si tu voyais sa tronche, tu te rendrais compte que Yanov, c'est bien trop tranquille pour lui. Tu devrais lui parler, il a besoin d'action, ce gars-là. + + + Tu connais Arpenteur, le chef de la nouvelle unité du Devoir ? Si tu voyais sa tronche, tu te rendrais compte que Yanov, c'est bien trop tranquille pour lui. Tu devrais lui parler, il a besoin d'action, ce gars-là. + + + Hum... Non, je vois vraiment pas. + + + J'ai trouvé une arme étrange. Qui saurait me dire de quoi il s'agit exactement ? + + + Alors là, vaut mieux demander aux experts... Tu sais, les techniciens... + + + Ça peut pas faire de mal de demander à Cardan, sur le Skadovsk. Il vend des armes et il est plutôt doué... Il lui reste peut-être même quelques neurones malgré la bibine... + + + Qui pourrais-je recruter pour faire des relevés pour les scientifiques ? + + + Tu connais Gonta le chasseur ? Je me dis que ses gars et lui seraient sûrement d'accord pour bosser avec les scientifiques. Je veux dire, s'ils ont des problèmes de mutants, ces gars sont exactement ce qu'il leur faut. + + + T'as entendu parler de Grizzly, Torba et Mitay, les stalkers de Yanov ? Ils bossent ensemble et ils se débrouillent comme des chefs ! Ils seront parfaits pour ce boulot... si Mitay arrive à se tenir à carreau pour une fois. + + + Aucune idée... On a déjà assez de problèmes par ici. + + + J'ai trouvé un artefact très étrange. Qui serait susceptible de me l'acheter ? + + + Je vois pas. Les gens d'ici cherchent les grands classiques. Va plutôt faire un tour à Zaton, c'est plus près de l'extérieur, on sait jamais. + + + Moi, je le montrerais au Barbu, le barman du Skadovsk. Paraît qu'il bosse avec des collectionneurs de l'extérieur qui sont toujours intéressés par les trucs nouveaux. + + + J'ai trouvé un nid de sangsues pas loin d'ici. Qu'est-ce qu'on doit faire ? + + + Putain, faut que t'ailles en parler au Barbu, sur le Skadovsk... Parce que si on s'en occupe pas, elles vont tous nous bouffer ! + + + Ok, oublie ça. + + + Où est le camp de stalkers le plus proche ? + + + T'es con ou quoi ? J'y connais rien en camps de stalkers, mais le camp le plus proche d'ici, c'est le Skadovsk. Je vais te refiler les coordonnées. + + + Où est le camp de stalkers le plus proche ? + + + J'envoie les coordonnées sur ton PDA... Il n'y a que le Skadovsk dans les parages. + + + À la prochaine ! + + + J'ai entendu dire qu'il y en avait plusieurs qui s'étaient écrasés... Mais je n'ai pas de détails, je ne m'intéresse pas trop aux rumeurs. Désolé... + + + J'ai d'autres chats à fouetter... Je veux dire, je me doute que s'écraser en hélicoptère, ça doit faire un mal de chien, mais, en dehors de ça, je vois pas quoi dire... + + + De quoi tu causes ? Faudrait fumer de sacrés trucs pour voir un hélico dans les parages, vu que les vrais ont pas vraiment grand-chose à y foutre ! + + + Hein ? Nan, je m'intéresse pas trop à ce genre de truc... Ça cadre pas vraiment avec ma mission de dissémination des connaissances, si tu vois ce que je veux dire... + + + Notre patrouille les a observés en train de descendre, mais seul le lieutenant-colonel est au courant de tous les détails. Moi, je n'ai pas vraiment besoin d'en savoir plus. + + + Où est-ce que je peux trouver une combinaison équipée d'un module respiratoire en circuit fermé ? + + + Je ne sais pas trop, mais l'argent fait parfois des miracles quand on sait où l'investir. Il vaut mieux en parler à Allegro... Si vous parvenez à tomber d'accord, il se débrouillera pour en récupérer une. J'espère que ça marchera... Ça me fera des vacances quand il sera parti. + + + J'ai une tête à savoir ce genre de truc ? Ça ne fait pas si longtemps que je suis ici après tout... Tu devrais demander à Zaton, nos frères y ont leur propre réseau. + + + Pas la moindre idée... Pourquoi ? Tu comptes sauter à pieds joints dans une anomalie ? Si tu trouves des artefacts, fais-nous signe, on viendra tout de suite... pour te féliciter d'avoir fait notre boulot, ah ah ah ! + + + Où est-ce que je peux trouver une combinaison équipée d'un module respiratoire en circuit fermé ? + + + Comment je saurais ça, moi ? Quoi que... il y a un mec sur le Skadovsk... Il paraît qu'il peut dégoter des trucs pas possibles. Il squatte le pont supérieur, en général, et il s'appelle Allegro. + + + Y a personne qui risque de venir jusqu'ici avec une combinaison de rechange pareille... Il vaudrait mieux aller voir du côté de Zaton, c'est plus près de la civilisation. + + + Je n'en ai pas la moindre idée... Des combinaisons comme ça, même les membres du Devoir n'en ont pas tous. Ils ne les donnent qu'aux soldats qui se sont distingués au combat ou qui participent à des opérations dans des zones hautement anormales. + + + Où est-ce que je peux trouver une combinaison équipée d'un module respiratoire en circuit fermé ? + + + J'ai entendu des indépendants parler d'un mec qui a le bras long, un certain Allegro, je crois. Apparemment, il peut trouver n'importe quoi, des armes, du matos, ce genre de truc... Pas de came, par contre. Il traîne sur le Skadovsk. + + + Bonne question, mon pote... On a pas ce genre de truc dans la Liberté... Tu devrais demander aux stalkers de Zaton, il y aura peut-être quelqu'un qui pourra t'en procurer une là-bas. + + + Et à quoi te servirait cette merde ? Si ça sert à rien au combat, ça sert à rien... Remarque... peut-être que ça peut servir quand même. Plus facile de respirer et le soleil te fait plus chier... Hum... Pas con... Hé, tu saurais où je pourrais en trouver une ? + + + Où est-ce que je peux trouver une combinaison équipée d'un module respiratoire en circuit fermé ? + + + À mon avis, Allegro, sur le troisième pont du Skadovsk, doit pouvoir en trouver une. Ce mec pourrait trouver de la neige en plein désert... Mais tout a un prix avec lui... + + + Laisse-moi réfléchir... Il y avait un mec plein de ressources à Zaton, Allegro qu'il s'appelait... Vois s'il est encore là ! Je me souviens qu'il était spécialisé en matos haut de gamme. + + + Hé, ça se trouve pas sous le sabot d'un cheval, ce genre de trucs... Les combinaisons comme ça, y en a pas plus d'une poignée dans la Zone... T'auras de la chance si t'en trouves une d'occasion ! + + + Au revoir. + + + Au revoir. + + + À plus tard ! + + diff --git a/gamedata/configs/text/fra/st_dialogs_jupiter.xml b/gamedata/configs/text/fra/st_dialogs_jupiter.xml new file mode 100644 index 0000000..06532fb --- /dev/null +++ b/gamedata/configs/text/fra/st_dialogs_jupiter.xml @@ -0,0 +1,3885 @@ + + + + Qu'est-ce que tu veux ? + + + Je dois parler à Jack. Ça concerne la dette de Vano. + + + Vas-y, je t'écoute. + + + Ok. + + + Je me balade, c'est tout. + + + On est pas dans un jardin public, mon gars. Fous le camp ! + + + Qui aurait pu voler des affaires dans une cantine personnelle ? + + + J'ai mon propre merdier à gérer... C'est pas mon matos que je risque de perdre, moi, c'est la vie... + + + Vol, tromperie... On est tombé bien bas. J'ai vu personne, moi, et je suis sûr que le responsable est déjà loin. + + + Allez, on va voir Zulu. + + + T'as raison. On devrait aller voir l'Hawaïen, histoire que je puisse racheter ma combinaison. + + + C'est parti. + + + Bonne idée, mais j'ai moyennement envie de me retrouver comme un con au beau milieu d'une émission. On va attendre un peu. + + + On va avoir besoin d'une combinaison avec un module respiratoire en circuit fermé pour aller à Pripyat. + + + C'est trop con ! J'en avais un sur ma combinaison ! Je pouvais mettre la tête dans un four et respirer sans problème. Mais je l'ai mise au clou chez l'Hawaïen... Si seulement j'avais 5 000 billets, je pourrais la racheter... Mais je suis à sec ! + + + Je pourrais te donner l'argent pour la combinaison. + + + Vraiment ? T'es sérieux ? + + + Tiens, voilà tes 5000 billets. + + + Tu me sauves la vie, mon pote. Tu peux compter sur moi quand tu veux ! + + + Je te donnerais bien l'argent, mais je n'en ai pas autant sur moi. + + + Ça arrive même aux meilleurs, mon pote... J'en sais quelque chose, crois-moi ! + + + Je vais y réfléchir. + + + Bien sûr... C'est ton fric, après tout. + + + Alors, tu vas me le filer, ce pognon, ou pas ? + + + Je suis en train de monter une équipe pour aller à Pripyat. Tu veux en être ? + + + Tu m'as aidé, c'est normal que je te rende la pareille ! + + + J'aimerais bien, mais je peux pas partir tant que je traîne cette dette. Ce serait pas honnête et si jamais on tombe sur eux en chemin, ils m'abattront comme un chien. Ces enfoirés se foutent bien de savoir qui ils tuent... + + + Alors, prêt à aller à Pripyat ? + + + Carrément ! + + + Eh bien, entre ! Qu'est-ce que tu veux ? + + + T'as remboursé la dette, alors maintenant, tire-toi ! + + + Ces mecs étaient de vrais salopards, et arrogants en plus ! J'ai été obligé de les faire taire... + + + J'ai payé, ta dette est effacée. + + + Génial ! Merci ! J'oublierai jamais ce que t'as fait pour moi ! + + + Ils m'ont aussi fait payer les intérêts... + + + Ça craint... mais ils m'auraient fait payer encore plus cher, crois-moi... Merci pour ton aide ! Je l'oublierai pas. + + + Je ne suis pas encore allé les voir. + + + Grouille-toi avant qu'ils te fassent cracher encore plus ! + + + Je suis allé les voir, mais ils ont réclamé des intérêts... + + + Ils sont complètement tarés ! J'ai déjà eu du mal à rassembler cet argent... Tu pourrais pas m'aider à les convaincre de tirer un trait sur les intérêts ? T'auras besoin d'une bonne arme... Va falloir employer la manière forte. + + + C'était quoi, cette histoire de dette, déjà ? + + + Eh bien... Ma combinaison commençait à se faire vieille, donc je me suis dit qu'il était temps d'en changer. Et là, paf, je suis tombé sur une combinaison flambant neuve... Elle était équipée d'un module respiratoire en circuit fermé et tout le toutim... Mais même en raclant les fonds de tiroir, j'avais pas de quoi me la payer. C'est là que le vendeur m'a dit de pas m'inquiéter, que je pourrai lui filer la différence plus tard. Je me suis dit que c'était un mec vraiment cool. + + + Et qu'est-ce qui s'est passé ? + + + J'ai vendu ma vieille combinaison et j'ai filé tout mon fric à Jack, le vendeur. C'est là qu'il m'a parlé des intérêts. Je me suis dit qu'il avait raison, que c'était normal, alors j'ai récupéré un peu plus d'argent et je le lui ai filé. Mais il m'a expliqué que le temps que je lui rembourse ces intérêts-là, d'autres s'étaient accumulés... Je me suis retrouvé complètement débordé et j'ai dû mettre ma nouvelle combinaison et mes armes au clou... + + + Et qu'est-ce que tu comptes faire ? + + + Je veux lui filer l'argent que j'ai gagné et régler ma dette. Y a rien de plus important que ma réputation ! Vano, il règle toujours ses dettes ! Mais j'ai la trouille... Tu pourrais aller voir Jack à ma place pour lui filer le fric ? + + + D'accord. + + + Mais quand t'iras le voir, oublie pas de sortir la grosse artillerie, hein ! Montre-lui qu'il vaut mieux pas te chercher et il te respectera un minimum... + + + Je me débrouillerai. + + + Je suis trop occupé pour l'instant. + + + J'en ai assez. + + + Alors, tu peux aller voir Jack et rembourser ma dette à ma place ? + + + Attends, attends, tire pas ! Je vais payer ! Oh, pardon, je t'ai pris pour quelqu'un d'autre... + + + Comment ça s'est passé avec les bandits ? + + + Hé ! Je suis content de te voir ! + + + Salut ! + + + Tiens, tiens, on a de la visite... Un stalker qui veut discuter avec Shishak... T'es venu avec des cadeaux ou tu viens causer boulot ? Allez, crache le morceau ! + + + Je pensais pas que tu reviendrais... Alors, qu'est-ce que tu m'apportes ? + + + J'ai rien à ajouter, stalker. + + + Qu'est-ce que tu veux ? T'en as marre de traîner ton butin ? On peut te débarrasser, si tu veux... + + + Il faut que je parle à votre chef. + + + Ben voyons, j'ai pas le temps pour ces conneries. Barre-toi ! Grouille-toi ou je demande à mon pote le fusil à pompe de te montrer le chemin ! + + + Ok, ok, c'est bon, je pars. + + + Je suis venu pour le stalker qui est retenu prisonnier. Je veux voir votre chef. + + + Humm... Ok. Mais fais gaffe, au moindre geste suspect, on te colle une balle entre les deux yeux ! Avance tout droit et après, passe entre les conteneurs. Pigé ? + + + Oui. + + + Je ne faisais que passer, je ne suis plus là. + + + Je suis venu pour le stalker qui est retenu prisonnier. Je veux voir votre chef. + + + Qu'est-ce que tu veux d'autre ? Barre-toi ! + + + Ok... + + + T'es venu jusqu'ici pour m'insulter, espèce d'abruti ? T'as apporté assez de fric pour ton tocard de pote, mais t'as rien pour payer le droit de passage ! C'est très pas malin, ça... + + + De combien on parle au juste, sachant qu'il faut que j'aille jusqu'à la base ? + + + T'es vraiment un marrant ! On est pas dans un bordel ici ! On a pas de liste de prix ! Vide tes poches, connard ! + + + Ok, voilà. + + + C'est bon, je m'en vais. + + + Quoi ? Tu veux me prendre tout mon butin ? Hors de question ! + + + J'ai payé la rançon, il n'y a rien d'autre à dire. + + + Ok, stalker, on a mérité notre paie. Il est temps d'y aller ! + + + Merci, les gars. À la prochaine ! + + + Deux secondes.... D'autres bandits se planquent peut-être dans le coin ! + + + Il est temps d'y aller ! Le gamin s'en est pas sorti, mais on a fait ce qu'on a pu... + + + Attends, on a pas encore fini ! + + + C'est bon ! + + + Viens à Pripyat avec moi ! + + + Je ferais mieux de rester ici pour le moment, histoire de m'assurer que Mitay s'attire pas d'autres ennuis. + + + Hé, stalker ! Merci d'avoir sorti Mitay du pétrin ! On était sur le point de prendre les armes pour aller le sauver... Tiens, prends ça en guise de remerciement ! + + + Hé, stalker ! Merci d'avoir sorti Mitay du pétrin ! T'es incroyable... Tu t'es débarrassé de tous ces bandits à toi tout seul ! Tiens, prends ça en guise de remerciement ! + + + Hé, stalker ! Merci d'avoir sorti Mitay du pétrin ! Franchement, je pensais pas que payer cette rançon servirait à quelque chose... Tu dois avoir besoin d'un peu de fric, alors prends ça ! On t'est tous très reconnaissants. + + + Hé, stalker ! Merci d'avoir sorti Mitay du pétrin ! J'avais raison depuis le début ! Faut jamais céder face aux bandits ! Faut leur mettre la pression... Et ça, tu sais y faire, toi. Tiens, prends ça ! C'est pas grand-chose, mais sache qu'on t'est tous très reconnaissants ! + + + Alors, comment ça s'est passé pour la rançon ? + + + J'y travaille ! + + + Quoi de neuf ? Quand est-ce que tu comptes leur mettre la pression, à ces bandits ? + + + Bientôt. + + + T'as changé d'avis ou t'as du mal à t'occuper de ces mecs ? Fais ce que t'as à faire, mais dépêche-toi, hein ! On voudrait pas qu'ils perdent patience et qu'ils descendent Mitay ! + + + Je vais m'en occuper. Tout se passera bien. + + + Ça fait chaud au cœur de voir un pro comme toi, stalker ! + + + On a perdu un mec bien... Pauvre Mitay... On a pas réussi à le sauver. Tu parles d'une bande d'amis... + + + Qu'est-ce qu'on y peut ? + + + Viens à Pripyat avec moi ! + + + Je ne suis venu pour que pour tenir compagnie à mes amis, je ne vais pas les abandonner. + + + Hé, merci pour Mitay... On était sur le point d'aller payer la rançon. On peut dire que tout est bien qui finit bien ! + + + Hé, merci pour Mitay... Comment as-tu réussi à les convaincre ? Tu as encore pas mal de choses à m'apprendre, on dirait... + + + Hé, merci pour Mitay... J'avais raison, n'est-ce pas ? Il n'y a rien de tel qu'une bonne négociation ! + + + Hé, merci pour Mitay... Je reste convaincu qu'il aurait fallu négocier, mais ce qui compte, c'est que tout se soit bien terminé. + + + Je ne suis pas d'humeur à te parler, alors laisse-moi ! + + + Ok, inutile de s'énerver ! + + + Bonjour monsieur l'expert ! + + + Pauvre Mitay... Ce n'était qu'un gamin... Il avait toute la vie devant lui... + + + Qu'est-ce qu'on y peut ? + + + Parfait, tout le monde est là ! Grizzly m'a parlé de toi... Bon, le plan est on ne peut plus simple : les gars se mettent en position autour du périmètre et je dégomme de la sentinelle depuis ma position. Ce sera le signal pour lancer l'assaut. Tâche de te souvenir de nos positions et suis ton instinct ! Je suis sûr que tu sais ce que tu as à faire... Prêt ? + + + Je tâcherai de m'en souvenir. On y va ! + + + Attends, laisse-moi y réfléchir ! + + + Ça te dirait d'aller à Pripyat avec moi, Mitay ? + + + Les scientifiques embauchent en ce moment, ça te dirait d'aller travailler pour eux ? + + + Quel genre de boulot ? + + + Protéger leur bunker. + + + J'ai eu ma dose d'aventure avec les bandits. Je crois que je vais rester ici et me la couler douce. + + + Effectuer des relevés dans les anomalies. + + + Humm... Intéressant. J'ai déjà eu l'occasion de bosser pour les scientifiques... C'est d'accord ! Grizzly, Torba et moi, on va aller au bunker. + + + Raconte-moi comment tu t'es fait capturer ! + + + Oh la honte ! C'était ma faute, en fait. Les bandits m'avaient prévenu, mais voilà... Ils voulaient chourer une partie de mon butin, et ça, c'était hors de question ! La Zone appartient à personne ! Pourquoi je devrais les payer ? + + + Les gars et moi, on leur a dit d'aller se faire mettre et ils nous ont laissés peinards pendant quelque temps. Mais ils sont plutôt malins, ces mecs-là... Ils m'ont tendu un piège. Ils ont attendu que je sois assez con pour aller chercher des artefacts tout seul, ils m'ont sauté dessus et m'ont menotté avant même que je puisse dégainer mon flingue... Voilà en gros ce qui s'est passé. + + + Merci d'avoir payé ma rançon ! Je l'oublierai pas ! + + + Merci de m'avoir libéré, stalker ! Je l'oublierai pas ! + + + Merci d'avoir aidé à payer ma rançon ! + + + Merci d'avoir aidé à me libérer, stalker ! + + + Merci pour ton aide, stalker... Mes potes te fileront une récompense quand on sera rentrés, je peux te l'assurer. Allez, on retourne à la base ensemble, ça ira plus vite ! + + + C'est parti ! + + + Vas-y, je te rejoindrai plus tard. J'ai des affaires à régler ici. + + + J'ai bien cru que j'allais y rester... Grizzly et Torba ont vraiment recruté tous ces mecs ? C'est dingue ! C'est la première fois que je vois ça ! Bon, on peut y aller maintenant ? + + + Attends ! Il y a peut-être d'autres bandits dans le coin. + + + Oui. On y va. + + + J'ai bien cru que j'allais y rester... T'as fait la peau à tous ces mecs ? T'es trop fort ! Personne me croira quand je vais raconter ça... Bon, on peut y aller maintenant ? + + + Attends... Il reste peut-être quelqu'un d'autre dans le coin. + + + Oui. Tirons-nous vite d'ici ! + + + Merci, stalker ! Allez, on se tire avant que les bandits changent d'avis ! + + + Ok, on y va ! + + + Faut qu'on se tire d'ici, et vite ! + + + On peut pas céder à des bandits. Il va falloir employer la manière forte ! + + + Je suis bien d'accord ! Je connais des gars qui seraient prêts à filer un coup de main... On te paiera aussi si le travail d'équipe te dérange pas. + + + Je suis prêt. + + + Parfait ! Je connais des stalkers qui faisaient partie d'une unité d'intervention de la police. Faudra les rejoindre à un point de rendez-vous après 1 heure du mat'. Ils t'attendront sur place. + + + Ok. + + + Torba a raison. Ce serait trop risqué de déclencher les hostilités alors qu'ils retiennent Mitay en otage. Il faut négocier. + + + Ouais, vous avez sûrement raison... Le seul problème, c'est que si Torba ou moi, on y va, les bandits nous laisseront pas repartir, vu qu'on a refusé de suivre leurs règles. Ils ont menacé de nous enterrer vivants s'ils nous revoyaient... Tu pourrais peut-être nous servir de négociateur... + + + Aucun problème, je m'en occupe. Il me faut juste l'artefact. + + + Sois prudent ! + + + Tout se passera bien. + + + On peut en discuter jusqu'à la fin des temps... Le fait est que la réussite de cette mission dépend de la personne qui est aux commandes. Je vais m'occuper de ces salopards moi-même. + + + Alors là, je m'attendais pas à ça... Bonne chance ! + + + Je serai vite de retour. + + + Je suis d'accord, mais j'ai besoin de plus de temps. + + + Stalker, tu pourrais nous aider à sortir notre pote Mitay du pétrin ? + + + Qu'est-ce qui s'est passé ? + + + Mitay est dans la mouise jusqu'au cou... Les bandits ont exigé de tous les stalkers qu'ils leur filent une partie de leurs artefacts. Nous, on les a envoyés chier, parce que les stalkers, ils doivent rien à personne, et on a cru que ça s'arrêterait là... Mais ils ont tendu une embuscade à Mitay alors qu'il était parti tout seul chercher des artefacts. Ils l'ont enlevé et maintenant, ils veulent qu'on leur paye une rançon. + + + Qu'est-ce que vous comptez faire ? + + + Torba pense qu'on pourrait leur filer un artefact en échange... Moi, je dis que dalle ! Si on fait ça, ça veut dire qu'ils ont gagné ! On devrait plutôt vendre l'artefact, recruter une bonne équipe et attaquer leur base. + + + On réglera ça plus tard. + + + Alors, tu vas nous aider à sauver Mitay ? Torba est toujours convaincu qu'il faut leur filer un artefact et moi, je maintiens qu'on ferait mieux d'attaquer leur base. Mais pour ça, faudrait qu'on vende l'artefact en question et qu'on recrute quelques mecs... On a toujours pas pris de décision. + + + T'es prêt ? On va te confier l'artefact à échanger contre Mitay et on t'attendra au bar. + + + Alors, t'es allé voir les bandits ? + + + Non, pas encore, je me prépare. + + + Ouais, mais ça n'a servi à rien. Je vous tiens au courant dès que la situation est plus claire. + + + J'ai trouvé un artefact quand j'étais dans l'Oasis y a pas longtemps. Ça t'intéresse ? + + + Tu crois quand même pas que je vais avaler ça, si ? L'Oasis, tout le monde en parle, mais personne y est jamais allé ! Le prends pas mal, mais va raconter tes bobards à d'autres ! + + + J'ai des documents provenant de l'usine de Jupiter. + + + D'accord, prenez-les tous ! + + + D'accord, prenez les ordres d'évacuation ! + + + D'accord, prenez les comptes-rendus ! + + + D'accord prenez le planning de livraison ! + + + D'accord, prenez le message de l'atelier de réparation ! + + + Peut-être une autre fois. + + + Qui aurait pu voler des affaires dans une cantine personnelle ? + + + Aucun de mes hommes, ça, c'est sûr... Peut-être un des types de la Liberté. Si nous avions le contrôle de Yanov, ce genre de choses n'arriverait pas. + + + J'aimerais en savoir plus sur le Devoir. + + + Savoir quoi exactement ? + + + Qu'est-ce que vous faites ici ? + + + Ce que nous avons toujours fait : protéger les stalkers contre toutes les vermines des environs. C'est fou le nombre de mutants qu'il y a par ici ! Et ils sont vraiment plus coriaces que les petites boules de poil du Cordon. J'ai même vu une chimère la nuit dernière. Il faisait trop sombre, alors nous l'avons laissée partir... Si seulement les mutants étaient notre seul problème ! Mais non, nous devons également mener des enquêtes et recueillir des preuves dans les laboratoires abandonnés avant que ces abrutis de la Liberté ne les récupèrent ! + + + Qu'est-ce qui vous a amené au centre de la Zone ? + + + C'est une blague ? Pourquoi on est venus ici ? Mais pour la même raison que les autres, enfin ! Le centre de la Zone a toujours été inaccessible, un endroit où l'on espérait trouver des réponses à toutes nos questions. Nous voulions savoir comment la Zone avait été créée, et comment la détruire. C'est pour cette raison que dès que le Lobotomisateur a été désactivé, nous sommes tous venus ici. + + + Qu'est-ce que vous avez découvert ? + + + Beaucoup de choses, mais c'est classé top secret. Tout ce que je peux dire, c'est que la Zone a encore de nombreux secrets. Certains des nôtres pensent que c'est une tumeur qu'il faut éradiquer à tout prix. Pour ma part, je pense que la Zone est un organisme vivant et que nous ne sommes rien de plus que des parasites minuscules. Même si toutes les armées du monde unissaient leurs forces, elles ne pourraient rien contre la Zone. C'est pour cela qu'il faut être plus malin : nous devons découvrir pourquoi la Zone existe et la détruire. + + + Et si ce n'est pas possible ? + + + Nous devrons trouver une autre solution, mais tout espoir n'est pas perdu. Nous devons faire notre devoir et rester optimistes ! + + + Pourquoi avoir rejoint la faction du Devoir ? + + + C'est une histoire ennuyeuse qui n'a rien de très héroïque. Dès que la Zone est apparue, mon ami Lenya et moi avons décidé de venir ici pour voir ça de nos yeux. J'étais sur le terrain à l'époque et Lenya travaillait dans le renseignement. On n'était pas des bleus, mais on a quand même fini dans un sacré merdier. On a dû ramper pendant des heures, grièvement blessés, avant d'être récupérés par le Devoir. Je m'en suis sorti, contrairement à Lenya. Je ne connaissais personne dans la Zone, alors j'ai décidé de rester ici, avec le Devoir. Et depuis, j'ai quelques comptes à régler avec la Zone. + + + Quelles sont les relations entre le Devoir et la Liberté ? + + + Officiellement, nous sommes en guerre, mais le centre de la Zone fait exception à la règle. Il n'y a pas beaucoup d'endroits sûrs par ici et ni la Liberté, ni le Devoir ne peut se permettre de perdre des hommes. Ça ne servirait à rien de s'entretuer. La règle tacite est la suivante : on ne se mêle pas des affaires des autres. Mais cela ne vaut qu'à Yanov... Ailleurs, c'est la guerre ouverte ! + + + Ok, oublions ça ! + + + Oh... Ok. + + + Je voudrais parler à un membre de la Liberté nommé Flint. + + + Je me fiche des mecs de la Liberté tant qu'ils ne s'approchent pas de nous ! + + + Flint, qu'on appelle aussi la Pie, a tendu une embuscade à des stalkers qui chassaient à Zaton. Il leur a volé tout le butin avant de s'enfuir. + + + Ça ne me surprend pas... Les mecs de la Liberté sont tous des petites ordures ! + + + Ce n'est pas tout : je suis tombé sur un stalker dans la carrière. Avant de mourir, il m'a dit que Flint l'avait abandonné dans une anomalie, lui avait pris son butin et s'était enfui sans demander son reste. + + + Ouais, les stalkers n'oublient pas ce genre de chose... Ça ne passe pas, même dans la Liberté. Merci pour l'info ! On en fera bon usage. + + + J'ai rassemblé des informations compromettantes à son sujet. Cet abruti s'est soudain pris pour un vrai mec et s'est vanté d'avoir fait des choses que j'avais faites, MOI ! + + + La réputation de la Liberté va en prendre un coup. Merci pour l'info ! Nous en ferons bon usage... + + + On oublie ça, ok ? + + + Si c'est comme ça... + + + J'ai le PDA de votre intendant, Morgan. + + + Je suis d'accord. + + + Je vais y réfléchir. + + + D'accord. + + + Ok. + + + Voyons voir... Alors comme ça, cet enfoiré faisait affaire avec l'ennemi et utilisait notre nom comme couverture... Si ça venait à se savoir, notre réputation en prendrait un sacré coup. Et si j'achetais ce PDA ? Je suis prêt à y mettre le prix. 4000, ça irait ? + + + C'est une accusation sérieuse. Je veux voir ce PDA. + + + Voilà. + + + J'avais des doutes à son sujet... mais maintenant, j'ai enfin des preuves. Merci, stalker ! J'espère que personne n'aura vent de cette conversation... D'ailleurs, ça mérite une petite récompense. Après tout, il en allait de la réputation du Devoir... + + + Je vais le garder pour l'instant. + + + Encore un... Très intéressant. Je l'ajoute au dossier. + + + Voilà. + + + Merci ! Voici une modeste récompense... + + + J'aimerais le garder en souvenir. + + + J'ai croisé un group de combattants qui souhaitent rejoindre le Devoir. + + + Nous sommes toujours à la recherche de nouvelles recrues. Ils devraient venir me voir, nous en discuterons. + + + Un petit détail, cependant... Ce sont d'anciens combattants du Monolithe. + + + Comment ça, des "anciens" combattants du Monolithe ? D'après mon expérience, les combattants du Monolithe se divisent en deux catégories : les vivants et les morts. Je n'ai jamais rencontré "d'anciens". + + + J'ai l'impression qu'ils étaient sous le contrôle de quelqu'un. Ils ne se rappellent pas ce qui leur est arrivé après avoir quitté la centrale. Ils ne sont plus du tout agressifs, juste complètement perdus. + + + Bon, admettons, s'ils ne soient pas agressifs... C'est déjà ça. Je pourrais facilement leur trouver quelque chose à faire et les mettre au pas vite fait. Mais ils ne m'inspirent pas vraiment confiance... Tu te portes garant pour eux ? + + + Oui. Je leur fais confiance. + + + Hum... Le problème, c'est que je ne vous fais pas confiance non plus... pas encore du moins. Désolé. + + + Ok, mais s'ils merdent, ça se paiera. Le hic, c'est qu'ils ne pourront pas atteindre Yanov tout seuls. Vous allez devoir prendre mes hommes et les conduire jusqu'aux combattants du Monolithe. Si tout se passe bien entre eux, ils seront intégrés dans le Devoir. Faites-moi signe quand vous serez prêt à partir. + + + Non, je ne leur fais pas vraiment confiance. + + + On n'accepte pas n'importe qui dans notre faction. + + + Je suis prêt à mener les hommes du Devoir jusqu'aux combattants du Monolithe. + + + Bien. Je vais envoyer deux hommes. + + + Bien. + + + Il va falloir remettre ça à plus tard. + + + Une minute ! Il est hors de question que je demande à mes hommes de sortir pendant une émission ! + + + J'ai trouvé le PDA du fondateur du Devoir. + + + Voyons voir... Ah, voilà donc ce qui s'est passé... Je ne pense pas que les autres aient besoin de voir ça. Il vaudrait mieux que ce PDA disparaisse pour de bon. La légende de la création du Devoir doit rester intacte. Je pourrais l'acheter ? + + + Bien sûr. + + + Merci. Voilà une petite récompense. + + + Je vais y réfléchir. + + + Prenez le PDA du fondateur du Devoir. + + + Merci ! Ça m'ôte une sacrée épine du pied. Voilà la récompense. + + + Les scientifiques ont besoin de combattants, le Devoir pourrait les aider ? + + + Nous sommes toujours prêts à aider les scientifiques. De quoi ont-ils besoin ? + + + Ils cherchent des hommes pour protéger leur bunker. + + + Pas de problème, je vais leur envoyer quelques-uns de mes hommes. + + + Aucun problème, je vais leur envoyer quelques-uns de mes hommes. + + + J'aimerais pouvoir les aider, mais ils travaillent déjà avec la Liberté. Envoyer des hommes là-bas ne ferait que jeter de l'huile sur le feu. + + + J'ai prévu d'aller à Pripyat. Quelques hommes du Devoir pourraient m'accompagner ? + + + Nous manquons déjà assez d'effectif comme ça ! Il vaudrait mieux en parler à Arpenteur, j'ai l'impression qu'il ne se sent pas à l'aise ici. Peut-être qu'il préférera partir pour Pripyat. + + + Nous manquons déjà assez d'effectif comme ça ! Hors de question que mes hommes partent pour une mission vouée à l'échec ! + + + Bon, je n'ai pas de temps à perdre. Que se passe-t-il ? + + + J'écoute. + + + Content de voir que ça va toujours ! + + + J'ai des documents provenant de l'usine de Jupiter. + + + Je doute que ce soit vraiment intéressant. L'usine a été pillée bien avant l'arrivée des stalkers. Quoi que... hum, il y a quelques bonnes infos, on dirait. J'aimerais les montrer à quelqu'un. Je pourrais t'acheter ça ? + + + Ok, prends-les tous ! + + + Ok, prends les ordres d'évacuation ! + + + Ok, prends les comptes-rendus ! + + + Ok, prends le planning de livraison ! + + + Ok, prends le message de l'atelier de réparation ! + + + Peut-être une autre fois. + + + Qui aurait pu voler des affaires dans une cantine personnelle ? + + + C'est pas mon boulot de surveiller ta cantine ! Ce sont pas mes gars qui ont fait ça, en tout cas, ils savent ce qu'ils risquent. + + + Parle-moi de la Liberté ! + + + C'est une longue histoire. Qu'est-ce que tu veux savoir ? + + + Qu'est-ce que vous faites ici ? + + + On s'assure que les huiles cachent rien aux gens du peuple. Tu sais comment ça se passe : dès qu'ils trouvent un nouveau labo ou des documents qui expliquent certains mystères de la Zone, ils lancent une opération militaire pour faire le ménage. La seule façon de découvrir quoi que ce soit est d'arriver avant tout le monde. + + + Qu'est-ce qui vous a amené au centre de la Zone ? + + + Eh bien, les gars avaient envie de se faire une petite balade tranquille... Je plaisante. C'est surtout l'occasion de voir des trucs que personne a jamais vu avant. Ni l'armée, ni les stalkers ne sont venus jusqu'ici, tout est encore vierge. + + + Vous avez trouvé quelque chose ? + + + Des portes verrouillées et des artefacts étranges. + + + Comment as-tu rejoint la Liberté ? + + + Eh bien, je connaissais les chefs de la Liberté à l'époque où la Zone existait pas encore. Enfin, personne était chef à l'époque, c'était comme qui dirait la fête du slip ! Alors quand je suis arrivé dans la Zone pour chercher des artefacts et que je suis tombé sur des têtes connues, je me suis dit qu'après tout, je pouvais rester eux. + + + Qu'est-ce que tu penses du Devoir ? + + + Ces mecs sont tous des tocards, voilà ce que j'en pense ! Pourquoi ils tiennent autant à détruire la Zone, hein ? C'est pas comme si elle consommait des ressources ou qu'elle prenait de l'ampleur ! Ils pourraient se contenter de l'étudier sous toutes les coutures ! Imagine toutes les découvertes scientifiques qu'on pourrait faire... L'humanité a jamais réussi à comprendre les lois de l'antigravité, pas vrai ? Eh bien dans la Zone, il suffit de se pencher pour ramasser des trucs hyper sophistiqués ! Ça nous ferait des vacances si on les chassait d'ici à coups de pieds au cul, mais c'est trop de boulot. D'ailleurs, te laisse avoir par la paix qui semble régner à Yanov... C'est juste une zone neutre, ailleurs, on est toujours en guerre. + + + Ok, oublie ça. + + + Pas de problème. + + + Je voulais te parler d'un de tes stalkers. + + + Ah ouais ? Je t'écoute... J'espère que t'es pas là pour cafter ! + + + Le stalker Flint est connu à Zaton sous le nom de la Pie. Des stalkers du coin le cherchent pour récupérer le butin qu'il leur a volé après leur avoir tendu une embuscade. + + + Et tu penses peut-être que je vais te croire ? + + + Il suffit d'écouter les histoires qu'il raconte au bar. Il a arnaqué ces stalkers et maintenant, c'est vous tous qu'il mène en bateau. + + + Ok, on se détend. Je vais voir ce qu'il en est avec le Barbu. Si ce que tu racontes est vrai, on se chargera de Flint... à notre façon. + + + Hum... Je me demandais comment il avait fait pour récupérer cet artefact aussi rapidement. Faut croire que la moitié de son histoire tient pas la route... Je vais en parler à mes gars. Si ce que tu dis est vrai, on s'occupera de lui... à notre façon. + + + Oublie ça ! + + + Ok. + + + Je suis d'accord. + + + Je vais y réfléchir. + + + Fais comme chez toi ! + + + Ok. + + + J'ai croisé des combattants qui veulent rejoindre la Liberté. + + + On a toujours besoin de gens cool. Ils sont les bienvenus si ça les tente. + + + Mais il y a un petit problème... Ce sont d'anciens combattants du Monolithe. + + + Un "petit" problème ? Je les tolère quand je les ai dans ma ligne de mire, mais il est hors de question de les gérer au quotidien ! + + + Ceux-là sont inoffensifs. J'ai l'impression qu'ils étaient sous le contrôle de quelqu'un. Ils ne se rappellent pas ce qui leur est arrivé après avoir quitté la centrale. Ils sont complètement perdus. + + + Désolé, mais je reste sceptique. Tu pourrais tout aussi bien me mentir. + + + Hum... J'imagine que je risque pas grand-chose à leur parler et à essayer de savoir ce qu'il en est. J'enverrai deux de mes gars pour t'accompagner. Si ça se passe bien, j'accepterai de les intégrer dans la Liberté. + + + Et si t'allais te faire foutre ? Tu croyais quand même pas qu'on allait accepter n'importe qui ? Non, mais je rêve ! + + + Je viens pour savoir si les membres du Monolithe peuvent intégrer la Liberté. + + + Mes hommes sont prêts. + + + Très bien. Qu'ils me suivent, alors ! + + + On verra ça plus tard. + + + On va attendre un peu. Les émissions sont pas recommandées pour la santé... + + + J'ai trouvé le PDA du fondateur du Devoir. Ça t'intéresse ? + + + Seulement s'il contient des infos utiles... Ben ça alors, j'en reviens pas ! Ils continuent à faire de propagande à la con dans toute la Zone, mais l'histoire de leur propre faction est un mensonge ! J'aimerais beaucoup lire tout ça en détail. Je peux t'en proposer un bon prix... + + + Il est à toi. + + + Merci. Voilà ton fric. + + + Je vais y réfléchir. + + + Prends le PDA du fondateur du Devoir ! + + + Merci. Voilà ton fric ! + + + Les scientifiques cherchent à embaucher. Tu aurais du monde à leur envoyer ? + + + Ça dépend de ce qu'il faut faire... + + + Ils cherchent des hommes pour protéger leur bunker. + + + Pas de problème, je leur envoie quelques-uns de mes gars. + + + Pas de problème, je leur envoie quelques-uns de mes gars. + + + J'aimerais pouvoir leur filer un coup de main, mais le Devoir est déjà sur place. On doit déjà se coltiner ces enfoirés à Yanov, alors je préfère passer, merci. + + + Tu pourrais me donner quelques hommes pour aller à Pripyat ? + + + Parles-en avec le nouveau, Arpenteur. Il arrive pas à se faire à l'ambiance, peut-être qu'il préférera t'accompagner. + + + Si je pouvais me passer de qui que ce soit, ça se saurait ! Désolé, mais on a déjà assez à faire comme ça. + + + Alors, vas-y, crache le morceau ! + + + Qu'est-ce que tu fais ici ? + + + Ça fait plaisir de te voir, mon pote ! J'ai beaucoup entendu parler de toi, et en bien, crois-moi ! Qu'est-ce que je peux faire pour toi ? + + + J'ai trouvé un objet étrange dans le tunnel de la voie ferrée. + + + Bof... C'est qu'une merde. On dirait un artefact bon pour la casse. D'habitude, on refourgue ce genre de truc aux scientifiques. + + + J'ai trouvé un objet étrange à Zaton. Ça t'intéresse ? + + + Je suis censé en faire quoi, de ce machin ? Je m'intéresse déjà pas des masses aux artefacts normaux, alors... Montre-le aux scientifiques, ils sont prêts à raquer pour ce genre de connerie. + + + Je cherche des hommes pour protéger le bunker des scientifiques. Tu peux me conseiller quelqu'un ? + + + Y a pas mieux que les gars de la Liberté ! Tu pourrais essayer de négocier un truc avec les stalkers, mais ils sont pas vraiment dignes de confiance. Ça leur arrive de disparaître sans laisser de trace, alors imagine s'ils essayent de te rouler ? En tout cas, à ta place, j'irais sûrement pas voir le Devoir. Ces fanatiques sont juste bons à buter du mutant. + + + Je cherche des hommes capables de récupérer des échantillons pour les scientifiques. Tu ne connaîtrais pas quelqu'un ? + + + Bien sûr ! Va voir Loki, il pourra t'aider ! Tu pourrais aussi en parler aux stalkers, mais certains d'entre eux sont pas vraiment dignes de confiance. + + + Quelqu'un a volé certaines de mes affaires. Tu ne saurais pas qui aurait pu faire ça ? + + + Tout part en couille dans le coin... Je doute que ce soit un mec du Devoir. Ils rigolent pas avec la discipline, ces gars-là. Vraiment pas... Et personne dans la Liberté aurait besoin de ton bordel... Donc à mon avis, c'est forcément un stalker. + + + Je suis tombé sur des combattants du Monolithe il y a quelque temps. + + + Ah ouais ? C'est dingue, ça ! J'en ai jamais vu, moi ! Mais j'en ai entendu parler... On raconte des tas d'histoires pas possibles à propos de ces gars... Apparemment, ils sont tous complètement tarés... T'as dû en voir des vertes et des pas mûres ! + + + On ne s'est pas battu. Ils ne sont pas vraiment agressifs. Ils m'ont expliqué qu'un jour, ils ont eu l'impression de se réveiller d'un mauvais rêve. Ils sont un peu perdus, c'est pour ça que je cherche à les faire entrer dans une faction. + + + Quelle histoire ! En tout cas, c'est même pas la peine de penser aux stalkers, ils les descendraient direct... Parles-en plutôt à Loki ! Personne osera leur chercher des poux s'ils portent l'uniforme de la Liberté. + + + Qui pourrait avoir intérêt à apprendre la vérité à propos du fondateur du Devoir ? + + + J'en sais vraiment rien. Franchement, ça dépend de la différence qu'il y a effectivement entre la vérité et les salades que nous raconte le Devoir. Montre ça à Loki, il saura te dire ce qu'il en est. + + + J'ai le PDA de l'intendant du Devoir. Ça t'intéresse ? + + + Vraiment, mais alors vraiment pas ! Je sais exactement où me procurer tout ce qu'il vend pour beaucoup moins. Alors, tu vois, je m'en fous comme de ma première chemise. + + + Qui pourrait venir à Pripyat avec moi ? + + + Pripyat ? Rien que ça ? J'aimerais bien tout laisser tomber et partir avec toi, mais je suis super occupé, là... + + + Pripyat ? Rien que ça ? Tu devrais demander à Loki de te filer des renforts. À mon avis, il pourra pas te refuser ce service. + + + T'es venu te détendre un peu ? C'est pas ici que tu trouveras des cocktails de riches, mais je peux t'assurer que tu seras toujours le bienvenu ! + + + J'ai tout ce qu'il te faut. Qu'est-ce que tu cherches ? Un truc à manger, à boire ? Ou alors t'as la gâchette qui te démange ? + + + Je cherche des hommes pour protéger le bunker des scientifiques. Tu sais qui ça pourrait intéresser ? + + + Va voir les Stalkers. Je suis sûr que ça leur ferait plaisir de bosser pour les intellos... Et si en plus, y a un permis officiel à la clé... + + + Je cherche des hommes capables de récupérer des échantillons pour les scientifiques. + + + Je te conseille d'éviter de bosser avec des stalkers inexpérimentés. Ils ne trouveront rien et ils seraient bien capables de "perdre" des bouts, si tu vois ce que je veux dire... + + + Je suis tombé sur un groupe de combattants du Monolithe récemment et j'ai une question à te poser. + + + Tous ceux qui ont croisé des combattants du Monolithe ont fini à la morgue. Toi, en revanche, tu m'as l'air plutôt en forme. Tu veux savoir quoi au juste ? + + + Ce groupe-là n'est pas comme les autres. Je n'ai pas eu à les affronter, je leur ai simplement parlé. + + + Sans déconner ? + + + Sans déconner. Ils m'ont dit que c'était comme si le voile qu'ils avaient devant les yeux s'était levé. Ils ne savent ni quoi faire ni où aller. Ils m'ont demandé de les aider. + + + Eh ben, moi, je leur conseille de rester à bonne distance des stalkers. Ils sont pas près d'oublier ce que le Monolithe leur a fait et ils les abattraient sur-le-champ. Tu pourrais les aider à rejoindre le Devoir ou la Liberté, mais je ne sais pas si ces factions seraient prêtes à les accepter. + + + J'ai un PDA contenant la vérité à propos du fondateur du Devoir. + + + Les ragots, c'est pas mon truc, tâche de t'en souvenir. Si tu veux vendre des infos, va parler au Hibou, il adore ce genre de conneries. Mais étant donnée la nature de ton info, Loki ou Shulga pourraient être intéressés, eux aussi. + + + J'ai le PDA de l'intendant du Devoir. Ça t'intéresse ? + + + J'ai comme l'impression que ce PDA pourrait m'attirer des ennuis avec le Devoir et j'ai vraiment pas besoin de ça. Va plutôt voir le Hibou ! + + + J'ai besoin de soins médicaux. + + + Voyons voir... + + + C'est mieux. + + + Qui pourrait venir à Pripyat avec moi ? + + + Parles-en à Vano, c'est un stalker. Des types honnêtes comme lui, on en fait plus. Ça lui joue même des tours. + + + Les mecs du coin sont pas assez tarés pour ça, mon pote. Il va falloir que tu cherches ailleurs. + + + Tu cherches du matériel médical ou tu es là pour causer ? + + + Quelqu'un a volé certaines de mes affaires. Tu ne saurais pas qui aurait pu faire ça ? + + + Tu sais comment s'appelle ce stalker ? + + + Je crois qu'il est nouveau par ici... J'essaye de me souvenir de son nom... Delco ? Fiasco ?... Non. c'est pas ça... Accroc ! Oui, c'est ça. Il s'appelle Accroc. + + + Comment va ? + + + Il faut qu'on discute tous les deux. + + + Cool ! Si c'est vraiment important, je propose d'ouvrir une bouteille, histoire qu'on fasse ça dans les règles ! + + + Ça marche ! + + + Non, j'ai pas trop envie de boire. + + + Alors, de quoi tu veux me parler ? + + + Je compte aller à Pripyat par le passage souterrain sous l'usine de Jupiter. Nitro peut ouvrir l'entrée. + + + Hum... Aller à Pripyat par le souterrain... C'est une idée... Je te ressers à boire pour la peine ! + + + Santé ! + + + Mmm, ça fait du bien par où ça passe ! J'espère que tu comptes pas y aller tout seul... Je vais t'accompagner... mais il faudra trouver deux ou trois hommes de confiance.... Ça ne peut pas faire de mal... Surtout pour ce genre de périple... + + + Nitro m'a conseillé de monter une équipe... + + + Ça me paraît une bonne idée... Buvons un autre verre, à la réussite de cette mission ! + + + À la nôtre ! + + + Je peux me débrouiller seul, tu sais... À Zaton, j'ai pris d'assaut un nid de sangsues à moi tout seul... Deux bidons d'essence et je peux me faire un sacré barbecue ! + + + Respect ! Levons nos verres aux bidons d'essence ! + + + À la tienne ! + + + Des hommes de confiance ? Cet endroit est rempli de truands... J'ai rencontré un marchand à Zaton qui était en fait un mec du Devoir... + + + Alors, comme ça, il y a quelque chose de pourri dans la faction du Devoir... Mais où va le monde ? Oh et puis, ça sert à rien de s'inquiéter... Bois plutôt un coup ! + + + Voilà des paroles pleines de bon sens ! Santé ! + + + Mmm... pas mal, hein ? Ça me paraît une bonne idée de former une équipe. Il nous faudrait au moins trois hommes... Tu as des noms en tête ? + + + Je trouverai des gars... On va aussi avoir besoin de combinaisons équipées de modules respiratoires en circuit fermé... + + + Oui, la sécurité avant tout ! D'ailleurs, à ce propos : t'inquiète pas pour moi, ma combinaison est en parfait état, mais il va falloir équiper les autres. Ça va sûrement demander un peu de temps. Ces combinaisons sont pas si faciles à trouver. Trinquons à la réussite de notre expédition ! + + + Santé ! + + + Tu connais un type un peu étrange du nom de Noah ? Il s'est enfermé avec un tout un tas de matos... Il salue les gens à coups de fusil à pompe. + + + Ouais, mais ça fait un bail que je l'ai plus vu. On bossait ensemble à une époque. C'était un sacré combattant... C'est vraiment dommage qu'il ait pété les plombs... Buvons à sa santé mentale ! + + + À Noah ! + + + J'ai croisé Vano à Yanov il y a quelque temps. Il devait pas mal d'argent aux bandits... Je l'ai aidé à rembourser sa dette... + + + Excellent, le voyage sera plus sympa avec lui et puis, il pourra transbahuter tout le matos. À Vano ! + + + Je l'aurais pas mieux dit, mon frère ! + + + Il y a aussi le militaire du bunker des scientifiques... Il n'a rien à faire, il pourrait être de la partie... + + + Ouais, on pourrait avoir besoin d'un militaire... Buvons à sa santé et espérons qu'il acceptera de nous accompagner ! + + + Au militaire ! + + + Tu ne vas jamais le croire, mais j'ai donné un coup de main à un groupe de combattants du Monolithe l'autre jour... C'était comme s'ils s'étaient réveillés d'un long cauchemar et qu'ils ne savaient pas quoi faire... Je leur ai trouvé de quoi s'occuper. Ils se la coulent douce à Yanov maintenant. + + + Ah ah, on dirait que cette vodka te monte à la tête ! Mais bon, l'abus d'alcool est plutôt recommandé pour la santé par ici ! + + + C'est bien vrai. + + + Bon, on dirait qu'on a fait le tour... Le plus important, c'est de s'assurer qu'on se perde pas sous terre... + + + T'inquiète, j'ai les plans. + + + Parfait ! Buvons à la réussite de notre mission ! + + + À notre mission ! + + + Détends-toi... J'ai trouvé l'Oasis l'autre jour... La même Oasis que personne avait jamais réussi à atteindre... + + + T'en as dans le futal, toi alors ! On trouvera le chemin pour Pripyat sans aucun problème avec toi dans l'équipe. Santé ! + + + Santé ! + + + Salut ! + + + Je crois qu'on est assez nombreux. On peut y aller. + + + T'es sûr ? Une autre paire de bras pourrait être utile. + + + Je suis sûr. On y va ! + + + Tu as raison, il nous faut d'autres gens. + + + Excellent ! En avant, les gars ! + + + C'est parti ! + + + C'est bien d'avoir des combattants, mais il faut aussi que tu penses à te protéger. Il te faut une combinaison équipée d'un module respiratoire en circuit fermé... Hors de question que je traîne ton cadavre ! Je suis déjà assez chargé avec mon flingue et mes munitions ! + + + J'ai tout ce qu'il faut. + + + On va attendre un peu. Les émissions sont pas recommandées pour la santé. + + + Où est-ce que je pourrais trouver des combattants pour notre petite équipe ? + + + Demande aux gars de Jupiter... Y a aucune chance pour que ceux qui connaissent Zaton veuillent aller à Pripyat. On a besoin de gars qui ont rien à perdre, qui acceptent de participer à une mission vraiment pas gagnée d'avance. T'aurais rencontré personne de ce genre ? Peut-être quelqu'un qui te doit un service ? Ou un mec qui ne se serait pas encore vraiment posé... + + + On est assez nombreux comme ça. Pas la peine de recruter une division entière... + + + Qu'est-ce que tu penses d'Arpenteur ? + + + Les combattants du Monolithe sont généralement des fanatiques... Mais je sais rien des anciens membres. Arpenteur a l'air plutôt calme, mais les apparences peuvent être trompeuses. + + + Une arme du Monolithe ! Impressionnant ! Où t'as dégoté ça ? + + + Elle faisait partie d'un lot. Je te présente Arpenteur, un ancien combattant du Monolithe. + + + Je savais pas qu'on pouvait prendre sa retraite chez les mecs du Monolithe. Bah, on verra bien comment il se comportera quand on sera dans le feu de l'action. + + + Qu'est-ce que tu penses de Sokolov ? + + + Ce type a une combinaison intéressante... Ça fait au moins deux ans que j'en avais pas vu des comme ça. + + + C'est Sokolov, le copilote de l'hélicoptère militaire qui s'est écrasé. + + + Rien qu'à le regarder marcher, on voit tout de suite que c'est pas un scientifique. On a toujours besoin d'un bon soldat à ses côtés. + + + Depuis combien de temps est-ce que tu connais Vano ? + + + On s'est croisés au bar des 100 Rads deux ou trois fois. Tout le monde dit qu'il est honnête, optimiste et que c'est un bon stalker... Mais il est beaucoup trop naïf, et ça, ça pardonne pas dans la Zone. + + + Vano nous accompagne ? Excellent ! Il va pouvoir porter notre matos... Mais non, j'déconne ! Détends-toi ! + + + Qui aurait pu voler des affaires dans une cantine personnelle ? + + + On t'a piqué des trucs ? Ça craint ! Je sais pas quoi te dire... J'ai rien vu de suspect dans le coin... Je te tiens au courant si je découvre quoi que ce soit. On a pas besoin de vermines dans notre base. + + + Il paraît qu'il y a eu des échanges de coups de feu dans les parages récemment... + + + Ah ouais... C'était moi ! Deux idiots ont voulu se retrouver près de la tour... Ils ont commencé à s'engueuler. Ils beuglaient tellement fort que j'ai fait intervenir ma bonne vieille mitrailleuse et ils ont couru se planquer vite fait. La réunion au sommet a été interrompue, hé hé ! + + + J'ai décidé de vous remettre l'artefact de l'Oasis. + + + Sage décision ! Donnez-le-moi, s'il vous plaît ! + + + Tenez. + + + Magnifique ! Nous devons étudier ce petit bijou au plus vite... Au fait, merci ! Voici un petit dédommagement pour vos efforts. + + + Il vous fallait autre chose ? + + + Non merci, nous avons déjà une équipe de stalkers qui travaille pour nous. Ceci dit... Il y a bien une certaine théorie ou plutôt, une légende... Vous avez déjà entendu parler de l'Oasis ? + + + Je vais essayer de trouver l'Oasis. + + + Désolé, j'ai trop à faire en ce moment. + + + Non, jamais entendu parler. + + + Dans ce cas, écoutez-moi bien. Nombreux sont ceux qui en parlent, mais personne ne l'a jamais vue. On dit qu'on y trouve une eau miraculeuse, qui soigne les blessures et redonne de l'énergie. Les rumeurs circulent à tout va et sont toutes plus délirantes les unes que les autres. Certains disent même l'avoir vue en rêve... Mais en tant que scientifique, je me dois d'en savoir plus ! Si vous pouviez essayer de la trouver... Bon, je ne peux pas vous promettre une énorme récompense, mais si l'Oasis existe, nos recherches feraient une avancée spectaculaire ! + + + Je sais où se trouve l'Oasis. + + + Vraiment ? Elle existe ? Je ne suis pas sceptique de nature, mais auriez-vous la preuve de son existence ? + + + Oui, j'y ai trouvé quelque chose qui ressemble à un artefact. + + + Donnez-le-moi, vite ! + + + Tenez ! + + + Magnifique ! Nous devons étudier ce petit bijou au plus vite... Au fait, merci. Voici un petit dédommagement... + + + Pas question, il pourrait m'être utile. + + + Voilà qui est extrêmement égoïste... et dangereux ! On ignore tout des propriétés de cet artefact. Que feriez-vous si vous vous retrouviez paralysé du jour au lendemain ? Ou si vous changiez de couleur ? Je peux vous assurer que les scientifiques sont les mieux placés pour conserver ces objets. Nous prenons les précautions qui s'imposent ! + + + Ce n'est pas ça qui va me faire peur. Je garde cet artefact. + + + Ok, très bien, prenez-le ! + + + Non, je n'ai rapporté aucune preuve. + + + Vous n'avez rien ? Qu'est-ce que je vais pouvoir étudier alors ? Vous savez ce qui fait de nous des scientifiques ? Nous étayons nos théories avec des faits ! J'ai besoin de preuves ! + + + Très bien, je vais y retourner. + + + J'y ai déjà passé assez de temps comme ça. Je ne vais pas y retourner dans l'immédiat. + + + Si l'argent ne compte pas à vos yeux, pensez plutôt aux découvertes médicales que nous pourrions faire ! Si j'ai raison, l'Oasis est une anomalie... comme beaucoup d'autres choses dans la Zone. Mais si ses propriétés sont vérifiées, c'est la première qui a le pouvoir de guérir ! + + + Qu'est-ce qui vous amène ici ? + + + Avez-vous vu les mercenaires qui gardaient notre bunker ? + + + Quel plaisir de rencontrer quelqu'un d'intelligent ! Que puis-je faire pour vous ? + + + C'est incroyable ! Les mercenaires qui nous protégeaient ont été tués à deux pas de notre bunker ! + + + Hermann, que savez-vous au sujet de l'Oasis ? + + + L'Oasis ? Ah ah ! C'est un mensonge ! Les gens aiment croire qu'il existe un remède à toutes les maladies, alors ils inventent des contes de fées ! L'Oasis n'est rien d'autre que le produit de l'imagination débordante d'un pauvre type ! + + + Pourtant, de nombreuses personnes en parlent... + + + Trop même... Mais personne ne s'y est rendu. Je suis un scientifique, et pour moi, tout ce qui n'a pas été prouvé n'existe pas, un point, c'est tout. + + + Je vois... Merci. + + + Ok. Allez, on y va ! + + + Cool... On sera de retour avant que t'aies le temps de dire "sangsue" ! Haha ! + + + On verra. + + + Excellent... Mais on va attendre la fin de l'émission pour y aller. + + + Bonjour, stalker. Je suis Oncle Yar... J'ai l'impression que la route t'a épuisé... Mange un morceau, tant que t'es là ! Tu tombes bien, j'ai besoin d'aide. Il y a certaines choses que je ne peux plus faire à mon âge. Quand j'étais jeune, en revanche... + + + Tu te sens mieux ? Tu es d'attaque pour une promenade ? Tu pourrais aider un vieil homme... + + + Comment va la vie ? T'as l'air d'aller de mieux en mieux... + + + Qu'est-ce qu'il faut faire ? + + + C'est on ne peut plus simple... Il suffit que tu m'accompagnes jusqu'à Kopachy. C'est tout près d'ici. Tu comprendras mieux quand on sera sur place... + + + Tes amis de la Liberté ne veulent pas t'aider ? + + + Je veux pas les déranger avec ça... On peut s'en occuper à nous deux. C'est pas bien compliqué. + + + Tu viendrais à Pripyat avec moi ? + + + Bof... Si j'étais plus jeune, peut-être... J'avais l'habitude de faire des allers-retours jusqu'en Sibérie à l'époque. Mais j'essaye d'économiser mes forces maintenant... C'est moche de vieillir... + + + Prends soin de toi ! + + + Attends ! Si tu vas à Yanov, peut-être qu'on pourrait faire le chemin ensemble ? C'est toujours plus agréable d'avoir un peu de compagnie... + + + Merci, mais je préfère voyager seul. + + + Allons donc à Yanov ! + + + Merci d'avoir aidé un vieillard... Prends ça ! Si tu as des questions, n'hésite pas. J'y répondrai de mon mieux... + + + Pourquoi n'as-tu pas demandé d'aide aux membres de la Liberté ? + + + Quel est intérêt de jeter de l'huile sur le feu entre les mercenaires et la Liberté ? Une guerre nous suffit. C'est une affaire privée... J'avais aucune raison de les impliquer, tu comprends ? + + + Qu'est-ce qui s'est passé ici ? + + + Des types sont venus pour me tuer... J'étais caché dans les buissons, occupé à mes petites affaires, quand un groupe de mercenaires s'est pointé. Leur chef était en train de gueuler dans son PDA à propos d'un labo dans Pripyat, un ordre urgent, je ne sais trop quoi... Et moi, comme un con, j'ai fait du bruit, ce qui a attiré leur attention... J'ai attrapé mon fusil et j'ai pris mes jambes à mon cou, mais j'ai comme le pressentiment qu'ils vont venir me chercher. C'est le prix à payer pour avoir surpris une conversation top secrète... + + + Surtout il ne faut pas se laisser surprendre. Suis-moi en silence... Si on se devient invisible, tout se passera comme sur des roulettes ! + + + Ok. + + + Pas le temps de discuter, il faut qu'on file d'ici ! + + + Ok. + + + Je suis en train de monter une équipe pour aller à Pripyat. Tu veux venir ? + + + Je suis tenté... mais non merci. Les scientifiques m'ont promis un permis pour pouvoir rester dans la Zone et ils payent bien. Désolé, mais je bouge pas d'ici. + + + Prêts pour aller faire des relevés dans les anomalies ? + + + On est toujours prêts, tant que tu nous couvres. Quel genre d'anomalies on doit cibler ? + + + Direction la Tourbière, alors ! + + + On va passer le village de Kopachy pour atteindre le Tas de cendres. + + + Attends, j'ai changé d'avis. On va attendre un peu avant de partir. + + + On est prêts, mais il vaudrait mieux attendre la fin de l'émission avant de partir... + + + Ok. + + + On a tout ce qu'il faut ! On bouge ! + + + Je ne tiens pas à traîner par ici non plus. Où est-ce qu'on va maintenant ? + + + Direction la Tourbière ! + + + On va passer le village de Kopachy pour atteindre le Tas de cendres. + + + Retournons au bunker des scientifiques ! + + + Attends, laisse-moi réfléchir. + + + Prêts à retourner au bunker ? + + + On est plus que prêts... + + + Dans ce cas, allons-y ! + + + Ok, j'en ai pour une seconde... + + + J'ai quelques questions. + + + Je ferai de mon mieux pour y répondre. + + + Je crois que c'est tout. + + + J'aimerais en savoir plus sur la mission des scientifiques. + + + Ah, le tunnel... il y a quelque chose à l'intérieur, un artefact bizarre, je crois. Cet endroit est franchement inquiétant. Je l'ai d'abord trouvé très calme et puis, j'ai senti quelque chose dans ma tête... et l'endroit grouille de hamsters, mais ils ne sont pas si dangereux que ça. + + + Vous y êtes déjà allés ? + + + Oui, mais on n'est pas arrivés bien loin. On faisait des relevés pour Hermann quand les hamsters nous sont tombés dessus. Quand on est revenus, les scientifiques se sont tellement excités en voyant les résultats que j'ai cru qu'ils allaient péter un câble ! Ils voulaient qu'on passe le tunnel au peigne fin, mais hors de question que j'y retourne ! Je veux bien te couvrir, mais c'est tout. + + + Je vois. + + + On a déjà fait ce genre de boulot, donc ça ne devrait pas poser problème. + + + Où avez-vous fait des relevés ? + + + "Relevés" est un bien grand mot pour ce boulot... On n'a fait de vrais relevés qu'une seule fois, pour le champ psi anormal de ce foutu tunnel. Dès qu'on a mis les appareils en marche, les hamsters sont sortis de nulle part. Masse a bien failli y passer, d'ailleurs. + + + Tu n'as pas trouvé ça étrange ? + + + Non, pourquoi ? Les curieux survivent pas longtemps dans la Zone, et c'est bien normal. C'est ce qu'Ozersky m'a dit un jour, et on peut dire que l'histoire lui a donné raison. Pose-lui toi-même la question si ça te chante ! Peut-être qu'il sait des choses que tout le monde ignore. + + + Je comprends. + + + Je vois. + + + Qu'est-ce que tu peux me dire au sujet des gens qui vivent dans le bunker ? + + + C'est un sacré groupe, crois-moi... Il y a deux scientifiques, Ozersky et Hermann. C'est Hermann qui dirige les opérations. Novikov travaille pour eux, il s'occupe des détails techniques. Garry leur sert de guide. Et nous, on a été embauchés pour faire des relevés et d'autres trucs scientifiques. Ah oui... Garry a amené un mec de l'armée dans le bunker l'autre jour. C'est tout. + + + Tu pourrais m'en dire plus sur Hermann ? + + + C'est lui le patron, ici. C'est un professeur de je-ne-sais-quel institut, probablement un truc ultra secret... Il a organisé l'expédition et ils ont construit ce bunker après que le Lobotomisateur a été désactivé. C'est lui qui a recruté Garry et notre petit groupe. Il paye bien et nous a même promis un permis officiel. + + + Changeons de sujet ! + + + Tu pourrais m'en dire plus sur Ozersky ? + + + C'est un type sympa, le numéro deux du bunker. Hermann semble quand même écouter ce qu'il a à dire. Mais bon, je le connais pas si bien que ça. C'est à Hermann que j'ai affaire la plupart du temps. + + + Tu pourrais m'en dire plus sur Novikov ? + + + Ce mec, c'est Einstein, mais en plus cool ! C'est un véritable expert en installation de matériel technique. J'ai jamais rencontré quelqu'un d'aussi doué. Je sais pas comment il a fini ici, mais je pense qu'il connaît bien la Zone. Il en sait plus que la plupart d'entre nous, en tout cas. + + + Tu pourrais m'en dire plus sur Garry ? + + + Garry, c'est un mec super et l'un des premiers à être venus ici. Il m'a raconté qu'il est arrivé en même temps que les scientifiques, et qu'il les a rejoints tout de suite. Il s'ennuie un peu ces derniers temps, parce qu'il est pas du genre à se tourner les pouces, mais il peut pas partir avant la fin de son contrat avec les scientifiques. Si tu veux en savoir plus, adresse-toi directement à lui ! + + + Parle-moi du militaire ! + + + Garry l'a rencontré alors qu'il avait des zombies aux trousses. Il a eu de la chance, parce que d'autres mecs que Garry l'auraient sûrement abattu. Depuis, il quitte plus le bunker et je le comprends. + + + Que font les mercenaires ici ? + + + Ces truands protègent le bunker. Ils ont débarqué il y a quelque temps, ont discuté avec Hermann et sont restés. J'ai l'impression qu'Hermann les apprécie moyennement... Leur leader s'appelle Black et on peut pas dire que ce soit un tendre. + + + Parle-moi du coin ! + + + Il y a une vieille base militaire pas très loin... Au nord, on trouve le village de Kopachy et à l'est du village, une gare ferroviaire où les stalkers se retrouvent entre eux. Il y a aussi un train sur les rails pas très loin. C'est pas un endroit très accueillant, crois-moi... + + + Parle-moi de la vieille base militaire ! + + + Y a pas grand-chose à en dire... Tout ce qui avait de la valeur a été pillé il y a longtemps et il ne reste plus que des mutants et des zombies. Il y a aussi un petit bunker, qui est bien pratique en cas d'émission. + + + Parle-moi du village ! + + + Eh bien, on peut pas dire que ce soit vraiment un village... quelques buttes, tout au plus. Il a été enterré en 86, histoire de neutraliser les radiations. C'est pas un lieu très fréquenté de nos jours... Il n'y a plus grand-chose de valeur là-bas et on peut pas dire ce que soit une sinécure. + + + Parle-moi de la gare ! + + + Que peux-tu me dire au sujet du train ? + + + Eh bien... La gare de Yanov vaut le déplacement si t'y es pas encore allé. C'est un endroit sympa pour boire un coup et prendre des nouvelles des autres stalkers, et puis, c'est le seul coin à peu près sûr en dehors du bunker. + + + Je vois que tu portes un nouvel équipement... + + + Yeah baby ! On fait désormais officiellement partie de l'équipe de recherche scientifique d'Iskra ! Mais crois pas qu'on allait t'oublier maintenant qu'on est des scientifiques, hein ! Mes "collègues" et moi, on en a discuté et on en a conclu que... tu l'as bien mérité, mon pote ! Si tu te retrouves dans une anomalie ou coincé dans une émission, hésite pas à nous envoyer un petit mot de remerciement. On recevra le message, crois-moi ! + + + Salut. + + + Salut. + + + Alors, on y va ou on attend encore un peu ? + + + J'ai cru que j'allais rester coincé dans ce tunnel et devenir un zombie ! Comment remercier l'homme qui m'a sauvé la vie ? + + + Une petite balade, ça te tente ? + + + Salut ! + + + On te doit beaucoup et on est pas près de l'oublier. + + + Je crois qu'on a fini. Il est temps de se casser d'ici, vite fait... + + + Alors, ce tunnel, qu'est-ce qu'il a de si particulier, au juste ? + + + Il n'y a pas la moindre poussière là-dedans. Hermann dit que c'est à cause du Tesla, mais j'ai du mal à le croire. + + + Vaut mieux en parler au boss ! Je sais pas ce que je peux dire et ce que je dois garder secret. + + + Qu'est-ce que tu as trouvé en faisant des relevés dans le champ psi ? + + + J'ai vu des empreintes de pas. On aurait dit des empreintes humaines, mais qui serait assez taré pour marcher pieds nus dans un endroit pareil ? + + + Ton cerveau se ramollit et tout autour de toi prend des formes étranges. La faute à ce maudit champ psi ! + + + Qu'est-ce que tu as découvert là-dessous ? + + + Pas grand-chose, quelques cadavres de hamsters. + + + Ben... rien qu'on ne puisse trouver partout ailleurs dans la Zone. + + + Tout va bien ? + + + Je suis en vie et c'est grâce à toi ! Tiens, pour te remercier, je vais de filer des coordonnées. Tout ce que tu y trouveras est à toi. C'est pas grand-chose, mais ça vient du cœur... + + + Comment ça va ? + + + Je tenais à te remercier, vraiment ! Merci ! Je sais pas quoi dire... Tiens, prends les coordonnées de notre planque. Tu les as bien méritées. + + + T'es vivant ? + + + Merci, j'oublierai pas ce que t'as fait pour moi. Tiens, voici les coordonnées de notre planque, tu les mérites... + + + Ça va, les petites cellules grises ? + + + Oh, les trucs que j'ai vus quand j'étais là-bas... Ça va me hanter toute ma vie... + + + Alors, on rentre au bunker ? + + + Carrément ! + + + Alors, allons-y ! + + + Vas-y, je te rattraperai. + + + L'équipe est prête à aller jusqu'au tunnel ? + + + On n'attend plus que le signal du départ. + + + Eh bien, c'est parti, alors ! + + + On va attendre encore un peu. + + + Je vais y aller tout seul. On se retrouve là-bas ! + + + Je vais y aller tout seul. On se retrouve là-bas ! + + + Non, on te fait pas confiance et puis le temps, c'est de l'argent ! Alors soit tu viens avec nous, soit on reste ici. + + + Dans ce cas, allons-y ensemble ! + + + Dans ce cas, vous allez devoir attendre. + + + Hors de question... On va quand même pas sortir pendant une émission ! + + + Nous y voilà ! + + + Alors... On y va ? + + + Oui, bien sûr. + + + J'ai besoin d'un instant pour prendre mes repères. + + + Qu'est-ce que tu veux ? + + + Je ne faisais que passer. + + + Eh bien, passe ton chemin alors ! + + + Ok. + + + On se détend, ducon ! + + + Va te faire voir ailleurs ! + + + Oh... Salut... + + + Allegro m'avait dit que t'étais salopard de première. T'as dû escroquer un paquet de stalkers... + + + De quoi est-ce que tu parles ? Je n'ai jamais escroqué qui que ce soit ! Allegro a une case en moins ! + + + Qu'est-ce que t'as dit aux bandits à propos de moi ? Pourquoi j'ai eu droit à un comité d'accueil près des grues, sur les quais ? + + + Tu me confonds avec quelqu'un d'autre. J'ai rien à voir avec les bandits ! + + + Allegro m'a parlé de toi... Je te conseille de me filer le flingue, ce sera plus facile pour tout le monde. + + + Qu'est-ce qu'il a raconté ? Tout ce que j'ai sur moi m'appartient ! + + + Tire-toi... + + + Aide-moi... J'ai besoin d'un médikit ! + + + Dis-moi d'abord où tu as planqué mes affaires ! + + + Je suis désolé, j'avais vraiment besoin de fric... Je vais tout te raconter, mais aide-moi ! Je te jure que je recommencerai plus ! + + + Bon, d'accord. + + + Merci ! J'ai planqué tes affaires dans les égouts derrière le poste électrique. + + + Je vois. + + + Je ne te crois pas. Il va falloir que tu te passes de médikit... + + + Prends ça ! + + + Tu n'auras rien du tout. + + + Merci. J'ai cru que t'allais me laisser crever... + + + Qui je pourrais recruter pour protéger les scientifiques ? + + + Des gars du Devoir, évidemment ! Qui d'autre ? Ce sont les meilleurs combattants de toute la Zone après tout ! En plus, ils ont un sacré matos... + + + La Liberté bosse pour eux en ce moment, non ? Dans ce cas, je ne vois vraiment pas. J'allais recommander le Devoir, mais on ne peut pas dire qu'ils s'entendent comme cul et chemise. + + + Qui pourrais-je recruter pour faire des relevés pour les scientifiques ? + + + Pour ça, il vaut mieux parler à Shulga. Il se peut qu'il ait quelques gars moins stupides que les autres dans son équipe. + + + Ils payent la Liberté pour les protéger ? Dans ce cas, il ne vaut mieux pas recruter de membres du Devoir... C'est tout ce que je peux dire ! + + + Lorsqu'on est entré dans le passage souterrain, l'ascenseur est tombé en panne... + + + Ha ! Vous avez utilisé le seul générateur encore opérationnel... Et en plus, il s'agit de notre seul générateur de secours. Même moi, j'ai déjà du mal à le faire fonctionner ! Il a dû mourir de sa belle mort. Vous devriez remercier le ciel qu'il ne soit pas mort pendant la descente... Cet ascenseur n'a pas de sortie de secours ! + + + Qui aurait pu voler des affaires dans une cantine personnelle ? + + + Alors là, je n'en ai pas la moindre idée ! Tout ce que je sais, c'est que si Shulga était aux commandes à Yanov, ce genre de choses n'arriverait pas. + + + Qui pourrait forcer un conteneur en acier ? + + + Ce n'est pas ma spécialité... Le métal, c'est pas mon truc... Moi, je me spécialise plutôt dans l'électronique. + + + Un groupe de combattants du Monolithe cherche un endroit où se réfugier. Qui pourrait les aider ? + + + Sérieusement ? J'ai du mal à le croire... Les stalkers ne voudront rien avoir à faire avec eux, ça, c'est certain. Il vaudrait mieux en parler au lieutenant-colonel Shulga. S'il les laisse intégrer le Devoir, ils seront en sécurité. Ils pourront même trouver de quoi se rendre utiles. + + + J'aurais besoin de décrypter une boîte noire... + + + Voyons voir... Elle va me donner du fil à retordre... À mon avis, ça va bien me prendre trois heures et ce sera pas donné. Je m'en occupe et on discutera des prix ensuite... J'ai besoin de me concentrer, alors, du balai ! + + + Voyons voir... Elle va me donner du fil à retordre... À mon avis, ça va bien me prendre trois heures et ce ne sera pas donné. Je m'en occupe et on discutera des prix ensuite... Vous pourriez me chercher les composants dont j'ai besoin ? Ça vous fera de l'argent de poche et je vous ferai une ristourne sur la facture. + + + Quoi ? Oh, je bosse toujours dessus. Cette boîte est un vrai bordel... + + + J'en ai fini avec la boîte noire ! Quel boulot merdique... + + + Combien ça va me coûter ? + + + Au moins 3 000. + + + Tenez. + + + Je n'ai pas autant sur moi. + + + Eh bien, je peux vous faire une ristourne si vous me rapportez les composants. + + + Surtout hésitez pas à repasser, hein ! + + + Je n'ai pas les moyens... Je vais y réfléchir. + + + Je veux bien faire un petit effort : ce sera seulement 2 850. + + + Je veux bien faire un petit effort : ce sera seulement 2 700. + + + Je veux bien faire un petit effort : ce sera seulement 2 550. + + + Je veux bien faire un effort : ce sera seulement 2 400. + + + Je veux bien faire un effort : ce sera seulement 2 250. + + + C'est bien parce que je suis sympa : ce sera seulement 2 100. + + + C'est bien parce que je suis sympa : ce sera seulement 1 950. + + + C'est bien parce que je suis sympa : ce sera seulement 1 800. + + + Je ne peux pas descendre en dessous de 1 650. + + + Bon, je ne sais pas pourquoi cet enregistrement est si important, mais vu ce qu'il coûte, j'espère vraiment qu'il vaut le coup. + + + On verra. + + + Je bosse toujours dessus... Vous pourriez pas vous rendre utile et aller me chercher ces composants ? + + + Senka ? J'ai fait sa connaissance à l'époque où j'étais à Zaton et depuis, il ne me quitte plus... C'est un alcoolique de première qui a de longues années d'expérience en la matière... Ha ! Je lui fais faire des petits boulots de temps en temps... + + + Qui serait intéressé par des informations concernant le fondateur du Devoir ? + + + Shulga, évidemment... Le Devoir chérit ses origines. Vous savez ce qu'on dit : l'histoire se répète si on ne l'étudie pas... Le plus important, c'est que la Liberté ne tombe pas sur cette information, car ces enfoirés pourraient la déformer. Pas par méchanceté, mais simplement par manque de mémoire... + + + J'ai apporté des outils. + + + Super ! Lesquels sont pour moi ? + + + Les outils rudimentaires. + + + Excellent ! Mais il me faut encore des outils de précision et de calibrage. + + + Les outils de précision. + + + Excellent ! Mais il me faut encore des outils rudimentaires et des outils de calibrage. + + + Les outils de calibrage. + + + Excellent ! Mais il me faut encore des outils rudimentaires et des outils de précision... + + + Aucun, pour l'instant. + + + Cool ! Il me manque juste des outils de calibrage et ça devrait être bon. + + + Cool ! Il me manque juste des outils de précision et ça devrait être bon. + + + Cool ! Il me manque juste des outils rudimentaires et ça devrait être bon. + + + Impressionnant ! Je savais pas qu'on pouvait encore en trouver par ici. + + + Je peux trouver tous les outils nécessaires. + + + Ce serait vraiment génial. J'ai l'impression d'être coincé à l'Âge de pierre, moi. Le bâton de chamane a été remplacé par le fer à souder, mais c'est tout... Si j'avais des outils, je pourrais améliorer des tas de trucs. En plus, je suis pas du genre radin, donc tout le monde en profiterait. + + + Ok, je vais les chercher. + + + J'ai changé d'avis. + + + Bonne idée. Je m'occupe des améliorations pendant que d'autres se remplissent les poches... + + + J'ai le PDA du marchand du Devoir. Qui est-ce que ça pourrait intéresser ? + + + Un marchand du Devoir ? Sans déconner... Il vaut mieux donner le PDA à Shulga, il saura quoi faire avec... mais surtout, pas un mot à la Liberté, hein ? Ils l'utiliseraient pour sabrer la réputation de toute la faction... + + + J'ai trouvé des documents qui indiquent comment se rendre à Pripyat. + + + Voyons voir... Ok... D'accord... Bon alors, en résumé, il y a un passage souterrain appelé Pripyat 1, qui passe sous la ville de Pripyat. Un de ses embranchements se termine dans la zone de transport de l'usine de Jupiter. Impressionnant ! Si j'en crois ces notes, l'ascenseur a été condamné, rempli de gaz et l'électricité a été coupée. Je pourrais essayer de réparer le générateur et d'ouvrir les portes. Seulement... + + + Seulement, il est hors de question que je traverse Jupiter sans protection et je déconseille à quiconque de s'aventure seul dans ce passage souterrain ! À mon avis, il vaut mieux être au moins trois et tous équipés de combinaisons avec module respiratoire en circuit fermé, sinon c'est la galère assurée... Ça intéressera peut-être Zulu, il habite dans une tour pas très loin d'ici. Il saura comment monter une équipe pour y aller. + + + On avait parlé de matériel... + + + Ouais. Il est quasiment impossible de trouver du matériel radio par ici. J'ai utilisé tout ce que j'ai pu dénicher, mais personne ne fournit de matos dans le coin... C'est bien plus intéressant de vendre des flingues... Ceci dit, j'ai cru comprendre qu'il restait encore des trucs à récupérer dans la cimenterie... + + + J'ai fouillé la cimenterie de fond en comble et j'ai trouvé le matériel ! + + + Impressionnant ! Voilà qui mérite bien des réparations et des améliorations gratuites ! + + + J'ai réussi à trouver une partie du matériel. + + + Génial ! Alors, ça, ça mérite des rabais exceptionnels, mon pote ! + + + Je peux récupérer le matériel. + + + Ce serait génial ! Il me faudrait surtout du colophonium ou des condensateurs... Remarque, je serais même content de récupérer un peu de textolite. Je ne peux pas promettre une grosse récompense, mais une remise sur les prochaines réparations, oui ! + + + À quoi vont servir ces matériaux ? + + + Eh bien, c'est vrai que je travaille surtout sur des armes et du matos... Ça me permet de joindre les deux bouts... Mais ma vraie passion, c'est l'équipement radio. C'est incroyable d'assembler un appareil et de le voir fonctionner ensuite ! Je me souviens avoir monté un brouilleur d'ondes une fois... Très utile, surtout quand les annonces du bar des 100 Rads n'arrêtaient pas de me réveiller. + + + Pourquoi y aurait-il du matériel radio dans une cimenterie ? + + + Elle ne porte pas très bien son nom... La production de ciment s'est arrêtée bien avant la catastrophe de Tchernobyl. Elle a été reconvertie en usine de fabrication d'appareils électriques. + + + J'ai trouvé des documents à Jupiter. + + + Voyons voir... Il n'y a rien d'intéressant là-dedans, ce ne sont que des papiers administratifs... + + + Hum... Il pourrait bien y avoir des renseignements utiles cachés dans le tas, mais je n'en suis pas sûr... Il nous faut plus d'informations. Peut-être qu'en fouillant les endroits mentionnés dans ces documents... + + + J'ai vraiment besoin de matériel, merde ! Comment je suis censé bosser dans ces conditions, moi ?... Oh, bonjour. Comment ça va ? + + + Salut ! Besoin d'expertise technique ? Je peux pas faire grand-chose sans matériel, mais je peux au moins réparer quelques trucs et y apporter de petites améliorations. + + + J'ai pensé à un truc... Il se trouve que tout le matériel dont j'ai besoin prend la poussière dans la cimenterie... Ça me rend fou de penser à tout ce gâchis... + + + Hé ! Besoin de réparations ? Ou peut-être d'une petite amélioration ? J'avais promis de belles ristournes, je tiendrai parole ! + + + Salut, mon pote ! Que puis-je faire pour toi ? Souviens-toi que je t'offre les meilleurs prix de la Zone ! + + + J'aurais besoin de débloquer un module de mémoire... + + + Je crois que c'est dans mes cordes... J'ai jamais essayé, donc il faudra compter au moins trois bonnes heures. Je serais ravi de tenter le coup, ceci dit... Et je ferai même un effort sur le prix... À peine 1 000 billets ! + + + Ce n'est pas urgent ! Marché conclu ! + + + Excellent ! Je me mets tout de suite au travail. + + + Je n'ai pas autant sur moi. + + + Eh bien, reviens plus tard si ça t'intéresse toujours. Tu ne trouveras pas moins cher ailleurs ! + + + Je vais y réfléchir. + + + Comme dit, je peux te faire ça en 3 heures et 1 000 billets, c'est un prix défiant toute concurrence. Moi, je sauterais sur l'occasion. + + + Alors, ce module de mémoire ? + + + J'ai pas encore terminé... Mais faut pas s'inquiéter, j'aurai fini dans pas longtemps. + + + Quoi ? T'as pas récupéré le module ? J'ai demandé à Senka de te le filer, vous avez dû vous louper... Peu importe... En gros, en plus de relevés concernant les couches rocheuses et l'épaisseur de la végétation, il contient les coordonnées de trois émetteurs radio. Je vais les copier sur ton PDA... + + + Tu as essayé de traquer les chimères ? + + + La chimère blessée est allée vers Zaton. Le groupe de Gonta l'a suivie... Mais apparemment, ils n'avaient aucun chasseur expérimenté avec eux. Si tu les aides, je saurai me montrer généreux... Quant à l'autre, celle qui a tué le Renard... j'ai perdu sa trace. C'est comme si elle s'était évanouie dans la nature... Pauvre Renard... C'était un gars bien, mais la vieillesse est sans pitié... + + + Eh bien, tu t'es occupé de celle qui était blessée, et l'autre, celle qui a tué le Renard... J'ai perdu sa trace. C'est comme si elle s'était évanouie dans la nature... Pauvre Renard... C'était un gars bien, mais la vieillesse est sans pitié... + + + Qui es-tu au juste ? + + + Je m'appelle Trappeur et il y a encore pas si longtemps que ça, je chassais les mutants qui menaçaient les Stalkers... Aujourd'hui, je transmets des ordres aux jeunes chasseurs. Je les forme... + + + Parle-moi de la chasse aux mutants... + + + Eh bien, faut utiliser des techniques différentes pour chaque type de mutant... On chasse pas un domovoï ou un poltergeist comme on chasse un pseudo-géant ou un contrôleur... Les chimères sont un cas vraiment à part. + + + Parle-moi des domovoï ! + + + Les domovoï utilisent des attaques gravitationnelles... À courte distance, ils te balancent au loin et ensuite te jettent tout ce qui leur tombe sous la patte... Face à ces saletés, il vaut mieux garder ses distances et rester constamment en mouvement, à moins que tu n'aies envie de te faire aplatir comme une crêpe...Mais il faut aussi éviter de gaspiller toute ton énergie ! Ces bestioles sont capables de diriger leurs impulsions gravitationnelles pour te désarmer, et si tu es fatigué, tu risques de te retrouver les mains vides. + + + Parle-moi des poltergeists ! + + + Il existe deux types de poltergeists. Les premiers utilisent la gravitation pour balancer tout un tas de saletés sur leurs ennemis, tandis que les seconds ont plutôt tendance à carboniser leurs victimes. Les chasseurs inexpérimentés essayent de leur tourner autour pour éviter leurs attaques... Le truc pour les choper, c'est de profiter du fait qu'ils sont aveugles et sourds. Ils ne repèrent que les objets qui se déplacent dans le champ gravitationnel... Il faut donc s'immobiliser dès qu'on en voit un, tirer, aussitôt s'immobiliser, et ainsi de suite. + + + Parle-moi des contrôleurs ! + + + Comme leur nom l'indique, ils manipulent ton esprit. Mais pour y arriver, ils doivent pouvoir te voir. C'est pour ça qu'il faut toujours rester à couvert quand tu en traques un... Ces saletés sont plutôt lentes, donc si jamais tu te retrouves coincé, une bonne grenade devrait pouvoir te sauver la mise. + + + Parle-moi des chimères ! + + + Ce sont des prédateurs nocturnes extrêmement dangereux. Elles essaient de te tomber dessus par derrière au moment où tu t'y attends le moins. Alors, si tu sais qu'il y a une chimère dans les parages, garde l'œil ouvert et tâche de couvrir tes potes... + + + Parle-moi des pseudo-géants ! + + + Ces salopards sont très difficiles à tuer ! Ils encaissent des dégâts incroyables sans sourciller... Franchement, le mieux, c'est d'y aller au fusil à pompe à courte portée. Et surtout, faut pas oublier qu'ils sont capables de soulever tout ce qui n'est pas fixé au sol... Alors, il vaut mieux se placer en hauteur et s'assurer que le truc sur lequel tu te tiens résistera un minimum.... + + + Ok, oublie ça. + + + Pourquoi as-tu arrêté de chasser ? + + + Ben, c'est que je suis plus tout jeune, moi ! C'est l'âge qui a tué le Renard... C'était mon ami et mon partenaire. On a chassé ensemble pendant des années... Jusqu'au jour où on est tombés sur deux chimères près de Zaton, des chimères qu'on avait plus vues dans la Zone depuis un an et demi... L'une d'elles s'est jetée sur mon pote avant que je puisse sortir mon fusil à pompe. J'ai réussi à blesser l'autre avant qu'elles se tirent toutes les deux... J'espère que ces saloperies brûleront en enfer ! + + + Qui aurait pu voler des affaires dans une cantine personnelle ? + + + Hum... Aucune idée... les chasseurs se font pas ce genre de crasses. Et puis, les gars qui se font trop d'ennemis finissent par plus avoir personne pour les couvrir quand ils se retrouvent nez à nez avec une sangsue. + + + Aux grands maux, les grands remèdes... Connaissant les sangsues, je dirais que deux d'entre elles ont dû partir chasser dans coin... Mais puisqu'elles ont plus de nid, elles représentent plus aucun danger pour les stalkers. + + + Tu n'aurais pas une autre mission à me confier ? + + + Si ! Une équipe de stalkers s'est rendue dans les tunnels au nord de l'usine l'autre jour et est tombée sur un nid de mutants. Les pauvres ont été tellement choqués qu'aucun d'entre eux n'a su décrire de quel genre de bestioles il s'agissait. Deux de ces gars eux y sont restés, d'ailleurs... Du coup, tous les mecs de Yanov se sont mis à paniquer. Ils offrent 5 000 billets à qui sera assez fou pour aller détruire ce nid. Mais bon, c'est à toi ce voir, ça sera pas du gâteau... + + + Je m'en charge. + + + Voilà qui est courageux... Bonne chance. Tu vas en avoir besoin... + + + On verra ça plus tard. + + + Je peux pas t'en vouloir... Je doute que qui que ce soit ait assez de couilles pour s'en prendre à un tout un nid de mutants. + + + Toujours pareil... Des mutants non identifiés dans les tunnels au nord de l'usine de Jupiter. Une récompense de 5 000 billets... T'as changé d'avis ? + + + Les mutants dans les tunnels inquiètent beaucoup les Stalkers en ce moment... + + + Les créatures dans les tunnels étaient des nains mutants. Ils ne feront plus de mal à personne. + + + Des domovoï, à tous les coups ! Ça explique pourquoi les mecs de Yanov ont pété les plombs... Bon, s'ils sont morts, ça veut dire que la récompense est à toi ! + + + Des domovoï, à tous les coups... Ceux qui ont tué deux Stalkers il y a pas longtemps. Ça explique pourquoi les mecs de Yanov ont décidé d'y mettre le prix. Ben, s'ils sont morts, ça veut dire que la récompense est à toi ! + + + Je suis prêt à m'occuper de la chimère. + + + Excellent ! Le chasseur qui l'a trouvée a aperçu cette saloperie au tombé de la nuit. Elle se dirigeait vers le système d'aération. Les chimères sont des créatures nocturnes, elle s'apprêtait sûrement à aller chasser... C'est là que tu devrais aller pour la choper à la nuit tombée. Mais bon, vu qu'elle pionce la journée, elle sera en forme... Sois prudent et bonne chasse ! + + + La chimère est morte. + + + Merci infiniment ! Tu as vengé la mort du Renard et il peut enfin reposer en paix... Voici ton argent, tu l'as bien mérité... Et c'est pas tout ! Prends mon fusil à pompe ! Tu m'as offert quelque chose de bien plus précieux... La sérénité... + + + Je m'appelle Trappeur... Je sais qui tu es, inutile de te présenter. + + + Qu'est-ce qui t'amène ici ? + + + Merci d'être venu... J'ai besoin d'un chasseur expérimenté sur lequel je puisse compter et t'es le meilleur de tout Yanov. Je peux pas laisser cette chimère en vie, pas après tout ce qu'elle a fait... Je suis prêt à faire don de toutes mes économies : 10 000 billets. Je veux juste que le Renard soit vengé, et dans les règles ! + + + Je t'en supplie, occupe-toi de cette chimère ! Si tu le fais pas pour le bien de Yanov, alors fais-le pour l'argent... 10 000, c'est une belle somme ! + + + Alors, ça en est où ? Il faut faire vite, sinon la chimère risque de partir chasser ailleurs. + + + Ravi de te voir ! Alors quoi de neuf ? + + + Tu n'aurais pas une autre mission à me confier ? + + + Ce sont pas les proies qui manquent, crois-moi... Un groupe de sangsues des marais a été repéré dans la Tourbière, derrière la cimenterie. Elles ont pas l'air de vouloir quitter leur marais pour l'instant, mais les stalkers du coin veulent s'assurer qu'elles en sortiront jamais, si tu vois ce que je veux dire... Tue-les toutes et ça te rapportera 3 000 billets. Ça te tente ? + + + Je m'en charge. + + + Parfait ! Bonne chasse... + + + On verra ça plus tard. + + + Comme tu le sens... Tu as encore le temps de changer d'avis avant que d'autres chasseurs s'en chargent. + + + Il y a toujours le groupe de sangsues des marais de la Tourbière, derrière la cimenterie. La récompense est de 3 000 billets... Ça te dit ? + + + Y a que les sangsues de la Tourbière en ce moment... + + + J'ai éliminé les sangsues des marais. + + + Les stalkers vont pouvoir souffler un peu ! Voici la récompense ! + + + Les stalkers de la région vont être ravis de l'apprendre ! Ils ont même mis leurs têtes à prix pour 3 000 billets... Tiens, c'est pour toi ! + + + Gonta et moi avons tué la chimère de Zaton. + + + Merci. Moins il y aura de mutants dans les parages, mieux on se portera ! Si vous pouviez vous occuper de l'autre aussi... + + + Merci d'avoir tué l'autre chimère ! Je suis bien content de savoir qu'on en est enfin débarrassés... + + + Raconte-moi comment tu as tué le contrôleur ! + + + Alors, ouvre bien tes oreilles, mon pote, et retiens la leçon... Donc l'autre jour, je vais à ma planque pour récupérer mon matos... là qu'est-ce que je vois ? Un contrôleur vautré sur mon butin ! Du coup, j'ai chopé une grille en métal qui traînait par là, je m'en suis servi comme bouclier et je me suis approché en douce. Le temps qu'il se rende compte de ce qui se passait, je lui avais déjà vidé la moitié d'un chargeur dans la tronche. Ensuite, il a suffi d'un bon coup de crosse pour lui régler son compte. + + + Parle-moi des artefacts de la carrière ! + + + Ha ! Y a pas grand-chose à en dire ! Y a plus rien là-bas ! Tout le monde sait que ça sert à rien de passer derrière Flint ! Là où il passe, les anomalies trépassent ! + + + Alors, c'est toi qui as laissé ton pote crever dans la carrière ! + + + Quoi ?! + + + T'as aucune preuve ! Tu bluffes ! C'est ta parole contre celle d'un membre de la Liberté ! Personne va te croire. + + + C'est ce qu'on va voir ! + + + Rien. + + + Merci, au revoir. + + + Parle-moi des sangsues de Zaton ! + + + Quand j'étais à Zaton, ces saloperies menaient la vie dure à tout le monde. Les stalkers en tuaient à longueur de journée, mais ça servait à rien... Les pauvres cons... Un jour, j'ai décidé de leur filer un coup de main, alors j'ai pris mon fusil à pompe et je suis allé direct dans la tanière. Autant de dire que depuis mon passage, y a plus de problème de sangsues à Zaton ! + + + Tu ne sais même pas où se trouve cette tanière. + + + Tire-toi ! + + + Qu'est-ce que tu veux ? Va raconter tes conneries à quelqu'un d'autre ! + + + Tu ferais de te tirer... C'est ta parole contre celle d'un membre de la Liberté ! Personne te prendra au sérieux. + + + C'est ce qu'on va voir ! + + + Merci, au revoir. + + + Parle-moi du raccourci qui mène à Jupiter ! + + + En fait, le guide avait l'habitude de faire un sacré détour. Mais moi, j'ai décidé de prendre un raccourci, comme ça direct, en ligne droite ! Personne y avait jamais pensé. J'y suis allé doucement au début et puis, j'ai trouvé un passage entre les anomalies. Ensuite, j'ai vendu l'info au guide et maintenant, il fait passer tout le monde par là. + + + Et si on demandait à Pilote qui lui a donné les cartes ? + + + Barre-toi ! + + + Qu'est-ce que tu veux ? Va raconter tes conneries à quelqu'un d'autre ! + + + T'as aucune preuve... C'est ta parole contre celle d'un membre de la Liberté ! Personne te prendra au sérieux. + + + C'est ce qu'on va voir ! + + + Merci, au revoir. + + + Parle-moi de ton expédition jusqu'à l'Oasis ! + + + Je suis le premier à avoir trouvé le moyen d'y accéder ! Y a pas un seul mutant ou une putain d'anomalie là-bas, c'est plus calme qu'un cimetière et ça regorge d'artefacts ! + + + Ben voyons... J'y suis allé, dans l'Oasis, moi, et ça n'a rien à voir... + + + Barre-toi ! + + + Qu'est-ce que tu veux ? Va raconter tes conneries à quelqu'un d'autre ! + + + Tu te prends pour qui, connard ? C'est ta parole contre celle d'un membre de la Liberté ! Personne va te croire ! + + + C'est ce qu'on va voir ! + + + Merci, au revoir. + + + Parle-moi du boulot que tu as fait pour les scientifiques ! + + + Je me suis pointé dans leur bunker l'autre jour. Ils étaient super contents de me voir, ils n'attendaient que moi ! Apparemment, ils avaient besoin de placer leurs gadgets sous des anomalies. Je leur ai dit que ce serait du gâteau et j'ai fait mon boulot, les doigts dans le nez. Par contre, ça a pas été facile de les faire casquer après... + + + T'en as pas marre de t'attribuer les mérites des autres ? C'est moi qui ai fait tout ça, pas toi ! + + + Barre-toi ! + + + Qu'est-ce que tu veux ? Va raconter tes conneries à quelqu'un d'autre ! + + + Tu mens ! C'est ta parole contre celle d'un membre de la Liberté ! Personne te croira ! + + + C'est ce qu'on va voir ! + + + Merci, au revoir. + + + Salut. Alors toi aussi, tu veux entendre mes histoires ? + + + Tu veux me poser une question ? + + + Qu'est-ce que tu veux ? + + + Merde... Je vais crever... + + + Prends ce médikit ! + + + Merci... Mais ça servira à rien... Écoute... Je suis venu ici avec un autre membre de la Liberté... On a trouvé un artefact... Mais j'ai foncé droit dans une anomalie sur le chemin du retour... S'il m'avait aidé, je m'en serais sorti... Mais il a préféré me piquer l'artefact et m'abandonner ici. Il m'avait promis de revenir avec de l'aide... Faut que tu le retrouves ! Faut que tout le monde sache que c'est une belle ordure... + + + Je le trouverai ! + + + Je doute de pouvoir prouver quoi que ce soit. + + + Accroche-toi à mon épaule ! On va te trouver un médecin ! + + + C'est con... Ciao ! + + + J'ai quelque chose pour toi... + + + Un morceau de viande. Tiens, prends-le ! + + + Merci. Les scientifiques payent bien, mais moi, ce qui m'intéresse surtout, c'est le permis. + + + Merci beaucoup ! Je vais enfin pouvoir aller à Pripyat. Il faut juste que je trouve un moyen de l'atteindre. + + + Un Kolobok. Tiens, prends-le ! + + + Merci. Les scientifiques payent bien, mais moi, ce qui m'intéresse surtout, c'est le permis. + + + Merci beaucoup ! Je vais enfin pouvoir aller à Pripyat. Il faut juste que je trouve un moyen de l'atteindre. + + + Un morceau de viande et un Kolobok. Tiens, prends-les ! + + + Merci beaucoup ! Je vais enfin pouvoir aller à Pripyat. Il faut juste que je trouve un moyen de l'atteindre. + + + Je n'ai rien trouvé. + + + Y a de quoi s'occuper le coin ? + + + Un contrat ? + + + Ben, j'ai accepté de bosser pour les scientifiques, en pensant que ce serait facile. Mais j'avais pas vu que le contrat prendrait fin qu'une fois que tout le boulot serait terminé. Les scientifiques ont promis de me filer un permis officiel pour pouvoir rester dans la Zone, mais j'en ai pas encore vu la couleur. + + + J'ai rempli toutes les putains de conditions du contrat, sauf une ! Je dois trouver tous les artefacts chimiques qui existent. Qui aurait cru que je pourrais pas trouver un pauvre morceau de viande et un Kolobok ici ? Si j'avais pu mettre la main sur ces deux artefacts, je serais à Pripyat depuis longtemps ! + + + Je pourrais peut-être les trouver... + + + C'est dommage... + + + Ouais... Un morceau de viande, un Kolobok, et Pripyat, me voilà ! + + + Qu'est-ce qu'il y a de si particulier, à Pripyat ? + + + Personne sait comment s'y rendre... C'est la Zone après tout, ce serait trop simple de pouvoir y aller directement... Paraît que Pripyat regorge d'artefacts... Et même si c'est faux, on raconte tellement d'histoires sur cet endroit que je suis curieux d'y aller. + + + Je suis en train de monter une équipe pour aller à Pripyat. Tu veux venir avec nous ? + + + En fait, j'avais l'intention d'y faire un tour, moi aussi... Mais je préfère y aller seul. Ça n'a rien de personnel, hein ! C'est juste que j'ai l'habitude de bosser en solo... + + + J'ai l'intention de m'y rendre dans pas longtemps, figure-toi... Mais je préfère y aller seul. Ça n'a rien de personnel, hein ! C'est juste que j'ai l'habitude de bosser en solo... + + + Bienvenue dans le royaume de l'ennui ! + + + Je meurs d'envie d'aller à Pripyat ! + + + Faut juste que je trouve un moyen de me rendre à Pripyat et après, adieu, les gars ! + + + C'est pas si mal ici ! C'est même plutôt la belle vie ! + + + C'est clair que c'est agréable de se sentir en sécurité. Si seulement c'était pas aussi chiant ! + + + Je peux peut-être t'aider à trouver les artefacts. + + + Tu sais vraiment comment aller jusqu'à Pripyat ? + + + Non, mais si c'est vraiment rempli d'artefacts comme tout le monde le dit, je suis prêt à partir tout de suite ! Je suis le meilleur pisteur du coin. J'étais un des premiers à trouver le chemin pour Jupiter. Mais je bosse toujours en solo. J'ai pas le temps de faire du baby-sitting. + + + Tu m'emmènerais à Jupiter ? + + + Bien sûr. Prêt ? + + + Oui. + + + Pas encore. + + + Pas pendant une émission ! + + + Tu pourrais m'emmener à Pripyat ? + + + Je veux bien essayer pour 5 000 billets. C'est un coin sympa ! + + + Ça me va ! + + + Non, merci. + + + Ok, comme tu le sens... + + + Je crois que je n'ai pas assez d'argent. + + + Je veux bien essayer pour 5 000 billets. Mais il va falloir attendre la fin de l'émission. + + + Tu pourrais m'emmener à Zaton ? + + + Non, désolé. On se fait trop chier là-bas. Si tu cherches quelqu'un pour un boulot pépère et chiant à mourir, vaut mieux en parler à Pilote. Il est là-bas. + + + Je peux te conduire à Yanov et pour 3 000, je peux demander à Pilote de t'emmener à Zaton. Qu'est-ce que t'en dis ? + + + D'accord. + + + Non. + + + À toi de voir ! + + + Je n'ai pas assez d'argent. + + + Je peux te conduire à Yanov et pour 1 000, je peux demander à Pilote de t'emmener à Zaton. Qu'est-ce que t'en dis ? + + + Non, désolé. On se fait trop chier là-bas. Si tu cherches quelqu'un pour un boulot pépère et chiant à mourir, vaut mieux en parler à Pilote. Va donc lui parler après l'émission ! + + + Je peux te conduire à Yanov et pour 3 000, je peux demander à Pilote de t'emmener à Zaton... Mais bon, faudra attendre la fin de l'émission, évidemment. + + + Je peux te conduire à Yanov et pour 1 000, je peux demander à Pilote de t'emmener à Zaton... Mais bon, faudra attendre la fin de l'émission, évidemment. + + + Alors comme ça, on est passé par les tunnels, hein ? J'arrive de Jupiter, moi aussi. J'ai trouvé un passage souterrain. Je peux t'y amener gratuitement si tu veux... Je suis heureux de pouvoir aider les autorités. + + + Ça fait un bail ! Alors comme ça, on est passé par les tunnels, hein ? Moi, j'ai trouvé un passage souterrain. Je peux te ramener gratos si tu veux... Je suis heureux de pouvoir aider les autorités. + + + Ça fait un bail ! Alors comme ça, t'as réussi à passer par les tunnels ? Tu vas jamais le croire, mais j'ai réussi à rompre mon contrat sans perdre le permis... Dès que j'ai été libéré, je suis parti en direction de Pripyat et j'ai trouvé un passage souterrain. Je peux te ramener gratos si tu veux... Je suis heureux de pouvoir aider les autorités. + + + Ça fait un bail ! Alors comme ça t'as réussi à sortir des tunnels ? J'ai trouvé un passage souterrain. Je peux te ramener gratos si tu veux... Je suis heureux de pouvoir aider les autorités. Au fait, merci de m'avoir aidé pour les scientifiques... J'ai jeté un coup d'œil dans les environs et j'ai trouvé ça. Tiens, je suis sûr que ça te sera utile. + + + Topol, pourquoi tu n'es pas en train de protéger le bunker des scientifiques ? + + + On a été recrutés pour prendre des mesures et récupérer des échantillons. Franchement, on est quasiment devenus des scientifiques, nous aussi. Et puis, même si j'ai rien contre le boulot en lui-même, je suis pas sûr d'être à la hauteur des nouveaux ennemis des têtes d'ampoule. J'ai pas très envie de me faire buter par un mercenaire. + + + C'est pas un endroit pour toi, mon pote ! Et tu ferais mieux de partir avant que je te le prouve ! + + + Tu cherches les emmerdes ou quoi ? Tire-toi d'ici avant d'en trouver ! + + + Casse-toi si tu veux pas t'attirer des emmerdes... + + + Et qu'est-ce qui va se passer maintenant ? + + + Nous allons bientôt partir pour la gare de Yanov. Ça peut valoir le coup de ne pas faire la route tout seul... + + + Oui, c'est sur mon chemin. je vais vous accompagner + + + Merci, mais ce n'est pas vraiment sur mon chemin. + + + C'est une bonne chose qu'ils soient venus jusqu'à nous. Ils n'auraient pas survécu longtemps tous seuls. + + + Merci d'avoir tout arrangé avec le Devoir ! + + + Qu'est-ce que tu vas faire maintenant ? + + + On va pas tarder à partir pour la gare de Yanov. Viens avec nous, si tu veux ! + + + Ok, pourquoi pas ? C'est sur mon chemin. + + + Non, c'est pas vraiment sur mon chemin. + + + T'as fait ce qu'il fallait. T'as aidé ces mecs et grâce à toi, on a des renforts. C'est cool. + + + Merci d'avoir tout arrangé avec la Liberté ! + + + Qui aurait pu voler des affaires dans une cantine personnelle ? + + + Aucune idée... Nous avons de tout par ici... Il vaut mieux en parler à Chiropracteur, il en sait plus que tout le monde sur ce qui se passe ici... + + + Allons voir Zulu ! + + + D'accord. J'espère qu'il ne va pas me tirer dessus quand il verra mon armure du Monolithe ! Il faut qu'on aille en récupérer une autre en chemin... et rendre celle que je porte. + + + C'est parti ! + + + Les émissions ne sont pas recommandées pour la santé... Attendons un peu ! + + + Qu'est-ce qui s'est passé ? + + + Eh bien... On ne se rappelle pas comment on est arrivés ici. Je crois me souvenir qu'on faisait partie d'un groupe de combattants du Monolithe... On avait tous l'envie irrépressible de se rendre au cœur de la Zone. C'est là que se trouve le Monolithe, une météorite qui contenait une forme de vie extraterrestre... Je me souviens avoir atteint la centrale nucléaire avec les autres... Mais après, tout se mélange dans ma tête. Je vois une lumière... il fait très froid... j'entends une voix... Tout était si... parfait. Je ne me rappelle pas ce que la voix nous a ordonné de faire. J'ai perdu plusieurs années de ma vie... Les autres aussi... On ne sait plus quoi faire. Mais on a besoin de protection contre les émissions et les mutants. Où est-ce qu'on pourrait aller ? + + + Il y a une base de stalkers non loin d'ici. Je peux te l'indiquer sur une carte. + + + Je ne crois pas que ce soit prudent... Tout le monde s'est méfié de nous quand on a fait le voyage jusqu'à la centrale nucléaire... Je crois même qu'on a tué des stalkers par la suite. Vu la façon dont les gens traitent notre faction, on se fera probablement abattre à vue... Tu pourrais nous aider ? Tu pourrais dire aux stalkers de ce camp que nous ne sommes plus des meurtriers ? Nous aider à nous faire accepter ? + + + Pas de problème, je leur raconterai votre histoire la prochaine fois que je passerai à la base. + + + Désolé, je ne peux pas vous aider. + + + De quel genre d'aide avez-vous besoin au juste ? + + + Nous devons trouver un endroit où nous serons à l'abri des émissions... et des mutants. Tu pourrais nous trouver ça ? + + + Ok. Je vais demander aux gars de Yanov. + + + Désolé, je ne peux rien faire pour vous. + + + Tu vas avoir besoin d'une combinaison équipée d'un module respiratoire en circuit fermé pour aller à Pripyat. + + + Ce n'est pas un problème. Mon armure du Monolithe a tout ce qu'il faut. Le problème, c'est que je ne peux pas la porter à Yanov. + + + Je suis en train de monter une équipe pour aller à Pripyat. Tu veux venir avec nous ? + + + Je viendrais volontiers... Je suis très curieux de découvrir ce qui nous est arrivés là-bas. Mais je ne peux pas abandonner mes hommes ici et ils ne voudront pas nous accompagner. Ils ont assez souffert comme ça. + + + Oui, je veux bien t'accompagner. Je veux absolument savoir ce qui nous est arrivés. J'espère trouver des réponses à Pripyat. Il faut simplement que je prévienne Loki, mais je doute qu'il s'y oppose. + + + Oui, je veux bien t'accompagner. Je veux absolument savoir ce qui nous est arrivés. J'espère trouver des réponses à Pripyat. Il faut simplement que je prévienne Shulga, mais je doute qu'il s'y oppose. + + + Prêt à partir ? + + + Prêt. + + + Bonjour, stalker. Pourrais-tu nous aider ? + + + Bonjour. Alors, est-ce que nous pouvons nous réfugier dans la base des stalkers ? + + + Je ne sais pas encore... + + + Dépêche-toi, nous ne sommes pas à l'abri ici ! + + + Bonjour. C'est vraiment gentil de nous aider ! + + + Bonjour. + + + Comment ça va ? + + + Tout va bien, mais je veux vraiment comprendre ce qui nous est arrivés. + + + Que font les mercenaires ici ? + + + Il vaudrait mieux en parler à Hermann. C'est lui qui s'occupe de tous les aspects administratifs du laboratoire. Apparemment, les mercenaires ont accepté de protéger notre installation, mais je ne connais pas tous les détails. J'avoue cependant qu'ils ont prouvé en de nombreuses occasions qu'ils sont fiables et courageux. + + + Qu'est-ce que vous faites ici ? + + + C'est une question rhétorique, n'est-ce pas ? Nous faisons des recherches. Vous intéressez-vous à une question en particulier ? + + + Quel est l'objectif de vos recherches ? + + + Nous n'avons pas de but spécifique. Nous sommes des éclaireurs scientifiques, en quelque sorte. Nous cherchons à identifier les corrélations entre certains phénomènes, nous développons des théories qu'il faut ensuite confirmer ou infirmer. Certaines de nos théories n'ont aucune application pratique pour l'instant. + + + Que pouvez-vous me dire au sujet de la Zone ? + + + Je ne peux avancer que des théories à ce stade... Je pense que la création de la Zone est une conséquence de l'apparition d'une nouvelle force. Les champs électromagnétiques, les forces physiques ou les radiations ne peuvent pas modifier aussi rapidement la biosphère. Certaines mutations peuvent évidemment être imputées aux radiations, mais tout de même... Il faudrait des centaines, voire des milliers, d'années pour qu'un cochon ordinaire évolue de cette façon ! Mais dans la Zone, cela n'a pris que deux ans. C'est comme si quelqu'un avait directement modifié l'ADN de chaque animal. Cela me donne la chair de poule rien que d'y penser. + + + Depuis combien de temps êtes-vous dans la Zone ? + + + Une semaine tout juste. Vous n'imaginez pas ce qu'il a fallu faire pour convaincre les bureaucrates et organiser cette expédition. Sans Hermann, nous serions sûrement encore en train d'attendre nos laissez-passer à la frontière de la Zone, pendant que les stalkers pilleraient tout sans vergogne. + + + C'est tout ce que je voulais savoir. + + + Ozersky, pourquoi Hermann m'a-t-il engagé pour protéger l'équipe pendant qu'elle effectuait des relevés ? + + + C'était mon idée en fait. Il n'y voyait pas l'intérêt, mais j'ai réussi à le convaincre. Mes recherches semblent indiquer que l'équipement à haute fréquence que nous utilisons dans les champs d'anomalies décuple l'agressivité et le niveau d'activité des espèces mutantes à proximité. En d'autres termes, cela les pousse à se mettre en chasse. + + + J'ai des nouvelles, Ozersky. + + + Ah bon ? + + + Vous aviez raison. Les mutants ne nous ont pas laissés un moment de répit pendant que nous faisions des relevés, mais dès que nous avons éteint les appareils, ils se sont calmés. + + + Vraiment ? Si ma théorie se confirme, il est probable que les mutants qui ont acquis la capacité d'accéder aux champs d'information puissent également recevoir des signaux de l'extérieur par télépathie... des signaux artificiels... Ce qui signifie que les similarités anormales entre les mutations et les modifications de la structure cellulaire... ne sont pas accidentelles... + + + Vous pourriez être un peu plus spécifique ? Et m'expliquer ça en termes moins obscurs ? + + + Non, ce ne sont là que des suppositions. Que je suis malpoli ! Merci beaucoup de m'avoir aidé dans mes recherches ! + + + Que dois-je faire pour que vous parliez de la combinaison à Hermann ? + + + Une anomalie est apparue près de la carrière et semble regorger de nouvelles plantes. Il m'en faut absolument un échantillon, mais les stalkers refusent de s'en approcher. Si vous me rapportez une plante, je demanderai à Hermann de vous donner l'une de nos combinaisons de rechange. + + + Je trouverai cette plante. + + + Très bien, j'ai chargé les coordonnées de l'anomalie sur votre PDA. + + + Peut-être une autre fois. + + + Revenez me voir si vous changez d'avis ! + + + Tenez, je vous ai rapporté la plante que vous vouliez étudier. Je peux avoir ma combinaison ? + + + Parfait ! Eh bien, Sokolov a laissé entendre qu'il voulait garder la combinaison pour lui. Mais ça n'a pas d'importance. Dès qu'Hermann verra la plante, il vous donnera la combinaison. Dites à Sokolov de venir la récupérer. + + + Je sais où trouver de nouveaux gardes. + + + Excellente nouvelle ! Adressez-vous plutôt à Hermann pour cela ! C'est sa responsabilité, après tout. + + + J'aimerais tester ma résistance aux champs psi. + + + Alors comme ça, c'est Hermann qui vous envoie ? Je vais vous expliquer la situation le plus simplement possible. Pour pouvoir analyser votre résistance aux champs psi, j'aurais besoin d'un centre de recherche scientifique et de plusieurs années d'étude. Mais je ne dispose que d'un kit de terrain et des quelques éprouvettes contaminées. + + + Donc c'est impossible, c'est ça ? + + + Pas si vite ! Nous ne parlons pas d'une analyse détaillée ! Nous devons simplement vérifier la résistance des neurones aux émissions psi. Un simple examen suffira largement. Donc... Il semble que votre cerveau fonctionne correctement. Cela signifie que vous pouvez être affecté par des niveaux relativement élevés d'émissions psi sans perdre conscience. + + + Parlez-moi un peu plus de votre hypothèse concernant l'agressivité accrue des mutants ! + + + J'ai deux théories à ce sujet. Il se pourrait que l'agressivité des mutants soit causée par l'intrusion de plusieurs personnes sur leur territoire, ce qui est un comportement naturel chez la plupart des espèces non-mutantes, y compris les humains. Mon autre théorie se base sur l'idée que les mutants sont capables de capter les ondes émises par nos appareils de mesures. De toute évidence, la seconde théorie est bien plus intrigante... + + + Comment faire pour la vérifier ? + + + Il faudrait activer un appareil dans un secteur où aucune activité mutante n'a été repérée auparavant. Il faudrait également réduire le facteur de l'intrusion humaine au minimum. Il serait donc préférable qu'une seule personne s'en charge. + + + J'ai apporté le détecteur. + + + Quels sont les résultats ? + + + Je ne sais pas ce que votre appareil va t'indiquer, mais je pense que votre hypothèse se vérifie. Cinq minutes après avoir activé le détecteur, j'ai été attaqué par des snorks. + + + C'est bien ce que je pensais ! Pour des raisons que j'ignore, ce sont généralement les pires théories qui s'avèrent fondées. Quoi qu'il en soit, c'est une bonne chose que vous ayez pu la confirmer ! Nous devons faire en sorte que toutes les équipes envoyées sur le terrain soient prêtes à en découdre ! + + + Je suis prêt à essayer de confirmer ou d'infirmer votre hypothèse. + + + Je suis ravi de voir qu'il reste des hommes prêts à faire le sacrifice ultime pour la science ! Le meilleur endroit pour mener cette expérience se trouve sur le glissement de terrain au sud de la carrière. Ce secteur regorge d'anomalies gravitationnelles que les mutants ont tendance à éviter. Cet appareil dispose d'un capteur de mutant intégré. Lorsque vous me le rapporterez, je serai en mesure de déterminer les effets des différents niveaux d'émission sur l'agressivité des mutants. Vous êtes toujours partant ? + + + Oui, je m'en occupe. + + + On verra ça plus tard. + + + Comment faire pour récupérer une combinaison scientifique ? + + + Je ne peux pas vous en donner une, c'est contre le protocole. Nous devons tenir un inventaire précis de tout notre matériel. Mais connaissant Hermann, je suis sûr qu'il en a commandé plus qu'il n'en faut. Je pense que dans certaines conditions, il serait facile de le convaincre de se séparer de l'une d'elles. + + + Auriez-vous besoin d'artefacts particuliers ? + + + Non, désolé. Nous avons arrêté d'envoyer n'importe qui à la recherche d'artefacts... Nous avons conclu un accord avec un chasseur expérimenté et il nous trouve tout ce dont nous avons besoin. + + + Je sais où trouver de nouveaux gardes. + + + Ce serait utile. La Zone est constamment à l'affût... Parlez-en Hermann, c'est lui qui décide de tout par ici ! + + + Vous deviez me donner des détecteurs pour les recherches sur les anomalies. + + + Tenez. En voici trois, comme Hermann l'a demandé. + + + Tenez. En voici deux de plus, comme Hermann l'a demandé. + + + Comment faire pour récupérer une combinaison scientifique ? + + + Hermann est responsable de l'inventaire. Mais ce n'est pas la peine de lui demander quoi que ce soit, il ne vous donnera rien. Il vaut mieux en parler à Ozersky. Il est moins coincé et en plus, il a une certaine influence auprès d'Hermann. + + + Qu'est-ce qui vous amène ici ? + + + Où sont passés les mercenaires ? Ceux qui protégeaient le bunker ? + + + Comment ça va ? + + + Quelqu'un a abattu les mercenaires qui vous protégeaient... Je ne les aimais pas beaucoup non plus, mais trop, c'est trop... + + + Une CS-3a, excellent ! C'est une bonne combinaison... Elle me rappelle le bon vieux temps... + + + J'aurais besoin de débloquer un module de mémoire... + + + Voyons voir... Sans problème, j'ai déjà fait ce genre de chose... Ça ne me prendra pas plus d'une heure. Je peux le faire pour... hum... 2 000 ? Ça marche ? + + + Ça marche. + + + Parfait. Je vous ferai savoir quand ce sera fait ! + + + Je n'ai pas autant sur moi. + + + Bon... Eh bien, vous savez où me trouver ! Je doute que quiconque puisse faire un meilleur boulot que moi ! + + + Je vais y réfléchir. + + + Comme je l'ai dit, je peux m'en charger en une heure et pour 2 000 billets. + + + Alors, ce module de mémoire ? + + + Ça ne fait pas encore une heure. Je vous ai dit que je vous contacterai quand j'aurai terminé. + + + Et voilà ! Toutes les informations devraient être accessibles maintenant. + + + J'ai trouvé un étrange objet. Ça vous intéresse ? + + + Bien entendu ! D'où est-ce qu'il vient ? + + + Je l'ai trouvé à Zaton, dans l'ancienne station de dragage. + + + Ça marche. + + + Non merci ! Je vais chercher un autre acheteur. + + + Que font les mercenaires ici ? + + + Nous les avons engagés pour protéger le laboratoire mobile. Je sais ce que vous allez me dire, mais je n'ai pas eu le choix. Les militaires se sont lancés dans une opération secrète dont j'ignore tout et ne peuvent assurer notre protection. À cela s'est ajoutée la subite passion des stalkers pour la chasse aux artefacts... Je me suis donc retrouvé dos au mur. Il me fallait des mercenaires pour protéger le laboratoire. + + + Qu'est-ce que vous faites ici ? + + + Nous étudions différents phénomènes. + + + Quel est le but de vos recherches ? + + + Nous effectuons des recherches fondamentales. Ce qui signifie que nous ne sommes pas là pour tester des combinaisons ou inventer de nouveaux médicaments... Nous essayons de trouver une explication logique aux phénomènes que nous observons dans la Zone. Si nous parvenons à expliquer ne serait-ce que 10 % des phénomènes de la région, le développement technologique global en bénéficierait largement ! + + + Que pouvez-vous me dire au sujet de la Zone ? + + + Pas grand-chose, pour être honnête. Nous commençons seulement à comprendre les mécanismes qui provoquent certains phénomènes, mais nous sommes malheureusement encore loin d'expliquer le fonctionnement de la Zone dans son ensemble. C'est d'autant plus difficile que la Zone change constamment. Je ne parle pas de l'apparition de nouvelles anomalies ou d'autres détails insignifiants de ce genre, mais de changements bien plus graves, invisibles à l'œil nu. L'apparition du champ magnétique en est un exemple flagrant ! Le problème, c'est que nous ignorons où tout cela nous mène. Nous n'avons d'autre choix que d'attendre sagement pour voir ce qui se passera. + + + Depuis combien de temps êtes-vous dans la Zone ? + + + À peine une semaine. Ceci dit, j'ai déjà visité le laboratoire de Sakharov plusieurs fois. C'est vraiment dommage que nous ayons mis si longtemps à monter cette expédition. J'ai pourtant expliqué à maintes reprises aux membres du Ministère de l'éducation qu'il nous fallait deux laboratoires mobiles prêts à partir à tout moment... Mais ils se sont contentés de hocher la tête. À cause d'eux, nous avons failli rater la meilleure opportunité que la Zone nous ait jamais offerte ! + + + Je vois. + + + Les détecteurs que j'ai placés dans les anomalies ont été utiles ? + + + Quelles sont les anomalies qui vous intéressent exactement ? + + + Celle qui se trouve près du parking. + + + Nos appareils indiquent la présence d'artefacts dans cette anomalie ! + + + Malheureusement, il ne semble y avoir aucun artefact dans cette anomalie. + + + Anomalie du Bain de béton + + + Anomalie du Puits à bitume + + + Anomalie de la Tourbière + + + Anomalie du Tas de cendres + + + C'est tout pour le moment. + + + Je suis toute ouïe. + + + Les événements récents ont prouvé que notre équipe de recherche n'était pas prête à travailler sur le terrain... Vous, en revanche, vous avez réussi à éliminer un contrôleur sans l'aide de personne ! C'est très impressionnant ! + + + Où voulez-vous en venir, au juste ? + + + Eh bien, il serait logique pour nous de recruter un expert tel que vous. Notre groupe de scientifiques a désespérément besoin d'aide. Nous devons effectuer des relevés et des prélèvements, installer des détecteurs... + + + Continuez... + + + J'essaye d'établir un lien entre les émissions et l'apparition d'artefacts dans les anomalies. J'estime qu'il est possible de prévoir la prochaine émission en se fondant sur le nombre et la qualité des artefacts qui apparaissent. Mais j'ai besoin de statistiques pour pouvoir faire des calculs précis. Il nous suffirait de placer quelques détecteurs dans différentes anomalies pour obtenir les données nécessaires. + + + Désolé, mais ça ne m'intéresse pas. + + + Dommage... Vous auriez pu faire avancer la science ! + + + D'accord, je vais vous aider. + + + Parfait ! Novikov vous donnera les détecteurs nécessaires. Il suffira ensuite de les placer dans les anomalies indiquées sur votre PDA. Revenez me voir lorsque vous aurez terminé ! J'aurais d'autres relevés et prélèvements à effectuer. + + + Je vais y réfléchir. Je reviendrai plus tard. + + + J'ai placé les détecteurs dans les anomalies. + + + Parfait ! J'ai déjà reçu les premiers résultats. Vivement la prochaine émission... Elle nous fournira l'échantillon statistique dont nous avons besoin... + + + Voilà qui est intéressant ! + + + Lorsque je m'en suis approché et que j'ai récupéré le détecteur, tout autour de moi s'est mis à changer, comme si quelque chose comprimait les lieux. Au bout de quelques instants, des cadavres de stalkers sont apparus de nulle part ! Ensuite, tout s'est arrêté aussi soudainement que ça avait commencé. + + + C'est incroyable ! De toute évidence, ce phénomène est trop rare pour que l'on puisse en déduire quoi que ce soit, mais nous allons ajouter sa description dans nos dossiers. Nous appellerons cette anomalie la Bulle spatiale ! + + + On dirait que vous avez trouvé de nouveaux gardes... + + + En effet ! Ils font très bien l'affaire. Tout le monde se sent en sécurité avec eux. Merci pour vos efforts ! Voici votre récompense ! + + + Jetez donc un coup d'œil à ces documents ! + + + Voyons voir... Je ne vais pas vous demander où vous les avez récupérés, mais c'est absolument incroyable ! Je vais en faire une copie... Au fait, tenez, voici une petite récompense ! + + + Où sont passés vos gardes ? + + + Aucune idée, ils ont disparu du jour au lendemain ! + + + Je connais pas mal de monde dans la Zone. Je pourrais vous trouver de nouveaux gardes. + + + Ce serait formidable ! Ils seraient entièrement pris en charge et bénéficieraient des derniers développements technologiques en échange de leur travail ! Et bien sûr, nous saurions nous montrer généreux ! + + + Marché conclu ! + + + J'ai hâte ! + + + J'ai changé d'avis. + + + Dommage... + + + Ça arrive. + + + C'est tout ? + + + Nos gardes ont été assassinés ! Abattus à quelques mètres de notre bunker ! + + + J'ai trouvé des documents dans l'usine de Jupiter... Vous voulez y jeter un coup d'œil ? + + + C'est intéressant, mais pas très utile... Merci quand même ! Si vous trouvez quoi que ce soit d'autre, n'hésitez pas à me l'apporter ! + + + J'ai été attaqué par des mercenaires alors que je cherchais des documents. Voici le PDA de leur chef ! + + + Et moi qui croyais qu'ils étaient là pour nous protéger... On dirait que je vais devoir montrer ça à mes supérieurs... Merci beaucoup, jeune homme ! + + + Malheureusement, il ne contient aucune information intéressante. + + + Il y a bien quelque chose... Nous devons apprendre quels étaient les derniers prototypes développés dans l'usine de Jupiter. Il me faut absolument les documents techniques concernant ces projets. Vous les trouverez sûrement dans les bureaux administratifs de l'usine. + + + Je rapporterai tout ce que je trouverai. + + + Désolé, je ne vais pas pouvoir vous aider. + + + J'ai rapporté les documents de Jupiter. + + + C'est intéressant, mais pas très utile... Merci quand même. Si vous trouvez quoi que ce soit d'autre, n'hésitez pas à me l'apporter ! + + + J'ai été attaqué par des mercenaires alors que je cherchais des documents. Voici le PDA de leur chef ! + + + Et moi qui croyais qu'ils étaient là pour nous protéger... On dirait que je vais devoir montrer ça à mes supérieurs... Merci beaucoup, jeune homme ! + + + Je vais essayer de trouver l'anomalie. + + + Je n'ai pas le temps. + + + Je suis venu pour parler de ma participation à vos recherches. + + + Je peux dire au nom de toute l'équipe que nous serions ravis si vous acceptiez de travailler une nouvelle fois au progrès de la science ! + + + J'aimerais aider à effectuer des relevés ! + + + Vous êtes prêt à nous aider à effectuer un scan complet sur le terrain ? + + + Absolument ! Dites-moi ce qu'il faut faire ! + + + Non, il faut que j'y réfléchisse ! + + + Vous aviez parlé de détecteurs, il me semble. + + + J'essaye d'établir un lien entre les émissions et l'apparition d'artefacts dans les anomalies. J'estime qu'il est possible de prévoir la prochaine émission en se fondant sur le nombre et la qualité des artefacts qui apparaissent. Mais j'ai besoin de statistiques pour pouvoir faire des calculs précis. Il nous suffirait de placer quelques détecteurs dans différentes anomalies pour obtenir les données nécessaires. + + + D'accord, je vais vous donner un coup de main. + + + Excellent ! Novikov vous donnera les détecteurs nécessaires. Il suffira ensuite de les placer dans les anomalies indiquées sur votre PDA. + + + Je vais y réfléchir. Je reviendrai plus tard. + + + Les détecteurs placés dans les anomalies transmettent des informations. Nous n'avons plus qu'à attendre les résultats. Vous pouvez en placer d'autres si vous voulez. Nous avons toujours besoin de données supplémentaires. Nous sommes même prêts à vous indiquer où trouver des artefacts dans ces anomalies. + + + J'accepte. + + + Excellent ! Novikov vous donnera les détecteurs nécessaires. Il suffira ensuite de les placer dans les anomalies indiquées sur votre PDA. + + + Je vais y réfléchir. Je reviendrai plus tard. + + + Malheureusement, nous avons pour règle de ne jamais assigner plus d'une tâche à la même personne. J'en suis navré, mais je n'ai pas le choix. + + + Avez-vous récupéré les résultats des relevés effectués par l'équipe que je protégeais ? + + + Je tenais à ajouter que les appareils ont clairement attiré l'attention des mutants et des zombies du coin. Nous avons eu beaucoup de mal à les repousser. + + + Hum... ils auraient donc réagi aux détecteurs ? Voilà qui est intéressant. Cela confirme l'hypothèse d'Ozersky sur le lien télépathique entre les mutants et les différents champs. Il faut lui en parler ! Voici votre dédommagement pour le travail accompli. Vous l'avez bien mérité ! + + + Hum... ils auraient donc réagi aux détecteurs ? Voilà qui est intéressant ! Cela confirme l'hypothèse d'Ozersky sur le lien télépathique entre les mutants et les différents champs. Il faut lui en parler ! Je suis vraiment désolé pour ces stalkers... Nous allons dédommager leurs familles avec une partie de l'argent qu'il nous reste. Le reste vous revient. Merci ! + + + Comment faire pour récupérer une combinaison scientifique ? + + + C'est impossible ! Le nombre de combinaisons est limité et nous ne pouvons pas nous en séparer ! + + + Vous vouliez me dire quelque chose ? + + + Vous n'auriez pas vu les hommes chargés de la protection de notre bunker, par hasard ? + + + Je vous écoute. + + + Vous n'allez jamais le croire, mais quelqu'un a tué nos gardes, à quelques mètres de notre bunker ! + + + Vous avez besoin d'aide ? + + + Nous essayons de récupérer un nouveau type d'échantillons. Ces artefacts ne semblent présenter aucun effet anormal à proprement parler, mais les expériences que nous avons menées ont donné des résultats stupéfiants ! + + + Continuez... + + + Et si vous alliez droit au but ? Dites-moi ce que je dois faire ! + + + Très bien... Les stalkers qui ont découvert le champ psi pensent qu'il contient un nid de mutants. Mais j'ai du mal à le croire... À part les contrôleurs, aucun mutant ne peut survivre à un champ psi discontinu ! Mais cela ne m'inquiète pas, nos hommes s'en chargeront. En revanche, nous avons besoin de vous, car nos stalkers ont été trop exposés aux champs psi et sont donc plus vulnérables à leurs effets. + + + Mettons les choses au clair ! Vous voulez que j'aille dans un champ psi inconnu pour récupérer un échantillon de quelque chose qui risque de ne pas y être ou d'être impossible à identifier ? + + + C'est exactement ça ! Cette mission est de la plus haute importance ! Vous nous seriez d'une grande aide ! Si vous avez des doutes, parlez-en à Ozersky ! Il procédera aux analyses nécessaires et vérifiera votre résistance aux émissions psi. Vous pouvez également demander à nos Stalkers de tout vous expliquer. Alors, êtes-vous prêt à aider la science ? + + + Oui. + + + Vous n'êtes au courant ? Vos stalkers sont morts. + + + Étant donné que vous n'êtes pas allé rejoindre notre équipe au tunnel la dernière fois, je doute qu'ils soient prêts à travailler avec vous. + + + C'était un accident. + + + Je vous crois, mais notre équipe est composée d'hommes... comment dire... différents... Ils ne sont pas du genre à oublier. Je vais leur parler et tâcher de les convaincre de changer d'avis. Mais vous n'aurez plus droit à l'erreur, j'ai vraiment besoin de cet échantillon. + + + Je suis désolé, mais je ne peux pas accepter. Votre équipement ne convient pas du tout à un champ psi discontinu. Vous mourrez dans d'atroces souffrances et je ne tiens pas à avoir votre mort sur la conscience. + + + J'ai récupéré l'échantillon. + + + Vraiment ? Vite, montrez-le-moi ! + + + J'ai récupéré votre échantillon. Figurez-vous qu'il y avait un contrôleur dans le tunnel. Il a essayé de contrôler toute l'équipe et il a bien failli réussir. Heureusement, je l'ai tué avant qu'il ne fasse trop de dégâts. + + + Vous êtes incroyable ! Tuer un contrôleur et sauver les stalkers d'une attaque psi... J'aurais presque du mal à le croire si je ne savais pas que c'était vrai ! C'est une expérience extraordinaire et cet échantillon est tout bonnement parfait ! Votre contribution à la science est absolument remarquable ! Au nom de mon équipe et de tous les scientifiques du monde, merci ! + + + Malheureusement, un contrôleur nous est tombé dessus. Il a fallu que je me défende et j'ai réussi à tuer le mutant, mais les stalkers y sont restés. + + + Un contrôleur ? C'est terrible ! Qui aurait pu s'en douter ? Je regrette la mort de ces garçons si courageux... Ils servaient la science. Même s'ils n'étaient pas de véritables scientifiques, ils ont accompli bien plus pour la recherche que de nombreux professeurs ! Tenez, prenez ceci ! Ce n'est pas grand-chose, mais ça vient du cœur... + + + Malheureusement, un contrôleur nous est tombé dessus. Je m'en suis sorti de justesse. + + + Que font les mercenaires ici ? + + + Ils m'empêchent de faire mon travail, voilà ce qu'ils font ! Ils n'arrêtent pas de me demander de réparer ceci, de modifier cela... Et puis hier, ils ont même voulu savoir comment fonctionne notre équipement ! Je ne vois vraiment pas en quoi cela les aide à protéger notre bunker ! + + + Quel genre de modifications pouvez-vous apporter ? + + + Comme vous pouvez le constater, nous sommes dans un complexe de recherche scientifique... Je n'ai pas de kevlar ou d'armes ici. Je ne peux que réparer des armures ou les modifier en utilisant mes propres inventions. Comme vous pouvez l'imaginer, j'ai de quoi faire avec tout l'équipement sophistiqué dont nous disposons. + + + Grâce à l'échantillon récupéré dans le champ psi, Ozersky a réussi à mettre au point un système protégeant contre les émissions. J'ai repris son idée et suis parvenu à créer un appareil plus pratique... que je peux installer sur votre combinaison si vous voulez. + + + En plus des améliorations habituelles, je peux proposer des améliorations pour vos filtres et vos protections anti-psi. Après tout, c'est grâce à vous que nous avons réussi à les développer... Ozersky et Hermann sont aux anges ! + + + En plus des améliorations habituelles, je peux vous proposer des améliorations pour votre isolation et vos protections anti-psi. Après tout, c'est grâce à vous que nous avons réussi à les développer... Ozersky et Hermann sont aux anges ! + + + Je peux apporter toute une gamme de modifications : isolation, filtrage et protection anti-psi. Une combinaison ainsi équipée vous permettra de traverser une anomalie... Au fait, merci d'avoir participé aux recherches d'Hermann ! Sans vous, nous n'aurions jamais pu développer ces prototypes ! + + + Parlez-moi du bunker ! + + + Hum... Qu'est-ce que vous voulez savoir ? + + + Quelle est la mission du laboratoire ? + + + Hermann et Ozersky eux-mêmes auraient du mal à répondre à cette question... De toute évidence, ils mènent des recherches... Mais les résultats ne sont pas vraiment probants. Ceci dit, il vaudrait mieux en parler à Ozersky... Il a réussi à mettre au point des modifications de combinaison intéressantes, en se basant sur ses théories. + + + Que pouvez-vous me dire au sujet de la Zone ? + + + Rien d'un point de vue scientifique, mais j'ai une grande expérience pratique de la Zone. Les seuls objets qui ont de la valeur ici sont ceux qui permettent de survivre plus longtemps. La Zone se fiche pas mal que vous soyez un bandit ou un stalker cherchant des artefacts pour nourrir sa famille. N'importe qui ne peut pas survivre dans la Zone. + + + Depuis combien de temps êtes-vous dans la Zone ? + + + Ça va faire un bout de temps. Au début, je cherchais des artefacts comme tout le monde, mais j'ai eu des petits problèmes de santé et je me suis vite rendu compte que je ne pouvais pas continuer comme ça. Heureusement, il me reste quelques neurones, donc je n'ai pas eu trop de mal à trouver du boulot. J'ai passé environ un an dans une faction d'anciens scientifiques. C'étaient des gars bien... Dommage qu'ils soient tous morts en essayant aveuglément d'atteindre un objectif hasardeux. Après ça, j'ai passé un bout de temps à errer dans la Zone avant de rejoindre les scientifiques. Et jusqu'ici, tout se passe bien. + + + C'est tout ce que je voulais savoir. + + + Je compte aller dans le champ psi discontinu. Vous auriez des conseils à me donner ? + + + Que pourrais-je dire ? Je doute que vous connaissiez la théorie du champ énergétique d'information... Sachez qu'une brève exposition à un champ psi n'est pas dangereuse... enfin, pas trop dangereuse. Mais il vaut mieux rester sur ses gardes là-bas... Ceux qui sous-estiment les champs psi se transforment immanquablement en zombies. + + + Qui pourrait forcer un conteneur en acier ? + + + Moi pas, en tout cas. Je n'ai pas l'équipement nécessaire... et puis, nous avons un protocole très strict pour ce genre de choses. + + + J'aurais besoin de décrypter une boîte noire... + + + Je serais capable de le faire, mais il est hors de question que je m'en charge ! Ça ne me plaît pas vraiment et c'est beaucoup trop de boulot... J'ai déjà beaucoup à faire pour les scientifiques. + + + En quoi la combinaison CS-3a est-elle si spéciale ? + + + En dehors du fait que je l'ai mise au point ? C'est l'une des meilleures combinaisons de la Zone ! Elle est légère, flexible et dispose d'un blindage solide. J'y ai même ajouté une protection anti-anomalie... C'est vraiment dommage qu'on manque de matériaux en ce moment... Mais bon, on est au beau milieu des marais... Ceci dit, il suffirait de quelques modifications pour en faire une combinaison vraiment moderne... Je ne manque pas d'équipement sophistiqué, donc ça ne devrait pas poser problème. + + + Vous travaillez pour le Hibou ? + + + Non, il m'a donné un coup de main l'autre jour... Je lui renvoie l'ascenseur. + + + Hibou m'a demandé d'apporter des détecteurs. Les voilà ! + + + Très bien. Je vais bosser dessus et demander aux guides de les lui rapporter Hibou... Tout le reste est entre vous deux. + + + Oh ! C'est donc toi qui vendais des armes aux bandits de Zaton ! + + + Chut ! Non, mais ça va pas bien ? On se connaît pas, pigé ? + + + Compris. + + + Et si je parlais au commandant de ton petit commerce au black ? + + + Et qu'est-ce que tu vas lui dire ? Tu peux rien prouver ! C'est toi qui as aidé à éliminer les témoins, je te rappelle ! Tu auras l'air d'un con si tu m'accuses sans aucune preuve. + + + J'ai trouvé un PDA sur le cadavre d'un mercenaire. Il contient un message mettant ma tête à prix... avec ton nom sous la partie "client". + + + J'en ai ma claque de toi... Donne-moi ce PDA et je te filerai une super arme des membres de l'élite du Devoir en échange. Alors, qu'est-ce que t'en dis ? + + + OK, je prends le flingue. + + + Garde-la ! Je n'ai pas besoin qu'une vipère sans scrupule me graisse la patte ! + + + J'ai un autre PDA contenant un message mettant ma tête à prix. Encore une fois, qui est le client ? Toi ! + + + Bordel... Foutus mercenaires... On peut vraiment pas leur faire confiance... Bon, mettons un terme à tout ça... Voilà ce que je te propose... Les mercenaires arrêteront de te poursuivre et en échange, tu me fous la paix. Et pour te dédommager, je peux t'indiquer l'emplacement de l'entrepôt secret du Devoir. Tu pourras prendre tout ce que tu voudras. + + + OK, ça marche. + + + Bien. La planque se trouve près de la carrière. On se retrouve là-bas. + + + Je n'irai nulle part. Tu vas devoir me donner tout ça immédiatement. + + + Mais je n'ai rien sur moi ! Je suis pas con à ce point ! Soit tu me retrouves à la planque, soit tu repars les mains vides. + + + Non, merci. + + + Je n'ai pas besoin qu'une vipère sans scrupule me graisse la patte ! + + + Je veux quitter la Zone. + + + Vraiment ? Il sera impossible de changer d'avis plus tard... + + + Je suis sûr de moi. Allons-y ! + + + En fait, je vais rester pour l'instant. + + + Voyons ça... Eh bien, le foie est un peu plus gros qu'il ne devrait, mais je suppose que ça fait partie des risques du métier ! Sinon, rien à signaler, tout va bien ! + + + Si ça ne brillait pas, ça serait normal. Mais là, ça fout les boules... Faut le voir pour le croire... Mais je pense pas que tu apprécieras la visite. + + + Ok, si c'est comme ça... + + + Des "anciens" combattants du Monolithe ? Eh bien, comme tu veux... Tu te portes garant pour eux ? + + + Des "anciens" combattants du Monolithe ? Non merci ! Je n'ai pas besoin d'une bande de fanatiques... + + + Ha, voilà un bon garçon ! Tu laisses pas tomber les tiens et ça signifie qu'on reste en bons termes... Alors, qu'est-ce que tu m'as apporté ? Un artefact ou les 15 000 billets ? + + + J'ai apporté un artefact. + + + Très bien, lequel ? + + + Je n'ai pas d'artefact qui vaille autant. + + + Une Flammèche. + + + Un Cyprin. + + + Une Luciole. + + + Un Flocon. + + + Aucun, pour l'instant. + + + Bon, j'ai dit ce que j'avais à dire. Alors, vas-y, parle ! + + + Au revoir. + + + Bien sûr ! Le champ psi intermittent doit être étudié et le plus tôt sera le mieux. Mais permettez-moi de vous demander : êtes-vous sûr que ce n'est pas trop risqué ? Nous avons vraiment besoin de votre aide pour récupérer cet échantillon. Alors, êtes-vous prêt à aider la science ? + + + Je pourrais peut-être trouver des hommes de confiance pour votre nouveau groupe de recherche. + + + Vraiment ? Cette aide serait fort bienvenue et se verrait récompensée. + + + Très bien. Je vais embaucher le personnel nécessaire. + + + Je vais y réfléchir un peu plus. + + + Voilà. Il y avait un contrôleur dans le tunnel, mais je l'ai abattu. + + + Vous êtes incroyable ! Vous avez tué un contrôleur et obtenu l'échantillon qu'il nous fallait ! C'est à croire que je suis en train de rêver ! Votre contribution au progrès de la science restera dans les annales ! La communauté scientifique du monde entier vous en remercie ! + + + Voilà. Il y avait un contrôleur dans le tunnel, je lui ai échappé de justesse. + + + Un contrôleur ? C'est terrible, mais comment auriez-vous pu le savoir ? Le plus important est que vous ayez pu rapporter l'échantillon et ainsi contribuer au progrès de la science ! Merci ! Veuillez accepter cette modeste récompense ! + + + Alors, ce nouveau groupe de recherche ? + + + Oh, il est parfait. Ces jeunes hommes sont très compétents, je dois l'avouer. Vos talents en, hum... ressources humaines... sont fort appréciés. + + + Quoi de neuf ? J'ai rien contre un peu de compagnie, mais ça me dérangerait pas non plus d'être un peu tranquille... + + + Je suis venu pour le stalker qui est retenu prisonnier. Je veux payer sa rançon. + + + Je tiens à ce que tout le monde respecte les bandits et nos règles, mais je cherche pas non plus à foutre la merde pour rien... 15 000 billets ou un artefact de valeur feront l'affaire... Je suis un mec honnête. Je prendrai pas plus que ce qu'on me doit. + + + Voilà le fric ! + + + Tu prends soin des tiens, c'est cool... Emmène ce loser et explique aux stalkers que la prochaine fois, ça leur coûtera beaucoup plus cher ! + + + Je n'ai pas autant sur moi. + + + Ok, t'as rien sur toi, mais c'est pas vraiment nouveau, si ? + + + Je n'ai rien qui ferait l'affaire sur moi. Je reviendrai plus tard. + + + Voyons voir... Bon, rien qui n'ait une véritable importance stratégique, mais ça pourrait nous servir. 500 par documents, ça irait ? + + + Voyons voir... Oh merde ! Cette info pourrait carrément démolir la réputation du Devoir... Et si tu me la filais en échange de 4 000 billets ? + + + Intéressant... Disons que je serais prêt à acheter ça pour 2 000 billets. + + + Ok, mais le prix reste le même : 2 000. + + + Ok, à plus ! + + + Mais c'est terrible ! Qu'est-ce qui a bien pu leur arriver ? Hum... Une mutation est une possibilité... Il faut que je demande à Ozersky de quel type de monstre il pourrait s'agir. Hum... Dans tous les cas, le champ psi doit être étudié. Cette mission est de la plus haute importance ! Nous avons désespérément besoin de votre aide pour récupérer un échantillon. Si vous hésitez, allez voir Ozersky : il testera votre résistance aux émissions psi. Alors, prêt à faire avancer la science ? + + + Je vais y réfléchir. + + + Notre équipe de recherche, composée d'un groupe de stalkers locaux, a récemment localisé un champ psi très étrange. D'après nos théories et les relevés effectués, ce champ a des effets psi intermittents et temporaires. + + + Malheureusement, tous les membres de notre équipe de recherche sont morts et, à moins que nous ne trouvions des remplaçants, nous ne pourrons pas obtenir de nouvelles données. + + + Attendez... Vous n'auriez pas un peu de temps à me consacrer ? + + + Quels sont les résultats des scans de l'anomalie ? + + + Je peux faire autre chose ? + + + J'en ai entendu parler. + + + Malheureusement, je n'ai pas encore réussi à convaincre Hermann de rassembler un groupe de recherche... C'est vrai, les rumeurs qui courent sur ce phénomène sont trop contradictoires, mais quelque chose me dit que cette Oasis existe vraiment. Mon intuition me trompe rarement. Je suis prêt à offrir une généreuse récompense à qui m'apportera la preuve de son existence. + + + J'irais bien à sa recherche, mais je suis déjà allé à l'Oasis. + + + Hmm... Hein ? Je crois que j'ai mal entendu. Vous disiez ? + + + Je suis venu payer la dette de Vano. + + + Ouais, je me souviens de lui. Mais c'était une belle somme à la base, et, avec les intérêts, on en est maintenant à près de 7 bâtons... + + + D'accord, les voilà. + + + Dis à Vano qu'il nous doit plus rien ! + + + Ok. + + + Je n'ai pas autant sur moi. + + + Reviens quand ça sera le cas ! + + + Il n'a jamais été question de payer les intérêts. + + + Tu te fous de ma gueule ? Tu me prends pour un con, ou quoi ? Tu crois vraiment que j'irais prêter de l'oseille sans intérêts ? Ça fait 7 000 billets, un point c'est tout ! + + + Réfléchis bien... J'ai une arme et ça me dérangerait pas de m'en servir... Dis-moi, qu'est-ce que ton cadavre irait faire de tout cet argent, hein ? + + + Ok, ok, du calme ! Je suis sûr qu'on va trouver un arrangement ! Donne-moi 5 000 et on dira que c'est réglé ! + + + Ha... tu peux te le mettre où je pense, ton flingue ! C'est 7 000, intérêts inclus, fin de l'histoire ! + + + Tu m'as oublié ? J'ai toujours le flingue... + + + Je préfère te descendre gratis. + + + Je vais y réfléchir. + + + 7 000, avec les intérêts ! + + + Je peux pas me lancer dans de grands projets en ce moment. Faut que je me reprenne... Je pourrais peut-être même rentrer chez moi... Trouver un vrai boulot et oublier ces conneries d'artefacts... C'est juste que je peux pas abandonner le Grizzly... et Torba... On est vraiment proches, on s'aide les uns les autres... Je sais pas, peut-être que j'ai juste besoin de repos, de me remettre les idées en place... + + + Je peux pas me lancer dans de grands projets en ce moment. Je vais aller bosser pour les scientifiques et me reprendre en main... Je pourrais peut-être même rentrer chez moi... Trouver un vrai boulot à l'extérieur... Je sais pas... J'ai juste besoin de repos et de me remettre les idées en place. + + + Alors, prêt à sauver Mitay ? J'espère que ça te dérange pas de bosser avec quelques gars que j'ai embauchés. + + + J'ai le PDA de Morgan, le marchand du Devoir. + + + J'ai un PDA qui prouve que Morgan est en contact avec les mercenaires. + + + En fait... Je vais le garder. + + + Je savais que vous ne pourriez pas vous empêcher de contribuer au progrès de la science et à la sauvegarde de l'humanité ! Très bien, voici le plan : un groupe de recherche constitué de stalkers doit effectuer les relevés. Votre travail consiste à les escorter, c'est-à-dire à les protéger et à les guider sur le terrain. Bonne chance ! Les stalkers vous attendent l'extérieur. + + + Salut, gamin. Tu ne t'attendais pas à tomber sur un vieux croulant comme moi, hein ? Hé hé ! Je suis venu ici avec les gars pour changer un peu d'air. Je rafistole l'équipement et même les gens parfois... + + + Bon, puisque tu es là, qu'est-ce que je peux faire pour toi ? + + + Comment es-tu arrivé jusqu'à Pripyat ? + + + Garry m'a montré le chemin. Ces stalkers avaient l'intention de venir ici depuis un bon moment, mais ils n'avaient pas envie de s'occuper des militaires. Quand Garry a dit que les bidasses avaient mis les voiles, ils n'y ont pas réfléchi deux fois et voilà comment l'oncle Yar a débarqué ici ! ha ! + + + J'ai besoin de soins médicaux. + + + Laisse donc le vieux regarder ça... + + + Voilà, tu vas survivre... Si jamais ça s'infecte, pisse dessus ! J'ai entendu dire que ça aidait. + + + T'as l'air d'être en parfaite santé ! Tu te foutrais pas un peu de la gueule du vieux ? + + + Bienvenue dans mon humble demeure ! Je propose divertissements et plaisirs en tout genre ! + + + Eh bien, les gars disent toujours que je suis trop gentil, un peu comme une vieille marraine, alors tu devrais t'estimer heureux... Je ne serais pas aussi magnanime la prochaine fois. Casse-toi, tocard ! + + + J'y suis déjà allé. Les bandits sont morts. + + + Waouh, t'es un vrai dur, toi ! Merci mille fois ! Tiens, prends cet argent ! Il devait servir à rembourser la dette, mais maintenant au moins, il va revenir à quelqu'un qui le mérite vraiment. + + + Waouh, t'es un vrai dur, toi ! Merci mille fois ! Garde l'argent qui devait servir à rembourser la dette, au moins, il va revenir à quelqu'un qui le mérite vraiment ! + + + Nos détecteurs ont relevé une activité inhabituelle au nord... D'après les données reçues, je pense que l'anomalie qui s'y trouve est instable. Malheureusement, je ne peux pas en dire plus. Nous devons mener des expériences sur le terrain... Je pense que les détecteurs ordinaires des Stalkers ne seront pas en mesure de repérer l'anomalie. Il va vous falloir un Svarog, l'une de nos créations. + + + Les détecteurs enregistrent toujours une activité anormale et instable au nord. Avec un détecteur plus sophistiqué que la normale, un Svarog par exemple, il devrait être possible d'y mener des expériences. + + + Seulement du secteur anormal du marais pour l'instant. Mais malgré ça, Novikov a réussi à trouver une application pratique. Merci pour tout, nous sommes impatients de voir la deuxième fournée de résultats ! + + + Seulement du secteur anormal au-delà de Kopachy pour l'instant. Mais malgré ça, Novikov a réussi à trouver une application pratique. Merci pour tout, nous sommes impatients de voir la deuxième fournée de résultats ! + + + Bien sûr. J'ai reçu tous les résultats. Je dois avouer, le volume de données est si important qu'il va nous falloir des semaines, voire des mois, pour les exploiter. Mais malgré ça, Novikov a déjà trouvé de nombreuses applications pratiques. Merci infiniment ! + + + Non, il ne s'est passé rien de tel ici. Hum... Par contre, j'ai aperçu un mec louche récemment. Je suis allé me balader l'autre jour et, sur le chemin du retour, j'ai croisé un stalker qui sortait de Yanov. Quand il m'a aperçu, il s'est mis à m'insulter sans raison, à dire des trucs du genre "je sais où t'habites". Sur le moment, je l'ai ignoré, je pensais qu'il était saoul, mais maintenant que j'y repense, c'était quand même bizarre. + + + Où est-il allé ? + + + Vers le nord-est. J'ai entendu des coups de feu qui venaient de là-bas, mais rien d'anormal. Zulu en saura peut-être plus. Il est dans sa tour jour et nuit, il a peut-être vu quelque chose. + + + Vers le nord-est. Il allait probablement au poste électrique. + + + Je vois. + + + Quoi de neuf ? + + + Comment ça va ? + + + Ça va pas mal. Je veux dire, c'est pas facile, mais on va s'en sortir. Ensemble, tout est possible ! + + + Comment ça va ? + + + Je ne sais pas trop... Je ne me sens pas à l'aise ici... Je crois qu'il va falloir que je change d'air. Je vais peut-être partir, il ne faut pas m'en vouloir. + + + J'ai fait le ménage dans le nid de sangsues de Zaton. Place nette ! + + + [continuer...] + + + [continuer...] + + + [continuer...] + + + [continuer...] + + + Il me faut des hommes pour effectuer des relevés dans les anomalies. + + + J'ai besoin que des relevés soient effectués dans les anomalies. + + + C'est qui, la belle au bois dormant ? + + + Alors, cet artefact ? + + + C'est clair ! Y rien à faire ici... On n'a que ce jeu de backgammon pour se changer les idées... C'est pas comme à Pripyat... Si seulement je pouvais finir cette connerie de contrat, j'y serais déjà ! + + + [continuer...] + + + Faudrait aller à la carrière... C'est là que Senya est mort. Juste avant de passer l'arme à gauche, il m'a dit que Flint avait piqué son matos et l'avait laissé crever dans une anomalie. + + + Il s'appelait Senya. Il a foncé tout droit dans une anomalie gazeuse et tu t'es barré avec son artefact. Comme tu peux le constater, il a réussi à tout me raconter avant de mourir. + + + Je ne tiens pas à savoir d'où ça vient, ça... On va faire simple : je suis prêt à acheter ce PDA pour 4000. Ça fait un moment que je me demande ce que fabrique notre intendant quand il n'est pas à son poste. + + + Voyons voir... Mais quelle enflure ! Non seulement il leur vendait nos armes, mais en plus, il a ouvert les portes de l'entrepôt à la Liberté ! On va lui préparer un petit comité d'accueil, et vite ! + + + Voyons voir... Putain, j'y crois pas ! On était au courant pour l'entrepôt et on avait même prévu d'y faire un tour, mais on savait pas qu'il y avait une alarme... Cet enfoiré nous a pas prévenus ! Deux secondes, je vais aller prévenir les gars. + + + Ben, je veux bien l'acheter pour 4000, par simple curiosité. + + + C'est pas franchement un militaire de carrière, mais il sait tenir un flingue. On peut pas dire qu'il respire la joie de vivre... C'est comme s'il n'avait rien d'autre à bouffer que des citrons. + + + J'ai trouvé une étrange anomalie dans l'ancienne tour de refroidissement. + + diff --git a/gamedata/configs/text/fra/st_dialogs_pripyat.xml b/gamedata/configs/text/fra/st_dialogs_pripyat.xml new file mode 100644 index 0000000..fbe3f15 --- /dev/null +++ b/gamedata/configs/text/fra/st_dialogs_pripyat.xml @@ -0,0 +1,906 @@ + + + + Ha ! Ça leur apprendra ! Merci pour le coup de main. Sans toi, ces enfoirés m'auraient fait la peau ! T'es plutôt doué, après tout... Désolé d'avoir pété les plombs tout à l'heure, mais t'aurais dû me dire la vérité plus tôt. + + + Il n'y a pas de mal. On ferait mieux de retourner au camp militaire. On y sera plus en sécurité. + + + Ouais, ça sera toujours mieux que de traîner dans Pripyat tout seul. + + + Allons-y dans ce cas ! + + + J'ai quelques trucs à faire par ici, vas-y sans moi ! Le camp se trouve dans la laverie. + + + Je dois y aller. + + + Attends... Prends ça ! C'est la meilleure mitrailleuse de toute la Zone. + + + Tu n'en a plus besoin ? + + + J'ai tout ce qu'il me faut pour repousser quelques mutants. Et puis, j'ai décidé de repartir : Garry va m'emmener à Jupiter. Alors, tu vas en avoir plus besoin que moi. Prends-la ! + + + Bonne chance ! + + + Merci, c'est une très bonne arme. + + + Ha ! C'est la meilleure arme de la Zone, tu veux dire ! Elle a été modifiée, ce qui l'a alourdi un peu, mais avec ce petit bijou, t'auras plus jamais besoin de courir ! C'est l'ennemi qui prendra ses jambes à son cou ! + + + Au revoir. + + + Cool ! + + + Tu sais où est passé Zulu ? + + + Il est parti... Il m'a demandé de le conduire à Jupiter et on s'est séparé pas très loin de l'usine. Il ne m'a pas dit où il allait. + + + Attends... Il m'est arrivé un truc qu'il faut que je te raconte... Des mercenaires m'ont demandé de les amener à Pripyat. Ils m'ont convaincu en me proposant une jolie prime, mais j'ai vite compris que j'étais dans la merde... Ils me laissaient pas m'éloigner, ils me menaçaient de leurs armes... J'ai réussi à me faire la malle en arrivant à Pripyat, mais ils doivent toujours être en ville, alors fais gaffe à toi ! + + + Tu as entendu de quoi parlaient les mercenaires ? + + + En partie, oui. Ils avaient aucune intention de me laisser repartir en vie, alors ils se sont pas méfiés. Ils parlaient principalement de leur rendez-vous avec leur client, de l'objet qu'ils allaient lui montrer et de leur mission. + + + Où cette rencontre doit-elle avoir lieu ? + + + Près d'ici, dans la cour du complexe résidentiel. + + + Merci pour l'info. + + + Tu as parlé des mercenaires. Tu as entendu de quoi ils parlaient ? + + + En partie, oui. Ils avaient aucune intention de me laisser repartir en vie, alors ils se sont pas méfiés. Ils parlaient principalement de leur rendez-vous avec leur client, de l'objet qu'ils allaient lui montrer et de leur mission. + + + Où cette rencontre doit-elle avoir lieu ? + + + Près d'ici, dans la cour du complexe résidentiel. + + + Je me suis arrangé avec les scientifiques pour récupérer une combinaison. Allez voir Hermann. + + + OK... Où est le point de rendez-vous ? + + + Près de la gare de Yanov, chez Zulu. + + + Mais ça grouille de stalkers ! Si je m'y montre sans escorte, il risque d'y avoir du grabuge. Avec vous à mes côtés, ils n'oseront pas tirer. + + + À quel point d'évacuation êtes-vous allé ? + + + Désolé, mais je ne peux pas en parler. C'est classé top secret. + + + Allons voir Zulu ! + + + OK, mais il faut d'abord passer voir Herman pour récupérer la combinaison scientifique. + + + Allons-y ! + + + Je veux bien, mais pas au beau milieu d'une émission... On attend un peu ? + + + Comment avez-vous fini ici ? + + + Mon hélicoptère s'est écrasé sur un atelier de Jupiter et est passé à travers le toit. Je suis le seul survivant : j'ai réussi à sortir de l'usine et à atteindre le point d'évacuation, mais il n'y avait personne. C'est là que j'ai rencontré Garry et qu'il m'a conduit au bunker. + + + Il va vous falloir une combinaison équipée d'un module respiratoire en circuit fermé pour aller à Pripyat. + + + Qu'est-ce que vous faites ici ? + + + Mes ordres sont d'aller au point d'extraction, mais la Zone est bien trop dangereuse. Je suis un pilote, bordel, pas un commando ! C'est pour ça que j'attends ici, j'espère que quelqu'un viendra me récupérer quand l'opération sera terminée. + + + Je suis en train de monter une équipe pour aller à Pripyat. Ça vous dit ? + + + Pripyat ? Hum... Pourquoi pas... Peut-être que certains de nos hommes ont survécu et ont réussi à atteindre la ville. Il y a un point d'extraction à Pripyat, après tout. Tout seul, je n'aurais aucune chance, mais avec toute une équipe, ça vaut certainement le coup d'essayer. + + + Prêt à partir ? + + + On peut dire ça. + + + Bonjour, stalker. + + + Bonjour. + + + Bonjour. + + + Bonjour, major ! + + + Où avez-vous trouvé cet uniforme militaire ? + + + Hum... Bon, j'imagine que tout le monde est au courant pour les hélicos, maintenant... Je suis le lieutenant Sokolov, copilote de l'un des hélicoptères. + + + À propos de la sentinelle... + + + Le signal provient de la vieille épicerie, mais il ne répond pas... peut-être qu'il a perdu sa radio... nous n'avons aucun moyen de le savoir pour l'instant, il faut donc le retrouver ! + + + Merci, colonel, je vais me débrouiller. + + + À propos de la sentinelle... + + + C'est la faute de ce contrôleur... C'est sûrement ce qui est arrivé à l'unité de reconnaissance ! Il a dû les obliger à s'entre-tuer.... Ces créatures sont les pires de la Zone et on manque d'expérience pour les combattre. Les hommes sont tombés dessus complètement par hasard. + + + Au moins, il ne peut plus faire de dégâts maintenant. + + + J'espère effectivement que nous allons pouvoir nous reposer un peu. Merci pour votre aide, major. Je suppose que vous avez dû utiliser pas mal de munitions au cours de cette mission... Allez voir le lieutenant Kirillov et demandez-lui de vous donner le paquetage réglementaire. + + + Merci, colonel ! + + + Ne vous inquiétez pas, colonel, je vais m'occuper de ce mutant. + + + Vous pourriez me donner un peu plus d'informations sur cette mission ? + + + Qui est-il ? + + + Si on ne trouve pas bientôt la source des interférences, il ne nous restera pas grand-chose à faire, à part attendre de mourir. La moindre attaque du Monolithe réduira nos forces à néant... Et cela ne fera que confirmer l'échec de cette mission. + + + Je vais essayer de trouver la source au plus vite. + + + Alors, major ? Vous avez trouvé la source des interférences radio ? + + + Non, je suis toujours sur l'affaire... + + + Garry m'a parlé de l'incident avec les mercenaires... + + + Oui, il m'en a parlé aussi... Dès qu'il a réussi à s'échapper, il est venu se réfugier ici. Heureusement pour lui comme pour nous, les mercenaires n'ont pas retrouvé sa trace... On surveille l'endroit où les mercenaires et leurs clients doivent se rencontrer, mais en vain... J'aimerais bien savoir ce qu'ils manigancent... + + + J'ai appris que les mercenaires sont à la recherche d'un laboratoire secret à Pripyat. + + + Un labo secret ? Ici à Pripyat ? Où avez-vous eu cette information ? + + + Dans l'ordinateur d'un mercenaire que j'ai trouvé à Zaton. Cette histoire a ensuite été confirmée par un stalker qui se fait appeler Oncle Yar. + + + Hum... Vous savez autre chose ? + + + Ils sont à la recherche du laboratoire central. J'ai découvert ses coordonnées au cours de mon enquête. + + + Si ces informations sont exactes, ça veut dire qu'on a un autre ennemi, en plus des zombies et des fanatiques... Il faut prendre une décision. + + + Nous devons observer la rencontre et essayer d'éliminer les commanditaires, de façon à s'assurer que personne ne tente d'accéder au labo X8 pendant un certain temps. + + + C'est une bonne solution car, bien qu'elle ne nous permette pas de savoir qui d'autre est au courant de l'existence du labo, elle nous garantit au moins que les mercenaires ne parviendront pas à l'atteindre. D'un autre côté, les mercenaires réagiront sans doute immédiatement et risquent de se montrer dangereux. Essayez d'abattre les deux cibles si vous le pouvez. Je vais dire au lieutenant Kirilov de vous accompagner. + + + Ok. + + + Attendez, il vaudrait peut-être mieux choisir l'autre cible. + + + Décidez quelle cible doit avoir la priorité. + + + Il faut éliminer le chef des mercenaires. Sans tête pensante, le groupe ne représentera plus une réelle menace. + + + C'est une solution acceptable, mais elle permet au commanditaire de s'échapper et de transmettre les informations concernant le laboratoire, ce qui signifie que les mercenaires finiront par l'atteindre un jour ou l'autre. Il vaudrait mieux éliminer les deux cibles si vous le pouvez. Je vais dire au lieutenant Kirilov de vous accompagner. + + + Je n'ai pas le temps. + + + Sur l'ordinateur d'un mercenaire à Zaton. + + + Oncle Yar, un stalker de la gare de Yanov, m'a raconté cette histoire. + + + À propos des mercenaires... + + + Bon travail. Les deux cibles ont été éliminées ! Les mercenaires ne traîneront plus dans nos pattes et arrêteront de s'intéresser au laboratoire. Vous pouvez garder le fusil. Et voici quelques munitions supplémentaires. + + + Bien. Maintenant que leur chef est mort, les mercenaires ne nous poseront plus problème. Mais comme leur client s'en est enfui, ils risquent toujours d'atteindre le laboratoire. Restez sur vos gardes... Vous pouvez garder le fusil. Et voici quelques munitions supplémentaires. + + + Bien, maintenant que celui qui connaissait l'emplacement du laboratoire est mort, les mercenaires ne risquent plus de le trouver ! D'un autre côté, je doute qu'ils quittent Pripyat de sitôt et cela signifie qu'ils continueront à poser problème. Restez sur vos gardes... Vous pouvez garder le fusil. Et voici quelques munitions supplémentaires. + + + Vous avez changé de cible au dernier moment ? Et puis, pourquoi pas, après tout... Maintenant que leur chef est mort, les mercenaires ne nous menaceront plus. Mais comme leur client a pu s'en tirer, ils risquent toujours d'atteindre le laboratoire. Restez sur vos gardes... Vous pouvez garder le fusil. Et voici quelques munitions supplémentaires. + + + Vous avez changé de cible au dernier moment ? Et puis, pourquoi pas, après tout... Maintenant que celui qui connaissait l'emplacement du laboratoire est mort, les mercenaires ne risquent plus de le trouver. D'un autre côté, je doute qu'ils quittent Pripyat de sitôt et cela signifie qu'ils continueront à nous poser problème. Restez sur vos gardes... Vous pouvez garder le fusil. Et voici quelques munitions supplémentaires. + + + Ça ne s'est pas très bien passé... Le chef des mercenaires est toujours en vie, tout comme son commanditaire. Les mercenaires savent à présent que nous les surveillons et nous ferons encore moins de cadeaux que les combattants du Monolithe. En plus, comme ils savent maintenant où se trouve le laboratoire, ils ne tarderont pas à s'y rendre. Restez sur vos gardes... Vous pouvez garder le fusil. Et voici quelques munitions supplémentaires. + + + Prévenez vos soldats, colonel ! Je suis prêt à partir ! + + + Très bien. Protégez Strelok, major ! Mes gars et moi, nous nous en sortirons très bien tous seuls. + + + Bon... De nous tous, vous et Strelok avez le plus d'expérience dans la Zone. Mais bon, l'expérience de Strelok reste encore à prouver, contrairement à la vôtre. Ce que j'essaie de vous dire, c'est que je compte sur vous, major. Gardez un œil sur Strelok ! Nous ne sommes plus très nombreux. + + + L'unité est prête à partir. On n'attend plus que vous, major ! + + + On dirait que tous les tarés sont morts. Prenez ce fusil et filons d'ici tant qu'on le peut encore ! + + + Ça me paraît une bonne idée. + + + Je suis prêt, allons-y ! + + + OK. L'unité est prête ! + + + Allons-y ! + + + Il va falloir attendre. Je n'ai pas envie de perdre des hommes dans une émission. + + + Je suis le capitaine Tarasov. Vous êtes peut-être major, mais c'est moi qui commande ici, ce qui signifie que mes ordres ne sauraient être discutés. La vie de chacun des hommes de l'unité en dépend. Notre plan est le suivant : on prend position dans l'aile ouest de l'hôpital et on attend que les forces du Monolithe se montrent. Il va falloir faire vite pour ne pas trop attirer l'attention. + + + Compris, allons-y ! + + + OK. L'unité est prête ! + + + Allons-y ! + + + Il va falloir attendre. Je n'ai pas envie de perdre des hommes dans une émission. + + + Attendez, capitaine, je ne suis pas encore prêt. + + + Des nouvelles au sujet de ces interférences ? + + + J'ai identifié plusieurs sources, dont une est proche d'ici. Si on la détruit, on pourra peut-être communiquer avec le QG. + + + J'ai travaillé sur les coordonnées de la source des interférences. Il doit s'agir d'une fréquence élevée spécialisée, voire d'un transmetteur de micro-ondes. + + + L'appareil que vous avez détruit était la source des interférences : il y en a probablement beaucoup d'autres, mais votre intervention nous a permis de contacter le QG. + + + J'aimerais en savoir plus sur ce signal. + + + Il n'arrête pas d'apparaître, puis de disparaître. Mais chaque fois qu'il réapparaît, il se rapproche de la base. + + + C'est tout ? + + + Non. Le hic, c'est que ce signal est transmis sur des fréquences rarement utilisées pour des communications radio. + + + Je vois. + + + Prenez cette arme et ces munitions... Vous pouvez vous détendre pour l'instant. Je vais monter la garde de l'autre côté et je vous contacte dès qu'ils arrivent. + + + Ok. + + + Bonjour. Je suis le lieutenant Kirilov, responsable du stockage des munitions et de la maintenance des armes. + + + Vous avez des munitions ? + + + Ouais, on a fait une virée dans un entrepôt du Monolithe l'autre jour et on a récupéré des munitions pour tous les types d'armes de la Zone... Je me demande bien comment ils ont pu accumuler tout ça... Je pense qu'un des gardes du périmètre doit leur revendre. + + + Donc, vous pouvez aussi réparer mes armes ? + + + Évidemment. On peut réparer tous les types d'armes. + + + Je vois. + + + Bonjour ! + + + D'où vient cette migraine... + + + Ça y est, c'est le moment de vérité. Je me demande si on va y arriver... + + + Il me faut des munitions. + + + Pas de problème, vous avez besoin de quoi ? + + + Des munitions de pistolet 9x18 mm... + + + Voilà. C'est tout ? + + + Tenez... + + + Des munitions de pistolet 9x19 mm... + + + Des munitions de pistolet 11,43x23... + + + Des munitions de fusil à pompe... + + + Des munitions de fusil d'assaut 5,45x39 mm... + + + Des munitions de fusil d'assaut 5,56x39 mm... + + + Des munitions de fusil d'assaut 9x39 mm... + + + Des munitions de fusil de précision... + + + Des munitions de mitrailleuse... + + + Je ne peux rien vous donner de plus, major... Le colonel a ordonnée d'économiser les munitions. + + + Ok, oubliez ça. + + + Il me faut des grenades. + + + Pas de problème... De quel type ? + + + Des grenades individuelles. + + + Tenez... + + + Des grenades VOG-25. + + + Des grenades de M203. + + + En fait, oubliez ça. + + + Je ne peux rien vous donner de plus, major... Le colonel a ordonnée d'économiser les munitions. + + + J'ai besoin de soins médicaux. + + + Toujours prêt à aider ! Faites-moi voir... + + + Et voilà, vous êtes prêt à repartir ! + + + Comment vous vous sentez ? + + + Je vais bien maintenant... J'étais en état de choc après ce qui s'est passé à la maternelle, mais j'en suis sorti rapidement quand l'émission a commencé. + + + Bonjour ! + + + Notre objectif est d'atteindre ces hélicoptères. + + + J'ai besoin de fournitures médicales. + + + Voyons ce que j'ai en stock. Prenez donc ça... + + + Désolé, il ne me reste plus grand-chose, je ne peux rien vous donner de plus. + + + On a suivi votre signal radio. + + + Ouais. J'ai contacté un stalker qui se fait appeler Guide. Il m'a dit comment atteindre cet endroit par les tunnels. + + + Qui est ce Guide ? + + + C'est un stalker de légende. On dit qu'il peut vous conduire partout dans la Zone... Les gars de l'armée ont eu de la chance de tomber sur lui, ils n'auraient pas survécu longtemps sans lui. + + + Comment saviez-vous que les militaires étaient là ? + + + Le Guide me l'a dit. C'est lui qui a amené Kovalsky et ses hommes ici. + + + Je vois. + + + Quel genre d'informations comptez-vous donner au gouvernement ? + + + Plein de choses... Je suis sûr que mes infos peuvent servir à détruire la Zone. Je pensais y arriver tout seul... Mais ça s'est avéré un peu trop compliqué. Ceux qui ont commencé tout ça ne sont plus aux commandes... J'expliquerai tout quand on sera sorti d'ici. + + + Qu'est-ce que vous avez vu dans le sarcophage ? + + + Ce n'est qu'une supercherie... Le Monolithe, l'Exauceur de vœux ! Des mensonges, un appareil qui embrume l'esprit ! Et ceux qui sont derrière tout ça se cachent quelque part... + + + Vous savez qui est derrière tout ça ? + + + Peut-être, peut-être pas... Je ne sais plus trop quoi croire... Mais malgré tout, j'ai découvert bien plus qu'ils ne le voulaient. + + + OK, ça suffit pour l'instant. + + + Je partagerai tout ce que je sais. Tant que ces infos parviennent aux bonnes personnes... + + + J'ai trouvé les planques de votre groupe en chemin... + + + Je me demandais comment vous aviez fait... Il devait y avoir des enregistrements à l'intérieur, non ? + + + Oui, j'ai trouvé ces trois messages. + + + Merci... Les Crocs et le Spectre étaient mes amis. Ensemble, on a dépassé le Lobotomisateur et atteint la centrale de Tchernobyl. Malheureusement, ils sont tous les deux morts. Sur le chemin du retour, on s'est séparés : j'étais blessé, je suis resté dans le marais avec le Doc. Je les ai jamais revus... Ce n'est que bien plus tard que j'ai appris que les Crocs avait été tué par des mercenaires et que Spectre était mort pour avoir fait confiance aux scientifiques... Mais bon, le passé est le passé... Maintenant, je dois faire en sorte que mes amis ne soient pas morts en vain. + + + Oui, voici votre message pour le Spectre. + + + Merci... Le Spectre était mon ami. Les Crocs, le Spectre et moi, on a dépassé le Lobotomisateur et atteint la centrale de Tchernobyl. Sur le chemin du retour, on s'est séparés : j'étais blessé, je suis resté dans le marais avec le Doc. Je les ai jamais revus... Ce n'est que bien plus tard que j'ai appris que les Crocs avait été tué par des mercenaires et que le Spectre était mort pour avoir fait confiance aux scientifiques... + + + Oui, voici le message des Crocs. + + + Merci... Les Crocs était mon ami. Le Spectre, lui et moi, on a dépassé le Lobotomisateur et atteint la centrale de Tchernobyl. Sur le chemin du retour, on s'est séparés : j'étais blessé, je suis resté dans le marais avec le Doc. Je les ai jamais revus... Ce n'est que bien plus tard que j'ai appris que les Crocs avait été tué par des mercenaires et que le Spectre était mort pour avoir fait confiance aux scientifiques... + + + Oui, voici votre message pour les Crocs. + + + Merci... Les Crocs était mon ami. Le Spectre, lui et moi, on a dépassé le Lobotomisateur et atteint la centrale de Tchernobyl. Sur le chemin du retour, on s'est séparés : j'étais blessé, je suis resté dans le marais avec le Doc. Je les ai jamais revus... Ce n'est que bien plus tard que j'ai appris que les Crocs avait été tué par des mercenaires et que le Spectre était mort pour avoir fait confiance aux scientifiques... + + + Oui, voici votre message au Spectre et le message des Crocs. + + + Merci... Le Spectre et les Crocs étaient mes amis. Ensemble, on a dépassé le Lobotomisateur et atteint la centrale de Tchernobyl. Sur le chemin du retour, on s'est séparés : j'étais blessé, je suis resté dans le marais avec le Doc. Je les ai jamais revus... Ce n'est que bien plus tard que j'ai appris que les Crocs avait été tué par des mercenaires et que le Spectre était mort pour avoir fait confiance aux scientifiques... + + + Oui, voici votre message au Spectre et un autre pour les Crocs. + + + Merci... Le Spectre et les Crocs étaient mes amis. Ensemble, on a dépassé le Lobotomisateur et atteint la centrale de Tchernobyl. Sur le chemin du retour, on s'est séparés : j'étais blessé, je suis resté dans le marais avec le Doc. Je les ai jamais revus... Ce n'est que bien plus tard que j'ai appris que les Crocs avait été tué par des mercenaires et que le Spectre était mort pour avoir fait confiance aux scientifiques... + + + Oui, voici votre message pour les Crocs et sa réponse. + + + Merci... Les Crocs était mon ami. Le Spectre, lui et moi, on a dépassé le Lobotomisateur et atteint la centrale de Tchernobyl. Sur le chemin du retour, on s'est séparés : j'étais blessé, je suis resté dans le marais avec le Doc. Je les ai jamais revus... Ce n'est que bien plus tard que j'ai appris que les Crocs avait été tué par des mercenaires et que le Spectre était mort pour avoir fait confiance aux scientifiques... + + + Oui. Malheureusement, je ne les ai pas sur moi. + + + Voyons voir... Ouh, ça s'annonce mal, major ! Je veux dire, vous vous qualifieriez sûrement pour le programme spatial, mais, en dehors de ça, c'est pas la grande forme ! Ah ah ! + + + Allez, major. Les combattants du Monolithe ne vont pas nous attendre. + + + Major, une de nos sentinelles a quitté son poste et ne répond plus. Le signal de sa balise provient maintenant de l'épicerie. Dieu seul sait ce qui a pu se passer, il a peut-être craqué, l'accident de l'hélicoptère l'a beaucoup secoué... Vous voulez bien essayer de voir ce qu'il y a sur place ? + + + J'y vais. + + + Je ne peux rien promettre. + + + Major, il faut retrouver l'unité de reconnaissance. + + + L'équipe d'assaut et vous devez vous rendre au point A17, le capitaine Tarasov va vous indiquer où il se trouve. Vos cibles sont dans deux ailes de l'hôpital reliées par un passage. Les combattants du Monolithe sont actuellement dans l'aile ouest. Vous devez leur tendre une embuscade dans l'autre aile. Leur meilleur homme est probablement équipé du fusil. + + + C'est très probablement le chef de l'unité, il a été vu en train de sermonner ses soldats. Soyez prudents, on ne sait pas de quoi il est capable... + + + Bien compris, colonel ! + + + Bonjour. Je suis le colonel Kovalsky, commandant de cette unité. + + + Je suis le major Degtyarev, SBU. J'ai pour ordre d'enquêter sur les raisons de l'échec de l'opération Fairway. + + + Je vois... Alors écoutez-moi, major ! L'opération est partie en vrille en même temps que nos hélicoptères. La moitié de mes gars sont morts et le QG est injoignable. J'ai autant envie que vous de connaître les raisons de l'échec de cette opération. + + + Des idées ? + + + À mon avis, les hélicoptères ont été abattus par une arme aussi puissante qu'inconnue. Les combattants du Monolithe en ont utilisé une contre nous lors du premier assaut de la centrale... J'ai l'intention de récupérer l'une de ces armes pour l'étudier. Nous avons localisé l'unité du Monolithe qui transporte l'arme et un groupe d'assaut se tient prêt à attaquer. Vous voulez participer à l'opération ? + + + J'accepte à la condition que vous me fournissiez toutes les informations en votre possession et me laissiez une liberté d'action totale. + + + J'ai des informations sur l'arme non identifiée, le fusil Gauss. + + + Excellent ! Comment est-ce qu'il marche ? Est-ce qu'il peut abattre un hélicoptère ? + + + En théorie oui, mais il y aurait eu des traces d'impact sur les hélicoptères et ce n'est pas le cas. + + + Bon sang... C'est donc une impasse... Je n'ai pas d'autre idée. Tout ce qu'il nous reste à faire, c'est rester assis sur notre cul au beau milieu de cette putain de Zone et d'espérer que les secours vont arriver... Bon, assez pleurniché... Concentrons-nous sur ce qui se passe ici et maintenant ! Grâce à vous, nous savons désormais que même à couvert, nous ne sommes pas à l'abri de ces balles magnétiques, c'est déjà ça... Je vous en remercie, major. Je vous contacterai si nous apprenons quoi que ce soit d'autre. + + + En théorie, oui, mais Stingray 4 et 5 se sont écrasés suite à une défaillance des systèmes électroniques. Les balles du fusil Gauss n'auraient pas pu faire ça. + + + Comment se déroule l'opération ? + + + Le sergent Morozov a été tué. Les forces du Monolithe nous ont tendu un piège en sacrifiant leurs propres hommes. + + + Les salauds ! Ils ne pouvaient pourtant pas savoir que nous allions attaquer... On a donc perdu un tireur de précision. Et pour l'objectif de l'opération ? + + + On a subi des pertes... Les forces du Monolithe nous ont tendu un piège en sacrifiant leurs propres hommes. + + + Les salauds ! Ils ne pouvaient pourtant pas savoir que nous allions attaquer... On a donc perdu des hommes. Et pour l'objectif de l'opération ? + + + L'unité a été anéantie... Les forces du Monolithe nous ont tendu un piège en sacrifiant leurs propres hommes. + + + Les salauds ! Ils ne pouvaient pourtant pas savoir que nous allions attaquer... On a donc perdu Tarasov et ses hommes. Et pour l'objectif de l'opération ? + + + J'ai l'arme, mais elle a été endommagée au cours des combats. + + + Nous ne pourrons donc pas déterminer si elle a été utilisée pour abattre les hélicoptères. Écoutez, major : vous avez des contacts parmi les stalkers. Il est possible qu'ils soient déjà tombés sur cette arme. Et il y a des techniciens parmi eux. Vous voulez bien essayer de leur parler ? + + + Ok. + + + Parfait... Oh et au fait... Un autre stalker a réussi à venir ici de Jupiter. Ce serait peut-être une bonne idée de lui parler. + + + J'y travaille encore. + + + Je vois... Major, nous avons absolument besoin de cette arme ! Je suis sûr que vous comprenez à quel point c'est important... + + + Oui. + + + J'ai trouvé le message dans le complexe Volkhov AA. Voilà ! + + + Alors... Oh, et puis tant pis, c'est pas grave. Personne risque de se pointer là-bas, de toute façon. Si tu vois des militaires dans le coin, tu me tiens au courant, OK ? Merci d'avance... + + + Major... Merci mille fois, je suis sauvé ! + + + Comment avez-vous fini ici ? + + + Hum... Je ne me rappelle pas tout... J'avais tellement peur que je n'arrivais plus à réfléchir et je ne me souviens même plus de ce qui a bien pu m'effrayer. Je savais seulement qu'il fallait que je me cache, alors je me suis mis à courir... Je me souviens des rues, d'avoir tourné quelque part... Et je me suis retrouvé dans ce trou. La porte était fermée de l'extérieur... J'ai cru que j'allais mourir ici. Comment vous m'avez trouvé ? Euh non, les explications peuvent attendre... Sortons ici et rapprochons-nous un peu de la base ! Cet endroit me fiche les jetons... + + + Allons-y ! + + + Bonjour. Besoin d'assistance médicale ? Je ne suis pas médecin, mais je peux extraire des balles et recoudre des blessures si nécessaire. + + + J'ai besoin d'infos. + + + J'écoute. + + + À propos de l'opération Fairway... + + + Oui, et alors ? + + + Est-ce qu'il s'est passé quelque chose d'inhabituel quand les hélicoptères étaient en l'air ? + + + Pas avant qu'ils ne s'écrasent... On s'en est tenu au plan : décollage 90 secondes après l'émission, activation de nos systèmes de protection et passage en pilote automatique. On a suivi l'itinéraire le plus direct, calculé à partir de notre carte des anomalies. Le manque de visibilité n'aurait pas dû affecter la mission, le couloir de sécurité était assez large. Normalement, on aurait dû atteindre la centrale en 12 minutes et 30 secondes. On a perdu le contact avec Stingray 4 au bout de neuf minutes et ensuite, les autres ont commencé à tomber comme des mouches. + + + J'ai d'autres questions au sujet l'opération... + + + Qu'est-ce qui est arrivé aux hélicoptères ? + + + Je ne sais pas exactement... Stingray 2 et 4 ont complètement disparu : j'ignore où ils se sont écrasés ou ce que sont devenus les hommes qui étaient à bord. Les informations dont je dispose au sujet des autres hélicoptères proviennent des gars qui s'en sont sortis, alors elles sont plutôt fragmentaires. On avait vraiment autre chose à faire. + + + Qu'est-il arrivé à Stingray 1 ? + + + Comment est-ce que vous êtes arrivés ici ? + + + Nous avons croisé un stalker près du champ de mines : il avait dû entendre les explosions. C'était un mec étrange... Il se faisait appeler Guide. Il n'a pas posé de questions et a proposé de nous amener à Pripyat. On a accepté. On l'a gardé à l'œil juste au cas où, mais tout s'est bien passé... Il n'a pas dit un mot avant d'atteindre la ville et quand on est arrivé, il a disparu en un clin d'œil. J'ai ordonné à mes hommes de le laisser tranquille. + + + Qu'est-il arrivé à Stingray 3 ? + + + Le capitaine Tarasov a dit que les deux moteurs s'étaient arrêtés. Ils ont été obligés d'atterrir sur la colline près du point B2. Ils ont réussi à se poser sans trop de dégâts, mais le technicien n'a pas eu le temps d'identifier la cause de la défaillance car ils ont été immédiatement attaqués par des snorks et ont perdu trois hommes. Les autres ont décidé de ne pas s'attarder et sont partis à la recherche de Stingray 5. Ils ont croisé une unité ennemie en chemin, mais ont réussi à s'en sortir sans trop de casse. + + + Comment sont-ils arrivés à Pripyat ? + + + Les équipages de Stingray 3 et 5 ont réussi à se rejoindre près d'une sorte de péniche. Apparemment, l'homme qui y vivait était complètement fou : quand mes gars ont essayé de le mettre aux arrêts, il a tenté de les appréhender à son tour alors qu'il était seul face à 11 soldats ! Enfin bref... tout le monde a réussi à se calmer et ils ont pu trouver un accord. Le fou a accepté de les conduire jusqu'à Pripyat et ils ont réussi à atteindre la ville sans trop de dégâts, à part pour le lieutenant Stetsenko qui a perdu quelques orteils en marchant dans une anomalie gravitationnelle. + + + Qu'est-il arrivé à Stingray 5 ? + + + Défaillance des systèmes électroniques : Stingray 5 a plongé droit dans le marais. Seuls cinq hommes ont survécu. Ils ont été contactés par Stingray 3 alors qu'ils étaient en train de sortir leur matériel de l'hélicoptère. Le chef de l'escouade, le major Neborsky, a été tué en chemin par une sangsue... Les autres ont réussi à atteindre le point de rendez-vous sans trop de problèmes. Ils ont ensuite perdu l'un de leurs tireurs de précision, le sergent chef Batyai, lorsqu'ils sont arrivés à Pripyat et ont dû combattre les forces du Monolithe. + + + Comment sont-ils arrivés à Pripyat ? + + + Les équipages de Stingray 3 et 5 ont réussi à se rejoindre près d'une sorte de péniche. Apparemment, l'homme qui y vivait était complètement fou : quand mes gars ont essayé de le mettre aux arrêts, il a tenté de les appréhender à son tour alors qu'il était seul face à 11 soldats ! Enfin bref... tout le monde a réussi à se calmer et ils ont pu trouver un accord. Le fou a accepté de les conduire jusqu'à Pripyat et ils ont réussi à atteindre la ville sans trop de dégâts, à part pour le lieutenant Stetsenko qui a perdu quelques orteils en marchant dans une anomalie gravitationnelle. + + + Je ne sais pas grand-chose... Stingray 2 reste un mystère : j'ignore où il s'est écrasé ou ce que sont devenus les hommes qui étaient à bord. Quant à Stingray 4, vous en savez plus que moi. Le lieutenant Sokolov, celui qui est venu avec vous, est le seul survivant. Les informations sur les autres hélicoptères viennent des hommes qui s'en sont sortis, alors elles sont plutôt fragmentaires. On avait vraiment autre chose à faire. + + + Je ne sais pas grand-chose. Stingray 2 reste un mystère : j'ignore où il s'est écrasé ou ce que sont devenus les hommes qui étaient à bord. Vous devriez demander au lieutenant Sokolov. Stingray 4 est le seul de cet appareil qui ait atteint Pripyat. Les informations sur les autres hélicoptères viennent des hommes qui s'en sont sortis, alors elles sont plutôt fragmentaires. On avait vraiment autre chose à faire. + + + J'ai besoin d'autres informations. + + + Je n'ai pas d'autres questions. + + + Quelle est la situation à Pripyat ? + + + Difficile de faire plus pourrie... Pripyat grouille de fanatiques du Monolithe et de zombies. Les émissions s'enchaînent et je ne parle même pas des anomalies et des mutants... Bienvenue en enfer ! + + + Quelle est la situation au niveau équipement et provisions ? + + + Je voudrais en savoir davantage au sujet du Monolithe. + + + Ce sont des fanatiques de la pire espèce ! Je ne sais pas à quoi ils carburent, mais ils sont toujours prêts à se battre. Ils ne se replient jamais, même quand ils sont moins nombreux et moins bien équipés que l'ennemi... Et c'est plutôt rare dans la Zone. On dirait qu'ils reçoivent des renforts assez régulièrement de la centrale. On a déjà perdu bien trop d'hommes à cause d'eux. + + + Vous avez essayé d'interroger des prisonniers ? + + + Ça n'a servi à rien. Ils se battent jusqu'à la mort. Le seul que mes gars aient réussi à capturer vivant avait été assommé par une grenade, mais il ne nous a pas appris grand-chose. Il a suffi qu'on le quitte des yeux une seconde pour qu'il se frappe la tête contre un mur assez fort pour s'ouvrir le crâne ! + + + Qu'est-ce que vous allez faire maintenant ? + + + Je ne crois pas qu'il soit possible de poursuivre l'opération Fairway. Votre présence ici le confirme. J'ai l'intention de tenir la position jusqu'à l'arrivée des hélicoptères de secours. J'ai plusieurs dates d'évacuation possible. + + + Il n'y aura aucun secours tant que nous ne saurons pas ce qui a causé la perte des Stingrays. + + + Alors, c'est comme ça... Bon, on ne risque pas de sortir de la Zone à pied de toute façon. Dieu seul sait combien de kilomètres de cette merde il faudrait se taper et la Zone est pleine de stalkers qui ne nous portent pas vraiment dans leur cœur... Nous n'avons pas le choix, nous devons mener notre propre enquête et découvrir ce qui s'est passé avant de tous finir six pieds sous terre. Vous voyez, major, nous avons le même objectif. + + + On verra ça plus tard. + + + J'écoute, major. + + + On n'a que ce qu'on a pu emporter. Oh, et on a réussi à récupérer du matériel du Monolithe, principalement des munitions. Donc il va falloir se serre la ceinture. Pareil pour la nourriture : tout ce qu'on a, ce sont des rations et la popote Monolithe trouvée dans l'entrepôt. + + + On n'a que ce qu'on a pu emporter. Oh, et on a réussi à récupérer du matériel du Monolithe, principalement des munitions. Donc il va falloir se serre la ceinture. Pour les provisions, c'est à peu près la même chose, sauf que j'ai passé un accord avec Garry. Il nous apporte des boîtes de conserves et, en échange, on le laisse squatter la base et on regarde ailleurs quand il cherche des artefacts. Ce n'est pas comme si on avait le choix de toute façon... + + + Nos gars sont vengés... Ne traînons pas ici trop longtemps, je n'aime pas cet endroit. + + + Ne perdons pas trop de temps ici, d'accord ? Je veux rentrer à la base au plus vite... + + + Ok. + + + Il y a un truc bizarre par là. Je me demande à quoi ça leur sert... Oh, t'emmerde pas, fais ce que tu as à faire et rentrons à la base ! + + + C'est bon ? Et si on rentrait à la base pour casser la croûte ? + + + Ok. + + + Comment ça va ? + + + C'est la merde... C'est sympa de se retrouver en famille, mais on est toujours coincé dans le trou du cul du monde. + + + Je ne vous ai jamais vu par ici. Vous venez d'arriver ? + + + Oui. Je suis le lieutenant Sokolov, copilote de Stingray 4. + + + Comment est-ce que vous êtes arrivés ici ? + + + Je suis venu avec un stalker du nom de Garry. Je savais qu'il cherchait un moyen d'atteindre Pripyat, alors j'ai demandé à l'accompagner. Ça a été un sacré voyage ! Heureusement qu'on est tombé sur notre unité de reconnaissance dès notre arrivée ! + + + Qu'est-ce qui est arrivé à Stingray 4 ? + + + Aucune idée... J'avais un mauvais pressentiment dès le début de cette opération... On volait en pilote automatique, tout se passait bien, et tout d'un coup, les systèmes électroniques ont rendu l'âme et on a piqué droit vers le sol. Le pilote et moi avons essayé d'atteindre une surface dégagée, mais ça n'a servi à rien. On s'est écrasé sur le toit l'atelier principal de l'usine de Jupiter... Je suis le seul à m'en être sorti. + + + J'ai besoin d'une armure. + + + Ok. Voilà un casque pour commencer... Maintenant, le reste... J'espère que c'est la bonne taille, parce que je n'en ai pas d'autre de toute façon. Je l'ai réparée, alors elle devrait faire l'affaire. + + + Bien sûr, major... Par contre, vu les circonstances, je n'ai pas beaucoup de choix... Au fait, allez voir le lieutenant Kirillov, il vous donnera un peu de matériel. + + + À propos des hélicoptères... + + + J'écoute. + + + C'est dingue, ça... Je vois déjà Kirillov venir me demander une aspirine... + + + C'est l'attente, le pire. Il n'y a rien de mieux pour vous plomber le moral. + + + Très bien, major, les gars sont prêts à partir. Allez voir Rogovets et Kirillov pour le ravitaillement, si vous en avez besoin, et revenez me dire quand vous serez paré ! + + + Ok. + + + Allons-y ! + + + Dans ce cas, il nous en faut une vraiment résistante, un peu comme celles des scientifiques. Mais bon, ça ne sera pas facile de convaincre Hermann de me donner une combinaison... Je pense qu'il préférerait me voir partir cul nu vers la frontière de la Zone, histoire de faire un peu de place dans son précieux bunker... À mon avis, il vaudrait mieux demander à Ozersky. Il est plus sympa, peut-être qu'il me donnera une combinaison. + + + Alors, major ? + + + [continuer...] + + + [continuer...] + + + J'étais à bord. Dès qu'on a perdu le contact avec Stingray 4, j'ai parlé du point d'évacuation de Pripyat aux autres. Je pensais qu'on pourrait marcher jusqu'à la centrale. Mais quelque chose a percuté l'hélicoptère et il y a eu comme une odeur de brûlé... Le moteur venait de prendre feu. Les pilotes ont réussi à nous faire atterrir sur les héliports près de l'usine de Jupiter, mais ont été tués à l'impact. Le sergent Shlyachin est mort quand on a découvert qu'on était au milieu d'un champ de mines. On a ensuite perdu un lieutenant à Pripyat en affrontant les forces du Monolithe pour le contrôle du bâtiment. + + diff --git a/gamedata/configs/text/fra/st_dialogs_zaton.xml b/gamedata/configs/text/fra/st_dialogs_zaton.xml new file mode 100644 index 0000000..c61c847 --- /dev/null +++ b/gamedata/configs/text/fra/st_dialogs_zaton.xml @@ -0,0 +1,3117 @@ + + + + J'ai trouvé un artefact étrange dans la station de dragage. + + + Intéressant... Un semi-artefact... Voici ton paiement. Un bon boulot mérite un bon salaire... Tu t'en sors pas trop mal, on dirait ! Viens me voir si jamais t'as besoin d'un autre boulot ! Je reçois régulièrement des commandes et ça paie très bien. + + + Tu aurais du boulot pour moi ? + + + J'ai bien un petit quelque chose... La nuit dernière, des stalkers ont repéré une lueur étrange du côté de la station de dragage... C'était vraiment bizarre, même pour le coin. Ça te dirait d'aller y jeter un coup d'œil ? + + + J'y vais. + + + Fais gaffe à toi ! Y a plein de radiations, alors oublie pas tes médocs... Tu me remercieras plus tard. + + + Pas pour l'instant. + + + J'ai donné toutes les missions que j'avais pour aujourd'hui. + + + Prends ce semi-artefact ! + + + Voilà ta part ! Un bon boulot mérite un bon salaire... Tu t'en sors pas trop mal, on dirait. Reviens me voir si jamais t'as besoin d'un autre boulot ! Je reçois régulièrement des commandes et ça paie très bien. + + + J'ai trouvé un artefact étrange dans la station de dragage... + + + Intéressant... Un semi-artefact... Laisse-moi t'en débarrasser ! 3 000, ça me paraît honnête, non ? + + + J'ai vu que quelqu'un t'avait apporté un artefact que j'avais trouvé. + + + Désolé, mais je me mêle pas de tout ça. Les règles sont simples : tu livres, t'es payé. Tu sais comment ça marche dans la Zone... Tu gardes l'œil ouvert, t'agis vite et tu fais confiance à personne, sauf à toi-même ! Si t'as besoin d'un boulot régulier, je suis ton homme. Je reçois souvent des commandes et ça paie très bien. + + + De quels artefacts as-tu besoin, au juste ? + + + Je vais trouver un Gravi. + + + Génial ! T'as pas traîné ! Voilà ta prime ! + + + Je vais trouver un Œil. + + + Je vais trouver une Bulle. + + + Je vais trouver une Coquille. + + + Je vais trouver un Garde du corps. + + + Je vais trouver une Flammèche. + + + Je vais trouver une Luciole. + + + Je vais trouver un Flocon. + + + Je peux te vendre un Gravi. + + + Y a un truc qui tourne pas rond... Des types qui prennent des commandes et qui disparaissent... J'aime pas ça du tout. Je vais fermer boutique. + + + Je peux te vendre un Œil. + + + Je peux te vendre une Bulle. + + + Je peux te vendre une Coquille. + + + Je peux te vendre un Garde du corps. + + + Je peux te vendre une Flammèche. + + + Je peux te vendre une Luciole. + + + Je peux te vendre un Flocon. + + + Ok... Je repasserai plus tard. + + + Les deux équipes qui bossaient pour moi sont portées disparues... J'ai décidé de ne pas prendre d'autres commandes pour l'instant. + + + Mission accomplie ! + + + Super ! Voilà ton paiement ! + + + Tiens ! C'est pas grand-chose, mais c'est mieux que rien... + + + Parle-moi de tes commandes d'artefacts ! + + + Qui je pourrais recruter pour protéger les scientifiques ? + + + Mes gars : Spartacus et son équipe. Ils ont de l'expérience, certains étaient vigiles avant d'arriver dans la Zone et, crois-le si tu veux, y en a même qui étaient dans des groupes d'intervention de la police. Les flingues, ça les connaît... S'ils sont dispos, tu trouveras pas mieux ! + + + J'aurais pu te rencarder, mais avec ce qui vient de se passer... Toute l'équipe de Spartacus y est passée... Paix à leurs âmes... + + + Qui je pourrais recruter pour faire des relevés pour les scientifiques ? + + + Tu connais Gonta et ses hommes ? En dehors de la saison de chasse, ils... hum... ils sont prêts à prendre d'autres boulots. Surtout s'ils sont pas obligés de sortir leurs flingues... Apparemment, ils préfèrent aller à la chasse quand ils ont la gâchette qui les démange. + + + Difficile à dire... Je t'aurais bien conseillé Gonta et ses gars, mais ça fait longtemps que je les ai pas vus. + + + Parle-moi de la vie ici ! + + + T'aurais pas des questions un peu plus spécifiques ? Je ferai de mon mieux pour y répondre. + + + Qu'est-ce que les stalkers font ici ? + + + C'est à moi que tu le demandes ? Ils débarquent du Skadovsk pour explorer les environs et chercher des artefacts, et ils flinguent tout ce qui s'approche un peu trop. Ensuite, ils retournent sur le Skadovsk pour se bourrer la gueule et tailler le bout de gras... C'est comme ça qu'ils se détendent entre deux raids. Par contre, quand une émission nous tombe dessus, c'est une autre histoire... Tout le monde serre les fesses et on a une pensée pour ceux qui se sont pas mis à l'abri à temps... + + + Pourquoi les stalkers sont attirés par le centre de la Zone ? + + + Voilà une question intéressante ! Y en a qui sont là pour découvrir des gisements d'artefacts ; d'autres ont été attirés par les rumeurs concernant l'Oasis ou l'Exauceur de vœux. Et puis, il y a tous ceux qui sont poussés par l'avidité et la curiosité... Tout le monde a ses raisons... Même toi, tu dois avoir les tiennes. + + + Comment as-tu fini ici ? + + + Je suis arrivé ici avec le Faisan après que le Lobotomisateur a été désactivé. Mais ça t'intéresse pas vraiment, si ? Mon truc, c'est les artefacts. On trouve déjà des babioles un peu partout, alors ce qui intéresse les clients, ce sont les objets rares. C'est ce qui m'a donné l'idée de créer un camp de stalkers où on pourrait encore trouver des artefacts de qualité. Que cherche un stalker quand il revient ici avec son butin ? Je vais te le dire, moi : une bière bien fraîche et des potes avec qui se détendre. C'est pour ça qu'on a le Skadovsk. + + + Qu'est-ce que tu penses des bandits ? + + + C'est assez simple. Tant qu'ils se tiennent tranquilles, ça me dérange pas qu'ils viennent à bord. Après tout, ce sont pas tous des connards. Certains sont même d'anciens stalkers. Qui sait, un de ces jours, il y en a peut-être un qui va raccrocher avant de se prendre une balle... La vie est pleine de surprises. + + + Nan, c'est bon. Laisse tomber ! + + + Si tu le dis. + + + Tu n'aurais pas vu des militaires dans le coin ? + + + À ton avis ? Qu'est-ce que des troufions viendraient faire dans notre camp ? Tu peux me croire, ils ont aucune envie de traîner dans les environs. On est trop nombreux ici à avoir dû échapper à leurs saletés de mitrailleuses à quatre pattes dans la bouillasse du Cordon... + + + Parle-moi un peu de la Boussole ! + + + C'est un artefact mythique... On raconte que la Boussole n'a pas d'effets secondaires et que, si tu sais t'en servir, elle peut te permettre de sortir de n'importe quelle anomalie. Je comprends que les clients soient prêts à tout pour mettre la main sur un artefact pareil... L'autre jour, on m'a dit que Noah avait des infos à ce sujet... C'est un stalker qui vit au sud d'ici. + + + OK, je vais rendre visite à Noah. + + + Je vais y réfléchir. + + + C'est un artefact mythique, je te l'ai déjà dit. Il paraît qu'un stalker du nom de Noah a des infos à son sujet. Il vit au sud d'ici. + + + J'ai trouvé un drôle d'artefact du côté de Yanov. Ça t'intéresse ? + + + Fais voir... C'est pas un artefact ordinaire, ça, c'est sûr... Mais je pense pas que je trouverai un acheteur. Je te conseille de retourner à Yanov et de le montrer aux scientifiques. Les trucs bizarres comme ça, ça les fait bander. + + + Le Hibou dit que tu ne respectes pas ta part du marché. + + + On s'était mis d'accord : je récupère les détecteurs, je les envoie sur le terrain et il récupère une partie de bénéfices. Je lui ai déjà payé deux détecteurs, alors qu'il vienne pas me dire que je respecte pas ma part du marché ! On était tombé d'accord, lui et moi. Si tu bosses pour lui, tu peux lui rapporter le troisième : j'ai pas l'intention de l'acheter. + + + Alors, qu'est-ce que je dis au Hibou ? + + + J'ai l'impression. + + + À ta place, je ferais pas affaire avec le Hibou. Si tu veux te faire du fric, je peux te donner une longueur d'avance pour la chasse aux artefacts. Deux, trois heures... C'est assez pour battre les autres. En plus, si ça t'intéresse, j'ai une commande spéciale : j'ai besoin d'un artefact qu'on appelle la Boussole. + + + Sultan a réussi à récupérer la Boussole. + + + Ce connard sait y faire... Bon, c'est pas grave... Tu devrais retourner parler à Noah. Si on en croit les rumeurs, ça pourrait s'avérer... utile. + + + J'ai trouvé une Boussole. Tiens ! + + + Tu me sauves la vie, mon pote ! Y a pas de doute, je vais me mettre ce gros client dans la poche ! J'avais entendu dire que Sultan essayait de faire couler ma petite entreprise... Il va être déçu, mais ça lui fera les pieds ! Tiens, prends ça ; tu l'as bien mérité ! + + + Hors de question de chercher une Boussole pour toi ! + + + Bon, tant pis... + + + Sultan te passe le bonjour. Ah, au fait, tes fournisseurs vont arrêter de t'approvisionner. + + + Tout s'explique... Mais je quitterai pas le Skadovsk. On dirait que j'ai pas le choix : je dois bosser pour Sultan et toi. Je lui filerai un pourcentage sur les ventes et t'auras qu'à passer récupérer ta part tous les jours. + + + Donne-moi ma part ! + + + Tiens, la voilà ! + + + T'es en avance. J'ai pas encore l'argent... + + + Tu crois qu'Allegro revend des objets volés ? + + + J'en doute... D'après ce que je sais, il laisse les trucs louches aux autres. Un homme d'affaires sérieux surveille sa réputation. Maintenant que j'y pense, j'ai jamais entendu qui que ce soit dire du mal d'Allegro. + + + Je cherche Accroc. Tu sais où je peux le trouver ? + + + La dernière fois que je l'ai vu, il sortait du bar. Si je me souviens bien, il allait vers les grues des quais. Tu devrais commencer par là. + + + Quelqu'un compte braquer un groupe de stalkers. Apparemment, ce sont certains de nos gars... + + + Quoi ? Attends, les bandits qui se multiplient comme des lapins et en plus, on se bat entre nous, maintenant ? + + + On m'a proposé d'attaquer le camp près du Chevtchenko. + + + Les salauds... En fait, ce serait pas mal que t'acceptes leur offre, si tu vois ce que je veux dire... Comme ça, je pourrai prévenir mes gars ! Ils prépareront un joli comité d'accueil. + + + Je suis d'accord. + + + Bon, va voir ces abrutis et moi, je préviens mes gars ! + + + Désolé, t'es tout seul sur ce coup-là... + + + J'ai un artefact de l'Oasis. Ça t'intéresse ? + + + Le Cœur de l'Oasis ? Merci, mais non merci... On raconte tellement de trucs sur cet artefact... Ce sont sûrement que des superstitions, mais je préfère rester prudent. Tu ferais mieux de le refiler aux scientifiques ; ils pourront y jeter un coup d'œil. Ça nous permettra peut-être de comprendre ses effets. + + + T'es nouveau dans le coin ? T'en fais pas, tu t'habitueras vite... La Zone pardonne pas les erreurs, tu sais. Je suis le Barbu, le barman du coin. Si t'as des questions, tu viens me voir, ok ? + + + Je t'écoute... + + + Ça te dit de chercher des artefacts pour te faire un peu de fric ? + + + Alors, ma commande, elle en est où ? Oublie pas que ce sont les stalkers les plus rapides qui se font le plus de thune... + + + T'es en retard, on m'a déjà livré cet artefact. Mais si t'as rempli ton contrat, je peux quand même te payer... Pas autant, mais bon, tu vas pas te plaindre, hein... + + + J'ai du nouveau : il paraît que des bandits se préparent à acheter un paquet d'armes. Nos gars veulent les suivre et empêcher la transaction. Toute aide serait la bienvenue. + + + Alors ? + + + Que font des mercenaires dans la station de traitement des déchets ? + + + Tu ferais mieux de pas t'en mêler... + + + Ça te plaît de bosser pour les scientifiques ? + + + Oui. Je suis bien content que tu sois venu nous voir. Les scientifiques auraient pas pu tomber sur des mecs plus compétents que nous. + + + Je suis en train de monter une équipe pour aller à Pripyat. Tu veux venir avec nous ? + + + Non. Faut que je surveille les scientifiques... Tu devrais en parler à Sokolov. Paraît qu'il veut se rendre à Pripyat. + + + Non. Je dois m'occuper des scientifiques... C'est notre boulot, après tout. + + + Euh... Non, je dois rester ici pour l'instant. + + + Ça te dirait de bosser pour les scientifiques ? + + + Ça dépend... C'est quel genre de boulot ? + + + Protéger leur bunker. + + + Pourquoi pas ? + + + Faire des relevés dans les anomalies. + + + Ce genre de boulot, c'est pas pour nous. Tu ferais mieux de demander aux stalkers. + + + Écoute, stalker. J'ai la dalle, alors j'ai mieux à faire que t'écouter te plaindre... + + + Je pourrais t'apporter à manger. + + + Ha ! OK, si tu veux. De la viande en conserve, des saucisses et du pain... Six de chaque. Apportes-en assez, parce qu'on crève tous la dalle ici ! + + + J'ai entendu dire qu'il y avait des outils dans le coin. + + + Qui sait ? Mais j'apprécierais que t'arrêtes de tourner en rond comme ça. On a déjà trop de boulot, je peux même pas me permettre d'envoyer qui que ce soit chercher à manger. + + + Qu'est-ce que j'en sais, moi ? Tu peux regarder là-dedans, tu trouveras peut-être ce que tu cherches. + + + Voilà les provisions ! + + + J'avais perdu espoir... Merci, c'est sympa. Les gars seront contents d'avoir enfin un truc à se mettre sous la dent. Qu'est-ce que tu voulais, déjà ? Des outils, c'est ça ? Vas-y, fais-toi plaisir ! Tu trouveras peut-être ce que tu cherches. Mais arrête d'agiter ce flingue dans tous les sens ! + + + J'avais perdu espoir... Merci, c'est sympa. Les gars seront contents d'avoir enfin un truc à se mettre sous la dent. Hésite pas à faire un tour dans le coin ! Mais arrête d'agiter ce flingue dans tous les sens ! + + + T'es pas le bienvenu ici... C'est notre camp et on aime pas les étrangers qui fourrent leur nez partout. Mes gars crèvent la dalle, alors je te conseille de pas les énerver... + + + Dégage ! Mes gars ont tellement faim qu'ils ont la gâchette facile, si tu vois ce que je veux dire... + + + Oh, stalker... C'est important ? C'est que j'ai du boulot, moi... + + + Je suis prêt à partir à la chasse. + + + Ok. Allons-y ! + + + C'est parti ! + + + C'est pas encore l'heure. Reviens à 3h du matin ! + + + Je vois. + + + Nous aussi... mais manque de bol, on a une émission sur le dos... La chimère doit pas pouvoir pioncer. On va devoir réessayer une autre nuit... + + + Gonta est mort... J'y crois pas... T'irais pas à Yanov, par hasard ? Trappeur, le pote de Gonta, est là-bas. Tu pourrais lui dire que la chimère est morte ? Je vais sûrement rentrer chez moi maintenant. + + + Fais gaffe à toi ! + + + Tire-toi ! Si Gonta est mort, c'est à cause de toi... Qu'est-ce qu'on va faire maintenant ? + + + Prends soin de toi ! + + + Parle-moi de toi ! + + + Je suis Gonta, le chef des chasseurs. On est payé pour abattre des mutants. On peut aussi les capturer vivants, pour des expériences scientifiques ou pour les mecs qui veulent un animal de compagnie un peu exotique... Comme disait Trappeur : "Une balle pour chaque mutant..." + + + Parle-moi de la chasse aux mutants ! + + + Je suis pas le chasseur le plus expérimenté, mais j'en connais un rayon sur les animaux qui se baladent en meutes. Les barbaks, les sangliers, les chiens aveugles, les pseudo-chiens, les snorks, les hamsters... Je peux même te parler des sangsues ! + + + Parle-moi des sangliers et des barbaks ! + + + D'accord... Les barbaks sont les mutants les plus inoffensifs. Ils essaient d'éviter les stalkers, mais ils se défendent si tu les attaques. Par contre, s'il y a un sanglier avec eux, faut faire gaffe. Je te garantis que t'as pas envie de rigoler face à une bête enragée de trois cents kilos. Reste pas sur son chemin s'il commence à charger : une fois sur sa lancée, y a peu de chances qu'il change de trajectoire. Dans ces cas-là, vaut mieux l'éviter et lui mettre une balle direct. + + + Parle-moi des chiens aveugles et des pseudo-chiens ! + + + Un chien isolé, c'est pas dangereux, mais s'ils sont en meute, là, t'as un problème. Ils attaquent que s'ils ont faim... Mais le problème, c'est qu'ils ont toujours la dalle... Si t'as affaire à une meute, essaie de te placer en hauteur pour les abattre, ou tu risques d'être vite dépassé. Surtout s'il y a des pseudo-chiens adultes dans la meute... Ils sont pas beaucoup plus forts, mais ils sont plus vicieux et dangereux... Si t'étais face à un chien, et que, d'un coup, t'es face à une meute, c'est que t'as affaire à des fantômes. Le vrai pseudo-chien, lui, reste en retrait et essaie de te mordre une fois de temps en temps... Essaie de l'identifier : une fois que le vrai chien est mort, les fantômes disparaissent aussi sec. + + + Parle-moi des snorks ! + + + Ils étaient humains avant... Un snork seul ne pose pas de vrai problème à un chasseur expérimenté. Il suffit d'attendre qu'il saute pour le cueillir en plein air. Mais si t'as affaire à un groupe... Eh bien, faut que tu les abattes aussi vite que possible tout en évitant qu'ils te sautent dessus. Ils connaissent la tactique et ils essaient souvent d'attaquer en groupe. + + + Parle-moi des hamsters ! + + + Le cauchemar de tous les chasseurs... Ils sont pas bien grands, mais il faut jamais les sous-estimer. Ils sont rapides, agiles et ils quittent jamais leur meute. Si, tout d'un coup, tu sens des dizaines de petits crocs qui essaient de te bouffer, c'est le moment de commencer à tirer... Le pire, c'est qu'ils sont pas faciles à flinguer ! C'est pour ça que je conseille toujours aux stalkers de jamais sortir sans un fusil à pompe chargé. + + + Parle-moi des sangsues ! + + + Ces saletés sont de vrais prédateurs, avec un excellent camouflage. Quand elles sont camouflées, tu peux à peine les voir. Si tu chasses une sangsue, essaie de la prendre par surprise, c'est plus facile de la repérer si elle bouge. Une sangsue essaiera souvent de te prendre à revers et de t'étrangler avec ses tentacules. Ça fout les jetons, tu peux me croire... Si t'as vraiment pas de bol et que tu tombes sur un groupe de sangsues, t'as intérêt à surveiller tes arrières, crois-moi. + + + OK, laisse tomber. + + + Si je vois la Pie, je te tiens au courant. + + + Tu le regretteras pas... Je vais me faire un plaisir de le plumer ! + + + Qu'est-ce que la Pie t'a fait, au juste ? + + + La fois dernière, il vient me voir et me dit qu'il peut pas récupérer son butin à cause d'un contrôleur. Il nous manquait un gars... Danila, notre éclaireur, avait suivi des sangsues jusqu'à leur nid. Alors, on a décidé de filer un coup de main à la Pie pour récupérer son butin et on l'a emmené chasser avec nous. Tout ce qu'il avait à faire, c'était de garder un œil sur la chimère à l'entrée du nid... + + + Et ensuite ? + + + Ensuite, cet enfoiré s'est cassé avec son butin et le nôtre. T'imagines la surprise quand la chimère s'est pointée ! Garmata a pas eu le temps de réagir... Du coup, au lieu de chasser, je me suis retrouvé à défendre mes gars. On a fini par blesser la chimère, mais elle a réussi à amocher Crabe avant de s'enfuir. Toute une semaine de préparations gâchée à cause de cette histoire ! + + + T'as la chasse dans le sang ! Prends ce trophée, tu l'as bien mérité ! Comme dit Trappeur, "Ta meilleure arme, c'est ton savoir-faire..." Au fait, tu vas à Yanov dans les prochains temps ? Ce serait cool si tu pouvais dire à Trappeur que la chimère est morte. Je vais rester sur le Skadovsk pour le moment, le temps que Crabe aille mieux. Tu viens avec nous ? + + + Oui. Allons-y ! + + + Non. Je vais rester ici encore un peu. + + + On a réussi ! Ce trophée est un petit cadeau de ma part... Ça aurait pu mieux se passer, mais bon... Comme dit Trappeur, "Qui a besoin de pièges quand on a de l'expérience ?" Au fait, tu vas à Yanov dans les prochains temps ? Ce serait cool si tu pouvais dire à Trappeur que la chimère est morte. Je vais rester sur le Skadovsk pour le moment, le temps que Crabe aille mieux. Tu viens avec nous ? + + + Garmata est mort... Cette chimère nous a coûté cher... Dis, t'irais pas à Yanov, des fois ? Il faudrait dire à Trappeur que la chimère est morte. Je vais rester sur le Skadovsk pour le moment, le temps que Crabe aille mieux. Tu viens ? + + + J'ai trouvé Danila. Il est mort, tué par Sismik. + + + Oh, merde ! Pourquoi c'est toujours les meilleurs qui partent en premier ? Et cet enfoiré de Sismik ! Danila... Il a jamais fait de mal à une mouche ! + + + Tu crois qu'Allegro revend des objets volés ? + + + Des objets volés ? Qu'est-ce qui te fait dire ça ? Ça fait un bail que je connais Allegro, je lui achète régulièrement des armes. Il vend du bon matos à des prix raisonnables... C'est la première fois que j'entends dire ça. Ce sont sûrement des concurrents jaloux qui font circuler ces rumeurs... + + + Je suis en train de monter une équipe pour aller à Pripyat. Tu veux venir avec nous ? + + + J'ai passé un accord avec les scientifiques et je dois m'y tenir. Et puis, j'ai pas vraiment envie d'y aller. Tu devrais en causer à Sokolov. Il me les casse depuis un moment, à dire qu'il a besoin d'aller à Pripyat, mais qu'il a les jetons de s'y rendre seul. Tu parles d'un soldat... + + + J'ai passé un accord avec les scientifiques et je dois m'y tenir. Et puis, j'ai pas vraiment envie d'y aller. Désolé... + + + Non, j'ai pas envie. La chasse, c'est ici que ça se passe. Tu sais mieux que quiconque combien de mutants traînent encore dans les parages... Un bon chasseur en aurait assez pour plusieurs vies ! + + + Ça te dirait de bosser pour les scientifiques ? + + + Qu'est-ce qu'il faut faire ? + + + Protéger leur bunker. + + + Non merci. Je suis un chasseur, mon boulot, c'est buter des mutants. Et les mutants menacent pas le bunker. Les gens, par contre, c'est une autre histoire. + + + Faire des relevés dans les anomalies. + + + Pourquoi pas ? On peut s'en charger. Je déclare officiellement la saison de chasse... terminée ! Ça nous changera... Tu sais, les frissons qui te courent dans le dos chaque fois que tu dois sortir... + + + Non, pas pour le moment. La chasse est encore ouverte... Et on doit se faire cette saleté de chimère. Hors de question de laisser ce mutant assoiffé de sang se promener dans la Zone et s'en prendre aux stalkers ! + + + Tout ce que je veux, c'est passer mes mains autour du cou de la Pie... Ça, ça me calmerait et ensuite, on pourrait parler boulot, tous les deux. + + + Pas pour l'instant. On a déjà assez à faire comme ça. Entre la chimère à éliminer et la Pie à trouver, on a pas vraiment le temps de s'attaquer à autre chose. + + + J'ai trouvé la Pie. Il est à Yanov et se fait appeler 'Flint'. + + + Cet enfoiré est toujours en vie ? Il va pas le rester longtemps... Tiens, prends ça et merci pour le tuyau ! J'ai hâte de revoir ce connard... 'Flint', c'est ça ? + + + Oui. Merci. + + + Eh, t'aurais pas vu la Pie, des fois ? Tu le connais ? Non ? Eh bien, si tu le vois, tu peux lui coller une balle entre les deux yeux de ma part ! Ou tu peux me dire où le trouver... Tu le regretteras pas ! + + + Tiens, salut ! + + + Attends ! On a trouvé la chimère et on a pas de temps à perdre ! Crabe est pas encore sur pied, Danila est toujours pas rentré et traquer la bête à deux, ce serait du suicide ! On a besoin d'un troisième homme. T'es un gars bien, tu nous as trouvé la Pie... Ça te dirait d'aller chasser cette saloperie avec nous ? + + + Attends ! On a trouvé la chimère et on a pas de temps à perdre. Crabe est pas encore sur pied et Danila... Eh ben... Enfin, traquer la bête à deux, ce serait du suicide ! On a besoin d'un troisième homme. T'as l'air d'un gars bien... Ça te dirait d'aller chasser cette saloperie avec nous ? + + + Avec plaisir ! + + + Comme disait Trappeur, "À la chasse, chasser, c'est que la moitié du boulot..." Enfin... À la fin d'une nuit de chasse, la chimère revient dans sa tanière vers trois heures du mat'. Peu de temps après, la bestiole pionce comme un bébé. C'est là qu'il faut qu'on attaque... Si tu veux nous accompagner, retrouve-nous au bar à trois heures du matin et on pourra y aller. + + + Je vais y réfléchir. + + + Bon, si tu te décides à venir, tu peux nous retrouver au bar vers trois heures du mat'. C'est à cette heure-là que la chimère rentre dans sa tanière pour pioncer. + + + Salut, comment va ? T'as l'air bien reposé. + + + Ah, cool. Le monde est petit, hein ? + + + Alors ? C'est l'heure d'aller buter de la chimère... + + + T'es un peu nerveux avant de partir à la chasse ? + + + Trappeur m'a demandé de vous filer un coup de main pour chasser cette chimère. + + + Je vois... Son intuition ne l'a pas trompé. On a enfin retrouvé cette saleté... Malheureusement, Crabe est pas encore sur pied et Danila est toujours pas rentré... Alors, on sera que trois. Mais si c'est Trappeur qui t'envoie, c'est que tu dois être un bon chasseur... À la fin d'une nuit de chasse, la chimère rentre dans sa tanière vers trois heures du mat'. Peu de temps après, la bestiole pionce comme un bébé. C'est là qu'il faut qu'on attaque... Si t'es prêt à nous accompagner, retrouve-nous au bar à trois heures du matin et on pourra y aller. + + + Tu me prends pour un idiot ? + + + Tu es un idiot. Et j'ai une leçon à te donner. + + + Peu importe... Le monde est petit et la Zone encore plus. On se reverra ! + + + Allez, dégage d'ici ! On se bat pas sur le Skadovsk ! + + + Ouais, c'est ça. + + + D'accord, j'ai fait une erreur. Mais t'as pas respecté les règles ! + + + C'est comme ça dans la Zone. Arrête de me baratiner ! + + + Il doit vraiment être con pour avoir perdu l'artefact comme ça. + + + Va pas chialer, non plus ! J'espère que tu te souviendras de la leçon. Pour t'aider à t'en rappeler, je t'offre une bière... Ça te remontera le moral ! + + + Je prends ce qu'on m'offre. + + + Non merci, je peux m'acheter ma bière moi-même. + + + Quoi ? Tu prends pour qui, là ?! Ta gueule, et pas un geste ! File-moi l'artefact ! Et tout de suite, espèce de débile ! + + + Connard... Garde-le, ton artefact ! J'espère que tu vas t'étouffer avec ! + + + Va te faire voir ! + + + Mon pote ! Écoute, j'ai entendu parler d'un artefact qui peut guérir les pires blessures... et j'en ai carrément besoin. Un ami à moi va bientôt passer l'arme à gauche à cause d'une maladie bizarre et les médocs font aucun effet... J'ai essayé de récupérer l'artefact, mais je suis tombé sur une anomalie gazeuse... Tu l'aurais pas trouvé, par hasard ? + + + Si c'est si important... Tiens ! + + + Merci, mon pote, je te dois une fière chandelle ! + + + Fais gaffe à toi ! + + + Oui, j'en ai un. Mais j'en ai besoin... + + + Oh, allez, quoi ! Mon pote... Il va crever, je te jure ! + + + Dans la Zone, c'est chacun pour soi ! Bonne chance... + + + Non, je ne l'ai pas trouvé. Bonne chance... + + + Cet artefact te sera d'aucune aide, tu peux me croire sur parole. + + + Si t'en as tellement besoin... Tiens, prends-le ! + + + Merci, mon pote, je te dois une fière chandelle ! + + + Fais gaffe à toi ! + + + On verra. + + + On a rien à se dire... + + + Pourquoi tu vis sur cette poubelle ? + + + C'est une arche ! Oublie pas... Tu t'en souviendras, si tu veux survivre, crois-moi ! Quand une Vague arrive, reste dans le coin ! Ici, t'as une chance de t'en tirer. Aucun mutant réussira à entrer. + + + Tu as parlé d'une Vague... + + + Ouais, la vague de mutants qui va débarquer et chasser les humains de la Zone ! Et les malheureux qui y survivront seront décimés par une émission gigantesque ! Toutes les créatures seront éliminées de la Zone... toutes sauf celles qui se seront préparées, bien sûr ! + + + Où tu l'as eu, ce chien ? + + + Elle, c'est Lassie. Une chienne adorable... Sans elle, je me serais fait bouffer dans mon sommeil il y a longtemps ! J'ai horreur de ces saletés de mutants ! Dès que tu fermes un œil, ils essaient de te choper avec leurs griffes, leurs crocs ou leurs tentacules... + + + J'ai besoin d'une Boussole. Tu saurais où je peux en trouver une ? + + + Ces conneries te protégeront pas des mutants qui sortent du sol et du plafond ! Tiens, prends ça et fous-moi la paix ! + + + Merci. + + + Qu'est-ce que tu peux me dire sur les hélicoptères qui se sont écrasés ? + + + Je peux te parler de l'un d'entre eux... Il s'est écrasé sur le plateau... L'endroit grouille de snorks. Je vais en flinguer quelques-uns de temps en temps... Pourquoi tu me regardes comme ça ? On peut pas se débarrasser de tous ces monstres en une seule fois ! + + + Comment faire pour atteindre le plateau ? + + + Ah, toi aussi, tu veux flinguer des snorks ? Cool... Je peux t'y emmener, si tu veux. + + + Allons-y ! + + + Une autre fois peut-être... + + + Un stalker. + + + Je vois. Et qu'est-ce que tu cherches ? + + + C'est pas tes oignons ! + + + Je vais t'y emmener. Mais va falloir attendre un peu. Il y a une émission. T'as pigé ? Une émission !! + + + J'étais dans leur tanière. + + + Ah ouais ? Y a rien à faire pour les calmer... Les mutants sont de plus en plus nombreux et un jour, ils passeront à l'attaque ! Tous ceux qui seront pas prêts à les recevoir pourront dire adieu à la Zone ! + + + Dis-moi, euh... tu n'aurais pas une Boussole, par hasard ? + + + Tu crois que ça te protégera des émissions ? Ah ! Prends-la et fous-moi le camp d'ici ! + + + Merci. + + + Qui es-tu ? + + + Je suis un stalker. On s'est déjà rencontré. + + + Je me rappelle pas... Bon, t'as besoin de quoi ? + + + Un stalker. Rien de plus. + + + Je vois. Tu viens te réfugier dans l'arche ? Fais comme chez toi ! + + + C'est pas tes oignons. + + + Ah, c'est toi. Qu'est-ce que tu veux ? + + + Tu n'aurais pas une Boussole à me donner, par hasard ? + + + Parle-moi des anomalies ! + + + Quand tu t'approches d'une anomalie, n'oublie pas que l'air va être brûlant ou rempli de gaz toxiques, ou alors le niveau de radiation sera très élevé. Tu peux aussi trouver des perturbations psi, mais je vais pas entrer dans les détails pour l'instant. Tout dépend de la nature de l'anomalie... qu'il s'agisse de chaleur, de gaz, d'électricité ou même de gravité, encore que j'espère que tu tomberas pas sur celles-là... Il y a aussi des anomalies mobiles, mais ça, c'est une autre histoire. + + + Parle-moi des anomalies calorifiques ! + + + Si tu vois des volutes de chaleur, comme sur du bitume par une chaude journée d'été, t'as affaire à une anomalie calorifique. Quand quelque chose ou quelqu'un y pénètre, c'est comme si les flammes de l'enfer se déchaînaient ! Au début, on croyait que c'était des poches de gaz naturel, mais on s'est vite rendu compte que c'était pas le cas... + + + Parle-moi des anomalies gazeuses ! + + + Leur nom vient des réactions chimiques complexes qu'elles engendrent. Ces réactions produisent un acide qui peut te ronger la peau et des gaz toxiques qui te liquéfient les poumons, tout ça en quelques secondes... Heureusement, ces anomalies sont faciles à repérer en plein air. Dans un tunnel sombre, par contre, c'est une autre histoire... + + + Parle-moi des anomalies électriques ! + + + C'est un type d'anomalie qui accumule une quantité inhabituelle d'électricité statique. Les stalkers se sont vite rendu compte que n'importe quel objet métallique permettait de s'en débarrasser : ils y jettent une vis ou un boulon et passent à travers avant qu'elle ne se reforme. Personnellement, je préfère les contourner... Elles se rechargent trop vite à mon goût. + + + Parle-moi des anomalies gravitationnelles ! + + + En général, elles sont immobiles. Quand des objets te semblent déformés, t'es face à une anomalie gravitationnelle. Et je te conseille de garder tes distances : les trois variétés connues se déclenchent immédiatement, dès que quelque chose entre en contact avec elles. Le "Tremplin" projette tous ce qui passe dedans loin dans les airs. Le "Vortex", c'est le contraire : il aspire les objets et les écrase avant d'expulser les morceaux qui restent quelques secondes plus tard. Le "Hachoir", quant à lui, soulève ses victimes, les fait tourbillonner et les taille en morceaux... Quelle que soit l'anomalie, c'est une fin peu enviable... + + + Parle-moi des anomalies mobiles ! + + + Personnellement, je suis tombé que sur une "Comète" et une "Tesla". La première, c'est une boule de feu d'un mètre de diamètre environ, mais je te garantis que tu sentiras la chaleur arriver bien avant de la voir... La seconde ressemble à une boule de foudre : c'est une anomalie sphérique et électrique. Les deux anomalies sont toujours en mouvement, mais elles suivent généralement un chemin défini. Un stalker attentif devrait pouvoir les contourner sans problème... s'il arrive à se concentrer le temps qu'il faut. + + + OK, laisse tomber. + + + Parle-moi de toi ! + + + On m'appelle pas Pilote pour rien. Je passe que par des routes sûres. Récupérer des artefacts et combattre des bandits, c'est pas vraiment mon truc... Mes talents sont différents et j'essaie d'en faire profiter les autres. Mais rien n'est gratuit dans ce monde. + + + Parle-moi des émissions ! + + + J'ai des cartes de la région entre Zaton et Jupiter. Tu veux jeter un coup d'œil ? + + + Fais voir... Bien, elles sont très détaillées. Dans notre boulot, un simple détail peut faire toute la différence entre la vie et la mort. Bon ! Ces cartes indiquent qu'il y a un chemin sûr entre le Skadovsk et Yanov. Si ça t'embête pas, je vais copier les données sur mon PDA. Du coup, je peux t'offrir une belle ristourne. + + + Besoin d'un guide pour t'aider à contourner les anomalies et te protéger des émissions ? Pilote, à ton service ! + + + T'as besoin d'un guide ? + + + Ravi de te voir ! Qu'est-ce que le bon vieux Pilote peut faire pour toi ? + + + Tu te remets en route ? + + + Bien le bonjour ! Tu peux pas rester en place, hein ? Je suis à ton service. + + + Salut. Si t'as besoin d'un guide, je suis ton homme ! Dès que l'émission sera passée... En attendant, on peut peut-être parler des anomalies, histoire de tuer le temps... + + + Je te servirai pas à grand-chose pour l'instant... On est en plein milieu d'une émission, là ! + + + Combien pour aller à la gare de Yanov ? + + + C'est pas la porte à côté... Je peux t'y emmener pour 3 000. + + + Ça me va ! Allons-y ! + + + Je n'ai pas assez d'argent. + + + Je ne veux pas partir tout de suite. + + + Avec tes cartes... ce sera seulement 1000. + + + Ça me va ! Allons-y ! + + + Je n'ai pas assez d'argent. + + + Je ne veux pas partir tout de suite. + + + C'est pas la porte à côté, alors ça te coûtera 3 000. Je serai prêt à partir dès que l'émission se sera calmée. + + + Avec tes cartes, ça te coûtera que 1 000. On a qu'à attendre que l'émission se calme et on pourra y aller. + + + Tu peux m'emmener à Pripyat ? + + + Non. À chacun sa spécialité. Tu vois Garry, là-bas ? Il devrait pouvoir t'aider. + + + Moi, non. Mais pour 6 000, je peux t'emmener à la gare de Yanov et m'arranger avec Garry. Lui, il pourra te conduire jusqu'à Pripyat. Qu'est-ce que t'en dis ? + + + Ça marche ! + + + Je n'ai pas autant sur moi. + + + Je ne veux pas partir tout de suite. + + + Moi, non. Mais pour 4 000 seulement, je peux t'emmener à la gare de Yanov et m'arranger avec Garry. Lui, il pourra te conduire jusqu'à Pripyat. Qu'est-ce que t'en dis ? + + + Ça marche ! + + + Je n'ai pas autant sur moi. + + + Je ne veux pas partir tout de suite. + + + Non. À chacun sa spécialité... Tu vois Garry, là-bas ? Il devrait pouvoir t'aider dès que l'émission se calmera un peu. + + + Moi, non. Mais pour 6 000, je peux t'emmener à la gare de Yanov et m'arranger avec Garry. Lui, il pourra te conduire jusqu'à Pripyat... dès que l'émission se sera calmée, bien sûr. + + + Moi, non. Mais pour 4 000, je peux t'emmener à la gare de Yanov et m'arranger avec Garry. Lui, il pourra te conduire jusqu'à Pripyat... dès que l'émission se sera calmée, bien sûr. + + + Tu peux m'emmener à Pripyat ? + + + Pripyat ? Non. J'ai assez de clients pour mes itinéraires actuels, alors j'ai pas besoin de proposer d'autres destinations ! Mais j'ai un pote qui bossait dans l'usine de Jupiter. Il m'a parlé de tunnels sous le complexe qui mèneraient à Pripyat. Il avait pas plus d'informations, mais il a dit qu'il allait chercher dans les bureaux de l'usine. + + + Non. Si tu veux y aller, tu ferais mieux de trouver les tunnels qui passent sous l'usine de Jupiter. + + + Combien pour aller jusqu'au Skadovsk ? + + + On va devoir faire un détour, alors ça fera 3 000. + + + Ça me va ! Allons-y ! + + + Je suis un peu à court en ce moment... + + + Je ne veux pas partir tout de suite. + + + Maintenant qu'on a trouvé un nouveau moyen de l'atteindre, ce sera seulement 1 000. + + + Ça me va ! Allons-y ! + + + Je suis un peu à court en ce moment... + + + Je ne veux pas partir tout de suite. + + + On va devoir faire un détour, alors ça te coûtera 3 000. Je serai prêt à partir dès que l'émission se calmera. + + + Maintenant qu'on a trouvé un nouveau moyen de l'atteindre, ça te coûtera que 1 000. On a qu'à attendre que l'émission se calme et on pourra y aller. + + + Où peux-tu m'emmener ? + + + À la gare de Yanov, pas loin de l'usine de Jupiter et après, je peux te ramener au Skadovsk. Je préfère connaître une seule route comme ma poche plutôt que de faire croire que j'en maîtrise plusieurs. + + + J'ai empêché les bandits d'acheter leurs armes. + + + Merci pour coup de main ! Quand je repense aux années 90 et aux gangsters avec leurs lance-roquettes... J'en ai des frissons dans le dos. Tiens, prends ça ! L'argent, ça peut toujours servir, hein ! + + + Je cherche le Faisan. On devait se retrouver ici. + + + Le Faisan t'a laissé un message. Il a dit qu'il allait sur les quais, près des grues et qu'il avait du nouveau au sujet des stalkers disparus. + + + Le Faisan est mort. Sismik les a tués, lui et les autres stalkers... Mais ce salopard a eu son compte, lui aussi. + + + Sismik ? Merde ! Cet enfoiré était juste sous notre nez depuis le début... Ça aurait pu être n'importe lequel d'entre nous... Si même le Faisan ne... Enfin... Merci ! T'as sauvé tout le camp ! Tiens ! + + + Sismik ?! Désolé, mon pote, mais j'y crois pas un seul instant ! Si encore t'avais des preuves... Pauvre Faisan. + + + Voilà le PDA de Sismik. Il prouve qu'il était impliqué dans cette affaire. + + + Merde ! Cet enfoiré était sous notre nez depuis le début... Ça aurait pu être n'importe lequel d'entre nous... Si même le Faisan ne... Enfin... Merci ! T'as sauvé tout le camp ! Tiens ! + + + Je vais t'aider à régler leur compte à ces bandits. + + + Super ! Va au poste des rangers, nos gars t'y attendront. Ils te fileront toutes les infos. + + + Tu connais bien Allegro ? Tu penses qu'il pourrait revendre des armes volées ? + + + Je le connais pas très bien, mais ça m'étonnerait. Les gars qui revendent des objets volés, ils prennent pas les commandes en avance, en général... + + + Je savais que je serais découvert un de ces jours. C'était qu'une question de temps... + + + Sismik ?! Tu veux bien m'expliquer ce qui se passe ? + + + Ça sert plus à rien de mentir. Tu sais que c'est moi qui ai tué le Faisan... Et j'ai aussi tué Danila et les autres stalkers. + + + Ok, j'ai compris. Assez parlé ! + + + T'as rien compris du tout... Personne me comprendra jamais... + + + Pourquoi as-tu fait ça ? + + + Je suis accro à l'hémoglobine... Je le souhaite pas à mon pire ennemi... Y a pas moyen de s'en défaire. Des fois, tu bois pas une goutte de sang pendant un mois sans problème et ça m'est arrivé à plusieurs reprises... Mais ensuite, y a comme une explosion en moi et je dois rattraper le temps, et le sang, perdus... + + + Comment as-tu pu garder le secret si longtemps ? + + + Quand je travaillais à la clinique, c'était facile de couvrir mes traces. Y avait toujours des poches de sang en rab. Mais dans la Zone, c'est différent... Je pensais que les conditions me forceraient à oublier cette maladie... J'avais tort. C'était pire qu'avant... J'arrivais à penser à rien d'autre. J'ai maquillé les meurtres en attaques de sangsues. J'ai choisi des cibles qui étaient déjà blessées. + + + Et pour Danila et le Faisan ? + + + Danila est venu me demander de l'aide après l'attaque des sangsues. Il était blessé. Quand il est parti à la chasse aux sangsues avec le Faisan, je me suis rendu compte que je pourrais pas tenir plus longtemps... Je voulais protéger mon secret, mais j'avais de moins en moins de volonté... C'est à ce moment-là que le Faisan a tout compris. Il a essayé de me tuer... Je suis désolé pour tous ces gens... Mais je sais que ça les ramènera pas. + + + Ok, j'ai compris. Assez parlé ! + + + T'as rien compris du tout... Personne me comprendra jamais. + + + J'écoute. + + + Salut ! Besoin d'aide ? + + + Bonjour ! + + + J'ai besoin d'un docteur. + + + Fais-moi voir ça... + + + Ok, ça devrait être bon. Tu peux y aller. + + + Salut ! Toi aussi, tu cherches des artefacts ? + + + Hé ! Tu pars à la chasse aux artefacts ? Il y en aura pour tout le monde, t'inquiète ! + + + Oh, salut ! Tu pars à la chasse aux artefacts, toi aussi ? + + + Salut. T'apportes cet artefact au Barbu ? + + + Peut-être bien que oui, peut-être bien que non. Pourquoi ? + + + J'en ai besoin. + + + Moi aussi... Mais je te l'échange contre une nouvelle pétoire. Et pas n'importe laquelle... + + + J'ai une bonne arme. Faisons affaire... + + + D'accord ! + + + Non, ça ne va pas être possible. + + + Eh bien, dégage, alors ! + + + OK. + + + Eh bien, pas vraiment. + + + Qu'est-ce que tu peux me dire au sujet d'Allegro ? + + + Oh, pas grand-chose... On fait pas affaire, lui et moi. Pendant qu'il passe la Zone au peigne fin à la recherche de l'arme ultime, moi, je vends des centaines de flingues ordinaires. C'est une vraie tête de mule, il refuse de traiter avec les crapules du coin. En gros, c'est un mauvais commerçant... Et c'est tout bon pour mes affaires... + + + Le Barbu m'a parlé d'un accord différent... + + + "Différent," mon cul ! Cet enfoiré de Barbu devrait pas ouvrir sa grande gueule comme ça ! Quelqu'un devrait lui rappeler qui c'est le patron par ici ! Écoute, y a un mec qui pas mal d'influence à Zaton, il se fait appeler Sultan. Va lui rendre une petite visite, il te dira quoi faire. + + + Je vais aller voir Sultan. + + + Rien à battre des sultans ! Je veux ma part maintenant ! + + + Euh... D'accord. Voilà ton argent... Mais oublie pas que le Barbu te raconte des salades ! + + + J'ai besoin d'infos. + + + Qu'est-ce que tu veux savoir ? + + + J'ai besoin de gaz toxique. On m'a dit que tu étais l'homme de la situation. + + + On t'a pas menti ! Je peux t'aider pour la modique somme de 2 000 billets. + + + Tiens ! + + + Bon alors, écoute-moi bien ! Un convoi militaire qui transportait du gaz n'est jamais arrivé à destination. Personne sait ce qui s'est passé, mais les bombonnes de gaz devraient toujours être à bord. C'est clair ? Ah ouais, il pourrait y avoir de vieux documents là-bas... Si tu les trouves, apporte-les-moi ! Ça pourrait rembourser ton investissement. + + + C'est trop cher pour moi. + + + C'est à toi de voir... + + + Où est-ce que je peux trouver un stalker qui se fait appeler la Pie ? + + + Je peux te donner un indice... si tu craches 1 000 billets. + + + Voilà ! + + + Tu le trouveras pas ici, mais mon petit doigt me dit qu'il pourrait être du côté de Jupiter, pas loin de la gare de Yanov. Oublie pas que quelqu'un qui a foutu le bordel quelque part a tendance à changer de nom quand il s'installe ailleurs... Il a sûrement changé d'allure aussi, au cas où quelqu'un viendrait le chercher... + + + Je cherche Accroc. Tu sais où je peux le trouver ? + + + Je peux te le dire pour la modique somme de 1 000 biftons. + + + Voilà ! + + + Accroc est un abruti et un rapace qui traîne avec de gens dangereux. Il a coupé les ponts avec nous, mais tu devrais pouvoir le trouver du côté de Jupiter. C'est le seul endroit où il peut aller. T'es pas le seul à le chercher... + + + Qu'est-ce que tu peux me dire sur les hélicoptères qui se sont écrasés ? + + + Hmm... Tout le monde ici sait où ils se sont écrasés. Y en a un qui s'est crashé sur le plateau au sud, le deuxième a atterri dans le marais et le troisième est accroché au sommet des pylônes du poste électrique. Lequel t'intéresse ? + + + Celui du plateau sud. + + + Celui du poste électrique. + + + Celui du marais. + + + Je ne veux plus parler des hélicoptères. + + + Passe à la caisse, tu me dois 200 billets ! + + + Voilà ! + + + Alors, cet hélico a atterri juste à côté d'un nid de snorks. Pour autant que je sache, certains militaires s'en sont tirés. Ils ont éliminé les mutants et sont descendus du plateau. Au fait, si tu comptes aller sur place, je peux te fourguer un bon fusil à pompe et des munitions pour t'aider à flinguer ces saletés. Le truc, c'est que personne, à part ce cinglé de Noah, ne sait comment s'y rendre... + + + C'est trop cher pour moi. + + + C'est à toi de voir ! + + + Je peux te le dire pour la modique somme de 200 biftons. + + + Voilà ! + + + Je peux te le dire pour la modique somme de 200 biftons. + + + Voilà ! + + + Rien pour l'instant. + + + Tu aurais du boulot pour moi ? + + + Alors... J'ai un petit boulot pour les scientifiques. Sinon, il faut qu'on récupère des infos sur le camp de mercenaires et puis, le marchand a toujours besoin de gardes du corps. T'as que l'embarras du choix, c'est pas le boulot qui manque par ici ! + + + Parle-moi du boulot pour les scientifiques ! + + + Il faut trouver trois détecteurs "Veles" et les apporter aux scientifiques dans leur bunker près de Jupiter. Une fois sur place, adresse-toi à Novikov, il veut les modifier apparemment... Quand les détecteurs seront rentables, on partagera l'argent, fifty-fifty. C'est clair ? Alors, vas-y ! C'est vraiment pas compliqué. + + + Ça marche ! + + + Peut-être une autre fois. + + + Parle-moi du camp des mercenaires ! + + + Y a des mercenaires qui ont débarqué à la station de traitement et je suis curieux de savoir ce qu'ils trament... Faudrait que tu infiltres leur camp et que tu récupères tout ce que tu peux sur leurs plans : des PDA, des papiers, tout ce que tu trouves. OK ? Alors, vas-y ! C'est un jeu d'enfant tant que tu restes discret. + + + Ça marche ! + + + Je ne peux pas pour l'instant. + + + Parle-moi du boulot de protection du marchand ! + + + Le marchand a besoin de gardes du corps pour le protéger pendant une négociation. T'auras pas grand-chose à faire, faudra juste que tu te tiennes à côté de lui pour donner un air "officiel" à la transaction. OK ? Le marchand t'attend au poste des rangers. Il te donnera tous les détails... + + + OK. + + + Attends ! + + + Une autre fois peut-être... + + + Alors... j'ai un boulot pour les scientifiques, et sinon, j'ai besoin de quelqu'un pour récupérer des infos sur le camp de mercenaires. À toi de voir... + + + Ben, j'ai un boulot pour les scientifiques ou alors le marchand a toujours besoin d'un garde du corps. Allez, c'est à toi de voir... + + + Ben, j'ai besoin de quelqu'un pour récupérer des infos sur le camp de mercenaires et sinon, le marchand cherche toujours un garde du corps. À toi de voir... + + + Un petit boulot simple pour les scientifiques. C'est vraiment du gâteau : va chercher ci, rapporte-moi ça... + + + Le marchand a besoin d'un garde du corps pour une transaction. Ce sera pas bien compliqué. + + + Je n'ai plus de boulot à proposer. + + + Ça pourrait t'intéresser. + + + Qu'est-ce que t'as récupéré ? + + + Le PDA de Noah. + + + Le cinglé sur sa péniche ? Je t'en donne 1 000 billets. + + + Ça marche. + + + Non merci. Je pense que je vais le garder pour l'instant. + + + Attention à ce que ça te brûle pas les doigts... + + + Le PDA d'un mercenaire qui se fait appeler le Crochet. Je l'ai trouvé dans la station de traitement des déchets. + + + Je t'en donne 1 000 billets. + + + Ça marche. + + + Très intéressant... Du beau boulot, stalker ! + + + Le PDA d'un mercenaire qui se fait appeler le Pic. Je l'ai trouvé dans la station de traitement des déchets. + + + Je t'en donne 1 000 billets. + + + Ça marche. + + + Un PDA avec des infos sur les planques des combattants du Monolithe. + + + Je t'en donne 5 000 billets. + + + Ça marche. + + + Le PDA d'un homme en relation avec le client des mercenaires. + + + Je t'en donne 4 000 billets. + + + Ça marche. + + + Le PDA de l'un des fondateurs du Devoir, le général Tachenko. + + + Je suis prêt à payer plus pour celui-là. Je t'en donne 2 500 billets. + + + Ça marche. + + + Le PDA d'un mercenaire. + + + Je t'en donne 1 000 billets. + + + Ça marche. + + + Le PDA de Morgan. + + + Des infos sur le marchand du Devoir qui vend des armes à tout le monde... Ça me servira forcément... Je t'en donne 4 000. + + + Ça marche. + + + Un message de la planque du groupe de Strelok, adressé au Spectre. + + + Je t'en donne 500 billets. + + + Ça marche. + + + Un message de la planque du groupe de Strelok, adressé à Strelok. + + + Je t'en donne 500 billets. + + + Ça marche. + + + Un message de la planque du groupe de Strelok, adressé aux Crocs. + + + Je t'en donne 500 billets. + + + Ça marche. + + + Des documents de l'usine de Jupiter, un dossier contenant l'ordre d'évacuation générale. + + + Je t'en donne 750 billets. + + + Ça marche. + + + Des documents de l'usine de Jupiter, une page de bloc-notes. + + + Je t'en donne 750 billets. + + + Ça marche. + + + Des documents de l'usine de Jupiter, un planning de livraison. + + + Je t'en donne 750 billets. + + + Ça marche. + + + Des documents de l'usine de Jupiter, l'ordre écrit de ne transporter l'objet 62 que par le souterrain. + + + Je t'en donne 750 billets. + + + Ça marche. + + + Non. Si Sultan est dans le coup, je préfère garder mes distances. + + + Voyons voir... Oui, ça m'intéresse. Je peux te l'acheter ? + + + Oui, je n'en ai pas besoin. + + + Un ordinateur du camp des mercenaires de la station de traitement des déchets. + + + Je t'en offre 2 000 billets. + + + Ça marche. + + + Hum... Tu devrais montrer ça au Barbu ou aux scientifiques. La marchandise louche, ça m'intéresse pas... Je tiens pas à tomber malade à cause des radiations. + + + Je toucherai pas à ce truc... J'aime pas prendre de risques inutiles... Qui sait si un champ d'anomalies va pas se former autour de ce machin ? Tu devrais l'apporter aux scientifiques pour qu'ils y jettent un coup d'œil. + + + Et moi, j'ai une ogive nucléaire dans mon placard de cuisine ! Tu devrais en parler aux scientifiques, ils adorent ce genre de truc. + + + Le PDA d'Accroc. + + + Voyons voir... Hmm... Il contient rien de spécial. T'as sûrement déjà pris tous les trucs intéressants... Je t'en offre 200 billets. + + + Je suis d'accord. + + + Le PDA de l'un des hommes de Sultan. + + + Intéressant... Ça pourrait servir. Je t'en offre 1000 billets. + + + Ça me va. + + + Le module de mémoire d'un drone. + + + Une trouvaille intéressante... Mais elle fera pas de toi un milliardaire... Qui sait si je serai le premier à lire les infos qu'elle contient ? Je t'en donne 500 billets. + + + Marché conclu. + + + Rien pour l'instant. + + + À propos de ces détecteurs... + + + Ouais ? + + + Où est-ce que je peux les trouver ? + + + Je sais pas, moi ! Débrouille-toi ! + + + J'ai les détecteurs. + + + Alors, qu'est-ce que tu fais encore ici ? Apporte-les à Novikov dans le bunker des scientifiques près de Jupiter ! + + + J'ai apporté les détecteurs à Novikov. + + + Cool ! Il reste plus qu'à attendre qu'il les modifie. Novikov m'a promis qu'il enverrait un homme de confiance pour nous les rapporter dès qu'il aura fini. + + + On a un problème... Notre petit marché est tombé à l'eau. Novikov a fait un boulot formidable avec ces détecteurs : il a augmenté leur portée, leur sensibilité et tout un tas de trucs... Avec un détecteur pareil, tu peux battre tous les autres chasseurs d'artefacts à plate couture ! J'ai passé un accord avec Barbu pour que les stalkers qu'il embauche utilisent ce nouveau matos. + + + Et donc ? + + + Notre marché, c'était de partager le butin équitablement, mais les stalkers refusent de nous filer notre part du gâteau. Il faut que t'ailles parler au Barbu pour le convaincre de respecter sa part du marché... Allez, toi aussi, tu veux ta part du butin, non ? + + + J'ai besoin de ton nouveau détecteur. + + + Ha ! Et moi, j'ai besoin d'une arme lourde. Si t'as une arme de qualité en rab, on peut faire un échange. + + + Ça marche. + + + Non, merci. + + + J'ai besoin de ton nouveau détecteur. + + + C'est une menace ? Moi aussi, j'en ai besoin... + + + Tu me comprends pas. Tu as le dernier. J'ai pas eu trop de mal à me débarrasser des autres propriétaires... + + + Quoi ? Tu t'es... débarrassé d'eux ? Tiens, prends-le et laisse-moi tranquille ! + + + Et si t'allais te faire mettre ? + + + C'est gentil, mais je vais passer. Je vais te demander une dernière fois de me donner ce détecteur. + + + Et moi, je te dis poliment d'aller te faire mettre ! + + + Stalker, tu veux te faire de l'argent ? + + + Qu'est-ce qu'il faut que je fasse ? + + + Eh bien, j'avais caché du butin dans une vieille Zaporozhets. Mais un tremblement de terre a enseveli la bagnole... J'ai vérifié et on dirait qu'on peut toujours y accéder... mais y a des mutants qui se sont installés dans le coin, des snorks. Crois-le si tu veux, j'ai pas peur des contrôleurs, mais ces saletés de snorks me foutent vraiment les jetons. Si t'arrives à récupérer le coffre avec un cadenas, on partagera le butin, toi et moi. + + + Ça marche. + + + Merci, stalker. + + + C'est ton coffre ? + + + Ouais, c'est bien ça ! T'as assuré ! + + + Une autre fois peut-être... + + + Dommage... + + + Non, j'ai trop à faire pour l'instant. + + + OK, comme tu voudras. + + + Alors ? Des nouvelles ? + + + Qu'est-ce que tu veux ? Tu vois pas que je suis occupé ? + + + Hé, c'est mon flingue ! Où tu l'as eu, espèce de sale voleur ? On me l'a piqué l'autre jour ! + + + De quoi tu parles ? Je viens de l'acheter ! + + + Je ne sais ni où ni comment tu l'as trouvé, mais c'est le flingue qu'on m'a volé ! Alors si tu veux pas que je me mette en colère, rends-moi mon arme et on part chacun de notre côté... + + + D'accord, prends-le ! Je veux pas d'ennuis, moi ! + + + Donne-le-moi ! + + + Cette arme m'appartient ! + + + Ah ouais ? Je te préviens, j'ai le bras long ! Je connais tout le monde, ici ! Tu crois que tu vas survivre longtemps dans la Zone avec la réputation que je vais te faire ? Qu'est-ce que tu penses de ça, hein ? Et espère pas non plus recevoir de l'aide des gens d'ici, mon pote ! Tu t'es mis dans la merde tout seul ! + + + Fous-moi le camp ! + + + Tu es sûr que c'est ton arme ? + + + Évidemment que je suis sûr ! T'en as vu beaucoup, des flingues comme ça dans la Zone, toi ? Y a pas de doute, c'est mon arme ! + + + Tu te trompes. Laisse-moi tranquille et tout se passera bien ! + + + Quoi ? Moi, je me trompe ? Fais gaffe à ce que tu dis, connard ! Si tu fous le bordel ici, tout le monde se rangera de mon côté ! Rends-moi ce flingue et on en parle plus... Je vais même être sympa et je dirai à personne que tu me l'as volé. + + + Quoi ?! Tu as pensé au fait qu'il me faudrait à peine un quart de seconde pour t'en mettre une entre les yeux avec ce flingue ? + + + OK, relax ! On s'est un peu énervés, mais je suis calme, maintenant. Y a pas de raison d'en arriver là ! J'ai dû faire une erreur, c'est tout. + + + À propos du coffre... + + + Tu l'as trouvé ? + + + J'y travaille. + + + J'ai décidé d'arrêter de chercher. + + + Dommage... + + + Fais-moi voir ça... + + + Bien sûr ! Un instant... + + + J'ai décidé de garder le coffre. + + + Espèce de... T'en fais pas, j'oublierai pas ton sale coup ! + + + Et voilà ! + + + Ok, et si on partageait ce butin ? + + + Ça marche ! + + + Voyons ce qu'on a là-dedans... Mon bon vieux Fora. Il y a longtemps, mon oncle l'a modifié lui-même. C'est un peu comme un bijou de famille... Je vais le garder. + + + Non, donne-le-moi ! + + + Euh, d'accord... + + + Alors... passons à la suite ! + + + Non, t'en as déjà pris assez. + + + Alors... passons à la suite ! + + + Bon, vas-y, prends-le. Qu'est-ce qu'il y a d'autre ? + + + Alors... Voyons voir... Un médikit de très bonne qualité. Avec ça, on peut s'en prendre à un ours ou même un manipulateur. Ça, c'est pour moi... + + + Moi, j'aurais bien besoin d'un médikit, moi ! + + + Hmm... OK. + + + Passons à la suite ! + + + Non, t'en as déjà pris assez comme ça. + + + Passons à la suite ! + + + Tu peux garder ça. Qu'est-ce qu'il y a d'autre ? + + + Alors... Ouah ! Ça m'étonnerait que t'aies déjà eu un flingue comme celui-là entre les mains... Un Akm-74/2U modifié ! J'avais donné une tonne de kits de premiers secours à un type du Devoir pour mettre la main sur ce petit bijou. C'était à l'époque où la Liberté avait écrasé une de leurs unités et qu'ils étaient tombés à court de médocs. Ce flingue m'a sauvé la vie trois fois, depuis... Je le garde, c'est clair ! + + + Peut-être que moi, je peux l'avoir ? + + + Hmm... Ça me fait vraiment mal au cœur... Mais j'ai qu'une parole. Tiens ! + + + Passons à la suite ! + + + Non, t'en as déjà pris assez comme ça. + + + Passons à la suite ! + + + D'accord, tu peux garder ça. Y a quoi d'autre ? + + + Oh... Ça, c'est un vrai trésor. Cet artefact vaut son pesant d'or ! Et je l'ai récupéré moi-même dans une anomalie... Je vais pas te mentir, j'ai fait dans mon froc plus d'une fois ! C'est mon trophée, gagné à la sueur de mon front ! + + + Je crois que j'en ai plus besoin que toi. + + + Sérieusement ? Tu me tues, mec ! C'est bon, prends-le... T'iras pas dire que je suis pas généreux, hein ! + + + Passons à la suite ! + + + Tu en as déjà pris assez comme ça. + + + Passons à la suite ! + + + Garde ça ! Il y a quoi d'autre ? + + + Et enfin... Un superbe casque fait main ! Il y a quelque temps, un nouveau stalker a débarqué du Cordon, c'était un sacré bricoleur ! Il nous a fait un paquet de trucs géniaux avant de claquer... dont ce casque. Il est unique en son genre ! Je le garde. + + + Bon, c'est quand même moi qui ai risqué ma vie en affrontant cette horde de snorks ! Je mérite d'avoir ce casque ! + + + Eh bien... D'accord. Fais-en bon usage ! + + + Passons à la suite ! + + + T'as déjà récupéré assez de trucs, tu crois pas ? Faut bien que je garder un truc ou deux ! + + + Passons à la suite ! + + + Ok, garde donc ça ! + + + Ça y est, mon pote, c'est tout mon butin. + + + Bon, eh bien, à plus tard alors ! + + + C'est tout. Mais je peux pas te laisser partir les mains vides... Tiens, prends mon pistolet ! + + + Bonne chance ! + + + C'est quoi, ton boulot ? + + + Je représente la loi et l'ordre. Avant, j'étais inspecteur dans la police, mais ici, je suis un peu le sheriff local. Je suis arrivé avec le Barbu et il a décidé de s'installer ici. Pourquoi se casser la tête à aller plus loin ? Personne sait comment se rendre à Pripyat, de toute façon. Il y a assez d'artefacts pour tout le monde dans le coin, alors on est restés. + + + Qui je pourrais recruter pour protéger les scientifiques ? + + + On a quelques gars sérieux... L'équipe de Spartacus, par exemple. De vrais pros, on peut compter sur eux. Y en a pas mal qui bossaient dans la police avant. S'ils sont disponibles, tu trouveras pas mieux ! + + + Il y a pas si longtemps, j'aurais pu te donner quelques noms, mais là, j'ai plus personne. Et ça va intéresser aucun des stalkers du coin. + + + Qui pourrais-je recruter pour faire des relevés pour les scientifiques ? + + + Je connais un groupe de stalkers... Gonta est à leur tête. Essaie de lui en toucher deux mots, ça pourrait peut-être l'intéresser... Ça les changera de la chasse aux mutants. + + + Si Gonta et ses gars étaient dans le coin, je t'enverrais leur parler, mais ils sont pas là... J'ai personne d'autre en tête, désolé. + + + Tu as déjà acheté des armes à Allegro ? S'il revendait des objets volés, tu le saurais ? + + + Tu crois qu'il serait assez fourbe pour faire un truc pareil dans mon dos ? Non, c'est impossible ! C'est pas le genre d'Allegro, je le saurais ! + + + Je cherche Accroc. Tu sais où je peux le trouver ? + + + Accroc ? Ouais, je le connais. Un vrai crétin, celui-là... Y a des gars qui l'ont aperçu sur les quais, près des grues, l'autre jour. Il doit traîner par là-bas. Tu devrais aller y jeter un coup d'œil. + + + Bonjour, stalker. Ça te dirait de te faire de l'argent de poche tout en aidant notre camp ? + + + Bonjour, stalker. T'es encore ici ? À ce rythme-là, les sangsues nous auront bientôt tous éliminés... + + + On parlera plus tard. J'ai autre chose à faire. + + + Quel genre de boulot peux-tu me proposer ? + + + Alors voilà : plusieurs stalkers ont disparu. Personne ne sait où ils ont bien pu passer, mais on a trouvé un corps l'autre jour... Il ne présentait aucun signe de violence, mais on l'avait complètement vidé de son sang. Sismik a examiné le cadavre, il pourrait t'en dire plus... Y a pas de doute : c'est un coup de ces saletés de sangsues ! J'en ai parlé à Danila, le chasseur, et il est parti à la recherche de leur nid. Mais je l'ai pas revu depuis... + + + Qu'est-ce que je dois faire ? + + + Il faut que tu trouves le nid et Danila. Je vais pas te mentir, c'est une mission risquée, mais je paierai en conséquence. Ça t'intéresse ? + + + Oui. + + + Bon, j'ai trouvé deux endroits où on devrait se rendre. J'ai chargé les coordonnées du premier sur ton PDA. J'ai quelques trucs à faire, mais je me chargerai du deuxième. Je te dirai si j'y trouve quelque chose. + + + Ça marche ! + + + J'ai d'autres choses à faire. + + + Reviens me voir si tu changes d'avis ! + + + Ça ne m'intéresse pas. + + + Toujours la même chose... Tant qu'il y aura des nids de sangsues, personne ne sera en sécurité... Et on a toujours pas revu Danila, le chasseur. Tu veux bien nous aider ? + + + Le Faisan m'a dit que tu avais vu le cadavre d'un des stalkers disparus. Tu crois qu'il a été tué par une sangsue ? + + + Effectivement, je l'ai vu... Celui-là et tous les autres... Aucune autre créature n'est capable de drainer un corps humain de tout son sang jusqu'à la dernière goutte. Tout indique que c'est l'œuvre des sangsues... Quelle autre conclusion je peux bien en tirer ? + + + Parle-moi de toi ! + + + Je suis un médecin. Un neurochirurgien pour être précis. Qu'est-ce que tu veux que je te dise ? Je peux exciser un hypothalamus avec une précision inégalée, mais personne dans la Zone ne m'a encore demandé de faire ce genre d'intervention. Ici, je suis juste un toubib parmi tant d'autres. + + + J'écoute. + + + J'aurais besoin de décrypter une boîte noire... + + + Eh bien... C'est pas vraiment ma spécialité. Tous ces diagrammes et ces algorithmes... C'est pas ma tasse de thé. Pose-moi des questions sur les lois de la physique, je pourrai te répondre... Une équation par ci, une loi par là, et le tour est joué. + + + Tu crois qu'Allegro revend des objets volés ? + + + Ouh là... Allegro, des objets volés ? J'y crois pas une seule seconde ! Quand je montais mon atelier, Allegro est venu me filer un coup de main. Et il m'a pas demandé un rond en échange... Peu importe ce que peuvent dire les autres : Allegro, c'est un type bien. + + + Tu n'aurais pas du boulot pour moi ? + + + Oh, bien sûr ! J'ai besoin d'outils, mais j'ai vraiment pas le temps d'en chercher moi-même. Si tu m'apportes des instruments qui peuvent m'être utiles, je te montrerai ce que c'est qu'une vraie amélioration. En plus, tu pourras te faire un peu d'argent. + + + OK, je garderai l'œil ouvert. + + + On verra ça plus tard. + + + Oui, bien sûr. J'ai toujours besoin d'outils... Ça pourrait te rapporter un peu de fric de m'en trouver... + + + J'aurais besoin de débloquer un module de mémoire... + + + Là, je peux pas t'aider, désolé. Tous ces composants électroniques, ces ordinateurs, c'est vraiment pas mon truc. Il vaudrait mieux demander à quelqu'un de plus jeune... Même les biberons sont électroniques, de nos jours ! + + + Qui pourrait forcer un conteneur en acier ? + + + Je peux te faire ça les doigts dans le nez ! Allez, je te fais un prix d'ami : 500 billets. + + + Tiens ! + + + Bon, alors... On soulève ça, on pousse ça... Et hop ! C'est fait ! On a pas encore inventé une boîte que je puisse pas ouvrir avec un marteau et un bon pied-de-biche ! + + + Je n'ai pas autant sur moi. + + + Reviens me voir quand t'auras assez ! Moi, je bouge pas d'ici ! + + + Je vais y réfléchir. + + + J'ai apporté à boire. Tu veux un verre ? + + + Non merci, j'ai décroché, mon pote ! Quand j'ai vu l'objet 62, je me suis dit : "Ça y est, j'ai des hallucinations"... L'alcool, ça te fout les neurones en l'air. Ça fait pas partie d'une alimentation équilibrée. Et si j'étais pas là, qui te filerait des munitions pour ton fusil Gauss ? + + + J'ai une autre bouteille pour toi. + + + J'en ai une troisième, si jamais t'en as besoin... + + + Je t'apporte des outils. + + + Cool ! Qu'est-ce que t'as trouvé ? + + + Des outils rudimentaires. + + + Cool ! Mais il me faut encore des outils de précision et de calibrage. + + + Des outils de précision. + + + Génial ! Il me manque juste les outils rudimentaires et des outils de calibrage. + + + Des outils de calibrage. + + + Génial ! Il me manque juste des outils rudimentaires et des outils de précision. + + + Rien pour l'instant. + + + Super ! Il me manque plus que des outils de calibrage. + + + Super ! Il me manque plus que des outils de précision. + + + Super ! Il me manque plus que des outils rudimentaires. + + + Excellent ! Bien joué ! C'est quoi, ton secret ? Maintenant, j'ai tous les outils qu'il me faut ! Tu vas voir, je vais te faire une mitrailleuse avec des briquets ! Ha ha ! + + + J'ai récupéré les plans et la documentation de l'objet 62. + + + Trop fort ! Je savais bien que ces enfoirés n'auraient pas le temps de tout détruire. Alors, voyons voir ça... Hmm... C'est donc ça que ces salauds préparent ? Bien ! J'ai besoin de quelques heures pour régler tout ça ! Laisse-moi le fusil Gauss, je vais essayer de le réparer. Attends ici, je te le rapporte dans une minute ! + + + J'ai besoin de batteries pour mon fusil Gauss. + + + Je te fais un prix d'ami : 2 000 biftons. + + + Et voilà ! + + + Je vais y réfléchir. + + + Je suis un peu à court en ce moment... + + + Tu as fini de bosser sur le fusil Gauss ? + + + C'était du gâteau ! Je t'ai nettoyé le système d'alimentation. S'il refait des siennes, rapporte-le-moi et je t'arrangerai ça. + + + J'ai pas encore terminé. J'adore travailler sur ces joujoux... + + + J'ai une arme de modèle inconnu. + + + Comment ça, inconnu ? Fais-moi voir ça... + + + Tiens... Tu as déjà vu ce genre de chose ? + + + Ah, c'est toi... C'était terrible, non ? J'ai rêvé que tu m'avais rapporté un truc du passé... Encore bu que j'étais pas heureux... + + + Tu n'aurais pas rêvé de cette arme, par hasard ? + + + Ouah... C'était peut-être pas un rêve, après tout... C'est un fusil Gauss, ou "Objet 62" si tu veux utiliser l'appellation officielle. Eh ben... À l'époque, je bossais dans l'usine de Jupiter... Je concevais des armes "basées sur le principe d'accélération des projectiles via un champ électromagnétique," si ma mémoire est bonne. Tu vois ces bobines ? C'est moi qui les ai faites... Dommage qu'ils aient annulé le projet en 2004... On a jamais pu trouver une source d'énergie assez compacte. + + + Ce fusil a déjà été utilisé. Qu'est-ce qui a bien pu changer ? + + + Va savoir... Honnêtement, j'essaierais même pas de mettre un tournevis dans la batterie. Le système d'alimentation a aussi été endommagé. Si seulement on avait les plans... L'atelier de test où je bossais avait toute la documentation... Peut-être que les plans et la documentation du fusil Gauss y sont toujours... Il se trouve que j'ai toujours une carte d'accès de l'atelier... + + + Tu pourrais me donner la carte d'accès ? + + + Eh bien... Oui, je suppose. Mais essaie de pas la perdre, hein ! Si tu me rapportes les documents, je pourrai peut-être réparer ce fusil. + + + Je te rapporte ta carte d'accès. + + + Merci... Ça me rappelle le bon vieux temps... + + + Alors... Tu... euh... tu peux m'apporter toutes tes armes cassées, tes combinaisons trouées... Je suis pas aussi bon quand je suis à jeun, mais je peux toujours essayer... + + + Où t'étais passé ? Je commençais à m'inquiéter, moi... Je demandais à tout le monde : "Il est où, le stalker ?"... Enfin... Santé, hein ? + + + Salut ! Ça fait plaisir de te voir ! Fais comme chez toi... Tu m'apportes quelque chose à réparer ou un truc à boire ? + + + Eh ! Génial ! Mes mains tremblent pas, mais ma tête me dit : "J'en veux encore !" Remets-en une tournée, petit ! + + + Tu peux y aller, hein ! Vas-y, ouvre une autre bouteille ! Buvons à notre cause commune ! Ah... Sans déconner, la vodka fait ressortir mon génie mécanique ! + + + Si seulement le Joker était ici... On trinquerait à la mémoire de Barge tous les deux... Paix à son âme... C'était un type bien, un vrai roc. + + + Si seulement Barge était ici... On trinquerait à la mémoire du Joker tous les deux... Paix à son âme... C'était un type bien, on pouvait compter sur lui. Il avait qu'une parole. + + + Ohh... Barge... Joker... Comment on en est arrivé là ? Ça n'en finira donc jamais... + + + Hmm ? Qu'est-ce que c'est que ça ? Je m'occuperai des pistolets-mitrailleurs demain... T'en fais pas, ça va aller ! J'ai une bonne bouteille qui m'attend... + + + Ce numéro soixante-deux... J'aimerais bien jeter un coup d'œil aux plans des circuits... + + + Sage décision ! C'est important de garder son flingue en bon état ! Et si t'as une ou deux bouteilles, je peux même ajouter des tas d'améliorations ! Tu veux un parachute sur ton fusil à pompe ? Ha ha ! Je peux t'en installer un ! + + + Regarde-moi ça ! Ils ont mis un artefact électromagnétique dans la batterie ! Ha ! Je savais bien qu'ils avaient fait joujou avec une anomalie bizarre ! Sur le papier, c'est évident ! Voyons voir si je peux y arriver, moi aussi... + + + T'as besoin que je te bricole un truc ? + + + C'est du chinois... Ça fait un bail que j'ai pas lu de documents techniques... + + + Je suis arrivé à Zaton avec deux potes, Barge et le Joker... Des jeunes cons, mais ils avaient la niaque ! Ils voulaient mettre la main sur une tonne d'artefacts, crevaient d'envie d'être les premiers, les plus rapides... Je les ai regardés dans les yeux et j'ai pas aimé ce que j'y ai vu : le butin, c'est bien, mais ça vaut pas le coup de se jeter la tête la première dans la gueule d'un mutant. + + + Qu'est-ce qui s'est passé ? + + + Eh bien... On passait une soirée tranquille, on buvait un coup et on a commencé à s'engueuler pour savoir ce qu'on allait faire : est-ce qu'on allait rester ou partir, et si on partait, pour aller où ? Personne voulait entendre raison ou écouter les arguments des autres. La discussion a très mal fini et chacun est parti de son côté, moi y compris. Je leur ai dit qu'ils connaissaient encore rien à la vie... et d'autres trucs débiles. Si seulement je pouvais les revoir, je m'excuserais pour toutes ces conneries... On traînerait ensemble et on pourrait discuter du bon vieux temps... + + + Je peux transmettre tes excuses à la Barge si je le vois. + + + Ce serait sympa. + + + Je peux transmettre tes excuses à tes potes si je les vois. + + + Ce serait sympa. + + + Je peux transmettre tes excuses au Joker si je le vois. + + + Ce serait sympa. + + + J'ai trouvé ce PDA. Tu peux y jeter un coup d'œil si tu veux. + + + J'ai l'air d'avoir besoin d'un PDA ? À qui il appartient ? + + + Barge est mort ? Oh non ! J'arrive pas à le croire ! C'était un vrai dur... Oh, Barge... Paix à ton âme... J'espère qu'il est rien arrivé au Joker... + + + Barge est mort ? Oh non ! J'arrive pas à le croire ! C'était un vrai dur... Oh, Barge... et le Joker aussi... Reposez en paix, les enfants... Pourquoi... mais comment on en est arrivés là ? + + + Ils sont morts ? Oh non ! J'arrive pas à le croire ! Barge était un vrai dur... Et le Joker... Plus jamais je rigolerai de tes blagues... Reposez en paix, les enfants... Pourquoi... mais comment on en est arrivés là ? + + + Tu peux répondre à quelques questions ? + + + Bien sûr ! + + + Quand est-ce que ma commande sera prête ? + + + Ça dépend de la complexité de la commande... En général, ça prend une journée, parfois moins. + + + Parle-moi de toi ! + + + Y a pas grand-chose à dire... J'ai eu de bons et de mauvais moments, comme tout le monde. Je suis tombé sur quelques anomalies, j'ai été pris en otage par des bandits... J'étais encore un gamin quand je suis arrivé dans la Zone... C'était il y a bien longtemps. J'ai commencé comme coursier... Sérum antiradiations, munitions perforantes, tout le tintouin... Ensuite, j'ai bossé pour Sidorovich... pour le remercier de m'avoir sauvé la peau. Ça m'a permis de me faire des contacts et, quand j'ai fini de rembourser ma dette, je me suis mis à mon compte pour livrer des commandes exclusives. Depuis, j'ai réussi à éviter pas mal de soucis, mais j'ai l'impression que ma chance est en train de tourner. D'un autre côté, j'ai plus vraiment envie de me casser le cul pour gagner des cacahuètes... + + + Je vois. Merci. + + + Content de t'avoir aidé ! + + + Tu m'as vendu une arme volée ! + + + De quoi tu parles ? Je revends pas d'objets volés, moi ! Je suis un marchand honnête. Si tu me crois pas, demande à n'importe qui dans la base, ils te diront que je suis un mec sur qui on peut compter ! + + + Je suis tombé sur un stalker qui m'a dit que cette arme lui appartenait. + + + Et c'était quoi, son nom ? + + + Accroc. + + + Qu'est-ce que ça peut te faire ? + + + C'est important. Tu t'es fait mener en bateau, stalker. + + + C'est ce qu'on va voir. + + + Tu t'es fait mener en bateau, stalker. + + + Je viens chercher ma commande. + + + Voici ton Steppe Eagle. Ça a été plus compliqué que je pensais. Un soi-disant expert en pistolets était très intéressé, mais j'ai réussi à lui reprendre juste à temps. Regarde un peu : c'est un flingue fait main, tous les composants sont ajustés avec une précision incroyable. Tu t'es jamais demandé à quoi un pistolet de sniper ressemblerait ? C'est la réponse à ta question. Tu me dois 2 800 billets supplémentaires. + + + Et voilà ! + + + Tiens ! C'est un plaisir de faire affaire avec toi. + + + Je n'ai pas autant sur moi. + + + Bon, je vais te le mettre de côté. J'espère pour toi que tu trouveras l'argent rapidement. + + + Je n'ai pas envie de l'acheter. + + + Si tu refuses d'acheter une de tes commandes, je pourrai plus te faire confiance... Je devrai ajouter un supplément et te demander un plus gros acompte. + + + Tant pis, je ne veux plus de cette commande. + + + Ok, comme tu voudras. + + + Je vais y réfléchir. + + + Pas de problème, c'est toi qui vois ! Je te mets le flingue de côté pour l'instant. + + + Voici ton Steppe Eagle à ultra-haute précision. Tu me dois 2 800 billets supplémentaires. + + + Admire donc ce petit bijou ! Je te garantis que ce pistolet est unique en son genre : cette édition très limitée a été créée, sur commande, pour une unité des forces spéciales. Ça n'a pas été facile de mettre la main sur un tel flingue, j'ai même dû contacter un de mes associés à l'étranger. Ce pistolet dispose d'un chargeur à grande capacité, d'un canon en acier renforcé et d'une culasse à base de polymères ultra-résistants. Tu me files les 2 800 billets manquants et il est à toi ! + + + Voilà ton pistolet Alpine avec chargeur agrandi. Tu me donnes les 2 800 billets manquants et ce petit bijou est à toi ! + + + Vise un peu ça : le Mars. Ce pistolet appartenait à un mercenaire du nom de Doberman. C'est un pistolet compact de gros calibre, équipé d'une culasse allégée. Doberman était une belle ordure, mais il s'y connaissait en armes. On raconte que sa méthode d'exécution préférée, c'était de flinguer les quatre membres de ses victimes, puis de leur faire sauter la cervelle, tout ça avant qu'elles ne tombent au sol. Enfin bref... Ça fera 2 800 billets. + + + Voilà ton pistolet Mars à tir rapide. Tu me dois 2 800 billets supplémentaires. + + + Tiens, voilà ton pistolet-mitrailleur, le Cutter. Je sais ce que tu te dis, mais les apparences sont trompeuses ! C'est un modèle tout neuf, un prototype sorti tout droit de l'armurerie ! Ses concepteurs voulaient créer la nouvelle génération d'arme à courte portée : l'équilibre parfait entre gros calibre, tir rapide et précision. Ça te coûtera 8 000 billets supplémentaires. + + + Oui, voici le Cutter, un pistolet-mitrailleur à tir rapide. Il est à toi pour 8 000 billets supplémentaires. + + + Voilà un modèle intéressant : le fusil à pompe de l'armée SPSA-Carabine. Il fournit un tir automatique tout en réduisant le recul grâce à un système équilibré et antichoc. 8 000 billets de plus et il est à toi ! + + + Voici le SPSA Carabine, un fusil à pompe automatique. Ça te reviendra à 8 000 billets supplémentaires. + + + Je pense que j'ai exactement ce qu'il te faut : l'Eliminator ! La cargaison devait partir en Afrique Centrale, mais j'ai fait jouer mes relations et j'ai pu en récupérer quelques-uns. C'est un fusil automatique qui dispose d'un chargeur haute capacité et d'une excellente cadence de tir. Il est à toi pour 8 000 biftons seulement ! + + + Bien sûr ! Et un fusil automatique Eliminator avec chargeur haute capacité, un ! 8 000 billets, je te prie. + + + Bien sûr ! Admire le Storm, un fusil d'assaut avec lance-grenades intégré ! Ce prototype est la version modifiée d'une arme conventionnelle conçue pour les forces spéciales de la Zone. La pointe de l'innovation, en provenance directe de nos cousins slaves... Et je t'en demande que 16 000 billets ! + + + Bien sûr ! Voici le Storm, un fusil d'assaut avec lance-grenades intégré et chargeur haute capacité, pour seulement 16 000 billets supplémentaires. + + + Le voilà : le GP37, un fusil d'assaut nouvelle génération. Précis, fiable et pratique, grâce à sa lunette optique intégrée. Il appartenait à un observateur de l'ONU qui avait été envoyé enquêter dans la Zone. Malheureusement pour lui, tout ne s'est pas passé comme prévu... Le fusil est à toi pour 16 000 billets. + + + Voici le GP37, un fusil d'assaut nouvelle génération. Le prix ? 16 000 billets ! + + + Une minute... Voici le fusil d'assaut modulaire FT-200M, une création des armuriers belges ! Précis, polyvalent, utilisable par les droitiers comme les gauchers, il est équipé d'une lunette optique et d'un lance-grenades. Je l'ai récup... euh, obtenu auprès d'observateurs de l'ONU pour le moins... malchanceux. Ça fera 16 000 billets supplémentaires. + + + C'est un fusil modulaire FT-200M et il est à toi pour 16 000 billets de plus. + + + Ça, c'est le Tide. Basé sur un fusil de précision silencieux, il a été spécialement conçu par l'armée pour éliminer des zombies. Le Tide compense sa faible cadence de tir par sa puissance et sa discrétion : il permet au tireur d'élite de cueillir les zombies un par un sans jamais révéler sa position ! Malheureusement, les huiles de l'armée se sont vite rendu compte que les stalkers suffiraient amplement à empêcher les zombies de franchir la Barrière et le fusil n'a jamais été produit en série. Ce bijou est à toi pour 16 000 billets supplémentaires. + + + Voici le Tide, un fusil de précision silencieux à la puissance inégalée. Tu peux l'avoir pour 16 000 petits billets supplémentaires. + + + Tiens ! Ça, mon pote, c'est le fusil de précision court SVU2-A, qui dispose d'une cadence de tir améliorée. Je l'ai acheté à Mac, le garde légendaire de la Liberté. Il jure que c'est le seul en son genre dans toute la Zone. C'est un objet très rare, du moins dans le coin, et il te coûtera que 16 000 billets supplémentaires. + + + Ouais, le fusil de précision court SVU2-A, à cadence de tir améliorée. Il te coûtera 16 000 billets de plus. + + + Regarde-moi ce Lynx, fabriqué par un artisan local ! Il a passé l'arme à gauche et il en fabriquera pas d'autres, hé hé. Blague à part, cette arme ressemble à n'importe quel autre fusil, pas vrai ? Va au stand de tir et tu verras la différence ! C'est l'alliance parfaite entre puissance et précision. Ce petit bijou est à toi pour 16 000 billets supplémentaires. + + + Ouais, le Lynx : un fusil de précision à la puissance inégalée. Je te le laisse pour 16 000 billets de plus. + + + Vise un peu ça : j'ai réussi à obtenir tout ce qu'il y avait sur ma liste. Ça, c'est une combinaison CS-3a avec son casque. En soi, le casque n'a rien de spécial, mais tu peux l'équiper d'un dispositif tactique mobile, qui comprend un système de vision nocturne de haute qualité et un capteur infrarouge. La combinaison CS-3a, quant à elle, est un vrai petit bijou : elle offre une protection pare-balles et anti-anomalies inégalée pour une combinaison aussi compacte et légère. Ça fera 32 000 billets pour le tout. + + + Ouais, j'ai une combinaison CS-3a avec casque tactique. 32 000 billets pour le tout. + + + Juste pour toi, une combinaison SEVA ! Exactement ce que t'avais commandé : module respiratoire en circuit fermé, isolation thermique, circuit de protection électrique et matériaux anticorrosion. J'ai même ajouté plusieurs poches à artefacts. Un achat essentiel pour tout stalker qui se respecte ! Tu me files les 24 000 billets dont on avait parlé et elle est à toi ! + + + Tiens, une combinaison SEVA ! Comme convenu, tu me dois 24 000 billets. + + + Le voilà : un exosquelette de combat comme t'en as jamais vu ! C'est la meilleure protection pare-balles, pare-griffes, pare-shrapnel... Pare-tout, sauf peut-être les véhicules blindés, dont il s'inspire : il te soulage d'une partie du poids qui pèse sur tes épaules. 48 000 billets et je te laisse le tout, batteries, et servomoteurs inclus ! + + + Et voilà : un exosquelette de combat exceptionnel ! Il ne coûte que 48 000 billets. + + + J'aimerais passer une commande. + + + Pas de problème, qu'est-ce qu'il te faut ? + + + Un pistolet. + + + Aucun problème. Ça te coûtera 3 500 billets, mais il me faut un acompte de 700. + + + Tiens, les voilà ! + + + Je te contacterai dès que ta commande sera prête. + + + Je n'ai pas cette somme sur moi. + + + Eh bien, il faudra revenir quand t'auras la thune... + + + En fait, j'ai changé d'avis. + + + D'accord. Si tu te décides à passer une commande, tu sais où me trouver ! + + + T'es pas vraiment un client fiable... Le pistolet te coûtera 4 200 billets et je vais avoir besoin d'un acompte de 1 400. + + + Désolé, mais j'ai vendu tous mes pistolets. Le Hibou peut te vendre de la marchandise ordinaire, si tu veux... + + + Une arme de courte portée. + + + Pas de problème ! Ça te coûtera 10 000 billets, avec un acompte de 2 000. + + + T'as refusé de récupérer ta dernière commande... Cette fois-ci, ça va te coûter 12 000 billets, avec un acompte de 4 000. + + + Hmm... Je crois pas pouvoir t'aider, sur ce coup-là. La demande est déjà trop forte. + + + Un fusil d'assaut. + + + Une arme de gros calibre ? Avec une cadence de tir élevée ? Ça fera 20 000 billets, avec un acompte de 4 000. Ça te va ? + + + T'es pas un client facile... Je vais devoir te demander un acompte de 24 000 billets, pour un prix total de 8 000. Marché conclu ? + + + C'est pas vraiment le bon moment... Les militaires nous facilitent pas la tâche au Cordon. Leur avant-poste a été attaqué récemment et nos relations commerciales en pâtissent. + + + Un fusil de précision. + + + Je te trouverai ce qui se fait de mieux, pour seulement 20 000 billets ! Mais je vais avoir besoin d'un acompte de 4 000. + + + Avec toi, on sait jamais si les commandes aboutissent... Je peux essayer de trouver ce que tu cherches pour 24 000 billets, mais il va falloir que tu me verses un acompte de 8 000. + + + Désolé, ce type d'arme est pas facile à trouver ces temps-ci. Mon contact pour les fusils de précision est... disons qu'il est... indisposé. + + + Une combinaison blindée. + + + Ouais, je devrais pouvoir te trouver ça... Ça te coûtera 40 000 billets et il me faut un acompte de 8 000. + + + Ouais, je devrais pouvoir te trouver ça... Mais comme t'as refusé de payer ta dernière commande, ça te coûtera 48 000 billets et il me faut un acompte de 16 000. + + + Je vais pas pouvoir te trouver une meilleure combinaison que celle que je t'ai filée la fois dernière. Elle était unique et très haut-de-gamme. + + + Une combinaison avec un module respiratoire en circuit fermé. + + + Ouh là, ça va pas être évident à trouver, ça... Je peux essayer de mettre la main sur un de ces petits bijoux, mais ça te coûtera 30 000 billets, avec un acompte de 6 000. + + + Tu m'as laissé ta dernière commande sur les bras, je dois assurer mes arrières cette fois-ci. Je peux essayer de mettre la main dessus, mais ça te coûtera 36 000 billets, avec un acompte de 12 000. + + + Je me suis vraiment cassé le cul pour ta dernière commande. Ça va pas devenir une habitude, tu peux me croire ! + + + Un exosquelette. + + + J'imagine que t'as beaucoup réfléchi avant de te décider pour cette commande. Je peux mettre la main sur un exosquelette de combat, mais ça te coûtera la modique somme de 60 000 billets. Je sais que ça paraît cher, mais vois ça comme un investissement ! Et n'oublie pas que j'ai besoin d'un acompte : 12 000 billets. + + + Tu t'es un peu foutu de moi pour ta dernière commande... Celle-ci te reviendra à 72 000 billets et j'ai besoin d'un acompte de 24 000. + + + Impossible. Depuis qu'ils ont fermé l'usine, les exosquelettes se trouvent que sur des cadavres... Et franchement, c'est pas mon style. + + + Rien pour l'instant. + + + Désolé, la boutique est fermée pour l'instant. J'ai quelques problèmes de livraison en ce moment... + + + Salut ! Moi, c'est Allegro. Les gens viennent me voir pour acheter des armes uniques : des modèles rares, des prototypes, des pétoires personnalisées... Tu vois le genre, quoi ! Je vends aussi de l'équipement haut-de-gamme, les derniers modèles de combinaisons de protection et de combat. Je vérifie chaque commande moi-même ; la qualité est garantie ! + + + Bonjour ! Tu veux passer une commande ? + + + Salut ! + + + Ta commande ne devrait plus tarder. + + + Ta commande est prête. Tu peux venir la chercher. + + + Salut ! C'est toi, le pote d'Accroc ? + + + Oui, je le connais. + + + Il m'a dit que tu nous apportais du butin... + + + Ce n'était pas notre accord... + + + OK... Accroc commence à me les briser menues, à me faire poireauter comme ça. + + + Au revoir. + + + Ça ne va pas être possible ! + + + Réfléchis bien... Tu devrais faire gaffe à ce que tu dis : t'es tout seul. Tu veux tenter ta chance contre nous ? + + + J'ai dit non ! + + + Non, je le connais pas. + + + Ahh... Merde... Ça fait mal... Aide-moi, mon pote... T'as pas un médikit ? J'en ai plus pour très longtemps... + + + Prends ce médikit ! + + + Ouf ! Merci ! J'étais sûr que j'allais y rester... Les cabots auraient été à la fête si tu m'avais pas aidé... Tiens, prends mon détecteur, il pourrait bien te servir, un de ces jours. Merci de m'avoir sauvé la vie... Je crois que je vais rentrer me reposer à la base. + + + Bonne chance ! + + + Ouf ! Merci ! J'étais sûr que j'allais y rester... Les cabots auraient été à la fête si tu m'avais pas aidé... Tiens, prends cet artefact, il pourrait bien te servir, un de ces jours. Merci de m'avoir sauvé la vie... Je crois que je vais rentrer me reposer à la base. + + + Désolé, j'en ai besoin. + + + Désolé, je n'ai pas de médikit. + + + Merci encore ! Sans toi, je boufferais les pissenlits par la racine... + + + Stalker ! Viens vite donner un coup de main à Petrukha ! Regarde, au bord de la crevasse ! Il est tombé sur une anomalie et même sa combinaison n'y a rien fait. Et moi, j'ai même pas de combinaison... Petrukha et moi, on a économisé pour acheter celle qu'il porte... Je peux rien faire ! Aide-nous, je t'en supplie ! + + + OK, reste où tu es ! Je vais voir ce que je peux faire. + + + Débrouillez-vous tous seuls ! + + + Merci d'avoir sauvé Petrukha ! Merde, pourquoi on a pas acheté une meilleure combinaison ? + + + Tire-toi de là ! T'as laissé crever Petrukha... Tu lui arriveras jamais à la cheville ! + + + À la prochaine ! + + + J'ai exterminé les sangsues du nid. + + + Parfait, tu as vengé la mort de nos frères ! Paix à leur âme... Tu as bien mérité cette récompense ! + + + J'ai trouvé un nid de sangsues sous la station-relais. + + + Bon, il faut qu'on se débarrasse de ce nid. Hum... Qui sait combien de ces saletés de sangsues se trouvent dans ces tunnels. On pourrait peut-être les gazer... J'ai entendu le Hibou parler de bombonnes de gaz... Tu pourrais aller le voir ? Disons qu'on est... fâchés, lui et moi. Si t'arrives à récupérer les bombonnes, il te suffit de les relier au système d'aération de la station-relais... Tout sera fini en quelques minutes. + + + OK, je m'en charge ! + + + Je vais y réfléchir. + + + J'ai déjà une bombonne de gaz. + + + Eh ben... T'es doué, mon pote ! + + + Ah, voilà notre stalker ! On t'attendait ! + + + C'est quoi, le plan ? + + + On doit aller rencontrer quelqu'un. T'auras pas grand-chose à faire... du moins, je l'espère. Il suffira que tu fasses acte de présence. + + + Ok. + + + Ha ! On leur a donné une bonne leçon ! Tu sais manier un flingue, ça, c'est sûr. Tiens ! + + + Bonne chance ! + + + Espèce d'amateur ! T'as réussi à tout faire capoter ! Dégage ! + + + Au revoir. + + + Pourquoi tu es si pressé ? + + + Pour rien... + + + C'est le Hibou qui t'envoie ? + + + Oui. Il m'a dit que tu avais besoin d'aide. + + + Ça, c'est sûr, j'ai besoin d'aide... Tu devrais faire l'affaire. + + + OK. Qu'est-ce que je dois faire au juste ? + + + Jouer les gardes du corps pendant une petite transaction, c'est tout. + + + C'est dans mes cordes. + + + Tiens-toi prêt et couvre-moi ! + + + Compris. + + + Je ne parlerai qu'au chef ! + + + Ok... + + + Merci, stalker. Tu nous as bien aidés. Je savais bien que ces abrutis feraient tout foirer, d'une façon ou d'une autre. Ils étaient suivis depuis le début ! Tiens, c'est pour te remercier ! + + + Bonne chance ! + + + Ça, pour glander, y a du monde... Mais comme garde du corps, t'es vraiment nul ! J'avais promis de te payer et j'ai qu'une parole. Tiens ! + + + Bonne chance ! + + + Ça, pour glander, y a du monde... Mais comme garde du corps, t'es vraiment nul ! J'avais promis de te payer et j'ai qu'une parole. Tiens ! + + + Bonne chance ! + + + Qu'est-ce que tu veux ? J'ai rien de plus à te dire. J'ai failli y laisser ma peau, moi... Dégage ! + + + Bonne chance ! + + + Merci d'être venu ! On va s'approcher des bandits et écouter leur conversation. On verra bien si on découvre quelque chose. + + + Ok. + + + Merci, stalker. Prends ça... Et le barman a une récompense pour toi. + + + Ok. + + + Parle-moi de la vie ici ! + + + C'est pas une partie de plaisir, ça, c'est clair... Qu'est-ce que tu veux savoir, exactement ? + + + Qu'est-ce que vous faites ici ? + + + On garde un œil sur les stalkers. Faut dire que, pour une bonne moitié d'entre vous, on a plus affaire à des gamins qu'à des vrais mecs... Vous débarquez dans la Zone avec vos rêves, vous voulez jouer les héros ou simplement changer de vie. Vous avez aucune idée de ce qui vous attend ici... et pour la plupart d'entre vous, c'est la grande faucheuse qui vous trouve. C'est de ce genre de stalkers dont on s'occupe. On les trouve à la Décharge, on leur prend leur matos et on les renvoie au Cordon. Y en a que ça fait réfléchir et ils se tirent vite fait. Ceux qui ont les couilles de revenir, on les fait payer pour notre protection. Je te le dis : personne ose venir sur notre territoire. Ni l'armée, ni les mercenaires, pas même les mutants. Personne ! + + + Qu'est-ce qui vous a amenés au centre de la Zone ? + + + Nos jambes... À ton avis ? On est venus pour les stalkers, quoi d'autre ? Si on était pas là pour maintenir l'ordre, ce serait le chaos ! Ce que tu trouves, tu le gardes, bien sûr... mais qui va payer les taxes ? Je parle des taxes pour la paix et la sécurité. Par exemple, si l'un d'entre vous exploite une anomalie pendant que nous, on empêche les mutants d'approcher... S'il s'en sort, on prend une commission... Une contribution pour le maintien de l'ordre, tu comprends... + + + Comment es-tu devenu le chef ? + + + Par où commencer... Je suppose qu'il faut remonter au lycée. J'avais un pote, mon meilleur ami, avec qui je traînais tout le temps. On fumait, on buvait... Mais lui, il en voulait toujours plus et il a commencé à prendre de la drogue : d'abord de l'herbe, ensuite de la coke et de l'héro quand il a commencé à avoir plus de thune. Je lui ai dit : "Arrête de prendre ces saloperies avant qu'il soit trop tard, Tolyan". Mais il m'a pas écouté. Un jour, on lui a refilé de la merde et il a clamsé. J'ai retrouvé ses dealers et j'ai vengé la mort de mon pote... Les flics m'ont chopé et ça a été le début de la fin : la taule, les gangs, le coup de couteau dans le bide... Je suis sorti de prison, j'ai monté un petit business, je me suis fait reprendre... Quand je suis ressorti, j'ai tout laissé tomber et j'ai décidé de venir dans la Zone. Je me suis endurci pendant les premiers mois et puis, j'ai été promu. Et maintenant, la loi, c'est moi par ici. + + + Qu'est-ce que tu penses des stalkers ? + + + Ils sont tous différents. Y a des racailles qui survivent pas plus d'une semaine, d'autres qui se font pas mal de fric... Y a aussi des gars bien qui ont pas eu de bol dans la vie, d'un côté ou de l'autre du Cordon. On dépouille les premiers, on taxe les seconds. Et les derniers, eh bien, on essaie de pas trop leur marcher sur les pieds. Dommage qu'on puisse pas les repérer au premier coup d'œil... + + + En fait, oublie ça. + + + Comme tu voudras. + + + Le Barbu va travailler pour nous maintenant. + + + Tu connais l'expression, "la vache est à nous, il ne reste plus qu'à la traire" ? Rends-lui une petite visite de temps en temps et rappelle-lui de nous payer ce qu'il nous doit ! + + + Le Barbu a passé une grosse commande pour un artefact appelé la Boussole. + + + Il faut qu'on intercepte cet artefact ! Le Barbu a pas l'habitude de s'exciter pour rien. Si tu veux mon avis, cet artefact est son dernier espoir de sauver son cul et son business. Apporte-moi la Boussole dès que tu l'auras trouvée ! + + + J'ai trouvé la Boussole. Tiens ! + + + Je refuse de chercher la Boussole pour toi ! + + + Hé, ducon, écoute-moi bien ! Si tu me dis que tu vas faire un truc pour moi et que tu changes d'avis, ça risque de pas me plaire... Et les gens qui me plaisent pas ont pas la vie facile, tu piges ? + + + Je m'en souviendrai. + + + Je vais récupérer les détecteurs des stalkers. + + + Bien. Pendant ce temps-là, je vais m'occuper des autres filières de notre ami. + + + Mon petit doigt m'a dit que t'avais livré une Boussole au Barbu. Alors écoute-moi bien, espèce d'abruti ! Si tu me dis que tu vas faire un truc pour moi et que tu changes d'avis, ça risque de pas me plaire. Et les gens qui me plaisent pas ont pas la vie facile, tu piges ? + + + Je m'en souviendrai. + + + Le Barbu n'a plus de détecteurs améliorés. + + + Excellent ! De mon côté, j'en ai profité pour couper ses autres filières. Maintenant, son client est à nous ! Va donc voir le Barbu et dis-lui que le Sultan lui passe le bonjour ! + + + Le Barbu me doit de l'argent. Le Hibou m'a dit que tu pourrais m'aider. + + + Ouais, c'est dans mes cordes... D'ailleurs, j'ai un plan : je compte ruiner le Barbu et prendre le contrôle de son business. Si tu m'aides, tu pourras récupérer ta thune et une part de ses bénefs. Qu'est-ce que t'en dis ? + + + Ça marche. + + + Tout ce que t'as à faire, c'est découvrir comment le Barbu réussit à rester à flot ces temps-ci. Le couper de ses fournisseurs devrait suffire à faire couler son business... + + + Je vais y réfléchir. + + + Oublie pas : trop réfléchir, c'est pas bon pour la santé ! + + + Tu crois qu'Allegro revend des objets volés ? + + + Allegro ? Non, il a pas les couilles, ce mec ! Pour ce genre de truc, c'est le Hibou notre fournisseur local. Tu peux lui vendre ce que tu veux, il posera pas de questions. + + + Je cherche Accroc. Tu sais où je peux le trouver ? + + + Ouais. Mes gars l'ont vu près des grues, sur les quais, il y a un jour ou deux. J'oublie tout le temps que ce tocard me doit de la thune et qu'il faut que je lui remonte les bretelles... + + + J'ai un boulot pour toi. Mes gars ont rencart avec un marchand... un petit rendez-vous d'affaires, on va dire. C'est chaud dans la Zone en ce moment et je me suis dit qu'un flingue de plus, ça peut pas faire de mal. Faudrait juste que tu t'assures que tout se passe bien. + + + Ok. + + + Bon. Mes gars te retrouveront au poste des rangers. J'ai chargé les coordonnées sur ton PDA. + + + OK. + + + Ça ne m'intéresse pas. + + + Qu'est-ce que tu fous encore là ? Mes gars t'attendent au poste des rangers ! + + + Ouais, ouais. + + + Alors, tu t'es décidé ? T'es avec nous ou pas ? + + + Je suis avec vous. + + + Je vais la jouer solo... + + + Oublie pas à qui t'as affaire : je suis Sultan ! Il se passe rien ici sans que je donne mon accord ! Si, toi aussi, tu veux la belle vie, t'as intérêt à bosser pour moi ! Sinon, c'est une vie de merde qui t'attend ! Ça se passe comme ça, ici ! + + + Qu'est-ce que je peux faire ? + + + Qu'est-ce qui t'amène ici ? + + + Alors ? + + + J'ai tué tous les stalkers. + + + Ouh là... Ouais, tu rigoles pas, toi ! Tu débarques ici et tu flingues tout le monde... Merde, c'est pas pour ça que je t'ai embauché ! Tu nous rapportes pas de pognon, juste des emmerdes... Faut que tu te calmes, mon pote... Je déconne pas ! + + + Ça te plaît de travailler pour les scientifiques ? + + + C'est pas si mal... Rien à signaler jusqu'ici, tout va bien. Les scientifiques nous ont refilé du matos, alors on s'en sort bien. + + + C'est cool ! Le boulot est pas compliqué et ça paie bien. Personne est venu chercher les scientifiques depuis qu'on est arrivés. On a pas vu un seul mutant ! + + + Je suis en train de monter une équipe pour aller à Pripyat. Tu veux venir avec nous ? + + + Non... Contrairement à d'autres, l'idée d'aller à Pripyat me fait pas vraiment bander. En plus, je dois protéger les scientifiques... Tu devrais proposer au soldat de venir avec toi. Il pourrait chercher ses copains militaires et nous, on pourrait enfin respirer un peu. C'est pas un mauvais bougre, mais il a rien à faire ici... + + + Non... Contrairement à d'autres, l'idée d'aller à Pripyat me fait pas vraiment bander. En plus, je dois protéger les scientifiques... + + + Ça vous dirait de travailler pour les scientifiques ? + + + Qu'est-ce qu'il faut faire ? + + + Protéger leur bunker. + + + Ah, un autre boulot de garde... C'est d'accord. On se met en route pour le bunker dès qu'on est prêts. + + + Faire des relevés dans les anomalies. + + + Faire des relevés... J'ai l'air d'un assistant de laboratoire ? C'est pas vraiment dans mes cordes... + + + On en parlera plus tard. Y a trop de petits nouveaux qui ont débarqué récemment. Faut les remettre à leur place ! + + + OK, on fait tout sauter ! On va leur montrer ! + + + Bien. + + + On a intérêt à se mettre à l'abri... On va se coltiner une émission ! + + + On fait tout sauter ! On va leur montrer ! Relax, tout va bien se passer ! + + + On leur a donné une bonne leçon, hein ? Voilà le pognon, mon pote. Je te fais signe si on a d'autres trucs pour toi. + + + Ouh là... Ben, tu rigoles pas, toi ! Tu débarques ici et tu flingues tout le monde... Merde, c'est pas pour ça que je t'ai embauché ! Tu nous rapportes pas de pognon, juste des emmerdes... Faut que tu te calmes, mon pote... Je déconne pas ! + + + C'est quoi ce bordel ? Ils sont où, les stalkers, hein ? T'as vendu la mèche, c'est ça ? C'était toi, c'est obligé : tous mes potes étaient avec moi... Tu vas nous payer tout ce qu'on aurait dû récolter avec ces stalkers ! Qu'est-ce que tu regardes ? Vide tes poches, enfoiré ! + + + On devrait aller sur la péniche. + + + Salut. Désolé, mais je suis pas d'humeur à bavarder. + + + Je vais te filer un coup de main. + + + Super. On organise la rencontre, comme prévu. Quand ils arrivent, on les attaque de tous les côtés. Garde tes distances si tu veux pas te prendre une balle perdue. + + + Ok. + + + Non, ça ne me dit rien. + + + Salut, stalker. Je suis occupé, là... On se parlera plus tard, ok ? + + + Merci de m'avoir prévenu. Ça te dirait de te joindre à nous ? Une belle occasion de flinguer ces enfoirés dans le dos... + + + On va les prendre au piège. Quand on les aura interceptés, tu les prends à revers et tu flingues ces enfoirés ! + + + Ces enfoirés sont déjà morts, même s'ils le savent pas encore ! Merci de m'avoir prévenu ! + + + Merci pour ton aide ! + + + Salut ! Si ça presse pas, on discutera plus tard, OK ? + + + Salut ! + + + J'ai trouvé la Pie. Il se cachait dans la gare de Yanov où il se faisait appeler Flint. Je me suis chargé de son cas. + + + Chargé de son cas ? Dommage, j'aurais aimé écraser ce cafard moi-même... Tant pis, ça reste une bonne nouvelle. Voilà la récompense, je suis un homme de parole. + + + Merci. + + + Je veux quitter la Zone. + + + Vraiment ? Il sera impossible de changer d'avis plus tard... + + + Je suis sûr de moi. Allons-y ! + + + En fait, je vais rester pour l'instant. + + + D'accord, voilà l'argent. Je ne veux pas me battre. + + + Hein ? File-moi tout ce que t'as et dégage, enfoiré ! J'veux pas te revoir ici ! + + + Je pars. + + + Hors de question ! + + + Voyons voir... Ah, si vous, vous allez mal, moi, je dois être mort... + + + J'ai une affaire urgente à régler. Un marchand de ma connaissance va passer un accord, mais il ne fait trop confiance à ses acheteurs, alors il cherche un garde du corps. Ça t'intéresse ? + + + Oui. + + + Parfait. Le marchand t'attendra près du poste des rangers, il te donnera tous les détails. + + + Pas vraiment. + + + Comme tu voudras. Si tu changes d'avis dans pas trop longtemps, reviens me voir. + + + Quel genre de boulots tu proposes ? + + + Des boulots qui rapportent. Maintenant, réfléchis : pourquoi c'est à toi que je demande ? T'es nouveau dans le coin, personne te connaît, mais si tu te débrouilles bien, tu peux rapidement gagner la confiance des gars du coin. Tu veux que je te parle de mes projets ? + + + Ouais, bien sûr. + + + Ok, alors écoute. On s'est dit que ce serait pas con de se débarrasser de quelques-uns des stalkers du Barbu. Alors, dans la nuit, nos gars et toi, vous allez aller au Chevtchenko et avant qu'ils s'aperçoivent de quoi que ce soit, vous leur réglez leur compte... On récupère l'argent, tu récupères le matos... tu piges ? Cool, tu vois le Poing, là dans le coin ? Il te mettra au jus pour les détails. + + + Pas vraiment... + + + Dommage. Prends ton temps et réfléchis bien... Si tu sais ce qui est bon pour toi, tu reviendras me voir, mon pote. + + + Le genre qui t'intéresse si t'as envie de voir du pays... Tu veux que je te parle de mes projets ? + + + Le PDA de Barge. J'ai trouvé son cadavre dans les grottes sous la ferme brûlée. + + + Le PDA du Joker. Je l'ai trouvé près d'un squelette, non loin du Pinchêne. + + + Le Joker ? C'est pas possible ! Putain, ça me fait un de ces chocs... Le Joker est mort... Eh ben, on dirait que tu nous feras plus tellement rigoler, Joker... Paix à ton âme ! J'espère que Barge se porte bien, au moins. + + + Le Joker ? C'est pas possible ! Putain, ça me fait un de ces chocs... Le Joker est mort... Eh ben, on dirait que tu nous feras plus tellement rigoler, Joker... Paix à ton âme. Et à la tienne aussi, Barge... Bordel, comment on en est arrivés là ? + + + Les PDA de Barge et du Joker. J'en ai trouvé un près d'un squelette à côté du Pinchêne et l'autre sur un cadavre dans les grottes sous la ferme brûlée. + + + Franchement, y a pas grand-chose à dire. Les émissions sont extrêmement dangereuses et presque toujours mortelles. On peut les sentir approcher quand le temps change soudainement, mais ça ne dure pas. Aux premiers signes de l'émission, il faut courir se mettre à l'abri. N'importe où, dans une grotte, un abri en béton, en brique ou en métal... Je fais partie de ceux qui peuvent les sentir approcher... Elles réveillent une douleur dans mon dos. En ce qui concerne la nature des émissions, j'ai rien d'utile à dire, vu que j'en sais rien. + + + Besoin de marchandise ? D'informations ? À moins que tu n'aies des infos à vendre ? + + + Sultan dit que tu comptes plumer les stalkers. Tu peux compter sur moi ! + + + Cool. Ramène ton cul au Chevtchenko après minuit, on t'attendra. Mais attends pas que le jour se lève pour te pointer, hein ! + + + Oh, c'est toi. Alors, vous avez convenu de quoi, Sultan et toi ? + + + Donc... viens sur la péniche entre minuit et le lever du soleil, on t'attendra. + + + Je ferais mieux de rester avec toi. On va attendre jusqu'à minuit et tu pourras m'emmener au Chevtchenko. + + + Pas de problème, reste dans le coin ! Je te montrerai le chemin. + + + En fait... j'ai deux trois choses à faire avant. + + + J'ai de gros clients en dehors de la Zone qui ont régulièrement besoin de certains artefacts à des moments bien précis. Tu me rapportes ce dont j'ai besoin et je te paie grassement en échange. Par contre, ces commandes sont très importantes pour moi, alors j'ai toujours plusieurs mecs sur le coup... Et seul le premier à me livrer mon artefact empoche l'intégralité de la prime. + + + Par la ferme brûlée, hein ? Hum... qui t'es, d'abord ? + + + On surnomme cet endroit la Forêt de Fer. L'hélico s'est planté droit dans les pylônes. Aucun des soldats n'aurait pu survivre à l'accident... Et même si c'était le cas, ils s'en seraient jamais sortis vivants. Ces poltergeists adorent piéger leurs victimes dans des anomalies électriques... Comme chacun le sais, ces saloperies sont sensibles au moindre mouvement. + + + Alors... Après que l'hélico s'est écrasé, on a vu cinq militaires sortir vivants du marais... C'est pas compliqué de se rendre sur place, il suffit de rester sur la terre ferme et d'éviter la flotte. Ah, par contre, il faudra prendre ses précautions. Si tu comptes y aller, le toubib peut te vendre des antidotes. + + + Dommage que mes potes Barge et Joker soient pas là... Qu'est-ce qu'on se marrait... On était comme des frères, on pouvait compter les uns sur les autres... Comment j'en suis arrivé là ? Je suis toujours ici, mais eux, ils sont partis... + + + Parle-moi du Joker et de Barge ! + + + J'ai déjà récupéré quelque chose. + + + Alors... Tu m'as apporté quelque chose ? + + + Hum, ça explique tout... Je le connais, il a toujours été un peu escroc sur les bords, mais récemment, ça a empiré, il s'est mis à arnaquer les stalkers... Il faut que quelqu'un lui donne une bonne leçon. + + + J'ai besoin d'informations sur le camp des mercenaires. Ce n'est pas aussi dur que ça en a l'air. + + + Ok, je vais attendre... Mais il faut absolument que ce soit fait dans les deux jours. + + + Le PDA du messager de Sultan. + + + Ce n'est pas très intéressant. Je suis prêt à l'acheter pour 500. + + + Ok. + + + Des prototypes de détecteurs. Tu veux les racheter ? + + + Des documents secrets. Je les ai trouvés sur le pont près de la colonne motorisée. + + + Un artefact étrange que j'ai trouvé dans la station de dragage. + + + Un artefact étrange que j'ai trouvé près de la gare de Yanov. + + + Le Cœur de l'Oasis. + + + C'est parti ! + + + Une minute ! + + + Un groupe de stalkers s'apprête à vous tomber dessus. Restez sur vos gardes ! + + + Les salopards... Très bien, on va leur préparer un petit comité d'accueil... Alors, essaye de leur faire croire que tu es de leur côté, ça te permettra de nous filer un coup de main... Il y a une belle récompense à la clé. + + + Rien à foutre de votre accord ! Donne-moi ce flingue, et plus vite que ça ! + + + Ok, voilà ! + + + Non ? J'en ai rien à faire ! Donne-moi ça, connard ! + + + Du calme, du calme... Voilà. + + + Les salopards... Très bien, on va leur préparer un petit comité d'accueil... Aide-nous à les combattre si tu peux et t'auras droit à une récompense ! + + + On s'est bien débrouillé, non ? Toi, par contre, comme t'as pas fait grand-chose, compte pas obtenir ta part du gâteau ! Je te ferai signe si on a d'autres plans. + + + T'es vraiment inutile... Tu peux t'asseoir sur ta part du gâteau ! Mais au moins, t'es venu discuter, c'est toujours ça... + + + Au revoir. + + + Bien. Reste plus qu'à mettre la touche finale ! Il paraît que le Barbu a refilé de puissants détecteurs capables de repérer des artefacts très rares à ses stalkers. Il faut que tu infiltres leurs rangs, histoire de pouvoir profiter, toi aussi, de ces petits bijoux. C'est compris ? + + + Impossible de le faire déguerpir... J'ai essayé de couper son approvisionnement, mais ce tocard barbu a quand même réussi à récupérer une Boussole. On dirait qu'il s'en sort très bien... pour l'instant. + + + [continuer...] + + + [continuer...] + + + [continuer...] + + + Le Faisan est mort. On dirait que Sismik l'a tué... mais lui non plus n'a pas survécu. + + diff --git a/gamedata/configs/text/fra/st_generate_fnames.xml b/gamedata/configs/text/fra/st_generate_fnames.xml new file mode 100644 index 0000000..d2bc88b --- /dev/null +++ b/gamedata/configs/text/fra/st_generate_fnames.xml @@ -0,0 +1,492 @@ + + + + Sanek + + + Shurik + + + Vadya + + + Vasyan + + + Vasek + + + Vityukha + + + Vetal + + + Vovan + + + Zhorka + + + Grishka + + + Grishko + + + Dimon + + + Lekha + + + Dimukha + + + Zheka + + + Fimka + + + Ilyukha + + + Kostyan + + + Mitka + + + Mikhal + + + Mikha + + + Mikhas + + + Kolyan + + + Tolyan + + + Pavlukha + + + Sashok + + + Stepka + + + Stepukha + + + Timokha + + + Felka + + + Yuras + + + Yashka + + + Andryukha + + + Tokha + + + Arkasha + + + Temka + + + Boryan + + + Bodya + + + Capitaine + + + Lieutenant + + + Soldat + + + Andreï + + + Anton + + + Oleg + + + Roman + + + Alexandre + + + Sergeï + + + Anatoly + + + Yuri + + + Bohdan + + + Veniamin + + + Vitaly + + + Vladimir + + + Dimitri + + + Ivan + + + Constantin + + + Alexeï + + + Sanya + + + Sanek + + + Arthur + + + Yashka + + + Yarik + + + Yara + + + Slava + + + Borya + + + Borka + + + Bohdan + + + Slavik + + + Vadim + + + Vadya + + + Vadik + + + Valik + + + Valera + + + Shurik + + + Vasya + + + Vaska + + + Vasko + + + Venya + + + Vitya + + + Vitka + + + Vitalik + + + Vlad + + + Vova + + + Vovka + + + Lenya + + + Seva + + + Sevka + + + Gena + + + Genka + + + George + + + Gosha + + + Zhora + + + Marc + + + Gleb + + + Grisha + + + Alex + + + Grishka + + + Grishko + + + Danya + + + Kiryukha + + + Danko + + + Dennis + + + Dima + + + Dimka + + + Dmitro + + + Zhenya + + + Leshka + + + Zhenka + + + Egor + + + Egorka + + + Fima + + + Vanya + + + Vanka + + + Igorek + + + Ilya + + + Kostya + + + Kostik + + + Tolik + + + Leva + + + Lenya + + + Lyonka + + + Max + + + Matveï + + + Mitya + + + Misha + + + Mishka + + + Nikita + + + Nik + + + Anton + + + Kolya + + + Oleg + + + Pasha + + + Pashka + + + Petro + + + Petya + + + Petka + + + Roma + + + Romka + + + Rostik + + + Toshka + + + Rus + + + Savva + + + Semyon + + + Sema + + + Serega + + + Rusik + + + Stepan + + + Stepa + + + Tima + + + Timka + + + Artem + + + Fedor + + + Fedya + + + Fedka + + + Filya + + + Filka + + + Edik + + + Yurka + + + Yurik + + + Yurko + + + Yasha + + + Sergent en chef + + + Sergent + + diff --git a/gamedata/configs/text/fra/st_generate_snames.xml b/gamedata/configs/text/fra/st_generate_snames.xml new file mode 100644 index 0000000..eafeee3 --- /dev/null +++ b/gamedata/configs/text/fra/st_generate_snames.xml @@ -0,0 +1,4836 @@ + + + + Gray + + + Berserk + + + Putride + + + Patty + + + Espion + + + Bison + + + Castor + + + Bouledogue + + + Bœuf + + + Moineau + + + Pic + + + Bête + + + Sorcier + + + Bossu + + + Sanglier + + + Carpe + + + Canari + + + Punaise + + + Balance + + + Élan + + + Rat + + + Boa + + + Miche + + + Cassé + + + Long John + + + Mutileur + + + Boulon + + + Rasoir + + + Tambour + + + Ferraille + + + Python + + + Dynamite + + + Atout + + + Pelleteuse + + + Joint + + + Canard + + + Croix + + + Goudron + + + Chaussette + + + Pied-de-biche + + + Panadol + + + Shiv + + + Piston + + + Nickel + + + Pile + + + Létal + + + Fou + + + Meule + + + As + + + Burin + + + Mikado + + + Pause-pipi + + + Nœud-pap' + + + Étalon + + + Chique + + + Poing + + + Ecchymose + + + Têtard + + + Pirate + + + Khan + + + Koscheï + + + Tête brûlée + + + Office de tourisme + + + Tueur + + + Chapaï + + + Genghis + + + Banane + + + Miche + + + 2 mains gauches + + + Papa + + + Pointu + + + Villageois + + + Gangrène + + + Tache + + + Degré + + + Antilope + + + Fubar + + + Paria + + + Aspic + + + Charbon + + + Atout + + + Joint + + + Chaussette + + + Gnome + + + Maure + + + Fumette + + + Flop + + + Ravioli + + + Chili + + + Râpe + + + Gras-double + + + Biscuit + + + Goule + + + Radin + + + Cassé + + + Pingre + + + Clignotant + + + Démon + + + Infirme + + + Kicker + + + Brochette + + + Tordu + + + Anguille + + + Perruque + + + Sauvage + + + Schnok + + + Autochtone + + + Slime + + + Champion + + + Monocle + + + Rascal + + + Poids mort + + + Frimeur + + + Crapule + + + Crevé + + + Psycho + + + Grande gueule + + + Entaille + + + Arrache + + + Aveugle + + + Morveux + + + Hippie + + + Met + + + Dépouille + + + Balafré + + + Toute-ouïe + + + Fou du roi + + + Lévrier + + + Naze + + + Armoire + + + Grincheux + + + Connaisseur + + + Robuste + + + Écuyer + + + Sangsue + + + Artiste + + + Charlatan + + + Banquier + + + Clodo + + + Baron + + + Chiffonnier + + + Énergumène + + + Clochard + + + Bosun + + + Pygmée + + + Bourbon + + + Bourge + + + Chauffeur + + + Voleur + + + Imberbe + + + Gangster + + + Messager + + + Comte + + + Tyran + + + Sauvageon + + + Étrangleur + + + Conseiller + + + Joueur + + + Triche + + + Parrain + + + Vétéran + + + Coach + + + Bling-bling + + + Maniaque + + + Fossoyeur + + + Boucher + + + Ninja + + + Bourreau + + + Punk + + + Guérillero + + + Pacifiste + + + Rocher + + + Pirate + + + Pyromane + + + Prince + + + Brigand + + + Kamikaze + + + Mac + + + Tyran + + + Tueur + + + Trombone + + + Chimiste + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchitsky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoï + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameïka + + + Slutsky + + + Boïko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boïchenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronstein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoï + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameïka + + + Slutsky + + + Boïko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boïchenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronstein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoï + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameïka + + + Slutsky + + + Boïko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boïchenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Sinaev + + + Feigelman + + + Ledentsov + + + Alferov + + + Antipin + + + Blinov + + + Bogomolov + + + Vasilevich + + + Geshkenbein + + + Dyakonov + + + Erokhin + + + Zaïkin + + + Zakharov + + + Ivchenko + + + Kabanov + + + Larin + + + Manko + + + Mironov + + + Stepanenko + + + Oganesyan + + + Chernodub + + + Shilov + + + Chirikov + + + Belyavin + + + Fadeev + + + Steklov + + + Andreev + + + Spirin + + + Balitsky + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoï + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameïka + + + Slutsky + + + Boïko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boïchenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronstein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Blanc + + + Vert + + + Immortel + + + Rouillé + + + Don Juan + + + Atroce + + + Musclé + + + Raconteur + + + Aveugle + + + Brave + + + Morveux + + + Argumenteur + + + Ancien + + + Berserk + + + Hippie + + + Met + + + Sinistre + + + Feignasse + + + Sec + + + Cul bordé de nouilles + + + Tacheté + + + Gras-double + + + Bide + + + Dépouille + + + Cassé + + + Intello + + + Balafré + + + Toute-ouïe + + + Mime + + + Fou du roi + + + Naze + + + Armoire + + + Os + + + Cynique + + + Type + + + Ingénu + + + Grincheux + + + Alerte + + + Connaisseur + + + Robuste + + + Étudiant + + + Autochtone + + + Aviateur + + + Agent + + + Écuyer + + + Sangsue + + + Schnok + + + Disciple + + + Artiste + + + Ermite + + + Charlatan + + + Banquier + + + Aède + + + Baron + + + Chiffonnier + + + Énergumène + + + Jogger + + + Athlète + + + Combattant + + + Clochard + + + Bosun + + + Pygmée + + + Bourbon + + + Bourge + + + Bureaucrate + + + Vandale + + + Barbare + + + Pion + + + Répartie + + + Ensorceleur + + + Visiteur + + + Viking + + + Chauffeur + + + Plongeur + + + Patron + + + Voleur + + + Voyageur + + + Psy + + + Cavalier + + + Grande gueule + + + Gangster + + + Géologue + + + Gladiateur + + + Messager + + + Invité + + + Comte + + + Porteur + + + Grand-père + + + Déserteur + + + VRP + + + Lévrier + + + Dandy + + + Bras droit + + + Tyran + + + Sauvageon + + + Diplomate + + + Doc + + + Docteur + + + Prof + + + Étrangleur + + + Vigile + + + Clodo + + + Conseiller + + + Ack-ack + + + Toubib + + + Joueur + + + Indien + + + Iroquois + + + Capitaine + + + Triche + + + Clown + + + Duc + + + Rouge + + + Imberbe + + + Cosaque + + + Cuistot + + + Sorcier + + + Comanche + + + Roi + + + Parrain + + + Marchand + + + Fumeur + + + Coursier + + + Coach + + + Vétéran + + + Légionnaire + + + Guérisseur + + + Forestier + + + Lord + + + Entrepreneur + + + Bling-bling + + + Maniaque + + + Martien + + + Maçon + + + Mécanicien + + + Bigtime + + + Fossoyeur + + + Modérateur + + + Laitier + + + Boucher + + + Mercenaire + + + Accordeur + + + Boss + + + Ninja + + + Opérateur + + + Armurier + + + Chanceux + + + Shah + + + Bourreau + + + Polkan + + + Punk + + + Pépère + + + Guérillero + + + Pasteur + + + Berger + + + Ancien + + + Bœuf + + + Chanceux + + + Pacifiste + + + Convoyeur + + + Sifflet + + + Pilote + + + Pisteur + + + Pirate + + + Charpentier + + + Pyromane + + + Pompier + + + Charentaise + + + Tuteur + + + Subzero + + + Ambassadeur + + + Postier + + + Poète + + + Prince + + + Prophète + + + Prof + + + Resquilleur + + + Apiculteur + + + Dur-à-la-tâche + + + Fidèle + + + Rabby + + + Étincelle + + + Brigand + + + Rasta + + + Vigile + + + Rockeur + + + Mineur + + + Samouraï + + + Démineur + + + Maniaque + + + Exorbité + + + Prêtre + + + Secrétaire + + + Gigolo + + + Escroc + + + Scythe + + + Éclaireur + + + Machiniste + + + Kamikaze + + + Éleveur + + + Sauveteur + + + Rocher + + + Sportif + + + Étranger + + + Étudiant + + + Juge + + + Champignon + + + Mac + + + Haricot + + + Troufion + + + Danseuse + + + Tyran + + + Putride + + + Marchand + + + Nettoyeur + + + Balayeur + + + Ethnique + + + Touriste + + + Tueur + + + Trombone + + + Quarterback + + + Précision + + + Chimiste + + + Rouillé + + + Volubile + + + Patty + + + Peintre + + + Berger + + + Chaman + + + Creuseur + + + Mineur + + + Sheriff + + + Patron + + + Érudit + + + Taxi + + + Bossu + + + Espion + + + Électricien + + + Cadet + + + Païen + + + Alligator + + + Anaconda + + + Babouin + + + Bison + + + Castor + + + Mante + + + Fier + + + Bouledogue + + + Écureuil + + + Bœuf + + + Marcassin + + + Moineau + + + Corbeau + + + Rat musqué + + + Plantain + + + Charognard + + + Tour + + + Rabat-joie + + + Manul + + + Oie + + + Dauphin + + + Dinosaure + + + Grive + + + Pic + + + Hérisson + + + Scarabée + + + Lièvre + + + Bête + + + Tonnerre + + + Sorcier + + + Auroch + + + Cloche + + + Sanglier + + + Carpe + + + Canari + + + Punaise + + + Cobra + + + Moustique + + + Étalon + + + Harceleur + + + Chat + + + Croco + + + Criquet + + + Balance + + + Élan + + + Mammouth + + + Éléphant + + + Microbe + + + Insecte + + + Fourmi + + + Long John + + + Taon + + + Araignée + + + Rat + + + Pèlerin + + + Piranha + + + Python + + + Lièvre + + + Hibou + + + Faucon + + + Marmotte + + + Cœur d'artichaut + + + Rongeur + + + Fretin + + + Blatte + + + Tarentule + + + Hamster + + + Boa + + + Hibou + + + Furet + + + Ver + + + Creuseur + + + Canard + + + Radical + + + Anomalie + + + Pare-chocs + + + Miche + + + Cassé + + + Mutileur + + + Bolide + + + Boulon + + + Rasoir + + + Tambour + + + Fou + + + Beignet + + + Aspirateur + + + Ferraille + + + Caillou + + + Ventilo + + + Hélico + + + Souffleur + + + Python + + + Collier + + + Clou + + + Rouquin + + + Têtard + + + Cartouche + + + Globe + + + Rocher + + + Grenade + + + Embrouille + + + Cercueil + + + Été + + + Moteur + + + Dynamite + + + Percé + + + 2 mains gauches + + + Légal + + + Serrure + + + Culasse + + + Isotope + + + Roc + + + Piégeur + + + Sorcier + + + Karma + + + Brique + + + Lime + + + Méchant + + + Clé + + + Fouet + + + Atout + + + Cap + + + Brise-bûches + + + Whisky + + + Pivot + + + Faucheur + + + Espace + + + Pelleteuse + + + Grattoir + + + Joint + + + Croix + + + Goudron + + + Gâchette + + + Chaussette + + + Pied-de-biche + + + Machine + + + Cible + + + Moteur + + + Pompe + + + Fer + + + Nocturne + + + Fusil à pompe + + + Panadol + + + Parachute + + + Round + + + Cinq + + + Shiv + + + Piston + + + Mastic + + + Poudrier + + + Matos + + + Nickel + + + Fusée + + + Rack + + + Réacteur + + + Hachette + + + Passoire + + + Pile + + + Robot + + + Cerf + + + Pioche + + + Charbon + + + Alambic + + + Botte + + + Cidre + + + Létal + + + Bibine + + + Gouge + + + Bidon + + + Coffre + + + Hache + + + Crosse + + + Rapido + + + Meule + + + As + + + Nœud + + + Facteur + + + Lampe + + + Burin + + + Juin + + + Gousse + + + Mikado + + + Chance + + + Gras-double + + + Pause-pipi + + + Épineux + + + Placard + + + Nœud-pap' + + + Cafardeux + + + Pif + + + Perche + + + Étalon + + + Python + + + Chique + + + Radin + + + Tête d'œuf + + + Les Crocs + + + Griffe + + + Os + + + Poing + + + Nerveux + + + Squelette + + + Traînard + + + Crest + + + Ecchymose + + + Gray + + + Pingre + + + Pirate + + + Khan + + + Athlète + + + Pinocchio + + + Ensorceleur + + + Voldemort + + + Homère + + + Dragon + + + Tonnerre + + + Joconde + + + Clignotant + + + Noodle + + + Homme de fer + + + Icare + + + Casanova + + + Koscheï + + + César + + + Gros + + + Koutouzov + + + Peewee + + + Bonaparte + + + Penseur + + + Nelson + + + Neptune + + + Oscar + + + Prométhée + + + Pouchkine + + + Vendredi + + + Tête brûlée + + + Roquefort + + + Office de tourisme + + + Tueur + + + Binoclard + + + Encre + + + César + + + Chapaev + + + Chapaï + + + Chebur + + + Cheburashka + + + Chingachgook + + + Genghis + + + Shtirlitz + + + Banane + + + Faucon + + + Brownie + + + Miche + + + Papa + + + Pointu + + + Villageois + + + Bulkin + + + Bulldozer + + + Tampon + + + Quenelle + + + Flambeur + + + Sabre + + + Gangrène + + + Hybride + + + Tache + + + Batteur + + + Highlander + + + Degré + + + Gremlin + + + Antilope + + + Oncle + + + Fubar + + + Frisquet + + + Paria + + + Kagor + + + Choucroute + + + Carbure + + + Aspic + + + Atout + + + Commodore + + + Roi + + + Joint + + + Chaussette + + + Démon + + + Glaçon + + + Gnome + + + Maure + + + Latte + + + Spaghetti + + + Maître + + + Mutant + + + Fumette + + + Flop + + + Flaque + + + Infirme + + + Détective + + + Ravioli + + + Chili + + + Ceinture + + + Bonne pâte + + + Bulle + + + Râpe + + + Bavure + + + Ryazansky + + + Alambic + + + Infirme + + + Morille + + + Biscuit + + + Mégot + + + Pointeur + + + As + + + Courgette + + + Goule + + + Trombone + + + Fantôme + + + Cascade + + + Gray + + + Kicker + + + Coma + + + Brochette + + + Maladroit + + + Vertèbre + + + Tordu + + + Arc-en-ciel + + + Anguille + + + Buisson + + + Perruque + + + Siniy + + + Lèche-cul + + + Sauvage + + + Peewee + + + Raide + + + Nécro + + + Autochtone + + + Cercueil + + + Slime + + + Champ + + + Narcisse + + + Black + + + Mou + + + Loser + + + Dingo + + + Nuisance + + + Douillet + + + Monocle + + + Rascal + + + Poids mort + + + Parano + + + Frimeur + + + Téflon + + + Fripouille + + + Crapule + + + Crevé + + + Juste + + + Simplet + + + Psycho + + + Dur-à-la-tâche + + + Entaille + + + Arrache + + + Rocaille + + diff --git a/gamedata/configs/text/fra/st_items_artefacts.xml b/gamedata/configs/text/fra/st_items_artefacts.xml new file mode 100644 index 0000000..a268df3 --- /dev/null +++ b/gamedata/configs/text/fra/st_items_artefacts.xml @@ -0,0 +1,153 @@ + + + + Conglomérat de formations organiques poreuses, cet artefact exsude une substance gazeuse qui neutralise les particules radioactives. Très efficace, il est très recherché. + + + Bulle + + + Formation rougeâtre de débris polymérisés et fossilisés de plantes, de terre et d'os. Neutralise les toxines chimiques, mais émet des radiations. + + + Pierre sanguine + + + Cet artefact se forme dans les zones anormales à l'activité thermique intense. Il absorbe la chaleur ambiante et reste ainsi toujours froid au toucher. Émet des radiations. + + + Cet artefact est issu de la déformation d'une pierre granitique par des forces gravitationnelles intenses, ce qui a créé un corps cristallin dont les propriétés restent inexpliquées à ce jour. Procure une protection modérée contre les émissions psi, mais émet des radiations. + + + Fleur protectrice + + + Cristal + + + L'origine des éléments électrostatiques qui composent cet artefact reste un mystère pour les scientifiques. Très populaire dans la Zone pour ses propriétés énergisantes et ce, en dépit de l'usure physique provoquée par un usage prolongé. Émet des radiations. + + + Batterie + + + Cet artefact a longtemps été considéré comme inutile, mais des scientifiques ont récemment découvert que s'il était gardé en contact constant avec le corps, il avait un effet stimulant sur le système nerveux. Émet des radiations. + + + Coquille + + + Cet artefact reste un mystère pour les scientifiques qui l'ont examiné. Cependant, force est de constater que les pulsations produites par ses sections les plus épaisses améliorent la coagulation du sang dans les plaies, ce qui accélère nettement la vitesse de guérison des blessures. Émet des radiations. + + + Gouttes nourricières + + + Cet artefact électrostatique peut absorber, puis décharger de grandes quantités d'électricité. Il est capable de protéger son porteur contre des décharges pouvant atteindre 5 000 volts. Émet des radiations. + + + Flash + + + Cet artefact unique résonne sous l'influence des émissions psi. Les stalkers ont appris à l'utiliser pour qu'il émette des vibrations de nature contraire et neutralise les émissions psi en partie ou en totalité. Émet des radiations. + + + Clair de lune + + + Appartenant au groupe des artefacts électrostatiques, l'étincelle peut réduire les fluctuations des champs électriques. Émet des radiations. + + + Étincelle + + + Cet artefact ressemble étrangement à un œil humain. Il accélère le métabolisme et la cicatrisation des plaies. Les vétérans disent qu'il porte chance. Émet des radiations. + + + Œil + + + Cet artefact très rare se forme dans les zones à intense activité thermique. Ses radiations infrarouges accélèrent les processus métaboliques et donc la cicatrisation. De très grande valeur, il émet des radiations. + + + Flammèche + + + Bien que cet artefact émette de la chaleur, l'utilisateur peut le manier sans peur de se brûler. Il maintient une température de 75 degrés fahrenheit tout autour de lui, quelles que soient les conditions environnementales. Émet des radiations. + + + Bolide + + + Artefact relativement rare qui se forme dans les zones contaminées par des produits chimiques, le Kolobok est très apprécié pour ses vertus régénératrices. Pour des raisons encore inexpliquées, les scientifiques prétendent qu'il modifierait également le code génétique des stalkers qui s'en servent. Émet des radiations. + + + Kolobok + + + Luciole + + + Résultat de l'interaction d'un grand nombre de champs gravitationnels, le cyprin produit son propre champ gravitationnel qui allège les objets alentour. Très utile pour réduire le poids de l'équipement transporté, il est très demandé. Émet des radiations. + + + Cyprin + + + Le gravi se forme à partir de substances métalliques exposées pendant de longues périodes à des forces gravitationnelles intenses. Il génère un champ antigravitationnel et permet donc aux stalkers de transporter des charges plus importantes. Émet des radiations. + + + Gravi + + + À première vue, cet artefact ressemble à un Kolobok. Certains affirment qu'il s'agit d'ailleurs du même artefact, avec des propriétés décuplées suite à une exposition à un puissant champ électrique. Grâce à ses propriétés uniques, il améliore nettement la capacité musculaire de son porteur. Émet des radiations. + + + Flocon + + + Cet artefact gravitationnel attire et absorbe les particules radioactives et réduit donc leurs effets sur le corps humain. Très courant dans la Zone et même à l'extérieur, mais de façon officieuse, il est utilisé en cas d'irradiation. + + + Méduse + + + Cet artefact organique est constitué de tissus fossilisés d'animaux mutants. Lorsqu'il est placé dans un milieu contaminé par des produits chimiques, il les convertit en un mucus fluide. Émet des radiations. + + + Morceau de viande + + + Cet artefact luisant génère un faible champ antigravitationnel. Les stalkers l'utilisent en général pour renforcer les effets d'un gravi. Émet des radiations. + + + Étoile phosphorescente + + + Artefact organique aux propriétés uniques. Améliore nettement le métabolisme, modifiant ainsi la vitesse de cicatrisation, sans pour autant accélérer l'accumulation des toxines. Grâce à son prix raisonnable et à son apparence plaisante, cet artefact est très prisé par les collectionneurs. Émet des radiations. + + + Cœur + + + Cet artefact de forme étrange apparaît dans les zones d'activité gravitationnelle anormale. Il agit comme une éponge qui absorbe les particules radioactives et protège ainsi le porteur contre les radiations. Il permet également de neutraliser les particules déjà absorbées par le corps. + + + Tortillon + + + Boussole + + + Cela fait plusieurs années que personne n'a trouvé un tel artefact. Il peut indiquer les passages sûrs à travers les champs d'anomalies. Il permettrait de traverser les champs d'anomalies les plus complexes sans aucune difficulté. Très peu de gens savent s'en servir correctement. + + + Cœur de l'Oasis + + + Cet artefact a été trouvé au cœur de la légendaire Oasis. Il ressemble à une plante cristallisée qui aurait acquis les propriétés curatives des lieux. Cependant, contrairement à l'Oasis, cet artefact est hautement radioactif. + + + La Luciole interagit avec des champs de type inconnu pour accélérer la régénération des tissus et des organes des êtres vivants, et stabiliser les processus métaboliques. Cet artefact peut littéralement remettre un stalker agonisant sur pied en quelques secondes. Malheureusement, il est très rare. Émet des radiations. + + diff --git a/gamedata/configs/text/fra/st_items_equipment.xml b/gamedata/configs/text/fra/st_items_equipment.xml new file mode 100644 index 0000000..85d919a --- /dev/null +++ b/gamedata/configs/text/fra/st_items_equipment.xml @@ -0,0 +1,156 @@ + + + + Médicament antiradiations + + + Le médicament antiradiation Mexaminum est assez courant dans la Zone. Il provoque la contraction des vaisseaux sanguins périphériques et une privation d'oxygène, ce qui permet de traiter et prévenir les effets de l'exposition aux radiations. Aucun effet secondaire sévère. Peut dans certains cas provoquer nausées, crampes et douleurs d'estomac. + + + Pansement + + + Bandages élastiques classiques permettant de limiter les saignements et d'empêcher l'infection des blessures. Appliquer le pansement directement sur les plaies. En cas d'atteinte artérielle, faire pression sur la blessure à travers le bandage. + + + Jumelles militaires standard, avec zoom optique x7,5. Utiles pour observer les environs tout en restant à bonne distance. + + + Jumelles + + + Pain + + + Difficile de dire qui a réussi à pétrir ce pain dans la Zone, mais il n'est ni contaminé, ni radioactif, plutôt frais et tout à fait comestible. Aucun stalker ne s'en est plaint jusqu'ici. + + + Délice du touriste + + + Nourriture en conserve provenant d'un entrepôt militaire pillé par les stalkers. Difficile de savoir ce que contiennent ces boîtes, mais ce doit encore être comestible, si l'on en croit la date d'expiration. + + + Détecteur "Écho" + + + Ce vieux détecteur d'activité anormale émet un signal sonore lorsque vous approchez d'une anomalie. Il signale également la présence d'artefacts et indique la distance vous séparant du plus proche par la fréquence de ses bips. Pour passer en mode Recherche d'artefacts, il suffit de soulever le couvercle. En raison de son caractère quelque peu rustique, ce détecteur ne peut repérer que les artefacts les plus courants. + + + Détecteur "Ours" + + + Détecteur "Veles" + + + Détecteur nouvelle génération. Grâce à trois chambres de détection modernisées, l'emplacement des artefacts s'affiche sur un écran spécialisé, ce qui permet de les localiser plus facilement. Lorsqu'il est fermé, le détecteur ne signale que les radiations et les anomalies. Pour passer en mode Recherche d'artefacts, il suffit d'ouvrir le couvercle frontal. Il peut alors repérer tous les artefacts connus. + + + Détecteur prototype "Svarog" + + + Détecteur expérimental aux fonctionnalités perfectionnées. Il est fourni avec une base de données des zones statiques anormales, tout en restant capable de détecter les artefacts. La position des anomalies et des artefacts s'affiche sur un écran spécial. Le mode Recherche d'artefacts s'active en relevant le couvercle de l'écran et permet de détecter tous les types de formations anormales, même celles inconnues à ce jour. + + + Torche frontale standard. Utile pour les stalkers qui veulent voir où ils vont dans le noir, mais peut attirer l'attention. + + + Lampe de poche + + + Anabiotique + + + Antidote + + + L'antitoxine IP2 est un médicament complexe composé de plusieurs antidotes, dont le metoclopramidum, la pyridoxine, la thiamine et la riboxine. L'injection de toute une gamme d'antibiotiques permet de neutraliser poisons et venins, naturels ou synthétiques. L'IP2 n'est pas particulièrement populaire dans la Zone car la majorité des stalkers utilisent une combinaison et un masque à gaz. Cependant, certains préfèrent en avoir toujours une dose sur eux. Ses effets sont de longue durée. + + + Hercule + + + Vinca + + + Vikasolum ukrainien, équivalent artificiel de la vitamine K. Ce médicament sert essentiellement à accélérer la coagulation. Très recherché par les stalkers qui cherchent à soigner plus rapidement entailles et lacérations. Ses effets sont de longue durée. + + + Psi-bloquant + + + Médicament empêchant l'emballement neuronal. Sa consommation induit une perte à court-terme des émotions. Utilisé dans la Zone pour compenser les effets des champs psi. Ses effets sont de longue durée. + + + Radioprotecteur + + + Boisson énergétique + + + Souvent bue par les stalkers qui ne peuvent pas se payer le luxe de faire une pause. Contient une grande quantité de glucides et stimule la production d'adrénaline. + + + Une guitare qui a bien servi. + + + Guitare + + + Saucisse diététique + + + Cette saucisse à base de poulet et de soja est souvent au menu des stalkers au petit-déjeuner, au déjeuner et au dîner... faute de mieux. Reste comestible très longtemps grâce à sa haute teneur en conservateurs. + + + Médikit + + + Médikit militaire + + + Médikit de premiers soins pour les blessures au combat. Contient des coagulants à base de menadione, des antalgiques, des antibiotiques et des immunostimulants, ainsi qu'un kit d'extraction de balles et autres fragments. Équipement standard des forces armées, souvent utilisé par les membres du Devoir. + + + Médikit de premiers soins standard. Permet de traiter toute une gamme de blessures : plaies, ecchymoses, brûlures classiques et chimiques, empoisonnements. Très demandé. + + + Médikit scientifique + + + Médikit spécialement conçu pour la Zone. Contient des produits permettant de traiter les blessures, mais aussi de ralentir et d'empêcher l'irradiation. Contient du vikasolum, du batilolum et de la naphazoline. + + + Aucune donnée. + + + PDA + + + Vodka cosaque + + + Distillée par GSC, cette vodka descend facilement et réduit considérablement les effets des radiations. À consommer avec modération ! + + + Ce détecteur d'activité anormale de dernière génération dispose d'un écran qui indique non seulement dans quelle direction, mais aussi à quelle distance se trouvent les artefacts. Pour passer en mode Recherche d'artefacts, il suffit de soulever le couvercle. Malheureusement, la liste des signatures d'artefacts en mémoire est quelque peu datée. + + + Médicament expérimental conçu par le professeur Ozersky pour les équipes de recherche qui travaillent dans la Zone. C'est un dérivé de tétrodotoxine surnommé "Poudre à zombie" qui désactive complètement le système nerveux central de façon à permettre au sujet de survivre à des émissions à découvert. Aucun test officiel ou de terrain n'ayant été effectué, l'efficacité et les effets secondaires peuvent varier. + + + Boulon + + + Le composant principal de ce produit est un stéroïde de synthèse très proche de la testostérone. Souvent utilisé par les stalkers pour les opérations de longue durée, il réduit la fatigue musculaire et augmente nettement la capacité d'emport. Ses effets sont de longue durée. + + + Médicament antiradiations B190 Indraline, inclus dans les médikits du personnel des centrales nucléaires. Très utilisé dans la Zone à la place de l'hydrochloride de cystéamine, dont la prise répétée peut être mortelle. Réduit les effets des radiations gamma sur les tissus vivants. Comme ses effets ne sont pas instantanés, il est conseillé de l'utiliser avant l'exposition. Ses effets sont de longue durée. + + + Harmonica + + + Pour le blues et les histoires d'amour en prison. + + diff --git a/gamedata/configs/text/fra/st_items_outfit.xml b/gamedata/configs/text/fra/st_items_outfit.xml new file mode 100644 index 0000000..a479692 --- /dev/null +++ b/gamedata/configs/text/fra/st_items_outfit.xml @@ -0,0 +1,117 @@ + + + + Combinaison CS-3a + + + Armure du Devoir PSZ-9d + + + PS5-M "Protection universelle" + + + Exosquelette + + + Combinaison blindée "Bulat" + + + L'exosquelette protège extrêmement bien contre les balles et les éclats, mais réduit la mobilité du porteur. Inefficace face aux balles perforantes. + + + Exosquelette + + + Combinaison blindée conçue pour les opérations d'assaut. Procure une protection exceptionnelle contre les balles blindées et les éclats sans entraver la mobilité du porteur. Inefficace face aux balles perforantes. + + + Combinaison blindée militaire + + + Manteau en cuir noir classique. Sa seule fonction : réchauffer son porteur la nuit et le protéger de la morsure d'un chien aveugle. Bien que peu confortable, c'est l'équipement préféré des bandits de la Zone, soit parce qu'il leur permet de se cacher dans le noir, soit parce qu'il leur donne un air "cool". + + + Manteau en cuir + + + Combinaison SEVA + + + Combinaison blindée Berill-5M + + + Casque M12 Sphère + + + Casque intégral en titane et aluminium. L'extérieur en tissu comprend des poches permettant d'ajouter des plaques de blindage. Le Sphère M12 est généralement utilisé avec une combinaison blindée, comme la série des PSZ militaires. Très populaire dans la Zone, il dispose d'un masque filtrant intégré et d'un dispositif de vision nocturne de première génération. Dispose d'emplacements électroniques. + + + Casque en acier + + + Casque en acier aussi ancien que dépassé. Ne procure aucune protection contre les anomalies ou les radiations, mais peut dévier une balle. N'a jamais été très populaire dans la Zone, hormis lors de brefs conflits entre factions. + + + Casque intégral + + + Casque intégral léger et étanche permettant de se protéger contre les anomalies. À en juger par son design, il est issu du même institut de recherche que la combinaison SEVA. Il a probablement été conçu pour être utilisé avec des combinaisons blindées militaires dans des zones hautement anormales. + + + Masque à gaz + + + Masque à gaz en plastique et caoutchouc utilisé pour filtrer les particules radioactives et les substances empoisonnées. Très utilisé par les débutants et les vétérans de toutes les factions. Ne procure aucune protection physique. + + + Casque tactique + + + Modèle occidental d'un casque tactique sans camouflage. Nul ne sait comment il est arrivé dans la Zone. Ce casque a été conçu pour fournir au chef de groupe des informations stratégiques via un ensemble de détecteurs et dispositifs de communication, qui ne sont toutefois pas inclus dans cet exemplaire. Comprend des plaques de blindage en kevlar composite, des composants électroniques blindés, un masque filtrant et un dispositif de vision nocturne de première génération. + + + Combinaison "Lever de soleil" + + + Combinaison de garde de la Liberté + + + Cette combinaison de stalker légère est produite par les artisans de la Liberté. Son tissu a été traité avec de l'Horizon, une solution spéciale mise au point par les chercheurs de la faction pour améliorer la résistance aux anomalies. À l'instar de la combinaison "Lever de soleil", le "Vent de Liberté" comprend des protections corporelles et des poches à artefacts. + + + Combinaison "Vent de Liberté" + + + Cette version modernisée de la combinaison du Devoir est parfaite pour les nouvelles recrues habituées aux combinaisons légères. Contrairement à la série PSZ, elle protège bien contre les anomalies tout en arrêtant les balles de petit calibre. Il est impossible d'y ajouter une poche à artefacts, mais elle peut être améliorée avec un système d'aide au combat. + + + Cette combinaison a été conçue pour les assauts en zone anormale. Elle se compose d'une combinaison militaire blindée PSZ-12p, de compensateurs intégrés et un justaucorps de protection contre les anomalies. Le blindage fournit une excellente protection contre les balles et les éclats, sans trop réduire la mobilité du porteur. N'inclut pas de poche à artefacts. + + + Cette combinaison conçue pour les recherches scientifiques dans la Zone combine un module respiratoire en circuit fermé et un revêtement isolant, ce qui permet de fournir une excellente protection contre les anomalies. Par contre, elle ne procure quasiment aucune protection contre les balles ou les fragments. Inclut une poche à artefacts. + + + Cette combinaison créée par un institut militaire de Kiev est une bonne alternative aux combinaisons artisanales. Si son blindage intégré n'est efficace que contre les balles de petit calibre, le système de protection contre les anomalies et les radiations est l'un des meilleurs de la Zone. Très appréciée des vétérans pour son évolutivité et ses deux poches à artefacts. + + + Ce vêtement se compose d'une combinaison blindée militaire PS5 et d'un revêtement protecteur au béryllium spécialement conçu pour la Zone. Peu efficace contre les anomalies, il procure une excellente protection contre les radiations. Il est souvent donné aux stalkers par les militaires en échange de butin. N'inclut pas de poche à artefacts. + + + Cette combinaison de stalker artisanale se compose d'un justaucorps en caoutchouc épais, d'un revêtement en plexiglas et de plaques de blindages. Bien que ce dernier n'arrête même pas les balles de petit calibre, cette combinaison reste très populaire de par son faible coût et son potentiel d'évolution. Inclut des poches à artefacts. + + + Cette combinaison au blindage renforcé produite par les artisans de la Liberté est un bon compromis entre capacités de combat et protection contre les anomalies. Son blindage se compose de plaques renforcées et de couches de kevlar capables d'arrêter les balles de petit calibre. Son revêtement au Sovereign protège contre les anomalies. Inclut une poche à artefacts. + + + Cet ancien modèle de combinaison du Devoir s'inspire d'une Spetsnaz PSZ-9 modifiée pour la Zone. Disposant d'un blindage capable d'arrêter des balles de gros calibre, elle est lourde, encombrante et ne protège quasiment pas des anomalies. Il est impossible de rajouter une poche à artefacts, mais cette combinaison peut être améliorée avec un système d'aide au combat. + + + Ancien équipement standard des groupes d'assaut de Firmament, cette armure sert à rappeler, même après la disparition de sa faction d'origine, que la meilleure des protections ne garantit en aucun cas votre survie dans la Zone. Capable d'arrêter des balles de petit calibre, elle protège également contre les anomalies. Inclut une poche à artefacts. + + + Version expérimentale d'un exosquelette militaire, cette armure n'a jamais été produite en série en raison de son coût de fabrication exorbitant et de ses défauts de conception. Elle est cependant très demandée dans la Zone pour sa capacité d'emport et est donc fabriquée en petits nombres hors d'Ukraine. Inclut une poche à artefacts. + + + Combinaison SEVA + + diff --git a/gamedata/configs/text/fra/st_items_quest.xml b/gamedata/configs/text/fra/st_items_quest.xml new file mode 100644 index 0000000..c46bad9 --- /dev/null +++ b/gamedata/configs/text/fra/st_items_quest.xml @@ -0,0 +1,369 @@ + + + + Documents annotés + + + Les documents spécifient que sur ordre de la Section 1, le passage souterrain Pripyat 1 a été scellé et du dioxyde de carbone mélangé à un composant chimique a été répandu dans tout le secteur. Le personnel a reçu pour consigne de porter des combinaisons de protection et des modules respiratoires en circuit fermé. + + + Courrier concernant les livraisons de l'objet 62 + + + "En raison d'une anomalie, le transport de l'objet 62 ne peut être effectué à ciel ouvert. Pour toute livraison, utiliser le passage souterrain Pripyat 1. Le planning de livraison et le blocage à l'accès souterrain ont été transmis à la Section 1." + + + Dossier accompagnant l'ordre + + + Les documents font état du transfert de la chaîne de production de l'usine de Jupiter vers les laboratoires souterrains. Ce sujet aurait dû être abordé dans la section Laboratoire. + + + Planning de livraison + + + "Planning de livraison de l'objet 62 : 14/07 - 20 unités (1 endommagée) ; 21/07 - 32 unités (2 endommagées) ; 28/07 - 26 unités (1 endommagée). Le rapport de livraison concernant les pertes a été envoyé aux services administratifs de l'usine. Un duplicata a été transmis à l'atelier de réparations." + + + Feuille de bloc-notes + + + La décision suivante a été prise lors de la réunion : le service de livraison doit se concentrer sur l'évacuation du complexe de production de l'objet 62. + + + Journal de service + + + "...18h30 - Fermeture hermétique de toutes les sections du passage souterrain P-1. 19h00 - Fermeture hermétique de la voie ferrée. Les portes ont dû être soudées. 19h45 - Fermeture des voies de transport. Il a fallu utiliser le générateur de secours pour activer le mécanisme de verrouillage des portes, en raison de la coupure de l'alimentation électrique dans le passage souterrain. 20h00 - L'atelier de chimie a initié la propagation du gaz dans le passage souterrain. 22h00 - Fin de l'obturation du passage souterrain. Tous les documents ont été envoyés à la Section 1." + + + Plans du passage souterrain + + + Plans du souterrain Pripyat 1 indiquant qu'il passe sous la ville de Pripyat. Le document contient quelques notes : 1. Sceller les portes de transport. 2. Utiliser le gaz de l'atelier de chimie pour rendre le passage souterrain inaccessible. + + + Isolant modifié + + + Cet ancien isolant s'est transformé en un artefact instable. Il est probablement à l'origine d'émissions psi intermittentes. + + + Bidon de colophonium + + + Bidon de colophonium utilisé en soudure. Matériau rare dans la Zone, très recherché par les techniciens locaux qui doivent souvent se contenter d'adhésif industriel pour faire leurs réparations. + + + Condensateurs + + + Ensemble de composants électriques élémentaires. Relativement courants dans la Zone, ils sont utilisés pour améliorer des équipements de pointe. Cependant, le niveau de capacité électrique qu'ils confèrent est rarement nécessaire. + + + Base de textolite + + + Le textolite est l'un des principaux composants des circuits imprimés. Une base de Textolite vierge est au technicien radio ce que la page blanche est à l'écrivain. + + + Boîte de transistors + + + Une boîte de transistors, des semi-conducteurs générant, transformant et amplifiant les oscillations électriques. Les transistors font le bonheur de tous les techniciens radio de la Zone. + + + Bobine de fil de cuivre + + + Excellent conducteur et source de matière première, le fil de cuivre est très difficile à trouver dans la Zone. Toutes les réserves ont été récupérées, fondues et livrées à des centres de recyclage dans les années 90. + + + Détecteur de mutants + + + Inspiré du détecteur d'activité anormale, ce dispositif est équipé d'un capteur à courte portée et d'un composant permettant d'enregistrer et de stocker les données. Il dispose également d'une fonction de désactivation automatique qui s'actionne lorsqu'une certaine quantité de données a été enregistrée. + + + Documents administratifs + + + À en croire le contenu de ce dossier administratif, la documentation technique afférente à l'objet 62 a été transmise à l'atelier de test sur ordre du laboratoire central. + + + PDA de Black + + + Un message en particulier attire l'attention. L'expéditeur se nomme le Chacal : "Mon informateur à l'institut de recherche te recommandera pour mener l'expédition. Il devra faire appel à ton équipe pour surveiller le bunker. Ça vous facilitera la tâche. Mais n'oublie pas que le client ne veut absolument pas que les infos sur les objets de type X remontent jusqu'aux scientifiques. Si cela devait arriver, nous ne pourrions plus quitter la Zone. Ne me fais pas faux bond, Black !" + + + Boîte noire + + + La boîte noire du Stingray 1. Elle doit contenir les données cryptées du vol avant l'accident. + + + Explosifs militaires avec minuteur de 5 secondes. + + + Explosifs avec minuteur + + + Roue modifiée + + + PDA d'Accroc + + + Le PDA contient quelques photos érotiques et une carte avec un point près du poste électrique indiquant clairement une planque. Rien de spécial à signaler. + + + PDA de bandit + + + On peut lire dans le dernier message : "Chope-moi ce salopard d'Accroc ! On a des comptes à régler ! Trouve-le et s'il se rebiffe, donne-lui une bonne leçon ! Sultan." + + + Ce PDA contient des informations sur les clients de Morgan et les coordonnées de l'entrepôt secret du Devoir. Il y aurait volé des armes qu'il aurait ensuite revendues à des mercenaires, avant d'entrer en contact avec un homme du nom de Sultan. Pour brouiller les pistes, Morgan a décidé de révéler l'emplacement de l'entrepôt à la Liberté. Son complice, le Vautour, était censé transmettre l'information. Le PDA fait également état d'un capteur que seul Morgan peut désactiver et qui alertera le Devoir si la planque est découverte. Ces informations intéresseront sûrement le Devoir et la Liberté. + + + PDA de Morgan + + + Une note au dos d'un vieux document : "Spectre, je récupère mon matos. Merci pour le fusil d'assaut, je vais en avoir besoin ! Je te laisse certaines des fournitures médicales du Doc en échange. J'ai réussi à piéger le mercenaire qui me filait, donc je n'en ai plus besoin... Enfin, je l'espère. Je vais aller voir les Crocs. Il a réussi à monter le décodeur. Rendez-vous à l'endroit habituel, si tu es dispo. Strelok." + + + Message pour le Spectre + + + Un message rédigé sur du papier quadrillé : "Strelok, j'ai laissé l'autre décodeur dans la planque de Pripyat, au cas où. Le Spectre et moi, on va à l'Agroprom. On t'a laissé quelques munitions, t'as qu'à te servir si t'en as besoin. Bonne chasse ! Les Crocs." + + + Message pour Strelok + + + Un message griffonné au dos d'un vieux document : "Les Crocs, je ne peux plus t'attendre. J'ai un tas de mecs qui me collent aux basques. Je vais me rendre jusqu'au sarcophage tout seul. Je laisse mon flingue ici, j'ai plus de munitions de toute façon. Si je ne m'en sors pas, donne-le au Spectre ! S'il prend soin du flingue, le flingue prendra soin de lui. Salut. Strelok." + + + Message pour les Crocs + + + Module de mémoire du drone. Novikov l'a débloqué pour vous permettre d'accéder aux informations récupérées par le drone. Il contient notamment les coordonnées de trois balises radio. + + + Module de mémoire (débloqué) + + + Module de mémoire du drone. Malgré l'accident, le module reste opérationnel, mais la mémoire n'est pas accessible. + + + Module de mémoire (bloqué) + + + Un vieux morceau de papier sur lequel sont griffonnés l'emploi du temps du garde et le chiffre 1421. Un message a été rédigé au feutre : "Lieutenant V. I. Sokolov. Après l'accident, je me suis rendu au point d'évacuation B205. Aucune évacuation n'a été tentée ces deux derniers jours et rester ici devient trop dangereux. J'ai donc décidé de quitter le point B205 pour me rendre au laboratoire scientifique mobile au nord-est." + + + Message de Sokolov + + + Plante provenant d'un bosquet partiellement transformé par une activité anormale. Le bosquet a adopté un mécanisme de défense agressif pour se protéger, mais la plante ne semble pas dangereuse. + + + Plante anormale + + + Le dernier message reçu sur le PDA provient de Morgan. Il met à prix la tête d'un stalker du nom de Degtyarev. Plusieurs photos sont en pièces jointes. Selon les instructions de Morgan, le message doit être supprimé. + + + PDA d'un mercenaire + + + Cette valise contient un détecteur d'artefacts, une batterie et un puissant transmetteur. Le dispositif scanne les anomalies afin de déterminer la quantité et le type d'artefacts présents. Ces informations sont ensuite transmises automatiquement au bunker des scientifiques. + + + Détecteur d'activités anormales + + + Le PDA contient un enregistrement audio : \n"... Où que nous allions, nous revenons toujours à notre point de départ. Je n'arrive pas à m'habituer à ce brouillard... C'est quand même étrange que Chepurny ait disparu sans laisser de traces. Est-ce qu'il aurait trouvé un moyen de sortir ?... \nSixième jour... Nous avons épuisé nos réserves d'eau... Le colonel a pété les plombs et a tiré sur deux hommes à bout portant avant de retourner l'arme contre lui... Je suis désormais seul dans cette saloperie d'anomalie... Si je n'avais pas coupé la liaison avec le QG, ils auraient pu venir à notre secours... Et le Devoir n'aurait jamais existé. Je me demande ce qui se serait passé... Et merde, qu'est-ce que ça peut foutre ? Le capitaine Tachenko est mort il y a longtemps... Et le général Tachenko du Devoir va bientôt le suivre dans la tombe... Ce n'est que justice, je suppose..."\nOn entend un coup de feu et l'enregistrement est coupé. + + + PDA du général Tachenko + + + Manuel d'utilisation de l'objet 62. Selon les instructions, aucun réglage n'est nécessaire pour la trajectoire et la direction de la balle, car celles-ci n'ont que peu d'incidence dans le rayon de portée efficace de l'arme.\nCes documents doivent rester confidentiels, car ils pourraient intéresser les analystes du SBU. + + + Manuel d'utilisation de l'objet 62 + + + Ce bloc-notes contient la description détaillée d'une expérience évaluant l'effet d'un champ psi sur un objet situé dans un autre hémisphère. Une équipe de scientifiques a reçu un signal déformé dans les Caraïbes. C'est comme si ce signal avait été modifié, corrigé par quelqu'un. Ce phénomène pourrait confirmer la théorie de la noosphère ; ce serait elle qui aurait altéré le signal.\nCes documents doivent rester confidentiels, car ils pourraient intéresser les analystes du SBU. + + + Bloc-notes contenant la description d'une expérience + + + Ces documents décrivent les caractéristiques techniques de l'antenne et la façon dont elles diffèrent de leurs valeurs attendues. Une note rédigée au verso indique que ce dossier a été préparé dans le laboratoire X10.\nCes documents doivent rester confidentiels, car ils pourraient intéresser les analystes du SBU. + + + Émetteur Arc-en-ciel - Fiche technique + + + Ces documents font état d'une découverte annexe aux recherches. Il a en effet été découvert que certains êtres vivants sont capables de générer des émissions psi dirigées. Un émetteur de champ biologique qu'on pourrait comparer à un gigantesque cerveau, a été développé dans le laboratoire X16.\nCes documents doivent rester confidentiels, car ils pourraient intéresser les analystes du SBU. + + + Documents de recherches + + + Ce rapport détaille l'étude des échantillons biologiques envoyés par le laboratoire X18. Ceux-ci ont été soumis à des effets de champ d'informations de différentes intensités. Le rapport décrit avec précision la mutation des êtres vivants exposés à ces émissions.\nCes documents doivent rester confidentiels, car ils pourraient intéresser les analystes du SBU. + + + Rapport d'étude d'échantillons + + + Le document fait état du transfert de l'équipe de recherche et de l'équipement vers le laboratoire X7 qui sera désormais utilisé pour mener des recherches sur l'influence de la noosphère. Membres de l'équipe de recherche : N. A. Lebedev, E. F. Kalancha and V. I. Suslov.\nCes documents doivent rester confidentiels, car ils pourraient intéresser les analystes du SBU. + + + Ordre de transfert + + + Dernier message sur le PDA : "J'ai trouvé le générateur de secours du sixième étage, le service technique. Il m'a fallu deux heures pour le remettre en état de marche. Je voudrais bien l'activer, mais Serbin m'a ordonné de ne rien faire avant l'arrivée de son équipe." + + + PDA de Barchuk + + + Carte magnétique rouge portant l'inscription X8. + + + Carte rouge X8 + + + Le PDA contient de nombreuses entrées, mais une en particulier attire votre attention : "Le Monolithe communique avec le destinataire de ce message et lui ordonne de récupérer des munitions et de les entreposer dans des emplacements inconnus des hérétiques. Sur ces lieux devra être apposée la marque du Monolithe. Lorsqu'ils seront en danger, ceux qui entendent la voix du Monolithe recevront sa sagesse... J'ai transmis la volonté du Monolithe à mes frères et leur ai indiqué où dissimuler les munitions..." + + + PDA d'un combattant du Monolithe + + + Boîte à outils d'enfant. Loin d'être adaptée à un travail de précision, elle pallie la pénurie d'outils dans la Zone et peut s'avérer utile à un technicien ingénieux. + + + Outils rudimentaires + + + Boîte à outils de qualité satisfaisante. De toute évidence, ces outils ont été rassemblés par un technicien expérimenté pour son usage personnel. Malgré leur âge, ils sont en bon état. + + + Outils de précision + + + Boîte à outils professionnelle destinée au réglage méticuleux de l'équipement. À en croire l'étiquette, il s'agit d'outils allemands. Cette boîte contient presque tous les instruments nécessaires au calibrage et au réglage de différents mécanismes. + + + Outils de calibrage + + + Vieille carte magnétique + + + Carte magnétique de Cardan. Elle permettait d'accéder à l'atelier de test de l'objet 62. + + + Documents relatifs à l'objet 62 + + + Documents décrivant le mécanisme et les spécificités techniques du dispositif électromagnétique.\nUne note accompagne le dossier : "Ces documents doivent être rapportés au laboratoire central X8. Je ne serai pas disponible, ce sera donc à vous de les remettre. Utilisez la carte magnétique dans le centre de service Pripyat Yubileiny pour accéder au second niveau du sous-sol. Vous saurez quoi faire ensuite. Ci-joint la carte magnétique.\nN. Lebedev"\nCes documents doivent rester confidentiels, car ils pourraient intéresser les analystes du SBU. + + + Carte jaune X8 + + + Ordre N° 562 + + + Ordre interne N° 423 + + + Clé A + + + Une clé banale portant la lettre A. + + + Clé B + + + Une clé banale portant la lettre B. + + + Le PDA contient l'enregistrement audio d'un discours particulièrement névrosé : "C'est donc là que ces mutants se planquent !... À croire qu'ils ne savent pas que j'ai mon petit raccourci, près de la ferme du nord... Vous allez pas en revenir, saloperies !" + + + PDA de Noah + + + Un message au milieu de nombreux spams est marqué comme important. \n "Nous avons établi un bivouac à côté de la station de traitement des déchets et tous ceux qui sont sur le projet te rejoindront. Black ne sera pas de la partie, lui et son équipe sont à Jupiter sur un autre coup. L'armée a suspendu tous les vols dans la Zone, donc on devrait être tranquille de ce côté-là. Quand les stalkers auront trouvé un moyen d'atteindre Pripyat, on enverra un guide et on attendra l'arrivée des hommes du client. Ils nous indiqueront où se trouve le labo.\nLe Chacal." + + + Ordinateur de mercenaire + + + Dernier message reçu :\n"On est en train de poireauter près des anciens ateliers. J'ai envoyé deux gars vous chercher. Mais on devra quand même attendre l'arrivée du coursier du client. Heureusement, l'air est bien plus respirable par ici.\nTesak" + + + PDA du mercenaire Crochet + + + PDA du mercenaire Pic + + + Bombonne contenant un composé chimique dangereux. + + + Bombonne de gaz Perin B3 + + + Le coffre est fermé par un verrou sophistiqué. À en juger par son poids et le bruit qu'il fait quand on le secoue, il doit y avoir quelque chose à l'intérieur. + + + Coffre en métal + + + Note sur le PDA : "Je suis formel, l'artefact est dans l'arbre. Je peux clairement y grimper à partir de la colline. J'espère juste qu'elle ne grouille pas de mutants. Dommage que je me sois frité avec Cardan et Barge... Du coup, je me retrouve tout seul... mais bon, quand je rapporterai l'artefact, ils verront bien que j'avais raison..." + + + PDA du Joker + + + À en juger par le ton de cette note, son auteur était contrarié : "Cardan, ce vieux pochtron ! Non seulement c'est une sacrée feignasse quand il a un coup dans le nez, "autant rester ici, y a pas d'urgence", mais en plus, maintenant, il s'en prend à moi et au Joker... Paraît qu'on est que des jeunots et qu'on n'y connaît rien. Hé hé... Faut dire que le Joker, c'est pas une affaire non plus : il a pris la mouche, récupéré son barda et mis les voiles pendant que j'essayais de calmer le vieux. Qu'est-ce que je suis censé faire, moi ? Rester à picoler avec le pilier de bar ? Non merci ! En plus, sa vodka, c'est de la merde... Beurk !" + + + PDA de Barge + + + Sismik tenait un journal dans son PDA et les dernières entrées sont les plus intéressantes : "Enregistrement N°12. Mes recherches seront bientôt terminées... Les hommes du camp commencent à avoir des soupçons. Le Faisan et Danila ont l'intention d'aller chasser des sangsues... Je me demande quand ils finiront par comprendre... Je dois trier les jarres de sang pour trouver lesquelles ont été contaminées et cacher les autres... Quelqu'un approche. Enregistrement N°13... Probablement le dernier. D'abord ce fouineur, et maintenant le Faisan... Je ne vais pas m'en sortir... Ils vont finir par m'avoir, je le sais. Mais ça n'a pas d'importance. Cette dépendance à l'hémoglobine va bientôt me tuer de toute façon. Et quitte à mourir, je préfère une balle à la maladie." + + + PDA de Sismik + + + Top secret. Ordre N° 562 du commandant du QG responsable de la sécurité de l'Objet N° 1, R. Yu. Didenko.\nL'unité de protection chimique N° 423 doit être transférée du secteur B103 au secteur A19. Objectif : test sur le terrain de la solution chimique Perin B3 dans des conditions similaires au combat réel. Le colonel P. P. Slavin, commandant d'unité, est chargé de mener les tests. Le lieutenant-colonel K. S. Valov, commandant d'unité adjoint, s'occupera la logistique et de la sécurité. + + + Top secret. Ordre du colonel P. P. Slavin.\nConformément à cet ordre, les membres de l'unité de protection chimique N° 423 doivent prendre connaissance des informations suivantes :\n 1. Les clés du conteneur renfermant la solution chimique Perin B3 ont été confiées au colonel P. P. Slavin (clé A) et au lieutenant-colonel K. S. Vlasov (clé B).\n 2. Ordre du convoi, du premier au dernier véhicule : véhicule du commandant d'unité adjoint, véhicule d'escorte N° 8, véhicule de transport blindé N° 1, véhicule de transport N° 1, véhicule de transport blindé N° 3, véhicule d'escorte N° 2, véhicule du commandant d'unité (P. P. Slavin).\n Des exemplaires de cet ordre doivent être remis au lieutenant-colonel K. S. Vlasov et au lieutenant R. B. Nazarenku. + + + Carte magnétique jaune. Porte l'inscription X8.\nCette carte ne doit pas tomber en de mauvaises mains, car elle permet d'accéder au laboratoire secret. + + + PDA du messager de Sultan + + + Le dernier message envoyé à partir de ce PDA est un message audio : "Sultan, je me suis occupé de ce connard ! Ça lui apprendra à venir nous faire chier !" + + + Il s'agissait autrefois d'une roue de la station de dragage. C'est aujourd'hui un étrange artefact. Rien à signaler à son sujet, si ce n'est qu'il luit et n'émet que peu de radioactivité. + + + Message reçu :\n"J'ai réussi à m'arranger pour les armes et ce sale rat va nous vendre les stocks de sa faction. Ça va pas nous coûter bien cher, mais faudra qu'on se magne d'aller à Jupiter.\nVautour." + + diff --git a/gamedata/configs/text/fra/st_items_weapons.xml b/gamedata/configs/text/fra/st_items_weapons.xml new file mode 100644 index 0000000..36472d6 --- /dev/null +++ b/gamedata/configs/text/fra/st_items_weapons.xml @@ -0,0 +1,567 @@ + + + + Munitions .45 ACP + + + Munition chemisée de calibre .45 dont la popularité ne faiblit pas depuis plus d'un siècle. Sa balle lourde et sa charge propulsive réduite limitent la vitesse de la balle tout en augmentant sa puissance d'arrêt. + + + .45 ACP + + + Munitions .45 ACP hydrashock + + + Ces cartouches de .45 ACP inhabituelles se composent d'une balle en métal tendre comprenant un vide d'expansion et un cœur en acier, constituant ainsi un hybride de balle chemisée à tête creuse et de balle perforante. Elles bénéficient des avantages de leurs deux parents, mais aussi, évidemment, de tous leurs défauts. + + + .45 hydro + + + Munitions 12x70 (grenaille) + + + Cartouche standard de calibre 12 contenant de la grenaille de 6 mm. Mortelle à courte portée. Utilisable exclusivement avec des canons à âme lisse. + + + 12x70 (grenaille) + + + Munitions 12x76 (balle) + + + Les lourdes balles de ces munitions de calibre 12 sont généralement utilisées pour la chasse au gros gibier, mais sont également adaptées à d'autres usages. Au lieu de perforer les protections, elles les traversent en les écrasant sous leur poids. + + + 12x76 (balle) + + + Munitions 5,45x39 mm perforantes + + + Munitions militaires 5,45x39 7N22 perforantes pour les fusils d'assaut des pays du Pacte de Varsovie. La balle contient une ogive perforante en alliage durci, très efficace contre les protections corporelles. + + + 5,45x39 perforante + + + Munitions 5,45x39 mm + + + Munitions militaires 5,45x39 7N10 perforantes améliorées pour les fusils d'assaut des pays du Pacte de Varsovie. Bien plus précises que les munitions 7,62 mm grâce à leur recul réduit et leur portée allongée de 100 m. + + + 5,45x39 + + + Munitions 5,56x45 mm perforantes + + + Munitions militaires 5,56x45 mm (index OTAN SS109 / Armée américaine M855) perforantes, utilisées par la plupart des forces armées et spéciales occidentales. Très efficaces contre les protections corporelles. + + + 5,56x45 mm perforantes + + + Munitions 5,56x45 mm + + + Munitions 5,56x45 standard de l'OTAN également connues sous leur nom d'index, SS109. Conçues pour permettre des tirs automatiques de précision. Leurs excellentes qualités balistiques sont un héritage de leurs origines comme munitions de chasse. + + + 5,56x45 + + + Munitions 7,62x54 mm 7N14 + + + Munitions de précision calibre 7,62 avec ogive perforante en acier, conçues pour le SVD. Contrairement à la version pour mitrailleuse, la 7N14 présente d'excellentes caractéristiques de pénétration et une dispersion très limitée. + + + 7,62x54 7H1 + + + Munitions 7,62x54 mm PP + + + Munitions peu coûteuses pour mitrailleuses de calibre 7,62. Ne peuvent être utilisées avec les fusils de précision et sont donc uniquement destinées à la mitrailleuse RP-74. + + + 7,62x54 PP + + + Munitions 9x18 mm + + + Munitions blindées avec ogive perforante en acier sous une chemise en métal. Bonne puissance d'arrêt, mais inefficaces contre les protections corporelles. + + + 9x18 + + + Munitions 9x18 mm +P+ + + + Ces munitions contiennent une balle à forte puissance d'arrêt. La désignation +P+ européenne indique qu'il s'agit de munitions à surpression, avec une augmentation de 30 % de la vitesse initiale. Inefficaces contre les protections corporelles. + + + 9x18 +P+ + + + Munitions 9x19 mm FMJ + + + Ces munitions chemisées conventionnelles de 9x19 mm présentent de bonnes caractéristiques et sont simples à produire. Leur popularité est liée à l'interdiction par les conventions internationales d'utiliser de telles munitions au combat. Inefficaces contre les protections corporelles. + + + 9x19 FMJ + + + Munitions 9x19mm JHP + + + Ces munitions 9x19 mm chemisées à tête creuse procurent une puissance d'arrêt considérable et peu de ricochets. Utilisées par la police et pour l'auto-défense, elles sont inefficaces contre les protections corporelles du fait de leur faible capacité de pénétration. + + + 9x19 JHP + + + Munitions 9x39 mm SP-6 + + + La SP-6 est une munition chemisée subsonique à ogive perforante en acier pour fusil d'assaut. Un silencieux est nécessaire pour obtenir les tirs les plus discrets possibles. Utilisée par les services secrets des pays du pacte de Varsovie, elle est efficace contre les protections corporelles. + + + 9x39 SP-6 + + + Munitions 9x39 mm SP-5 + + + La SP-5 est une munition chemisée subsonique à tête en plomb pour fusils de précision. Un silencieux est nécessaire pour obtenir les tirs les plus discrets possibles. Utilisée par les services secrets des pays du pacte de Varsovie. + + + 9x39 mm SP-5 + + + Batteries + + + Grenade M209 + + + Grenades de 40 mm pour le lance-grenades monté sous le canon M203. Ces grenades créent une zone létale de 5 m de rayon. Peuvent être utilisées avec le lance-grenades intégré du FT200M. + + + M203 + + + Ogive OG-7V + + + Ogives antipersonnel à fragmentation utilisées par le lance-grenades RPG-7U. Elles servent à atteindre les ennemis hors de portée de grenades conventionnelles. + + + OG-7V + + + Grenade VOG-25 + + + Grenades à fragmentation standard pour le lance-grenades monté sous le canon GP-25 Koster. Ces grenades créent une zone létale de 5 m de rayon. Peuvent être utilisées avec le lance-grenades intégré du Tunder S14 et le lance-grenades Bulldog 6. + + + VOG-25 + + + Lunette PSO-1m + + + Lunette soviétique très répandue, à zoom 5x fixe. Se fixe grâce à un support en queue d'aronde, largement utilisé par les pays du Pacte de Varsovie. + + + Lunette PSS-2x + + + Lunette à zoom 5x fixe avec détecteur thermique intégré. Conçue pour les forces spéciales. Se fixe grâce à un support en queue d'aronde. + + + Lunette NSPU-3 + + + Lunette à zoom 5x fixe avec dispositif d'amplification de lumière pour les combats de nuit. Se fixe grâce à un support en queue d'aronde. + + + Lunette SUSAT 4x + + + Lunette à zoom variable 1,6-4x pouvant être modifiée automatiquement pour procurer une meilleure puissance de feu. Se fixe à l'aide du rail Picatinny standard OTAN. + + + Lunette à zoom fixe 4x produite dans les pays occidentaux. Se fixe à l'aide du rail Picatinny standard OTAN. Souvent utilisée pour les tirs de précision à longue ou moyenne portée avec des armes de petit calibre. + + + Lunette SUSAT Crépuscule 1,6x + + + Lunette de visée optique SUSAT à zoom fixe 1,6x et à fort contraste pour les combats en visibilité réduite. Se fixe à l'aide du rail Picatinny standard OTAN. + + + Lunette SUSAT Nuit 1,6x + + + Lunette de visée à zoom fixe 4x, équipée d'un dispositif de vision nocturne pour les combats à longue portée de nuit. Se fixe à l'aide du rail Picatinny standard OTAN. + + + Lunette SUSAT 1,6x + + + Lunette de visée SUSAT à zoom fixe 1,6x, conçue pour les combats à portée courte et moyenne. Se fixe à l'aide du rail Picatinny standard OTAN. + + + Lunette PSO-1 + + + Lunette à zoom 2,7x conçue pour les combats urbains à portée moyenne. Se fixe grâce à un support en queue d'aronde. + + + Silencieux + + + Silencieux rustique, mais efficace, pouvant être modifié si nécessaire. Le tube cylindrique qui se visse au canon est constitué d'un fin maillage de laiton alors que son extrémité opposée se compose d'une série de diaphragmes métalliques avec une ouverture laissant passer la balle. Cet équipement comprend les adaptateurs et produits isolants nécessaires à son montage sur la plupart des armes. Il est généralement utilisé pour réduire les effectifs de l'ennemi sans attirer l'attention sur son utilisateur. + + + Grenade F1 + + + Grenade à main défensive, dont les fragments peuvent traverser une protection corporelle moyenne. Dispose d'un rayon létal de 7 mètres. Les stalkers les obtiennent des militaires sur le marché noir. Ces derniers expliquent plus tard l'absence des grenades en prétendant les avoir utilisées contre les mutants. + + + GP-25 Koster + + + Lance-grenades pour fusils d'assaut du Pacte de Varsovie. Chargement par l'avant, canon rayé, mécanisme d'amorçage à pompe avec sécurité manuelle et sécurité automatique empêchant le tir si le lance-grenades n'est pas correctement installé. Utilise des grenades VOG-25. + + + M203 + + + Lance-grenades M203 modifié pour être plus court de 7,62 cm. Se fixe à l'aide du rail Picatinny standard OTAN. Très populaire dans le monde entier. + + + Grenade RGD-5 + + + Grenade offensive à zone létale de 5 mètres. Peu coûteuse et souvent utilisée par les stalkers pour "nettoyer" les nids de mutants. + + + Grenade fumigène + + + Grenade fumigène. Utile pour créer des écrans de fumée. Une fois la grenade lancée, l'écran se constitue en environ 10 secondes. + + + Couteau + + + AC-96/2 + + + AKM-74/2 + + + AKM-74/2U + + + Martha + + + Fusil à canon scié + + + Fusil de chasse à deux canons sciés parallèles, ce qui le rend plus léger et compact qu'un fusil de chasse complet. Très populaire auprès des bandits en raison de son extrême efficacité à courte portée et de sa discrétion. + + + Kora-919 + + + Steppe Eagle + + + Pistolet assemblé à la main et inspiré du Black Eagle. Tous ses composants ont été ajustés séparément pour offrir une précision de tir inégalée pour une arme de poing de ce type. + + + Black Eagle + + + FT 200M + + + Fora-12 + + + GP37 + + + Fusil Gauss + + + Tunder S14 + + + Ce fusil d'assaut à lance-grenades intégré, semblable aux armes de la famille AKM, a été spécialement conçu pour les unités d'assaut. De configuration bullpup, il est chambré en 9x39 et largement modifiable. Capable de tuer un ennemi portant une protection corporelle ou à couvert en environnement urbain, il est très apprécié des militaires de la Zone, notamment pour son excellente puissance d'arrêt. + + + Storm + + + Version expérimentale d'un fusil d'assaut avec lance-grenades intégré, modification russe du Tunder S14, cette arme a été conçue pour les unités opérant dans la Zone et dispose d'un chargeur d'une capacité remarquable. + + + HPSS-1m + + + Version modifiée d'un pistolet réputé de la première moitié du XXe siècle, aussi fiable, puissant et précis que l'original. Son excellente réputation étant méritée, il est très demandé dans la Zone. + + + IL 86 + + + TRs 301 + + + Viper 5 + + + Ce pistolet-mitrailleur est l'un des plus populaires au monde de par sa fiabilité, sa facilité d'utilisation et sa précision. Depuis plusieurs décennies, il est employé à toutes fins par les armées et forces de police du monde entier. De façon peu surprenante, il s'est très bien vendu sur le marché noir et a fini par se retrouver dans la Zone. + + + Frasier + + + Prototype de pistolet-mitrailleur basé sur l'excellent Viper 5. Conçu pour constituer la prochaine génération d'armes de combat rapproché, il est chambré dans un plus gros calibre, est plus précis et dispose d'une meilleure cadence de tir. + + + PB-1s + + + RP-74 de Zulu + + + Cette arme appartenait à Zulu. Il l'a modifiée pour en agrandir le chargeur et rendre le système d'extraction des balles plus fiable, le surpoids n'étant pas un problème pour son propriétaire. + + + PMm + + + PMm de parade + + + PMm de parade offert par Degtyarev pour "Exécution d'ordres dangereux, mais cruciaux pour la sûreté de l'état et pour bravoure exceptionnelle en service". + + + Eliminator + + + Bulldog-6 + + + Lance-grenades à barillet et chargement par l'avant. Utilisé en général pour la suppression rapide des positions de tir ennemies et, à découvert, pour l'assaut de positions fixes ou l'élimination de mutants particulièrement coriaces. + + + RP-74 + + + Mitrailleuse à bande portable et modifiée avec un système d'alimentation complexe en deux temps. Malgré son poids et son manque de précision, cette mitrailleuse légère est souvent utilisée dans la Zone pour repousser des hordes d'ennemis lors de conflits entre factions ou pour nettoyer des nids de mutants. + + + RPG-7u + + + SIP-t M200 + + + Alpine + + + Modèle unique du SIP-t M200, issu d'une série limitée et conçu pour des forces spéciales de provenance inconnue. Cette arme bénéficie d'un chargeur plus grand, d'un canon en acier très résistant et d'un bloc culasse en polymère renforcé. + + + SGI 5k + + + Fusil d'assaut relativement nouveau rapidement adopté par de nombreux combattants du monde entier, bien qu'il ne suive pas les tendances du moment. Les armes de cette famille sont parmi les meilleures au monde, renommées pour leur fiabilité, leur précision et leur ergonomie. Bien que difficile à obtenir dans la Zone, ce fusil d'assaut fait souvent l'objet de commandes aussi spéciales qu'exorbitantes. + + + SGI-5k de Strelok + + + Fusil d'assaut suisse SGI-5k. Même s'il est loin d'être neuf, il est évident que son propriétaire en a pris grand soin : chaque pièce a été démontée, nettoyée puis remontée pour obtenir des performances optimales en termes de puissance d'arrêt. La lettre "S" a été gravée sur la crosse, à côté de 16 encoches. + + + SPSA-14 + + + SPSA-AUT + + + Le fusil à pompe SPSA-AUT est une exclusivité des ateliers du Devoir. Conçu pour combattre des hordes de mutants, son mécanisme d'alimentation amélioré assure une cadence de tir élevée et le magasin a été agrandi pour accueillir 10 cartouches. Utilise des munitions de calibre 12x70. + + + SPSA Carabine + + + Fusil à pompe militaire conçu sur une base de SPSA-14. Doté d'un mode de tir automatique à l'instar de son prédécesseur, il bénéficie d'un recul réduit grâce à un système d'absorption amélioré. + + + SVDm -2 + + + Fusil de précision militaire en service depuis plus de 50 ans, dont la réputation en termes de fiabilité et de facilité d'emploi n'est plus à faire. Le SVDm-2 est généralement utilisé par l'armée pour accroître la portée effective de ses unités. Dans la Zone, les stalkers l'apprécient pour ses capacités de perforation, efficaces contre les protections corporelles et les mutants. + + + Lynx + + + Version assemblée à la main du fusil de précision SVDm-2. Bien qu'identique au SVDm-2 en apparence, cette variante est idéalement équilibrée en termes de précision et de puissance d'arrêt. + + + SVUmk-2 + + + SVU2-A + + + Ce fusil de précision à canon raccourci et à cadence de tir accélérée constitue une nouvelle étape dans l'évolution du SVUmk-2. Cette arme appartenait à Max, le légendaire gardien de la Liberté. + + + Fusil de chasse + + + Doté d'une grande précision et d'une puissance d'arrêt hors pair, ce fusil de chasse à canon basculant est bien plus efficace qu'un pistolet contre les mutants et est utilisé par la plupart des débutants dans les secteurs peu dangereux de la Zone. + + + Arme non identifiée + + + Arme non identifiée, au mécanisme de tir mystérieux. Elle semble défectueuse, car il ne se passe rien lorsque l'on appuie sur la détente. + + + UDP Compact + + + Fiabilité et longévité exceptionnelles combinées à une excellente précision sont les points forts de cette arme. Ses défauts mineurs incluent une taille non négligeable, un centre de gravité élevé et une culasse massive qui ne facilite pas sa dissimulation. Très populaire auprès des vétérans de la Zone. + + + Mars + + + Pistolet de gros calibre à culasse raccourcie et allégée, version modifiée de l'UDP Compact. Appartenait au mercenaire connu sous le nom de Doberman. + + + SA Avalanche + + + Vintar BC + + + Fusil de précision militaire, conçu pour être permettre des tirs silencieux et invisibles au cours d'opérations spéciales. Le Vintar BC bénéficie d'excellentes capacités de perforation et d'une puissance d'arrêt hors pair. Il comprend une lunette de visée intégrée. Très apprécié des stalkers malgré son chargeur limité. + + + Tide + + + Variante du fusil de précision silencieux Vintar BC, cette arme sacrifie la cadence de tir au bénéfice de la puissance d'arrêt, afin de permettre au tireur d'éliminer ses ennemis un par un, sans révéler sa position. + + + Walker P9m + + + Chaser 13 + + + Fusil à pompe occidental à âme lisse, très populaire dans la Zone de par son incroyable fiabilité et sa grande vitesse de rechargement. Recouvert d'un composé anticorrosion, il est tout particulièrement apprécié par les chasseurs. + + + Predator + + + Fusil à pompe sur mesure qui appartenait à Trappeur. Le chasseur n'avait imposé qu'une seule condition, que cette arme puisse tuer en un seul coup, car il n'y a aucune raison de faire souffrir inutilement un animal, quel que soit le nombre de victimes qu'il ait faites. + + + Batteries artisanales + + + Lunette SUSAT Mera + + + Fusil d'assaut moderne développé pour remplacer l'AKM 74/2 obsolète. Il dispose d'un mode de tir qui permet de placer deux balles exactement au même endroit sur une cible éloignée, ce qui augmente nettement les chances d'atteindre la cible par rapport au mode de tir semi-automatique et accroît mécaniquement sa puissance d'arrêt ainsi que ses capacités létales et de pénétration. + + + Cette arme conçue en 1974 a marqué l'adoption par les pays du Pacte de Varsovie de la tendance mondiale à utiliser des munitions de petite calibre et à puissance réduite pour les fusils d'assaut. Successeur du fusil d'assaut le plus populaire au monde, l'AKM-74/2 dispose d'un frein de bouche encore plus grand que celui de son prédécesseur, qui réduit encore davantage un recul qui était déjà plus que raisonnable. Précision et dispersion en sont grandement améliorées, tout particulièrement lors de rafales ou de tirs uniques enchaînés rapidement. Ce fusil reste simple et fiable. + + + Bien que relevant plus de la catégorie des pistolets-mitrailleurs en termes de poids, de dimensions et même d'utilisation tactique, cette arme reste considérée comme un fusil d'assaut car ses mécanismes internes sont identiques à ceux de l'AKM-74/2. L'AKM-74-2U est plus facile d'emploi au contact et dispose de bonnes capacités perforantes contre les protections corporelles. En revanche, sa portée efficace est limitée (en dépit de celle relativement longue de ses munitions), il surchauffe rapidement en tir en rafale et ses balles ont une forte tendance à ricocher. + + + Version améliorée d'un grand classique qui a survécu à tous les conflits du XXe siècle et perdurera sans aucun doute dans le suivant. Le modèle d'origine et des milliers de variantes sont produits par des centaines d'entreprises dans le monde entier. Son seul défaut est la capacité limitée de son chargeur, largement compensée par la puissance d'arrêt de ses munitions. + + + Un véritable canon portable : volumineux, lourd et incroyablement mortel. Conçu comme arme de poing spécialisée pour la chasse au gros gibier et pour le tir de compétition sur cibles en acier à plus de 50 mètres. Peu employé dans la Zone à cause de son prix, de sa taille et de son poids (quasiment le double de tous les autres pistolets). + + + Cette arme de configuration bullpup et à l'apparence futuriste est en réalité un système militaire modulable adapté à la production en série, qui inclut un système de contrôle de tir informatisé et un lance-grenades de 40 mm. En dépit de son apparence encombrante, elle est très ergonomique, facile d'emploi et présente de bonnes caractéristiques techniques. + + + Pistolet ukrainien principalement utilisé par les forces de maintien de l'ordre. Plus précis, plus ergonomique et disposant d'un chargeur de plus grande capacité que le PMm, il est très demandé dans la Zone à cause de la vente à prix défiant toute concurrence d'un grand nombre de modèles défectueux. Malgré cela, ce pistolet reste très demandé pour ses bonnes caractéristiques de combat. + + + Modèle récent d'une grande famille de fusils d'assaut occidentaux, il diffère de ses prédécesseurs par sa culasse non calée et ressemble davantage aux fusils d'assaut américains à piston à système d'emprunt de gaz à court recul. Il constitue une arme moderne d'excellente qualité, légère, fiable et ergonomique. + + + La production en série et les nombreux défauts de ce fusil expliquent sa présence en de nombreux exemplaires dans la Zone, alors que des versions modernisées sont utilisées à l'extérieur. Les point fort de ce fusil sont sa lunette 4x intégrée, son excellente précision de tir et ses capacités d'amélioration. En revanche, la précision chute rapidement en tir en rafale et les mécanismes internes sont peu fiables. + + + Dernier membre en date d'une longue lignée, ce fusil a été largement modifié sur sa moitié supérieure, son canon, sa culasse et son système d'emprunt des gaz, ce qui a réduit son poids et amélioré son ergonomie. Extrêmement précis, il a cependant tendance à s'encrasser facilement, ce qui n'est guère adapté aux conditions difficiles de la Zone. + + + Pistolet conçu au cours de la seconde moitié du XXe siècle pour les forces spéciales et unités de reconnaissance. L'une des particularités de cette arme est l'avant du canon couvert par le silencieux tandis que la crosse accueille le ressort récupérateur trop long pour la culasse. Clairement obsolète, cette arme est néanmoins efficace entre de bonnes mains. + + + Cet héritage soviétique est l'un des pistolets les plus courants de la Zone, mais également l'un des plus efficaces. Compact, très fiable, facile d'emploi et d'entretien, il pâtit néanmoins d'une courte portée, d'une faible précision et d'une faible puissance d'arrêt. Par ailleurs, comparé à d'autres pistolets plus récents de la même catégorie, il est relativement lourd et dispose d'un chargeur limité. + + + Fusil à pompe à âme lisse et poignée revolver combinant puissance de feu extrême et cadence de tir élevée. Il dispose d'un magasin à grande capacité, mais son volume et son poids considérables, combinés à un temps de rechargement assez long, sont le prix à payer pour ces avantages. Assez rare dans la Zone, il est en général utilisé pour nettoyer les nids de mutants. + + + Ce lance-roquettes des années 60 est passé des surplus militaires à la Zone. Il constitue un système de lancement sans recul à tir unique et inclut une lunette de type PGO-7 2,7x optique. Même si sa grande taille et son poids la rendent peu maniable, cette arme a su trouver des adeptes dans la Zone grâce à sa puissance destructrice considérable et sa facilité d'emploi. + + + Dernier modèle produit en série d'un pistolet très connu, cette arme s'est forgé une réputation pour son excellente ergonomie, sa grande précision et ses mécanismes internes dignes d'une montre suisse. Son seul défaut est son chargeur à capacité limitée, néanmoins compensé par la puissance d'arrêt de ses munitions. Nombreux sont ceux qui pensent que le SIP-t M200 est le meilleur pistolet chambré en .45 ACP jamais produit en série. De nombreux stalkers et mercenaires expérimentés l'ont adopté. + + + Fusil à pompe automatique à âme lisse conçu au cours de la seconde moitié du XXe siècle. Ses deux modes de tir, à pompe ou semi-automatique, en font une arme de choix pour les forces de police et les unités d'assaut. Bien que très fiable et polyvalent, il reste lourd, complexe et coûteux. Il est néanmoins assez populaire dans la Zone, notamment auprès des stalkers qui cherchent à lutter efficacement contre les mutants. + + + Version modernisée du fusil de précision SVDm-2, en configuration bullpup compacte, conçue pour les forces d'intervention rapides. Le tir de précision est plus rapide et l'arme est plus légère tout en conservant l'excellente précision à courte et moyenne portée de son prédécesseur. Toutes ces qualités font que ce fusil est largement convoité par de nombreux stalkers de la Zone. + + + Version modifiée pour les forces spéciales du fusil de précision silencieux Vintar BC. Sa principale fonction est de permettre un tir efficace contre un ennemi bien protégé sans dévoiler la position du tireur. Grâce aux lourdes balles subsoniques de calibre 9x39 mm et au silencieux intégré de cette arme, le bruit et la flamme à la bouche du canon sont réduits au maximum. + + + Arme incroyablement précise et sophistiquée connue sous le nom d'Objet 62, ce fusil a été conçu dans des laboratoires secrets de la Zone. Il fonctionne en accélérant les balles à des vitesses extrêmes par le biais d'électroaimants. Il en résulte une formidable puissance d'arrêt et quasiment aucun recul. Pour son alimentation en énergie, il utilise des batteries contenant des fragments d'artefacts. + + + Les pistolets Martha ont la réputation d'être plutôt fiables et un peu encombrants. Ils sont autant utilisés par de nombreuses forces armées et de police du monde entier que par les membres de la pègre, qui apprécient ses munitions puissantes et la capacité de son chargeur. Les Martha trouvés dans la Zone sont en général assez vieux, probablement issus de stocks retirés de la circulation. + + + Pistolet occidental d'excellente facture, réputé pour sa fiabilité, sa précision et la grande capacité de son chargeur, sans oublier la meilleure ergonomie de sa catégorie. Il s'agit de l'un des pistolets les plus utilisés dans la Zone, autant par les vétérans que par les débutants. + + + Batteries utilisant un fragment encapsulé de l'artefact Flash comme source d'énergie. Fabriquées à l'aide d'équipements sophistiqués. + + + Batteries qui utilisent un fragment encapsulé de l'artefact Flash comme source d'énergie. Leur faible capacité est due à leur origine artisanale et à l'absence d'équipement spécialisé. + + diff --git a/gamedata/configs/text/fra/st_items_weapons_upgrades.xml b/gamedata/configs/text/fra/st_items_weapons_upgrades.xml new file mode 100644 index 0000000..85f0670 --- /dev/null +++ b/gamedata/configs/text/fra/st_items_weapons_upgrades.xml @@ -0,0 +1,2022 @@ + + + + Vitesse + + + Calibre + + + Recul + + + Fiabilité + + + Viseur 1,6x + + + Lunette optique 4x + + + Silencieux + + + Affût sous le canon + + + Poids + + + Filetage externe permettant le montage d'un silencieux. + + + Filetage externe du canon + + + Installation d'un support pour lunette. + + + Support optique + + + Installation d'un support sous le canon de l'arme pour y monter un lance-grenades. + + + Support de lance-grenades sous le canon + + + Remplace le chargeur standard par un autre de plus grande capacité. + + + Chargeur de plus grande capacité + + + Modification importante des pièces fixes et mobiles de l'arme afin de changer son calibre, au prix d'une légère perte en fiabilité. + + + Calibre modifié - 5,45x39 mm + + + Modification importante des pièces fixes et mobiles de l'arme afin de changer son calibre, au prix d'une légère perte en fiabilité. + + + Calibre modifié - 5x56 mm + + + Modification importante des pièces fixes et mobiles de l'arme afin de changer son calibre, au prix d'une légère perte en fiabilité. + + + Calibre modifié - 9x18 mm + + + Modification importante des pièces fixes et mobiles de l'arme afin de changer son calibre, au prix d'une légère perte en fiabilité. + + + Calibre modifié - 9x19 mm + + + Augmentation de la capacité du chargeur sans changement de la longueur de l'arme. + + + Chargeur de plus grande capacité + + + Chargeur en polycarbonate, plus grand, mais aussi plus léger, pour compenser une partie du poids supplémentaire. + + + Chargeur de plus grande capacité + + + Augmentation du nombre de plaques de titane améliorant nettement la résistance de la protection corporelle. + + + Plaques en titane/aluminium supplémentaires + + + Plaques renforcées qui durent plus longtemps, mais n'améliorent pas tellement la résistance. + + + Plaques de kevlar + + + Alliage de titane et aluminium permettant de réduire le poids du titane et de l'utiliser dans des protections corporelles. + + + Plaques d'alliage aluminium et titane + + + Le titane est en général trop lourd pour être utilisé dans des protections corporelles, mais sert parfois pour les exosquelettes. + + + Composants en titane massif + + + Remplace le métal par de la fibre de carbone afin de réduire le poids de la protection corporelle sans perte d'efficacité. + + + Remplace les éléments en métal de la protection corporelle par de la fibre de carbone. + + + Le kevlar est l'un des matériaux les plus utilisés dans la fabrication de protections corporelles. + + + Plaques de kevlar + + + Le polycarbonate peut arrêter une balle de pistolet, tout en restant aussi léger que du plastique. + + + Plaques en polycarbonate + + + Les plaques en céramique ne durent pas très longtemps, mais sont plus fiables que le kevlar de par leur meilleure absorption de l'énergie cinétique des balles. + + + Plaques de céramique + + + De simples plaques d'acier cousues dans un imperméable. + + + Plaques d'acier + + + Surcouche en céramique. Pulvérise les balles perforantes qui la frappent à angle droit et fait dévier les autres. + + + Surcouche de protection en céramique + + + Couche d'armure interne, venant compléter la couche extérieure qui risque d'être endommagée. + + + Couche de protection double + + + Protection contenant une couche interne destinée à disperser l'impact sur une plus grande zone. + + + Élément compensateur + + + Structure capable d'arrêter une balle de pistolet si le blindage principal est endommagé. + + + Structure blindée supplémentaire + + + Des couches de blindage plus fines sont insérées en sandwich pour augmenter la résistance à l'usure. + + + Protection segmentée + + + Même si plus d'épaisseur ne garantit pas forcément une meilleure protection, elle améliore toujours la résistance. + + + Couche de secours + + + Des plaques de protection mobiles protègent les articulations. + + + Coudières et genouillères + + + Structure allégée en aluminium qui remplace la structure en acier. + + + Structure allégée en aluminium + + + Épaisseurs de cuir supplémentaires permettant de réduire l'impact ressenti à travers la protection. + + + Inserts en cuir épais + + + Ajout d'une couche de céramique et d'un film de silicone amortisseur. + + + Plaques renforcées en céramique + + + L'utilisation de matériaux plastiques et synthétiques permet de réduire le poids de la protection corporelle. + + + Composants synthétiques allégés + + + Seul un exosquelette, avec ses puissants servomoteurs, peut se voir équipé de plaques de titane massif qui seraient trop lourdes pour un fantassin normal. + + + Cuirasse de titane + + + SBK-RKhZ.m.II : combinaison de protection radiochimique de combat, modèle 2. + + + Combinaison hermétique antiradiations SBK-RKhZ.m.II + + + Ce type de protection est peu populaire en raison de la quantité de travail nécessaire à sa fabrication, mais il a déjà sauvé bien des vies. + + + Chemise de maille + + + Les écailles de céramique permettent de dévier la trajectoire des balles. + + + Écailles de céramique déflectrices + + + Une fois traitée avec du Sovereign, la combinaison devient quasiment invulnérable aux dégâts mécaniques et aux déchirures. + + + Traitement au Sovereign + + + La céramique réduit nettement l'impact des balles en déviant leur trajectoire et en les fragmentant. + + + Film de céramique sur plaques de protection + + + Cette matrice renforcée qui utilise du béryllium à la place de l'aluminium est l'un des meilleurs moyens de protéger les fantassins. + + + La céramique réduit nettement l'impact des balles en déviant leur trajectoire et en les fragmentant. + + + Film de céramique sur plaques de protection + + + La fibre de carbone est l'un des matériaux les plus solides et résistants au monde, utilisée notamment dans la construction aéronautique. + + + Ajout d'un film de céramique et d'un polymère multicouches. + + + Multi-films protecteurs + + + Technologie propre à la Zone incluant l'utilisation de saphirs synthétiques pour une protection optimale. + + + Ajustement des composants pour empêcher les enrayages. + + + Ajustement des composants + + + La mode des composants en plastique s'est non seulement imposée, mais est également devenue une amélioration très populaire. + + + Composants en plastique + + + Mécanisme de tir à impulsion légère qui réduit le recul. + + + Mécanisme de tir à impulsion légère + + + L'alignement strict de la cartouche permet de garantir une trajectoire rectiligne jusqu'à la cible. + + + Module d'alignement de cartouches + + + Souvent utilisé dans les armes modernes, ce système de verrouillage par galets permet de réduire le recul et la dispersion. + + + Culasse non calée avec galets + + + L'ajout d'un cylindre à gaz supplémentaire réduit la charge de l'arme, ce qui permet d'augmenter nettement la cadence de tir. + + + Cylindre à gaz supplémentaire + + + Système d'emprunt de gaz utilisé pour permettre le tir semi-automatique de certains fusils à pompe. + + + Système d'emprunt de gaz + + + Mélange protecteur rendant les enrayages mécaniques quasiment impossibles. + + + Mélange protecteur de composants + + + Lorsqu'une balle est tirée, le canon revient à la position initiale par l'action du glissement latéral du garde-main. + + + Système de fermeture du canon + + + Système inertiel automatique permettant de transformer le fusil à pompe en fusil à mécanisme à double-action. + + + Système inertiel automatique + + + Un module unifié de pression des gaz par l'arrière est l'une des meilleures solutions technologiques pour réduire le recul. + + + Module unifié de pression des gaz par l'arrière + + + Tige d'armement automatique améliorant la précision. + + + Tige d'armement automatique + + + Contrepoids actif s'écartant du bloc-culasse pour compenser partiellement le recul. + + + Contrepoids actif + + + Installation de galets supplémentaires réduisant le recul. + + + Système de compensation à galets de pression des gaz à l'arrière + + + Remplacement de la culasse de l'arme par une autre plus adaptée au tir rapide, ce qui améliore la cadence de tir. + + + Culasse non calée + + + Lors du tir, le contrepoids du bloc-culasse se déplace dans la direction opposée de la culasse, ce qui rend le tir plus confortable. + + + Contrepoids autorégulateur + + + Ajout d'un contrepoids mobile dans le receveur pour réduire le recul. + + + Contrepoids mobile + + + La mode des composants en polymère s'est non seulement imposée, mais est également devenue une amélioration très populaire. + + + Composants en polymères résistants pour les parties mobiles + + + Installation d'un mécanisme spécial contre l'encrassage de l'arme. + + + Régulateur de gaz automatique à deux positions + + + Composant spécial scellant le canon de façon étanche afin d'augmenter la pression lors du tir. + + + Dispositif de fermeture du canon + + + La synchronisation s'effectue grâce à un engrenage, ce qui permet d'améliorer la vitesse initiale. + + + Synchronisation du mouvement de la tige + + + L'installation de ce composant à l'arrière du bloc-culasse réduit la vitesse de la culasse et permet d'améliorer la précision du tir. + + + Mécanisme de réduction de l'inertie + + + L'installation d'un composant spécial dans le bloc-culasse permet d'adoucir le mouvement de la culasse et de réduire le recul. + + + Dispositif de réduction de la vitesse des gaz d'éjection + + + Ensemble d'améliorations généralement réservées aux fusils de précision à cause de l'augmentation importante du poids de l'arme. + + + Système amortisseur intégré + + + Installation d'un ensemble de composants mobiles qui accélèrent l'alimentation en cartouches lors du tir. + + + Alimentation automatique + + + L'amélioration des composants mobiles de l'arme nécessite le remplacement d'un certain nombre d'entre eux, ce qui améliore sa précision. + + + Système sans impact équilibré + + + Installation d'un composant synthétique pour limiter l'amplitude du mouvement de la culasse de façon à améliorer la précision de tir. + + + Dispositif d'arrêt + + + Installation d'un maintien rigide et de trous de compensation pour limiter le mouvement du canon. + + + Composants de compensation intelligente + + + Adoucissement du mécanisme de la queue de détente, très important pour les tireurs de précision. + + + Mécanisme de régulation de la queue de détente + + + Ce composant fournit au tireur une indication sur le point exact de la course de la queue de détente où le tir va s'effectuer, ce qui améliore la précision. + + + Indicateur anticipé de détente + + + Souvent utilisé dans les armes modernes occidentales, ce système de verrouillage par galets permet de réduire le recul et la dispersion. + + + Culasse non calée avec galets + + + Mécanisme spécial qui absorbe une partie de l'impact du tir et le rend plus confortable. + + + Système amortisseur de tir + + + Comme les fusils de précision nécessitent davantage de maintenance que les fusils classiques, il est possible d'y installer un dispositif de régulation des gaz à trois positions. + + + Dispositifs de régulation des gaz à trois positions + + + La pulvérisation permet d'éviter que l'énergie ne se disperse, ce qui accroît la vitesse initiale de la balle. + + + Pulvérisation des pièces mobiles + + + L'installation d'une tige d'armement à grande amplitude permet de faire fonctionner le fusil de précision en tir automatique. + + + Tige d'armement à grande amplitude + + + L'installation d'un dispositif d'arrêt a un impact sur la pression des gaz à l'arrière, ce qui améliore la précision de tir. + + + Dispositif d'arrêt + + + Remplacement du canon standard par un autre plus long, ce qui améliore la précision et la vitesse initiale. + + + Canon long + + + L'absence de piston à gaz encombrant et de garde-main fixé au canon permet d'améliorer la précision. + + + Canon flottant + + + Permet de réduire l'usure provoquée par les modifications qui augmentent la cadence de tir. + + + Ailettes de refroidissement + + + Remplacement du frein de bouche par un autre plus moderne afin de réduire le recul. + + + Frein de bouche à compensation optimisée + + + L'installation d'un canon à rayures supplémentaires permet d'augmenter la vitesse de la balle et la précision du tir, au prix d'une nette augmentation du recul. + + + Canon à rayures supplémentaires + + + Ce type de canon privilégie la puissance à courte portée aux dépens de la précision. La réduction du nombre de rayures dans le canon permet d'améliorer la cadence de tir. + + + Canon à rayures simplifiées + + + L'utilisation de rayures polygonales permet d'améliorer la précision. + + + Canon à rayures polygonales + + + Permet d'accroître la dissipation de chaleur et d'améliorer la cadence de tir. + + + Canon à rayures sinusoïdales + + + Remplacement du canon pour les armes qui disposent déjà d'une bonne vitesse initiale afin d'améliorer la précision. + + + Canon rayé de précision + + + L'utilisation de matériaux très résistants permet de ralentir l'usure du canon. + + + Canon en alliage longue durée + + + Le traitement de la surface extérieure du canon permet de le protéger contre les dégâts mécaniques. + + + Traitement du canon + + + L'épaississement de l'âme du canon par des matériaux synthétiques permet de réduire nettement la dispersion. + + + Épaississement synthétique de l'âme + + + Remplacement du canon standard par un autre plus long, ce qui améliore la vitesse initiale. + + + Sections de canon allongées + + + Le perçage de jours de ventilation dans le canon permet non seulement de limiter son encrassage, mais aussi de rediriger une partie du recul dans le canon lui-même. + + + Jours de ventilation longitudinaux + + + Remplacement du canon standard par un autre plus long, ce qui améliore la vitesse initiale. + + + Section de canon allongée + + + Ce film protecteur permet de limiter la surchauffe du canon, de compenser les défauts de manufacture et d'augmenter nettement sa durée de vie. + + + Film de protection interne du canon + + + Ce système d'équilibrage du canon inclut plusieurs pistons mobiles afin de rendre l'arme plus stable lors du tir. + + + Système d'équilibrage du canon + + + L'utilisation d'un canon rayé empêche de tirer de la grenaille, mais le gain en précision compense largement ce défaut. + + + Canon rayé + + + L'épaississement du canon à l'aide de poly-matériaux permet d'augmenter la pression interne, ce qui accroît la vitesse initiale des balles. + + + Épaississement dynamique du canon + + + Le filetage cylindrique du canon permet d'augmenter la cadence de tir sans sacrifier la précision. + + + Filetage cylindrique du canon + + + Lors du tir, un contrepoids actif se déplace vers l'avant du canon, ce qui compense en partie le recul. + + + Contrepoids dynamique de canon + + + Remplacement du canon standard par un autre plus long, ce qui améliore la précision et la vitesse initiale, mais réduit la cadence de tir. + + + Section de canon allongée + + + La perforation du canon réduit le recul car les gaz s'échappent par les ouvertures pratiquées. + + + Perforation du canon + + + L'utilisation d'un canon plus court permet d'augmenter la cadence de tir sans sacrifier la vitesse initiale et la précision. + + + Canon plus court + + + Le chromage du canon permet d'allonger sa durée de vie. + + + Chromage interne du canon + + + L'utilisation de séparateurs en caoutchouc permet d'absorber une partie du recul. + + + Séparateurs en caoutchouc + + + Un canon comprenant moins de rayures est très utile à courte portée, quand la cadence de tir est plus importante que la précision. + + + Canon à rayures simplifiées + + + L'installation d'un canon à rayures supplémentaires permet d'augmenter la vitesse de la balle et la précision du tir, au prix d'une nette augmentation du recul. + + + Canon à rayures supplémentaires + + + Le déplacement des accessoires du canon au châssis permet de réduire nettement le recul. + + + Transfert au châssis du cache-flammes/compensateur de recul + + + Permet d'accroître la dissipation de chaleur et d'améliorer la cadence de tir sans sacrifier la vitesse initiale. + + + Canon à rayures sinusoïdales + + + L'utilisation de rayures polygonales permet d'augmenter la précision. + + + Canon à rayures polygonales + + + L'installation d'un compensateur pneumatique permet de convertir une partie du recul en pression interne au canon, ce qui augmente la vitesse initiale. + + + Compensateur pneumatique + + + L'ajout de servomoteurs supplémentaires permet d'augmenter la charge maximale. + + + Servomoteurs supplémentaires + + + Les techniciens de La liberté ont été les premiers à remplacer le métal par de la fibre de carbone pour réduire le poids des exosquelettes. + + + Remplacement des composants métalliques par de la fibre de carbone + + + Le blindage des composants vitaux de l'exosquelette évite qu'ils soient endommagés par des tirs trop précis. + + + Blindage des points vitaux + + + Cette amélioration consiste à renforcer les ressorts et jointures de l'exosquelette, ce qui permet à son porteur d'utiliser son poids pour faciliter les mouvements. + + + Système moteur Shagohod + + + Les exosquelettes de quatrième génération diffèrent de ceux de troisième génération par l'emploi généralisé de propulseurs hydrauliques qui permettent de courir. + + + Propulseurs hydrauliques + + + Renforts en tissu qui amortissent les dégâts sur les tissus mous en cas d'impact sur une plaque de blindage. + + + Renforts amortisseurs en tissu + + + Bien plus efficaces que leurs équivalents en caoutchouc, les renforts en silicone absorbent les dégâts à la place du porteur. + + + Renforts amortisseurs en silicone + + + Tissus, attaches et renforts sont remplacés par des matériaux synthétiques plus légers de façon à réduire le poids de l'exosquelette. + + + Allègement des matériaux + + + Renforts en caoutchouc qui amortissent les dégâts sur les tissus mous en cas d'impact sur une plaque de blindage. + + + Renforts en caoutchouc + + + Cette épaisseur interne est utile en cas de rupture du tissu principal. + + + Inserts multicouches en polycarbonate, silicone et fibre de carbone, au cas où le blindage principal serait transpercé. + + + Inserts protecteurs en polymères + + + Combinaison étanche de la Liberté, utilisée pour la recherche d'artefacts dans les zones anormales. + + + Combinaison étanche de protection contre les anomalies + + + Couche étanche en matériaux synthétiques, au cas où la couche externe serait endommagée. + + + Couche synthétique + + + Combinaison en caoutchouc comportant de nombreux ajustements ergonomiques, qui permet de conserver une bonne mobilité même lorsqu'une protection corporelle encombrante est portée. + + + Combinaison ergonomique en caoutchouc + + + Le constantan est un alliage isolant au point de fusion très élevé. + + + Inserts d'isolation thermique en constantan + + + Le plomb absorbe les trois principaux types de radiations. + + + Ajout de plomb à la combinaison + + + Protection simple contre la pluie et autres substances acides pouvant entrer en contact avec la peau. + + + Combinaison canevassée + + + Ce traitement retardateur de combustion est très apprécié des stalkers qui se spécialisent dans la recherche d'artefacts de feu. + + + Traitement retardateur de combustion + + + Inserts en magnésium qui protègent le porteur des dangers thermiques. + + + Inserts en magnésium + + + Il suffit parfois d'une simple couche plastifiée dans une armure pour protéger son porteur des dangers chimiques et électriques. + + + Couche plastifiée étanche + + + Tissus, attaches et renforts sont remplacés par des matériaux synthétiques plus légers de façon à réduire le poids de l'ensemble. + + + Remplacement du tissu par des matériaux synthétiques + + + Le plexiglas absorbe deux types de radiations et est bien plus léger que le plomb. + + + Couche interne antiradiations en plexiglas + + + Protège le porteur contre les dangers chimiques et électriques. + + + Couche plastifiée interne étanche et élastique + + + Une fine couche de constantan garantit une bonne isolation contre l'électricité. + + + Couche interne isolante en constantan + + + La fibre de verre est un composant courant des combinaisons portées par les équipes de secours sur les sites de catastrophes naturelles. + + + Couche de protection thermique en fibre de verre + + + Ce traitement permet de protéger le porteur contre les produits chimiques. + + + Traitement de protection contre les produits chimiques + + + Le caoutchouc constitue une protection antiradiation plutôt rudimentaire, mais peut convenir pour des expositions de durée limitée. + + + Combinaison en caoutchouc + + + Permet d'améliorer la durée de vie des combinaisons de stalkers. + + + Structure protectrice à longue durée de vie + + + Le nickel résiste suffisamment bien au feu pour être utilisé dans des inserts de protection. + + + Combinaison résistante au feu avec inserts en nickel + + + Cet alliage de nickel et de magnésium sert de protection contre les décharges électriques. + + + Combinaison isolante avec inserts en manganin + + + Combinaison étanche avec couche anticorrosion et renforts en kevlar. + + + Combinaison blindée intégrée "Deuxième peau" + + + Inspirée de la combinaison "Écologiste" de l'institut de recherche de Kiev, cette combinaison utilise les mêmes polymères, mais avec des inserts en bismuth. + + + Combinaison en polymères "Écologiste" avec insert en bismuth + + + Le maillage en plomb procure un excellent niveau de protection contre les radiations et les produits chimiques, sans sacrifier la mobilité. + + + Combinaison "Sauveteur" en plexiglas avec maillage flexibles en plomb + + + Variante locale apparue après la catastrophe de Tchernobyl. Utilisée dans les exosquelettes pour empêcher les défaillances électroniques. + + + Combinaison "Évacuateur" avec inserts en plomb + + + Viseur tactique pour combat à courte portée. + + + Viseur 1,6x + + + Montage d'une lunette optique pour combat à moyenne et longue portée. + + + Lunette optique 4x + + + Montage d'une lunette optique pour combat à longue portée. + + + Lunette optique 5x + + + Montage d'une lunette optique pour combat à longue portée. + + + Lunette optique 6x + + + Amélioration du contraste dans la gamme des jaunes du viseur des armes d'assaut, très utile dans les zones peu éclairées ou lors d'opérations nocturnes. + + + Amélioration du contraste + + + L'utilisation d'un capteur infrarouge dans le viseur permet de détecter et d'identifier les sources de chaleur. + + + Système d'acquisition automatique de cible + + + Depuis leur conception, les dispositifs de vision nocturne ont sauvé la vie de plus d'un tireur de précision. + + + Dispositif de vision nocturne + + + Cette modification permet d'adapter facilement la visée à la distance de tir. + + + Viseur télémétrique + + + L'utilisation d'une crosse pneumatique permet de réduire le recul lors du tir en rafale. + + + Crosse pneumatique + + + Épaulière mobile qui réduit considérablement l'impact du recul sur le tireur. + + + Épaulière amortisseuse + + + Crosse moderne qui tient compte de la morphologie humaine. + + + Crosse ergonomique + + + Lors du tir, les gaz de combustion sont en partie transférés du canon vers l'arrière de la culasse, de façon à ce que celle-ci s'arrête en douceur dans son mouvement de retour. + + + Tampon à gaz pour bloc-culasse + + + L'allongement du bloc-culasse dans la crosse permet d'aplatir la trajectoire et d'augmenter la vitesse initiale, mais accroît le recul. + + + Allongement du bloc-culasse + + + L'installation d'un composant mobile dans la crosse permet de créer un mouvement inverse lors du tir. + + + Contrepoids mobile + + + Un appuie-joue de plus grande taille permet des tirs plus précis. + + + Appuie-joue de grande taille + + + L'intégration d'un compensateur de recul à ressort rend le tir en rafales plus confortable. + + + Compensateur de recul à ressort intégré + + + Le positionnement du tampon à gaz du bloc-culasse dans la crosse permet d'absorber la majorité du recul. + + + Tampon à gaz supplémentaire pour le bloc-culasse + + + Un revêtement en caoutchouc amortisseur de recul est souvent ajouté aux crosses des fusils de précision de gros calibre. + + + Revêtement de crosse amortisseur + + + L'utilisation d'une crosse ajustable et d'un appuie-joue permet de tirer depuis toutes les positions. + + + Crosse ajustable avec appuie-joue + + + Installation dans la crosse d'un compensateur de recul très puissant pour les armes de gros calibre. + + + Compensateur hydraulique de recul pour la crosse + + + Ces filtres actifs résistent aux produits chimiques les plus corrosifs. + + + Filtres actifs + + + Ce bandeau procure une protection partielle contre les émissions psi directes. + + + Bandeau anti-psi à grillage en acier + + + Filtre pour environnements contaminés et températures extrêmes. + + + Revêtement filtrant + + + Revêtement filtrant + + + Filtre avec revêtement antiacides renforcé et couche antipoison supplémentaire. + + + Revêtement anticontamination + + + Revêtement en plexiglas qui protège en partie des radiations. + + + Revêtement en plexiglas + + + Revêtement en plexiglas qui protège en partie des radiations. + + + Appareil respiratoire en plexiglas + + + Appareil respiratoire qui filtre toutes les toxines. + + + Masque respiratoire intégral + + + Cet alliage de béryllium et d'aluminium procure une excellente protection sans augmenter démesurément le poids du casque. + + + Plaques de béryllium et d'aluminium + + + Cet alliage de béryllium et de titane fournit une protection améliorée sans augmenter le poids de façon démesurée. + + + Plaques de béryllium et de titane + + + Des filtres améliorés permettent de maintenir un approvisionnement en oxygène constant, quel que soit le niveau de contamination de la zone. + + + Filtres améliorés à usage scientifique + + + Cette protection anti-psi sophistiquée est l'œuvre d'un scientifique du nom de Sakharov. + + + Bandeau psi-dôme + + + Cette armature protectrice en alliage protège contre les dégâts thermiques et électriques. + + + Visière en constantan + + + Ce blindage supplémentaire permet d'allonger la durée de vie du casque. + + + Renforcement structurel + + + Filtre avec module purificateur supplémentaire et système de neutralisation des poisons. + + + Appareil respiratoire renforcé pour conditions extrêmes + + + L'installation d'un dispositif de vision nocturne permet de mener des opérations militaires de nuit ou lorsque la visibilité est réduite. + + + Dispositif de vision nocturne de première génération + + + Ce système de basculement automatique permet de passer automatiquement en circuit fermé en cas de contamination de l'air par des particules chimiques ou radioactives. + + + Système de prévention automatique chimique/radiations + + + Masque respiratoire et purificateur à vapeur + + + L'installation d'un dispositif de vision nocturne plus moderne permet de mener des opérations dans le noir complet. + + + Dispositif de vision nocturne de seconde génération + + + L'utilisation d'un capteur infrarouge dans le viseur permet de détecter et d'identifier les sources de chaleur. + + + Système d'acquisition de cible automatique + + + Cet onduleur scientifique a été conçu pour permettre l'accès à des zones bombardées d'émissions psi. + + + Stimulateur psi Oracle + + + L'installation d'un dispositif de vision nocturne plus moderne permet de mener des opérations dans le noir complet. + + + Dispositif de vision nocturne de troisième génération + + + Le déplacement en sens inverse des électrons des particules d'air ionisées entre les électrodes du système permet de créer un courant d'air ionisé. + + + Système de refroidissement à ionisation + + + Ce détecteur infrarouge permet de repérer les humains à proximité. + + + Détecteur infrarouge + + + Système de protection anti-psi SPB - VPZ.m.IV + + + Système de combat SPB - VPZ.m.IV + + + Le renforcement du ressort récupérateur permet d'accélérer la vitesse des balles. + + + Renforcement du ressort récupérateur + + + L'ajout d'un revêtement compensateur aux pièces mobiles du mécanisme permet de réduire la déviation du canon lors du tir. + + + Compensation du mécanisme récupérateur + + + L'ajout d'un ressort à spires inverses supplémentaire permet de réduire le recul sans sacrifier la vitesse initiale. + + + Ressort récupérateur supplémentaire + + + La pulvérisation d'un mélange protecteur améliore la fiabilité et garantit l'étanchéité afin d'éviter une dissipation excessive de l'énergie. + + + Pulvérisation du mécanisme récupérateur + + + Une tige d'armement en titane peut supporter une cadence de tir plus élevée qu'une tige classique. + + + Tige d'armement en titane + + + L'installation d'un guide de tige d'armement en matériau synthétique permet d'éviter toute déviation de son mouvement, ce qui améliore la précision. + + + Guide de tige d'armement + + + L'épaississement du canon permet d'augmenter sa pression interne, ce qui accroît la vitesse initiale des balles. + + + Renforcement du mécanisme récupérateur + + + Installation d'un système d'ouverture et de fermeture du mécanisme récupérateur à emprunt des gaz. + + + Système de distribution des gaz + + + Remplacement du mécanisme récupérateur par une version plus puissante, équipée de deux tiges d'armement et de ressorts récupérateurs, ce qui améliore la cadence de tir. + + + Conversion en système à deux tiges + + + Le perçage d'orifice de sortie des gaz autour du tambour de l'arme permet de réduire le recul. + + + Utilisation de l'énergie des gaz + + + L'ajout d'emplacements à cames diagonaux dans le tambour permet d'accélérer la rotation des mécanismes d'utilisation de l'énergie des gaz. + + + Emplacements à cames diagonaux + + + Modification classique européenne qui permet de réduire le poids sans perdre en fiabilité. + + + Crosse en polymère résistant + + + Un fusil d'assaut équipé d'un bloc-culasse très résistant est paré pour les conditions d'utilisation les plus extrêmes. + + + Bloc-culasse en alliage longue durée + + + Ajout d'un contrepoids à l'avant du bloc-culasse afin de réduire le recul. + + + Contrepoids à l'avant du boîtier de culasse + + + L'installation d'un manchon refroidisseur permet d'augmenter la cadence de tir sans risque de surchauffe. + + + Manchon refroidisseur supplémentaire + + + Forme plus ergonomique, qui assure un maniement précis dans toutes les circonstances. + + + Boîtier de culasse ergonomique + + + Modification réservée aux armes de configuration bullpup, qui simplifie grandement la maintenance. + + + Boîtier de culasse modulable + + + Ce film protecteur permet de limiter la surchauffe du canon, de compenser les défauts de manufacture et d'augmenter nettement la durée de vie de l'arme. + + + Boîtier de culasse arrondi et rainuré + + + Un contrepoids mobile est installé dans la crosse inclinée afin de stabiliser l'arme lors du tir. + + + Crosse inclinée + + + L'ajourage de la crosse permet de réduire le poids de l'arme. + + + Crosse inclinée + + + Version plus légère de la crosse standard. + + + Crosse allégée + + + L'utilisation de polymères permet de réduire le poids de l'arme. + + + Crosse en polymère résistant + + + L'ajout d'un contrepoids permet de réduire le recul. + + + Contrepoids + + + L'installation d'une crosse plus moderne et confortable simplifie le maniement de l'arme. + + + Crosse ergonomique + + + Une crosse compensatrice réduit le recul. + + + Crosse compensatrice + + + L'installation d'une crosse plus moderne et confortable simplifie le maniement de l'arme. + + + Crosse ergonomique + + + Revêtement spécial qui protège l'arme contre les éléments. + + + Revêtement anticorrosion + + + L'installation d'un compensateur de recul à mercure dans la crosse de l'arme permet d'absorber une partie du recul lors du tir. + + + Compensateur de recul à mercure + + + Un contrepoids à déplacement libre absorbe une partie du recul lors du tir en s'éloignant de la culasse. + + + Contrepoids libre + + + L'utilisation de matériaux différents permet de réduire l'usure du canon, ce qui améliore la cadence de tir. + + + Alliages résistants à longue durée de vie + + + Cette modification permet de protéger l'arme des effets de la température extérieure lors du tir. + + + Manchon de régulation thermique + + + Le rainurage du canon requiert une très grande précision pour éviter la création de points de surchauffe sur sa longueur. + + + Rainurage extérieur du canon + + + Remplacement du canon par une version plus moderne, ce qui permet d'améliorer la précision de l'arme. + + + Modification de la géométrie du canon + + + Châssis onéreux qui garantit à l'arme une longue durée de vie. + + + Châssis en titane + + + Ce châssis est plus fiable que ceux en matériaux composites. + + + Châssis en acier + + + Le remplacement du châssis du pistolet par un autre plus léger n'affecte en rien sa fiabilité. + + + Châssis de pistolet en polymères + + + L'installation d'une crosse plus moderne et confortable simplifie le maniement de l'arme. + + + Crosse ergonomique + + + Une crosse compensatrice réduit le recul. + + + Crosse compensatrice + + + Des volets de protection protègent l'arme contre la poussière et les chocs. + + + Volets de protection + + + Des modifications apportées à l'arrière de l'arme permettent d'obtenir une forme plus ergonomique. + + + Crosse à section droite + + + Le fait de pouvoir modifier la longueur de la crosse garantit une meilleure prise en main de l'arme. + + + Crosse ajustable + + + Cette modification n'est possible que si un ressort récupérateur a été installé dans la crosse. + + + Composant compensateur du ressort récupérateur + + + Le fait de pouvoir modifier la forme de la crosse garantit une meilleure prise en main de l'arme. + + + Crosse modulable + + + Ce manchon permet de protéger contre l'usure les armes utilisées fréquemment. + + + Manchon en acier perforé + + + Système d'absorption du recul bien plus sophistiqué que ce qui est habituellement utilisé dans les armes automatiques classiques. + + + Frein de bouche à compensation effective + + + Canon adapté aux tirs de précision à très longue portée. + + + Canon lourd à rayures polygonales + + + Le rainurage longitudinal permet d'éviter la surchauffe et la contamination par la poussière du canon. + + + Rainurage longitudinal du canon + + + Cache-flammes et silencieux intégré, essentiels pour les tirs discrets. + + + Silencieux intégré + + + L'installation d'un canon à rayures sinusoïdales sur les armes d'assaut s'effectue en général pour améliorer la cadence de tir. + + + Canon à rayures sinusoïdales + + + Injecteur de première génération développé par l'un des instituts de recherche de Kiev. Injecte des doses minimes d'adrénaline dans le sang à intervalles réguliers, ce qui peut être dangereux sur le long terme, mais peut également vous sauver la vie dans une situation extrême. + + + Injecteur d'adrénaline "Furie" + + + Système de neutralisation des poissons à base de filtres purificateurs. + + + Système de neutralisation des poisons + + + Conçu par Firmament, cet émetteur d'ondes permet d'accélérer la vitesse de coagulation lorsqu'il est constamment porté sur le dos. + + + Hémostimulateur Ray + + + La circulation de charges électrostatiques à la surface de la combinaison permet de repousser les particules radioactives et chimiques. + + + Système anti-poussière intégré + + + Injecteur de seconde génération qui injecte automatiquement un agent coagulateur lorsque la pression sanguine chute rapidement. + + + Injecteur coagulant "Hydra" + + + Ce système réduit la fatigue en maintenant une température corporelle idéale. + + + Système thermorégulateur + + + Cet émetteur d'ondes installé sur la poitrine accroît nettement la vitesse de coagulation, stimule le système immunitaire et réduit les sensations de douleur du porteur. + + + Biostimulateur "Soleil" + + + Cet onduleur scientifique a été conçu pour permettre le travail dans des zones bombardées d'émissions psi. + + + Stimulateur psi Oracle + + + Injecteur de troisième génération qui introduit dans le flux sanguin un cocktail de substances douteuses qui accélèrent la régénération des tissus et la suppression de la douleur. + + + Système régénérateur "Phénix" + + + Système intégral qui contrôle les paramètres vitaux du porteur et fournit, si besoin, vitamines, adrénaline ou analgésiques. + + + Système de survie + + + Cet onduleur s'installe sur le cou. En dépit de ses mécanismes et modes de fonctionnement peu clairs, il a un effet calmant intense. + + + Neurostimulateur "Réflexion" + + + Le compensateur du percuteur absorbe une partie du recul, ce qui réduit la dispersion lors des tirs en rafales. + + + Compensateur de percuteur + + + Modification simple et populaire, qui consiste à réduire la dureté de la détente. + + + Détente souple + + + La sélection et le remplacement des pièces de l'arme par leur équivalent en matériaux composites sont peut-être onéreux, mais allongent nettement sa durée de vie. + + + Composants en matériaux composites + + + Augmente la cadence de tir, au détriment de la précision et de la fiabilité. + + + Dispositif de temporisation forcée de la détente + + + La suppression du ressort récupérateur permet de tirer la première balle une demi-seconde plus tôt. C'est peu, mais largement suffisant pour vous sauver la vie. + + + Suppression du ressort + + + Un mélange protecteur rend les enrayages du mécanisme de tir quasiment impossibles. + + + Pulvérisation du mécanisme de tir + + + L'emboutissage des pièces du mécanisme de tir permet d'augmenter la charge et donc la cadence de tir. + + + Emboutissage des mécanismes de tir + + + Ce système à impact réduit perce le culot de la cartouche à l'aide d'un percuteur spécial, au lieu de le frapper, ce qui adoucit considérablement le cycle de tir. + + + Système de tir sans impact + + + La détente est armée par le tir de la première balle, les suivantes étant tirées en mode automatique. + + + Mécanisme de tir à double détente + + + Modification simple et populaire, qui consiste à réduire la dureté de la détente. + + + Détente souple + + + Armer partiellement l'arme permet d'effectuer un tir plus précis. + + + Mécanisme de tir à pré-armement + + + Permet d'appliquer exactement la même pression sur la détente, du premier tir au dernier, ce qui rend l'arme bien plus facile à utiliser. + + + Détente simplifiée + + + Modification moderne qui évite le détachement de la culasse. + + + Queue de détente renforcée + + + Mécanisme de tir modulaire à maintenance et remplacement simplifiés, qui facilite grandement l'emploi de l'arme. + + + Mécanisme de tir modulaire + + + La réduction de la pression nécessaire sur la détente permet d'effectuer des tirs bien plus précis. + + + Composant d'armement + + + Nouvelle technologie qui permet, par un simple ajustement, de changer le mode du mécanisme de tir et améliore donc l'ergonomie et la facilité d'utilisation de l'arme. + + + Platine DASA + + + Une fois la première balle tirée, le mouvement de la détente nécessaire pour le tir suivant est réduit de moitié. + + + Mécanisme de tir à mouvement de détente raccourci + + + L'ajout de servomoteurs supplémentaires permet d'augmenter la charge maximale. + + + Servomoteurs supplémentaires + + + Ce dispositif injecte des anti-inflammatoires et des antitétaniques. + + + Système intégré "Médecin de campagne" + + + Système de ventilation de combinaison avec filtre pour le travail en environnement contaminé. + + + Système thermorégulateur intégré + + + L'ajout d'attaches ergonomiques à la combinaison permet de réduire le poids subjectif de la charge emportée. + + + Veste de distribution du poids + + + Une bombonne d'oxygène est toujours conseillée pour les opérations en environnements contaminés par des particules radioactives ou chimiques. + + + Bombonne d'oxygène + + + Installation d'une poche à artefact supplémentaire. + + + Poche à artefact supplémentaire + + + Différentes poches et attaches permettent de mieux répartir le poids de l'équipement emporté. + + + Système de distribution du poids + + + Une armature rigide permet de réduire la charge sur les épaules et de la répartir sur tout le corps, ce qui augmente la capacité d'emport. + + + Armature de distribution du poids + + + Dispositif qui fournit antiseptiques, antitétaniques et autres substances stimulantes. D'origine artisanale, mais fonctionne correctement. + + + Système de soins intégré + + + Ce dispositif utilise l'électricité statique pour contrebalancer les effets des anomalies. + + + Système de contremesures électroniques "Manta" + + + Cette couche interne protège contre les produits chimiques. + + + Couche interne de protection contre les substances chimiques + + + Modèle expérimental. N'a jamais été utilisé en dehors de la Zone en raison de son prix prohibitif et de son utilité douteuse. + + + Système intégré "Athlète" + + + Ce dispositif neutralise les poisons à l'aide de condensateurs de surface. + + + Dispositif de neutralisation des poisons + + + Installation d'une poche à artefact supplémentaire. + + + Poche à artefact supplémentaire + + + Système d'aide au combat intégré. Utilisé de temps à autre par les Spetsnaz. Comprend son propre module d'injection d'agents coagulateurs et d'adrénaline. + + + Système de survie "Varyag" + + + Pour ce système de survie expérimental, les concepteurs ont privilégié les injections de composés coagulateurs à celles d'adrénaline. + + + Système de survie "Skif" + + + Cette modification assez onéreuse est relativement courante pour les armes de dernière génération. + + + Culasse monobloc + + + En épaississant le diamètre de la culasse, la perte d'énergie est diminuée, ce qui améliore la vitesse initiale des balles. + + + Épaississement de la culasse avec inserts synthétiques + + + Comme le nom de cette amélioration ne l'indique pas, c'est la culasse qui est remplacée car elle doit résister à une cadence de tir augmentée. + + + Détente automatique rapide + + + L'évent à gaz est couplé à un bloc qui se déplace à la même vitesse et absorbe une partie du recul. + + + Évent à gaz et bloc mobile + + + L'ajout d'un second piston à gaz permet de déplacer le contrepoids et compense l'impulsion du mouvement de la culasse. + + + Piston à gaz supplémentaire + + + La pulvérisation d'un mélange protecteur améliore la fiabilité de l'arme et garantit son étanchéité, ce qui permet d'éviter une dissipation excessive de l'énergie. + + + Pulvérisation de la culasse + + + Le rainurage du récepteur permet de réduire la friction et de limiter la contamination de la culasse par des particules. + + + Rainure longitudinale + + + La réduction du diamètre de la chambre à l'aide de matériaux synthétiques augmente considérablement la vitesse de la balle. + + + Orientation de l'énergie des gaz + + + Alors qu'elle revient à sa position initiale, la culasse redirige le flux d'air dans le canon, ce qui le refroidit. + + + Refroidissement forcé + + + La culasse de l'arme peut coulisser le long du canon de façon à empêcher qu'il se relève pendant le tir. + + + Culasse coulissante + + + L'installation d'un piston à gaz permet d'éviter que les gaz ne pénètrent dans la culasse, ce qui réduit nettement l'encrassage de l'arme. + + + Piston à gaz + + + Ce système récupère une partie des gaz dans la culasse pour améliorer son mouvement. + + + Système d'emprunt de gaz + + + Remplacement du récupérateur de gaz par une version plus courte, ce qui améliore considérablement la cadence de tir. + + + Réduction du mouvement du piston + + + Souvent utilisé dans les armes modernes, ce système de verrouillage par galets permet de réduire le recul et la dispersion. + + + Système à galets avec verrouillage partiel de la culasse + + + En absorbant une partie de la chaleur, ces composants réduisent les changements de température lors du tir. + + + Composants absorbeurs de chaleur + + + L'allongement du mouvement du piston de récupération des gaz accroît la longueur de l'arme, mais aplatit nettement la trajectoire des balles. + + + Allongement du mouvement du piston + + + Amortisseur de pièces mobiles qui distribue le recul dans toute l'arme afin de le limiter. + + + Amortisseur spécial de pièces mobiles + + + Le refroidissement symétrique du canon s'effectue grâce à un éjecteur qui empêche toute surchauffe. + + + Système de refroidissement réparti + + + Augmente la cadence de tir sans surcharger les autres pièces mobiles avec du recul supplémentaire. + + + Culasse mobile + + + Améliore la trajectoire de la balle et donc sa vitesse grâce à un meilleur transfert de l'impulsion initiale. + + + Système de fermeture de la culasse et du canon + + + Diminue le recul en ralentissant le mouvement du bloc-culasse. + + + Ralentisseur de culasse + + + La pulvérisation d'un mélange protecteur sur la culasse prolonge sa durée de vie. + + + Pulvérisation de la culasse + + + Améliore la trajectoire de la balle et donc sa vitesse grâce à un meilleur transfert de l'impulsion initiale. + + + Système de fermeture en biais du canon + + + Une culasse plus lourde et hermétique permet de limiter les risques d'enrayage. + + + Verrou hermétique renforcé + + + Petit amortisseur qui absorbe une partie du recul. + + + Amortisseur de recul en polymère + + + L'utilisation d'un insert en acier permet de réduire le recul. + + + Insert obturant à rainure spiralée + + + L'augmentation du mouvement du verrou et le renforcement du mécanisme de retour permettent d'améliorer la vitesse initiale. + + + Amplificateur de mouvement du verrou + + + La réduction du mouvement du verrou permet d'augmenter la cadence de tir sans sacrifier la vitesse initiale. + + + Réducteur de mouvement du verrou + + + Un canon plus long permet d'augmenter la vitesse initiale de la balle. + + + Canon long + + + Remplacement du récupérateur de gaz par une version plus courte, ce qui augmente considérablement la cadence de tir. + + + Récupérateur d'énergie à courte amplitude + + + Ajout d'un module qui réduit nettement la dispersion sans nuire à la cadence de tir. + + + Module de retour à deux ressorts combinés + + + Ajout d'ouvertures de compensation pour réduire le recul de façon significative. + + + Canon à compensateur intégré + + + Modification des pièces mobiles du pistolet pour permettre un tir automatique complet. + + + Mode de tir : tir automatique + + + Modification des pièces mobiles du pistolet pour permettre un tir en rafales courtes. + + + Mode de tir : rafales de trois coups + + + Coût + + + Ne peut pas être installé + + + Installé + + + Voulez-vous vraiment installer : + + + Système d'acquisition de cible automatique + + + Système d'acquisition de cible automatique + + + Lunette optique x5 + + + Lunette optique x6 + + + Détecteur infrarouge + + + Poids de l'armure + + + Dispositif de vision nocturne de seconde génération + + + Dispositif de vision nocturne de troisième génération + + + Monture à lunette optique + + + Silencieux intégré + + + Lance-grenades sous le canon + + + Soin des blessures + + + Régénération + + + Dispositif de vision nocturne de première génération + + + Viseur ajustable + + + Viseur à contraste élevé + + + Accélérateur de servomoteurs + + + Résistance de la combinaison + + + Le mode de fonctionnement de cette arme est inconnu. Elle ne pourra pas être réparée sans informations complémentaires sur son utilisation. + + + Le technicien ne peut pas effectuer cette modification. + + + Cet élément a déjà été modifié. + + + Fonds insuffisants + + + N'utilise pas de grenaille. + + + Mode de tir : automatique + + + Mode de tir : rafale de 3 balles + + + Nombre de conteneurs + + + le technicien a besoin de vodka + + + le technicien a besoin d'outils rudimentaires + + + le technicien a besoin d'outils de précision + + + le technicien a besoin d'outils de calibrage + + + le technicien a besoin de données supplémentaires + + + modifications préalables nécessaires + + + Film protecteur Armadillo composé de cristaux de saphir + + + Matrice renforcée en titane et béryllium + + + Film de fibre de carbone + + + Sous-couche en caoutchouc + + diff --git a/gamedata/configs/text/fra/st_land_names.xml b/gamedata/configs/text/fra/st_land_names.xml new file mode 100644 index 0000000..78a5e66 --- /dev/null +++ b/gamedata/configs/text/fra/st_land_names.xml @@ -0,0 +1,171 @@ + + + + Griffe (anomalie) + + + Forêt de Fer (anomalie) + + + Scierie + + + Station-relais de Krug + + + Station de traitement des déchets + + + Soleil (anomalie) + + + Poste des rangers + + + Skadovsk + + + Ferme brûlée + + + Bouilloire (anomalie) + + + Marais + + + Izumrudnoye + + + Chevtchenko + + + Station de dragage + + + Grues + + + Pinchêne (anomalie) + + + Station-essence + + + Vieille péniche + + + Balafre (anomalie) + + + Pont de Preobrazhensky + + + Plateau sud + + + Ateliers du poste électrique + + + Tas de cendres (anomalie) + + + Tour de refroidissement + + + Poste électrique + + + Plavni (anomalie) + + + Cimenterie + + + Kopachy + + + Yanov + + + Carrière + + + Bunker des scientifiques + + + Complexe Volkhov AA + + + Bosquet anormal + + + Parking + + + Poste de contrôle + + + Puits à bitume (anomalie) + + + Tunnel est + + + Entrepôt + + + Système d'aération + + + Héliports + + + Bain de béton (anomalie) + + + Usine de Jupiter + + + Salle de cinéma Prometheus + + + Port fluvial + + + Ancien centre de service + + + École + + + Hôpital + + + Centre de service Yubileiny + + + Laverie + + + Maternelle + + + Complexe résidentiel + + + Épicerie + + + Grand magasin + + + Librairie + + + Volcan (anomalie) + + + Liane (anomalie) + + diff --git a/gamedata/configs/text/fra/st_mp_mapdesc.xml b/gamedata/configs/text/fra/st_mp_mapdesc.xml new file mode 100644 index 0000000..cda5272 --- /dev/null +++ b/gamedata/configs/text/fra/st_mp_mapdesc.xml @@ -0,0 +1,126 @@ + + + + Gare routière + + + Un endroit très étrange. Ce bâtiment silencieux abrite son lot de secrets, mais les stalkers y sont attirés pour une autre raison : la grande quantité d'artefacts que l'on peut y trouver. Agissez vite et la chance sera forcément au rendez-vous ! + + + Un endroit très étrange. Ce bâtiment silencieux abrite son lot de secrets, mais les stalkers y sont attirés pour une autre raison : la grande quantité d'artefacts que l'on peut y trouver. + + + Dépôt de bus à l'entrée de la Zone. Les tracteurs, bus et camions ne sont plus utilisés depuis bien longtemps... Aucun artefact n'y a encore été trouvé, mais l'endroit est apprécié des pillards, qui y pourchassent les bleus et les tuent pour voler leur butin. Restez à couvert dans les bâtiments et les véhicules et prenez garde aux ennemis sur les toits ! + + + Dépôt de bus à l'entrée de la Zone. Les tracteurs, bus et camions se sont plus utilisés depuis bien longtemps... + + + Dépôt désert et territoire adjacent. En cherchant bien, il est possible d'y trouver de l'équipement et des provisions, mais attention aux anomalies mortelles et aux snipers ! Le toit du dépôt offre une vue imprenable sur les alentours. + + + Dépôt désert et territoires adjacents. Attention aux anomalies mortelles et aux snipers ennemis ! + + + Un endroit énigmatique. Ce réservoir a été construit pour y mener des recherches sur quelqu'un ou quelque chose, mais l'objectif exact reste un mystère. Comme il ne contient aucun artefact, les stalkers n'y sont attirés que par les étranges appareils qui s'y trouvent encore. Surveillez les toits et prenez garde aux secteurs les plus radioactifs ! + + + Un endroit énigmatique. Ce réservoir a été construit pour y mener des recherches sur quelqu'un ou quelque chose, mais l'objectif exact reste un mystère. + + + Ce secteur dangereux de la Vallée obscure comprend une longue rue et un institut en ruine. Qui sait ce qu'on y enseignait... La seule chose que l'on peut apprendre ici maintenant, c'est l'art de la survie ! Oh et surveillez bien les toits... + + + Ce secteur dangereux de la Vallée obscure comprend une longue rue et un institut en ruine... + + + Cette usine désaffectée est la tombe d'un nombre incalculable de stalkers. Des dizaines d'anomalies attendent les visiteurs qui y viennent en nombre, attirés par ses vastes réserves d'artefacts. Attention aux radiations ! + + + Cette usine désaffectée est la tombe d'un nombre incalculable de stalkers. + + + La caserne de pompiers dont les membres sont intervenus lors de la catastrophe de la centrale de Tchernobyl en 1986. La tour constitue un excellent point d'observation et surplombe les alentours. Peu de gens osent s'aventurer dans les étages supérieurs et le sous-sol du bâtiment. Depuis quelque temps, c'est un lieu stratégique que convoitent les différentes factions de la Zone. + + + La caserne de pompiers dont les membres sont intervenus lors de la catastrophe de la centrale de Tchernobyl en 1986. Elle constitue une excellente position tactique. + + + Énorme décharge comprenant de gigantesques tas de matériel radioactif, des grues et d'autres équipements défectueux abandonnés après la catastrophe de 1986. On y trouve également des bâtiments désaffectés et un énorme hangar. La proximité du Cordon et une relative abondance d'artefacts attirent de nombreux stalkers. + + + Énorme décharge comprenant de gigantesques tas de matériel radioactif et d'équipements abandonnés après la catastrophe de 1986. + + + Petit quartier de l'énigmatique ville de Limansk. Des immeubles résidentiels séparés par un bâtiment inachevé. Quand plusieurs artefacts de grande valeur ont été trouvés ici, la nouvelle s'est propagée comme un feu de paille. Les rares voies d'accès à Limansk ont été prises d'assaut et les combats n'ont pas cessé depuis. + + + Petit quartier de l'énigmatique ville de Limansk. Des immeubles résidentiels séparés par un bâtiment inachevé. + + + Village abandonné au milieu de la Zone. On y trouve quelques bâtiments désertés, un petit lac d'eau huileuse et de nombreux véhicules rouillés. Attention aux snipers, mais n'oubliez pas que la Zone récompense les stalkers téméraires ! + + + Village abandonné au milieu de la Zone. On y trouve quelques bâtiments désertés, un petit lac d'eau huileuse et de nombreux véhicules rouillés. + + + Base militaire abandonnée, avec camions et blindés rouillés, quartier-général désaffecté et casernes désertées. Mais les apparences sont trompeuses : artefacts et ennemis y abondent. + + + Base militaire abandonnée, avec camions et blindés rouillés, quartier-général désaffecté et casernes désertées. + + + Ce vieux village est vraiment sinistre. Si vous êtes assez courageux pour y entrer, attendez-vous à devoir esquiver les balles ! Il n'y a nulle part où se cacher et vous devrez compter sur votre lunette et votre silencieux ! + + + Ce vieux village est vraiment sinistre. Vous êtes arrivé à bon port, mais ce n'est pas le moment de se reposer ! + + + On dirait davantage un bain de sang qu'une piscine. Les échos des tirs, des explosions et des cris des mourants hantent ces couloirs carrelés... Peu de stalkers savent comment atteindre cet endroit et encore moins comment en repartir en vie. + + + On dirait davantage un bain de sang qu'une piscine. Les échos des balles et des explosions hantent ces couloirs carrelés... + + + Petite gare près de l'usine de Rostock. + + + Petite gare près de l'usine de Rostock, aux rails rouillés et aux locomotives à jamais en retard sur l'horaire. Les nombreux artefacts qu'on y trouve attirent des stalkers venus de tous les coins de la Zone. + + + Une base de réparation à proximité d'un petit village. Tous les véhicules en état de marche ont été réquisitionnés à l'époque de la catastrophe de Tchernobyl. Ceux qui restaient ont été désossés. Marécages et roseaux contaminés font de cet endroit un lieu dangereux qui recèle néanmoins des trésors pour le stalker chanceux. + + + Une base de réparation à proximité d'un petit village. Marécages et roseaux contaminés font de cet endroit un lieu dangereux... + + + Des tas de métal rouillent derrière des murs de béton. À la fin du siècle dernier, l'usine fonctionnait à plein régime, au rythme des slogans socialistes aboyés par les haut-parleurs, mais le bâtiment a été abandonné depuis bien longtemps. + + + Vieille usine abandonnée : il n'en reste que des piles de métal derrière des murs de béton. + + + Le centre sportif de Pripyat, non loin de l'école abandonnée. Les sports pratiqués ici et le nombre de participants ont bien changé depuis 1986. Les stalkers qui s'y rendent sont attirés par la gloire, le butin et les artefacts... et y restent parfois pour l'éternité. + + + Le centre sportif de Pripyat, non loin de l'école abandonnée. + + + Un endroit bien étrange. Beaucoup se raillent des stalkers affirmant l'avoir vu, mais cet endroit existe vraiment. Des anomalies gravitationnelles ont déchiqueté le sol pour créer un paysage lunaire. Le secteur est dominé par trois gigantesques tours, du matériel militaire abandonné et des îlots de terre arrachés au sol. + + + Un endroit bien étrange. Des anomalies gravitationnelles ont déchiqueté le sol pour créer un paysage lunaire... + + + Cette zone constituait les abords de l'usine de Rostock avant que le Devoir ne s'y installe. Un endroit étrange qui regorge d'artefacts. Chaque hangar ou entrepôt vide recèle de nombreux dangers mortels. Soyez très prudent et gardez un œil sur la tour blanche... + + + Cette zone constituait les abords de l'usine de Rostock avant que le Devoir s'y installe. Un endroit étrange qui regorge d'artefacts. + + + Peu nombreux sont ceux qui osent s'aventurer dans la ville fantôme de Pripyat, ancien lieu de résidence des employés de la centrale. Mais, récemment, le calme des rues de la ville morte a été troublé par des échanges de tirs entre le cinéma Prometheus, l'embarcadère et les maisons de la rue Kurchatova. + + + Le quartier de Pripyat entre le cinéma Prometheus, l'embarcadère et la rue Kurchatova est le théâtre d'affrontements acharnés entre ceux qui sont parvenus à atteindre la ville morte. + + diff --git a/gamedata/configs/text/fra/st_mp_speechmenu.xml b/gamedata/configs/text/fra/st_mp_speechmenu.xml new file mode 100644 index 0000000..46c4686 --- /dev/null +++ b/gamedata/configs/text/fra/st_mp_speechmenu.xml @@ -0,0 +1,57 @@ + + + + Tout le monde, à l'attaque ! + + + Je vais récupérer l'artefact ! Couvrez-moi ! + + + Suivez-moi ! + + + Protégez l'artefact pour l'instant ! Ne le prenez pas encore ! + + + Je tiens ma position ! + + + Tenez vos positions ! + + + Prenez l'artefact ! Je vous couvre ! + + + J'ai besoin d'aide ! + + + Je n'ai pas assez d'argent ! Achetez-moi de l'équipement ! + + + Non. + + + Personne en vue ! + + + Au rapport, maintenant ! + + + Repliez-vous ! + + + Rapportez l'artefact ! + + + Compris ! + + + Silence ! + + + Restez groupés ! + + + Prenez l'artefact ! + + diff --git a/gamedata/configs/text/fra/st_mp_teamdesc.xml b/gamedata/configs/text/fra/st_mp_teamdesc.xml new file mode 100644 index 0000000..7b34e83 --- /dev/null +++ b/gamedata/configs/text/fra/st_mp_teamdesc.xml @@ -0,0 +1,15 @@ + + + + Les anarchistes de la Zone. Ils considèrent que la Zone est un véritable sanctuaire et que les lois, conventions et règles du monde extérieur n'y ont pas cours. Leur devise : "Fais ce que tu veux et occupe-toi de tes oignons". La Liberté essaie d'empêcher les autorités de prendre le contrôle de la Zone et est en guerre contre les mercenaires. Ses membres sont principalement équipés d'armes russes ou soviétiques. + + + Faction de la liberté (stalkers indépendants) + + + Ces aventuriers sans scrupules viennent du monde entier et acceptent toutes les missions, même les plus hasardeuses. Leur devise est bien évidemment "l'argent n'a pas d'odeur". Ils se battront pour le contrôle des champs d'artefacts tant qu'il y aura une demande. Leur équipement est principalement d'origine occidentale. + + + Faction des mercenaires (Coupe-jarrets) + + diff --git a/gamedata/configs/text/fra/st_quests_general.xml b/gamedata/configs/text/fra/st_quests_general.xml new file mode 100644 index 0000000..baed1c8 --- /dev/null +++ b/gamedata/configs/text/fra/st_quests_general.xml @@ -0,0 +1,18 @@ + + + + Attention ! Début de l'émission dans : + + + Mettez-vous immédiatement à couvert pour vous protéger de l'émission. + + + Ne quittez pas votre abri pendant une émission. + + + Emission : se mettre à couvert + + + Emission : rester à couvert + + diff --git a/gamedata/configs/text/fra/st_quests_jupiter.xml b/gamedata/configs/text/fra/st_quests_jupiter.xml new file mode 100644 index 0000000..30b885d --- /dev/null +++ b/gamedata/configs/text/fra/st_quests_jupiter.xml @@ -0,0 +1,687 @@ + + + + Dettes : apporter l'argent aux bandits. + + + Vano a acheté aux bandits une combinaison qu'il ne peut pas payer car les intérêts sont trop élevés. Il vous a demandé de vous occuper du problème. + + + Dettes : retourner auprès de Vano. + + + Expliquez à Vano comment s'est déroulé le remboursement de sa dette. + + + Dettes : éliminer les bandits. + + + L'acquittement des dettes de Vano a mal tourné. Éliminez les bandits. + + + Otage : demander votre récompense aux amis de Mitay + + + Mitay est libre. Retrouvez ses amis au bar pour recevoir votre récompense. + + + Otage : libérer Mitay. + + + Otage : demander à Grizzly s'il est prêt. + + + Vous devez parler à Grizzly avant de tenter de libérer l'otage. + + + Otage : libérer Mitay par la force. + + + Éliminez les bandits pour libérer un stalker nommé Mitay. + + + Otage : rejoindre les stalkers. + + + Les stalkers vont vous aider à libérer l'otage. Vous devez les rejoindre au milieu de la nuit pour attaquer les bandits. + + + Otage : proposer une rançon pour la libération de Mitay. + + + Proposez de payer une rançon au chef des bandits pour libérer le stalker Mitay. + + + Libérez le stalker Mitay qui a été pris en otage par les bandits. + + + Otage : sortir Mitay du camp des bandits. + + + Le camp des bandits est trop dangereux. Escortez Mitay hors du camp. + + + Otage : parler à Mitay. + + + Mitay est en sécurité. Parlez-lui de la prochaine étape du plan. + + + La route de Pripyat : parler du passage souterrain au technicien. + + + Les documents que vous avez trouvés indiquent qu'il existe un passage souterrain menant à Pripyat sous l'usine de Jupiter. Ce passage souterrain est privé d'électricité et rempli d'un gaz. L'entrée a été bloquée. Vous devez trouver un technicien capable d'activer le générateur et d'ouvrir l'entrée du passage. + + + Le module de mémoire est entre des mains expertes. Vous devez attendre qu'il soit débloqué. + + + Drone : débloquer le module de mémoire. + + + Drone : récupérer le module de mémoire auprès de Nitro. + + + Drone : récupérer le module de mémoire auprès de Novikov. + + + Nitro a débloqué le module de mémoire. Récupérez-le pour voir quelles informations il contient. + + + Novikov a débloqué le module de mémoire. Récupérez-le pour voir quelles informations il contient. + + + Vous avez réussi à récupérer le module de mémoire du drone. Pour avoir accès aux données qu'il contient, vous devez le faire débloquer. + + + Drone : attendre que le module de mémoire soit débloqué. + + + Oasis : rassembler des preuves. + + + L'Oasis a été découverte et possède effectivement des propriétés curatives. Rassemblez des preuves et remettez-les aux scientifiques. + + + L'Oasis : rapporter les preuves aux scientifiques. + + + L'Oasis a été découverte et possède effectivement des propriétés curatives. Vous devez rapporter l'artefact que vous avez trouvé aux scientifiques pour leur prouver l'existence de l'Oasis. + + + L'Oasis : vérifier la véracité de la légende. + + + Le scientifique du bunker Ozersky vous a demandé de retrouver l'Oasis, un lieu légendaire de la Zone. Selon la rumeur, on y trouverait des eaux aux propriétés curatives, mais personne ne sait si elle existe vraiment. + + + Kopachy : accompagner Oncle Yar. + + + Oncle Yar a besoin d'aide. Accompagnez-le jusqu'au village de Kopachy. + + + Kopachy : éliminer les mercenaires. + + + Oncle Yar semble avoir anticipé l'arrivée des mercenaires. Vous devez les éliminer. + + + Kopachy : rester aux côtés d'Oncle Yar. + + + Oncle Yar vous a demandé de rester à ses côtés et d'être discret. + + + Kopachy : parler à Oncle Yar. + + + Les mercenaires sont morts. Vous devriez demander des explications à Oncle Yar. + + + Émissions psi intermittentes : apporter la formation anormale aux scientifiques. + + + Rapportez l'échantillon que vous avez prélevé à Hermann. Il s'agit d'un objet partiellement transformé par une anomalie. Il est probablement la source des émissions psi intermittentes. + + + Émissions psi intermittentes : enquêter sur la source. + + + Fouillez le tunnel à la recherche d'une formation anormale. Les scientifiques pensent que le champ psi intermittent provient d'une source qui prend probablement la forme d'un artefact. + + + Émissions psi intermittentes : rejoindre le groupe de Topol. + + + Le groupe de Topol s'est rendue dans le tunnel d'où proviennent les émissions psi intermittentes et vous attend sur place. + + + Émissions psi intermittentes : parler à Topol. + + + Rejoignez l'unité de Topol pour aller au tunnel d'où proviennent les émissions psi intermittentes. Les stalkers surveilleront le tunnel pendant que vous ferez vos recherches pour les scientifiques. + + + Rapportez le matériel radio que vous avez trouvé à Nitro. + + + Nitro a besoin de matériel radio. Vous pouvez lui donner ce que vous avez déjà ou en trouver davantage. + + + Équipement radio : trouver du matériel pour Nitro. + + + Nitro a besoin de matériel radio. Il vous a conseillé d'en chercher dans la cimenterie. + + + Vol : trouver le voleur. + + + Demandez aux stalkers de Yanov s'ils savent qui aurait pu dérober des objets dans une cantine personnelle. + + + Vol : fouiller le poste électrique. + + + Vous devez fouiller le poste électrique ; c'est l'endroit vers lequel s'est dirigé le stalker soupçonné du vol. + + + Vol : récupérer vos affaires. + + + Tous les objets qu'Accroc a dérobés devraient se trouver dans sa planque, dans les égouts derrière le poste électrique. + + + Plante anormale : prélever un échantillon de la plante. + + + Une zone de végétation anormale a fait son apparition près de la carrière. Ozersky vous a demandé de prélever un échantillon de plante pour ses recherches. + + + Plante anormale : donner l'échantillon à Ozersky. + + + Vous devez rapporter l'échantillon végétal à Ozersky. En échange, il convaincra Hermann de vous remettre une combinaison scientifique. + + + Chasse : éliminer les mutants non identifiés. + + + Un groupe des stalkers a découvert des mutants non identifiés dans les tunnels au nord de l'usine de Jupiter. Explorez la zone et éliminez les mutants. + + + Chasse : récupérer la récompense que Trappeur vous avait promise si vous éliminiez les mutants du tunnel. + + + Les mutants terrés dans les tunnels au nord de l'usine de Jupiter ont été éliminés. Informez-en le Trappeur et récupérez votre récompense. + + + Hypothèse : placer le détecteur au centre du glissement de terrain. + + + Placez le détecteur au centre du glissement de terrain pour tester l'hypothèse d'Ozersky. + + + Hypothèse : attendre la fin de l'expérience. + + + Le détecteur est désormais actif et a commencé à enregistrer une présence mutante. Attendez que le dispositif ait rassemblé assez de données pour confirmer ou infirmer l'hypothèse d'Ozersky. + + + Hypothèse : récupérer le détecteur. + + + Vous avez assez de données pour confirmer l'hypothèse d'Ozersky. Récupérez le détecteur. + + + Théorie : remettre le détecteur à Ozersky. + + + Remettez le détecteur à Ozersky. Les données récupérées devraient suffire à confirmer son hypothèse. + + + Chasse : tuer les sangsues du marais. + + + Un groupe de sangsues du marais a été repéré dans la Tourbière, derrière la cimenterie. Les stalkers du coin vous ont demandé de les éliminer. + + + Chasse : récupérer la récompense que Trappeur vous avait promise si vous éliminiez les sangsues du marais. + + + Vous avez éliminé les sangsues du marais. Allez récupérer la récompense offerte par les stalkers du coin auprès de Trappeur. + + + Chasse nocturne : tuer la chimère. + + + La chimère est un prédateur nocturne dont personne ne sait où elle se terre quand vient le jour. Vous devez la tuer de nuit, lorsqu'elle sort pour chasser près du système d'aération. + + + Chasse nocturne : informer Trappeur de la mort de la chimère. + + + La chimère est morte et le chasseur Renard a été vengé. Informez-en le Trappeur. + + + Outils : apporter les outils à Nitro. + + + Nitro vous a demandé de lui apporter deux jeux d'outils : un pour réaliser des tâches simples et un autre pour le travail de précision. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter les outils à Nitro. + + + Nitro vous a demandé de récupérer deux jeux d'outils : un pour effectuer des tâches simples et un autre pour les opérations de calibrage. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter les outils à Nitro. + + + Nitro vous a demandé de récupérer un jeu d'outils rudimentaires. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter les outils à Nitro. + + + Nitro vous a demandé de récupérer deux jeux d'outils : un pour le travail de précision et un autre pour les opérations du calibrage. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter les outils à Nitro. + + + Nitro vous a demandé de récupérer un jeu d'outils de précision. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter les outils à Nitro. + + + Nitro vous a demandé de récupérer un jeu d'outils de calibrage. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter les outils à Nitro. + + + Nitro vous a demandé de récupérer trois jeux d'outils : des outils rudimentaires, des outils de précisions et des instruments de calibrage. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Pripyat 1 : trouver une combinaison équipée d'un module respiratoire en circuit fermé. + + + Vous aurez besoin d'une combinaison équipée d'un module respiratoire en circuit fermé pour entrer dans le passage souterrain Pripyat 1 qui est rempli de dioxyde de carbone mélangé à une substance inconnue. + + + Pripyat 1 : emmener Arpenteur voir Zulu. + + + Emmenez Arpenteur voir Zulu et présentez-le comme un nouveau membre du groupe. Zulu risque de ne pas se montrer très accueillant s'il voit arriver un combattant portant une combinaison du Monolithe. + + + Pripyat 1 : parler de la combinaison de protection à Arpenteur. + + + Le passage souterrain Pripyat 1 est rempli de dioxyde de carbone mélangé à une substance inconnue. Dites à Arpenteur qu'il aura besoin d'une combinaison équipée d'un module respiratoire en circuit fermé pour le traverser. + + + Pripyat 1 : rassembler un groupe pour aller jusqu'à Pripyat. + + + Nitro a réussi à ouvrir l'entrée du passage souterrain Pripyat 1, mais refuse de pénétrer dans l'usine de Jupiter sans protection. Il vous recommande de trouver quelques hommes pour vous accompagner. Zulu est déjà avec vous et vous a suggéré de lui envoyer de nouvelles recrues. + + + Pripyat 1 : demander à Zulu s'il souhaite aller à Pripyat. + + + Nitro a réussi à ouvrir l'entrée du passage souterrain Pripyat 1, mais refuse de pénétrer dans l'usine de Jupiter sans protection. Il vous recommande de trouver quelques hommes pour vous accompagner. Il vous a suggéré de parler à Zulu, car ce dernier pourrait vous aider à rassembler un groupe. + + + Pripyat 1 : emmener Sokolov voir Zulu. + + + Sokolov a accepté de se rendre à Pripyat et pourrait se procurer une combinaison de scientifique avant de quitter le bunker. Allez présenter ce nouveau membre de l'équipe à Zulu. + + + Pripyat 1 : parler de la combinaison de protection à Sokolov. + + + Pripyat 1 : demander une combinaison de protection pour Sokolov à Ozersky. + + + Sokolov ne voit aucun inconvénient à porter une combinaison de protection scientifique, mais Hermann ne le laissera pas en emprunter une au bunker. Vous devriez en parler à Ozersky ; il est plus aimable et plus abordable. + + + Pripyat 1 : parler de la combinaison scientifique à Sokolov. + + + Ozersky est satisfait de l'échantillon de plante. Il vous a demandé de dire à Sokolov qu'il pouvait récupérer sa combinaison scientifique auprès d'Hermann. + + + Le passage souterrain Pripyat 1 est rempli de dioxyde de carbone mélangé à une substance inconnue. Dites à Sokolov qu'il aura besoin d'une combinaison équipée d'un module respiratoire en circuit fermé pour le traverser. + + + Pripyat 1 : obtenir de l'argent pour payer la combinaison de Vano. + + + La combinaison que Vano avait achetée aux bandits était équipée d'un module respiratoire en circuit fermé. Mais Vano a dû la mettre au clou pour s'acquitter de ses dettes. Il lui faut maintenant 3000 pour la racheter. + + + Pripyat 1 : emmener Vano voir Zulu. + + + Vano a accepté de se rendre à Pripyat. Emmenez-le voir Zulu et présentez-le comme un nouveau membre du groupe. Vano pourra racheter sa combinaison sur le chemin. + + + Pripyat 1 : parler de la combinaison de protection à Vano. + + + Le passage souterrain Pripyat 1 est rempli de dioxyde de carbone mélangé à une substance inconnue. Dites à Vano qu'il aura besoin d'une combinaison équipée d'un module respiratoire en circuit fermé pour le traverser. + + + Flint, aussi appelé la Pie, est une ordure de premier ordre. Vous devriez le dénoncer aux stalkers de Zaton ou aux autres factions. Ça lui donnera une bonne leçon. + + + Flint se vante des exploits d'un autre. Il mérite qu'on dénonce ses mensonges. + + + Fausses déclarations : s'occuper de Flint. + + + Flint se vante d'avoir accompli des exploits que d'autres lui ont racontés. Il doit apprendre à tenir sa langue... + + + Flint ne peut pas s'empêcher de se vanter. Essayez de le convaincre d'arrêter... + + + Flint, aussi appelé la Pie, est une ordure de premier ordre. Vous devriez le dénoncer aux stalkers de Zaton ou aux autres factions. Ce serait une douce vengeance. + + + Recherche d'anomalies : récupérer les détecteurs auprès du technicien. + + + Récupérez les détecteurs auprès de Novikov. Hermann souhaite obtenir des statistiques sur la formation des artefacts et pour cela, les détecteurs doivent être placés au centre de différentes anomalies. + + + Recherche d'anomalies : placer le détecteur au cœur de l'anomalie. + + + Recherche d'anomalies : récupérer votre récompense. + + + Récupérez la récompense qui vous a été promise si vous parveniez à placer les détecteurs au cœur des anomalies. Hermann peut à présent commencer à récupérer des données sur la formation d'artefacts. + + + Placez le détecteur au cœur de l'anomalie. Hermann souhaite récupérer des statistiques sur la formation des artefacts et pour cela, les détecteurs doivent être placés au centre de différentes anomalies. + + + Un contrat avec les scientifiques : apporter l'artefact Kolobok à Garry. + + + Garry a besoin de l'artefact Kolobok pour remplir les conditions de son contrat avec les scientifiques. Apportez-lui cet artefact. + + + Un contrat avec les scientifiques : apporter l'artefact Morceau de viande à Garry. + + + Garry a besoin de l'artefact Morceau de viande pour remplir les conditions de son contrat avec les scientifiques. Apportez-lui cet artefact. + + + Un contrat avec les scientifiques : apporter les artefacts Morceau de viande et Kolobok à Garry. + + + Garry a besoin des artefacts Morceau de viande et Kolobok pour remplir les conditions de son contrat avec les scientifiques. Apportez-lui ces artefacts. + + + Un contrat avec les scientifiques : les artefacts ont été livrés. + + + Garry est en possession des deux artefacts et a honoré son contrat. + + + L'histoire du Devoir : remettre le PDA du fondateur du Devoir aux personnes intéressées. + + + Vous avez trouvé le PDA du fondateur du Devoir, mort dans une anomalie. Vous devriez le remettre à une personne intéressée par les derniers instants du chef de cette faction. + + + Activité anormale : examiner le secteur à l'aide d'un détecteur amélioré. + + + Les détecteurs des scientifiques ont enregistré une activité inhabituelle au nord du bunker. Examinez le secteur à l'aide d'un détecteur amélioré. + + + Protection des scientifiques : trouver des personnes fiables. + + + Le bunker des scientifiques est vulnérable. Vous devez trouver des hommes dignes de confiance pour le protéger. + + + Protection des scientifiques : retourner voir Hermann pour obtenir la récompense. + + + Vous avez trouvé des gardes pour protéger le bunker des scientifiques. Retournez voir Hermann pour qu'il vous remette votre récompense. + + + Derniers développements : trouver les documents dans l'usine de Jupiter. + + + Hermann s'intéresse aux derniers développements de l'usine de Jupiter. Trouvez les documents correspondants dans les bureaux administratifs de l'usine. + + + Derniers développements : rapporter les documents à Hermann. + + + Les dossiers que vous avez trouvés indiquent que tous les documents techniques ont été transférés hors de l'usine. L'information n'est pas capitale, mais vous devriez tout de même la transmettre à Hermann. + + + Derniers développements : rapporter les documents et le PDA de Black à Hermann. + + + Les mercenaires ont attaqué pendant que vous cherchiez les dossiers. Selon le PDA que vous avez trouvé sur Black, le chef de la bande, ils auraient été envoyés pour empêcher les scientifiques de mettre la main sur les documents. Mais vous avez également découvert dans les dossiers que vous avez trouvés que tous les documents techniques avaient été transférés hors de l'usine. Vous devriez transmettre cette information à Hermann et lui montrer le PDA de Black. + + + Les survivants du Monolithe : demander aux habitants de Yanov de prendre les combattants du Monolithe sous leur aile. + + + Des combattants du Monolithe ont réussi à recouvrer leurs esprits. Ils cherchent à présent un endroit où s'abriter des émissions et des mutants. Vous devez demander aux habitants de la gare Yanov s'ils sont prêts à les prendre sous leur aile. + + + Accompagnez les officiers de recrutement du Devoir jusqu'aux anciens membres du Monolithe. Si ces combattants acceptent de s'enrôler dans le Devoir, ils pourront par la même occasion se mettre à l'abri des émissions et des mutants dans la gare de Yanov. + + + Accompagnez les officiers de recrutement de la Liberté jusqu'aux anciens membres du Monolithe. Si ces combattants acceptent de s'enrôler dans la Liberté, ils pourront par la même occasion se mettre à l'abri des émissions et des mutants dans la gare de Yanov. + + + Les survivants du Monolithe : accompagner les officiers de recrutement jusqu'aux anciens combattants du Monolithe. + + + Étude de l'anomalie : couvrir les stalkers. + + + L'étude de l'anomalie semble avoir attiré des mutants. Couvrez les stalkers pendant qu'ils récupèrent les données nécessaires. + + + Étude de l'anomalie : couvrir les stalkers. + + + L'étude de l'anomalie semble avoir attiré les zombies de Kopachy. Couvrez les stalkers pendant qu'ils récupèrent les données nécessaires. + + + Étude de l'anomalie : parler à Hermann. + + + L'étude de l'anomalie a été effectuée. Informez-en les scientifiques et récupérez votre récompense. + + + Étude de l'anomalie : parler aux stalkers. + + + Parlez au groupe de stalkers qui doit effectuer les relevés. Vous devez choisir une anomalie. + + + Étude de l'anomalie : parler aux stalkers. + + + Toutes les données nécessaires ont été récupérées, vous pouvez donc retourner au bunker des scientifiques avec votre groupe. + + + Étude de l'anomalie : parler aux stalkers. + + + Les données concernant l'anomalie ont été récupérées. Vous devez à présent parler aux stalkers pour décider de la marche à suivre. + + + Étude de l'anomalie : couvrir les stalkers. + + + Hermann vous a proposé de protéger les stalkers pendant qu'ils effectuent des relevés dans des anomalies. + + + Stingray 4 : fouiller les lieux de l'accident. + + + Stingray 4 : trouver la cause du court-circuit. + + + Fouillez les lieux de l'accident du Stingray 4. + + + Trouvez la source de la puissante décharge électrique qui a frappé l'hélicoptère Stingray 4. + + + Stingray 1 : apporter la boîte noire à un technicien pour qu'il la décode. + + + La boîte noire du Stingray 1 est intacte. Elle doit être décodée par un technicien pour que vous puissiez accéder aux informations qu'elle contient. + + + Stingray 1 : attendre que la boîte noire soit décodée. + + + Nitro a accepté de décoder la boîte noire, mais il lui faut trois bonnes heures. Vous allez devoir patienter. + + + Stingray 1 : retourner voir Nitro pour obtenir les informations de la boîte noire. + + + Nitro doit avoir terminé le décryptage. Allez le voir pour prendre connaissance des informations que renfermait la boîte noire. + + + Stingray 1 : fouiller les lieux de l'accident. + + + Fouillez le lieu de l'accident du Stingray 1. + + + Pripyat 1 : aller à Pripyat. + + + Vous devez emprunter le passage souterrain Pripyat 1 pour atteindre le point d'évacuation militaire de Pripyat. + + + La route de Pripyat : fouiller l'atelier du complexe de chimie de l'usine de Jupiter. + + + L'atelier du complexe de chimie contient sûrement des informations concernant le passage souterrain Pripyat 1 qui a été rempli d'un gaz inconnu. + + + La route de Pripyat : fouiller les bureaux administratifs de l'usine de Jupiter. + + + Le guide ne connaît aucune route sûre menant à Pripyat, mais vous a indiqué où vous pourriez trouver des informations sur les tunnels souterrains menant de l'usine de Jupiter à la ville. Vous devriez commencer par les bureaux administratifs. + + + La route de Pripyat : fouiller le laboratoire de l'usine de Jupiter. + + + Les dossiers trouvés dans les bureaux administratifs font état de l'évacuation de la zone de production de l'usine de Jupiter. Vous pourrez certainement récupérer d'autres informations dans le laboratoire. + + + La route de Pripyat : examiner l'ascenseur du passage souterrain Pripyat 1. + + + L'entrée du passage souterrain se trouve de l'autre côté de l'ascenseur. Examinez les lieux et récupérez des informations concernant ce passage. + + + La route de Pripyat : fouiller la Section 1 de l'usine de Jupiter. + + + La Section 1 doit sûrement renfermer des informations sur le souterrain Pripyat 1. Vous devriez aller y faire un tour. + + + La route de Pripyat : fouiller le service des livraisons de l'usine de Jupiter. + + + D'après la note de l'atelier du labo, l'évacuation devait être effectuée par le service des livraisons. Allez donc y jeter un coup d'œil. + + + La route de Pripyat : fouiller l'atelier de réparation de l'usine de Jupiter. + + + Le service des livraisons contenait des informations sur des pertes lors du transport d'un élément appelé Objet 62. Selon les registres, l'atelier de réparations devait se charger du problème. Vous devriez y faire un tour. + + + La route de Pripyat : parler au guide. + + + D'après les enregistrements de la boîte noire de l'un des hélicoptères, les unités militaires devaient se diriger vers le point d'évacuation B28. Les cartes trouvées dans l'autre hélicoptère participant à la mission indiquent que ce point se trouve à Pripyat. Il va falloir trouver un moyen de vous y rendre. Parlez-en au guide. + + + L'entrepôt du Devoir : prendre ce qui vous revient. + + + L'entrepôt du Devoir : aller voir Morgan. + + + Morgan le marchand vous a donné l'accès à l'entrepôt du Devoir en échange de votre silence concernant ses affaires. Allez le retrouver près de la carrière comme convenu. + + + Vous devez ouvrir le portail pour continuer. + + + Vous devez ouvrir la porte pour continuer. + + + Vous devez activer l'alimentation du portail pour pouvoir continuer. + + + Vous devez déverrouiller le portail pour continuer. Pour cela, rendez-vous dans la salle de contrôle. + + + Groupe de recherche : recruter des hommes de confiance + + + Un groupe de recherche qui travaillait pour les scientifiques a été tué. Vous devez recruter de nouveaux hommes afin que les recherches puissent continuer. + + + Groupe de recherche : retourner auprès d'Hermann pour obtenir la récompense. + + + Vous avez trouvé les candidats idéaux pour le groupe de recherche. Retournez auprès d'Hermann pour obtenir votre récompense. + + + Pripyat 1 : accomplir la mission d'Ozersky. + + + Vous devez mener à bien la mission que vous a confiée Ozersky et lui rapporter la plante anormale pour obtenir une combinaison pour Sokolov. + + + Nitro a besoin de matériel radio. Vous en trouverez dans la cimenterie. + + + C'est Flint qui a laissé Senya mourir dans une anomalie. Allez lui parler et découvrez les raisons de son geste. + + + Châtiment : venger Senya. + + + Trouvez celui qui a laissé Senya mourir dans une anomalie après s'être emparé de son artefact. Malheureusement, Senya est mort avant de pouvoir vous donner un nom. Il a cependant précisé qu'il s'agissait d'un membre de la Liberté. + + + Le lieutenant colonel Shulga vous a autorisé à vous servir dans l'entrepôt du Devoir si vous parvenez à en prendre le contrôle. + + + Loki vous a donné l'autorisation de vous servir dans l'entrepôt du Devoir tant qu'il restera aux mains des combattants de la Liberté. + + diff --git a/gamedata/configs/text/fra/st_quests_pripyat.xml b/gamedata/configs/text/fra/st_quests_pripyat.xml new file mode 100644 index 0000000..c883bf6 --- /dev/null +++ b/gamedata/configs/text/fra/st_quests_pripyat.xml @@ -0,0 +1,345 @@ + + + + Objet 62 : trouver les dossiers dans l'atelier de test. + + + Trouvez les documents concernant l'Objet 62. Ils devraient vous permettre de déterminer si l'arme a été utilisée pour abattre les hélicoptères. + + + Arme non identifiée : s'abriter dans le bâtiment. + + + Mettez-vous à couvert dans le bâtiment et repoussez l'attaque du Monolithe. + + + Arme non identifiée : récupérer des informations. + + + L'arme n'est pas opérationnelle et son fonctionnement reste un mystère. Trouvez un technicien capable de découvrir comment elle marche. + + + Arme non identifiée : tuer le chef de l'unité du Monolithe. + + + Vous devez tuer le chef de l'unité du Monolithe, celui qui utilise l'arme non identifiée. + + + Arme non identifiée : fouiller les cadavres des combattants du Monolithe. + + + Les combattants du Monolithe devraient être en possession de l'arme non identifiée. Trouvez-la. + + + Arme non identifiée : parler à Cardan. + + + Cardan ne devrait plus avoir la gueule de bois. C'est le moment de lui parler de l'arme non identifiée. + + + Arme non identifiée : attendre que Cardan se remette de sa cuite. + + + Cardan saura sûrement vous renseigner sur l'arme. Allez lui parler quand il se réveillera. + + + Fusil Gauss : parler de l'arme à Kovalsky. + + + Dites à Kovalsky tout ce que vous savez sur l'Objet 62. + + + Arme non identifiée : rejoindre le groupe. + + + Vous devez rejoindre le groupe pour récupérer l'arme. + + + Arme non identifiée : prendre l'arme. + + + Ramassez l'arme du chef de l'unité du Monolithe. + + + Arme non identifiée : remettre l'arme à Kovalsky. + + + Vous avez récupéré l'arme. Apportez-la à Kovalsky et déterminez si elle a été utilisée pour abattre les hélicoptères. + + + Arme non identifiée : participer à l'embuscade du Monolithe. + + + L'unité de reconnaissance militaire s'apprête à tendre une embuscade aux combattants du Monolithe. Vous devriez participer à l'opération. + + + Les forces du Monolithe : rejoindre les renforts. + + + Kovalsky a envoyé des renforts pour vous aider à éliminer les combattants du Monolithe qui se cachent dans la librairie. + + + Les forces du Monolithe : prendre le contrôle de la librairie. + + + Éliminez tous les combattants du Monolithe cachés dans le bâtiment. Des unités de taille importante constituent une menace pour le camp militaire. + + + Les forces du Monolithe : examiner le dispositif suspect. + + + Un étrange dispositif se trouve dans le bâtiment. Examinez-le. + + + Labo X8 : trouver les dossiers concernant les expériences. + + + Les informations que vous avez recueillies concernent un laboratoire central, nommé X8. Il contient peut-être des documents traitant des expériences secrètes menées dans la Zone. + + + L'unité de reconnaissance disparue : retrouver le groupe. + + + L'unité de reconnaissance envoyée par Kovalsky a disparu après une étrange communication radio. Retrouvez-la pour découvrir ce qui s'est passé. + + + Sentinelle disparue : fouiller l'endroit où la sentinelle a disparu. + + + La sentinelle avait un comportement étrange, vous devriez mener votre enquête. + + + Sentinelle disparue : retrouver la sentinelle. + + + L'un des soldats manquait à l'appel. Retrouvez-le pour déterminer la raison de sa disparition. + + + Sentinelle disparue : tuer le contrôleur. + + + Un contrôleur se trouvait près de la sentinelle disparue. Il doit être éliminé. + + + Interférences radio : trouver l'unité qui a disparu. + + + L'unité partie à la recherche des interférences radio est portée disparue. Retrouvez-la. + + + Interférences radio : fouiller les cadavres. + + + Fouillez les cadavres, vous pourrez peut-être déterminer la cause de leur décès. + + + Interférences radio : fouiller le cadavre. + + + Fouillez le cadavre, vous pourrez peut-être déterminer la cause du décès. + + + Interférences radio : faire sauter la porte. + + + Faites sauter la porte avec des explosifs pour pénétrer dans le bâtiment. + + + Interférences radio : trouver la source du bruit. + + + Un bruit provient du réfrigérateur, on dirait que quelqu'un est enfermé à l'intérieur. Examinez-le. + + + Interférences radio : éliminer la source des interférences. + + + Vous avez localisé la source des interférences radio. Détruisez-la ! + + + Interférences radio : détruire la source des interférences. + + + Trouvez la source des interférences dans le bâtiment. + + + Interférences radio : trouver des explosifs. + + + L'unité chargée de trouver la source des interférences possédait des explosifs. Trouvez-les pour dégager l'entrée du bâtiment. + + + Interférences radio : pénétrer dans l'école maternelle. + + + La source du signal se trouve dans l'école maternelle, vous devez donc y entrer. + + + Évacuation : couvrir les militaires. + + + Strelok est mort, mais vous devez tout de même aider les militaires à atteindre les hélicoptères. + + + Évacuation : couvrir Strelok. + + + Le QG est intéressé par les informations de Strelok. Vous devez l'escorter jusqu'aux hélicoptères. + + + Évacuation : atteindre les hélicoptères. + + + Tout le monde est mort, vous allez devoir vous rendre seul jusqu'aux hélicoptères. + + + Évacuation : parler à Kovalsky. + + + Parlez à Kovalsky avant le début de l'évacuation. + + + Évacuation : dire à Kovalsky que vous êtes prêt. + + + Vous devriez dire à Kovalsky que vous êtes prêt à commencer l'évacuation. + + + Évacuation : attendre la fin de l'émission. + + + Vous devez attendre la fin de l'émission. + + + Inconnu : enquêter sur la source du signal. + + + Kirillov a identifié un signal étrange non loin de la base. Vous devez trouver la source de ce signal. + + + Inconnu : suivre le signal. + + + Les coordonnées du signal sont à nouveau accessibles. Suivez-les ! + + + Inconnu : examiner la dernière position connue du signal. + + + Le signal a disparu dans la cour du bâtiment, allez examiner la dernière position connue du signal. + + + Inconnu : se préparer à l'attaque de la base. + + + Retournez à la base de l'armée et préparez-vous ! Il semblerait qu'une attaque soit imminente. + + + Interférences radio : parler à Kovalsky. + + + Le colonel Kovalsky a demandé à vous voir. + + + Labo X8 : pénétrer dans la cage d'ascenseur. + + + L'entrée du laboratoire souterrain se trouve sous le centre de service de Yubileiny. Le seul moyen d'y accéder est de passer par la cage d'ascenseur. + + + Laboratoire X8 : trouver le générateur. + + + L'alimentation des portes de la cage d'ascenseur a été coupée. Pour les ouvrir, vous devez trouver et activer le générateur de secours. + + + Laboratoire X8 : descendre dans le labo. + + + Prenez l'ascenseur pour entrer dans le laboratoire X8 situé sous le centre de service de Yubileiny. + + + Mise à mort : éliminer le messager. + + + Éliminez le messager. Sans lui, les mercenaires ne pourront pas trouver le laboratoire. + + + Mise à mort : attendre les hommes du client. + + + Attendez les hommes du client et tuez leur chef. Sans lui, les mercenaires ne pourront pas trouver le laboratoire. + + + Mise à mort : tuer le chef des mercenaires. + + + Éliminez le chef des mercenaires. Sans lui, les mercenaires ne pourront pas trouver le laboratoire. + + + Mise à mort : attendre l'arrivée des mercenaires. + + + Attendez l'arrivée des mercenaires et tuez leur chef. Sans lui, les mercenaires ne pourront pas trouver le laboratoire. + + + Mise à mort : parler à Kovalsky. + + + Faites votre rapport à Kovalsky. + + + Laboratoire X8 : sortir du complexe souterrain ou continuer à chercher des documents. + + + Vous avez trouvé des documents et pouvez donc quitter le laboratoire. Il peut cependant y avoir d'autres documents dans le complexe. + + + Laboratoire X8 : sortir du complexe souterrain ou continuer à chercher des documents. + + + Vous avez trouvé des documents et pouvez donc quitter le laboratoire. Il peut cependant y avoir d'autres documents dans le complexe. + + + Laboratoire X8 : sortir du complexe souterrain + + + Il semblerait que vous ayez récupéré tous les documents du laboratoire. Vous pouvez maintenant quitter le complexe souterrain. + + + Forces du Monolithe : attendre des renforts. + + + Vous devez attendre les renforts envoyés par Kovalsky avant d'éliminer les forces du Monolithe retranchées dans la librairie. + + + Entretien : parler à Kovalsky. + + + Vous devez parler à Kovalsky. Il semble avoir des choses importantes à vous dire. + + + Évacuation : tenir la position près des hélicoptères. + + + Vous devez protéger les hélicoptères jusqu'à ce qu'ils puissent décoller. + + + Évacuation : réanimer l'infirmier. + + + L'infirmier a apparemment été touché une nouvelle fois par des forces non identifiées. Réanimez-le le plus vite possible. + + + Évacuation : retourner aux hélicoptères. + + + Vous devez retourner aux hélicoptères car ils risquent de décoller d'un instant à l'autre. + + + Évacuation : retourner au plus vite aux hélicoptères. + + + Les hélicoptères sont prêts à décoller. Vous devez immédiatement monter à bord. Les pilotes ne peuvent pas attendre plus longtemps. + + diff --git a/gamedata/configs/text/fra/st_quests_zaton.xml b/gamedata/configs/text/fra/st_quests_zaton.xml new file mode 100644 index 0000000..2ea2083 --- /dev/null +++ b/gamedata/configs/text/fra/st_quests_zaton.xml @@ -0,0 +1,780 @@ + + + + En lieu sûr : aller au Skadovsk. + + + Les lieux les plus sûrs de la Zone sont les camps. Le plus proche est le Skadovsk ; c'est là que vous devriez vous rendre. + + + Cartes de la zone : trouver une personne intéressée par les cartes. + + + Cartes de la zone : remettre les cartes à Pilote. + + + Pilote, le guide du coin, pourrait être intéressé par les cartes de la région entre Zaton et Jupiter. + + + Stingray 2 : fouiller les lieux de l'accident. + + + Fouillez les lieux de l'accident du Stingray 2. + + + Stingray 5 : fouiller les lieux de l'accident. + + + Stingray 5 : trouver la cause du court-circuit. + + + Unité Stingray : trouver la source des décharges qui ont frappé les deux hélicoptères. + + + Fouillez les lieux de l'accident du Stingray 5. + + + Trouvez la source de la puissante décharge électrique qui a frappé l'hélicoptère Stingray 5. + + + Trouvez la cause du court-circuit des Stringray 4 et 5. Il semblerait qu'ils aient été frappés par de puissantes décharges électriques. + + + Nourriture : trouver de la nourriture pour les mercenaires. + + + Les mercenaires des ateliers du poste électrique vous ont demandé de leur rapporter six conserves de viande, des saucisses ou du pain. + + + Nourriture : apporter la nourriture aux mercenaires. + + + Rapportez la nourriture que vous avez récupérée aux mercenaires des ateliers du poste électrique. + + + Outils : fouiller les ateliers du poste électrique. + + + Il semble y avoir des outils dans les ateliers du poste électrique. Qui sait, vous trouverez peut-être ceux que le technicien recherche. + + + La chasse à la chimère : trouver le mutant pendant son sommeil. + + + Trouvez la chimère avant qu'elle ne se réveille. + + + À la recherche de la Pie : informer Gonta. + + + La Pie, le stalker qui a tendu un piège au groupe de Gonta, a été retrouvé. Il s'est enrôlé dans la Liberté et se prénomme désormais Flint. + + + La chasse à la chimère : tuer le mutant. + + + La chimère s'est réveillée ; vous devriez l'achever avant qu'il ne soit trop tard ! + + + La chasse à la chimère : rejoindre Gonta au bar à 3h du matin. + + + Rejoignez Gonta et son groupe avant l'aube pour participer à la chasse à la chimère. + + + La chasse à la chimère : informer Trappeur. + + + Dites au stalker nommé Trappeur que la chimère est morte. Il devrait vous remettre une récompense. + + + À la recherche de la Pie : trouver le stalker. + + + Un stalker surnommé la Pie a tendu un piège au groupe de Gonta qui a été attaqué par une chimère. On vous a demandé de retrouver cette ordure. + + + Points d'évacuation : examiner le point d'évacuation B205. + + + La carte trouvée dans l'un des hélicoptères indiquait des points d'évacuation. Vérifiez si les soldats se sont dirigés vers le point B205. + + + Points d'évacuation : examiner le point d'évacuation B28. + + + La carte trouvée dans l'un des hélicoptères indiquait des points d'évacuation. Vérifiez si les soldats se sont dirigés vers le point B28. + + + Point d'évacuation : trouver les coordonnées du point B28. + + + La boîte noire de l'un des hélicoptères Stingray contenait un enregistrement dans lequel le chef d'unité indiquait un point de convergence. Il s'agissait du point d'évacuation B28. Vous devez trouver les coordonnées correspondantes. + + + Point d'évacuation : se rendre au point B28. + + + L'endroit où doivent se retrouver les soldats se situe à Pripyat. Trouvez un moyen de vous y rendre. + + + Points d'évacuation : examiner le point d'évacuation B2. + + + La carte trouvée dans l'un des hélicoptères indiquait des points d'évacuation. Vérifiez si les soldats se sont dirigés vers le point B2. + + + Étrange phénomène : apporter l'artefact au Barbu. + + + L'étrange lueur provenait d'un artefact tout aussi bizarre qui intéressera forcément le Barbu. + + + Étrange phénomène : demander des informations concernant l'artefact aux stalkers. + + + Les stalkers ont peut-être des informations concernant l'étrange artefact ou peut-être connaissent-ils quelqu'un qui pourrait vous aider. Vous devriez leur parler. + + + Étrange phénomène : trouver la source de la lueur dans la station de dragage. + + + Une étrange lueur a été repérée dans la station de dragage. Le Barbu vous a demandé d'en trouver la source. + + + Étrange phénomène : récupérer l'artefact. + + + L'étrange lueur provenait d'un artefact tout aussi bizarre. Vous devriez le prendre. + + + Étrange phénomène : parler de l'artefact au Barbu. + + + L'étrange lueur provenait d'un artefact tout aussi bizarre. Vous n'avez pas l'artefact, mais vous devriez en parler au Barbu. + + + Le plateau : sauter dans l'anomalie. + + + Il semble qu'il faille traverser l'anomalie pour atteindre le plateau. Vous devez sauter dedans. + + + Le plateau : trouver le chemin secret de Noah. + + + Le PDA de Noah mentionne son "chemin secret" menant au plateau. Vous devez le trouver. + + + Le plateau : demander à Noah comment vous y rendre. + + + Un stalker du nom de Noah connaîtrait un chemin menant au plateau. Trouvez un moyen de vous y rendre. + + + Stalkers disparus : rapporter la preuve de l'implication de Sismik. + + + Apportez le PDA contenant les enregistrements de Sismik au Skadovsk et montrez-le au Barbu. Ces enregistrements prouvent que le toubib est responsable de la disparition des stalkers. + + + Stalkers disparus : trouver la preuve de l'implication de Sismik. + + + Cherchez des preuves de l'implication de Sismik dans la disparition des stalkers. + + + Stingray 3 : fouiller les lieux de l'accident. + + + Fouillez les lieux de l'accident du Stingray 3. + + + Vous devez apporter l'artefact au Barbu, mais vous avez perdu votre avance. D'autres personnes sont aussi à sa recherche. + + + Vous devez apporter l'artefact au Barbu. Souvenez-vous que vos rivaux sont aussi à sa recherche. + + + Vous devez apporter l'artefact au Barbu, mais vous avez entendu dire qu'un autre groupe en avait aussi trouvé un. Suivez son signal et tentez de terminer la mission avant eux. + + + Vous devez apporter l'artefact au Barbu, mais un autre groupe s'en est déjà chargé. Vous n'allez recevoir que la moitié de la prime offerte. + + + Apportez l'artefact au Barbu. + + + Commande d'artefact : rapporter un Gravi. + + + Commande d'artefact : rapporter un Œil. + + + Commande d'artefact : rapporter une Bulle. + + + Commande d'artefact : rapporter une Coquille. + + + Commande d'artefact : rapporter un Garde du corps. + + + Commande d'artefact : rapporter une Flammèche. + + + Commande d'artefact : rapporter une Luciole. + + + Commande d'artefact : rapporter un Flocon. + + + Vous devez trouver l'artefact pour le Barbu, mais vous avez perdu votre avance. D'autres personnes sont aussi à sa recherche. + + + Vous devez trouver l'artefact pour le Barbu. Souvenez-vous que des rivaux sont aussi à sa recherche. + + + Vous devez trouver l'artefact pour le Barbu, mais vous avez entendu dire qu'un autre groupe en avait aussi trouvé un. Suivez son signal et tentez de terminer la mission avant eux. + + + Vous devez trouver l'artefact pour le Barbu, mais un autre groupe a déjà livré la commande. Vous ne recevrez que la moitié de la prime offerte. + + + Trouvez l'artefact pour le Barbu. + + + Commande d'artefact : trouver un Gravi. + + + Commande d'artefact : trouver un Œil. + + + Commande d'artefact : trouver une Bulle. + + + Commande d'artefact : trouver une Coquille. + + + Commande d'artefact : trouver un Garde du corps. + + + Commande d'artefact : trouver une Flammèche. + + + Commande d'artefact : trouver une Luciole. + + + Commande d'artefact : trouver un Flocon. + + + Boussole : trouver Noah pour découvrir l'emplacement de l'artefact. + + + Cherchez Noah sur la vieille péniche pour savoir où trouver l'artefact Boussole. Le Barbu le cherche depuis longtemps et est prêt à payer une somme rondelette pour l'obtenir. + + + Boussole : apporter l'artefact au Barbu. + + + Boussole : demander à Noah où trouver l'artefact. + + + Sultan souhaite intercepter l'artefact recherché par le Barbu. Cherchez Noah sur la vieille péniche et demandez-lui où trouver l'artefact. + + + Boussole : apporter l'artefact à Sultan. + + + L'artefact que vous a remis Noah est la Boussole que recherche Sultan. + + + Affaires louches : demander votre part du gâteau au Barbu. + + + Récupérez votre part des bénéfices du Barbu. + + + Affaires alléchantes : parler à Sultan. + + + Le marchand nommé le Hibou pense que le Barbu ne remplit pas sa part du marché et vous a conseillé de demander de l'aide à Sultan, un caïd local. + + + Affaires louches : récupérer les détecteurs auprès des stalkers. + + + Vous devez à tout prix récupérer les prototypes de détecteurs des stalkers qui cherchent des artefacts pour le Barbu. Sans ces détecteurs, il devra accepter les conditions de Sultan. + + + Affaires louches : parler à Sultan. + + + Le Barbu n'a pas les détecteurs. Vous devriez donc parler à Sultan pour savoir s'il a résolu le problème concernant les autres fournisseurs du Barbu. + + + Affaires louches : obliger le Barbu à travailler avec Sultan. + + + Sans fournisseur ni détecteur, le Barbu a les mains liées. Obligez-le à travailler pour Sultan. + + + Affaires louches : découvrir ce que trafique le Barbu. + + + Découvrez dans quelles affaires trempe le Barbu. Vous pourrez ainsi l'empêcher de contacter ses fournisseurs. + + + Affaires louches : récupérer le deuxième détecteur aux stalkers. + + + Vous devez à tout prix récupérer les prototypes de détecteurs des stalkers qui cherchent des artefacts pour le Barbu. Sans ces détecteurs, il devra accepter les conditions de Sultan. + + + Affaires alléchantes : apporter trois détecteurs Veles à Novikov. + + + Le Hibou vous a proposé de participer à une mission très lucrative. Votre mission consiste à trouver trois détecteurs Veles et à les rapporter à Novikov dans le bunker des scientifiques. + + + Affaires alléchantes : attendre que le Hibou reçoive les détecteurs. + + + Novikov a accepté les détecteurs et a promis de les renvoyer au Hibou. Attendez qu'il ait fini ses tests et découvrez quels sont les résultats en parlant au Hibou. + + + Affaires alléchantes : parler au Hibou. + + + Le Hibou vous a contacté par radio pour vous dire qu'il a des problèmes et qu'il veut vous voir. + + + Affaires alléchantes : obliger le Barbu à respecter le contrat. + + + Le marchand nommé le Hibou pense que le Barbu ne remplit pas sa part du marché. Vous devez lui parler pour le convaincre de respecter le contrat. + + + Affaires alléchantes : exiger du Hibou qu'il vous donne votre part. + + + Le Barbu estime qu'il ne doit rien au Hibou. Découvrez qui des deux a raison et demandez-lui la part qui vous revient. + + + Accroc vous a demandé de lui apporter le coffre qu'il a dissimulé dans une vieille voiture Zaporozhets, tombée dans une faille suite à un tremblement de terre. Accroc refuse d'y aller lui-même car l'endroit grouille de snorks. + + + Vous avez récupéré le coffre d'Accroc. Rapportez-le-lui afin de partager équitablement son contenu. + + + Le nid de sangsues : parler du nid aux stalkers. + + + Informez les stalkers de la présence d'un nid de sangsues sous la station-relais de Krug. + + + Le nid de sangsues : parler du nid au Barbu. + + + Informez le Barbu de la présence d'un nid de sangsues sous la station-relais de Krug afin qu'il décide d'un moyen de protéger les stalkers. + + + Stalkers disparus : suivre le Faisan. + + + Le Faisan vous a demandé de l'accompagner pour inspecter la station-relais abandonnée. Il a repéré des sangsues et souhaite vérifier si le chasseur s'y trouve. + + + Stalkers disparus : découvrir ce qui s'est passé. + + + Sismik n'est pas aussi innocent qu'il en a l'air. Vous devez découvrir ce qui s'est passé. + + + Stalkers disparus : trouver le Faisan. + + + Le Faisan est parti en direction des grues sur les quais. Peut-être a-t-il trouvé un indice sur la disparition des stalkers... Vous devriez le retrouver là-bas. + + + Stalkers disparus : retrouver le Faisan. + + + Le Faisan est introuvable. Demandez au Barbu où il est parti. + + + Stalkers disparus : trouver le chasseur disparu. + + + Le Faisan vous a demandé de l'aider à retrouver le chasseur disparu, qui avait été chargé de trouver le nid de sangsues. Selon les dernières informations, les sangsues seraient responsables de la disparition des stalkers. + + + Stalkers disparus : sortir du nid de sangsues + + + Vous avez découvert un nid de sangsues au sous-sol et ses résidents sont comme étourdis. Vous feriez mieux de filer en silence. + + + Stalkers disparus : rejoindre le Faisan. + + + Vous feriez bien d'aller voir le Faisan pour discuter avec lui du chasseur disparu. + + + Stalkers disparus : rejoindre le Faisan plus tard. + + + Vous n'avez trouvé aucune trace du chasseur Danila dans la station-relais. Mais ce que vous avez trouvé à l'intérieur rend le Faisan perplexe et il souhaite en discuter plus en détail avec vous. + + + Stalkers disparus : aller voir le Faisan. + + + Une sangsue morte se trouvait à l'endroit indiqué par le Faisan, mais aucun signe du chasseur. Toutefois, il semble que le Faisan soit tombé sur un élément important et il vous a demandé de venir le voir. + + + Les sangsues n'avaient en fait aucun rapport avec la disparition des stalkers. Sismik, le médecin du Skadovsk, en est le seul responsable. + + + Outils : apporter des outils à Cardan. + + + Cardan vous a demandé de lui apporter deux jeux d'outils : des outils rudimentaires et des outils de précision. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter des outils à Cardan. + + + Cardan vous a demandé de récupérer deux jeux d'outils : des outils rudimentaires et des outils de calibrage. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter des outils à Cardan. + + + Cardan vous a demandé de récupérer un jeu d'outils rudimentaires. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter des outils à Cardan. + + + Cardan vous a demandé de récupérer deux jeux d'outils : des outils de précision et des outils de calibrage. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter des outils à Cardan. + + + Cardan vous a demandé de récupérer un jeu d'outils de précision. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter des outils à Cardan. + + + Cardan vous a demandé de récupérer un jeu d'outils de calibrage. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Outils : apporter des outils à Cardan. + + + Cardan vous a demandé de récupérer trois jeux d'outils : des outils rudimentaires, des outils de précisions et des instruments de calibrage. Le technicien vous paiera et sera en mesure d'effectuer des modifications d'armes et d'armures plus complexes. + + + Camp de mercenaires : récupérer autant d'informations que possible. + + + Le Faisan vous a promis une belle récompense pour toute information recueillie dans le camp des mercenaires dans la station de traitement des déchets. Il aimerait en savoir plus sur leurs projets. + + + Camp de mercenaires : récupérer autant d'informations que possible. + + + Le Faisan vous a promis une belle récompense pour toute information recueillie dans le camp des mercenaires dans la station de traitement des déchets. Il aimerait en savoir plus sur leurs projets. + + + Trois camarades : découvrir ce qui est arrivé à Barge. + + + Cardan vous a demandé de transmettre ses excuses à son camarade, le stalker surnommé Barge. À la suite d'une dispute, celui-ci était parti sans dire où il se rendait. + + + Trois camarades : découvrir ce qui est arrivé à Barge et au Joker. + + + Cardan vous a demandé de transmettre ses excuses à ses camarades, les stalkers surnommés Barge et le Joker. À la suite d'une dispute, ses amis étaient partis sans dire où ils se rendaient. + + + Trois camarades : découvrir ce qui est arrivé au Joker. + + + Cardan vous a demandé de transmettre ses excuses à son camarade, le stalker surnommé Joker. À la suite d'une dispute, celui-ci était parti sans dire où il se rendait. + + + Commande spéciale : récupérer la marchandise. + + + La marchandise a été livrée : il est temps d'aller la récupérer auprès d'Allegro. + + + Commande spéciale : attendre la livraison. + + + La commande a été passée. Attendez qu'Allegro récupère la marchandise. + + + Réputation : trouver Accroc. + + + Vous devez trouver Accroc et l'obliger à tenir sa langue. Allegro n'a jamais trempé dans des affaires de marchandises volées, tandis qu'Accroc a tout d'une belle ordure. Il a été aperçu pour la dernière fois près des grues sur les quais. Il s'y trouve peut-être encore. + + + Trouvez Accroc et obligez-le à tenir sa langue. Il ne se trouve pas près des grues sur les quais, mais les bandits savent peut-être où il est. + + + Trouvez Accroc et obligez-le à tenir sa langue. Les bandits semblent impliqués et savent peut-être où il se trouve. + + + Trouvez Accroc et obligez-le à tenir sa langue. Personne ne sait où il se trouve. + + + Vous devez trouver Accroc et l'obliger à tenir sa langue. D'après le PDA retrouvé sur l'un des bandits, les hommes de Sultan le recherchent. Malheureusement, rien n'indique où il se trouve. + + + Réputation : découvrir où se trouve Accroc. + + + Accroc est introuvable. Vous devriez donc demander aux gens du coin s'ils ne l'ont pas vu. + + + Trouvez Accroc et forcez-le à tenir sa langue. Malheureusement, il semble introuvable. Peut-être que Sultan en sait davantage. + + + Trouvez Accroc et forcez-le à tenir sa langue. Malheureusement, il semble introuvable. Peut-être que le Barbu en sait davantage. + + + Réputation : parler à Accroc + + + Vous devez trouver Accroc et l'obliger à tenir sa langue. Allegro n'a jamais trempé dans des affaires de marchandises volées, tandis qu'Accroc a tout d'une belle ordure. + + + Le nid de sangsues : trouver le conduit d'aération. + + + Trouvez le conduit d'aération pour remplir le nid de sangsues de gaz mortel. + + + Le nid des sangsues : trouver du gaz mortel. + + + Il vous faut du gaz pour éradiquer le nid des sangsues. Le Hibou sait où s'en procurer. + + + Il vous faut du gaz pour détruire le nid de sangsues. Le Hibou vous a assuré que vous trouveriez des bombonnes de gaz dans le convoi militaire abandonné. + + + Le nid de sangsues : trouver les clés du conteneur. + + + Les documents que vous avez trouvés évoquent les clés du conteneur de bombonnes de gaz. Vous devez les trouver. + + + Le nid de sangsues : trouver un moyen d'ouvrir le conteneur de bombonnes de gaz. + + + Le conteneur renfermant les bombonnes de gaz est fermé à clé. Trouvez un moyen de l'ouvrir. + + + Le nid de sangsues : placer la bombonne de gaz. + + + Placez la bombonne de gaz dans le système d'aération du sous-sol de la station-relais. Le gaz devrait s'échapper par les conduits, se propager dans le sous-sol et asphyxier les sangsues. + + + Le nid sangsues : informer le Barbu de la destruction du nid. + + + Dites au Barbu que vous avez éradiqué le nid de sangsues et ainsi assuré la sécurité des stalkers du Skadovsk. + + + Le nid de sangsues : tourner la valve. + + + Tournez la valve pour laisser le gaz mortel se propager dans le sous-sol abritant le nid de sangsues à travers le conduit d'aération. + + + Le nid de sangsues : patienter jusqu'à ce que le gaz fasse effet. + + + Vous devez vous assurer que le gaz s'est bien propagé dans le nid et que toutes les sangsues sont mortes. + + + Transaction : rencontrer les bandits près du poste des rangers. + + + Sultan vous a demandé de participer à une transaction avec un marchand. Vous devez accompagner ses hommes et les couvrir en cas de problème. + + + Transaction : rejoindre le marchand. + + + Le Hibou vous a confié une mission. Vous devez protéger un marchand pendant une transaction. Il s'agit clairement d'une affaire louche et il y a des chances que les choses tournent mal. + + + Transaction : rejoindre les stalkers près du poste des rangers. + + + Rejoignez les stalkers près du poste des rangers et aidez-les à interrompre la transaction entre les bandits et le marchand d'armes. + + + Transaction : protéger le marchand. + + + Le marchand vous a expliqué votre rôle : le protéger pendant la transaction. + + + Transaction : écouter la conversation. + + + Les stalkers souhaitent écouter la conversation entre les bandits et le marchand d'armes. + + + Transaction : empêcher la vente des armes. + + + Faites votre possible pour empêcher la transaction entre les bandits et le marchand d'armes. + + + Transaction : éliminer les témoins. + + + La transaction n'a pas abouti, vous devez éliminer tous les témoins. + + + Transaction : protéger le marchand. + + + Vous devez protéger le marchand. Il vous a également ordonné d'éliminer tous les témoins de la transaction, y compris ses clients. + + + Transaction : fouiller le marchand. + + + Le marchand a peut-être des informations capitales qui pourront vous être utiles. Vous feriez mieux de les prendre. + + + Transaction : couvrir les bandits pendant la transaction. + + + Restez sur le qui-vive et couvrez les bandits pendant leurs négociations avec le marchand. + + + Transaction : parler au marchand. + + + La transaction avec les bandits est terminée. Allez récupérer votre récompense. + + + Transaction : demander votre récompense au Barbu. + + + Le Barbu vous a promis une récompense si vous parveniez à interrompre la transaction entre les bandits et le marchand. Vous avez réussi et pouvez à présent récupérer votre récompense. + + + Transaction : parler au chef des bandits. + + + Vous devez informer le chef des bandits que vous êtes prêt à participer à la transaction. + + + Braquage : prendre une décision. + + + Braquage : attaquer les stalkers. + + + Braquage : récupérer votre récompense. + + + L'attaque menée sur le camp a été repoussée. Vous pouvez maintenant parler aux stalkers pour obtenir votre récompense. Sans votre avertissement, ils auraient passé un sale quart d'heure. + + + Des stalkers peu scrupuleux détroussent leurs congénères. Vous devez décider entre participer à l'assaut, avertir les stalkers ou ne pas vous impliquer. + + + Braquage : attendre jusqu'à l'heure convenue. + + + Braquage : attendre jusqu'à l'heure convenue. + + + Une planque bien cachée : apporter le coffre à Accroc. + + + Transaction : parler au chef du groupe de stalkers. + + + La transaction a été interrompue, le marchand d'armes est mort. Allez parler au chef du groupe de stalkers. + + + Stalkers disparus : relater les événements aux stalkers du Skadovsk. + + + Vous devez ouvrir le conteneur avec les clés trouvées et sortir la bombonne de gaz empoisonné. + + + Le nid de sangsues : sortir la bonbonne de gaz du conteneur. + + + Braquage : attaquer les voleurs. + + + Attaquer les voleurs par derrière permettra aux stalkers de repousser leur attaque. + + + Braquage : rejoindre les voleurs. + + + Rejoignez les voleurs pour attaquer le camp des stalkers. + + + Braquage : rejoindre les voleurs. + + + Les stalkers vous ont demandé de les aider à repousser l'attaque des voleurs. Vous devriez rejoindre les bandits. Lorsqu'ils commenceront l'assaut, vous pourrez les attaquer par derrière en toute impunité. + + + Les voleurs doivent attendre près du Chevtchenko. Vous devez les rejoindre pour participer à l'attaque du camp des stalkers. + + + Attendez votre rendez-vous avec les voleurs ! Ils veulent attaquer le camp de stalkers entre minuit et le lever du soleil. Le point de rendez-vous se trouve au Chevtchenko. + + + Braquage : récupérer votre part. + + + L'attaque sur les stalkers a réussi. Vous devriez aller récupérer votre part du butin. + + + Attendez le bon moment, quand les voleurs seront distraits par l'attaque en cours ! Vous pourrez alors les prendre à revers et aider les stalkers de Chevtchenko. + + + Affaires louches : travailler pour le Barbu. + + + Pour vous emparer des prototypes de détecteur des stalkers qui travaillent pour le Barbu, vous devrez infiltrer leurs rangs. Cela vous permettra de découvrir qui sont vos concurrents. + + + Vous devez prendre le coffre et l'apporter à son propriétaire. + + + L'ordinateur de bord de Stingray 2 contenait des cartes du secteur entre Zaton et Jupiter. Vous devriez trouver quelqu'un qui en aura l'utilité. + + + Aller au plateau du sud : parler aux stalkers + + + On dirait qu'il n'y a pas de chemin direct menant au plateau. Demander aux stalkers du coin s'ils ne connaissent pas d'autres moyens de s'y rendre. + + + L'artefact que vous a remis Noah est la Boussole que recherche le Barbu. + + diff --git a/gamedata/configs/text/fra/st_subtitles.xml b/gamedata/configs/text/fra/st_subtitles.xml new file mode 100644 index 0000000..9f898a4 --- /dev/null +++ b/gamedata/configs/text/fra/st_subtitles.xml @@ -0,0 +1,156 @@ + + + + À 01:23, le 26 avril 1986, le réacteur du générateur n° 4 de la centrale de Tchernobyl est détruit suite à plusieurs explosions. Le nuage radioactif qui en résulte survole la partie occidentale de l'URSS, l'Europe de l'Est et la Scandinavie, avant d'atteindre l'Amérique du Nord. + + + Les conséquences de cette catastrophe sont si graves que le gouvernement doit faire évacuer tous les habitants des villes et villages environnants. + + + Une zone d'exclusion de 30 km est établie afin d'empêcher les civils de revenir dans la zone contaminée. + + + Malgré la catastrophe, la centrale de Tchernobyl continue de fonctionner. Le conseil des ministres de l'URSS décide alors de créer un réseau de laboratoires secrets dans la Zone d'exclusion désormais désertée. + + + 11 janvier 2006. Une lumière éblouissante enveloppe toute la Zone d'exclusion et des nuages de vapeur s'élèvent dans le ciel. Après un instant de silence, des grondements sourds font trembler le sol. La plupart des forces gouvernementales qui gardent le périmètre sont tuées sur le coup. + + + 2007. Les scientifiques sont toujours incapables d'expliquer ce qui s'est passé. Les expéditions dans la Zone se terminent généralement en tragédie et les rares survivants racontent des histoires incroyables d'animaux mutants aux capacités extraordinaires. + + + Selon différentes estimations, la Zone héberge en 2010 entre 100 et 300 individus non identifiés. Ils se donnent le nom de stalkers et survivent en récupérant des objets anormaux, connus sous le nom d'artefacts, qu'ils revendent à prix d'or. + + + 2011. Malgré les cordons militaires, le nombre de stalkers ne cesse d'augmenter. Ces derniers se cantonnent néanmoins aux secteurs périphériques de la Zone, son centre restant largement inexploré. Les rares tentatives de pénétrer plus avant dans la Zone se soldent toutes par des échecs. + + + 2012. Un Stalker du nom de Strelok parvient à résoudre le mystère du Lobotomisateur, l'émetteur d'ondes psychiques qui bloquait l'accès au centre de la Zone depuis des années. Une fois la machine désactivée, tous les Stalker se ruent vers les territoires jusqu'alors inexplorés. Certains espèrent y trouver une cache remplie d'artefacts, d'autres sont à la recherche de l'Exauceur de vœux. + + + Le gouvernement décide alors de lancer une vaste opération militaire, nom de code : Fairway. Son l'objectif : envoyer des hélicoptères jusqu'à la centrale. Malgré les nombreux préparatifs et les cartes des anomalies dont disposaient les appareils, l'opération est un échec cuisant et aucun des hélicoptères n'en revient. + + + Le major Degtyarev, agent spécial du SBU, est envoyé dans la Zone afin d'enquêter sur la disparition des hélicoptères. + + + Déguisé en stalker et emportant avec lui un fusil d'assaut standard, deux semaines de provisions et une radio pour communiquer avec le QG, le major entame son voyage vers le cœur de la zone. + + + Ses discussions avec les stalkers ne donnent rien... Soit ils n'ont pas d'informations, soit ils ne veulent pas les partager... + + + La Zone rappelle constamment au major qu'elle n'a rien d'une colonie de vacances. Pas un jour ne s'écoule sans une attaque d'ennemis mutants ou, pire, humains. + + + Les communications régulières avec le QG n'améliorent rien : les informations sont rares, en dehors des coordonnées des épaves des cinq hélicoptères, obtenues par satellite. Alors que le major s'approche à 5 km de la centrale de Tchernobyl, sa radio rend l'âme. + + + Degtyarev est désormais seul... + + + En récompense pour la réussite de son enquête, Degtyarev est promu colonel et se voit vu offrir un poste de coordinateur de mission. Il décline cependant cette opportunité de travailler au QG et demande l'autorisation de retourner dans la Zone en tant qu'observateur permanent du SBU. + + + Les informations sur le développement d'appareils psi obtenues par Degtyarev sont considérées comme trop dangereuses par ses supérieurs du SBU et les dossiers concernant les laboratoires X sont retirés des archives militaires et classés top secrets. Les personnels de la Zone reçoivent l'ordre d'étouffer l'affaire, coûte que coûte. + + + Plusieurs prototypes sont créés à partir des données techniques de l'objet 62. Suite aux tests, il est décidé de ne pas passer à la fabrication en masse car les munitions sont considérées comme trop coûteuses. Cependant, il semble probable que le perfectionnement de la technologie Gauss se poursuit. + + + Après avoir tenté en vain de prendre le contrôle du Skadovsk, Sultan et ses hommes quittent les lieux pour continuer leurs opérations douteuses ailleurs. Le calme relatif qui s'instaure alors dans la Zone voit une augmentation massive du nombre d'artefacts vendus au Barbu et le Skadovsk, bien que proche du centre de la Zone, devient aussi populaire que le fameux bar des 100 rads. + + + Le Skadovsk devient le repaire principal des bandits. Après l'instauration d'une taxe pour tous les stalkers et l'éviction forcée de quelques fortes têtes pendant des émissions, un calme relatif s'installe, sous la férule de Sultan. Peu enclin à partager ses bénéfices avec les bandits, le Barbu rassemble un groupe de stalkers et part explorer les secteurs inconnus de la Zone. + + + Le Skadovsk devient le foyer de tous ceux qui parviennent à l'atteindre. Et si la farouche résistance des stalkers n'empêche pas les bandits de tenter régulièrement de prendre le contrôle des lieux, le navire reste un îlot de paix au milieu du chaos ambiant. + + + Malheureusement, le statu quo ne dure pas. Des sangsues du marais voisin finissent par atteindre le navire. Lorsqu'elles s'enhardissent même à attaquer en plein jour, les hommes du Skadovsk décident de se débarrasser du nid une fois pour toutes. Malheureusement, l'expédition dans les tunnels ne fait que provoquer une contre-attaque massive des créatures, au cours de laquelle tous les habitants du navire sont tués. + + + La destruction du nid des sangsues assure à jamais l'avenir et la stabilité du Skadovsk. Le vieux navire reste ainsi un îlot de paix au milieu du chaos ambiant de la Zone. + + + La Liberté parvient à conclure un accord avec les stalkers de la gare de Yanov. Le Devoir décide alors d'employer la manière forte et lance un assaut voué à l'échec. Le lieutenant-colonel Shulga est tué peu après lors d'une échauffourée. Suite à la perte de son chef, l'unité du Devoir se disperse rapidement. + + + Des renforts et une popularité croissante auprès des stalkers permettent à l'unité du Devoir de se débarrasser des soldats de la Liberté dans la gare de Yanov. Loki et son unité ne survivent pas aux combats qui s'ensuivent. + + + Un fragile équilibre s'instaure entre le Devoir et la Liberté dans la gare de Yanov. Épuisés par des combats incessants, les hommes des deux factions commencent à déserter leurs unités pour rejoindre les rangs des stalkers indépendants. + + + L'expédition scientifique menée par les professeurs Hermann et Ozersky est un succès retentissant. Les données récupérées permettent la création de médicaments et de technologies révolutionnaires qui incitent le ministère de l'éducation à augmenter le budget consacré à la recherche dans la Zone. + + + Les professeurs Hermann et Ozersky doivent interrompre leurs recherches dans la Zone, faute de données. À leur retour dans le monde normal, ils se lancent dans des activités scientifiques sans lien avec la Zone. + + + Les histoires de Garry sur les difficultés de l'armée dans Pripyat encouragent les stalkers à explorer la ville fantôme. Malgré les attaques constantes des forces du Monolithe, ils parviennent à prendre le contrôle de l'ancien camp militaire, d'où ils lancent des raids au cœur de la ville. Leurs progrès sont lents, mais constants. + + + Les histoires de Garry sur le sort des militaires maintiennent les stalkers à distance de Pripyat. Ceux qui osent s'y aventurer rencontrent d'inexplicables phénomènes, ce qui ne fait qu'ajouter de sombres chapitres à la légende déjà macabre de cette ville fantôme. + + + La légende de l'Oasis n'en est plus une... L'identité de ceux qui ont trouvé cette mystérieuse anomalie devient un sujet de plus en plus fréquent dans les conversations des stalkers et nombre d'entre eux souhaitent à présent tenter leur chance, pour la plus grande joie des bandits, ravis d'organiser des groupes qu'ils se chargent ensuite de dépouiller à bonne distance des camps de stalkers. + + + Les groupes de mercenaires maintiennent une présence constante dans la Zone et leur intérêt pour les laboratoires X devient de plus en plus difficile à dissimuler aux observateurs du SBU. Toutes les tentatives pour identifier leur commanditaire restent cependant vaines. + + + Les alentours de Yanov continuent d'attirer de plus en plus de stalkers. L'absence de mutants dangereux et l'abondance d'anomalies permettent à la gare de gagner rapidement le surnom de "cache au trésor". + + + Les environs de la gare de Yanov restent parmi les plus dangereux de la Zone. De moins en moins de stalkers reviennent des expéditions, certains se faisant même écharper à quelques mètres du camp. Parti chasser une chimère, Trappeur figure également au nombre des disparus. + + + Zulu est retourné à la base principale du Devoir, dans la centrale de Rostock. Personne ne sait ce qu'il a dit au général Voronin, le chef du Devoir, mais, quelques jours plus tard, Zulu est aperçu à la tête d'une importante formation en route pour le centre de la Zone. + + + Les nouvelles du sort de Zulu sont parvenues jusqu'aux oreilles du général Voronin, le chef du Devoir. Contrairement à toutes les attentes, ce dernier décide de lui attribuer le Bouclier d'argent, la décoration la plus prestigieuse du Devoir. + + + Vano s'est dirigé vers les entrepôts militaires contrôlés par la Liberté, où sa personnalité et son optimisme le rendent rapidement très populaire. Il finit par prendre la tête d'un groupe de chercheurs spécialisés dans l'étude des anomalies. + + + Les stalkers de la gare de Yanov se souviennent de temps à autre de Vano et regrettent sa bonne humeur et son expertise. Et si certains de ses choix de carrière ont pu être contestables, il reste évident qu'avec sa malchance, il n'aurait jamais dû s'aventurer sur la route de Pripyat. + + + Un nouveau groupe, constitué d'éléments bien entraînés, a fait son apparition dans la Zone. Nul ne connaît ses objectifs. Certains disent qu'il s'agit d'anciens membres du Monolithe. Leur chef est connu sous le nom d'Arpenteur. + + + Rares sont ceux qui ont remarqué la disparition d'Arpenteur. Il semblerait que son désir de trouver un moyen de contrer l'emprise du Monolithe l'a conduit à sa perte. + + + Le lieutenant Sokolov continue de voler au-dessus de la Zone. Au cours d'une mission de reconnaissance à Limansk, son appareil est abattu par des mercenaires, mais il est récupéré deux semaines plus tard par une patrouille près du Cordon. Un mois après, il quitte l'armée de l'air pour rejoindre une compagnie aérienne civile. + + + Un nouveau nom vient s'ajouter à la longue liste des victimes de l'opération Fairway : "Lieutenant O. N. Sokolov, mort au combat". + + + Le Hibou a réussi à contacter des clients en dehors de la Zone. Il échange des informations et, si elles sont vérifiées, en fait bénéficier le SBU. + + + Lors d'une émission particulièrement forte, un groupe de stalkers est obligé de se réfugier chez Noah. Lorsque la barge est ensuite attaquée par des snorks, les stalkers sont forcés de reconnaître que celle-ci constitue une formidable forteresse contre les mutants, même si le plus étonnant reste la portée de pseudo-chiots que Noah lui-même mène au combat contre les snorks. + + + Après avoir découvert le sort de ses amis, Cardan abandonne la carrière de stalker. Parvenant à surmonter son alcoolisme, il s'installe à Yanov, où il s'associe avec Nitro pour ouvrir un magasin de réparations. Les deux techniciens y passent tout leur temps libre à mettre au point un véhicule adapté aux conditions particulières de la Zone. + + + Après avoir enfin réussi à surmonter son alcoolisme, Cardan quitte le Skadovsk à la recherche de ses amis. Il revient quelques jours plus tard, blessé et gravement empoisonné par les radiations. Dès qu'il est de nouveau sur pied, il repart pour ne jamais revenir. + + + Strelok transmet les informations recueillies dans la centrale de Tchernobyl aux autorités du SBU. Le gouvernement fonde alors un Institut de recherche sur la Zone anormale de Tchernobyl, où Strelok occupe le poste de consultant scientifique en chef. + + + Les connaissances de Strelok disparaissent avec lui. Tout ce qu'il a découvert à Tchernobyl et qui aurait pu être utilisé pour mieux comprendre la Zone est perdu à jamais. Il semblerait que la Zone soit avare de ses secrets... + + + Lorsque le colonel Kovalsky, commandant du groupe Stingray, revient de la Zone, il est obligé de s'expliquer sur les raisons de l'échec de l'opération Fairway. Après une enquête interminable et de nombreuses fausses accusations, il est finalement libéré de ses obligations envers l'armée, avec les honneurs. + + + Le colonel Kovalsky, commandant du groupe Stingray, repose désormais non loin de la plupart de ses hommes. Leurs corps sont venus grossir les rangs des victimes de la Zone et seules quelques photographies jaunies témoignent encore de leur sacrifice. + + diff --git a/gamedata/configs/text/fra/ui_st_credits.xml b/gamedata/configs/text/fra/ui_st_credits.xml new file mode 100644 index 0000000..69909f6 --- /dev/null +++ b/gamedata/configs/text/fra/ui_st_credits.xml @@ -0,0 +1,684 @@ + + + + Sergey Chechin + + + Maciej Abramowicz + + + Armen Abroyan + + + Acteurs + + + Testeurs + + + AMD/ATI + + + Roman Androshiuk + + + Animateur + + + Département Graphismes + + + Directeur artistique + + + Nikita Atroshenko + + + Damian Bajorek + + + Mikhail Bastrykin + + + Kamil Bilinski + + + Krzysztof Binkowski + + + Arkadiusz Bochenek + + + Justin Boggs + + + Anatoly Bogush + + + Wojciech Borowy + + + Stanislaw Burtsau + + + Modélisation des personnages + + + Aleksey Cherevatenko + + + Jerzy Chrul + + + Wojciech Ciemny + + + Compositeur + + + Dmitry “Abe” Davidyan + + + Aaron Davies + + + Alexander Demidenko + + + Département + + + Programmation + + + Lukasz Derewonko + + + Ruslan Didenko + + + Yuri Doroshenko + + + Elena Dovgaliuk + + + Rafal Durajczyk + + + Petr Dushinsky + + + Maciej Dziarnowski + + + Sergey Eremenko + + + Yuri "Dark” Falchenko + + + Jakub Gabryel + + + Cezary Galach + + + Département Conception + + + Programmeurs gameplay + + + CQ CENEGA + + + Un grand merci à + + + Filip Gerasimov + + + Grigory Hermann + + + Angelica Girich + + + Pawel Golubinski + + + Marcin Gorniak + + + Tomasz Goscicki + + + Programmeurs graphismes + + + Holger Grun + + + Pawel Grzywaczewski + + + Sergiy Grygorovich + + + Marcin Gutowski + + + Dmitry Yasenev + + + Intel + + + Sergey Ivantsov + + + Norbert Jankowski + + + Alexander Kachaniuk + + + Dmitry Kalita + + + Aleksander Keska + + + Andrey "Darin" Kirienko + + + Lukasz Kobylanski + + + Andrey Kolomiets + + + Artur Komorek + + + Yuri Konstantinov + + + Maria Kotolovskaya + + + Alexander Kovach + + + Kirill Koval + + + Irina Krivchikova + + + Dmitry Krivets + + + Eugene Kuchma + + + Svetlana Kudrya + + + Sergey Kurbatov + + + Olga Kuzhel + + + Dmitry Kuzmenko + + + Aleksey Kuznetsov + + + Oleg Kuznetsov + + + Szymon Lazarski + + + Animateur principal + + + Graphiste principal + + + Concepteur principal + + + Programmeur principal + + + Testeurs principaux + + + Experts principaux + + + Conception des niveaux + + + Relecture + + + Vladimir Litvinenko + + + Eric Lundgren + + + Sergey Maistrenko + + + Dmitry Macedon + + + Roman Malinkin + + + Chefs de projet + + + Alexander Maniliuk + + + Daniel Mankowski + + + Denis Matveenko + + + Maciej Mazurek + + + Piotr Mazurkiewicz + + + Darren McPhee + + + Igor Melnikov + + + Victor Merkulov + + + Damian Mielnik + + + Pavel Mikhailov + + + Konstantin Mironov + + + Un très grand merci à Oleg Fomenko + + + et Buntar Media + + + pour leurs conseils sur la capture de mouvements + + + Vladimir Morev + + + Andrey Moroz + + + Dawid Mrozowski + + + Yuri Negrobov + + + Programmeur mode Multijoueur + + + nVidia + + + Aleksey Omelchuk + + + Lukasz Osinski + + + Mikhail Parfeniuk + + + Eugene Pashin + + + Igor Pasichnyi + + + Bartosz Peas + + + Programmeur moteur physique + + + Jacek Piotrowski + + + Alexander Plichko + + + Département RP + + + Directeur RP + + + Responsables RP + + + Sergey Prishepa + + + Producteur + + + Chef de projet + + + Test + + + Anton Ravin + + + Sebastian Rejent + + + Mateusz Rekorajski + + + Filip Resiak + + + Peter Ross + + + Ivan Rozin + + + Lukasz Ruminski + + + Denis Rutkovsky + + + Lukasz Rynkowski + + + Responsable Développement commercial + + + Piotr Samborowski + + + Maria Shapunova + + + Sergey Shelest + + + Igor Sidorenko + + + Mikolaj Sitkiewicz + + + Yuri Skripal + + + Konstantin Slipchenko + + + Tomasz Sobotka + + + Producteur audio + + + Un grand + + + merci à + + + Oleg Stalchuk + + + Liudmila Starodub + + + Vladimir Stavitsky + + + Pawel Stempien + + + Pawel Strzelczyk + + + Crédits + + + Konstantin Stupivtsev + + + Assistance + + + clientèle + + + Rafal Szekalski + + + Maciej Szumowski + + + Marcin Szwargolinski + + + Vladimir Tereshiuk + + + Sergey Terliuk + + + Textures + + + Et tous ceux qui nous ont aidés + + + à rendre le jeu encore meilleur : + + + Konstantin Morozkov + + + Yaroslav "Oncle Yar" Alexandrov + + + Dmitry "Comandor" Ivanov + + + Oleg Chernov + + + Ig. Valerian (Golovchenko) alias oVal + + + M. Bystrykhin + + + Eugene "Mulder" Khaletskiy + + + Pavel "Goon" Bolotov + + + Alexander "Leks" Abramov + + + Alexander Novikov + + + Alexander Poshtaruk, Andrey Oleshk + + + Eugene "KRANZ" Goncharenko + + + Sergey Dvuzhilny + + + Aleksey "Don Reba" Badalov + + + Sergey Dvuzhilny, Tolusha + + + Artem Zuev, alias BAC9-FLCL + + + Glot, Patriot, Mers + + + Tiger, Demesis, Kharon, Moby + + + Alexander Oleinik + + + Konstantin "Inquisitor" Kriuchkov + + + Alexander Shakhovsky, Igor Dolzhenko + + + Sergey "Tur" Leshenko + + + Dmitry "Hill" Gorban + + + Mikhail Kliuev + + + Sergey "Termite" Volchanov + + + Sergey Tikhomirov + + + Ilya Tolmachev + + + Jakub Trudzik + + + Conception de l'interface + + + Yuri Doroshenko + + + Denis "Tetri$Zs" Yusupov + + + RandyJ VanderHeyden + + + Vladimir Vazhinsky + + + Andrey Verpakhovsky + + + Alexander Vilkov + + + Anastassia Voskolovich + + + Andrzej Wardziak + + + Programmeur Web + + + Dominik Wojcik + + + Lukasz Watroba + + + Eugene Yablon + + + Yuri Yatsenko + + + Eugene Yatsiuk + + + Oleg Yavorsky + + + Valentin Yeltyshev + + + Eugene Zaitsev + + + Andrey Zakoliukin + + + Marek Zdziarski + + + Michal Zegarski + + + Albert Zmudzki + + + Aleksey Zorin + + + Bartosz Zukowski + + + Victoria "Morrant" Yukhno + + + Sergey "ion" Kalintsev + + + Roman "RVCool" Kulikov + + + Maxim Smirnov + + + Omar Al-Shekhly + + + Roman =Marauder= Arhipov + + diff --git a/gamedata/configs/text/fra/ui_st_inventory.xml b/gamedata/configs/text/fra/ui_st_inventory.xml new file mode 100644 index 0000000..c6da35f --- /dev/null +++ b/gamedata/configs/text/fra/ui_st_inventory.xml @@ -0,0 +1,303 @@ + + + + Fonds insuffisants + + + Le personnage n'a pas assez d'argent. + + + $$ACTION_QUICK_USE_1$$ + + + $$ACTION_QUICK_USE_2$$ + + + $$ACTION_QUICK_USE_3$$ + + + $$ACTION_QUICK_USE_4$$ + + + activer l'artefact + + + monter le lance-grenades sur + + + monter la lunette sur + + + monter le silencieux sur + + + Prix + + + Groupe : + + + État + + + démonter le lance-grenades + + + démonter la lunette + + + démonter le silencieux + + + mettre la combinaison + + + jeter + + + tout jeter + + + manger + + + kg + + + fixer à la ceinture + + + déplacer vers le sac à dos + + + déplacer vers un emplacement + + + Le marchand n'est pas intéressé par ce genre d'objets. + + + Cet objet est en trop mauvais état pour pouvoir être vendu. + + + jouer + + + vendre l'objet + + + État de l'armure + + + Irradiation + + + enlever la combinaison + + + décharger + + + utiliser + + + Poids + + + Taille du chargeur + + + Précision + + + Acheter des munitions standard pour le pistolet (A) + + + Acheter des munitions standard pour le fusil (W) + + + Soin des blessures + + + Annuler + + + Achat de l'arme impossible + + + Restrictions de quantité + + + Dégâts + + + Par défaut (F5) + + + Retour + + + Acheter un lance-grenades pour le fusil (D) + + + Acheter des grenades pour le lance-grenades (E) + + + Prise en main + + + Maintenant + + + Régén. de la santé + + + Lourde + + + Acheter le set précédent + + + Derniers objets (F4) + + + Argent + + + Requis + + + Fonds insuffisants + + + OK + + + Poids emporté + + + Prot. thermique + + + Prot. chimique + + + Armure + + + Prot. antiradiations + + + Prot. électrique + + + Prot. anti-psi + + + Abs. des impacts + + + Récupération d'énergie + + + Set 1 (F1) + + + Set 2 (F2) + + + Set 3 (F3) + + + Radiations + + + Restriction de rang + + + Cadence de tir + + + Effacer (C) + + + Fusil d'assaut + + + Rassasiement + + + Acheter une lunette pour le fusil (S) + + + Vendre tous les objets du sac à dos (X) + + + Fusils + + + Acheter un silencieux pour le pistolet (Q) + + + Acheter un silencieux pour le fusil (F) + + + Précision + + + Heure + + + Déjà possédé + + + Services en ligne de S.T.A.L.K.E.R. inaccessibles. + + + Connexion au serveur principal impossible. + + + Protection : + + + Par défaut + + + Set acheté enregistré sous + + + Poids total : + + + boire + + + Récupération d'énergie + + + Saignement + + + Poids maximal + + + Santé + + + Munitions + + + Durée + + + sec. + + + Permet de survivre à une émission + + + mettre casque + + + retirer casque + + diff --git a/gamedata/configs/text/fra/ui_st_ixray.xml b/gamedata/configs/text/fra/ui_st_ixray.xml new file mode 100644 index 0000000..9875415 --- /dev/null +++ b/gamedata/configs/text/fra/ui_st_ixray.xml @@ -0,0 +1,62 @@ + + + + S.T.A.L.K.E.R.: Appel de Pripyat + + + Menu principal + + + Niveau : + + + Sauvegarde rapide + + + Sauvegarde automatique + + + + m + + + Distance de frappe + + + + Ouvrir le coffre ($$ACTION_USE$$) + + + Utiliser ($$ACTION_USE$$) + + + + Libre + + + + Rechargement automatique + + + + Chargement multithread des textures + + + Carte des ombres + + + 1024x1024 + + + 2048x2048 + + + 3072x3072 + + + 4096x4096 + + + Toujours actif + + diff --git a/gamedata/configs/text/fra/ui_st_keybinding.xml b/gamedata/configs/text/fra/ui_st_keybinding.xml new file mode 100644 index 0000000..2176fe3 --- /dev/null +++ b/gamedata/configs/text/fra/ui_st_keybinding.xml @@ -0,0 +1,225 @@ + + + + PDA + + + Ordonner d'attaquer + + + Marcher + + + Artefact + + + Retour + + + Jumelles + + + Menu Achat + + + Chat + + + Chat en équipe + + + Console + + + Contacts du PDA + + + S'accroupir + + + Mode accroupi + + + Détecteur + + + Bas + + + Lâcher + + + Tirer + + + Mode de tir suivant + + + Mode de tir précédent + + + Avancer + + + Lance-grenades sous le canon + + + Général + + + Direction + + + Sac à dos + + + Déplacement + + + Multijoueur + + + Arme + + + Sac à dos + + + Sauter + + + Gauche + + + Se pencher à gauche + + + Pas vers la gauche + + + Carte du PDA + + + Arme suivante + + + Dispositif de vision nocturne + + + Pause + + + PDA + + + Arme précédente + + + Retour + + + Recharger + + + Réparer + + + Droite + + + Se pencher à droite + + + Pas vers la droite + + + Points + + + Capture d'écran + + + Menu de sélection des modèles + + + Courir + + + Menu de sélection des équipes + + + Lampe de poche + + + Activer + + + Haut + + + Accepter + + + Pansement rapide + + + Médikit rapide + + + Lancer vote + + + Voter + + + Voter "Non" + + + Voter "Oui" + + + Arme 1 + + + Arme 2 + + + Arme 3 + + + Arme 4 + + + Arme 5 + + + Arme 6 + + + Changer de type de munitions + + + Arme précédente de ce type + + + Zoomer + + + Messages vocaux (1) + + + Messages vocaux (2) + + + Emplacement d'accès rapide 1 + + + Emplacement d'accès rapide 2 + + + Emplacement d'accès rapide 3 + + + Emplacement d'accès rapide 4 + + diff --git a/gamedata/configs/text/fra/ui_st_loadscreen.xml b/gamedata/configs/text/fra/ui_st_loadscreen.xml new file mode 100644 index 0000000..d263d71 --- /dev/null +++ b/gamedata/configs/text/fra/ui_st_loadscreen.xml @@ -0,0 +1,474 @@ + + + + 100 CONSEILS POUR SURVIVRE DANS LA ZONE + + + Tirer dans l'œil d'un ennemi l'achève instantanément, quelles que soient les protections qu'il porte. + + + L'AC-96/2 dispose d'un mode de tir de deux balles consécutives qui atteindront le même point. + + + Les fusils à pompe à double canon permettent de tirer deux balles presque simultanément. + + + Ne sous-estimez pas les pistolets ! Ils offrent une excellente puissance d'arrêt et sont très efficaces contre des cibles peu blindées. + + + La vitesse initiale et la grande précision des fusils de précision en font des armes idéales pour éliminer des cibles éloignées. Ces fusils sont cependant moins efficaces à courte portée. + + + Vous êtes bien moins précis lorsque vous tirez en vous déplaçant que lorsque vous restez immobile ou êtes accroupi. + + + Les armes et les combinaisons de protection s'abîment rapidement dans les conditions hostiles de la Zone. Les armes vétustes offrent moins de précision et peuvent s'enrayer. Les combinaisons usées, quant à elles, n'offrent plus qu'une protection limitée. + + + Pour faire une capture d'écran, appuyez sur "$$ACTION_SCREENSHOT$$". + + + L'artefact ou le joueur en sa possession s'affiche sur la mini-carte. Si l'artefact est éloigné, une flèche indique dans quelle direction il se trouve. + + + L'AC-96/2 dispose d'un mode de tir de deux balles consécutives qui atteindront le même point. + + + Les fusils à pompe à double canon permettent de tirer deux balles presque simultanément. + + + Ne sous-estimez pas les pistolets ! Ils offrent une excellente puissance d'arrêt et sont très efficaces contre des cibles peu blindées. + + + La vitesse initiale et la grande précision des fusils de précision en font des armes idéales pour éliminer des cibles éloignées. Ces fusils sont cependant moins efficaces à courte portée. + + + Les armes et les combinaisons de protection s'abîment rapidement dans les conditions hostiles de la Zone. Les armes vétustes offrent moins de précision et peuvent s'enrayer. Les combinaisons usées, quant à elles, n'offrent plus qu'une protection limitée. + + + Certains médicaments possèdent des propriétés uniques. Ainsi, les comprimés Hercule vous permettent de transporter des charges plus lourdes, tandis que les médicaments anti-psi vous aident à résister aux émissions psi. + + + Pour faire une capture d'écran, appuyez sur "$$ACTION_SCREENSHOT$$". + + + Conseil n° + + + La Vodka, une alternative bon marché aux médicaments antiradiations, est le moyen le plus simple d'atténuer les effets physiques des radiations. + + + Appuyez longuement sur "$$ACTION_SCORES$$" pour afficher des informations détaillées sur la mission en cours. + + + Il vous faut un détecteur pour trouver des artefacts. Les meilleurs dispositifs facilitent la recherche et peuvent même identifier des artefacts plus rares. + + + Les stalkers ne laissent pas entrer les hommes armés dans leur camp. Pour dissimuler votre arme, appuyez sur la commande adéquate ("$$ACTION_WPN_1$$", "$$ACTION_WPN_2$$", "$$ACTION_WPN_3$$", "$$ACTION_WPN_4$$"). + + + Vous pouvez localiser le périmètre d'une anomalie en lançant des boulons. Pour en sortir un, appuyez sur "$$ACTION_WPN_6$$". + + + En plus de vous rassasier, la nourriture régénère légèrement votre santé. + + + Les boissons énergétiques améliorent temporairement votre capacité à récupérer, ce qui augmente votre endurance et votre mobilité. + + + Si votre niveau d'endurance chute trop, vous risquez de vous retrouver immobilisé et vulnérable. + + + Consultez les indicateurs de détection d'ennemis et de bruit, situés dans le coin supérieur gauche de l'écran, pour savoir si vous risquez de vous faire repérer. + + + Tenir un détecteur dans une main ne vous empêche pas d'utiliser un couteau, un pistolet ou un boulot de l'autre. + + + Certains médicaments améliorent la résistance physique aux effets nocifs et peuvent vous sauver la vie lors de missions dans les secteurs anormaux. + + + Pour afficher le menu contextuel des objets de votre sac à dos, placez le curseur sur l'objet en question et faites un clic droit. + + + Les artefacts ont des effets bénéfiques, mais la plupart sont également radioactifs. Pour contrer ces effets, il suffit d'utiliser des artefacts capables d'absorber les radiations. + + + Votre couteau n'est pas efficace contre les ennemis équipés d'armes à feu. Utilisez-le au combat rapproché ou pour éliminer une cible en toute discrétion. + + + Le poids que vous transportez fait chuter votre endurance. Un excès de poids peut restreindre votre mobilité et une surcharge vous empêchera de vous déplacer. + + + Le détecteur est le seul moyen fiable de trouver des artefacts dans les anomalies. + + + La plupart des artefacts restent invisibles lorsqu'ils se déplacent dans l'anomalie et ce, jusqu'à ce qu'ils soient identifiés par votre détecteur. + + + Les mutants deviennent plus actifs la nuit venue, ce qui explique pourquoi les stalkers préfèrent attendre le lever du soleil pour s'aventurer dans la Zone. + + + Si vous avez été irradié, utilisez des médicaments antiradiations. Si vous n'en avez pas, utilisez des médikits pour traiter les premiers symptômes en attendant de consulter un médecin. + + + La plupart des stalkers peuvent vous conduire à des endroits proches, mais seul un guide expérimenté pourra vous emmener rapidement et en toute sécurité dans des lieux éloignés. Cependant, ce service vous coûtera les yeux de la tête. + + + La vente d'artefacts n'est pas le seul moyen de gagner de l'argent : se débarrasser de l'équipement inutile peut aussi rapporter gros. Et n'oubliez pas que les marchands ne sont pas intéressés par des objets trop abîmés. + + + Pour démonter le silencieux, la lunette ou le lance-grenade de l'une de vos armes, faites un clic droit sur l'arme dans votre sac à dos et sélectionnez l'action correspondante dans le menu contextuel. + + + Si vous souhaitez vous déplacer en faisant un minimum de bruit, appuyez sur "$$ACTION_ACCEL$$" pour marcher ou sur "$$ACTION_CROUCH$$" pour vous accroupir. + + + Le fusil à pompe est une arme de combat rapproché. Plus votre ennemi est loin, moins l'arme est efficace. + + + Lorsque vous vous mettez à couvert pour éviter des tirs ennemis, prenez soin de vous abriter derrière des éléments solides. À la différence des murs en béton, les planches de bois et les taules n'arrêtent pas les balles. + + + Les tirs en pleine tête infligent des dégâts critiques et tuent la plupart des ennemis sur le coup. + + + Chaque espèce de mutants de la Zone possède ses propres caractéristiques de combat. Tâchez de vous en souvenir ! + + + Appuyez longuement sur "$$ACTION_WPN_ZOOM$$" pour choisir à quelle distance lancer une grenade. + + + Vos ennemis n'hésiteront pas à utiliser des grenades. Lorsque l'indicateur de grenade s'affiche à l'écran, éloignez-vous de la zone d'effet le plus vite possible ! + + + Prenez votre élan avant de sauter pour franchir de grands fossés et crevasses d'un bond ! + + + Les indicateurs de santé et d'endurance s'affichent dans le coin inférieur droit de l'écran. + + + La Zone est en constante activité, ce qui signifie que vous risquez de tomber sur des mutants ou des stalkers ennemis dans des lieux que vous avez déjà visités. + + + Restez sur vos gardes et ne vous fiez jamais à d'anciennes informations ! Lorsque vous retournerez dans une anomalie que vous avez déjà visitée, vous remarquerez vite que le passage que vous aviez trouvé a disparu. + + + N'hésitez pas à parler aux stalkers pour obtenir des informations utiles sur de nouvelles zones ou des évènements récents ! + + + Vous pouvez placer n'importe quelle arme dans les deux emplacements prévus à cet effet, afin de pouvoir alterner entre elles (par exemple, fusil d'assaut/fusil à pompe ou pistolet/fusil de précision). + + + Chaque marchand des différents camps de stalkers propose des marchandises uniques et variées. Par exemple, les médecins disposent de la meilleure gamme de produits médicaux. + + + Si vous arrivez blessé ou irradié dans un camp de stalkers, le médecin local vous soignera gratuitement. + + + Vous pouvez déposer vos effets personnels dans votre cantine du camp pour éviter de transporter des objets inutiles. + + + Si vous devez attendre une heure précise, pourquoi ne pas faire un petit somme ? Pour cela, trouvez une zone de repos, appuyez sur "$$ACTION_USE$$" et définissez la durée de votre sieste. + + + Le dispositif de vision nocturne installé dans votre casque peut être amélioré, ce qui accroît sensiblement sa portée. + + + Lorsque vous explorez la Zone, pensez à prendre quelques chargeurs supplémentaires, ils vous seront forcément utiles. + + + N'oubliez pas de sauvegarder régulièrement ! Cela vous évitera d'avoir à recommencer plusieurs fois les mêmes passages. + + + Il est utile de connaître les effets d'un médicament afin de l'utiliser à bon escient. Lisez la notice pour connaître les effets de certains produits ! + + + Utilisez des grenades pour attaquer les ennemis à couvert ! Prenez leur rayon d'effet en considération afin d'éviter de blesser vos alliés ! + + + Pour retirer un objet de votre sac à dos, faites un clic droit sur l'objet en question et sélectionnez l'action correspondante dans le menu contextuel. + + + Vous pouvez activer la sauvegarde automatique dans le menu Options pour que votre partie soit sauvegardée régulièrement. + + + Dès votre retour au camp, faites réparer votre équipement, vendez le butin inutile et faites le plein de munitions et de fournitures médicales. + + + Afin de réduire les effets nocifs des anomalies lors de raids dans la Zone, utilisez une combinaison de protection, des artefacts et les médicaments adéquats. + + + En plus des armes et des munitions, les cadavres des ennemis peuvent recéler des objets de valeur comme des PDA contenant des informations utiles. + + + Les artefacts ne sont pas que des objets de valeur : en plus d'être légers et précieux, ils s'avèrent souvent extrêmement utiles. + + + De nombreux mutants de la Zone sont radioactifs. Il est donc extrêmement dangereux de s'en approcher sans protection antiradiation. + + + Vous pouvez utiliser un pansement, un médikit militaire ou des médicaments Vinca pour stopper les hémorragies. Pensez à vous soigner rapidement, votre vie en dépend ! + + + Certaines armes peuvent être équipées d'une lunette de longue portée. Pour ajuster la portée, appuyez sur "$$ACTION_NEXT_SLOT$$" ou "$$ACTION_PREV_SLOT$$". + + + Certains endroits sont infranchissables, même en position accroupie. Pour vous accroupir le plus bas possible, appuyez longuement sur "$$ACTION_CROUCH$$" et "$$ACTION_ACCEL$$" simultanément. + + + Afin d'éviter les tirs ennemis, mettez-vous à couvert derrière un mur et penchez-vous pour tirer. Pour ce faire, appuyez longuement sur "$$ACTION_LLOOKOUT$$" ou "$$ACTION_RLOOKOUT$$". + + + Grâce à un système de localisation intégré, vos jumelles vous permettent non seulement d'observer des objets éloignés, mais aussi de repérer vos ennemis. Pour sortir vos jumelles, appuyez sur "$$ACTION_WPN_5$$". + + + Pour allumer ou éteindre votre lampe de poche, appuyez sur "$$ACTION_TORCH$$". + + + Pour sortir un boulon, appuyez sur "$$ACTION_WPN_6$$". + + + Si votre casque est équipé d'un dispositif de vision nocturne, vous pouvez l'activer et le désactiver en appuyant sur "$$ACTION_NIGHT_VISION$$". + + + Appuyez sur "$$ACTION_QUICK_USE_1$$", "$$ACTION_QUICK_USE_2$$", "$$ACTION_QUICK_USE_3$$" ou "$$ACTION_QUICK_USE_4$$" pour utiliser un objet de la fenêtre d'accès rapide. + + + Les médicaments n'ont pas un effet immédiat et certains peuvent agir de façon prolongée. + + + Votre PDA contient une carte, des informations concernant vos missions actuelles, vos statistiques et un journal. Pour l'ouvrir, appuyez sur "$$ACTION_ACTIVE_JOBS$$". + + + Vous devez utiliser votre détecteur pour trouver des artefacts. Pour le sortir, appuyez sur "$$ACTION_SHOW_DETECTOR$$". + + + Pour mettre le jeu en pause, appuyez sur "$$ACTION_PAUSE$$". + + + Pour effectuer une sauvegarde rapide, appuyez sur "$$ACTION_QUICK_SAVE$$". Appuyez sur "$$ACTION_QUICK_LOAD$$" pour charger la dernière sauvegarde rapide. + + + N'oubliez pas que vous puisez dans vos réserves d'énergie lorsque vous courez. Appuyez sur "$$ACTION_SPRINT_TOGGLE$$" pour courir. + + + Utilisez le viseur de votre arme pour tirer avec plus de précision. Pour viser, appuyez sur "$$ACTION_WPN_ZOOM$$". + + + Si un lance-grenades est monté sous le canon de votre arme, vous pouvez alterner entre le mode lance-grenades et le mode de tir normal en appuyant sur "$$ACTION_WPN_FUNC$$". + + + Si votre arme actuelle peut tirer différents types de munitions, vous pouvez choisir celles que vous souhaitez utiliser en appuyant sur "$$ACTION_WPN_NEXT$$". + + + Pour recharger votre arme avant que le chargeur ne soit vide, appuyez sur "$$ACTION_WPN_RELOAD$$". + + + Appuyez sur "$$ACTION_DROP$$" pour jeter l'arme que vous tenez en main. + + + En cas d'émission, pensez à vous mettre à couvert dans un bâtiment sûr ou sous terre. Lorsqu'une émission est imminente, l'abri le plus proche s'affiche sur votre PDA. + + + Pour placer un objet dans la fenêtre d'accès rapide, faites-le glisser de votre sac à dos vers l'un des quatre emplacements situés au-dessus des poches à artefacts. + + + Une goutte de sang s'affiche dans le coin inférieur droit de l'écran lorsque vous saignez pour vous signaler que vous devez stopper l'hémorragie. La couleur du symbole indique la gravité du saignement. + + + Lorsqu'un symbole de danger de radiation s'affiche dans le coin inférieur droit de l'écran, cela signifie que vous avez été irradié et devez utiliser des médicaments antiradiations. La couleur du symbole représente le niveau d'exposition. + + + Vous pouvez utiliser différents filtres pour masquer ou afficher des indicateurs sur la carte de votre PDA. Les boutons des filtres se trouvent au-dessus de la carte, sous la ligne de la mission en cours. + + + En général, les artefacts ne restent pas immobiles : ils ont tendance à se déplacer dans les anomalies. Attention à ne pas courir après un artefact sans prendre de précaution car vous risqueriez de finir dans une anomalie. + + + Certains stalkers peuvent vous proposer des renseignements, des marchandises exclusives, ou vous demander de trouver des artefacts spécifiques. + + + Après une émission, de nouveaux artefacts sont susceptibles d'apparaître dans les anomalies que vous avez déjà explorées. + + + Vous pouvez modifier le niveau de difficulté du jeu à tout moment dans le menu Options de jeu. + + + Les techniciens des camps de stalkers peuvent améliorer vos armes, vos combinaisons et vos casques. + + + Pour survivre dans la Zone, prêtez toujours une oreille attentive aux craquements de votre compteur Geiger et gardez un œil sur le signal d'alerte d'anomalie qui vous indique la proximité d'une formation anormale. + + + Vos relations avec les autres ont un impact sur le prix des marchandises et des services. Si vous êtes en froid avec un marchand, ne vous attendez pas à une ristourne ! Mais si vous êtes en bons termes, il vous fera peut-être une offre intéressante. + + + Déchargez les armes que vous trouvez pour récupérer leurs munitions. Pour cela, faites un clic droit sur l'arme dans votre sac à dos et sélectionnez l'action correspondante dans le menu contextuel. + + + Éliminez des ennemis et récupérez des artefacts pour obtenir des points et passer au rang suivant. Vous aurez alors accès à de nouvelles armes et armures et à des équipements inédits. + + + Utilisez des grenades fumigènes pour voler un artefact ou créer un écran de fumée. + + + La partie gauche du menu Achat contient cinq onglets, de haut en bas : pistolets, armes principales, équipement, munitions et fournitures médicales. Sélectionnez un onglet pour afficher les objets disponibles. + + + Le menu Achat à droite contient quatre emplacements d'achats rapides. Sélectionnez la disquette pour sauvegarder le set et appuyez sur le chiffre correspondant pour le charger. Le 4e emplacement sert à sauvegarder automatiquement le dernier set acheté. + + + Si vous possédez plus d'une arme, vous pouvez les parcourir en appuyant à plusieurs reprises sur "$$ACTION_WPN_3$$". + + + Vous pouvez activer un artefact pour créer une anomalie. Pour ce faire, appuyez sur "$$ACTION_ARTEFACT$$" et appuyez longuement sur "$$ACTION_WPN_FIRE$$". L'anomalie qui apparaît est aussi dangereuse pour l'ennemi que pour celui qui l'a créée. + + + Une combinaison scientifique peut vous permettre de survivre dans les anomalies et les zones radioactives. + + + CHASSE AUX ARTEFACTS : pour gagner, vous devez rapporter un certain nombre d'artefacts dans votre base. + + + Pour démonter le silencieux, la lunette ou le lance-grenade de l'une de vos armes, faites un clic droit sur l'arme dans votre sac à dos et sélectionnez l'action correspondante dans le menu contextuel. + + + Afin de vous déplacer en faisant un minimum de bruit, appuyez sur "$$ACTION_ACCEL$$" pour marcher ou sur "$$ACTION_CROUCH$$" pour vous accroupir. + + + Le fusil à pompe est une arme de combat rapproché. Plus votre ennemi est loin, moins l'arme est efficace. + + + Lorsque vous vous mettez à couvert pour éviter des tirs ennemis, prenez soin de vous abriter derrière des éléments solides. À la différence des murs en béton, les planches de bois et les taules n'arrêtent pas les balles. + + + Les tirs en pleine tête infligent des dégâts critiques et tuent la plupart des ennemis sur le coup. + + + Le fait de courir, sauter ou être blessé réduit nettement votre endurance. + + + Appuyez longuement sur "$$ACTION_WPN_ZOOM$$" pour choisir à quelle distance lancer une grenade. + + + Vos ennemis n'hésiteront pas à utiliser des grenades. Lorsque l'indicateur de grenade s'affiche à l'écran, éloignez-vous de la zone d'effet le plus vite possible ! + + + MATCH À MORT : marquez le plus de points pour gagner. + + + Prenez votre élan avant de sauter pour franchir de grands fossés et crevasses d'un bond ! + + + Les indicateurs de santé et d'endurance s'affichent dans le coin inférieur droit de l'écran. + + + La mini-carte vous indique dans quelle direction se trouvent les artefacts. Si la flèche pointe vers le haut, l'artefact se trouve au-dessus de votre position actuelle. Si la flèche pointe vers le bas, il se trouve en dessous de vous. + + + Récupérez les sacs à dos de vos ennemis pour récupérer de l'argent ! Vous pourrez revendre l'équipement inutile à la base. + + + Vous devez à tout prix protéger votre coéquipier qui transporte l'artefact. + + + Utilisez des grenades pour attaquer les ennemis à couvert ! Prenez leur rayon d'effet en considération afin d'éviter de blesser vos alliés ! + + + Vous pouvez communiquer avec vos coéquipiers via le chat vocal. Pour accéder au menu correspondant, appuyez sur "$$ACTION_SPEECH_MENU_0$$" ou "$$ACTION_SPEECH_MENU_1$$". + + + MATH À MORT EN ÉQUIPE : pour gagner, votre équipe doit faire plus de victimes que l'adversaire. + + + Pour commencer un vote, appuyez sur "$$ACTION_VOTE_BEGIN$$". + + + Pour afficher les scores, appuyez sur "$$ACTION_SCORES$$". + + + Pour réapparaître, appuyez sur "$$ACTION_JUMP$$" à la fin de la période d'attente. + + + Pour ouvrir le menu Achat, appuyez sur "$$ACTION_BUY_MENU$$" lorsque vous êtes dans votre base. + + + Pour ouvrir le canal de chat général, appuyez sur "$$ACTION_CHAT$$". Pour communiquer uniquement avec votre équipe par écrit, appuyez sur "$$ACTION_CHAT_TEAM$$". + + + N'oubliez pas que vous puisez dans vos réserves d'énergie lorsque vous courez ! Appuyez sur "$$ACTION_SPRINT_TOGGLE$$" pour courir. + + + Utilisez le viseur de votre arme pour tirer avec plus de précision. Pour viser, appuyez sur "$$ACTION_WPN_ZOOM$$". + + + Si un lance-grenades est monté sous le canon de votre arme, vous pouvez alterner entre le mode lance-grenades et le mode de tir normal en appuyant sur "$$ACTION_WPN_FUNC$$". + + + Si votre arme actuelle peut tirer différents types de munitions, vous pouvez choisir celles que vous souhaitez utiliser en appuyant sur "$$ACTION_WPN_NEXT$$". + + + Pour recharger votre arme avant que le chargeur ne soit vide, appuyez sur "$$ACTION_WPN_RELOAD$$". + + + CAPTURE D'ARTEFACTS : pour gagner, vous devez rapporter un certain nombre d'artefacts ennemis dans votre base. + + + Appuyez sur "$$ACTION_DROP$$" pour jeter l'arme que vous tenez en main. + + + Pour regarder dans votre sac à dos, appuyez sur "$$ACTION_INVENTORY$$". + + + La plupart des armes disposent de plusieurs modes de tirs. Appuyez sur "$$ACTION_WPN_FIREMODE_NEXT$$" ou "$$ACTION_WPN_FIREMODE_PREV$$" pour passer d'un mode à l'autre. + + + Certains endroits sont infranchissables, même en position accroupie. Pour vous accroupir le plus bas possible, appuyez longuement sur "$$ACTION_CROUCH$$" et "$$ACTION_ACCEL$$" simultanément. + + + Pour regarder au détour d'un angle, appuyez sur "$$ACTION_LLOOKOUT$$" ou "$$ACTION_RLOOKOUT$$". Sachez que vous ne pouvez pas tirer en même temps. + + + CAPTURE D'ARTEFACTS : pour rapporter un artefact volé dans votre base, vous devez tuer son porteur et ramasser l'artefact en appuyant sur "$$ACTION_USE$$". + + + CHASSE AUX ARTEFACTS : vous pouvez détruire un artefact en l'activant. Pour ce faire, appuyez sur "$$ACTION_ARTEFACT$$" et appuyez longuement sur "$$ACTION_WPN_FIRE$$". + + + Vous ne pouvez pas courir lorsque vous transportez l'artefact. + + + Pour regarder dans votre sac à dos, appuyez sur "$$ACTION_INVENTORY$$". + + + Pour réparer une arme, une combinaison ou un casque, vous devez trouver un technicien, sélectionner l'objet concerné dans l'écran des modifications, puis cliquer sur le bouton Réparer. Vous pouvez également faire un clic droit dans cette fenêtre pour afficher le menu contextuel correspondant. + + + La plupart des armes disposent de plusieurs modes de tirs par défaut et vous pouvez en ajouter d'autres par la suite à l'aide de modifications. Passez d'un mode à un autre en appuyant sur "$$ACTION_WPN_FIREMODE_NEXT$$" ou "$$ACTION_WPN_FIREMODE_PREV$$". + + + La vitesse initiale a une influence sur la trajectoire de la balle, alors que la prise en main représente le temps pris par la mire pour revenir à sa position d'origine après un tir. + + + Certaines combinaisons disposent de casques intégrés. Il n'est donc pas possible d'utiliser d'autres casques avec celles-ci. + + + Chaque arme a des caractéristiques de précision, prise en main, dégâts et cadence de tir qui lui sont propres, ce qui vous permet de choisir celle qui vous convient le mieux. + + + Votre précision de tir baisse très nettement lorsque vous vous déplacez. Restez immobile ou mettez-vous accroupi. + + + Cette boisson énergétique accélère temporairement la récupération de l'endurance, ce qui vous permet de courir plus longtemps. + + + Vous disposez de munitions illimitées en mode Match à mort. + + + Les radiations sont l'un des dangers les plus courants de la Zone. Une exposition prolongée détériore votre état de santé et conduit, sans traitement, à une mort certaine. + + + N'oubliez pas d'emporter des provisions lorsque vous partez pour un raid de longue durée. Quand vous êtes affamé, votre endurance en pâtit. + + diff --git a/gamedata/configs/text/fra/ui_st_mm.xml b/gamedata/configs/text/fra/ui_st_mm.xml new file mode 100644 index 0000000..149b214 --- /dev/null +++ b/gamedata/configs/text/fra/ui_st_mm.xml @@ -0,0 +1,939 @@ + + + + Clair + + + Nuageux + + + intermédiaire + + + maximum + + + haute + + + basse + + + minimum + + + Nuit + + + Pluvieux + + + TYPE DE PARTIE + + + maître + + + bleu + + + vétéran + + + ICONES + + + CARTE + + + Rapporté par activation + + + Activer le vote + + + Durée des anomalies (min) + + + Capture d'artefact + + + Absence d'artefact + + + Nombre d'artefacts + + + Temps de l'artefact + + + Retour de l'artefact + + + Équilibrage auto. équipes + + + Changement auto. équipe + + + CARTES DISPONIBLES + + + Annuler + + + Numéro de série + + + vérifier numéro de série + + + Client + + + Créer + + + Invulnérabilité (sec.) + + + Indicateur d'invulnérabilité + + + Morts + + + Dédié + + + Liste démo + + + Statistiques joueur + + + Enregistrer démo + + + Enregistrement démo + + + Vide + + + Filtres + + + Réapparition forcée (sec.) + + + Limite de frags + + + Frags + + + Délai + + + Tir allié + + + Indicateur alliés + + + Noms alliés + + + Plein + + + Mode + + + IP/hôte:port + + + Internet + + + Connexion + + + Réseau local + + + Serveur joueur + + + Recommencer + + + Liste de cartes + + + Limite de joueurs + + + Connexion réseau + + + Sans anomalie + + + Options + + + Mot de passe + + + Nom du joueur : + + + Joueurs + + + nombre de joueurs + + + Server Internet + + + Actu. rapide + + + Coeff. de changement + + + Actualiser tout + + + Renforts (sec.) + + + Options réapparition + + + CARTES SÉLECTIONNÉES + + + Serveur + + + Liste des serveurs + + + Propriétés du serveur + + + Infos serveur + + + Serveur + + + Nom du serveur + + + Paramètres du serveur + + + Spectateur + + + Vue subjective + + + Caméra libre + + + Troisième personne libre + + + Troisième personne + + + Paramètres spectateur + + + Équipe seulement + + + Météo initiale + + + score + + + Chrono (min.) + + + Échauffement (sec.) + + + Options météo + + + Sans tir allié + + + Sans mot de passe + + + Sans PunkBuster + + + Avec mot de passe + + + Réseau local + + + Internet + + + Usine "Agroprom" + + + Gare routière + + + Bassin + + + Changement de nom unique réussi ! + + + Vallée obscure + + + Usine de "Yantar" + + + erreur de connexion au serveur de statistiques + + + erreur de connexion au serveur de connexion + + + autorisation terminée + + + Village déserté + + + Entrepôts militaires + + + nom incorrect + + + Bassin + + + Gare + + + Usine de "Rostok" + + + nom unique incorrect + + + Voulez-vous vraiment retirer + + + Usine désaffectée + + + PING + + + JOUEURS + + + Éclairage statique + + + Éclairage dynamique complet + + + Éclairage dyn. complet amélioré + + + Éclairage dynamique des objets + + + Éclairage dyn. comp. opt. (DX10) + + + NOM DU SERVEUR + + + Chasse aux artefacts + + + Capture d'artefact + + + Match à mort + + + Filtre : + + + élevé + + + faible + + + intermédiaire + + + sans + + + expérimenté + + + stalker légendaire + + + bleu + + + professionnel + + + vétéran + + + Jeu en équipe + + + Fréquence 60 Hz + + + Action + + + Avancé + + + Alternative + + + Filtrage des textures + + + Appliquer + + + Retour + + + Sang + + + Luminosité + + + Annuler + + + Mises à jour + + + Contraste + + + Commandes + + + Crédits + + + Dist. cible sur réticule + + + Par défaut + + + Supprimer + + + Voulez-vous vraiment supprimer le fichier ? + + + Densité de l'herbe + + + Difficulté + + + Déconnexion + + + Voulez-vous vraiment vous déconnecter ? + + + Profondeur de champ + + + Réticule dynamique + + + Musique dynamique + + + EAX + + + Plein écran + + + Partie + + + Gamma + + + Détail des objets + + + Souris inversée + + + Commande + + + Configuration du clavier + + + Dernière sauvegarde + + + Distance d'éclairage + + + Charger + + + Charger partie + + + Quitter profil + + + Maître + + + Volume effets + + + Sensibilité de la souris + + + Objets de test A adoucis + + + Adoucissement optimisé + + + MULTIJOUEUR + + + Multijoueur + + + Volume musique + + + Les modifications ne seront appliquées qu'après le redémarrage du jeu. + + + Multijoueur + + + Nouvelle partie + + + Débutant + + + PNJ avec lampes de poche + + + OPTIONS + + + Options + + + Distance des particules + + + Paramètres de rendu + + + Retour à Windows + + + Quitter + + + Voulez-vous vraiment quitter le jeu ? + + + Voulez-vous vraiment revenir à Windows ? + + + Bump mapping + + + Steep parallax + + + Ombres du soleil + + + Ombres de l'herbe + + + Qualité du soleil + + + Utilise DX10.1 + + + Lissage plein écran + + + Surfaces mouillées + + + Optimisation du tampon géométrique + + + Fumée volumétrique + + + Rendu 2 + + + Type de rendu + + + Résolution + + + Reprendre + + + Sauvegarder + + + Sauvegarder + + + Afficher réticule + + + Afficher l'arme + + + Basiques + + + Périphérique sonore + + + Particules adoucies + + + Eau adoucie + + + Audio + + + Qualité audio + + + Stalker + + + Qualité des ombres + + + Rayons du soleil + + + Anticrènelage + + + L'IA utilise des lampes de poche. + + + Détail des textures + + + Identification de PNJ + + + Vétéran + + + Graphismes + + + Distance de vision + + + Lumière volumétrique + + + Synchronisation verticale + + + Modifier nom unique + + + Email déjà utilisé + + + Via internet + + + Via réseau local + + + poignardé dans le dos + + + par hémorragie + + + dans une explosion + + + dans l'œil + + + dans la tête + + + La version du fichier de sauvegarde ne correspond pas à celle du programme. + + + tueur en série + + + couteau + + + Dernier set + + + Accéder au mode Multijoueur + + + Nom + + + Changer + + + Set 1 + + + Set 2 + + + Set 3 + + + Rétablir + + + Tout vendre + + + Version + + + Pripyat + + + Mode accroupi/debout + + + Sauvegarde automatique... + + + Détail des textures + + + Cinématiques + + + Entrer + + + Quitter + + + Créer + + + Adresse email ou mot de passe incorrect + + + Profil incorrect + + + Erreur de connexion + + + Serveur temporairement indisponible + + + Identifiant de profil nécessaire + + + Erreur de connexion + + + Erreur de connexion + + + Erreur de connexion + + + Nom de profil incorrect + + + Mot de passe incorrect + + + Pseudo unique incorrect + + + Pseudo unique déjà utilisé + + + Veuillez d'abord vous connecter à votre profil + + + Veuillez d'abord vous déconnecter de votre profil + + + Erreur de connexion au serveur de profils + + + Vous ne pourrez pas supprimer le profil après l'avoir créé. + + + Qualité SSAO + + + Mode SSAO + + + par défaut + + + HDAO + + + HBAO + + + Afficher interface + + + Pseudo unique non enregistré. Veuillez l'enregistrer. + + + Pseudo unique arrivé à expiration. Veuillez l'enregistrer à nouveau. + + + stalker + + + max + + + Éclairage dyn. comp. opt. (DX11) + + + Veuillez vous connecter au serveur externe. + + + Cet identifiant GameSpy est déjà utilisé. Veuillez choisir un autre identifiant GameSpy. + + + Email incorrect + + + Mot de passe incorrect + + + Vous ne pouvez pas utiliser un identifiant GameSpy pour vous connecter à un serveur local. Veuillez utiliser le mode Réseau local. + + + Vous avez été exclu par le serveur. + + + Vous avez été banni par l'administrateur : + + + Vous avez été banni par le serveur. + + + Infos serveur + + + Cette adresse email est trop longue. Vous ne pouvez saisir que 50 caractères au maximum. + + + Email incorrect + + + Le mot de passe est trop court + + + Le mot de passe est trop long + + + Adresse email introuvable + + + Pseudo unique non défini + + + Ce pseudo unique est trop long. Vous ne pouvez saisir que 30 caractères au maximum. + + + Le pseudo unique ne peut contenir que des chiffres, des lettres et les symboles suivants : "#$&'()*+-./:;<=>?@[]^_`{|}~ + + + Le pseudo unique ne doit contenir aucun espace + + + Le pseudo unique ne peut pas commencer par un chiffre ou l'un des symboles suivants : '@', '+', ':' or ‘#’ + + + très élevé + + + Mosaïque + + + Appliquer les changements ? Tous les changements seront annulés dans + + + Entrepôt + + diff --git a/gamedata/configs/text/fra/ui_st_mp.xml b/gamedata/configs/text/fra/ui_st_mp.xml new file mode 100644 index 0000000..362ae12 --- /dev/null +++ b/gamedata/configs/text/fra/ui_st_mp.xml @@ -0,0 +1,741 @@ + + + + Artefact + + + Allié + + + Ping max + + + Profil + + + Modes + + + L'artefact a été détruit. + + + L'artefact a réapparu. Rapportez-le à la base pour marquer un point ! + + + L'artefact a été perdu. + + + L'artefact est dans notre base. + + + L'artefact est dans la base ennemie. + + + Artefacts + + + Artefacts + + + Sélection auto. + + + Retour + + + 4. Exclure + + + Par anomalie + + + Annuler + + + a capturé l'artefact + + + 5. Changer de carte + + + 6. Changer météo + + + Changer météo : + + + Chat + + + Connecté + + + Morts + + + Description + + + Déconnecté + + + Saisir un texte pour le vote + + + a rejoint la partie + + + Caserne de pompiers + + + (Vue subjective) + + + frags + + + Frags + + + (Caméra libre) + + + (vue Troisième personne) + + + avec + + + 7. Mode + + + Décharge + + + EN AVANT ! + + + %s a perdu l'artefact + + + a perdu l'artefact + + + %s a pris l'artefact + + + Mercenaires + + + est désormais + + + a rejoint + + + 3. Jeter + + + Limansk + + + Chargement des décorations... + + + Chargement des fichiers... + + + (Troisième personne libre) + + + Description de la carte + + + Partie lancée ! + + + Vieux village + + + Modes + + + Nom + + + Suivant + + + N'ont pas voté + + + Ping + + + Victoire de %s ! + + + Joueurs + + + Appuyez sur Tirer pour passer en mode Spectateur. + + + Appuyez sur Sauter pour acheter une réapparition instantanée. + + + Appuyez sur Sauter pour sélectionner une apparence. + + + Appuyez sur Sauter pour sélectionner les équipes. + + + Appuyez sur Sauter pour réapparaître. + + + Appuyez sur Sauter pour commencer. + + + Appuyez sur ($$ACTION_BUY_MENU$$) pour accéder au menu Achat. + + + Vous avez %d $. Vous pouvez réapparaître pour %d $. Cliquez sur Oui pour payer. + + + Prêt... + + + Réparer base + + + 1. Redémarrer + + + 2. Redémarrage rapide + + + a rapporté l'artefact + + + a marqué un point + + + Sélectionnez le joueur à exclure. + + + Sélectionnez une catégorie de vote. + + + Sélectionnez le joueur à exclure par vote. + + + Sélectionnez le joueur à exclure par vote. + + + Sélectionnez la carte pour le vote. + + + Artefact - pas de sprint + + + - Nombre + + + - Temps restant + + + - Durée réapp. + + + Anomalies + + + Durée anomalies + + + Chaque fois + + + Artefact capturé + + + Artefacts : + + + Équilibrage auto. équipes + + + Changement auto. Équipe + + + BattlEye + + + Désactivé + + + Activé + + + - Vue subjective + + + Réapp. forcée + + + Limite de frags + + + - Vol libre + + + - Vue libre + + + Tir allié + + + Indicateur alliés + + + Noms alliés + + + Infini(e) + + + Invincibilité : + + + - Indicateurs + + + - Temps + + + - Troisième personne + + + Rotation carte + + + Ping max + + + min. + + + Non + + + Réapparition + + + Retour aux bases + + + sec. + + + Nom serveur : + + + Bases protégées + + + Modes spectateur : + + + - Équipe seulement + + + Limite de temps + + + Version : + + + Vote + + + Échauffement + + + Oui + + + Sélection apparence + + + Spectateur + + + SPECTATEURS + + + Centre sportif + + + État + + + est passé à + + + Liberté + + + Sélection équipe + + + L'équipe %s a gagné ! + + + Texte + + + Temps restant avant réapparition + + + Temps restant avant le lancement : + + + Temps restant : %d:%d; D'accord : %.2f + + + Camp d'entraînement + + + Voix POUR : [$$ACTION_VOTE_YES$$]\nVoix CONTRE : [$$ACTION_VOTE_NO$$]\nRésultats : [$$ACTION_VOTE$$] + + + Non + + + Oui + + + Voté + + + Non + + + Oui + + + Vote annulé par le serveur ! + + + Le vote '%s' a été lancé par %s. + + + Le vote a commencé ! + + + 1. Dégagé + + + 4. Nuageux + + + 3. Nuit + + + 2. Pluie + + + Poignardé dans le dos ! + + + Tué d'une balle en pleine tête ! + + + Vous avez capturé l'artefact ennemi. Apportez-le jusqu'au vôtre ! + + + Vous avez ramassé l'artefact. Activez-le pour le rapporter à votre base ! + + + Votre rang est désormais + + + C'est vous + + + Le vote n'est pas disponible sur ce serveur. + + + Aucun vote actif. + + + Un seul vote actif autorisé. + + + Prêt + + + À tous + + + À l'équipe + + + Échec du vote ! + + + Vote réussi ! + + + Base de la Liberté + + + Base des mercenaires + + + 2. Chasse aux artefacts + + + 4. Capture d'artefacts + + + 1. Match à mort + + + Créer un nouveau profil + + + Récupération des comptes de profil + + + Bonjour + + + Connexion au profil + + + Création du profil terminée. Veuillez vous y connecter. + + + Vérification du nom unique... + + + Voulez-vous utiliser le profil existant avec le nom + + + Compte trouvé. Récupération des profils enregistrés... + + + Vous avez déjà un profil. Veuillez vous y connecter. + + + Vérification du compte... + + + Ce nom unique est déjà utilisé. Choisissez-en un autre dans la liste déroulante ou saisissez un autre nom. + + + Les mots de passe ne sont pas identiques ! + + + 3. Jeu en équipe + + + Copier le lien + + + Charger de carte + + + Description + + + Carte incorrecte ou corrompue + + + Carte introuvable + + + Décorations + + + Enregistrements + + + Vérifier + + + Confirmer mot de passe + + + Email + + + MdP oublié ? + + + Page de création de profil GameSpy + + + Mot de passe + + + Se rappeler + + + Nom unique + + + Nom unique modifié : + + + Équipe + + + Liberté + + + Mercenaires + + + Nouveau profil + + + Autorisation identifiant GameSpy + + + jouer + + + revenir + + + relancer + + + au début + + + au moment de la mort de la victime + + + au moment de la mort + + + à la capture de l'artefact + + + à la perte de l'artefact + + + à la livraison de l'artefact + + + peu importe + + + Connexion + + + Capture d'écran (tout) + + + Config pour tous + + + Limite de ping : + + + Limite de ping + + + Cap. écr. joueurs sélec. + + + Cfg joueurs sélec. + + + Exclure joueur sélectionné + + + Bannir joueur sélectionné + + + Relancer + + + Redémarrage rapide + + + Changer la météo + + + Vitesse changement météo + + + Changer de type de partie + + + Modifier les paramètres de la partie + + + Mettre fin au vote en cours + + + Limite de temps (0, 180) + + + Limite de frags (0, 1000) + + + Limite d'artefacts (0, 100) + + + temps d'échauffement (0, 3600) + + + Temps prot. réapp. (0, 60 CDA) + + + Temps prot. réapp. (0, 600 MM/E) + + + Temps de réapparition (-1, 3600) + + + Erreur de profil inconnue (code : 4) + + + 10 minutes + + + 30 minutes + + + 1 heure + + + 6 heures + + + 1 jour + + + 1 semaine + + + 1 mois + + + 3 mois + + + Toujours + + + Le pseudo est trop court + + + Erreur de profil + + diff --git a/gamedata/configs/text/fra/ui_st_other.xml b/gamedata/configs/text/fra/ui_st_other.xml new file mode 100644 index 0000000..67f45bd --- /dev/null +++ b/gamedata/configs/text/fra/ui_st_other.xml @@ -0,0 +1,501 @@ + + + + Annuler + + + Non + + + OK + + + Oui + + + Mauvais + + + Ennemi + + + Excellent + + + Expérimenté + + + Ami + + + Carte de la Zone + + + Bon + + + Indifférent + + + Maître + + + Bonus PDA + + + Un seul vote actif autorisé. + + + Neutre + + + Débutant + + + Partie + + + Utilisé + + + Niveau + + + Chargement des objets IA + + + Serveur : chargement du simulateur A-life + + + Chargement de CFORM + + + Chargement des détails + + + Chargement de la géométrie + + + Chargement de la sauvegarde + + + Chargement des secteurs et portails + + + Chargement des shaders + + + Chargement de spatial-DB + + + Chargement des textures + + + IP direct + + + Aucune mission en cours + + + Fonds insuffisants + + + Le PNJ n'a pas assez d'argent. + + + Ouverture du stream + + + Prélecture des objets + + + roubles. + + + SERVEUR : connexion en cours + + + SERVEUR : démarrage en cours + + + Validation du numéro de série + + + Graphismes + + + Terrible + + + Réparer + + + Vous ne pouvez pas exécuter Rendu 2 sur votre PC. + + + Faction + + + Erreur de connexion : votre numéro de série n'est pas activé. Contactez le service client. + + + Erreur de connexion : numéro de série déjà utilisé. + + + Erreur de connexion : numéro de série non valide. + + + Erreur de connexion : hôte non valide + + + Erreur de connexion : mot de passe non valide + + + Nouvelle mise à jour disponible.\n Version : %s\n Emplacement :%s\nTélécharger maintenant ? + + + Aucune nouvelle mise à jour disponible + + + Erreur de connexion : connexion rejetée par le serveur + + + Erreur de connexion : serveur plein + + + Erreur de connexion : version différente + + + Connexion au serveur principal en cours + + + Jour(s) + + + Erreur + + + Erreur de chargement + + + Il existe déjà un fichier du même nom. Voulez-vous l'écraser ? + + + Le nom de fichier est vide. + + + Heure(s) + + + Déconnecté par le système de protection BattleEye : + + + Déconnecté. Raison : + + + Quitter + + + Le chargement entraînera la perte des données non sauvegardées. Continuer ? + + + min. + + + mois + + + Sac à dos + + + Paramètres + + + Téléchargement de la mise à jour impossible. + + + Téléchargement de la mise à jour terminé. Voulez-vous l'installer ? + + + Prix + + + Rang + + + Attitude + + + Réputation + + + sec. + + + Sélectionnez au moins une carte + + + Tout prendre + + + Temps restant + + + Échec du vote ! + + + Voulez-vous vraiment quitter le jeu ? + + + Total + + + très nég. + + + très posit. + + + Vétéran + + + Réparer + + + Réparer l'objet sélectionné + + + ... + + + en déplacement dans un secteur donné + + + en route pour Yanov depuis Zaton + + + en route pour Pripyat depuis Zaton + + + en route pour Zaton depuis Yanov + + + en route pour Pripyat depuis Yanov + + + en route pour Zaton depuis Pripyat + + + en route pour Yanov depuis Pripyat + + + en route pour le labo X8 depuis Pripyat + + + en route pour Pripyat depuis le labo X8 + + + émission + + + début de la partie + + + arrivée au Skadovsk + + + Stingray 1 examiné + + + Stingray 2 examiné + + + Stingray 3 examiné + + + Stingray 4 examiné + + + Stingray 5 examiné + + + en route pour le plateau du sud + + + arrivée à Yanov + + + route de Pripyat trouvée + + + Zulu rejoint le groupe + + + dette de Vano remboursée + + + Vano rejoint le groupe + + + plante anormale récupérée + + + Sokolov rejoint le groupe + + + Arpenteur rejoint le groupe + + + groupe constitué + + + arrivée au tunnel + + + arrivée à Pripyat + + + militaires localisés + + + arme non identifiée récupérée + + + unité de reconnaissance trouvée + + + arrivée des renforts + + + "antenne" examinée + + + sentinelle disparue retrouvée + + + contrôleur près de la sentinelle tué + + + accès à l'atelier de test + + + documentation du fusil Gauss trouvé + + + cadavre de combattant trouvé + + + entrée dans l'école maternelle + + + infirmier de l'armée sauvé + + + communication avec le QG rétablie + + + Début de l'évacuation de Pripyat + + + hélicoptères sur zone + + + évacuation terminée + + + détecteur de mutants + + + rançon payée + + + otage libéré + + + relevés de l'anomalie Tas de cendres + + + relevés de l'anomalie Plavni + + + nid de sangsues + + + envoyé à Kopachy + + + abords de la station de traitement des déchets + + + stalkers touchés + + + conteneur trouvé dans la planque + + + chasse à la chimère + + + Oasis trouvé + + + Opération Mise à mort lancée + + + recherche de la source des émissions psi + + + documents administratifs + + + abords des ateliers du poste électrique + + + rencontre près du poste des rangers + + + entrepôt du Devoir + + + source de l'étrange lueur découverte + + + Zulu trouvé + + + grotte dangereuse + + + Réparations/modifications + + + Acheter + + + Vendre + + + Échanger + + + Fermer la fenêtre ($$ACTION_USE$$) + + + Ouvrir la fenêtre Échanger ($$ACTION_SPRINT_TOGGLE$$) + + + Ouvrir la fenêtre Réparations/modifications ($$ACTION_SPRINT_TOGGLE$$) + + + Placer tous les objets dans le sac à dos ($$ACTION_SPRINT_TOGGLE$$) + + + Acheter les objets sélectionnés + + + Vendre les objets sélectionnés + + + décollage des hélicoptères d'évacuation + + diff --git a/gamedata/configs/text/fra/ui_st_pda.xml b/gamedata/configs/text/fra/ui_st_pda.xml new file mode 100644 index 0000000..e91f902 --- /dev/null +++ b/gamedata/configs/text/fra/ui_st_pda.xml @@ -0,0 +1,279 @@ + + + + Heure + + + Stalker indépendant + + + Militaire + + + Bandit + + + Devoir + + + Scientifiques + + + Missions annexes + + + Planques + + + Liberté + + + Mercenaire + + + Journal de mission + + + Monolithe + + + Mutant + + + Avril + + + Août + + + Décembre + + + Février + + + Janvier + + + Juillet + + + Juin + + + Mars + + + Mai + + + Novembre + + + Octobre + + + Septembre + + + Désactiver PDA + + + Journal + + + Historique des messages + + + Carte de la région + + + Afficher carte de la Zone et journal + + + Stats + + + Afficher stats personnelles + + + Heure actuelle : + + + Filtre dates + + + Voir nouvelles + + + Afficher dialogues + + + Légende + + + Fuseau horaire : + + + Émissions survécues : + + + Missions accomplies : + + + Mutants tués : + + + Stalkers tués : + + + Artefacts trouvés : + + + Planques trouvées : + + + Arme préférée + + + Mutant le plus puissant tué + + + Lieu : + + + Objectif + + + Mission annexe + + + Ennemis + + + Alliés + + + Chef de faction + + + Mission principale + + + Neutres + + + Guide + + + Planques + + + Commandant d'unité + + + Marchand + + + Stalker indépendant + + + Journal + + + Centrer sur le joueur + + + Vers le bas + + + Vers la gauche + + + Légende + + + Vers la droite + + + Vers le haut + + + Zoom arrière maximal + + + Zoomer + + + Zoom arrière + + + Succès + + + Centrer carte sur mission + + + Centrer carte sur mission + + + Zombie + + + échelle + + + + échelle - + + + Technicien + + + Médecin + + + Missions en cours + + + Afficher/masquer missions + + + Cantine personnelle + + + Zaton + + + Alentours de Jupiter + + + Pripyat + + + Tunnel Pripyat 1 + + + Laboratoire X8 + + + Lieux + + + Objets importants + + + Lieu + + + Les scanners ont détecté des artefacts : + + + Les scanners n'ont détecté aucun artefact. + + + Planque + + + Dortoir + + diff --git a/gamedata/configs/text/fra/ui_st_screen.xml b/gamedata/configs/text/fra/ui_st_screen.xml new file mode 100644 index 0000000..85e0bd4 --- /dev/null +++ b/gamedata/configs/text/fra/ui_st_screen.xml @@ -0,0 +1,348 @@ + + + + Ouvrir cantine ($$ACTION_USE$$) + + + Vous êtes trop épuisé pour pouvoir vous déplacer. + + + Vous êtes trop chargé pour pouvoir vous déplacer. + + + Ouvrir la porte ($$ACTION_USE$$) + + + Parler ($$ACTION_USE$$) + + + Fouiller le cadavre ($$ACTION_USE$$) + + + Fouiller le cadavre ($$ACTION_USE$$)\nTraîner le cadavre (MAJ. +$$ACTION_USE$$) + + + Mission accomplie : + + + Échec de la mission : + + + Objet reçu : + + + Argent reçu : + + + Nouvelle mission : + + + Objet perdu : + + + Argent perdu : + + + Mission annulée : + + + Mission mise à jour : + + + Votre arme s'est enrayée. Vous devez la recharger. + + + Fouiller la boîte ($$ACTION_USE$$) + + + Prendre l'objet ($$ACTION_USE$$) + + + Fouiller l'appareil ($$ACTION_USE$$) + + + Porte bloquée + + + La porte est verrouillée de l'intérieur. + + + Coffre verrouillé + + + Code nécessaire + + + Saisir le code ($$ACTION_USE$$) + + + Prendre la plante ($$ACTION_USE$$) + + + Régler le détecteur ($$ACTION_USE$$) + + + Prendre le détecteur ($$ACTION_USE$$) + + + Modérateur d'agressivité Arc-en-ciel\nModèle du complexe d'émission externe\néchelle 1:20 + + + Actionner l'interrupteur ($$ACTION_USE$$) + + + Examiner l'objet ($$ACTION_USE$$) + + + Placer des explosifs ($$ACTION_USE$$) + + + Se reposer ($$ACTION_USE$$) + + + L'ascenseur n'est pas sous tension. + + + Allumer le générateur ($$ACTION_USE$$) + + + Dormir + + + Vous ne pouvez pas dormir : vous souffrez d'une grave hémorragie et avez été irradié. Prenez des médicaments ou consultez un médecin ! + + + Vous ne pouvez pas dormir : vous souffrez d'une grave hémorragie. Prenez des médicaments ou consultez un médecin ! + + + Vous ne pouvez pas dormir : vous avez été irradié. Prenez des médicaments ou consultez un médecin ! + + + Dormir ($$ACTION_USE$$) + + + Vous avez obtenu le succès Homme équilibré. + + + Vous avez obtenu le succès Expert en armement. + + + Vous avez obtenu le succès Détective. + + + Vous avez obtenu le succès Diplomate. + + + Vous avez obtenu le succès Ami du Devoir. + + + Vous avez obtenu le succès Ami de la Liberté. + + + Vous avez obtenu le succès Ami des stalkers. + + + Vous avez obtenu le succès Messager de la Justice. + + + Vous avez obtenu le succès Expert en technologie de pointe. + + + Vous avez obtenu le succès Trafiquant d'informations. + + + Vous avez obtenu le succès Gardien des secrets. + + + Vous avez obtenu le succès Boss. + + + Vous avez obtenu le succès Chef. + + + Vous avez obtenu le succès Chasseur de mutants. + + + Vous avez obtenu le succès L'un des nôtres. + + + Vous avez obtenu le succès Pionnier. + + + Vous avez obtenu le succès Assistant de recherche. + + + Vous avez obtenu le succès Chasseur d'artefacts. + + + Vous avez obtenu le succès Stalker aguerri. + + + Vous avez obtenu le succès Bon client. + + + Sauvegarde automatique... + + + Vous pouvez maintenant sortir votre arme. + + + Serrure numérique ($$ACTION_USE$$) + + + Des fournitures médicales ont été placées dans votre cantine du Skadovsk pour vous remercier d'avoir élucidé le mystère des stalkers disparus. + + + Une combinaison PS5-M a été placée dans votre cantine de Yanov, en remerciement de l'aide apportée au Devoir. + + + Une combinaison PSZ-9d a été placée dans votre cantine de Yanov, en remerciement de l'aide apportée au Devoir. + + + Une combinaison "Vent de Liberté" a été placée dans votre cantine de Yanov, en remerciement de l'aide apportée à la Liberté. + + + Une combinaison "Garde de la Liberté" a été placée dans votre cantine de Yanov, en remerciement de l'aide apportée à la Liberté. + + + Vous n'avez pas réussi à atteindre les hélicoptères à temps et l'équipe d'évacuation est partie sans vous. + + + Prêt à quitter la Zone ? C'est un voyage à sens unique... + + + Fin de la partie. + + + Appuyez sur ($$ACTION_JUMP$$) pour revenir au menu principal. + + + Pause + + + Partie sauvegardée + + + Un artefact a été placé dans votre cantine du Skadovsk en remerciement pour votre aide dans l'affaire de la Pie. + + + Vous devez attendre que le dock devienne étanche. + + + Accès autorisé + + + Prendre l'ascenseur pour monter ($$ACTION_USE$$) + + + Prendre l'ascenseur pour descendre ($$ACTION_USE$$) + + + Niveau d'émissions psi critique. Quittez immédiatement la zone dangereuse ! + + + Niveaux de radiations élevés. Vous ne pouvez pas aller plus loin sans protection. + + + Examiner l'hélicoptère ($$ACTION_USE$$) + + + Fouiller la planque ($$ACTION_USE$$) + + + h + + + Message + + + Porte bloquée + + + Fermer la porte ($$ACTION_USE$$) + + + Porte verrouillée. Le camp est en alerte. + + + Porte verrouillée. Vous devez ranger votre arme. + + + Porte verrouillée + + + La porte n'est pas sous tension. + + + Ouvrir la porte ($$ACTION_USE$$) + + + Portail fermé + + + Utiliser la carte d'accès ($$ACTION_USE$$) + + + Carte d'accès nécessaire + + + Cette porte ne peut pas être ouverte de ce côté. + + + - + + + Ce conteneur est verrouillé. Deux clefs sont nécessaires pour l'ouvrir. + + + Utiliser la clef ($$ACTION_USE$$) + + + Utiliser les clefs ($$ACTION_USE$$) + + + Ce conteneur est verrouillé. Vous avez besoin de la deuxième clef pour l'ouvrir. + + + Ouvrir le conteneur ($$ACTION_USE$$) + + + Le mécanisme de la porte est bloqué de l'intérieur. + + + Placer la bombonne de gaz ($$ACTION_USE$$) + + + Attention ! Danger chimique ! + + + Tourner la valve ($$ACTION_USE$$) + + + Fouiller le véhicule ($$ACTION_USE$$) + + + Vous pouvez obtenir des fournitures médicales et des munitions auprès des lieutenants Rogovets et Kirillov. + + + Une émission s'est produite récemment dans la Zone. + + + Vous avez obtenu le succès Affecté par la Zone. + + + Des munitions ont été placées dans votre cantine de Yanov, pour vous remercier d'avoir éliminé de dangereux mutants. + + + Coordonnées d'une planque déjà découverte récupérées + + + Planque trouvée + + + Coordonnées de la planque reçues + + + Appuyez sur une touche pour jouer + + diff --git a/gamedata/configs/text/ger/st_achievement.xml b/gamedata/configs/text/ger/st_achievement.xml new file mode 100644 index 0000000..86d9970 --- /dev/null +++ b/gamedata/configs/text/ger/st_achievement.xml @@ -0,0 +1,372 @@ + + + + Ihr Gegner muss sich ganz schön gedemütigt fühlen, nachdem er von Ihnen zehn Mal hintereinander getötet wurde und er Sie in dieser Zeit nicht ein einziges Mal erledigen konnte! Nein, Sie sind nicht grausam - Sie geben ihm einfach nur gute Gründe, um weiterhin fleißig zu üben. + + + Erntezeit + + + Zwei Fliegen mit einer Klappe geschlagen... Sie sind ja richtig gemeingefährlich! Mit Ihrem Gaußgewehr haben Sie beide förmlich aufgespießt. + + + Grillspieß + + + Ihre kühle und berechnende Vorgehensweise bringt den Tod über Ihre Gegner: Sie konnten mit zwei Schüssen aus Ihrer doppelläufigen Schrotflinte innerhalb von wenigen Sekunden zwei Ziele eliminieren. + + + Zwei Schüsse, zwei tödliche Treffer. + + + Sie wissen, was es heißt, ein Stalker zu sein. Aus diesem Grund sind Sie der erste Stalker, der den Status einer Legende innehat! + + + Aufsteiger + + + Mit einem Messer durch ein Exoskelett schneiden? Scheinbar macht es Ihnen Spaß, sich hohe Ziele zu setzen und diese auch zu erreichen. + + + Dosenöffner + + + Sie dachten schon, sie haben Sie, aber dann haben Sie ihnen gezeigt, wer hier das Sagen hat: Sie haben fünf von ihnen getötet, obwohl der Gevatter Tod schon vor Ihrer eigenen Tür stand! + + + Nicht totzukriegen + + + Was für ein Gemetzel! Sie haben Ihren Gegner einfach mit einem Kugelhagel ausgelöscht - fünf an der Zahl innerhalb von fünf Sekunden! Unglaublich! + + + Blutrausch + + + Wow, Sie können wirklich gut zielen! Sie haben zwei Gegner mit einem Schuss direkt ins Auge getötet, ohne selbst dabei draufzugehen. + + + Auge um Auge + + + Sollen sie Ihnen ruhig hinter der Ecke auflauern - das wird Sie nicht aufhalten. Meine Güte, Sie treffen ein Ziel in Bewegung sogar, ohne zu zielen! + + + Blitzartige Reflexe + + + Lassen Sie ihn ruhig davonlaufen so schnell wie er kann - Ihre Kugeln erwischen ihn sowieso. + + + Weglaufen ist zwecklos + + + Sie haben zwanzig Gegner hintereinander abgeschlachtet, ohne selbst dabei draufzugehen! Wahnsinn, was für ein Blutbad! + + + Massaker + + + Sie mögen zu dritt gewesen sein und Scharfschützengewehre gehabt haben, aber Ihre Überlegenheit hat sie das Leben gekostet. + + + Treffsicherster Schütze + + + Eine brutale Vorgehensweise überlassen Sie lieber dem Gegner und zeigen ihm stattdessen, wie man gewinnt, ohne eine einzige Patrone abzufeuern. + + + Friedensbote + + + Selbst große Entfernungen sind für einen richtigen Scharfschützen kein Problem! Sie treffen sogar aus einer Distanz von über 120 Metern mitten ins Schwarze. + + + Tödliche Genauigkeit + + + Ihr Gegner konnte Sie ausschalten, aber Sie haben ihm ein kleines Abschiedsgeschenk in Form einer Handgranate zurückgelassen! + + + Abschiedsgeschenk + + + Ihre Gegner haben Ihre Freunde getötet und wurden deshalb zurecht das Opfer Ihrer gnadenlosen Vergeltungsmaßnahmen. Drei gegnerische Leichen für drei tote Freunde - das ist ausgleichende Gerechtigkeit. + + + Rächer + + + Sie sind der Schutzengel Ihres Kameraden. Zwei Mal konnten Sie ihn vor einem Angriff beschützen, als er das Artefakt getragen hat. + + + Schutzengel + + + Sie haben sich Ihren Stolz und den Ihres Teams bewahrt, indem Sie einige Punkte erzielen konnten. + + + Gerettete Ehre + + + Wissen Sie wirklich, wo das nächste Artefakt auftaucht? In der Tat, Sie konnten es sich nur wenige Sekunden nach seinem Erscheinen schnappen! + + + Intuition eines Stalkers + + + Sie hatten wirklich Glück - mit der letzten Patrone aus Ihrem Magazin konnten Sie den Gegner erledigen! Lieber er als Sie, das ist klar! + + + Glückspilz + + + Sie haben acht Gegner hintereinander getötet und den Feind dadurch gereizt - mal sehen, wie er darauf reagiert. + + + Schwarze Liste + + + Sie sind sehr wachsam und vorsichtig. Aus diesem Grund ist es niemandem gelungen, Sie zu töten. Kein einziges Mal sind Sie während des Spiels gestorben und haben über fünfzehn Punkte erzielt. + + + Paranoia + + + Sie erledigen Ihre Arbeit unauffällig, indem Sie immer einen Schalldämpfer verwenden. Warum soll man den Gegner wissen lassen, aus welcher Richtung der Tod kommt? + + + Leiser Tod + + + Sie haben Ihren Gegner vernichtend geschlagen, weil Sie gewonnen haben und dabei doppelt so viele Punkte erzielen konnten als der beste gegnerische Spieler. + + + Erdrückende Überlegenheit + + + Ihr waghalsiger Plan, das Artefakt sofort zu schnappen, ist aufgegangen und Sie konnten so innerhalb von drei Minuten nach Spielbeginn für Ihr Team punkten. + + + Blitzkrieg + + + Sie haben dem Gegner nicht den Hauch einer Chance gelassen und gewonnen, ohne dass er auch nur ein einziges Artefakt aufsammeln konnte. Das war eine Lehrstunde über richtiges Teamwork! + + + Zu-Null-Sieg! + + + Sie haben mit den meisten verursachten Kills, den meisten Artefakten und den wenigsten erlittenen Kills die höchste Punktzahl in allen Bereichen erzielt! Weiter so! + + + Allrounder + + + Ihr Kampfgeschick mit der Klinge ist beängstigend! Sie haben innerhalb von zwanzig Sekunden drei Gegner aufgeschlitzt und damit bewiesen, dass Sie selbst ohne Schusswaffen den Tod über Ihren Gegner bringen können. + + + Blutige Klinge + + + Auch wenn Ihr Gegner noch so stark gepanzert ist, hat er dennoch einen wunden Punkt - und den haben Sie gefunden, indem Sie ihm ins Auge geschossen haben. + + + Achillesferse + + + Die Kugeln des Gegners fliegen an Ihnen vorbei! Sie marschieren einfach durch den Kugelhagel hindurch, ohne einen Kratzer abzubekommen, und machen den Gegner fertig! + + + Kugelsicher + + + Sie sind bereit, die neuesten Entwicklungen in der Zone zu erforschen. Sie haben unser Verständnis der Zone vorangebracht, indem Sie neue Anomalieformationen entdeckt haben, die die Wissenschaft bis dahin nicht kannte. + + + Pionier + + + Die Stalker halten jetzt mehr von Ihnen.\nIn Wertschätzung Ihrer Mühen hinterlegen sie mittlerweile regelmäßig Munition in Ihrer persönlichen Kiste in der Janow-Station für Sie. + + + Sie scheuen sich nicht vor gefährlichen Mutanten - Sie machen Jagd auf sie und Sie sind gut darin! Stalker haben höchsten Respekt vor guten Jägern. + + + Mutantenjäger + + + Die Stalker halten jetzt mehr von Ihnen.\nAls Zeichen ihres Respekts hinterlegen sie mittlerweile regelmäßig medizinische Vorräte in Ihrer persönlichen Kiste in der Skadowsk-Station für Sie. + + + Sie haben das Geheimnis um das Verschwinden der Stalker bei der Skadowsk aufgedeckt: Überraschenderweise steckten nicht Mutanten hinter der Sache, sondern ein viel gefährlicherer Feind - Menschen. Durch Ihre erfolgreiche Suche nach der Wahrheit haben Sie sich den Respekt der Stalker verdient. + + + Detektiv + + + Die Stalker halten jetzt mehr von Ihnen.\nSie haben den Händler Uhu gebeten, Ihnen einen Rabatt zu gewähren.\nBeard macht Ihnen besonders gute Angebote für Artefakte. + + + Sie haben den Banditen und ihrem Anführer Sultan gezeigt, wer hier das Sagen hat, und damit Berühmtheit unter den Stalkern erlangt. Daher sind Sie auf der Skadowsk stets ein willkommener Gast. + + + Einer von uns + + + Sie haben sich den Respekt der Banditen verdient.\Aus Furcht davor, dass er Ihr nächstes Opfer werden könnte, gewährt Ihnen der Händler Uhu Rabatt.\nWie abgemacht erhalten Sie ab jetzt Ihren Anteil an Beards Gewinn. + + + Sie haben Sultan geholfen, die Stalker zu überlisten, und die Kontrolle über Beards Geschäft übernommen. Sie werden jetzt in Zaton gefürchtet und respektiert. + + + Boss + + + Die Stalker haben entschieden, Magpies Beute, die er durch Lug und Trug angehäuft hatte, jemandem zu geben, der sie wirklich verdient. Deswegen haben sie die Sachen in Ihrer persönlichen Kiste in der Janow-Station deponiert. + + + Sie haben den Mistkerl Magpie zur Rechenschaft gezogen. Er hatte viele Stalker betrogen und übers Ohr gehauen, aber jetzt ist seine Zeit reif für eine gerechte Bestrafung. + + + Verfechter der Gerechtigkeit + + + Die Stalker halten jetzt mehr von Ihnen.\nBanditen werden versuchen, Sie zur Strecke zu bringen, wenn Sie sich in die Zone wagen sollten. + + + Sie haben jede Art von Artefakt gefunden, die den Zonenforschern bekannt ist. Dadurch haben Sie den Respekt der Stalker und die besondere Aufmerksamkeit der Banditen gewonnen. + + + Artefaktjäger + + + Kardan kann eine einzigartige Modifikation durchführen, indem er hydraulische Servomotorenverstärker einbaut. Damit können Sie sich schneller bewegen, wenn Sie ein Exoskelett tragen. + + + Jetzt hat Kardan alle Werkzeuge, die er jemals brauchen wird. Dadurch ist er in der Lage, neue und komplexere Verbesserungen durchzuführen. + + + Experte für Waffensysteme + + + Azot kann eine einzigartige Modifikation am taktischen Helm durchführen: ein Infrarotscanner, der Menschen in der Nähe aufspürt. + + + Jetzt hat Azot alle Werkzeuge, von denen er je geträumt hat. Dadurch ist er in der Lage, High-Tech-Modifikationen durchzuführen. + + + High-Tech-Experte + + + Dank Ihrer Erfahrung finden Sie häufiger seltene Artefakte. + + + In der Zone existiert so gut wie kein begehbares Gebiet, in dem Sie nicht bereits waren. Sie haben schon nahezu alle Anomalien mindestens einmal zu Gesicht bekommen. + + + Erfahrener Stalker + + + Ihre Führungsqualitäten erhöhen die Überlebenschancen Ihres Teams. + + + Sie hatten einen Teamauftrag zu erfüllen - also haben Sie einfach einen großartigen Trupp zusammengestellt und bewiesen, dass Sie der geborene Anführer sind. + + + Anführer + + + Freiheitler, Wächter, freie Stalker und sogar Banditen haben Ihr Verhandlungsgeschick zu schätzen gelernt und haben nun größten Respekt vor Ihnen. + + + Sie wissen, wie man Probleme friedlich löst. Warum Gewalt anwenden, wenn ein Streit auch durch Worte geschlichtet werden kann? Dennoch sollten Sie sich vor Leuten vorsehen, die zuerst schießen und danach fragen. + + + Diplomat + + + Sie haben schon so lange mit den Wissenschaftlern zusammengearbeitet, dass Sie sich eigentlich als wissenschaftlichen Mitarbeiter bezeichnen könnten. Jeder im Bunker der Wissenschaftler erachtet Sie als einen Kollegen. + + + Wissenschaftlicher Mitarbeiter + + + Ihr Verhältnis zu den Wächtern hat sich gebessert. Wenn Sie in Schwierigkeiten geraten, werden die Kämpfer der Wächter versuchen, Ihnen zu helfen.\nAzot, ein Techniker, der den Wächtern nahe steht, gewährt Ihnen Rabatt.\nIhr Verhältnis zu den Freiheitlern hat sich verschlechtert.\nDer Hawaiianer, der Händler, der der Freiheit nahe steht, verlangt jetzt mehr von Ihnen für seine Waren. + + + Sie haben den Wächtern große Hilfe geleistet und sich damit den Respekt von ihnen und ihren Freunden verdient. Vergessen Sie allerdings nicht, dass nicht jeder in der Zone ein Anhänger der Wächter ist. + + + Freund der Wächter + + + Ihr Verhältnis zu den Freiheitlern hat sich gebessert. Wenn Sie in Schwierigkeiten geraten, werden die Kämpfer der Freiheit versuchen, Ihnen zu helfen.\nDer Hawaiianer, ein Techniker, der der Freiheit nahe steht, gewährt Ihnen Rabatt.\nIhr Verhältnis zu den Wächtern hat sich verschlechtert.\nAzot, der Händler, der den Wächtern nahe steht, verlangt jetzt mehr von Ihnen für seine Waren. + + + Sie haben den Freiheitlern große Hilfe geleistet und sich damit den Respekt von ihnen und ihren Freunden verdient. Vergessen Sie allerdings nicht, dass nicht jeder in der Zone ein Anhänger der Freiheit ist. + + + Freund der Freiheit + + + Die Stalker in der Janow-Station schätzen ein Gleichgewicht zwischen den Wächtern und der Freiheit. Aus diesem Grund gewähren Ihnen sowohl der Techniker als auch der Händler von nun an einen Rabatt. + + + Sie haben sich keiner der Fraktionen angeschlossen und immer wie ein freier Stalker gehandelt. Daher haben Sie sich zwar keine Feinde gemacht, aber auch keine neuen Freunde gewonnen. + + + Mann des Gleichgewichts + + + Händler bieten Ihnen seltenere und teurere Waren an. + + + Obwohl Sie das Gefühl kennen, wenn das Geld knapp wird, geht es Ihnen im Moment recht gut. Man könnte sogar sagen, dass Sie zeitweise reich sind, und Kunden wie Sie werden von Händlern besonders geschätzt. + + + Reicher Kunde + + + Nachdem Strelok die Nachrichten bekommen hat, hat er nun eine neue Lebensaufgabe gefunden und will diese um jeden Preis erfüllen. + + + Ihre Weitsicht hat sich bewährt: Nachdem Sie die Nachrichten im Versteck von Streloks Gruppe gefunden haben, haben Sie sie behalten, bis Sie sie dem rechtmäßigen Besitzer geben konnten. + + + Bewahrer von Geheimnissen + + + Dank den anabiotischen Pillen konnten Sie eine Emission überleben, ohne sich in Sicherheit bringen zu müssen. Die psychischen Auswirkungen dieser extremen Erfahrung sind jedoch noch nicht ganz ersichtlich - Sie spüren eine seltsame Stille in Ihrem Geist. + + + Gezeichnet von der Zone + + + Der Händler Uhu gewährt Ihnen ab jetzt einen Rabatt, weil Sie sein bester Informant und Partner sind. + + + Wenn Sie eine interessante Information aufschnappen, finden Sie immer den richtigen Käufer dafür. Natürlich haben Sie stets Ihren eigenen Gewinn im Sinn, wenn Sie die Informationen an die Leute verkaufen, die sie benötigen. + + + Informationsmakler + + + Ihr Verhältnis zu den Stalkern hat sich gebessert. Wenn Sie in Schwierigkeiten geraten, werden die Stalker versuchen, Ihnen zu helfen.\nDie Ärzte der Stalker haben sich entschieden, Ihnen medizinische Produkte zum Einkaufspreis zu verkaufen. + + + Sie haben Stalkern in Not immer geholfen. Auch wenn die inoffizielle Stalkerbruderschaft nicht sehr eng miteinander verbunden ist, werden sie Ihnen bei Kämpfen und auch danach zur Seite stehen. + + + Freund der Stalker + + + Unterschiedliche neue Erkenntnisse haben es den Professoren Hermann und Oserski ermöglicht, in der Zone ein neues experimentelles Präparat herzustellen, ein Anabiotikum. + + + Wenn Sie bei voller Gesundheit sind, haben Sie selbst ohne medizinische Mittel eine reelle Überlebenschance bei Emissionen. + + + Da Sie stets eine große Hilfe sind, bietet Professor Hermann Ihnen medizinische Produkte und Ausrüstung, die ausschließlich für das Bunkerpersonal vorgesehen sind, zum Einkaufspreis an.\nNowikow hat Sie so sehr ins Herz geschlossen, dass er Ihnen bei Modifikationen lediglich das Material in Rechnung stellt. + + diff --git a/gamedata/configs/text/ger/st_characters.xml b/gamedata/configs/text/ger/st_characters.xml new file mode 100644 index 0000000..81564d5 --- /dev/null +++ b/gamedata/configs/text/ger/st_characters.xml @@ -0,0 +1,336 @@ + + + + Jack + + + Wano + + + Oberstlt. Shulga + + + Loki + + + Hawaiianer + + + Knochenmann + + + Senka + + + Zulu + + + Onkel Jar + + + Topol + + + Mace + + + Spirit + + + Snake + + + Geier + + + Nitro + + + Trapper + + + Flint + + + General Taschenkow + + + Lt. Buntschuk + + + Oberst Kosmach + + + Lt. Sachartschuk + + + Black + + + Duplett + + + Chirurg + + + Skull + + + Stake + + + Koschej + + + Corpse + + + Strider + + + Armor + + + Sichel + + + Walross + + + Softie + + + Foma + + + Professor Oserski + + + Nowikow + + + Professor Hermann + + + Fw. Schlijatschin + + + Lt. Sergejew + + + Fw. Waljuschok + + + Fw. Ostrowski + + + Hptm. Klimenko + + + Lt. Sokolow + + + Hptm. Tarasow + + + Oberst Kowalski + + + Lt. Podoroschni + + + Lt. Skelja + + + Fw. Merkulow + + + Lt. Stezenko + + + Fw. Jarmoschuk + + + Lt. Rogowez + + + Lt. Smirnoff + + + Strelok + + + Bartschuk + + + Major Degtarew + + + Zwerg + + + Schischak + + + Grizzly + + + Torba + + + Mitaj + + + Lt. Gawrilenko + + + Kremen + + + Gajduk + + + Gari + + + Lt. Kirilloff + + + Serbin + + + Schakal + + + Nimble + + + Krabbe + + + Garmata + + + Gonta + + + Dampfhammer + + + Crest + + + Uhu + + + Grouse + + + Danila + + + Sultan + + + Morgan + + + Haxe + + + Spartacus + + + Beard + + + Kardan + + + Goblin + + + Eiche + + + Pianist + + + Mäher + + + Kirzach + + + Tank + + + Fratze + + + Hatchet + + + Tuna + + + Noah + + + Pilot + + + Tremor + + + Lt. Drapej + + + Uffz. Umerow + + + Snag + + + Hook + + + Rippe + + + Mirone + + + Barge + + + Petrucha + + + Awl + + + Major Tschepurnij + + + Uffz. Walentir + + + OFw. Morosow + + + OLt. Smoljak + + + Splitter + + + Feldwebel Gasda + + + Hauptmann Furtes + + + OFw. Schwejko + + diff --git a/gamedata/configs/text/ger/st_dialog_manager.xml b/gamedata/configs/text/ger/st_dialog_manager.xml new file mode 100644 index 0000000..1891e1a --- /dev/null +++ b/gamedata/configs/text/ger/st_dialog_manager.xml @@ -0,0 +1,993 @@ + + + + Es gibt da ein Gebiet in Zaton, wo unter der Wasseroberfläche Hitzeanomalien entstanden sind. Dieser Ort wird "Boiler" genannt, weil dort Dampf und anderes Zeug aus dem Boden austritt. Falls du denkst "ist ja nur Dampf", ändere deine Meinung lieber. Erfahrene Stalker sagen, dass diese Art von Dampfanomalie mindestens genauso gefährlich ist wie eine normale Hitzeanomalie, wenn nicht sogar gefährlicher. Die Temperatur mag etwas niedriger sein, aber du bist der Hitze länger ausgesetzt. Und was Artefakte betrifft: Man findet dort normale Feuerartefakte. + + + Angeblich gibt es im Steinbruch ein nettes Plätzchen mit vielen Artefakten, aber Anomalien wohl auch nicht zu knapp. Unten sind so viele Blasen von Gasanomalien, dass einem selbst mit einer Gasmaske die Augen wehtun. + + + Der Aschehügel befindet sich am alten Friedhof in der Nähe von Kopatschi. Dort sind viele Hitzeanomalien und immer wieder Zombies. Die meisten versuchen, diesen Ort zu meiden, aber man findet dort Artefakte. + + + Man sagt, dass auf dem Parkplatz Artefakte gefunden wurden. Da sind immer noch Fahrzeuge aus der Zeit der ersten Tschernobyl-Katastrophe - diese Babys bereiten dem Geigerzähler Magenschmerzen. Außerdem sind dort überall Elektroanomalien. + + + Im Verdorbenen Wäldchen, wo alle Bäume von Säure verunstaltet wurden. Wer an diesem Ort war, sagt, dass dort überall Gasanomalien sind. Da soll so viel Gas in der Luft sein, dass man seine Hand vor Augen nicht sieht. Aber mit genug Erfahrung findet man dort die Artefakte, die man sucht. + + + Wenn du auf der Suche nach Artefakten bist, konzentriere dich auf Säureartefakte. Am ehesten wirst du im Betonbad fündig. Viel Konkurrenz wirst du dort nicht haben, weil dieser Ort niemandem geheuer ist - die Jupiter-Anlage ist gleich in der Nähe. + + + Nicht weit von der Jupiter-Anlage entfernt ist ein Teil der Straße eingebrochen. Dieser Ort wird "Asphalt" genannt, weil dort der Straßenbelag geschmolzen ist. In dem Spalt sind viele Anomalien - Hitzeanomalien und Gravitationsanomalien gemischt. Und da es sich um zwei Arten von Anomalien handelt, müssen auch die Artefakte anders sein. + + + Jenseits der Zementfabrik ist ein kleiner Hafen namens Fen. Der ganze Hafen hat sich in ein fürchterlich stinkendes Sumpfgebiet verwandelt und das Wasser ist voller Gasanomalien. Wasser kann man es eigentlich gar nicht mehr nennen, eher Säure. Man hat dort Artefakte gefunden, aber es wimmelt an diesem Ort auch von Monstern. + + + Sieh dich mal in der alten Zementfabrik um. Dort sind zwar viele Anomalien, aber es lohnt sich. Natürlich gibt es Orte, wo man einfacher an Artefakte rankommt, aber dementsprechend groß ist dort der Andrang. In der Zementfabrik musst du dich lediglich mit Hamstern herumschlagen, und das auch nur, wenn du ins Untergeschoss gehst. + + + Du solltest dich in der Nähe der Pinieneiche umsehen. Das ist dieses Ding, das zwischen den Hügeln über den Gasanomalien wächst. So heißt dieser sonderbare Baum, seit irgendjemand herausgefunden hat, dass es sich bei der Rinde sowohl um Pinien- als auch um Eichenrinde handelt. Wenn du dich dort nach Artefakten umsehen willst, brauchst du einen guten chemischen Schutz - und jede Menge Munition, weil diese Hügel das Revier von vielen Hunderudeln sind. + + + Manchmal muss man gar nicht in Anomalien herumsuchen, um ein Artefakt zu finden. Ich habe gehört, dass jemand ein Artefakt im offenen Gelände herumliegen gesehen hat. Der Detektor dieses Stalkers hat verrückt gespielt, also hat er beschlossen, die Batterien auszuwechseln. Anschließend hat sich der Detektor zu Wort gemeldet und direkt vor der Nase des Stalkers lag ein Artefakt. Was für ein Glückspilz, oder? Aber so ist die Zone: Manchmal bestraft sie dich und manchmal belohnt sie dich. + + + Erfahrene Stalker haben mir gesagt, dass sich Artefakte manchmal aus Anomalien hinausbewegen. Dein Detektor piept, du schaltest ihn aus, aber dann ist da nichts. Wenn das passiert, hast du es mit einem "Nomadenartefakt" zu tun. Aber es hat keinen Zweck, diesem Artefakt hinterher zu jagen, denn allein die Zone entscheidet, wen sie damit belohnen will. + + + In Pripyat hat sich bisher niemand nach Artefakten umgesehen. Jeder, den ich kenne, ist hier erst seit kurzer Zeit, und deswegen sind sie alle vorsichtig. + + + Ich weiß nicht, ob irgendjemand die guten Stellen kennt. Pripyat ist bisher kaum erforscht. + + + Ich würde mich mal in den unterirdischen Tunneln umsehen. Ich habe gehört, unter der Stadt sollen tonnenweise Artefakte zu finden sein. + + + Über diese Gegend weiß man nicht viel, abgesehen von Garis Geschichten. Er sagt, dass dort irgendwo eine riesige Weinrebe aus einer Säureanomalie wächst. Sie soll so groß sein wie ein zehnstöckiges Gebäude. Vielleicht nimmt er uns nur auf den Arm, aber ich würde trotzdem mal nach dieser Weinrebe Ausschau halten und dort nach Artefakten suchen - man weiß ja nie. + + + Am meisten Glück dürftest du im Säuresumpf haben. Dort sind überall Gravitationsanomalien, die jedoch leicht zu erkennen sind. Behalte die Wasseroberfläche im Auge, dann kann nichts schiefgehen. Ein größeres Problem sind allerdings Gasanomalien, weil man dort so gut wie keine Luft kriegt. Ist nicht witzig, wenn man von einer Gasanomalie erwischt wird, das kannst du mir glauben. Das Ding frisst sich schneller durch einen Schutzanzug als Schwefelsäure. + + + Im abgebrannten Bauernhof oben auf dem Hügel sind jede Menge Hitzeanomalien, in denen man Feuerartefakte finden kann. Sieh dich in den Häusern um: Dort, wo sich nach einer Emission die meisten Anomalien bilden, sind auch die meisten Artefakte. + + + In den Höhlen unter dem abgebrannten Bauernhof sind wahrscheinlich viele. Wenn du mit dem Detektor auf dem Hügel herumläufst, hört das Ding gar nicht mehr zum Piepen auf. Schwer ist es auch nicht, in die Höhlen zu gelangen. Du musst einfach oben in den Spalt springen. Da wieder rauszukommen, ist das Problem - bei all den Anomalien dort unten, hauptsächlich Vortex- und Säureanomalien. Einige Leute behaupten, in dem Spalt etwas gesehen zu haben, das einem Kometen ähnelt. Dort unten erwarten dich sicher viele Gefahren, aber wahrscheinlich ebenso viele Artefakte. + + + Hast du schon mal eine Rundkreis-Anomalie gesehen? Das ist eine riesige Sprungbrett-Anomalie mit zwei rotierenden Kometen - wirklich ein atemberaubender Anblick, den man jedoch aus einer gewissen Entfernung genießen sollte. Rundkreise sind verdammt heiß und voller Hitzeanomalien. Man findet dort viele Artefakte, aber sie werden von einem fiesen Feuerpoltergeist beschützt, der versuchen wird, dich zu rösten, wenn du dich ihm näherst. + + + Falls du an Gravitationsartefakten interessiert bist, suche danach in der Fanganomalie. Die Stelle ist leicht zu finden - Anomalien haben bei der Veränderung des Geländes ganze Arbeit geleistet und den halben Hügel abgetragen. Im Hügel sind einige Höhlen zum Vorschein gekommen, die sofort von Schnorks unter Beschlag genommen wurden. Glücklicherweise kommen sie nur selten raus. + + + In der Zone, Mann, in der Zone. Immer am Ball bleiben. + + + Eine gute Frage. Sag mir bescheid, wenn du die Antwort weißt! + + + Wo, warum, wieso, weshalb... Merke dir eins: Wenn du eine Goldgrube findest, behalte es für dich. + + + Wo findet man Artefakte? + + + Das habe ich dir schon gesagt. + + + Nein, ich weiß sonst nichts. + + + Das ist alles, was ich weiß. Frag jemand anderen. + + + Wie geht's, Bruder? + + + Grüß dich. + + + Hallo Stalker. + + + Hallo. + + + Was willst du? + + + Was? + + + Rede. + + + Guten Tag, Major, Sir! + + + Guten Tag! + + + Ich höre, Major, Sir. + + + Ja, hi. + + + Was? + + + Wen haben wir denn da. + + + Hey, Stalker. Was willst du? + + + Was geht? + + + Was geht, Mann? + + + Oh, hey, Kumpel. + + + Na, alles klar? + + + Hey! + + + Hilf mir, Bruder! + + + Hilf mir, Bruder, ich sterbe... + + + Ich brauche medizinische Hilfe! + + + Ein Medkit... schnell! + + + Hilf mir, Kumpel... Aaahh, diese Schmerzen! + + + Gib mir ein Medkit... ein Medkit, sofort... + + + Kumpel... argh... komm schon, hilf mir! + + + Hey, ich brauche ein Medkit... schnell... + + + Hilf mir, Stalker... ein Medkit, bitte... + + + Mich hat's erwischt... Hilfe! + + + Ich brauche ein Medkit! + + + Medkit! + + + Hast du schon von dem Baggerschiff östlich der Skadowsk gehört? Man sagt, dass dort nachts irgendetwas sonderbar leuchtet... Sogar für die Zone soll das ziemlich merkwürdig sein. Ich weiß nicht, ob es sich lohnen würde, der Sache auf den Grund zu gehen. Vielleicht findet man dort irgendetwas Wertvolles, aber macht es Sinn, dafür sein Leben zu riskieren? Das ist hier die Frage... + + + Hier ist nichts außer altes Zeug. Zum Beispiel dieser verrostende Konvoi auf der Preobraschenski-Brücke - alles kaputt, genauso wie die Brücke. Viele würden sich gerne mal in der Gegend umsehen, wären da nicht Schnorks und Anomalien... + + + Hast du mitbekommen, dass sich Sultan Beards Geschäft unter den Nagel reißen wollte? Die Skadowsk war wohl nicht groß genug für seinen gierigen Hintern, und deswegen wollte er ein noch größeres Stück vom Kuchen... Aber wir haben gesagt "Kannste knicken, Sultan!". Beard und der Rest unserer Jungs haben ihm ganz schön den Arsch aufgerissen. Seine Gangsterpläne kann er hier vergessen. + + + Wow, hast du das gehört? Sultan, dieser Dreckskerl, hat gegen Beard die Fäuste spielen lassen... Ich weiß nicht genau, was er gemacht hat, aber wie es scheint, schuldet Beard ihm Geld! Was ist nur aus der Zone geworden? Wenn das so weitergeht, ist die Skadowsk bald ein Banditenlager! + + + Hast du schon von der Oase gehört, Bruder? Man sagt, es sei verdammt schwer, sie zu finden. Und wenn man wirklich weiß, wo sie ist, sei es noch schwerer, dorthin zu gelangen. Angeblich ist dort ein See. Du gehst hinein, all deine Wehwehchen verschwinden und alle Verletzungen heilen sofort! Ist aber alles nur Spekulation. Hast du auch schon gemerkt, wie viele Anfängerstalker hier ins Zentrum der Zone gekommen sind? Einige suchen nach einer Fundgrube voller Artefakte, andere sind einfach nur neugierig, aber die meisten von ihnen hoffen, dass sie die Oase finden. Es heißt, dass sie irgendwo hier sein soll... + + + Gerüchte besagen, dass die Zone langsam verschwindet... Jemand hat die Oase gefunden und ihr Artefakt mitgenommen - das Herz der Oase. Jetzt vollzieht die Zone einen Dimensionssprung und kein Stalker wird sie jemals wieder verlassen können... War nur ein Witz, Mann. Aber jemand hat wirklich ein neues Artefakt gefunden. Die Wissenschaftler spielen gerade damit in ihrem Bunker herum. + + + Hast du schon mal von Topol gehört? Hat irgendein neues Drecksloch gefunden, das er mit seinen Jungs erkunden wollte, und natürlich sind sie frohen Mutes reingegangen. Aber das Lachen ist ihnen bald vergangen, als ein Controller aufgetaucht ist und sich an ihren Gehirnzellen zu schaffen gemacht hat. Die würden jetzt alle in der Klapsmühle stecken, wenn sie nicht diesen Stalker dabeigehabt hätten. Als Topol nach diesem Zombifizierungskram wieder klar im Kopf wurde, war der Stalker gerade dabei, den Controller einen Kopf kürzer zu machen. + + + Sagt dir das Dorf Kopatschi was? Damals nach der Katastrophe im Atomkraftwerk Tschernobyl war diese Gegend so verstrahlt, dass man beschlossen hat, das ganze Dorf mit Erde zuzuschütten. Anstelle von Häusern findest du dort nichts mehr außer radioaktiv verseuchten Hügeln. Angeblich war das schon vor dem Unglück ein ziemlich unheimlicher Ort. Ich krieg 'ne Gänsehaut, wenn ich nur daran denke, was man dort wohl heutzutage vorfindet. Keiner hat den Mumm, die Gegend unter die Lupe zu nehmen. Aber was, wenn sie alle falsch liegen? Nach allem, was wir wissen, könnten dort auch jede Menge Artefakte herumliegen! + + + Weißt du, es gibt nur zwei Stalker in der Janow-Station, die spüren, wenn eine Emission im Anmarsch ist - Knochenmann, unser Arzt, und Zulu, der früher bei den Wächtern war. Na ja, "früher" stimmt nicht ganz, er hat sich erst vor kurzem von ihnen getrennt. Als die Wächter zur Janow-Station gekommen sind, waren dort schon Kämpfer von den Freiheitlern. Wie es nicht anders zu erwarten war, ging es dann ganz schnell zur Sache. Beide Fraktionen mussten hohe Verluste hinnehmen und sogar einige freie Stalker wurden von Querschlägern erwischt. Dann sagte Zulu plötzlich, dass eine Emission bevorsteht. Die Wächter und Freiheitler hatten keine andere Wahl. Sie mussten einen Waffenstillstand vereinbaren und haben sich in der Station verbarrikadiert. Als die Emission vorbei war, ist Zulu aus der Wächterfraktion ausgetreten und hat sich in dem Turm nahe der Station niedergelassen. + + + In der Zone erzählt man sich allerlei verrückte Geschichten, aber du solltest nicht alles glauben, was du hörst. Es gibt hier zurzeit so viele Labertaschen... Aber eine Sache ist merkwürdig. Ein paar Stalker aus der Janow-Station haben eine UFO-Sichtung gemeldet. Sie meinten, das Ding hat sie an eine schwarze Untertasse erinnert, mit einem Durchmesser von ungefähr fünf Metern. Andere haben gesagt, dass es eher wie ein Flugzeug aus großer Entfernung ausgesehen hat, und sie sind sich ziemlich sicher, dass es eins war. Eines bleibt allerdings unumstritten: Einer der Augenzeugen ist ein ehemaliger Pilot und er meinte, er habe in seinem ganzen Leben so etwas noch nicht gesehen. + + + Die letzte Zeit gibt es nur schlechte Neuigkeiten. Die guten Männer sterben wie die Fliegen, aber wenn wir ihre Leichen finden, ist da kein Tropfen Blut mehr. Das müssen diese verdammten Blutsauger sein, wer sonst? Oh, wie gerne würde ich ihr Lager finden und diesen Biestern eine Ladung Blei in den Schädel jagen! Würde mich nicht wundern, wenn wir bald nur noch zu zweit aufs Klo gehen können. Aber ich zeige den anderen Stalkern doch nicht meinen Hintern! + + + Es gibt Neuigkeiten. Die Freiheitler haben den PDA des legendären Wächtergründers in die Finger bekommen. Und weißt du was? Es hat sich herausgestellt, dass er seine eigenen Leute verarscht hat, indem er ihnen erzählt hat, dass die Armeeführung sie in der Zone zurückgelassen hat. Er hat das alles erfunden, damit er seine eigene Fraktion ins Leben rufen kann! Aber so was kommt in der Zone irgendwann raus. Nur kurze Zeit später ist unser Held in einer Raumblase gelandet und das war's. So läuft es nun mal... Wenn man bedenkt, dass ich tatsächlich mal in Erwägung gezogen habe, den Wächtern beizutreten... Nein danke, sollen sie doch ihr selbstgerechtes Ding durchziehen, aber ohne mich. + + + Dieser neue Wächtertrupp, weißt du... Wie aus dem Nichts tauchen immer mehr von denen auf. Einige von ihren Kämpfern verlassen die Janow-Station und wenn sie zurückkommen, sind sie drei Mal so viele. Klonen die sich oder was? Aber bei den Wächtern würde mich das gar nicht wundern. Die kann man nur an ihrem Dienstgrad unterscheiden! + + + Dieser neue Freiheitlertrupp, weißt du... Wie aus dem Nichts tauchen immer mehr von denen auf. Einige von ihren Kämpfern verlassen die Janow-Station und wenn sie zurückkommen, sind sie drei Mal so viele. Aber ich habe da eine Theorie: Bei dem ganzen Gras, das sie rauchen, würde es mich nicht wundern, wenn sie Wurzeln schlagen und sich wie Pflanzen vermehren! + + + Kennst du Gonta und seine Jungs? Eine Zeit lang hat sie das Glück ganz schön verlassen, als Danila verschwunden ist und Krabbe verwundet wurde. Aber jetzt haben sie wieder eine Glückssträhne. Sie kommen gut mit den Wissenschaftlern klar und nehmen Messungen für sie vor. Nett, oder? Ein angenehmer Job und ein großer Schritt in Richtung offizielle Genehmigung für den Aufenthalt in der Zone. + + + Hast du schon von den Stalkern Mitaj, Torba und Grizzly gehört? Angeblich haben sie bei den Wissenschaftlern einen Job gekriegt und nehmen für sie Messungen vor. Wozu soll das gut sein? Wenn du mich fragst, führen diese blödstudierten Typen nichts Gutes im Schilde. Aber hey, wenigstens können es die Jungs jetzt ruhig angehen lassen. Vielleicht kriegen sie sogar eines Tages ihre offizielle Genehmigung für den Aufenthalt in der Zone. + + + Kennst du Spartacus und seine Leute? Nun, auf der Skadowsk bekommt man sie nicht mehr zu Gesicht - sie bewachen jetzt den Bunker der Wissenschaftler. Warum nicht - sie wissen, wie man mit Mutanten fertig wird und wie man sich Banditen vom Leib hält. Forschung ist eine gute Sache, aber man braucht dafür Ruhe. + + + Hast du die Söldner beim Umspannwerk herumhängen gesehen? Wenn ja, dann muss es aber schon länger her sein. Sie sind rüber nach Jupiter gegangen, um den Bunker der Wissenschaftler zu bewachen. Vorher waren da ein paar andere Söldner, aber ich habe gehört, dass ihnen irgendetwas zugestoßen ist. Kann ruhig so weitergehen, wenn du mich fragst! Einige Söldner verschwinden, andere nehmen ihren Platz ein und immer so weiter... Wenn das eine Zeit lang so geht, sind wir die Söldner in Zaton bald los. + + + Man erzählt sich, dass der Bunker der Wissenschaftler jetzt von tapferen Kriegern der Wächter beschützt wird... Ich frage mich, was für sie dabei herausspringt. Denken die wirklich, dass diese Wissenschaftler ihnen als Bezahlung ein brandneues Plasmagewehr geben werden, um damit auf Hamsterjagd zu gehen? Was für Trottel, ha ha. + + + Ich habe gehört, der Bunker der Wissenschaftler wird jetzt von kiffenden Freiheitlern bewacht. Haben die Wissenschaftler denn nicht Angst, dass ihre Proben in Rauch aufgehen? Also das meine ich durchaus wörtlich. Aber es hat ja auch sein Gutes. Wer versucht, den Bunker anzugreifen, muss erst durch eine dicke Nebelwand durch! Ha ha ha! + + + Warst du schon in Jupiter, bei der Funkelektronikanlage? Ist ganz schön unheimlich dort. Niemand weiß genau, was da drinnen eigentlich vor sich geht. Die Anomalien und Mutanten sind so wie überall, aber trotzdem ist mir nicht danach, dorthin zu gehen. Mein Bauchgefühl sagt mir, dass einen dort 'ne Menge Ärger erwartet. + + + Sieh an, bist du nicht der Kerl, der den Arzt der Skadowsk entlarvt hat? Das war wirklich gute Arbeit. Ich hätte sein nächster Patient sein können, weißt du... Wir alle dachten, dass es die Monster waren, aber scheinbar können manche Menschen genauso grausam sein. Fressen oder gefressen werden, so läuft das auf der Welt, habe ich nicht Recht? + + + Das sollte ich dich fragen. Nachdem du in diese Tunnel unter der Jupiter-Anlage gegangen bist, sind uns Gerüchte zu Ohren gekommen, dass du bis zum Zentrum der Zone vorgestoßen bist. Das hat für ganz schön viel Wirbel gesorgt. Dutzenden Leuten hat es in den Fingern gejuckt, in deine Fußstapfen zu treten. Aber Nitro konnte sie wieder zur Vernunft bringen. Er hat ihnen gesagt, dass die Tore zu den Tunneln verriegelt sind und er nichts tun kann, um sie wieder aufzukriegen. Natürlich waren da ein paar übermütige Kerle, die das Tor in die Luft sprengen wollten, aber sie versuchen immer noch herauszufinden, wo man dafür genug Dynamit herbekommen könnte. Außerdem haben sie keine Ahnung, wie sie da unten überhaupt Luft kriegen sollen. + + + Oh, weißt du schon das Neueste über Gari? Der Stalker, der für die Wissenschaftler gearbeitet hat. Er ist jetzt kein "Eindringling" mehr, sondern hat eine offizielle Genehmigung für die Zone bekommen, ob du's glaubst oder nicht! Du denkst bestimmt, er hat 'nen Haufen Beute gemacht und ist dann raus aus der Zone. Da liegst du falsch. Dieser Verrückte ist stattdessen nach Pripyat aufgebrochen. Jeder dachte, dass wir den Kerl wie die anderen nie mehr wiedersehen, aber weit gefehlt. Er hat es tatsächlich dorthin geschafft, aber diese Großtat hat den Stalkern nicht viel gebracht. Er ist ein paar Leuten vom Militär über den Weg gelaufen und jetzt versteht er sich gut mit diesen Uniformfritzen. Er hat ja seine Genehmigung, aber das Gebiet ist für gewöhnliche Stalker immer noch tabu. + + + Nun... Die Wächter und Freiheitler kämpfen wieder gegeneinander, dieses Mal geht es um irgendein wichtiges Versteck. Sie sagen, da sei genug Ausrüstung, um drei Infanteriedivisionen damit auszustatten. Ich weiß nicht, wer das Versteck ursprünglich genutzt hat, aber das Gefecht hatte es echt in sich. Die Sache hat auch die Stalker in der Janow-Station aufgestachelt, aber zum Glück haben sie sich rausgehalten, sonst würde jetzt wieder jeder gegen jeden kämpfen. Ich glaube, die Wächter sind am schlechtesten weggekommen, weil das Gebiet jetzt von Truppen der Freiheit patrouilliert wird. + + + Nun... Die Wächter und Freiheitler kämpfen wieder gegeneinander, dieses Mal geht es um irgendein wichtiges Versteck. Sie sagen, da sei genug Ausrüstung, um drei Infanteriedivisionen damit auszustatten. Ich weiß nicht, wer das Versteck ursprünglich genutzt hat, aber das Gefecht hatte es echt in sich. Die Sache hat auch die Stalker in der Janow-Station aufgestachelt, aber zum Glück haben sie sich rausgehalten, sonst würde jetzt wieder jeder gegen jeden kämpfen. Ich glaube, die Freiheitler sind am schlechtesten weggekommen, weil das Gebiet jetzt von Truppen der Wächter patrouilliert wird. + + + Neulich ist etwas passiert. Eine Gruppe von Stalkern hat die Jupiter-Tunnel erkundet und ist dabei auf etwas gestoßen - oder besser gesagt auf jemanden. Zuerst wurden ihnen ihre Waffen aus den Händen gerissen und dann sind alle möglichen Sachen direkt auf sie zugeflogen. Sie hatten keine Ahnung, was da vor sich geht, aber zwei Jungs sind dabei draufgegangen. + + + Ich habe gehört, dass in den Tunneln nördlich von Jupiter ekelhafte Mutanten gesehen wurden. Trapper hat einen Stalker losgeschickt, um der Sache auf den Grund zu gehen. Es hat sich dann herausgestellt, dass dort Burer ihren Unterschlupf hatten. Warum "hatten"? Weil eben jener Stalker alle Burer erledigt hat. Und zwar alleine... Du passt sogar auf seine Beschreibung, außer dass er ein bisschen größer ist und immer einen Granatwerfer dabei hat. + + + Die Stalker sind erledigt... Aus Fen kommen Monster und die Stalker in der Zementfabrik haben gesehen, wie sie einen unserer Jungs erwischt haben. Da waren mindestens ein Dutzend von ihnen, riesige Bestien - so groß, dass man seinen Augen nicht traut. Haben wie Blutsauger ausgesehen, aber doppelt so groß und viel schneller. Wir beten, dass Trapper herausfindet, wie man mit diesen Monstern fertig wird... + + + Hast du schon einmal von Sumpfblutsaugern gehört? Die in Fen? Tja, also jetzt sind sie weg. Trapper hat sich darum gekümmert... Allerdings nicht persönlich - er hat ein paar Stalker angeheuert. Man sagt, er hat einen Trupp aus ungefähr zehn Mann zusammengestellt, die diesen Sumpf Meter für Meter durchkämmt haben. Alles, was aus dem Sumpf hervorgekrochen kam, haben sie ins Jenseits befördert. Da hüpft kein einziger Frosch mehr herum. + + + Es ist noch nicht lange her, da hat das Gerücht die Runde gemacht, dass jemand eine Chimäre abgeknallt hat. Bisher haben die Mutanten reihenweise Stalker getötet, aber scheinbar werden wir endlich klüger und drehen den Spieß langsam um. Außerdem weiß ich aus anderen Quellen, dass der Typ ein erfahrener Jäger ist und mehr Monster getötet hat als wir beide Mücken in unserem ganzen Leben. + + + Weißt du, was für Leute die Freiheit heutzutage rekrutiert? Da war dieser Kerl namens Flint, der überall mit seinen Glanztaten und Trophäen angegeben hat... Tja, wie sich herausgestellt hat, ist er der größte Dreckskerl aller Zeiten. Hat seinen Kumpel in einer Anomalie sterben lassen, sich seine Beute unter den Nagel gerissen und ist dann abgehauen. Später ist noch mehr über seine Heldenzeit in Zaton herausgekommen, wo er quasi eine Gruppe von Jägern an eine Chimäre verfüttert hat. Ich hätte mehr von den Freiheitlern erwartet... Mann, da bin ich lieber in keiner Fraktion, als solche Freunde zu haben. + + + In Zaton haben sie diese Chimäre erledigt - Gontas Trupp und ein unbekannter Stalker. Moment, das warst doch du, oder? Kannst du mir das alles nochmal aus erster Hand erzählen? Danke übrigens - ein menschenfressender Mutant weniger, der uns Sorgen bereitet. + + + Ich weiß nicht, ob es erwähnenswert ist, aber wir haben hier diesen Kerl namens Noah. Das ist der verrückteste Vogel, dem du jemals begegnet bist. Er wohnt in einem hässlichen Kahn - hat ihn wohl innerhalb von einer Woche von ein paar Schwarzarbeitern zusammenbauen lassen, he he... Aber pass auf - er schießt, bevor es ihm überhaupt in den Sinn kommt, irgendwelche Fragen zu stellen. Ich sage dir, zur Hölle mit diesem Arschloch. + + + Kennst du Nimble, diesen Fuchs? Ein ausgewieftes Schlitzohr, aber schon ganz in Ordnung. Er verkauft ohne Zweifel die besten Waffen hier in der Gegend. Ich frage mich, wie er es schafft, sie hierher zu schmuggeln. Ich meine, wie schleppt man ein Vintar mit sich herum, ohne dass man es dir ansieht? Wo verstaut man dieses Ding? Das grenzt echt an Zauberei, Mann. + + + Es heißt, Sultan würde ganz schön tief in der Scheiße sitzen. Der Kerl wollte Beard fertigmachen und sich sein Geschäft unter den Nagel reißen, aber da hat er sich ein bisschen übernommen. Hat stattdessen ganz schön die Fresse poliert bekommen. Auf ihn kommen schwere Zeiten zu, weil er bei seinen Leuten ganz schön an Respekt eingebüßt hat. Ist nicht mehr so gut dabei wie vorher. + + + Beard frisst Sultan jetzt aus der Hand. Er quetscht sein Geschäft wie eine Zitrone aus. Ist 'ne gute Sache und Sultan hat sich dadurch ganz schön viel Respekt verschafft. Aber das Beste ist, dass wir jetzt auf der Skadowsk allen zeigen können, wo's langgeht. Das wird 'ne schöne Zeit. Du willst dich vor einer Emission in Sicherheit bringen? Kein Problem, du musst nur die Gebühr zusammenkratzen! + + + Hey Mann, hast du schon von der Oase gehört? Stell dir das mal vor, ein Ort, der sofort all deine Verletzungen und Krankheiten heilt. Das muss irgendein fauler Zauber sein... Allerdings habe ich da eine Theorie. Der ganze Wirbel um die Oase, aber niemand verliert ein Wort über den Wunschgönner so wie früher... Vielleicht ist die Oase ja ein erfüllter Wunsch? + + + Unter den Wissenschaftlern kursiert das Gerücht, dass ein Artefakt aus der Oase hierher gebracht wurde. Du wirst sehen: Sobald sie das Ding genau analysiert haben, werden sie ihre Forschungsergebnisse dazu benutzen, um ein Heilmittel gegen Krebs zu finden! Ja genau... + + + Jeden Tag der gleiche Scheiß... Jeder kramt alte Geschichten über das Zentrum der Zone hervor. Wie zum Beispiel die Story über die Oase - ein Ort, an dem man wieder zu Kräften kommt und alle Verletzungen geheilt werden. Das ist zwar vollkommener Quatsch, aber man hört ihn sich gerne an. Vor allem wenn darüber geredet wird, wo genau sie ist. Oh, ich wünschte, es gäbe wirklich so ein Fleckchen Erde... Wir könnten so vielen von unseren Jungs das Leben retten. + + + Mir ist zu Ohren gekommen, dass jemand die Oase gefunden hat. Ich hätte nie gedacht, dass sie wirklich existiert, aber die Sachlage ist eindeutig. Man hat dort sogar ein Artefakt gefunden und die Wissenschaftler untersuchen es gerade. Vielleicht können sie damit ein Gerät erfinden, das in Sekundenschnelle heilt... Unsere Jungs könnten so was sicher gut gebrauchen. + + + Kopatschi. In der Zone nichts Neues, für mich aber schon. Man stelle sich vor, ein ganzes Dorf mit seinen Häusern bis zu den Dächern mit Erde zugeschüttet... Damals, im Jahre 1986, ging von den Häusern so viel Strahlung aus, dass man sie einfach eingegraben hat. Ganz schön unheimlich... + + + Weißt du, wie es dazu gekommen ist, dass die Wächter und wir zusammen in der Janow-Station sind? Zulu ist das zu verdanken. Er war damals noch bei den Wächtern und konnte wie kein Zweiter feststellen, ob eine Emission im Anmarsch ist... Aber wir waren zuerst in der Janow-Station, zumindest nach den Stalkern. Wir hatten kaum Zeit, uns eine Zigarette anzuzünden, als diese Pseudosoldaten aufgetaucht sind und vor uns mit ihren Waffen herumgefuchtelt haben. Das letzte Mal habe ich so ein Gemetzel vor mehr als einem Jahr auf der Müllhalde gesehen. Auf beiden Seiten gab es zahlreiche Opfer - darunter unser Emissionsexperte, möge er in Frieden ruhen. Aber dann hat Zulu plötzlich gerufen "Eine Emission steht kurz bevor! Bringt euch in Sicherheit!". Was hätten wir denn tun sollen? Sie einfach rausschmeißen und sterben lassen? Wächter oder nicht, sie sind immer noch Menschen. Und so leben wir jetzt: Wir zanken uns, wenn es ruhig ist, aber wenn eine Emission über uns hinwegfegt, sitzen wir dicht gedrängt und angespannt zusammen. Zulu hat irgendwann die Wächter verlassen und lebt jetzt wie ein Einsiedler in der Nähe der Janow-Station. + + + Das ist zwar nichts Neues und auch kein Geheimnis, aber Kardan - der Techniker - ist gerade drauf und dran, sich tot zu saufen. Als er auf die Skadowsk gekommen ist, soll er nur zu bestimmten Anlässen oder gegen die Strahlung etwas getrunken haben. Erst später hat er wirklich angefangen, sich regelrecht volllaufen zu lassen. Er ist nicht über den Tod seiner zwei Kameraden hinweggekommen. Sie müssen ziemlich eng befreundet gewesen sein... + + + Hier was Lustiges. Da hat doch einer tatsächlich behauptet, dass ein UFO über die Janow-Station geflogen ist. Manch einem wächst die Zone echt über den Kopf, oder? Poltergeister und Controller reichen ihnen nicht, nein, da müssen die guten alten UFO-Storys herhalten. Na ja, zum Glück haben wir hier keine Psychos, die dem Wodka mit Exorzismus böse Geister austreiben wollen. Das würde dann so klingen: "Oh Herr, befreie dieses Getränk von den bösen Geistern, auf dass es rein sei und den Menschen keinen Kater beschert!" Ha ha... + + + Sagt dir das Dorf Kopatschi was? Damals nach der Katastrophe im Atomkraftwerk Tschernobyl war diese Gegend so verstrahlt, dass man beschlossen hat, das ganze Dorf mit Erde zuzuschütten. Anstelle von Häusern findest du dort nichts mehr außer radioaktiv verseuchten Hügeln. Angeblich war das schon vor dem Unglück ein ziemlich unheimlicher Ort. Ich krieg 'ne Gänsehaut, wenn ich nur daran denke, was man dort wohl heutzutage vorfindet. Keiner hat den Mumm, die Gegend unter die Lupe zu nehmen. + + + Zwar nichts Neues, aber vielleicht hast du es noch nicht mitbekommen. Wir haben uns hier nicht zu den Freiheitlern gesellt, weil wir sie so gern mögen. Die Umstände haben einfach dazu geführt. Als wir hierher gekommen sind, sind die Freiheitler aus heiterem Himmel über uns hergefallen... Auf beiden Seiten hat es hohe Verluste gegeben, obwohl wir langsam aber sicher gegen diese Anarchisten die Oberhand gewonnen haben... Mitten im Kampfgeschehen hat dann Zulu plötzlich irgendwie gespürt, dass eine Emission im Anmarsch ist. Er liegt niemals daneben, musst du wissen... Wir hatten keine andere Wahl und mussten die Kampfhandlungen einstellen. Ich verstehe nicht, warum Zulu den Wächtern nach diesem Vorfall den Rücken gekehrt hat... + + + Unsere Späher haben neulich gemeldet, dass sie ein unidentifizierbares Flugobjekt über der Janow-Station gesehen haben - mit anderen Worten: ein UFO. Bevor du anfängst, irgendwelche dummen Fragen zu stellen, sei dir gesagt, dass es sich dabei nicht zwingend um eine fliegende Untertasse mit Marsmännchen handeln muss. Es könnte ein herumfliegender Karton oder ein Wetterballon gewesen sein, solange die Augenzeugen nicht in der Lage sind, dieses Flugobjekt genau einzuordnen. Verstanden? + + + Du warst derjenige, der diesen PDA zu Loki gebracht hat, stimmt's? Mann, das ist echt der Knaller. Der legendäre Gründer der Wächter, General Taschenkow, hat seine eigenen Leute wie Idioten hinters Licht geführt. Hat das Funkgerät kaputt gemacht, damit sie nicht von der Außenwelt erreicht werden können, und dann seine eigene Armee aus Schwachköpfen gebildet. Und wozu? Um dann in klassischer Volldeppenmanier in einer verdammten Raumblase zu landen! Das ist so blöd, dass es einfach stimmen muss, Mann! + + + Hast du schon den neuen Trupp gesehen, den diese Pseudosoldaten rekrutiert haben? Das kann keine Verstärkung aus ihrem Lager sein - im Gegensatz zu den anderen haben die Neuen ihren Menschenverstand noch nicht ganz gegen die Fraktionsideologie eingetauscht. Für gewöhnliche Stalker sind sie zu gut ausgebildet. Wer weiß, vielleicht kommen sie ja vom Monolith? Ja, das klingt verrückt! + + + Hast du schon unsere neuen Kämpfer gesehen? Ach, du warst es, der sie hierher gebracht hat, stimmt's? Echt genial, Mann. Die Jungs sind ziemlich cool drauf, aber ein bisschen angespannt... Ist OK - wenn sie erst einmal ein paar Monate bei uns waren, sind sie sicher lockerer drauf. Die gewöhnen sich früh genug an unsere Lebensweise und werden dann so wie wir. + + + Wir haben ein paar coole neue Rekruten: ein Trupp aus ehemaligen Monolithern. Und sind auch keine Anfänger, sondern gut ausgebildete Kämpfer. Natürlich sind sie im Kopf noch nicht ganz normal, nach all der Zeit beim Monolith. Aber das macht nichts, wir haben für solche Fälle einen besonderen ideologischen Einführungskurs und noch ein paar andere Dinge. + + + Es heißt, die Freiheit hätte ein paar ehemalige Monolith-Kämpfer rekrutiert. Schwer zu glauben, aber sie haben tatsächlich einen neuen Trupp, und der kommt definitiv nicht von außerhalb der Zone. Scheinbar sind die Freiheitler ganz schön verzweifelt... oder sie haben sich mit den ganzen Drogen ihre Gehirnzellen ruiniert. Wen nehmen sie als Nächstes - eine Zombiebrigade? Ein Bataillon aus Burern? + + + In dieser Gegend wird bald wieder Recht und Ordnung herrschen. Die Wächter haben die Kontrolle über örtliche Schlüsselpositionen übernommen. Wir haben in der Janow-Station Fuß gefasst und bewachen mit einem Trupp den Bunker der Wissenschaftler rund um die Uhr. Es wird höchste Zeit, dass die Freiheit ihre Sachen zusammenpackt und sich aus dem Staub macht - Anarchisten sind hier nicht erwünscht. + + + Die neueste Attraktion - ein nüchterner Kardan. Kannst du glauben, dass er trocken ist? Die Leute auf der Skadowsk haben ihn gefragt, ob er sich die Nummer von den anonymen Alkoholikern besorgt hat, woraufhin er geantwortet hat: "Die einzige Nummer, die ich gebraucht habe, war die Zweiundsechzig." + + + Du warst derjenige, der den Jungs dabei geholfen hat, den Job von den Wissenschaftlern zur Bewachung ihres Bunkers zu kriegen, stimmt's? Danke. Es war bestimmt gut, unsere Männer beim Bunker zu sehen, und nicht diese verdammten Söldner. Feine Sache! + + + Mal sehen... die Sache hat sich gelohnt. Jetzt können wir das Versteck so nutzen, wie es ursprünglich vorgesehen war - als Gefängnis für den Abschaum der Wächter, um aus ihnen all ihre Geheimnisse rauszupressen. He he. Ach, und danke, dass du uns den Hinweis mit dem Alarmsystem gegeben hast - ohne Verstärkung hätten wir keine Chance gehabt. + + + Ein weiterer Sieg für die Wächter! Diese Anarchisten waren einfach zu größenwahnsinnig... Sie haben sich an unser geheimes Warenlager herangeschlichen und dachten wirklich, dass sie damit durchkommen. Nein, so nicht! Wir haben sie überrascht und ihnen die Schädel weggepustet, als wären sie tollwütige Hamster. + + + Es ist nichts Neues, dass sich bei der Freiheit nur Abschaum tummelt, aber wir sind an brandneue Informationen über einen ihrer größten Spinner rangekommen. Dieser Gauner war bei der Freiheit unter dem Namen Flint bekannt, aber vor seinem Beitritt hieß er Magpie und war ein Stalker. Zumindest war das sein Name, als er nach Zaton gekommen ist. Er hätte fast einen ganzen Jägertrupp einem Mutanten zum Fraß vorgeworfen. Er hat sie reingelegt und eine Chimäre hätte sie beinahe in Stücke gerissen, während sich dieser Mistkerl ihre Ausrüstung geschnappt hat und hier zur Janow-Station gegangen ist. Nachdem er sich den Freiheitlern angeschlossen hatte, hat er seinen Kameraden in eine Anomalie gelockt und sich dort sein Artefakt gekrallt. Ja, so sind sie, die Freiheitler. + + + Es gibt hier ein neues Schiffbauprojekt unter der Leitung von Noah. Ja, das ist die neueste Attraktion in Zaton - ein Stalker namens Noah. Erfahren, motiviert und völlig durchgeknallt. Sein neuestes verrücktes Vorhaben ist es, alle Stalker vor der Apokalypse zu retten. Aus diesem Grund baut er einen alten Kahn zu einer "Arche" um - oder besser zu einem Irrenhaus. Falls du vorhaben solltest, bei ihm vorbeizuschauen, pass auf, dass du Noah nicht wütend machst oder ihn belästigst. Solange du das nicht tust, ist er ziemlich harmlos. + + + Kennst du Nimble? Zurzeit hängt er auf der Skadowsk rum. Er ist wirklich ein Meister seines Fachs. Egal was du brauchst, er kriegt es. Nun ja, zumindest meistens. In letzter Zeit handelt er hauptsächlich mit Waffen und Schutzanzügen, alles Spitzenware! Sonderanfertigungen, experimentelle oder handgemachte Sachen... zwar nicht billig, aber warum auch? Wer was Exklusives will, muss bereit sein, tief in die Tasche zu greifen. + + + Wusstest du, dass Pilot eine neue Route zwischen Zaton und Jupiter hat? Vorher war man eine ganze Weile unterwegs - es ging bergauf, man musste Anomalien umgehen usw. Jetzt ist das ein Kinderspiel und keine Reise mehr, sondern fast schon wie ein Spaziergang im Park. Kein Wunder, die Strecke ist ja nur noch halb so lang. Aber Pilot ist bescheiden und ehrlich: Ehre, wem Ehre gebührt! Er war nicht derjenige, der die Route entdeckt hat. Ein Stalker hat ihm seine Karten gezeigt. Natürlich nicht umsonst, aber ein Vermögen hat er nicht dafür verlangt. + + + Nicht viel, um ehrlich zu sein. + + + In der Zone ist immer was los, egal wo. + + + Nun, du bist jetzt hier. Ich denke, das ist durchaus eine Neuigkeit. + + + Was gibt's Neues in der Zone? + + + Ich weiß sonst nichts, was dich interessieren könnte. + + + Ich würde dir gerne mehr erzählen, aber das ist alles, was ich gehört habe. + + + Ich habe dir alles erzählt, was ich weiß. + + + Hm... vielleicht solltest du Grouse drüben auf der Skadowsk fragen. Es gibt da eine Sache, bei der er Hilfe benötigt - einige Stalker sind spurlos verschwunden. Jeder glaubt, dass Blutsauger sie auf dem Gewissen haben, denn die gefundenen Leichen hatten kein Blut mehr in ihrem Körper. Aber es sind einfach zu viele... Fast jeden zweiten Tag verschwindet ein Stalker, und dieses Verhalten ist für Blutsauger eher ungewöhnlich... Grouse hat sogar einen erfahrenen Jäger angeheuert, um diese Blutsauger zu jagen. + + + Weißt du, wenn ein Stalker Geld braucht, gibt es zwei Möglichkeiten: Artefakte finden und sie für ein Drittel des Werts an Händler verhökern, oder für die Wissenschaftler arbeiten. Die haben immer irgendwas für einen Stalker zu tun - mal wollen sie ein seltenes Artefakt, mal einen Mutantenkadaver haben. Aber vor allem können sie dir eine offizielle Genehmigung für den Aufenthalt in der Zone ausstellen, wenn du mit ihnen gut klarkommst. Stell dir vor, wie du mit deinem Rucksack voller Beute an einem Wachposten des Militärs vorbeigehst und dir die Soldaten salutieren! Da wird mir gleich ganz warm ums Herz! Aber wie auch immer, der Bunker der Wissenschaftler befindet sich westlich der Janow-Station. Ein Stalker arbeitet bereits für sie, aber vielleicht können sie ja noch jemanden wie dich gebrauchen. + + + Wie erfolgreich du bist, hängt davon ab, was du tust. Wenn es dir nichts ausmacht, auf Mutantenjagd zu gehen, wirst du viele Jobangebote kriegen. Schau im Untergeschoss der Janow-Station vorbei und frage nach Trapper - er bezahlt gut für das Töten von Mutanten. Allerdings solltest du nicht Jagd auf den erstbesten Pseudohund machen, der dir über den Weg läuft, um an deine Belohnung zu kommen. Bei Trappers Aufträgen geht es um ganz bestimmte Monster, die entweder beim Sammeln von Artefakten Ärger machen, oder häufig an den Orten anzutreffen sind, die Stalkern als Versteck vor Emissionen dienen. + + + Typen wie du, die auf die Skadowsk kommen, schauen gerne bei Beard vorbei. Er bezahlt gut für Artefakte... Aber ich sag dir was - er hat keinen guten Geschäftssinn. Er will seinen Gewinn nicht mit gewissen mächtigen Leuten teilen... und das wird ihn eines Tages den Kopf kosten. Verstehst du? + + + Falls du Kohle machen willst, geh zu Uhu. Er handelt mit allem, was ein echter Kerl auf der Skadowsk brauchen kann - mit Informationen, Waffen usw. Falls du brisante oder wertvolle Sachen hast, beispielsweise ein Dokument oder den PDA eines Stalkers, bring das Zeug zu Uhu und steck die Kohle ein. Du kannst auch gutes Geld machen, wenn du seine persönlichen Aufträge annimmst. Frag ihn einfach, ob du irgendetwas für ihn erledigen kannst. + + + Du solltest mal mit Gonta reden. Er und seine Leute haben einiges zu erzählen. Vor nicht allzu langer Zeit ist eine Chimäre in Zaton aufgetaucht, also hat sich Gonta mit seinem Trupp auf die Jagd gemacht. Sie haben sich in zwei Gruppen aufgeteilt, um die Bestie aufzuspüren, und einen der Jäger hat er auf die Suche nach dem Blutsaugerlager geschickt. Sie waren also nicht viele, als sie der Chimäre endlich auf die Spur gekommen sind. Ein anderer Stalker, Magpie, ist zu ihnen gestoßen. Ich weiß nicht, wie das genau abgelaufen ist, aber alles deutet darauf hin, dass Magpie sich aus dem Staub gemacht hat, als er die Chimäre gesehen hat. Gonta hätte es fast nicht geschafft und einer seiner Männer wurde schwer verwundet. Die Chimäre ist immer noch da draußen, weswegen sie nach Leuten suchen, die ihnen bei der Jagd helfen. + + + Ganz einfach: Wenn du gutes Geld verdienen willst, ist Sultan dein Mann. Er hat hier das Sagen, und wenn du gut mit ihm klarkommst, hat er vielleicht was für dich zu tun. + + + Wenn du ein guter Stalker bist - also Artefakte findest - sprich mit Beard. Er genießt hier ein hohes Ansehen und ist der einzige auf der Skadowsk, der dir für deine Artefakte einen guten Preis macht. Er hat die Kontakte, um die Artefakte aus der Zone rauszukriegen. Außerdem ist er ein feiner Kerl, weißt du... er hat immer einen guten Ratschlag oder einen geeigneten Job für dich parat. + + + Auf der Skadowsk ist ein Händler, sein Name lautet Uhu. Ist nicht gerade der sympathischste Kerl auf dem Schiff. Er beschwert sich immer darüber, dass jeder Beard Artefakte verkauft und nicht ihm. Aber wenn man Kohle braucht, kann es nie schaden, ihn zu fragen, ob er was zu erledigen hat. Dieses Wiesel handelt mit weit mehr als nur Munition. Er kann dir Infos geben, verkauft Waren und ist auch an deinem Zeug interessiert. Statte ihm mal einen Besuch ab - du findest ihn auf dem zweiten Achterdeck. Ich bin mir sicher, ihr kommt ins Geschäft. + + + Du kannst Wano fragen, er hängt meistens in der Janow-Bar rum. Zurzeit hat er Ärger mit den Banditen - er hat schon drei Mal versucht, seine Schulden bei ihnen zu begleichen, aber die Zinsen werden immer höher. Er hat viel Erfahrung und entdeckt eine Anomalie mit geschlossenen Augen, aber dennoch gerät er immer wieder in Schwierigkeiten. Mehrere Leute haben ihm schon geraten, sich aus dem Staub zu machen. Die Zone ist zu groß, als dass ihn die Banditen finden könnten. Aber er ist zu stolz, um einfach wegzulaufen, und es gibt nicht viele Leute, die ihm bei der Sache mit den Banditen helfen wollen... + + + Vergiss das mit den Jobs mal, Mann... Die Banditen machen uns das Leben immer mehr zur Hölle. Sie haben Mitaj als Geisel genommen und fordern für seine Freilassung ein Lösegeld. Mitaj war einer der ersten Stalker hier in der Janow-Station. Er hat dort alles so hergerichtet, dass die Leute während einer Emission geschützt sind. Jetzt braucht er ein Mal Hilfe und niemanden kümmert es. Bei den Freiheitlern und Wächtern überrascht mich das nicht - die machen sich schon gegenseitig das Leben schwer genug... aber die anderen - die sollten echt was unternehmen! Ach, warum reg ich mich auf... Mitajs eigener Trupp weiß nicht, wie man ihn aus der Hand der Banditen befreien könnte. Falls du ihnen helfen willst, rede mit Grizzly. Du findest ihn in der Bar der Station. + + + Nitro, der Techniker in der Janow-Station, braucht Materialien, mit denen er arbeiten kann. Er kennt sich mit Waffen ebenso gut aus wie mit Elektronik, falls du es noch nicht gewusst hast. Aber manchmal reichen Fähigkeiten einfach nicht aus - er braucht die richtigen Materialien und hat schon viel herumgefragt. Das Problem ist, dass die ungefährlichen Orte schon leergeräumt wurden, während den meisten Leuten die anderen Gegenden zu gefährlich sind. Nitro hofft, dass er jemanden findet, der dieses Risiko auf sich nimmt. Ich bin mir sicher, er lässt dafür 'nen Haufen Geld springen. + + + Ich habe gehört, dass Onkel Jar in der Janow-Station nach einem Stalker sucht, der ihm bei irgendeiner Sache hilft und nicht allzu viele Fragen stellt. Ich weiß nicht, warum er nicht einfach seine Kumpels von der Freiheit fragt... Wie auch immer, er ist ein netter, alter Mann. Vielleicht solltest du mal mit ihm reden und versuchen, mit ihm ins Geschäft zu kommen. + + + Hm... ich wüsste niemanden. + + + Das würde ich selbst gerne wissen. + + + Woher zum Teufel soll ich das wissen? + + + Wüsstest du jemanden, der einen Job für mich hat? + + + Das hast du mich schon gefragt. + + + Ich kann dir nichts Neues erzählen. + + + Du hast meine Antwort schon. + + + Ach, schon gut. + + + Ich habe eine Frage. + + + Frag einfach. + + + Spuck's aus. + + + Schieß los. + + + Ich höre. + + + Hilfe! + + + Nimm dieses Medkit. + + + Tut mir leid, ich habe nichts. + + + Ich verstehe. + + + Was machst du gerade? + + + Kann ich mitkommen? + + + Natürlich. Je mehr desto besser. + + + Tut mir leid, nein. Ich bin lieber alleine. + + + Na dann, los. + + + Ich muss irgendwohin. Kannst du mich gegen eine kleine Gebühr dorthin bringen? + + + Sicher. Wo willst du hin? Wähle dein Ziel aus. + + + Einverstanden. Gehen wir. + + + Ich habe meine Meinung geändert. + + + Nein, ich habe Wichtigeres zu tun. + + + Ich lasse es gerade ruhig angehen. + + + Nichts, ich genieße meine Freizeit. + + + Wonach sieht es denn aus? Nicht das Geringste! + + + Ich verfolge Mutanten. + + + Ich beschatte ein paar Typen. Richtige Vollidioten... + + + Ich verfolge ein paar Söldner. Das sind richtige Arschlöcher! + + + Ich verfolge einen Trupp von bescheuerten Fanatikern. Monolithern also... + + + Ich bin hinter ein paar Zombies her. Von denen gibt es hier viel zu viele... + + + OK, das kostet dich + + + Ach, ich habe meine Meinung geändert. + + + So viel habe ich nicht. + + + Oh, nichts, würde ich sagen. + + + Ich verfolge ein paar Mutanten. Jemand muss ihnen ja zeigen, wo's lang geht. + + + Ich bin hinter ein paar Halunken aus der Gegend her. + + + Ich bin auf der Jagd nach ein paar Söldnern. Wir haben da noch eine Rechnung zu begleichen. + + + Ich bin hinter diesen verrückten Monolithern her. + + + Ich versuche, ein paar der Typen zu erwischen, die mir Geld schulden. + + + Im Moment tue ich nichts. + + + Ich jage Mutanten... möchte die Gegend hier von ihrem Dreck säubern. + + + Ich bin auf einer Mission und verfolge einen Banditentrupp. + + + Mein Ziel sind Söldner. Ich verfolge die Spuren von einem ihrer Trupps. + + + Ich bin hinter einem Monolithertrupp her. + + + Ich verfolge diese blöden Amateure... von der Freiheit... + + + Ich bin auf der Suche nach Artefakten. + + + Ich sammle keine Pilze... sondern eher Artefakte. + + + Ich suche Artefakte. + + + Ich bin unterwegs zur Boiler-Anomalie, gleich in der Nähe eines kleinen Wäldchens. + + + Ich bin auf dem Weg zum nördlichen See... werde mir ein paar Tage Urlaub auf der Halbinsel gönnen. + + + Ich bin unterwegs zum Gebiet jenseits des nördlichen Sees - dort gibt es einen ganz netten Lagerplatz. + + + Ich bin auf dem Weg in die Wälder jenseits des nördlichen Sees. + + + Ich gehe in den kleinen Wald westlich des Sägewerks. + + + Ich bin unterwegs zu dem Hügel westlich des Sumpfes. Dort bin ich sicher vor diesem verpesteten Dreckssumpf. + + + Ich gehe zum Antennenkomplex. Westlich davon gibt es einen netten, kleinen Platz, wo ich entspannen werde. + + + Ich bin unterwegs in den Wald westlich der Pinieneiche... komm doch mit, wenn du willst - ich hätte nichts gegen etwas Gesellschaft. + + + In ein Wäldchen zwischen dem Eisenwald und den Werkstätten. + + + In Richtung große Brücke... östlich davon soll es einen sicheren, ungestörten Flecken Erde geben. + + + Zu einem Parkplatz südlich des alten Schiffs. + + + Nichts Besonderes, bin nur unterwegs. Östlich der Skadowsk werde ich auf einem Hügel mein Lager aufschlagen. + + + In ein Wäldchen zwischen Isumrudnoje und der Tankstelle. + + + Zu einer Straßengabelung in der Nähe der Kläranlage. + + + Zur Boiler-Anomalie. + + + Zur Forststation. Dort gibt es einen Gebäudekomplex, vermutlich hast du ihn schon gesehen. Sogar ein Hochofen ist dort... ich frage mich, was sie da unten genau gemacht haben. + + + In ein Wäldchen westlich des abgebrannten Bauernhofs. + + + In ein Wäldchen östlich der Boiler-Anomalie. + + + Zu einem Hügel gleich hinter dem nördlichen See. + + + In ein kleines Wäldchen südlich des abgebrannten Bauernhofs. + + + Ich bin unterwegs ins Gebiet westlich der Skadowsk... wo die Rohre herauskommen. + + + Ich bin auf dem Weg zu einem Plätzchen mitten zwischen der Skadowsk und dem Baggerschiff. + + + Zu einer Sumpfstelle in der Nähe des alten Schiffs. + + + Zu einem Bach in der Nähe der Narbe-Anomalie. + + + Zur Tankstelle. + + + Zu den Pinieneichenschluchten. + + + Ich möchte in der Klaue-Anomalie nach Artefakten suchen. + + + Ich bin unterwegs zu einem Hügel westlich der Boiler-Anomalie. + + + Zur Eisenwald-Anomalie. + + + Ich gehe in den Eisenwald, um dort nach Artefakten zu suchen. + + + Ich gehe zum Sumpf. Wegen dem ganzen Gas kriegt man dort zwar kaum Luft, aber die Artefakte sind es wert. + + + Ich bin unterwegs in die Werkstätten des Umspannwerks. Es heißt, dass man sich dort gut vor Emissionen verstecken kann, deswegen möchte ich das mal ausprobieren. + + + Kennst du das Sägewerk hier in der Nähe? Dorthin bin ich unterwegs. Ich möchte nachsehen, ob es da etwas Wertvolles zu finden gibt. + + + Ich will ein bisschen Urlaub im Ferienparadies Isumrudnoje machen. Oh ja, ein Paradies... für Fleisch und Wildschweine! Ha ha! Aber egal... ich bin mir sicher, dass ich dort irgendwo mein Lager aufschlagen kann. + + + Zu einer Brücke. Ich glaube, auf der Karte ist sie als Preobraschenski eingezeichnet. + + + Zum Baggerschiff. Ich wette, dass es dort in der Gegend noch einige wertvolle Dinge zu holen gibt. + + + Zum alten Schiff. + + + Ich habe vor, beim abgebrannten Bauernhof vorbeizuschauen und zu überprüfen, ob neue Artefakte aufgetaucht sind. + + + Zum südlichen Plateau. + + + Zu dem Erdspalt bei der Tankstelle. + + + Ich bin unterwegs zum Antennenkomplex Krug - ich brauche einen sicheren Ort, um mich vor Emissionen zu schützen. Allerdings sollen sich dort leider ziemlich viele Monster herumtreiben. + + + Ich bin unterwegs zum Antennenkomplex Krug - ich brauche einen sicheren Ort, um mich vor Emissionen zu schützen. Allerdings sollen sich dort leider ziemlich viele Monster herumtreiben. + + + Ich will in der Nähe der Pinieneiche nach Artefakten suchen. Hoffentlich lassen mich die Mutanten in Ruhe. + + + Zum Abwassertank... du weißt schon, in der Kläranlage. Dort hat man wohl genauso viel Schutz vor Emissionen wie anderswo. + + + Ich bin unterwegs zum Bootspier am nördlichen See. Danach entscheide ich spontan, wie's weitergeht. + + + Ich gehe zu den Docks, wo die Kräne stehen. Ein ganz netter Ort, um ein Lager aufzuschlagen. + + + Ich habe vor, in der Boiler-Anomalie nach Artefakten zu suchen. Hoffentlich übersteht mein Schutzanzug diesen heißen Urlaub. + + + Zur Narbe-Anomalie. + + + Ich will testen, wie feuerfest meine Ausrüstung ist... und nach Artefakten suchen. Drüben in der Rundkreis-Anomalie. + + + Zur Forststation. + + + Ich werde mein Lager auf der Schewtschenko aufschlagen. Dort ist man vor Emissionen sicher und wird nur selten von Mutanten angegriffen. + + + Ich werde mein Lager auf der Schewtschenko aufschlagen. Dort ist man vor Emissionen sicher und wird nur selten von Mutanten angegriffen. + + + Ich gehe zu den Docks, wo die Kräne stehen. Ein ganz netter Ort, um ein Lager aufzuschlagen. + + + Ich will meine Beute loswerden und mir ein paar Bier gönnen. Ich denke, die Skadowsk ist wie geschaffen dafür. + + + Ich gehe zum Armeecheckpoint, bei der Jupiter-Anlage. + + + Zum Containerlagerhaus. + + + Ich bin unterwegs in ein total unscheinbares Gebiet zwischen dem Containerlagerhaus und dem südlichen Tunnel. + + + Zur Janow-Station... endlich kann ich mich mal ausruhen. + + + Zum Tunnel nördlich von Kopatschi. + + + Ich bin unterwegs zu einem wirklich unheimlichen Ort: Kopatschi... oder was von dem Dorf übrig ist. Und ja, ich habe eine Extraladung Munition und Strahlenschutzmittel dabei... ich werde das Zeug wohl brauchen. + + + Zur Zementfabrik. Ein ganz netter Aussichtspunkt und das Tolle dort ist, dass sich niemand an dich heranschleichen kann. + + + Zur Zementfabrik. Ich muss das Untergeschoss überprüfen. + + + Zum Umspannwerk in der Nähe der Janow-Station. + + + Ich bin unterwegs zu einem Ort in der Nähe des südlichen Eisenbahntunnels. + + + Ich gehe zu einem Kühlbecken in der Nähe der Jupiter-Anlage. + + + Ich bin auf dem Weg in den Flugabwehrkomplex Wolchow... werde dort ein paar Zombies jagen. + + + Zum Bunker... du weißt schon, der bei dem Flugabwehrkomplex Wolchow. + + + In das anomale Wäldchen in der Nähe des Steinbruchs. Vielleicht finde ich dort ein paar Artefakte. + + + Ich gehe zum Steinbruch, wo die Wagen der Bauarbeiter stehen. + + + Es gibt da ein nettes Plätzchen zwischen dem Steinbruch und der Janow-Station... dort werde ich eine Weile bleiben und es ruhiger angehen lassen. + + + Ich bin unterwegs zum östlichen Tunnel... der unter der Jupiter-Anlage. + + + Zur Asphalt-Anomalie... mal sehen, wie feuerfest mein Schutzanzug ist. + + + Ich gehe zur Plawni-Anomalie, um nach Artefakten zu suchen. Gegengift habe ich genug dabei... ich mache mir eher Sorgen wegen der Monster. + + + Zum Belüftungskomplex zwischen der Fabrik und dem Containerlagerhaus. Warum? Tja, wenn ich das nur wüsste. + + + Ich bin unterwegs zu den Jupiter-Werkstätten. Vielleicht finde ich dort ja heraus, wie man auf so einen blöden Namen kommt. + + + Ich gehe mitten ins Zentrum des Steinbruchs. Die Stalker behaupten, dass sie dort immer viele Artefakte finden. + + + Zum Parkplatz, wo die alten Fahrzeuge stehen. Werde mich in Elektroanomalien nach Artefakten umsehen. + + + Zwischen dem Flugabwehrkomplex Wolchow und dem Containerlagerhaus gibt es ein nettes, kleines Plätzchen... und genau dorthin bin ich unterwegs. + + + Zum Bunker der Wissenschaftler. + + + Zum Kühlturm nordwestlich der Janow-Station. + + + In Richtung Jupiter-Anlage, aber ich habe nicht vor, da reinzugehen. Ich werde mich mal bei den Verwaltungsgebäuden umsehen und schauen, was für Möglichkeiten ich habe. + + + Ich gehe zur Aschehügel-Anomalie hinter Kopatschi. + + + Ich bin unterwegs zu den Jupiter-Werkstätten. Dort soll ein Hubschrauber abgestürzt sein, also habe ich mir gedacht, dass ich mich dort mal umsehen sollte. + + + Ich gehe zu dem verfallenen Zug zwischen dem Flugabwehrkomplex Wolchow und dem Parkplatz. + + + Ich gehe zum südlichen Tunnel, um im Falle einer Emission sicher zu sein. + + + Ich gehe zu diesem Plätzchen zwischen der Janow-Station und Kopatschi. + + + Ich bin unterwegs zu einem Plätzchen in der Nähe des Kanals, südlich der Zementfabrik. + + + Ich bin unterwegs zu einem Plätzchen in der Nähe des Kanals, nördlich der Jupiter-Anlage. + + + Ich werde mich mal beim Steinbruch umsehen. + + + Ich werde mich mal beim Steinbruch umsehen. + + + Ich werde mich mal im Gebiet nördlich der Janow-Station umsehen. + + + In Richtung Flugabwehrkomplex Wolchow. Da gibt es einen ganz netten Lagerplatz, zwischen dem Komplex und dem Dorf Kopatschi. + + + Oh, ich bin nur unterwegs... in Richtung Containerlagerhaus. + + + Ich kundschafte die Gegend aus. Im Moment bin ich unterwegs in das Gebiet südlich des Armeecheckpoints. + + + Zum Hubschrauberlandeplatz, zwischen der Fabrik und dem Containerlagerhaus. + + + Ich bin unterwegs zu diesem einen Plätzchen südlich der Janow-Station, bei den Eisenbahnschienen. + + + In das Gebiet nördlich der Janow-Station. + + + In das anomale Wäldchen. + + + In das Gebiet südlich des Flugabwehrkomplex. + + + Zum Kühlbecken bei der Betonbad-Anomalie. + + + Ich werde mir die Gegend um die Anlage genauer ansehen. + + + Ich werde mir die Gegend um die Anlage genauer ansehen. + + + Zum Hof hinter dem Waschsalon. + + + Zum Waschsalon, dem sichersten Ort hier in der Gegend. + + + Zum Krankenhaus. Hoffentlich laufe ich dabei nicht diesen verrückten Monolithern über den Weg... + + + Zum Buchladen... ich habe gehört, dass man dort einigermaßen vor Emissionen geschützt sein soll. + + + Ich bin unterwegs zur örtlichen Sehenswürdigkeit - dem Denkmal zur Völkerfreundschaft. Es ist ganz in der Nähe des Buchladens. + + + Zum alten Lebensmittelgeschäft. Man findet dort heutzutage zwar kein frisches Brot mehr, aber wenigstens ist man gut genug vor Emissionen geschützt. + + + Zum Bereska-Laden. + + + Zum alten Kindergarten. + + + Zum Kinoplatz, in der Nähe des Prometheus-Monuments. + + + Ich bin unterwegs zur Schule. Dort soll es zwar von Monstern nur so wimmeln, aber man soll zumindest vor Emissionen sicher sein. + + + Ich bin unterwegs ins alte Servicezentrum. Im ersten Stock soll eine Anomalie sein... und wer weiß, vielleicht finden sich dort auch Artefakte. + + + Ich kundschafte diesen Teil der Stadt aus. Im Moment bin ich unterwegs zum alten Lebensmittelgeschäft. + + + Ich kundschafte diesen Teil der Stadt aus. Im Moment bin ich unterwegs zum alten Lebensmittelgeschäft. + + + Ich kundschafte die Gegend aus. Im Moment bin ich unterwegs zu diesem einen Gebäude hinter der Wohnanlage. + + + Ich will mich im Servicezentrum umsehen... ich glaube, es heißt Jubilejni. + + + Ich suche Artefakte hier in dieser Gegend. Auf dem Hof soll eine Feueranomalie sein, westlich des Kindergartens... + + + Oh, ich schaue mich nur in der Stadt um. Gerade bin ich unterwegs zur Wohnanlage. + + + Oh, ich schaue mich nur in der Stadt um. Gerade bin ich unterwegs zur Wohnanlage. + + + Oh, ich schaue mich nur in der Stadt um. Gerade bin ich unterwegs zur Wohnanlage. + + + Ich wandere nur umher... im Moment bin ich unterwegs zum Flusshafen. Hoffentlich laufe ich dabei keinen verrückten Monolithern über den Weg... + + + Ich bin auf der Suche nach einem Gebiet in Pripyat mit vielen Artefakten und keinen Monstern oder Monolithern... ha ha! Nein, im Ernst... ich bin unterwegs zu einer Anomalie, von der ich gehört habe... gleich südlich des Flusshafens. + + + Zum Prometheus-Kino. + + + Zum Kinoplatz, in der Nähe des Prometheus-Monuments. + + + Ich möchte es eine Weile ruhig angehen lassen und bisschen runterkommen. Nördlich des Kindergartens gibt es auf einem Hof ein hübsches Plätzchen, das perfekt dafür geeignet wäre. + + + In das Gebiet südlich der Wohnanlage. + + + Ich bin unterwegs in das Gebiet zwischen dem Kindergarten und der Wohnanlage. + + + Es gibt da eine Gegend, die Narbe genannt wird, weil der Boden dort so aussieht, als ob man ihn mit einer Axt zerpflügt hätte. Dort wurden Artefakte gefunden, aber wenn man erst einmal dorthin geht, geschehen die merkwürdigsten Dinge. Dein Hirn spielt so verrückt, dass du fast schon das Atmen vergisst, ganz zu schweigen davon zu verschwinden. + + + Weißt du, wo das Baggerschiff ist? Die ganzen Gravitationsanomalien haben dem Ding arg zugesetzt, aber das sollte kein Problem für einen erfahrenen Stalker sein. Hauptsache, man hat genügend Schrauben dabei, die man werfen kann. Aber das Schiff ist teilweise verstrahlt, sowohl innen als auch außen... es ist fast so, als ob man sich einem großen Haufen angereichertem Uran nähern würde. + + + Es gibt da ein altes Umspannwerk, das auch Eisenwald genannt wird. Wenn du dorthin kommst, wirst du verstehen warum. Manche behaupten, dass sie nach einer Emission einen Haufen Artefakte dort gefunden hätten. Allzu gefährlich ist es im Eisenwald nicht, hauptsächlich Elektroanomalien und leichte Strahlung... da sind auch ein paar Poltergeister, die dir allen möglichen Krempel entgegenschleudern, wenn du nicht rechtzeitig in Deckung gehst. + + + Hmm... ehrlich gesagt habe ich keine Ahnung. Aber wenn du die Möglichkeit hast, der Freiheit zu helfen, melde dich bei unserem Anführer in der Janow-Station. Loki ist sein Name, du findest ihn im Südflügel. Denke immer daran: Wenn du an den Fortschritt der Menschheit, ein höheres Bewusstsein und an die Wichtigkeit der Geschenke der Zone glaubst, bist du auf dem richtigen Weg. + + + Keine Ahnung. Aber wenn du auf etwas stößt, das uns bei unserem Kampf gegen die Zone und die Typen hilft, die die Zone als Segen und nicht als Fluch ansehen, melde dich beim Kommandeur der Expeditionseinheit der Wächter - Oberstleutnant Shulga. Er hat das Sagen in der Janow-Station, du findest ihn im Nordflügel. Eines ist ganz sicher: Jeder Zivilist, der seinen Beitrag für den Erfolg der Wächter leistet, wird angemessen belohnt. + + + Alle reden davon, dass bei dem alten Kühlturm merkwürdige Dinge vor sich gehen. Wenn man auf die allgemeine Frequenz schaltet, empfängt man Teile von Notrufmitteilungen... die hören sich so an, als ob ein armer Typ versuchen würde, aus einer Anomalie zu entkommen. Und wenn man dann nach den Koordinaten fragt, herrscht Funkstille. Das Merkwürdigste daran ist aber, wie sich das Ganze anhört. So eine Verzerrung kann ich mir nicht wirklich erklären... + + + Ich bin unterwegs zu einem Plätzchen zwischen der Skadowsk und der Schewtschenko. + + + Nach Jupiter... ich werde mich aber wohl nicht zu weit hineinwagen. + + diff --git a/gamedata/configs/text/ger/st_dialogs.xml b/gamedata/configs/text/ger/st_dialogs.xml new file mode 100644 index 0000000..4c13cbd --- /dev/null +++ b/gamedata/configs/text/ger/st_dialogs.xml @@ -0,0 +1,978 @@ + + + + Hör zu, ich will dich etwas fragen... + + + Dann spuck's aus. + + + Was hältst du von Nimble? + + + Nimble? Ich denke, wir werden diesen gerissenen Mistkerl die Tage an einem unauffälligen Plätzchen mit den Waren erwischen. Der kann was erleben! + + + Schon mal von der Oase gehört? + + + Ich habe da mal eine witzige Story aufgeschnappt. Also, die Jungs von der Müllhalde haben Gerüchte über die genaue Position der Oase verbreitet und das ganze auch noch ziemlich glaubhaft rübergebracht. Dann sind sie zu diesem Ort gegangen und haben dort gewartet. Tja, was soll ich sagen? So viele leichtgläubige Loser sind dort aufgetaucht und dort ihre Sachen losgeworden, dass die Jungs, die das Gerücht in die Welt gesetzt haben, bald darauf die Zone verlassen haben. Warum nicht? Die haben jetzt ausgesorgt. Nur einer von ihnen ist in der Zone geblieben, ein Kerl namens Yoga... + + + Ja, angeblich wird man dort all seine Wehwehchen los. Ich denke, das wäre gar nicht so übel - kein Kater mehr, keine Hämorriden... Die Oase finden, ein Erholungsgebiet daraus machen und die Kohle einstreichen - das wär's. + + + Warum sollte mich das interessieren? Das ist doch alles nur belangloses Gelaber für Weicheier... Echte Männer glauben nicht an diesen Quatsch. Da sitzt man in der Bar und will in Ruhe sein kühles Bier genießen, aber an allen Tischen gackern aufgeregt die Stalker herum und spekulieren darüber, wo die Oase sein könnte. Und jeder dieser Trottel schwört, den genauen Ort zu kennen... Aber komischerweise erzählt jeder dieser Trottel etwas anderes... + + + Ist dir schon mal ein Stalker namens Magpie über den Weg gelaufen? + + + Aber sicher... Ich habe gleich gemerkt, dass er ein Volltrottel ist und dann habe ich gehört, dass die Stalker ihn ebenfalls für einen Volltrottel halten. Allerdings weiß ich nicht, wo er ist... Du musst ihn selbst finden, falls du hinter ihm her bist. + + + Nein... den Namen höre ich zum ersten Mal, Kumpel. + + + Hast du eine Idee, wer Sachen aus einer persönlichen Kiste gestohlen haben könnte? + + + Eine Ratte. Ich denke, du solltest besser die Profis in der Janow-Station fragen. Sie sind bekannt für das Jagen von Ratten. + + + Wer könnte mir hier beim Dechiffrieren helfen? + + + Ich habe gehört, Nitro in der Janow-Station soll gut sein. Als er noch nicht für die Wächter gearbeitet hat, haben die Jungs ihm manchmal Stalker-PDAs zum Hacken gegeben... Ach, das waren noch Zeiten... + + + Komm mir nicht mit technischem Kram, Meister. Dafür brauchst du einen Hacker. Damals als ich im Knast war, kannte ich mal einen, aber das war's dann auch schon wieder. Als ich auf freien Fuß gekommen bin, hat er noch fünf Jahre vor sich gehabt... + + + Ich habe den PDA des Wächterhändlers. Kennst du jemanden, der Interesse daran haben könnte? + + + Auf der Skadowsk lebt ein Händler namens Uhu. Er bezahlt gut und die Jungs verkaufen ihm hin und wieder Stalker-PDAs. Außerdem stellt er nicht allzu viele Fragen, insofern ist das eine feine Sache. + + + Fast jeder, Kumpel. Die eigene Fraktion würde den Schwanzlutscher lebendig begraben, andere Fraktionen würden einen riesigen Wirbel darum machen, aber Uhu in Zaton würde diesen PDA richtig gut verschwinden lassen. Das einzige Problem dabei: Nur Uhu weiß, wo dieser PDA dann später wieder auftaucht... Die Entscheidung liegt bei dir. + + + Wo findet man hier in der Gegend Werkzeug? + + + Tja, also wenn du medizinische Instrumente brauchst, würde ich mich mal in Krankenhäusern und Notstationen umsehen. Falls du auf der Suche nach einfachem Werkzeug bist, könntest du im Steinbruch von Jupiter fündig werden. Feinwerkzeug findest du vielleicht in alten Werkstätten. + + + Woher zum Teufel soll ich das wissen? Ich brauche kein Werkzeug, um Stalker dazu zu bringen, mit dem Geld rauszurücken - nur damit du's weißt... Entspann dich, das war ein Scherz. + + + Kann hier jemand ein Speichermodul hacken? + + + Gute Frage! Glaubst du, ich kenn mich damit aus? Hah! Bist du bescheuert, Kumpel? Da brauchst du einen von den Technikern oder Wissenschaftlern... Du denkst doch nicht wirklich, dass ich mit so etwas zu tun habe, oder? + + + Ich will ehrlich sein: Das letzte Mal habe ich Speichermodule in der Schule gehacked, und das waren eher stinknormale Disketten. Sprich mit den Profis und lass ihre Köpfe damit rauchen. + + + Wer könnte einen Stahlbehälter aufbrechen? + + + Kennst du Kardan von der Skadowsk? Neulich war er total besoffen und hat auf jemanden Jagd mit einem Brecheisen gemacht. Er kann das Brecheisen bestimmt auch für sinnvollere Zwecke nutzen und damit Zeug aufbrechen. + + + Tja, also mit dem richtigen Werkzeug könnte ich das sogar hinkriegen, aber wer schleppt das schon mit sich in der Zone herum? Versuch es mal bei den Technikern, Kumpel - die haben so etwas gut drauf. + + + Ich bin auf der Suche nach einem Stalker namens Snag. Weißt du, wo ich ihn finden kann? + + + Keine Ahnung. Frag Sultan auf der Skadowsk. Der Boss weiß normalerweise, wo diese ganzen Halunken stecken. + + + Ja, von diesem Versager habe ich schon mal gehört. Normalerweise hängt er in Zaton rum, deswegen wirst du ihn hier in der Gegend nicht finden. + + + Weißt du irgendetwas über die abgestürzten Hubschrauber? + + + Wer könnte an Informationen über den Gründer der Wächter interessiert sein? + + + Ich kenne niemanden, der NICHT interessiert wäre! Das müssen ja brisante Informationen sein, Kumpel. Am besten versuchst du dein Glück bei Uhu auf der Skadowsk. Das bringt dir sicher Kohle ein und du machst dir keine Feinde. + + + Nein. Denk mal nach. Auf der einen Seite sind die Wächter, auf der anderen die Freiheitler, und die Stalker sitzen mir mitten im Genick. Und da erwartest du von mir, dass ich den Himmel im Auge behalte? + + + Tja, also die Jungs haben gesagt, dass sie einen in den Kabeln des Eisenwaldes baumeln gesehen hätten. Aber da draußen gibt es noch viel mehr zu sehen... Du wirst bestimmt in eine Anomalie geraten oder das Vergnügen mit einem Poltergeist haben. + + + Ja, ein paar Kerle haben gesehen, wie ein Hubschrauber auf ein Plateau gestürzt ist, allerdings gibt es keinen Weg hinauf... Sie haben gesagt, er sei so komisch geflogen, dass man meinen könnte, der Pilot hätte sich irgendeine Pille eingeschmissen. + + + Man hat mir gesagt, ein Hubschrauber hätte U-Boot gespielt und sei direkt in einem Sumpf gelandet. Du kannst dir sicher vorstellen, wie schnell der Vogel gesunken ist, und das Wasser dort entspricht nicht unbedingt der Qualität einer Heilquelle: Gift, Chemikalien und weiß der Kuckuck. + + + Hast du hier in der Gegend Militär gesehen? + + + Wer könnte an Karten der Gegend zwischen Zaton und Jupiter interessiert sein? + + + Pilot, denke ich. Er ist der wichtigste Ortskundige in diesen Gebieten. Es wäre wirklich nicht schlecht, wenn er einige Karten hätte. Dann müsste er sich nicht mehr an den Sternen orientieren... + + + Die Jungs haben gesagt, dass ein Armeetrupp das südliche Plateau hinuntergeklettert ist und in Richtung Söldnerlager unterwegs war. Sie haben wohl gedacht, dass irgendeine ganz große Scheiße im Anmarsch sei, und deswegen hatten sie es ziemlich eilig. + + + Ich habe da eine Story aufgeschnappt. Die Armeeratten haben wohl versucht, Zeug aus ihrem im Sumpf abgestürzten Hubschrauber zu holen. Stell dir das mal bildhaft vor: Fünf Armeebubis in Uniform hampeln im Sumpf herum und versuchen, nicht nass zu werden... Die haben wahrscheinlich so viel geflucht, dass sich sogar ein Bandit dafür geschämt hätte. + + + Jemand hat mir erzählt, wie er einem Stalker gefolgt ist, um einen Teil seiner Beute abzustauben, als er plötzlich Schüsse gehört hat. Wie sich herausgestellt hat, haben sich die Soldaten ein Feuergefecht mit den Söldnern geliefert. Er hat sich versteckt und gewartet, bis alles vorbei war, aber in der Zwischenzeit hat sich der Stalker schon aus dem Staub gemacht. Ganz schönes Pech, was? + + + Ein Kumpel hat mir erzählt, wie er Zeuge einer komischen Situation wurde. Stell dir diesen alten Kahn mit seinem Windrad oben drauf vor und daneben Noah, der wie ein aufgescheuchtes Huhn herumquasselt. Dazu zehn Soldaten, die versuchen, Noahs Köter so gut wie möglich auf Distanz zu halten. Mein Kumpel hat sich köstlich amüsiert, bevor er diesen lustigen Haufen sich selbst überlassen hat. + + + Nein, hier in der Gegend ist es ziemlich gefährlich und überall lungern irgendwelche Typen mit aufgemotzten Waffen herum... Bei Einsätzen habe ich keine Zeit zu schauen, wer von ihnen zum Militär oder zu den Wächtern gehört. + + + Weißt du, wie man nach Pripyat gelangt? + + + Wen könnte ich anheuern, um die Wissenschaftler zu beschützen? + + + Hah, meine Jungs und ich erledigen den Job! Wir werden die Wissenschaftler so abschirmen, dass sie niemand mehr zu Gesicht bekommt! Stalker und Mutanten werden so viel Angst haben, dass sie sich nicht mehr in die Nähe ihres verdammten Bunkers trauen, das kannst du mir glauben! Wenn du uns jede Woche bezahlst, sind wir dabei. Ah, und Weihnachtsgeld wäre auch nicht schlecht! + + + Zu Fuß, Kumpel. Geh weiter nach Jupiter und frag dort herum, denn es gibt keinen direkten Weg von Zaton nach Pripyat. Das ist eine Tatsache. + + + Hey Mann, sehe ich aus wie ein verdammter Ortskundiger oder was? Ich meine, siehst du auf meiner Stirn ein Schild mit der Aufschrift "Zuständig für dumme Fragen"? Nein? Dann frag Pilot. Er wird dafür bezahlt, solche Fragen zu beantworten. + + + Nein... was soll ich denn da? Es gibt dort keine Stalker, die ich abzocken könnte! + + + Kennst du jemanden, der nicht allzu viel um die Ohren hat und nach Pripyat will? + + + Pripyat ist kein Ort für richtige Männer, wie wir es sind. Überall Mutanten und Anomalien, so wie überall in der Zone... aber ohne Stalker und ihre Beute. Sollten Stalker in Pripyat aufkreuzen, sag uns Bescheid und wir machen uns auf den Weg, um denen zu zeigen, wer dort das Sagen hat. + + + Keine Ahnung, Kumpel. Tut mir leid. + + + Ich habe eine ungewöhnliche Waffe gefunden. Kennst du vielleicht jemanden, der sich damit auskennt? + + + Ich würde mal die Techniker fragen. Ist doch ihr Job, sich damit auszukennen, oder? + + + Da bin ich überfragt, aber die Stalker auf der Skadowsk sind der Meinung, dass Kardan ein Technikgenie ist. Rede ruhig mit ihm... aber wenn du mich fragst, ist er nur ein alter Säufer... + + + Wen könnte ich anheuern, um Messungen für die Wissenschaftler vorzunehmen? + + + Die Frage kann ich dir leicht beantworten - unsere Jungs. Sie waren zwar nicht in der Schule und haben keine Ahnung von Messungen, aber messen können sie sich trotzdem mit jedem. Dass das für die entsprechende Person ein gutes Ende nimmt, wage ich jedoch zu bezweifeln. + + + Ich habe ein ziemlich außergewöhnliches Artefakt gefunden. Kennst du vielleicht jemanden, der es kaufen würde? + + + Ein außergewöhnliches Artefakt sagst du? Lass mal sehen... Du musst es mir schon geben, damit ich es mir näher anschauen kann... Gib schon her! Hah, ruhig Blut, Kumpel, war nur Spaß. Ich nehme es dir schon nicht weg. Aber wenn ich du wäre, würde ich dieses Ding lieber gut verstauen. Andere Leute haben vielleicht nicht so einen guten Humor wie ich. + + + Du hast vielleicht Nerven, hier mit diesem Artefakt herumzufuchteln... Respekt. Also in solchen Angelegenheiten solltest du mit Beard drüben auf der Skadowsk reden. Wir wissen noch nicht, wie er die Artefakte aus der Zone rauskriegt, daher solltest du deins verkaufen können, kein Problem. + + + Ich habe hier in der Nähe ein Lager gefunden, in dem es von Blutsaugern nur so wimmelt. Was sollen wir tun? + + + Ähm, was gibt es da schon zu tun? Nimm die Beine in die Hand und lauf so schnell du kannst! + + + Ach, schon gut. + + + Hör zu, ich will dich etwas fragen... + + + Frag einfach. + + + Was hältst du von Nimble? + + + Nimble? Noch nie gehört. Vielleicht ist er in einem anderen Trupp oder so? + + + Schon mal von der Oase gehört? + + + Das ist ein Stalkermärchen, und so machen sie's: Sie erfinden irgendeinen Mythos und dann machen sie sich alle auf die Suche danach! Wenn ich du wäre, würde ich nichts darauf geben. Das ist ein Fass ohne Boden: Wenn du daran glaubst, dann glaubst du auch bald, dass der Wunschgönner wirklich existiert. + + + Ah, der Ort, an dem die Verletzungen von alleine heilen und man auf wundersame Weise wieder zu Kräften kommt? Ich habe Neuigkeiten für dich, mein Freund: Dieser Ort existiert nicht. Stalker erfinden so einen Schwachsinn, um die Gefahren der Zone zu verharmlosen. Die traurige Wahrheit ist jedoch, dass man in der Zone nirgends sicher ist. Und das solltest du dir hier draußen immer vor Augen halten, Kumpel. Traumtänzer machen es in der Zone nicht lange. + + + Ja, alle Artefakte dort sind ihr Gewicht in Gold wert und werden auf einem silbernen Tablett serviert, während man dir die Füße massiert... Das war natürlich nicht ernst gemeint. Ich bezweifle, dass die Oase wirklich existiert, auch wenn es schön wäre. Man könnte dort sogar ein Krankenhaus errichten und braucht dazu nicht einmal Ärzte. Die Leute kommen einfach und werden geheilt... Verdammt, was für eine naive Schnapsidee. + + + Ist dir schon mal ein Stalker namens Magpie über den Weg gelaufen? + + + Es fällt mir schon schwer, die Namen der Leute bei den Wächtern im Kopf zu behalten, und du willst etwas über einen Stalker wissen? Ihr Lager ist auf der Skadowsk - hör dich dort um. + + + Nein. + + + Hast du eine Idee, wer Sachen aus einer persönlichen Kiste gestohlen haben könnte? + + + Da haben wir's! So etwas würde im Lager der Wächter nie passieren, aber hier sind überall diese Anarchos von der Freiheit - bei denen würde ich zuerst fragen. + + + Wer könnte mir hier beim Dechiffrieren helfen? + + + Drüben in der Janow-Station lebt ein Techniker namens Nitro. Er kennt sich ziemlich gut mit Elektronik aus. Ich habe mal das Passwort meines PDAs vergessen und innerhalb von fünf Sekunden hat er das Ding geknackt! + + + Da musst du zur Janow-Station. Suche dort nach Nitro, der hat so was drauf. + + + Ich habe den PDA des Wächterhändlers. Kennst du jemanden, der Interesse daran haben könnte? + + + Ein Händler bei den Wächtern? Das kann nicht sein! Andererseits, wenn du Informationen hast, solltest du damit besser zu Oberstleutnant Shulga gehen, damit er sich darum kümmern kann. + + + Wo findet man hier in der Gegend Werkzeug? + + + Hier in der Nähe ist eine ganze Anlage. Mittlerweile könnte dort natürlich schon alles weg sein, aber ich würde mich an deiner Stelle trotzdem mal in den Lagerhäusern der Anlage umsehen. + + + Wenn ich du wäre, würde ich mich zuerst in den alten Werkstätten umsehen. Vielleicht findest du auch etwas in Geschäften. + + + Hier in der Gegend sind nur Mutanten und Anomalien. Hah! In Anomalien würde ich nicht unbedingt suchen, und die ganzen Burer und Controller werden es dir auch nicht gerade leicht machen. + + + Hier in der Nähe ist unter der Brücke ein Zug. Ich habe diese Züge schon mal gesehen. Normalerweise transportieren sie technisches Personal, insofern könntest du dort fündig werden. + + + Kann hier jemand ein Speichermodul hacken? + + + Nitro. In der Janow-Station ist er der einzige, der sich mit so etwas auskennt. + + + Dafür brauchst du einen Techniker. Der einzige fähige Mann dafür ist Nitro in der Janow-Station. + + + Wer könnte einen Stahlbehälter aufbrechen? + + + Angeblich haben die Stalker einen Techniker. Er soll zwar ein Säufer sein, versteht aber scheinbar sein Handwerk. Sprich mit ihm. + + + Hah, da kannst du ja gleich einen Tresor mit dir herumschleppen. Ich bin mir sicher, dass Nitro dir nicht helfen kann. Mit einem elektronischen Schloss wäre das allerdings was anderes... + + + Ich bin auf der Suche nach einem Stalker namens Snag. Weißt du, wo ich ihn finden kann? + + + Wenn er ein Stalker ist, solltest du am besten die Stalker fragen. Ich habe noch nie von einem Kerl namens Snog oder wie er heißt gehört. + + + Weißt du irgendetwas über die abgestürzten Hubschrauber? + + + Wer könnte an Informationen über den Gründer der Wächter interessiert sein? + + + Unser Kommandeur natürlich. Sag Shulga alles, was du weißt, und der Dank der Wächter ist dir gewiss. + + + Ja, unsere Späher haben gesehen, wie ein Armeehubschrauber im Anflug auf den Ausweichlandeplatz von Jupiter war. Angeblich haben sie dort dem Hubschrauber signalisiert, dass er seinen Kurs ändern soll, aber ich schätze, die Piloten hatten gerade andere Probleme. Ich frage mich, ob es die Jungs von der Armee unbeschadet durch das Minenfeld geschafft haben. + + + Nicht wirklich, nein. Wir sind hier nicht besonders viel unterwegs... Versuch es mal bei unseren Jungs nahe der Janow-Station. + + + Unsere Patrouille hat berichtet, dass ein Armeehubschrauber in der Nähe der Jupiter-Anlage eine Notlandung durchführen wollte. Leider ist er direkt in das Dach über den Werkstätten gekracht. Wahrscheinlich gibt es keine Überlebenden. Die Patrouille hat nämlich nach dem Absturz kein Notsignal empfangen. + + + Hast du hier in der Gegend Militär gesehen? + + + Wer könnte an Karten der Gegend zwischen Zaton und Jupiter interessiert sein? + + + Jemand, der sie gut gebrauchen kann. Damit meine ich Pilot. Er ist ein Ortskundiger auf der Route zwischen der Janow-Station und der Skadowsk. Deswegen wären die Karten für ihn sicher nützlich. + + + Militär? In dieser Gegend habe ich kein Militär gesehen, aber wir sind hier auch nicht besonders viel unterwegs. + + + Neulich wurde im Minenfeld die Leiche eines Soldaten gefunden. Wahrscheinlich war er einer von denen aus dem Hubschrauber. Zusätzlich zur Besatzung können bis zu acht weitere Personen in einem Hubschrauber dieses Typs transportiert werden. Folglich muss es Überlebende geben, auch wenn niemand weiß, wohin sie gegangen sind. + + + Erst neulich wurde ein Typ vom Militär beim Bunker der Wissenschaftler gesehen. Mehr weiß ich allerdings auch nicht. + + + Angeblich hat neulich jemand in Uniform ein Gebäude beim Flugabwehrkomplex Wolchow betreten. Allerdings kann es gut sein, dass es ein Zombie war, der für einen Soldaten gehalten wurde. + + + Stalker haben in der Nähe der Jupiter-Anlage Militär gesehen. Der Beschreibung nach zu urteilen, waren das Spezialeinheiten in Begleitung eines unbekannten Stalkers. Sie waren in Richtung Pripyat unterwegs. Klingt glaubhaft, aber die Erfahrung lehrt uns immer wieder, dass man Informationen wie diesen normalerweise nicht blind vertrauen sollte. + + + Weißt du, wie man nach Pripyat gelangt? + + + Wen könnte ich anheuern, um die Wissenschaftler zu beschützen? + + + Sie wären nirgends besser aufgehoben als bei den Wächtern. Schau bei Oberstleutnant Shulga in der Janow-Station vorbei. Ihr werdet euch bestimmt einig. + + + Solange sie die Freiheitler für sich arbeiten lassen, halten wir uns von ihrem Bunker fern. Es wäre schlimmer als der Tod, wenn wir uns den ganzen Tag ihre dummen Witze anhören müssten. + + + Im Moment sehen die Wächter keinen Grund, nach einem Weg Richtung Pripyat zu suchen. Dennoch sammeln wir alle Informationen, die wir kriegen können. Unbestätigten Berichten zufolge sollen unter der Jupiter-Anlage Tunnel nach Pripyat führen. Um der Sache auf den Grund zu gehen, müsste man jedoch die ganze Anlage und das Gebiet drum herum durchforsten. + + + Nein. Für Informationen dieser Art musst du mit einem zivilen Ortskundigen reden - unsere Späher haben schon genug um die Ohren. + + + Unsere Späher erkunden regelmäßig die Gegend, um einen sicheren Weg nach Pripyat zu finden, aber bisher ohne Erfolg. + + + Kennst du jemanden, der nicht allzu viel um die Ohren hat und nach Pripyat will? + + + Die Wächter sind in dieser Gegend nicht besonders präsent. Sprich mit unseren Leuten in der Janow-Station. + + + Gerüchten zufolge haben die Wissenschaftler angeblich einen Typen vom Militär in ihrem Bunker. Der dürfte es schwer haben, da bald wieder rauszukommen. Die Wissenschaftler sind für zwölf bis achtzehn Monate dort. Zu Fuß und auf sich gestellt wird er es nicht zum Rand der Zone schaffen. Deswegen denke ich, dass er interessiert sein könnte. + + + Ich würde vorschlagen, du hörst dich mal bei den Leuten um, die auf Abenteuer aus sind. Es gibt da zum Beispiel in der Janow-Station einen Stalker namens Wano. Ihm ist es egal, in welche Schwierigkeiten er hineingerät, und könnte sich als nützlich erweisen. Der Kerl findet selbst mit geschlossenen Augen einen Weg durch Anomalien. + + + Tja, also du könntest eine Rekrutierungskampagne in einem Irrenhaus starten... Andererseits wüsste ich eine gute Alternative - Monolith-Kämpfer. Da wir gerade davon reden... Einer ihrer Trupps wurde in der Nähe des Flugabwehrkomplexes gesichtet und bestimmt kennen sie auch einen Weg nach Pripyat... Hey Mann, ich hoffe, du nimmst mich nicht ernst... + + + Such bei den Wächtern nach Freiwilligen. Strider zum Beispiel... er ist noch keinem Einsatz zugeteilt und ich könnte mir vorstellen, dass der Oberstleutnant ihn mit dir gehen lässt. + + + Jeder weiß, dass die Wächter die besten Kämpfer sind... aber im Moment haben wir andere Dinge zu tun. + + + Ich habe eine ungewöhnliche Waffe gefunden. Kennst du vielleicht jemanden, der sich damit auskennt? + + + Meine Fresse, das ist ja mal ein fettes Teil! Hast du die Waffe selbst gebaut oder wirklich gefunden? So eine Wumme habe ich ja noch nie gesehen... Frag die Techniker. + + + Wen könnte ich anheuern, um Messungen für die Wissenschaftler vorzunehmen? + + + Was für eine blöde Frage - die Wächter, natürlich. Wir haben viele erfahrene Leute und schon mit den Wissenschaftlern zusammengearbeitet. Statte doch Oberstleutnant Shulga einen Besuch ab. Er hat sicher einen Trupp, der für den Job geeignet ist. + + + Wer will schon da arbeiten, wenn der Bunker von Freiheitlern bewacht wird? Diese verdammten Pazifisten sind meistens so breit, dass sie mit hoher Wahrscheinlichkeit ihre eigenen Leute abknallen. + + + Ich habe ein ziemlich außergewöhnliches Artefakt gefunden. Kennst du vielleicht jemanden, der es kaufen würde? + + + Alle Artefakte sind außergewöhnlich und ich würde dir nicht raten, es mit dir herumzutragen. Gib es den Experten und lass gut sein. + + + Du solltest dieses Ding mal den Stalkern zeigen. Die kennen sich mit so was aus. Oder noch besser: Zeig es dem Kerl, der den Stalkern ihre Artefakte abkauft. + + + Ich habe hier in der Nähe ein Lager gefunden, in dem es von Blutsaugern nur so wimmelt. Was sollen wir tun? + + + Die Trupps der Wächter führen zurzeit in diesem Gebiet keine Säuberungsoperationen durch. Deswegen muss das Lager warten. + + + Ach, schon gut. + + + Hör zu, ich will dich etwas fragen... + + + Schieß los. + + + Was hältst du von Nimble? + + + Hab noch nicht viel über ihn gehört... Am besten fragst du die Stalker. Er ist doch einer von denen, oder? + + + Schon mal von der Oase gehört? + + + Ne ganze Menge... Ein Palast im Wüstensand, eine paradiesische Insel im Nebel, ein Luftschloss... Shambhala, Eden... die Oase - nenne es, wie du willst. Jeder Mensch hat seine Träume, und ich kann es niemandem verübeln. + + + Ich habe mal eine interessante Geschichte von einem Stalker aufgeschnappt. Er war wohl der Erste, der die Oase erwähnt hat. Er meinte, dass dort laut einer Legende alle Verletzungen heilen würden und man so ruhig und entspannt sei, als wäre man gar nicht in der Zone. Erst als er weg war, ist mir wieder eingefallen, dass er gehinkt hat. Aber als er von der Oase zurückgekommen ist, ist er ganz normal gegangen und irgendwie hat er viel jünger ausgesehen. + + + Ja, freie Stalker haben mir die Koordinaten gegeben... zehn unterschiedliche Koordinaten, um genau zu sein. Wenn man sie alle berücksichtigt, erhält man ein Gebiet, das vom Hirnschmelzer bis zum Atomkraftwerk Tschernobyl reicht, mit der Janow-Bar irgendwo in der Mitte. Es ist gut möglich, dass wir gerade in der Oase sind, also genieße es! + + + Ist dir schon mal ein Stalker namens Magpie über den Weg gelaufen? + + + Nein, ich kenne hier in der Gegend nicht viele freie Stalker. + + + Magpie? Noch nie gehört, aber ein cooler Name. + + + Hast du eine Idee, wer Sachen aus einer persönlichen Kiste gestohlen haben könnte? + + + Nein, hier ist keiner so drauf. Vielleicht beißt einer mal von deinem Brot ab oder nimmt einen Schluck aus deiner Flasche, wenn du gerade nicht hinschaust, aber kriminelle Diebe sind sie nicht... + + + Wer könnte mir hier beim Dechiffrieren helfen? + + + Ich habe gehört, dass Nitro in der Janow-Station sich gerne mit Kombinationen und Algorithmen beschäftigen soll. Ob's stimmt, weiß ich nicht, ich habe noch nie mit ihm zu tun gehabt. Er arbeitet für die Wächter und hat deswegen nicht viel Zeit für uns Freiheitler. + + + Ich weiß nicht viel über irgendwelche Spezialisten hier... Frag unsere Jungs drüben in der Janow-Station, wenn du das nächste Mal dort bist. Die wissen sicher bescheid. + + + Ich habe den PDA des Wächterhändlers. Kennst du jemanden, der Interesse daran haben könnte? + + + Das klingt interessant! Ich würde ihn Loki geben, unserem Anführer in der Janow-Station. Er wird schon dafür sorgen, dass die freien Stalker wissen, welches Gesindel die Wächter rekrutieren. + + + Wo findet man hier in der Gegend Werkzeug? + + + In der Anlage natürlich, wo sonst? Besonders schön ist es dort zwar nicht, aber die Lagerhäuser werden dir gefallen. Ist dort ein bisschen sicherer und da drin muss man einfach gutes Werkzeug finden. + + + Das ist eine gute Frage, Mann. Also denken wir mal scharf nach. Wo würde man außerhalb der Zone Werkzeug kriegen? Wer ein bisschen Hirn hat, geht in einen Laden und kauft es dort. Und wer so dämlich ist und das nicht weiß, versucht es wahrscheinlich in einer Werkstatt, richtig? In der Zone ist das nicht anders. Genau an diesen Orten musst du dich umsehen. So einfach ist das, Stalker! + + + Werkzeug? Hör zu, Mann, ist das so was wie ein Code? Hier sind keine Bullen, du kannst also offen reden... Ach, du meinst es ernst? Wenn das so ist - ich habe keine Ahnung. + + + Ich habe gehört, dass einer unserer Jungs nach Werkzeug gesucht hat und auf den Zug unter der Brücke gestoßen ist. Scheinbar ist dort eine Tesla-Anomalie... Jedenfalls soll es da nicht besonders spaßig gewesen sein... Warum ich dir das erzähle? Er meinte, dass dort Werkzeug herumgelegen hat. Er hat dann aber beschlossen, das Werkzeug liegen zu lassen und schnell wieder abzuhauen, weil es dort nicht sicher war. + + + Kann hier jemand ein Speichermodul hacken? + + + Nowikow im Bunker der Wissenschaftler dürfte das hinkriegen. Er arbeitet schnell, macht seine Sache gut und ist freundlich. Dann gibt es da noch Nitro in der Janow-Station, diesen Wächtermitläufer. Er ist billig und ein Idiot, aber wahrscheinlich würde er es machen. + + + Ein fähiger Techniker, denke ich mal. Der Techniker hier kümmert sich allerdings eher um mechanische Dinge. Und wenn du keinen Auspuff auf dein Speichermodul geschweißt haben willst, solltest du dich lieber in Jupiter umhören. + + + Wer könnte einen Stahlbehälter aufbrechen? + + + Nun, neulich hat man mir Kardan von der Skadowsk empfohlen. Man sagt, er versteht etwas von seinem Handwerk, auch wenn er meistens betrunken ist. Vielleicht kann er dir beim Aufbrechen des Stahlbehälters behilflich sein. + + + Wahrscheinlich jemand, der beruflich Stahlbehälter aufbricht? Bei Nitro, dem örtlichen Techniker, wirst du allerdings kein Glück haben. Ich habe gehört, er macht sich lieber an elektronischen Geräten anderer Leute zu schaffen. + + + Ich bin auf der Suche nach einem Stalker namens Snag. Weißt du, wo ich ihn finden kann? + + + Noch nie von dem Kerl gehört... Ich würde mich mal bei den anderen freien Stalkern umhören. + + + Weißt du irgendetwas über die abgestürzten Hubschrauber? + + + Wer könnte an Informationen über den Gründer der Wächter interessiert sein? + + + Loki, keine Frage. Er ist unser Anführer hier in der Janow-Station. Auch wenn er mit den Informationen vielleicht nicht viel anfangen kann - Hauptsache die Wächter kriegen sie nicht in die Finger. Kannst du dir vorstellen, was das für eine Propagandaschlacht wird? Ich bekomme schon Kopfschmerzen, wenn ich nur daran denke. + + + Ja, hast du die Story von dem Hubschrauber im Minenfeld gehört? Die Jungs von der Armee haben eine Bruchlandung auf dem Ausweichlandeplatz hingelegt, der sechs Jahre zuvor von ihren eigenen Kameraden vermint worden war. Einige Leute meinen, das war reine Dummheit, aber ich denke, da steckt mehr dahinter. Sieh's mal so: Niemand wird dorthin gehen, und wenn die Jungs von der Armee ihren Einsatz beendet haben, können sie zu ihrem Hubschrauber zurückkehren, ihn wieder in Ordnung bringen und weg sind sie. Es würde mich wirklich interessieren, was das für ein Einsatz ist... + + + Ich bin nicht hier aus der Gegend und habe keinen blassen Schimmer. Schau doch mal bei uns in der Janow-Station vorbei. Unsere Jungs werden dir alles erzählen, was du wissen willst - und was du nicht wissen willst ebenso. + + + Ja, einige Jungs haben neulich einen ganz schön wackligen Hubschrauber gesehen. Der Landeplatz war auch nicht gerade ideal - ein Dach in Jupiter. Sie haben gesagt, der Vogel sei abgestürzt und hätte sich dann mitsamt allem möglichen Schrott direkt durch das Dach in das Gebäude gebohrt. + + + Hast du hier in der Gegend Militär gesehen? + + + Wer könnte an Karten der Gegend zwischen Zaton und Jupiter interessiert sein? + + + Pilot mit Sicherheit, Mann. Er ist der wichtigste Ortskundige der freien Stalker hier in der Gegend. Wenn du über Karten plaudern willst, bist du bei ihm genau richtig. + + + Mach dich locker, Kumpel. Hier in der Gegend sind keine Bullen, Soldaten oder Söldner. Sicherer als hier ist es nirgends in der Zone. + + + Nein, aber ein paar Leute haben erzählt, sie hätten eine militärische Einheit gesehen, die in der Nähe des Landeplatzes durch das Minenfeld robben wollte. Sie hatten vor, ihren abgestürzten Kameraden zu helfen, haben es dann aber doch bleiben lassen. Soldaten sind wirklich unberechenbar. Man weiß nie, wann sie einem in den Rücken fallen. + + + Kann ich nicht behaupten. Aber Gerüchten zufolge ist ein Soldat im Bunker der Wissenschaftler. Angeblich hat Oserski - der Biologe - gesagt, dass der Kerl zur Besatzung des Hubschraubers gehört, der in die Anlage gekracht ist... Zurzeit macht der Witz die Runde, dass sich diese Nerds den Soldaten als Haustier halten. + + + Ich selbst nicht, aber mir ist da etwas zu Ohren gekommen. Einige Stalker haben gesagt, dass ein Soldat beim Flugabwehrkomplex Wolchow gesehen wurde. Ist bestimmt ein Geist oder ein wiedererweckter Zombie, was meinst du? + + + Nein. Irgendein Typ hat behauptet, er hätte gesehen, wie sieben Soldaten einem Stalker an der Funkanlage vorbei in Richtung Pripyat gefolgt sind. In der Zone gibt es schon eine ganze Weile nichts mehr zum Rauchen, deswegen nehme ich ganz stark an, dass der Typ Entzugserscheinungen hatte und einfach nur wirres Zeug gefaselt hat. + + + Weißt du, wie man nach Pripyat gelangt? + + + Wen könnte ich anheuern, um die Wissenschaftler zu beschützen? + + + Freiheitler. Mit anderen Worten - uns. Wir arbeiten ständig mit den Wissenschaftlern zusammen und deswegen wäre es für uns ein Kinderspiel, auf sie aufzupassen. Sprich mit unserem Boss Loki drüben in der Janow-Station. Ihr werdet euch sicher einig. + + + Keine Ahnung, Kumpel. Soweit ich weiß, haben diese blödstudierten Wissenschaftler einen Wächtertrupp angeheuert. Wir würden sie ja gerne beschützen, aber jeden Tag diese Fressen der Wächter sehen zu müssen... nein, das ist es einfach nicht wert. + + + Angeblich gelangt man von Jupiter aus dorthin - ich meine natürlich das Gebiet mit der Anlage, nicht den Planeten... ha ha! Du musst zugeben, der war gut! + + + Keinen blassen Schimmer... Ich habe einfach keine Zeit, dorthin zu gehen. Frag doch Pilot im Lager. Er ist ein freier Stalker und kennt die Gegend besser als jeder andere. + + + Wenn ich das wüsste, Kumpel, dann wäre ich schon längst dorthin gegangen. Von den Wächtern, den Soldaten und dem ganzen Gekämpfe wegzukommen... ja, das wäre es wert... + + + Kennst du jemanden, der nicht allzu viel um die Ohren hat und nach Pripyat will? + + + Tut mir leid, mein Freund. In Zaton wüsste ich niemanden... Ich kann dir nur raten, unsere Jungs in der Janow-Station zu fragen. + + + Kennst du den Bunker der Wissenschaftler? Die haben da ein Problem. Zuerst hat der Stalker Gari beschlossen, nach Pripyat aufzubrechen, und jetzt hat der Soldat dort im Bunker das gleiche vor. Gari ist ein Einzelkämpfer und stolz darauf, aber dieser Soldat wäre genau der Richtige für dich. + + + Wano in der Janow-Station taugt was. Ist ein feiner Kerl und hätte der Freiheit jederzeit beitreten können, wenn er gewollt hätte. Ich schätze, er wollte nicht in unsere Querelen mit den Wächtern hineingezogen werden... generell will er keinen Ärger und einfach seine Ruhe haben. Ist seine Sache und wir respektieren das! + + + Klar. Einer von unseren Jungs hat am ausgetrockneten See einen Trupp gesehen und die Leute wären genau die richtigen für dich. Die müssen Pripyat wie ihre eigene Westentasche kennen und arbeiten glaube ich im Moment für niemanden. Mutig sind sie mit Sicherheit auch, schließlich handelt es sich um Monolith-Kämpfer! + + + Ja. Strider, der Anführer unserer neuen Rekruten... Scheinbar gefällt es ihm in unseren Reihen nicht. Seine Jungs haben sich schnell zurechtgefunden, aber er ist hier wohl nicht besonders glücklich... Sprich mit ihm - ein guter Mann sollte dort sein, wo er mit Leib und Seele bei der Sache ist. + + + Ne, keine Ahnung. + + + Ich habe eine ungewöhnliche Waffe gefunden. Kennst du vielleicht jemanden, der sich damit auskennt? + + + Du hast keine Bedienungsanleitung für das Ding gefunden, oder? Nein? Dann kann ich dir auch nicht weiterhelfen. + + + Wen könnte ich anheuern, um Messungen für die Wissenschaftler vorzunehmen? + + + Ich denke, unsere Jungs könnten den Job erledigen. Bei der Freiheit sind einige helle Köpfe und wenn etwas unklar ist, fragen wir einfach im Bunker nach. Wir möchten uns die Gelegenheit nicht entgehen lassen, der Wissenschaft einen wertvollen Dienst zu erweisen! Sprich mit Loki in der Janow-Station. Ich bin mir sicher, er sieht das genauso. + + + Meine Jungs und ich würden uns gerne darum kümmern, aber zurzeit bewachen die Wächter den Bunker. Mal bei den Wissenschaftlern vorbeizuschauen, ist schon ein Problem, aber jeden Tag dort herumzuhängen, wäre einfach nicht gesund - das ist so sicher wie das Amen in der Kirche. + + + Ich habe ein ziemlich außergewöhnliches Artefakt gefunden. Kennst du vielleicht jemanden, der es kaufen würde? + + + Da brauchst du einen Sammler, Kumpel. In der Janow-Station findest du keinen, weil sogar einige Stalker nicht den Mumm haben, hierher zu kommen. Hör dich am besten mal in Zaton um. In der Gegend ist es etwas ruhiger. + + + Kennst du Beard, den Barmann im Lager der freien Stalker? Er kauft Artefakte und haut die Leute gar nicht mal so übers Ohr. Ein feiner Kerl, daran gibt es nichts zu rütteln. Wirklich ein Jammer, dass er nicht für uns arbeitet. + + + Ich habe hier in der Nähe ein Lager gefunden, in dem es von Blutsaugern nur so wimmelt. Was sollen wir tun? + + + Mann, du musst die freien Stalker warnen. Schließlich haben sie hier in der Nähe ihr wichtigstes Lager. Die "Artenvielfalt" in der Zone sollte zwar bewahrt werden, aber ich mache mir im Moment eher Sorgen um die Leute hier... + + + Ach, schon gut. + + + Hör zu, ich will dich etwas fragen... + + + Nur zu. + + + Was hältst du von Nimble? + + + Wir hatten noch nicht das Vergnügen... Du solltest dich besser bei den Leuten umhören, die regelmäßig auf der Skadowsk sind. + + + Schon mal von der Oase gehört? + + + Mir sind schon alle möglichen Storys über die Oase zu Ohren gekommen! Ist doch nur eine Legende, ein Mythos... Jeder Stalker stellt sich etwas anderes darunter vor und jeder dieser verfluchten Kerle behauptet, genau zu wissen, wo sie ist. Ein Jammer, dass diese Orte nur eines miteinander gemein haben - sie sind verdammt schwer zu erreichen. + + + Nun, man sagt, dass dort alle Verletzungen sofort heilen und man innerhalb von wenigen Minuten wieder ganz bei Kräften ist... Angeblich trotzt die Oase allen Krankheiten, sogar Strahlungsschäden! Aber bei all den Spekulationen weiß ich eines ziemlich sicher, und zwar wo die Oase wirklich ist. Willst du's wissen? Im Zentrum der Zone! Aber behalte das für dich und sag niemandem ein Sterbenswörtchen! + + + Ich habe gehört, dass dort alle Mutanten einfach nur an dir vorbeigehen und dich höchstens krumm anschauen. Außerdem soll dort ein Artefakt namens Herz der Oase sein... Niemand weiß genau, wozu es gut ist, aber eines ist sicher: Du solltest es nicht anfassen. Wer es nimmt, ist die längste Zeit in der Zone gewesen... Wo die Oase ist? Mann, das weiß doch jeder! In Pripyat, unter dem Riesenrad. Wo denn sonst? + + + Ist dir schon mal ein Stalker namens Magpie über den Weg gelaufen? + + + Sicher... aber keine Ahnung, wo er gerade steckt. + + + Hm... noch nie gehört... + + + Hast du eine Idee, wer Sachen aus einer persönlichen Kiste gestohlen haben könnte? + + + Ähm, nicht wirklich. Frag die erfahrenen Leute in der Janow-Station, vielleicht können sie dir weiterhelfen. + + + Wer könnte mir hier beim Dechiffrieren helfen? + + + Nitro in der Janow-Station, wer sonst? Er steht auf diesen komplizierten technischen Kram... mehr sogar als mit Waffen Geschäfte zu machen. + + + Ich wüsste niemanden. Hör dich in der Janow-Station um. Die scheinen dort irgendeinen Experten zu haben. + + + Ich habe den PDA des Wächterhändlers. Kennst du jemanden, der Interesse daran haben könnte? + + + Kennst du Uhu auf der Skadowsk? Ich denke, er würde sich darüber freuen, das Ding in die Finger zu kriegen. Er steckt gerne seine Nase in heikle Geschäfte... + + + Auf der Skadowsk in Zaton gibt es einen Kerl namens Uhu, der mit Informationen Geschäfte macht. Dein PDA könnte ihn interessieren. + + + Wo findet man hier in der Gegend Werkzeug? + + + Ein Stalker hat mir erzählt, dass sein Vater vor 1986 in den Werkstätten des Umspannwerks gearbeitet hat. Er meinte, die hatten dort alle möglichen Geräte, deswegen schätze ich mal, dass dort auch Werkzeug herumliegt. Mittlerweile sind die Sachen bestimmt schon verrostet, aber vielleicht kann es trotzdem nicht schaden, sich dort mal umzusehen. + + + Kennst du das Sägewerk im Wald oben auf dem Hügel? Dort findest du bestimmt Werkzeug, sofern dir nicht schon jemand zuvorgekommen ist. Allerdings bezweifle ich das. Je mehr man sich diesem Ort nähert, desto stärker wird der Drang, sich in die Hose zu machen und die Beine in die Hand zu nehmen. Es ist nicht die Strahlung, die einem Angst und Bange macht. Belassen wir es dabei... + + + Nun, die Jupiter-Anlage ist gleich in der Nähe und da liegt bestimmt irgendwo Werkzeug herum. Ich für meinen Teil würde mich allerdings der Anlage selbst nicht nähern... Dieser Ort macht mir Angst. Du könntest dich aber in den Jupiter-Lagerhäusern seitlich der Anlage umsehen. + + + Ich habe gehört, dass es in Pripyat einige Orte gibt, an denen man den unterschiedlichsten technischen Krempel findet. Zum Beispiel in einem Gebäude, das wohl das alte sowjetische Warenhaus war. Damals war das der einzige Laden, der irgendwelche nützlichen Sachen im Angebot hatte. + + + Woher soll ich das wissen? Sieh dich in alten Werkstätten oder Läden um, vielleicht findest du dort irgendetwas Nützliches. + + + Um ehrlich zu sein, das letzte Mal habe ich gutes Werkzeug in Sidorowitschs Bunker beim Kordon gesehen. Klar, man muss dafür bezahlen, aber die Sachen sind neu und nicht allzu teuer. + + + Weißt du, Kumpel, ich bin nicht in die Zone gekommen, um nach Werkzeug zu suchen. Denk mal nach: Was soll man schon mit einem radioaktiven Hammer anfangen? + + + Gerüchten zufolge liegen im alten Servicezentrum alle möglichen Sachen herum... vielleicht auch Werkzeug. Aber wie bei allen anderen Dingen gilt auch hier: Wer zuerst kommt, mahlt zuerst. + + + Gute Frage... Wenn ich du wäre, würde ich mich mal im alten Zug unter der Brücke umsehen. Frag nicht warum... mein Bauchgefühl sagt mir, dass du dort fündig werden könntest. + + + Kann hier jemand ein Speichermodul hacken? + + + Lass mich nachdenken... Tja, also Nitro in der Janow-Station kriegt das bestimmt hin. Ansonsten fällt mir noch Nowikow ein, der Techniker der Wissenschaftler und ein echter Profi. Aber du solltest genau wissen, was du willst, Nitro wäre um einiges billiger. + + + Dafür brauchst du einen Techniker, aber der einzige hier in der Gegend ist Kardan. Die Sache ist die... Nach all den Jahren, in denen er zu tief ins Glas geschaut hat, ist er im Umgang mit komplexer Elektronik nicht gerade der Zuverlässigste. An deiner Stelle würde ich mich mal in Jupiter umhören - dort haben sie die richtigen Experten. + + + Wer könnte einen Stahlbehälter aufbrechen? + + + Kardan auf der Skadowsk, denke ich. Es macht wirklich Spaß, ihm beim Knacken von Vorhängeschlössern zuzuschauen. + + + Wohl am ehesten ein Techniker. Nitro wird es aber nicht machen, denke ich - er ist niemand fürs Gröbere. + + + Hah, das fragst du in Pripyat?! Lass dir einen Rat geben und sieh dich lieber etwas weiter vom Zentrum der Zone entfernt nach jemandem um. + + + Ich bin auf der Suche nach einem Stalker namens Snag. Weißt du, wo ich ihn finden kann? + + + Da solltest du besser Beard fragen, den Barmann auf der Skadowsk. Er müsste wissen, wo die einzelnen Stalker sind. + + + Snag? Woher zum Teufel soll ich das wissen? Hör dich am besten in Zaton um, da hängt er ziemlich oft herum. + + + Weißt du irgendetwas über die abgestürzten Hubschrauber? + + + Wer könnte an Informationen über den Gründer der Wächter interessiert sein? + + + Ich würde mich mal mit Uhu unterhalten, dem Händler auf der Skadowsk. Er handelt nicht nur mit Waren, sondern auch mit Informationen. Du kannst deinen Arsch darauf verwetten, dass er an glaubhaften Informationen über eine Legende wie diese Interesse hat. + + + Ich habe selbst einen gesehen... Nach einem Absturz sah es zwar nicht aus, aber gut geflogen ist er auch nicht wirklich. Er ist von einer Seite zur anderen gekippt, bis er schließlich auf einem Plateau im Süden von Zaton aufgesetzt hat... Wäre interessant zu wissen, ob jemand überlebt hat. Wenn wir doch nur wüssten, wie man auf das Plateau gelangt... Allerdings habe ich gehört, dass Noah vom Psychokahn einen Weg kennen soll... + + + Ich habe gehört, dass nicht weit von hier einige Militärhubschrauber abgestürzt sein sollen... Die Leute erzählen sich die unterschiedlichsten Dinge, aber an eine Sache erinnere ich mich noch genau. Sie haben gesagt, dass einer der Hubschrauber auf den Ausweichlandeplatz gestürzt sei, der einst vom Militär selbst vermint wurde. Was für eine Ironie des Schicksals! Mein Opa hat immer gesagt: "Wer andern eine Grube gräbt, fällt selbst hinein." Wie wahr, wie wahr... + + + Einer meiner Kumpel hat mir Folgendes erzählt: Er war unterwegs zum Eisenwald, um dort nach Artefakten zu suchen. Als er dort ankam, hörte er hinter sich ein Geräusch. Er drehte sich um, um zu sehen, was da vor sich ging. Da sah er, wie ein Hubschrauber mit voller Geschwindigkeit auf ihn zuraste. Er tauchte wie ein Blitz aus heiterem Himmel auf, riss Strommasten und anderes Zeug mit sich, aber setzte überraschenderweise nicht auf einer Anomalie auf. Der Eisenwald ist nicht schwer zu finden, man sieht ihn schon aus großer Entfernung. Es wimmelt dort nur so von verdammten Poltergeistern, also pass auf, dass du nicht den Verstand verlierst. + + + Ich habe gehört, dass einer auf dem südlichen Plateau gelandet sein soll. Allerdings kommt man da nicht so einfach rauf. Aber ich habe noch etwas gehört. Und zwar hat angeblich jemand Noah auf dem besagten Plateau gesehen, was bedeuten würde, dass dieser Psycho einen Weg hinauf kennt. + + + Ich selbst habe keinen gesehen, aber Gerüchten zufolge ist einer direkt in die Anlage gestürzt... Allerdings will niemand der Sache nachgehen - ist einfach zu gefährlich dort. + + + Ein Stalker hat mir erzählt, dass er gesehen hat, wie mehrere Militärhubschrauber in Schwierigkeiten geraten sind... In einem Hubschrauber hat angeblich der Motor aufgeleuchtet und dann ist er direkt in einen Sumpf voller Anomalien gerauscht. Es sollte nicht allzu schwer sein, dorthin zu gelangen, aber der Sumpf selbst ist der reinste Alptraum... Ist kein Ort für Menschen, das kannst du mir glauben. + + + Hast du hier in der Gegend Militär gesehen? + + + Wer könnte an Karten der Gegend zwischen Zaton und Jupiter interessiert sein? + + + Pilot natürlich, wer sonst? Er ist ein Ortskundiger, musst du wissen. Er ist ständig zwischen der Skadowsk und der Janow-Station unterwegs und kann mit deinen Karten sicher etwas anfangen. + + + Das hier ist weder Zaton noch Jupiter, also sind diese Karten hier ziemlich nutzlos, oder? Frag in diesen Gegenden herum, dann hast du vielleicht mehr Glück! + + + Ich selbst habe niemanden gesehen, aber ich habe gehört, dass angeblich einige Soldaten das südliche Plateau in Richtung Kläranlage hinuntergeklettert sind. Offensichtlich haben sie erst versucht, mithilfe von Seilen und anderen Hilfsmitteln heil herunterzukommen. Aber dann haben sie es bleiben lassen und sind auf ihren Ärschen runtergerutscht, ha ha! Bobfahren in der Zone - das ist mal was anderes! + + + Bei einem Gespräch auf der Skadowsk habe ich aufgeschnappt, dass ungefähr fünf Soldaten aus einem Ableitungskanal beim Sumpf gekrochen sein sollen. Die Soldaten sollen ganz schön schmutzig gewesen sein und einer von denen war scheinbar nicht einmal von einem Sumpfblutsauger zu unterscheiden. Von Kopf bis Fuß soll er voller Schleim gewesen sein. + + + Ich selbst nicht, nein, aber ein Freund von mir hat beobachtet, wie sich eine Militäreinheit ein Feuergefecht mit Söldnern bei der Kläranlage geliefert hat. Gerade als er ein schönes Plätzchen gefunden hat, um das Spektakel besser beobachten zu können, war es auch schon wieder vorbei, weil sich die Soldaten zurückgezogen haben. Auf beiden Seiten gab es keine Verluste... typisch, oder? + + + Offenbar wurden etwa zehn Soldaten in Noahs altem Kahn gesehen. Falls der Psycho zu diesem Zeitpunkt noch am Leben war, hat er mit ihnen wahrscheinlich herumdiskutiert... das würde ihm ähnlich sehen. Scheinbar wollte bisher niemand Noah fragen, was genau passiert ist. Bei diesem verrückten Mistkerl weiß man nie, was einen erwartet. + + + Ich habe in der Nacht eine Explosion gehört und dann hat mir jemand in der Janow-Station gesagt, dass sie im alten Minenfeld einen toten Soldaten und dahinter einen verlassenen Armeehubschrauber gesehen haben. Scheinbar wussten sie wegen der Dunkelheit nicht, wo sie gelandet waren, und sind dann direkt durch das Minenfeld gegangen. Niemand weiß, wie viele von ihnen es heil durch die Minen geschafft haben, aber ich bezweifle, dass der tote Soldat im Minenfeld den Hubschrauber alleine geflogen hat. + + + Ich habe nicht wirklich jemanden vom Militär gesehen... Aber es gibt da ein Gerücht, wonach angeblich ein Soldat bei den Wissenschaftlern rumhängt. Es wird erzählt, dass Gari - ein Stalker - auf ihn gestoßen ist, als er in den Raketenkomplex gehen wollte, um dort nach seinen Kameraden zu suchen. Dort wimmelt es nur so von Zombies, die umherirrenden Menschen nicht gerade freundlich gesonnen sind. Im Grunde genommen hat Gari ihm den Arsch gerettet. + + + Nein, aber ich habe gehört, dass ein Soldat beim Flugabwehrkomplex Wolchow gesehen worden sein soll. Allerdings glaube ich das nicht wirklich... Vielleicht war das nur eine Lüge oder die Person kann einen Soldaten nicht von einem Zombie unterscheiden. + + + Militär? Tja, also einige Leute haben erzählt, dass "eine ganze Militäreinheit, angeführt von einem Stalker" an der Jupiter-Anlage vorbeimarschiert sein soll. Allerdings gebe ich nicht viel auf dieses Geschwätz. + + + Weißt du, wie man nach Pripyat gelangt? + + + Wen könnte ich anheuern, um die Wissenschaftler zu beschützen? + + + Kennst du Spartacus und seinen Trupp? Die Stalker in Zaton? Sind feine Kerle und gute Kämpfer - die haben schon so einiges erlebt. Sie werden Gefallen an der Idee finden, die Wissenschaftler zu beschützen, da bin ich mir ziemlich sicher. + + + Bist du schon Hatchets Trupp bei den Werkstätten des Umspannwerks in Zaton über den Weg gelaufen? Wie alle Söldner haben sie ihre Probleme, aber wenigstens fragen sie erst, bevor sie schießen. Solltest du sie für den Job kriegen, werden die Wissenschaftler bestimmt zufrieden sein. Außerdem hätten dann die Stalker eine kleine Verschnaufpause und alle wären glücklich, oder? + + + Hm... da fällt mir nichts ein, tut mir leid. + + + Was ich sicher weiß, ist, dass es keinen Weg von Zaton dorthin gibt. Wer unbedingt nach Pripyat wollte, ist nach Jupiter aufgebrochen. Deswegen solltest du dich besser dort umhören. + + + Wenn man der Gerüchteküche glauben schenken mag, gibt es unter der Jupiter-Anlage geheime Tunnel, die nach Pripyat führen... Aber die Sache ist die... Gerüchte wie diese erzählt man sich für gewöhnlich, wenn man schon einige Gläser intus hat, und außerdem ist Jupiter ein einziger verdammter Alptraum. Niemand wagt es, sich der Anlage auch nur zu nähern. + + + Woher soll ich das wissen, Kumpel? Frag mich was Leichteres... Ich weiß nur, dass du Pilot finden und ihn fragen solltest. Wenn dir jemand helfen kann, dann er. + + + Pah, wenn ich wüsste, wie man nach Pripyat gelangt, wäre ich nicht mehr hier. Was glaubst du, warum ich mich sonst in Richtung Zentrum der Zone aufgemacht habe? In Pripyat wimmelt es nur so vor Artefakten, Mann! Wer es zuerst dorthin schafft, ist ein gemachter Mann! + + + Kennst du jemanden, der nicht allzu viel um die Ohren hat und nach Pripyat will? + + + Ich glaube nicht, dass du so jemanden hier in der Gegend findest. Jeder, der weiter in Richtung Zentrum der Zone vorstoßen wollte, hat sich nach Jupiter aufgemacht. Dort würde ich mich an deiner Stelle umhören. + + + Hast du von dem Soldaten gehört, der zurzeit bei den Wissenschaftlern herumhängt? Ich denke, er hat nicht viel zu verlieren, wenn er mit dir geht. Die Wissenschaftler werden so schnell nicht aufbrechen und alleine schafft er es nicht zum Kordon. Vielleicht ist er dumm genug und geht mit dir zusammen nach Pripyat! + + + Kennst du Wano drüben von der Janow-Station? Ist eine ehrliche Haut und ein guter Stalker, aber verdammt leichtgläubig. Bei Anomalien wäre er besser aufgehoben als unter Leuten. Solange er hier ist, wird ihn immer irgendjemand ausnutzen. + + + Hör zu, Mann, ich habe gehört, dass am ausgetrockneten See südlich des Flugabwehrkomplexes ein Trupp gesichtet wurde... Offensichtlich handelt es sich dabei nicht wie üblich um Stalker, Freiheitler oder Wächter - es sind Monolither! Wenn du also jemanden brauchst, der mit dir nach Pripyat geht, bist du bei ihnen genau richtig. Ha ha, du hast schon gemerkt, dass ich nur Spaß mache, oder? + + + Kennst du Strider, den Anführer des neuen Freiheitlertrupps? Wenn du seinen jämmerlichen Gesichtsausdruck gesehen hättest, dann wüsstest du, dass die Janow-Station nicht der richtige Ort für ihn ist. Du solltest mal mit ihm reden. Vielleicht lässt er sich darauf ein. + + + Kennst du Strider, den Anführer des neuen Wächtertrupps? Wenn du seinen jämmerlichen Gesichtsausdruck gesehen hättest, dann wüsstest du, dass die Janow-Station nicht der richtige Ort für ihn ist. Du solltest mal mit ihm reden. Vielleicht lässt er sich darauf ein. + + + Hm... mir fällt niemand ein. + + + Ich habe eine ungewöhnliche Waffe gefunden. Kennst du vielleicht jemanden, der sich damit auskennt? + + + Keine Ahnung. Da würde ich Spezialisten fragen. Du weißt schon, Techniker und so... + + + Ich denke, es könnte nicht schaden, wenn du mal Kardan auf der Skadowsk fragst, Kumpel. Er hantiert mit Waffen rum und ist wirklich gut... Vielleicht hat er trotz seiner Sauferei sogar noch ein oder zwei Gehirnzellen übrig... + + + Wen könnte ich anheuern, um Messungen für die Wissenschaftler vorzunehmen? + + + Kennst du Gonta den Jäger? Ich denke, er und seine Jungs hätten nichts dagegen, für die Wissenschaftler zu arbeiten. Ich meine, falls Mutanten anfangen zu nerven, sind diese Kerle genau das, was du brauchst, um mit ihnen fertig zu werden. + + + Hast du schon mal von Grizzly, Torba und Mitaj gehört, den Stalkern in der Janow-Station? Sie arbeiten zusammen und sind ein unschlagbares Trio! Ich denke, für diesen Job wären sie genau die Richtigen - solange Mitaj ausnahmsweise mal keinen Ärger hat. + + + Keine Ahnung, Kumpel. Wir haben hier genug Probleme, die uns Sorgen bereiten. + + + Ich habe ein ziemlich außergewöhnliches Artefakt gefunden. Kennst du vielleicht jemanden, der es kaufen würde? + + + Ich denke nicht, nein. Die Leute hier setzen eher auf Altbewährtes. Hör dich mal in Zaton um, ist näher am Rand der Zone. + + + Ich würde es Beard mal zeigen, dem Barmann auf der Skadowsk. Angeblich arbeitet er mit Sammlern außerhalb der Zone zusammen und diese Freaks stehen auf außergewöhnliches Zeug. + + + Ich habe hier in der Nähe ein Lager gefunden, in dem es von Blutsaugern nur so wimmelt. Was sollen wir tun? + + + Wow, davon musst du Beard auf der Skadowsk erzählen... Denn entweder kümmern wir uns um das Problem, oder sie reißen uns richtig den Arsch auf. + + + Ach, schon gut. + + + Wo ist hier in der Gegend das nächste Stalkerlager? + + + Bist du bescheuert? Mit Stalkern habe ich nichts am Hut. Aber gut, das nächste Lager hier in der Gegend ist die Skadowsk. Ich gebe dir sogar die Koordinaten, und zwar umsonst. Bin ich nicht nett? + + + Wo ist hier in der Gegend das nächste Stalkerlager? + + + Ich lade die Koordinaten auf deinen PDA hoch... Das Wrack der Skadowsk ist das einzige größere Lager hier in der Nähe. + + + Man sieht sich. + + + Ich habe gehört, dass ein paar abgestürzt sein sollen... aber Genaueres weiß ich nicht. Tratschen ist nicht so mein Ding. Tut mir leid, wenn dir das nicht weiterhilft. + + + Mann, ich habe andere Sorgen als deine blöden Hubschrauber... ich meine, so ein Hubschrauberabsturz dürfte verdammt wehtun, aber mehr kann ich dazu auch nicht sagen. + + + Hey Bursche, was faselst du da? Du musst echt hartes Zeug rauchen, wenn du hier in der Gegend Hubschrauber gesehen haben willst. Richtige Helis gibt es hier nicht. + + + Hä? Ne, Mann, so ein Scheiß geht mich nichts an. Es nützt mir nichts bei meiner Mission, Wissen zu verbreiten, verstehst du? + + + Unsere Patrouille hat gesehen, wie die Hubschrauber an Höhe verloren haben, aber die Details dieses Vorfalls wurden dem Oberstleutnant selbst berichtet. Wir erhalten nur so viele Informationen, wie wir brauchen, deswegen weiß ich nicht viel über diese Angelegenheit. + + + Wo kann ich einen Schutzanzug mit geschlossenem Atemkreislauf finden? + + + Keine Ahnung, wo man so ein Ding "finden" kann, aber mit genug Geld kannst du deinem Glück bestimmt auf die Sprünge helfen - wenn du weißt, wo du es investieren musst. Sprich mal mit Nimble... wenn du dich mit ihm einigst, kann er dir sicher weiterhelfen. Ich hoffe, dass ihr euch einig werdet... wir würden uns über ein paar Tage ohne ihn auf der Skadowsk sehr freuen. + + + Woher zum Teufel soll ich das wissen? Bin ja selbst noch nicht so lange hier... frag besser in Zaton nach, unsere Brüder dort haben ihre eigenen Quellen. + + + Keine Ahnung. Warum? Willst du dich in eine Anomalie verirren? Hey, wenn du dabei auf Artefakte stößt, gib uns Bescheid. Wir sind dann sofort zur Stelle... und gratulieren dir zu deiner tollen Arbeit! Ha ha ha! + + + Wo kann ich einen Schutzanzug mit geschlossenem Atemkreislauf finden? + + + Woher soll ich das wissen? Aber warte... hier auf der Skadowsk gibt es einen Typen, der soll alles beschaffen können, was man braucht. Du findest ihn auf dem oberen Deck, er heißt Nimble. + + + Ach, ich glaube nicht, dass sich irgendjemand mit so einem tollen Schutzanzug hierher verirren würde. Schau dich lieber in Zaton um... das ist einen Schritt näher an der Zivilisation. + + + Ich habe keine Ahnung... solche Schutzanzüge sind selbst unter den Wächtern sehr selten. Sie setzen sie nur als besonderes Erkennungsmerkmal im Kampf oder bei Operationen in extrem anomalen Gebieten ein. + + + Wo kann ich einen Schutzanzug mit geschlossenem Atemkreislauf finden? + + + Ich habe mal gehört, wie ein paar Leute über einen Typen mit guten Verbindungen gesprochen haben... Nimble oder so. Der kann dir wohl alles beschaffen. Du weißt schon... Ausrüstung, Waffen und so... keine Drogen. Hängt auf der Skadowsk ab, wenn du ihn finden willst. + + + Eine gute Frage, Mann... nicht mal wir hier bei der Freiheit tragen solche Anzüge. An deiner Stelle würde ich in Zaton fragen. Dort gibt es vielleicht jemanden, der solche Geschäfte betreibt. + + + Ha, für was brauchst du denn so einen Schrott? Wenn's abgeht, kannst du das Ding vergessen. Aber andererseits... wird schon seinen Nutzen haben, was? Macht das Atmen leichter und schützt die Augen vor der Sonne... vielleicht hole ich mir selbst so einen Schutzanzug! Hey, weißt du, wo ich so ein Ding finden kann? + + + Wo kann ich einen Schutzanzug mit geschlossenem Atemkreislauf finden? + + + Nun, ich würde sagen, bei Nimble. Drittes Deck der Skadowsk. Der Typ könnte dir sogar mitten in der verdammten Wüste Schnee besorgen. Aber er ist nicht gerade billig, musst du wissen. + + + Lass mich überlegen... in Zaton gab es mal einen Typen, Nimble hieß der. Schau am besten mal, ob der sich noch dort herumtreibt. Er soll sich auf dieses teure Zeug spezialisiert haben. + + + Kumpel, du tust ja so, als ob das so etwas Gewöhnliches wie eine Fleischkonserve wäre! Nein, das kann dir niemand sicher sagen. Solche Schutzanzüge sind sehr selten... kannst dich glücklich schätzen, wenn du einen findest. + + + Tschüss. + + + Bis dann. + + + Wir sehen uns. + + diff --git a/gamedata/configs/text/ger/st_dialogs_jupiter.xml b/gamedata/configs/text/ger/st_dialogs_jupiter.xml new file mode 100644 index 0000000..b833fc8 --- /dev/null +++ b/gamedata/configs/text/ger/st_dialogs_jupiter.xml @@ -0,0 +1,3885 @@ + + + + Was willst du? + + + Ich muss mit Jack reden. Es geht um Wanos Schulden. + + + Dann mach. + + + OK. + + + Ich mache nur einen kleinen Spaziergang. + + + Das hier ist kein öffentlicher Park, Kumpel. Verschwinde. + + + Hast du eine Idee, wer Sachen aus einer persönlichen Kiste gestohlen haben könnte? + + + Nein, und ich habe meine eigenen Probleme... Du hast vielleicht ein paar Gegenstände verloren, aber ich könnte mein Leben verlieren... + + + Diebstahl, Betrügereien... Mann, was ist nur aus der Welt geworden? Ich habe niemanden gesehen, aber wer auch immer der Schuldige ist, ist sicher schon längst über alle Berge. + + + Auf zu Zulu. + + + Natürlich. Wir sollten unterwegs Hawaiianer einen Besuch abstatten, um meinen Schutzanzug zurückzukaufen. + + + Gehen wir. + + + Würde ich ja gerne, aber ich möchte nicht von einer Emission überrascht werden. Warten wir lieber noch ein bisschen. + + + Wir brauchen einen Schutzanzug mit geschlossenem Atemkreislauf, wenn wir nach Pripyat wollen. + + + Mann, das ist echt Scheiße! Mein Schutzanzug ist damit ausgestattet - man kann damit seinen Kopf in einen Ofen stecken und trotzdem normal atmen, aber ich habe ihn an Hawaiianer verpfändet. Wenn wir ihn doch nur irgendwie zurückkriegen könnten. Ich bin pleite und wir brauchen fünf Riesen... + + + Ich könnte dir Geld für den Schutzanzug geben. + + + Ohne mit der Wimper zu zucken? Machst du Witze? + + + Hier, fünf Riesen. + + + Du rettest mir gerade wirklich den Arsch, Kumpel. Ich schließe mich dir an, egal wohin du willst! + + + Ich würde dir das Geld ja gerne geben, aber ich habe keine fünf Riesen. + + + Das kann jedem passieren, Kumpel... Glaub mir, ich weiß, wovon ich rede. + + + Ich werde darüber nachdenken. + + + Klar... ist ja schließlich dein Geld. + + + Also, gibst du mir das Geld, oder was? + + + Ich stelle einen Trupp zusammen und breche dann nach Pripyat auf. Willst du dich mir anschließen? + + + Du hast mir geholfen, Kumpel, also helfe ich jetzt dir. + + + Würde ich gerne, Mann, aber ich kann hier nicht weg, solange ich noch Schulden habe. Das wäre nicht in Ordnung, und außerdem würden die mich wie einen Hund abknallen, falls wir unterwegs zufällig auf sie stoßen. Diesen Mistkerlen ist es egal, wen sie töten... + + + Also, bist du bereit für den Marsch nach Pripyat? + + + Allzeit bereit und so... + + + Komm rein. Was willst du? + + + Du hast die Schulden bezahlt und jetzt raus hier. + + + Das waren arrogante Mistkerle - ich musste sie erledigen. + + + Ich habe gezahlt, deine Schulden sind also getilgt. + + + Wow, danke, Mann! Das werde ich dir nie vergessen. + + + Ganz toll, ich musste auch noch Zinsen zahlen. + + + Das klingt nicht gut... Aber mir hätten sie noch mehr abgeknöpft, das kannst du mir glauben. Danke für deine Hilfe! Das werde ich dir nie vergessen. + + + Ich war noch nicht dort. + + + Beeil dich, bevor sie noch mehr Geld von dir wollen. + + + Ich war dort, aber sie verlangen für die Schulden Zinsen. + + + Sind die verrückt geworden? Ich habe das Geld gerade so zusammengekratzt... Denkst du, du kannst sie davon überzeugen, die Sache mit den Zinsen zu vergessen? Dafür brauchst du eine gute Waffe. Bei denen geht es nur mit roher Gewalt. + + + Was war das für eine Sache mit den Schulden? + + + Tja, also ich hatte einen alten Schutzanzug, der schon ganz schön abgenutzt war. Also habe ich daran gedacht, mir einen neuen zu kaufen. Und genau in diesem Augenblick habe ich einen brandneuen Schutzanzug gesehen, der zum Verkauf stand... Er hatte einen geschlossenen Atemkreislauf und diesen ganzen Schnickschnack... Ich habe mein Geld gezählt - mehrmals - aber es wurde einfach nicht mehr... Dann meinte Jack, der Verkäufer: "Keine Sorge, Wano, du gibst mir den Rest einfach ein andermal." Da dachte ich mir "Was für ein netter Typ!"... + + + Und? + + + Ich habe meinen alten Schutzanzug verkauft und ihm mein ganzes Bargeld gegeben. Jack meinte dann aber: "Schön und gut, Wano, aber was ist mit den Zinsen?". Da dachte ich "Ja, er hat Recht... ich muss die Zinsen berappen..." Also habe ich noch mehr Geld zusammengekratzt und es ihm gegeben. Da hat er aber gesagt: "In der Zwischenzeit ist wieder einiges an Zinsen zusammengekommen, Wano." Die Zinsen steigen so schnell, dass ich gar nicht mit dem Bezahlen hinterherkomme... Ich musste den neuen Schutzanzug verpfänden, und meine Waffen auch... + + + Und was nun? + + + Ich will ihm das Geld geben, das ich dafür bekommen habe. Schließlich steht mein guter Ruf auf dem Spiel... Aber ich habe Angst. Könntest du nicht für mich zu Jack gehen und meine Schulden bezahlen? + + + Gut, ich mach's. + + + Eine Sache gibt es da noch... Wenn du zu ihm gehst, solltest du eine eindrucksvolle Waffe bereithalten. Zeig ihnen, dass mit dir nicht zu spaßen ist, dann werden sie dich ernst nehmen... + + + Ich kümmere mich darum. + + + Im Moment habe ich zu viel um die Ohren. + + + Ich habe genug. + + + Und, kannst du zu Jack gehen und bei ihm für mich die Schulden bezahlen? + + + OK, OK, nicht schießen, ich bezahle die Schulden... Ähm, tut mir leid, ich habe dich mit jemandem verwechselt... + + + Wie ist es mit den Banditen gelaufen? + + + Hey Mann, gut, dass du gekommen bist! + + + Hey. + + + Wir haben Besuch... Ein Stalker will sich mit Schischak unterhalten... Bringst du uns Geschenke oder geht es um etwas Geschäftliches? Wie auch immer, spuck's aus, Kumpel. + + + Ich hätte nicht gedacht, dass du zurückkommst... Also, was hast du für mich? + + + Was gibt es sonst noch zu bereden, Stalker? + + + Was willst du? Bist du müde vom ganzen Herumschleppen der Beute oder was? Da können wir Abhilfe schaffen. + + + Ich muss mit deinem Boss reden. + + + Hey, Kumpel, ich habe keine Zeit für diesen Scheiß. Geh mir aus den Augen, aber schnell! Wenn du nicht sofort verschwindest, mach ich dir mit dieser Schrotflinte Beine. + + + OK, OK... ich bin schon weg. + + + Ich bin wegen des gefangenen Stalkers hier - ich will mit deinem Boss reden. + + + Hm... dann geh weiter, aber benimm dich anständig, oder wir stampfen dich sofort in den Boden... Geh immer gerade aus und dann durch den Gang zwischen den Containern. Verstanden? + + + Ja. + + + Ich bin nur zufällig hier vorbeigegangen und schon wieder weg. + + + Ich bin wegen des gefangenen Stalkers hier - ich will mit deinem Boss reden. + + + Sonst noch was? Verschwinde! + + + OK... + + + Pass bloß auf, du Trottel, willst du mich beleidigen oder was? Du hast uns zwar genug Knete für deinen idiotischen Freund gegeben, aber nicht für eine sichere Route bezahlt! Da hat jemand wohl nicht weit genug gedacht, was? + + + Wie viel macht das? Ich muss zum Lager, nur zur Info. + + + Oh, du bist wirklich ein Scherzkeks! Das ist hier kein Marktplatz, Kumpel, wir haben keine gottverdammte Preisliste... Mach die Taschen leer, Arschloch! + + + Hier, bitte sehr. + + + OK, ich gehe. + + + Was?! Du willst dir meine ganze Beute unter den Nagel reißen? Keine Chance! + + + Ich habe das Lösegeld bezahlt. Ansonsten gibt es nichts zu diskutieren. + + + OK, Stalker, wir haben unsere Arbeit getan. Zeit zu gehen. + + + Danke, Jungs. Man sieht sich. + + + Wartet. Es könnten sich noch mehr Banditen versteckt halten. + + + OK, Zeit zu gehen. Der Junge hat es nicht geschafft, aber wir haben getan, was wir konnten... + + + Wartet, wir sind noch nicht fertig! + + + OK! + + + Kommt mit mir mit nach Pripyat. + + + Ich bleibe besser fürs Erste hier und sorge dafür, dass Mitaj nicht wieder in Schwierigkeiten gerät. + + + Hey, Stalker! Vielen Dank, dass du Mitaj da rausgeholt hast! Wir haben schon angefangen, einen Trupp zusammenzustellen... Hier, für dich - als Zeichen unserer Dankbarkeit. + + + Hey, Stalker! Vielen Dank, dass du Mitaj da rausgeholt hast! Du bist wirklich ein Teufelskerl! Hast alle Banditen alleine auseinander genommen... Hier, für dich - als Zeichen unserer Dankbarkeit. + + + Hey, Stalker! Vielen Dank, dass du dabei geholfen hast, Mitaj da rauszuholen! Ich hätte nicht gedacht, dass das mit dem Lösegeld so gut funktionieren würde... Bestimmt kannst du jetzt etwas Bargeld gut gebrauchen. Hier, für dich - als Zeichen unserer Dankbarkeit. + + + Hey, Stalker! Vielen Dank, dass du dabei geholfen hast, Mitaj da rauszuholen! Ich lag bei der ganzen Sache also richtig. Man darf Banditen gegenüber nicht nachgeben! Man muss ihnen zeigen, wo's langgeht... und du hattest den Mumm dazu. Hier, für dich - jeder hat seinen Anteil bekommen, deswegen ist es nicht viel, aber wir sind dir wirklich dankbar. + + + Und, wie ist es mit dem Lösegeld gelaufen? + + + Ich bin noch dabei. + + + Und, was gibt's Neues? Wann wirst du's den Banditen zeigen? + + + Bald. + + + Hast du deine Meinung geändert oder gibt es Probleme mit den Banditen? ... Na ja, tu, was immer du tun musst, aber beeil dich. Wir wollen nicht, dass sie die Geduld verlieren und Mitaj dran glauben muss. + + + Ich kümmere mich darum. Wird schon klappen. + + + Ich bin froh, es mit einem Profi wie dir zu tun zu haben, Stalker! + + + Mann, wir haben einen guten Mann verloren... der arme Mitaj... Wir konnten ihn nicht retten - tolle Freunde sind wir! + + + Was will man machen... + + + Komm mit mir mit nach Pripyat. + + + Ich bin nur hierher gekommen, um meinen Kameraden Gesellschaft zu leisten. Deswegen bleibe ich hier bei ihnen. + + + Hey, danke für die Sache mit Mitaj... Wir wollten gerade mit dem Lösegeld aufbrechen. Ist ja noch einmal gut gegangen... + + + Hey, danke für die Sache mit Mitaj... Wie konntest du sie überzeugen? Mann, von dir kann man echt 'ne Menge lernen... + + + Hey, danke für die Sache mit Mitaj... Ich hatte Recht, nicht wahr? Diplomatie ist der Schlüssel zum Erfolg! + + + Hey, danke für die Sache mit Mitaj... Ich bin immer noch der Meinung, dass Verhandeln der bessere Weg ist, aber am Ende ist ja alles gut gelaufen. + + + Verschwinde. Mir ist gerade nicht danach, mit dir zu reden. + + + OK, immer mit der Ruhe. + + + Hallo, Herr Profi! + + + Armer Mitaj... er war noch so jung... sein ganzes Leben hatte er noch vor sich... + + + Was will man machen... + + + Gut, wir sind alle da. Grizzly hat mir von dir erzählt... Der Plan ist einfach: Die Jungs bringen sich in Stellung, um das Gebiet unter Beschuss zu nehmen. Ich knöpfe mir von meiner Position aus die Wache vor - das ist das Signal für den Angriff... Merke dir, wo unsere Männer postiert sind, und mache, was du für richtig hältst. Ich bin mir sicher, du wirst schon wissen, was zu tun ist... Bereit? + + + Verstanden. Dann mal los. + + + Moment, ich muss darüber nachdenken. + + + Hättest du Lust auf einen gemeinsamen Abstecher nach Pripyat, Mitaj? + + + Die Wissenschaftler wollen ein paar Leute anheuern. Könntest du dir vorstellen, für sie zu arbeiten? + + + Worum geht es? + + + Ihr Bunker muss bewacht werden. + + + Nein danke, Mann. Mein Abenteuer bei den Banditen reicht fürs Erste. Ich bleibe hier und lasse es ruhiger angehen. + + + In Anomalien müssen Messungen vorgenommen werden. + + + Hm... das klingt interessant. Ich habe schon einmal für die Wissenschaftler gearbeitet und da du es bist, der mich fragt - klar, ich bin dabei. Grizzly, Torba und ich machen uns auf den Weg zum Bunker. + + + Erzähle mir, wie es zu deiner Gefangennahme gekommen ist. + + + Frag lieber nicht, Mann! War mein eigener Fehler. Die Banditen haben mich gewarnt, aber weißt du... sie wollten einen Teil meiner Beute, und schließlich gehört die Zone niemandem, also warum soll ich etwas abgeben? + + + Meine Jungs und ich haben gesagt, dass sie verschwinden sollen, und fürs Erste waren wir sie tatsächlich los. Aber wie sich herausgestellt hat, waren die Banditen ganz schön clever - und haben einen Hinterhalt vorbereitet. Als ich dumm genug war und mich alleine auf den Weg gemacht habe, um nach Artefakten zu suchen, sind sie hinter mir aus ihren Verstecken hervorgesprungen und haben mich gefesselt, bevor ich überhaupt meine Waffe ziehen konnte... So ist das gelaufen. + + + Danke, dass du das Lösegeld für mich bezahlt hast! Das werde ich dir nie vergessen. + + + Danke, dass du mich befreit hast, Stalker! Das werde ich dir nie vergessen. + + + Danke, dass du dabei geholfen hast, das Lösegeld für mich aufzubringen! + + + Danke, dass du dabei geholfen hast, mich zu befreien, Stalker! + + + Danke für deine Hilfe, Stalker... Meine Kameraden werden dich sicher belohnen, wenn wir uns auf den Weg zurück machen... Lass uns gemeinsam zum Lager gehen, dann sind wir schneller da. + + + Gehen wir. + + + Geh nur, ich komme nach. Vorher muss ich hier noch etwas erledigen. + + + Mann, ich dachte, ich komme da nicht wieder lebend raus... Wow, haben Grizzly und Torba die ganzen Leute angeheuert? Heiliger Strohsack! So eine Schießerei habe ich mein ganzes Leben noch nicht gesehen! Können wir jetzt von hier verschwinden? + + + Warte einen Moment, hier in der Gegend könnten noch mehr Banditen sein. + + + Ja, gehen wir. + + + Mann, ich dachte, dass mein letztes Stündlein geschlagen hat... Wow, du hast die ganzen Banditen alleine fertiggemacht! Du hast's echt drauf! Wenn ich das erzähle, wird mir niemand glauben... Können wir jetzt von hier verschwinden? + + + Warte einen Moment, vielleicht habe ich nicht alle erwischt. + + + Ja, lass uns sofort gehen. + + + Danke, Stalker! Verschwinden wir, bevor die Banditen ihre Meinung ändern. + + + Gehen wir. + + + Wir müssen hier weg, und zwar schnell! + + + Wir dürfen den Banditen gegenüber nicht nachgeben. Das Problem schreit nach einer gewaltsamen Lösung. + + + Genau! Ich kenne ein paar Jungs, die uns sicher gerne helfen würden... Und du kommst auch nicht zu kurz, wenn es dir nichts ausmacht, mit anderen zusammen zu arbeiten. + + + Ich bin bereit. + + + Großartig! Ich kenne eine Gruppe von Stalkern, die in einer Spezialeinheit der Polizei waren. Du musst dich mit ihnen nachts nach 1 Uhr an einem vereinbarten Ort treffen - sie warten dort auf dich. + + + OK. + + + Torba hat Recht. Es macht keinen Sinn, ein Blutbad anzurichten, während sie eine Geisel in ihrer Gewalt haben. Wir müssen mit ihnen verhandeln. + + + Hm... vielleicht habt ihr beiden Recht... Die Sache ist nur die... Wenn Torba und ich gehen, werden uns die Banditen nicht mehr gehen lassen, weil wir uns geweigert haben, nach ihrer Pfeife zu tanzen. Sie haben gesagt, sie würden uns lebendig begraben, wenn sie uns wiedersehen. Aber wenn du mit ihnen verhandelst... + + + Klar, ich mache das. Gib mir das Artefakt. + + + Sei vorsichtig. + + + Wird schon schiefgehen. + + + Wir können bis in alle Ewigkeit diskutieren... Unser Erfolg hängt von der Person ab, die das durchzieht. Ich kümmere mich selbst um diese Mistkerle. + + + Mann, das hätte ich nicht erwartet... Ich wünsche dir viel Glück. + + + Ich bin bald wieder zurück. + + + Einverstanden, aber ich brauche etwas Zeit, um mich vorzubereiten. + + + Stalker, hilfst du uns dabei, unserem Kumpel Mitaj aus der Patsche zu helfen? + + + Was ist passiert? + + + Mitaj steckt in ernsthaften Schwierigkeiten... Die Banditen haben angefangen, ihre Muskeln spielen zu lassen, und verlangen einen Anteil der Artefakte, die Stalker finden. Wir haben zu ihnen gesagt, dass sie verschwinden sollen. Wir waren der Meinung, dass die Stalker niemandem etwas schuldig sind, und die Sache war dann auch erst einmal erledigt... Dann haben sie jedoch den armen Kerl in einen Hinterhalt gelockt, als er sich alleine auf den Weg gemacht hat, um Beute zu machen. Und jetzt fordern sie für seine Freilassung ein Lösegeld. + + + Und was wollt ihr tun? + + + Torba schlägt vor, ihnen ein Artefakt als Lösegeld zu geben... Ich allerdings bin der Meinung, dass wir nicht klein beigeben sollten. Das würde ja bedeuten, dass Stalker mit den Banditen kooperieren... Wir sollten das Artefakt verkaufen und mit dem Geld eine schlagkräftige Truppe anheuern, um dann schließlich das Lager der Banditen anzugreifen. + + + Kümmern wir uns ein bisschen später darum. + + + Wirst du uns helfen, Mitaj den Arsch zu retten? Torba vertritt immer noch die Ansicht, dass wir ihnen ein Artefakt als Lösegeld geben sollten. Und ich bestehe nach wie vor darauf, dass wir das Lager der Banditen angreifen sollten. Dafür müssten wir das Artefakt verkaufen und einige Kämpfer anheuern... Wir haben immer noch keine Entscheidung getroffen. + + + Bist du soweit? Wir geben dir das Artefakt, um Mitaj freizukaufen, und warten anschließend auf dich an der Bar. + + + Und, hast du den Banditen schon einen Besuch abgestattet? + + + Noch nicht, ich bin noch nicht soweit. + + + Ja, aber es ist noch nicht viel dabei herausgekommen. Ich melde mich, sobald es Neuigkeiten gibt. + + + Ich war neulich in der Oase und habe dort ein Artefakt gefunden. Interesse? + + + Pah, du gehst doch nicht wirklich davon aus, dass ich dir das glaube, oder? Mir ist ja schon viel über die Oase zu Ohren gekommen, aber ich habe noch NIE gehört, dass wirklich jemand dort war. Nimm's mir nicht übel, aber ich glaube dir kein Wort. + + + Ich habe Dokumente aus der Jupiter-Anlage. + + + Ja, nimm sie alle. + + + Ja, nimm den Evakuierungsbefehl. + + + Ja, nimm die Besprechungsnotizen. + + + Ja, nimm den Lieferplan. + + + Ja, nimm die Notiz aus der Reparaturwerkstatt. + + + Vielleicht ein andermal. + + + Wer könnte Sachen aus einer persönlichen Kiste gestohlen haben? + + + Keiner von meinen Männern, soviel ist sicher. Vielleicht jemand von der Freiheit. Hätten wir die Janow-Station vollständig unter unserer Kontrolle, würde so etwas niemals passieren. + + + Erzähle mir etwas über die Wächter. + + + Was genau willst du wissen? + + + Was macht ihr hier? + + + Das, was wir immer machen. Wir beschützen Stalker vor allerlei Abschaum. Du hast gesehen, wie viele Mutanten hier in der Gegend ihr Unwesen treiben, und das sind keine süßen Tierchen wie beim Kordon. Letzte Nacht zum Beispiel habe ich mit meinen eigenen Augen eine Chimäre gesehen. Es wurde schon dunkel, deswegen sind wir ihr nicht gefolgt... Mutanten sind hier allerdings nicht das einzige Problem... Wir müssen die verlassenen Labors genauer unter die Lupe nehmen und Hinweise sichern, bevor diese Idioten von der Freiheit da rankommen. + + + Was hat euch in das Zentrum der Zone geführt? + + + Machst du Witze? Und warum bist du hier? Ich wage mich mal weit aus dem Fenster und schätze, dass wir aus dem gleichen Grund hier sind. Das Zentrum der Zone war immer ein unerreichbarer Ort, von dem man sich Antworten auf alle Fragen erhofft hat. Wir wollten herausfinden, wie die Zone entstanden ist und wie sie zerstört werden kann. Deswegen sind wir sofort in Richtung Zentrum der Zone aufgebrochen, als wir von dem Gerücht gehört haben, dass der Hirnschmelzer deaktiviert worden sein soll. + + + Und was habt ihr herausgefunden? + + + Vieles, aber das sind vertrauliche Informationen. Alles, was ich sagen kann, ist, dass hinter der Zone mehr steckt, als man vermuten mag. Einige unserer Männer glauben, dass die Zone einem Tumor gleicht, der um jeden Preis entfernt werden muss. Wenn ich danach gehe, was ich gesehen habe, neige ich eher dazu zu glauben, dass es sich bei der Zone um einen lebenden Organismus handelt und wir nichts weiter als Bakterien sind, die in diesem Organismus leben. Selbst wenn man die militärischen Kräfte aller Nationen dieses Planeten bündeln würde, könnte man die Zone nicht zerstören. Aus diesem Grund müssen wir uns etwas Besseres einfallen lassen: Wir müssen herausfinden, warum die Zone existiert, und anschließend dieser Ursache entgegenwirken. + + + Und was, wenn ihr dieser Ursache nicht gewachsen seid? + + + Tja, dann müssen wir uns etwas anderes einfallen lassen, aber wir sind noch guter Dinge. Wir müssen unsere Pflicht erfüllen und zuversichtlich bleiben. + + + Wie bist du bei den Wächtern gelandet? + + + Ach, eine langweilige Geschichte ohne aufregende Heldentaten. Als die Zone entstanden ist, haben mein Freund Lenja und ich beschlossen, hierher zu kommen und uns die Sache genauer anzusehen. Damals war ich Stabsoffizier und Lenja hat beim Geheimdienst gearbeitet. Wir waren wirklich nicht dumm, aber dennoch sind wir in einen ganz schönen Schlamassel geraten. Stundenlang sind wir verwundet und blutüberströmt herumgekrochen, bis uns schließlich die Wächter gefunden haben. Ich bin durchgekommen, Lenja leider nicht. Ich hatte in der Zone keine Freunde, deswegen habe ich beschlossen, bei den Wächtern zu bleiben. Seitdem habe ich übrigens eine Abneigung gegen die Zone. + + + Wie denkst du über die Freiheitler? + + + Offiziell sind wir im Krieg, aber das Leben in der Zone folgt seinen eigenen Regeln. Hier ist es nur in wenigen Gegenden sicher und weder die Freiheitler noch die Wächter haben ein großes Truppenkontingent. Also warum sollen wir uns gegenseitig umbringen? Deswegen gilt das ungeschriebene Gesetz, dass wir uns gegenseitig aus dem Weg gehen. Außerhalb der Janow-Station sieht das jedoch anders aus: Da draußen herrscht immer noch Krieg und das ist kein Kinderspiel. + + + Ach, schon gut. + + + Oh... OK. + + + Ich würde gerne über ein Mitglied der Freiheitler namens Flint reden. + + + Die Freiheitler sind mir egal, solange sie sich von uns fernhalten. + + + Flint, auch bekannt unter dem Namen Magpie, hat in Zaton Stalker reingelegt und sich ihre ganze Beute unter den Nagel gerissen. Danach hat er das Weite gesucht. + + + Und? Das überrascht mich nicht. Bei der Freiheit wimmelt es nur so vor Abschaum wie diesem. + + + Da gibt es noch etwas. Im Steinbruch bin ich auf einen Stalker gestoßen. Bevor er gestorben ist, hat er mir erzählt, dass Flint ihn in einer Anomalie zurückgelassen hat und dann mit der Beute abgehauen ist. + + + Ah, siehst du, so etwas vergessen Stalker nicht... selbst wenn es um Freiheitler geht. Danke für die Information. Wir kümmern uns darum, dass sie Verwendung findet. + + + Ich habe genug gegen ihn in der Hand. Ich meine, dieser Sack hat doch tatsächlich den Mut, sich mit meinen Taten zu brüsten. + + + Das wird dem Ruf der Freiheitler einen schweren Schlag versetzen. Danke für die Information. Wir kümmern uns darum, dass sie Verwendung findet. + + + Schon gut. + + + OK, es ist deine Entscheidung. + + + Ich habe den PDA eures Versorgungsoffiziers Morgan. + + + Einverstanden. + + + Ich werde darüber nachdenken. + + + Einverstanden. + + + OK. + + + Lass mal sehen... Dieser Mistkerl hat also heimlich Geschäfte gemacht und unseren Namen als Tarnung missbraucht... Wenn das auffliegt, ist unser Ruf ruiniert. Wie wäre es, wenn ich dir diesen PDA abkaufe? Ich bezahle gut dafür. Sind 4.000 in Ordnung? + + + Das ist eine gewagte Behauptung. Zeig mir den PDA. + + + Hier. + + + Ich muss sagen, er kam mir auch schon verdächtig vor... jetzt habe ich Gewissheit. Danke, Stalker! Ich hoffe, dass niemand jemals erfährt, dass dieses Gespräch stattgefunden hat. Ich habe eine kleine Belohnung für dich - schließlich hast du den Ruf der Wächter vor großem Schaden bewahrt. + + + Ich behalte ihn erstmal. + + + Noch etwas, interessant... Das hefte ich im Aktenordner ab. + + + Bitte sehr. + + + Danke! Hier, eine kleine Entschädigung für deine Mühen... + + + Das behalte ich als Andenken. + + + Ich bin auf eine Gruppe von Kämpfern gestoßen, die sich den Wächtern anschließen wollen. + + + Wir sind immer auf der Suche nach guten Leuten. Sie sollen bei mir vorbeikommen und dann reden wir. + + + Allerdings gibt es da etwas... Es sind ehemalige Monolith-Kämpfer. + + + Was genau meinst du mit "ehemalige" Monolith-Kämpfer? Meines Wissens nach gibt es bei Monolithern zwei Kategorien: überzeugte und tote. Mir ist noch nie ein "ehemaliger" Monolither untergekommen. + + + Scheinbar wurden sie von jemandem manipuliert. Sie können sich nämlich nicht daran erinnern, was mit ihnen geschehen ist, nachdem sie zum Atomkraftwerk Tschernobyl aufgebrochen waren. Jetzt sind sie alles andere als aggressiv und wissen einfach nicht, was sie tun sollen. + + + Nun, sie sind also nicht auf Streit aus... dann klingt das gar nicht so schlecht... Ich meine, ich würde für sie schon irgendwelche einfacheren Aufgaben finden und dafür sorgen, dass sie diszipliniert bei der Sache bleiben. Ich bin mir im Moment nur nicht ganz sicher, wie ich sie einschätzen soll... Kannst du für sie bürgen? + + + Ja, ich habe Vertrauen in sie. + + + Hm... das Dumme ist nur, dass ich bei dir auch nicht genau weiß, woran ich bin... noch nicht. Tut mir leid. + + + OK, aber denke daran, dass du dafür geradestehen musst, falls sie Mist bauen. Sie werden es nicht alleine zur Janow-Station schaffen. Schnapp dir meine Jungs und führe sie zu dem Monolithertrupp. Dort werden sie mit ihnen reden, und wenn alles passt, werden sie bei den Wächtern aufgenommen. Sag mir Bescheid, wenn du soweit bist und aufbrechen kannst. + + + Nein, ich habe kein großes Vertrauen in sie. + + + Wir nehmen nicht jeden Dahergelaufenen in unsere Fraktion auf. + + + Ich bin soweit und kann jetzt deine Männer zum Monolithertrupp führen. + + + Gut. Ich gebe dir zwei meiner Männer. + + + In Ordnung. + + + Erledigen wir das später, mir ist etwas dazwischengekommen. + + + Halt! Mach was du willst, aber ich werde meine Jungs nicht losschicken, um dann in eine Emission zu geraten. + + + Ich habe den PDA des Wächtergründers gefunden. Interesse? + + + Lass mal sehen... So ist das also abgelaufen... Ich denke nicht, dass die anderen das wissen müssen. Es wäre besser, wenn dieser PDA verschwinden würde. Die Legende der Wächtergründung soll so im Gedächtnis der Leute bleiben, wie sie ist. Verkaufst du mir diesen PDA? + + + Du kannst ihn haben. + + + Danke. Hier, deine Belohnung. + + + Ich werde über dein Angebot nachdenken. + + + Hier, der PDA des Wächtergründers. + + + Danke! Du hast mir damit einen großen Gefallen getan. Hier, deine Belohnung. + + + Ich brauche Kämpfer, die für die Wissenschaftler arbeiten wollen. Kannst du mir weiterhelfen? + + + Wir helfen den Wissenschaftlern immer gerne. Um was geht es? + + + Sie suchen Leute, die ihren Bunker beschützen können. + + + Klar, ich schicke ein paar von meinen Jungs los. + + + Klar, ich schicke ein paar von meinen Jungs los. + + + Klingt gut, aber sie haben schon die Freiheitler engagiert. Wenn ich unseren Trupp dorthin schicke, würde das die Spannungen nur noch verschärfen. + + + Ich habe vor, einen Abstecher nach Pripyat zu machen. Würdest du mir dafür ein paar deiner Kämpfer geben? + + + Wir haben so schon zu wenige Leute! Sprich mit Strider. Der sieht so aus, als würde er sich bei den Wächtern nicht wirklich wohlfühlen. Vielleicht kommt er ja mit dir besser klar. + + + Wir haben so schon zu wenige Leute und für ein hoffnungsloses Unterfangen wie dieses sind mir meine Männer zu kostbar. + + + Mach schnell. Was willst du? + + + Ich höre. + + + Schön, dich gesund und munter zu sehen. + + + Ich habe Dokumente aus der Jupiter-Anlage. + + + Ich bezweifle, dass dort irgendetwas Interessantes ist. Die Anlage wurde schon geplündert, bevor die Stalker dort aufgekreuzt sind. Und dennoch... hm... das hier ist interessant. Ich würde das gerne jemandem zeigen. Verkaufst du mir die Dokumente? + + + Ja, nimm sie alle. + + + Ja, nimm den Evakuierungsbefehl. + + + Ja, nimm die Besprechungsnotizen. + + + Ja, nimm den Lieferplan. + + + Ja, nimm die Notiz aus der Reparaturwerkstatt. + + + Vielleicht ein andermal. + + + Wer könnte Sachen aus einer persönlichen Kiste gestohlen haben? + + + Ich bin keine Wache und es ist nicht mein Job, deine Kiste im Auge zu behalten! Meine Jungs waren das sicher nicht. Die werden sich hüten... + + + Erzähle mir etwas über die Freiheitler. + + + Puh, ich weiß gar nicht, wo ich anfangen soll. Was willst du wissen? + + + Was genau macht ihr hier? + + + Wir sorgen dafür, dass die Behörden nichts vor den Menschen geheim halten können. Du weißt ja, wie das ist: Sobald sie ein neues Labor oder Dokumente gefunden haben, die die Geheimnisse der Zone preisgeben würden, leiten sie sofort einen Militäreinsatz ein und lassen alles verschwinden. Man findet nur etwas heraus, wenn man zuerst an Ort und Stelle ist. + + + Was hat euch in das Zentrum der Zone geführt? + + + Nun ja, den Jungs war einfach danach, einen kleinen Ausflug zu machen. War nur ein Witz. Es ist eine gute Gelegenheit, Dinge zu finden, die die Welt noch nie zuvor gesehen hat. Weder die Armee noch die Stalker waren bisher hier, und aus diesem Grund gibt es überall etwas Neues zu entdecken. + + + Habt ihr etwas gefunden? + + + Ein paar verriegelte Türen und einige merkwürdige neue Artefakte. + + + Wie bist du bei der Freiheit gelandet? + + + Damals, als es die Zone noch nicht gab, war ich mit den Anführern der Freiheit befreundet. Wohlgemerkt waren sie zu der Zeit keine Anführer, sondern ganz normale Hippies. Als ich mich dann in die Zone aufgemacht habe, um dort nach Artefakten zu suchen, bin ich auf diese alten Bekannten gestoßen. Und da dachte ich mir, es kann nicht verkehrt sein, in einem vertrauten Umfeld weiterzumachen. + + + Was hältst du von den Wächtern? + + + Alles Idioten, das ist meine Meinung. Warum zur Hölle wollen sie die Zone zerstören? Sie verschlingt keine wertvollen Rohstoffe und größer wird sie auch nicht. Sie könnten sich einfach entspannt zurücklehnen und die Zone bis ins kleinste Detail erforschen. Stell dir nur vor, wie viele wissenschaftliche Entdeckungen man dabei machen würde... In der gesamten Menschheitsgeschichte ist es uns noch nicht gelungen, die Antigravitation zu verstehen, richtig? Und in der Zone liegen Antigravitationsgeräte einfach so überall herum. Es könnte nicht schaden, die Wächter aus der Zone zu vertreiben, aber andererseits sind sie die Mühe doch gar nicht wert. Ach übrigens, wundere dich nicht darüber, dass wir hier in der Janow-Station mit ihnen klarkommen. Eigentlich herrscht zwischen uns Krieg, aber die Janow-Station gilt als neutrales Gebiet, wenn du verstehst, was ich meine. + + + Ach, schon gut. + + + Kein Problem. + + + Ich will mit dir über einen deiner Stalker reden. + + + Ach ja? Schieß los. Ich hoffe, du bist nicht gekommen, um jemanden zu verpfeifen? + + + Dein Stalker Flint ist in Zaton unter dem Namen Magpie bekannt. Örtliche Stalker suchen nach ihm, weil er sie reingelegt und sich dann mit ihrer Beute aus dem Staub gemacht hat. + + + Und du erwartest von mir, dass ich dir glaube? + + + Hör dir die Geschichten an, die er an der Bar zum Besten gibt. Erst hat er diese Stalker reingelegt und jetzt lügt er deinen Leuten die Hucke voll. + + + OK, entspann dich. Ich rede mit Beard und frage ihn, was Sache ist. Wenn sich deine Behauptungen als wahr herausstellen, kümmern wir uns um Flint auf Freiheitlerart. + + + Hm... ich frage mich, wie er so schnell an das Artefakt gekommen ist. Die Hälfte von dem, was er erzählt hat, ist bestimmt totaler Quatsch. Ich werde mit meinen Jungs reden. Wenn sich deine Behauptungen als wahr herausstellen, kümmern wir uns um ihn auf Freiheitlerart. + + + Schon gut. + + + OK. + + + Einverstanden. + + + Ich werde darüber nachdenken. + + + Bitte sehr. + + + OK. + + + Ich bin auf eine Gruppe von Kämpfern gestoßen, die sich der Freiheit anschließen wollen. + + + Gute Leute können wir immer gebrauchen. Sie sind immer willkommen, sofern sie noch zu haben sind. + + + Es gibt da ein kleines Problem - es handelt sich dabei um ehemalige Monolith-Kämpfer. + + + Ein "kleines" Problem? Eigentlich sehe ich Monolither lieber durch mein Zielfernrohr. Alles andere steht außer Frage. + + + Die Monolither, von denen ich hier rede, sind friedlich. Scheinbar wurden sie von jemandem manipuliert. Sie können sich nämlich nicht daran erinnern, was mit ihnen geschehen ist, nachdem sie zum Atomkraftwerk Tschernobyl aufgebrochen waren. Sie wissen einfach nicht, was sie jetzt tun sollen. + + + Ich bin leider immer noch skeptisch. Was, wenn du mich aus irgendeinem Grund anlügst? + + + Hm, vielleicht kann es nicht schaden, mit ihnen zu reden und herauszufinden, was Sache ist. Ich gebe dir ein paar von meinen Jungs. Sie werden sich mit ihnen unterhalten und wenn alles passt, nehmen wir deine Monolith-Kämpfer bei der Freiheit auf. + + + Wie wäre es, wenn du 'nen Abgang machst? Ich kann nicht glauben, dass du uns vorschlägst, jeden dahergelaufenen Abschaum bei der Freiheit aufzunehmen. + + + Ich bin wegen der Aufnahme der Monolith-Kämpfer bei der Freiheit hier. + + + Meine Männer sind bereit für den Abmarsch. + + + OK, sie sollen mir folgen. + + + Später. + + + Warten wir ein wenig. Emissionen sind nicht gesund. + + + Ich habe den PDA des Wächtergründers gefunden. Interesse? + + + Warum nicht, sofern irgendetwas Brauchbares darauf gespeichert ist... Wow, das ist wirklich interessant. Dauernd verbreiten sie ihre verdammte Propaganda in der Zone, aber wie es scheint, ist ihre eigene Fraktionsgeschichte völlig für den Arsch. Ich würde mir das alles gerne mal in Ruhe durchlesen. Hör zu, ich würde gut für diesen PDA bezahlen. + + + Du kannst ihn haben. + + + Danke. Hier, deine Kohle. + + + Ich werde darüber nachdenken. + + + Hier, der PDA des Wächtergründers. + + + Danke. Hier, deine Kohle. + + + Die Wissenschaftler wollen einige Leute anheuern. Kannst du ein paar deiner Männer zu ihnen schicken? + + + Nun, das hängt davon ab, was die Wissenschaftler von ihnen wollen. + + + Die Wissenschaftler brauchen Leute, die ihren Bunker beschützen. + + + Klar, ich schicke ein paar von meinen Jungs los. + + + Klar, ich schicke ein paar von meinen Jungs los. + + + Ich würde ja gerne helfen, aber die Wächter sind schon dort. Wir haben in der Janow-Station schon genug Zeit mit diesen Bastarden verbracht, deswegen muss ich leider passen. + + + Gibst du mir einen Trupp, der mit mir nach Pripyat geht? + + + Sprich mit unserem neuen Rekruten, Strider sein Name. Er macht keinen besonders zufriedenen Eindruck. Vielleicht kommt er bei dir besser zurecht. + + + Wenn ich jemanden übrig hätte, wäre das kein Problem, aber leider ist das nicht der Fall - tut mir leid. Wir haben hier genug um die Ohren. + + + Und, was willst du? + + + Was machst du hier? + + + Schön dich zu sehen, Mann! Ich habe bei der Freiheit schon einige gute Dinge über dich gehört. Was kann ich für dich tun? + + + Ich habe im Eisenbahntunnel einen merkwürdigen Gegenstand gefunden. Interesse? + + + Hm, ne, das ist nur Schrott. Sieht zwar wie ein Artefakt aus, aber scheint keine Wirkung zu haben. Solche Sachen geben wir normalerweise den Wissenschaftlern. + + + Ich habe in Zaton einen merkwürdigen Gegenstand gefunden. Interesse? + + + Und was soll ich damit anfangen? Ich bin nicht einmal besonders an normalen Artefakten interessiert, verstehst du... Zeig das Ding doch mal den Wissenschaftlern. Die zahlen gut, selbst für allen möglichen Schrott. + + + Ich suche Leute, die den Bunker der Wissenschaftler bewachen können. Kennst du jemanden? + + + Dafür ist niemand besser geeignet als die Freiheit. Du könntest es auch bei den Stalkern versuchen, aber besonders vertrauenswürdig sind die nicht. Wenn sie dich hängenlassen, wie willst du sie dann später finden? Auf jeden Fall rate ich dir davon ab, mit den Wächtern darüber zu reden. Diese Fanatiker sind nur für die Mutantenjagd zu gebrauchen und das war's. + + + Ich suche Leute, die für die Wissenschaftler Proben sammeln würden. Kennst du jemanden? + + + Klar. Geh zu Loki - der hilft dir sicher gerne. Du könntest es auch bei den Stalkern versuchen, aber einige von ihnen sind nicht besonders vertrauenswürdig. + + + Jemand hat Sachen aus meiner Kiste gestohlen. Hast du 'ne Ahnung, wer das gewesen sein könnte? + + + Was ist aus dieser Gegend nur geworden, Mann? Ich bezweifle, dass jemand von den Wächtern dahinter steckt. Bei denen geht es ziemlich diszipliniert zu - für meinen Geschmack zu diszipliniert. Und bei der Freiheit braucht niemand deinen Schrott, deswegen muss es einer von den Stalkern gewesen sein. + + + Ich bin neulich auf einen Monolithertrupp gestoßen. + + + Wow, von denen habe ich noch nie jemanden zu Gesicht bekommen! Aber ich habe schon die eine oder andere ziemlich beängstigende Geschichte über die Jungs gehört. Die sollen völlig verrückt sein. War bestimmt ein harter Kampf, was? + + + Es gab keinen Kampf, die Jungs sind friedvolle Zeitgenossen. Sie meinten, dass es so war, als hätten sie einen Schleier vor den Augen gehabt, aber jetzt hätten sie sich wieder voll unter Kontrolle. Und jetzt wissen sie einfach nicht, was sie tun sollen. Deswegen versuche ich, sie bei einer Fraktion oder so unterzubringen. + + + Wow, klingt interessant. Tja, also die Stalker sind keine Option, weil die sie wahrscheinlich einfach abknallen würden - schließlich waren sie verfeindet... Versuch es mal bei Loki. Niemand wird ihnen zu nahe treten, wenn sie die Uniform der Freiheit tragen. + + + Wer könnte an der Wahrheit über den Gründer der Wächter interessiert sein? + + + Ich hab wirklich keine Ahnung. Das hängt ganz stark davon ab, inwieweit sich diese Wahrheit von der offiziellen Version der Wächter unterscheidet. Sprich mit Loki darüber. Er wird dir sagen, was Sache ist. + + + Ich habe den PDA des Versorgungsoffiziers der Wächter. Bist du interessiert? + + + Nicht im Geringsten. Ich weiß, wo ich die Sachen, die er verkauft, viel billiger kriegen kann. Und ich glaube nicht, dass auf dem PDA sonst noch irgendetwas ist, das mich interessieren könnte. + + + Kennst du jemanden, der mit mir nach Pripyat gehen würde? + + + Pripyat? Nicht schlecht! Nun ja, ich würde liebend gerne einfach alles stehen und liegen lassen, aber ich habe gerade wirklich viel zu tun... + + + Pripyat? Wow! Du solltest Loki fragen, ob er ein paar Leute für dich hat. Ich glaube nicht, dass er einen guten Mann wie dich hängen lässt. + + + Du willst dich ein bisschen entspannen? Meine Drinks sind zwar nichts Besonderes, aber ruhig und gemütlich ist es hier. + + + Ich habe alles, was das Herz begehrt. Was darf's sein? Was zum Futtern, ein Drink oder doch ein paar Schüsse? + + + Ich suche Leute, die den Bunker der Wissenschaftler bewachen können. Wüsstest du jemanden? + + + Rede mit den Stalkern. Ich schätze, die würden gerne für diese blödstudierten Wissenschaftler arbeiten... Dann kriegen sie vielleicht sogar eine offizielle Genehmigung für den Aufenthalt in der Zone. + + + Ich suche Leute, die für die Wissenschaftler Proben sammeln würden. Hast du eine Idee? + + + Ich rate dir, nicht mit unerfahrenen Stalkern zusammenzuarbeiten. Die würden sowieso nichts finden, sondern eher etwas verlieren, wenn du verstehst, was ich meine. + + + Ich bin neulich auf einen Monolithertrupp gestoßen und will dich etwas fragen. + + + Weißt du, jede andere Person, die ich kenne und die an Monolith-Kämpfer geraten ist, hat ein paar Löcher im Schutzanzug und keinen Puls mehr. Du hingegen siehst noch ziemlich lebendig aus. Also, was willst du von mir wissen? + + + Auf diesen Trupp trifft das nicht zu. Ich habe mit ihnen geredet und musste nicht zur Waffe greifen. + + + Das kann nicht sein!? + + + Und ob. Sie meinten, dass es so war, als wäre ein Schleier vor ihren Augen gewesen, der jetzt verschwunden sei. Und jetzt wissen sie einfach nicht, was sie tun sollen. Sie haben mich um Rat gefragt. + + + Also ich kann ihnen nur raten, sich von Stalkern fernzuhalten. Sie haben ein gutes Gedächtnis und würden sie nicht am Leben lassen. Du könntest vielleicht versuchen, ihnen dabei zu helfen, sich einer Fraktion anzuschließen. Allerdings weiß ich nicht, ob die Wächter oder Freiheitler mit ihnen etwas zu tun haben wollen. + + + Ich habe einen PDA mit der Wahrheit über den Gründer der Wächter. Hast du Interesse? + + + Ich kann mit Getratsche nichts anfangen, vergiss das nicht. Wenn du Informationen verkaufen willst, ist Uhu der richtige Ansprechpartner. Er steht auf so was. Andererseits wären Informationen wie diese auch etwas für Loki oder Shulga. + + + Ich habe den PDA des Versorgungsoffiziers der Wächter. Wäre das was für dich? + + + Ich werde das Gefühl nicht los, dass mir dieser PDA Ärger mit den Wächtern einbringen könnte, und da bin ich nicht scharf drauf. Versuch es mal bei Uhu. + + + Ich brauche medizinische Hilfe. + + + Lass mal sehen... + + + Schon besser. + + + Kennst du jemanden, der mit mir nach Pripyat gehen würde? + + + Sprich mit dem Stalker Wano. Er ist immer schnell dabei - weswegen er häufig in Schwierigkeiten steckt. + + + Hier in der Gegend sind nicht viele verrückte Typen. Deswegen musst du dich woanders umhören, Kumpel. + + + Brauchst du Medikamente oder bist du nur zum Plaudern gekommen? + + + Jemand hat Sachen aus meiner Kiste gestohlen. Hast du 'ne Ahnung, wer das gewesen sein könnte? + + + Kennst du den Namen dieses Stalkers? + + + Ich habe gehört, dass er noch nicht lange hier ist... Wie hieß der verdammte Kerl doch gleich? Snob? Oder Snack... nein, nein. Es liegt mir auf der Zunge... Snag, das war es! Sein Name lautet Snag. + + + Was geht, Bruder? + + + Hey. Ich muss etwas Wichtiges mit dir besprechen. + + + Cool, lass uns zuerst einen Drink nehmen, damit wir uns auch wirklich ernsthaft über diese wichtige Sache unterhalten können! + + + OK, lass uns was trinken! + + + Nein, im Moment ist mir nicht nach einem Drink. + + + Also, um was geht es? + + + Ich habe vor, über den unterirdischen Durchgang unterhalb der Jupiter-Anlage nach Pripyat zu gelangen. Nitro kann den Eingang entriegeln. + + + Hm... ein unterirdischer Weg nach Pripyat... ist eine gute Idee... das müssen wir mit einem weiteren Glas begießen. + + + Prost. + + + Hey, schmeckt richtig gut. Ich hoffe nicht, dass du deinen Plan ganz alleine in die Tat umsetzen willst? Nein... das wird nichts... ich gehe mit... und wir brauchen noch mehr Leute... Ein paar vertrauenswürdige Kameraden können bei einem Vorhaben wie diesem nicht schaden... + + + Nitro hat mir geraten, einen Trupp zusammenzustellen... + + + Ja, das ist keine schlechte Idee... Trinken wir noch einen auf den Erfolg dieses Vorhabens... + + + Wohl bekomms! + + + Das kriege ich schon alleine hin... Ich meine, in Zaton habe ich ein Lager voller Blutsauger alleine auseinander genommen... eine Gasflasche und dann war die Sache erledigt. + + + Wow, Respekt, Mann. Trinken wir darauf, dass man für den Fall der Fälle immer eine Gasflasche dabei hat. + + + Amen! + + + Vertrauenswürdig, was? Tja, hier findest du nur Abschaum... In Zaton habe ich einen Händler getroffen, aber dann hat sich herausgestellt, dass er von den Wächtern ist... + + + Wow, sogar bei den Wächtern gibt es Abschaum... Was ist aus dieser Welt nur geworden? Ach, wir sollten uns darüber nicht den Kopf zerbrechen, sondern lieber etwas trinken. + + + Ich erhebe mein Glas auf deine Weisheit. Prost. + + + Mmm... nicht schlecht, oder? Ein Trupp wäre eine gute Idee, wir brauchen mindestens drei Leute... Hast du jemanden im Sinn? + + + Ich trommle ein paar Jungs zusammen... Außerdem brauchen wir Schutzanzüge mit geschlossenem Atemkreislauf... + + + Ja, Sicherheit geht vor und so... Wenn wir schon beim Thema sind: Über mich brauchst du dir keine Gedanken machen, mein Schutzanzug ist gut. Aber wir brauchen die Dinger für die anderen und das dürfte nicht ganz einfach werden. Schutzanzüge wie diese sind hier nicht wirklich leicht zu kriegen. Auf eine erfolgreiche Suche. + + + Prost. + + + Kennst du diesen Verrückten namens Noah? Er hat sich in einem alten Kahn mit allen möglichen Sachen verbarrikadiert... Zur Begrüßung schenkt er seinen Gästen eine Ladung Blei aus den beiden Läufen seiner Schrotflinte. + + + Ja, ich habe ihn schon lange nicht mehr gesehen. Vor einer Weile haben wir zusammengearbeitet. Er war ein fähiger Kämpfer... Ein Jammer, dass er immer so schnell austickt. Trinken wir auf ihn und seinen Geisteszustand! + + + Auf Noah! + + + Vor einiger Zeit habe ich Wano in der Janow-Station getroffen. Scheinbar konnte er seine Schulden bei den Banditen nicht begleichen... Wie auch immer, ich habe dem armen Kerl geholfen... + + + Cool, wenn er dabei ist, macht das Ganze sicher noch mehr Spaß. Außerdem kann er den ganzen Proviant schleppen. Auf Wano! + + + Das kannst du laut sagen, Bruder! + + + Im Bunker der Wissenschaftler hängt ein Typ vom Militär rum... der hat dort nichts zu tun. Vielleicht schließt er sich uns ja an. + + + Ja, jemanden von der Armee könnten wir gut gebrauchen... Trinken wir darauf, dass er sich uns hoffentlich anschließt. + + + Tun wir das. + + + Du wirst es nicht glauben, aber neulich habe ich einem Monolithertrupp geholfen... Scheinbar haben sich plötzlich die lockeren Schrauben in ihren Schädeln wieder gefestigt und dann wussten sie nicht, was sie tun sollen... Also habe ich ihnen geholfen und jetzt hängen sie in der Janow-Station herum. + + + Hm... dieser Wodka ist dir wohl direkt ins Hirn gestiegen, hah! Ach, von dem guten Zeug kann man einfach nicht genug kriegen! + + + Wie wahr. + + + OK, das sollte es gewesen sein. Am Wichtigsten ist es, dass wir uns dort unten nicht verirren... + + + Keine Sorge - ich habe mir den Bauplan besorgt. + + + Cool. Trinken wir noch einen auf den Erfolg unseres Vorhabens. + + + Darauf trinke ich einen! + + + Ach, entspann dich, Mann... neulich habe ich die Oase gefunden... den Ort, den sonst niemand erreicht... + + + Wow, bist ja ein richtiger Fährtensucher, Mann. Mit dir finden wir den Weg nach Pripyat, ohne mit der Wimper zu zucken. Prost. + + + Prost. + + + Na, alles klar? + + + Ich glaube, wir haben genug Leute. Wir können aufbrechen. + + + Bist du dir sicher? Noch eine helfende Hand könnte nicht schaden. + + + Ja, ich bin mir sicher. Gehen wir. + + + Du hast Recht. Ich versuche, noch ein paar Leute aufzutreiben. + + + Gut. Lassen wir's krachen, Jungs! + + + Gehen wir. + + + Kämpfer sind schön und gut, aber hast du für Schutzmaßnahmen gesorgt? Du brauchst einen Schutzanzug mit geschlossenem Atemkreislauf, bevor wir gehen... Ich schleppe deinen toten Hintern nirgendwohin. Mein dickes Schießeisen und die Munition sind schon schwer genug. + + + Ja, ich verstehe. + + + Warten wir. Mit Emissionen ist nicht zu spaßen! + + + Wo finde ich Kämpfer, die sich unserem Trupp anschließen wollen? + + + Frag die Leute bei der Jupiter-Anlage... Diejenigen, die in Zaton geblieben sind, werden auch sicher nicht nach Pripyat wollen. Das müssen Kerle sein, die vor nichts zurückschrecken... die sich für etwas begeistern lassen, das man prinzipiell als hoffnungsloses Unterfangen bezeichnen könnte. Ist dir vielleicht schon einmal so jemand über den Weg gelaufen? Vielleicht jemand, bei dem du noch etwas gut hast. Oder kennst du jemanden, der sich noch keiner Gruppierung angeschlossen hat? + + + Das sind genug Leute. Wir müssen ja nicht gleich eine ganze Division aufstellen... Eine Guerillataktik tut's auch. + + + Was hältst du von Strider? + + + Monolither sind normalerweise fanatische und erbitterte Kämpfer... Aber was ehemalige Mitglieder betrifft, bin ich mir nicht sicher. Strider wirkt nach außen hin ruhig, aber der Schein kann trügen. + + + Wow! Eine Monolith-Panzerung. Wo zum Teufel hast du die her? + + + Das war Teil eines Sets. Darf ich vorstellen? Strider, ein ehemaliger Monolith-Kämpfer. + + + Ich wusste gar nicht, dass es "ehemalige" Monolith-Kämpfer gibt. Na ja, wir werden sehen, aus welchem Holz er geschnitzt ist, wenn es richtig losgeht. + + + Was denkst du über Sokolow? + + + Dieser Typ trägt einen interessanten Schutzanzug, mit allerlei wissenschaftlichem Schnickschnack. So einen habe ich schon seit Jahren nicht mehr gesehen. + + + Das ist Sokolow, der Kopilot des abgestürzten Militärhubschraubers. + + + Man erkennt auf den ersten Blick, dass er kein Wissenschaftler ist. Ein guter Soldat kommt immer gelegen. + + + Wie lange kennst du Wano schon? + + + Wir sind uns einige Male in der 100 Rads Bar über den Weg gelaufen. Man sagt, er sei ehrlich, optimistisch und ein guter Stalker... Aber er ist einfach zu leichtgläubig und das kann in der Zone ein verhängnisvolles Manko sein. + + + Wano ist also dabei, ja? Gut, dann haben wir jemanden, der unseren ganzen Proviant schleppen kann... Hah, mach dich locker, war nur Spaß. + + + Wer könnte Sachen aus einer persönlichen Kiste gestohlen haben? + + + Jemand hat dich beklaut? Das ist echt mies. Ich weiß gar nicht, was ich sagen soll. Hier in der Gegend hat sich niemand auffällig verhalten... Sollte ich etwas herausfinden, gebe ich dir auf jeden Fall Bescheid. Ratten können wir in unserem Lager nicht gebrauchen. + + + Wie ich gehört habe, hat hier vor kurzem jemand herumgeballert... + + + Ach, das war ich. Ein paar Idioten haben beschlossen, sich am Turm zu treffen... Hatten einen Streit oder so und haben angefangen herumzubrüllen. Ich habe mit meinem alten MG ein paar Mal in die Luft geschossen und dann sind sie in Richtung Umspannwerk abgezischt. Das war's dann auch schon wieder mit ihrem Treffen, he he. + + + Ich habe beschlossen, das Artefakt aus der Oase herzugeben. + + + Eine kluge Entscheidung - geben Sie es bitte mir. + + + Hier. + + + Ausgezeichnet, dieses Wunder muss sofort genauer untersucht werden... Ach übrigens, danke für Ihre Mühe. Hier, Ihre Bezahlung. + + + Kann ich Ihnen irgendwie helfen? + + + Danke, wir haben schon einen Stalkertrupp, der für uns arbeitet. Aber... es gibt da eine Theorie, oder besser gesagt eher eine Legende... Haben Sie schon einmal von der Oase gehört? + + + Ich werde versuchen, die Oase zu finden. + + + Tut mir leid, im Moment habe ich viel zu tun. + + + Nein, noch nie davon gehört. + + + Dann passen Sie auf. Viele Leute reden davon, aber scheinbar hat bisher niemand die Oase gesehen. Man kann sie mit einer Heilquelle vergleichen. Sobald man in der Oase ist, heilen die Wunden und man kommt wieder zu Kräften. Viele Gerüchte machen die Runde, eines unglaubwürdiger als das andere... Einige behaupten, sie hätten die Oase in ihren Träumen gesehen... aber als Wissenschaftler muss ich die Frage stellen "Woher wollen Sie wissen, dass es wirklich die Oase war?". Also wenn Sie danach suchen würden... ich kann zwar keine großartige Bezahlung versprechen, aber falls die Oase wirklich existiert, würde ihre Entdeckung unsere Forschungen einen großen Schritt vorantreiben. + + + Ich habe die Oase gefunden. + + + Wirklich? Also existiert sie wirklich?! Halten Sie mich bitte nicht für einen unbelehrbaren Skeptiker, aber haben Sie irgendetwas mitgebracht, das ihre Existenz belegt? + + + Ja, ich habe etwas gefunden, das wie ein Artefakt aussieht. + + + Geben Sie es mir, schnell! + + + Hier, bitte. + + + Ausgezeichnet, dieses Wunder muss sofort genauer untersucht werden... Ach übrigens, danke für Ihre Mühe. Hier, Ihre Bezahlung. + + + Nein, vielleicht kann ich es ja noch gebrauchen. + + + Das ist aber ziemlich egoistisch, ja sogar gefährlich. Die genauen Eigenschaften dieses Artefakts sind gänzlich unbekannt. Was wäre, wenn Sie morgen aufwachen und Ihre Beine gelähmt sind? Oder sich Ihre Haut grün verfärbt? Ich versichere Ihnen, dass derartige Objekte bei Wissenschaftlern am besten aufgehoben sind. Zumindest würden wir versuchen, uns zu schützen. + + + Ihre Einschüchterungstaktik funktioniert bei mir nicht. Ich behalte das Artefakt. + + + Also gut, Sie können es haben. + + + Nein. + + + Nein? Und was soll ich dann wissenschaftlich untersuchen? Wissen Sie, was Wissenschaftler von anderen Menschen unterscheidet? Ihr Bestreben, jede Theorie mit Fakten zu belegen! Ich brauche einen Beweis! + + + OK, ich gehe noch einmal dorthin. + + + Ich habe schon genug Zeit verloren. Ich kann jetzt nicht zurück. + + + Wenn die Bezahlung für Sie zweitrangig ist, denken Sie doch einmal an die neuen medizinischen Möglichkeiten, die sich durch die Oase ergeben würden! Wenn ich mich nicht irre, handelt es sich dabei um eine Anomalie... so wie auch andernorts in der Zone. Und wenn das stimmt, dann wäre die Oase die erste Anomalie mit Heilwirkung! + + + Was hat Sie hierher verschlagen? + + + Haben Sie die Söldner gesehen, die uns beschützt haben? + + + Es freut mich, endlich wieder ein intelligentes Wesen zu sehen. Wie kann ich Ihnen helfen? + + + Können Sie das glauben? Die Söldner, die uns beschützen sollten, wurden direkt vor unserem Bunker getötet! + + + Hermann, wissen Sie irgendetwas über die Oase? + + + Die Oase? Pah, alles erstunken und erlogen, so einfach ist das. Die Menschen glauben gerne an irgendwelche Wundermittel, deswegen erfinden sie diese Ammenmärchen. Glauben Sie mir, die Oase ist nichts weiter als das Hirngespinst von Menschen mit zu viel Fantasie. + + + Viele reden darüber. + + + Zu viele. Aber keiner von ihnen war jemals dort. Ich bleibe bei der wissenschaftlichen Sichtweise: Was nicht bewiesen werden kann, existiert nicht. + + + Gut, ich verstehe... Danke. + + + Gut. Dann mal los. + + + Cool... Wir sind wieder zurück, bevor du "Blutsauger" sagen kannst - hah! + + + Wir werden sehen. + + + Cool... Aber warten wir noch, bis die Emission vorbei ist, und dann können wir gehen. + + + Guten Tag, Stalker. Ich bin Onkel Jar... Bist von dem Marsch bestimmt erschöpft, was... Wenn du schon hier bist, kannst du ja einen Happen essen. Hast dir außerdem einen guten Zeitpunkt ausgesucht - ich brauche Hilfe. In meinem Alter kriegt man manche Dinge nicht mehr alleine hin. Aber als ich noch jung war, da... + + + Und, bist du fit? Wie wäre es mit einem Spaziergang? Könntest einem alten Mann helfen... + + + Wie geht's? Du siehst von Tag zu Tag besser aus... + + + Um was geht es? + + + Ach, ein Kinderspiel... Wir beide machen uns auf den Weg nach Kopatschi - ist nicht weit von hier. Alles Weitere wirst du selbst sehen, wenn wir dort sind... + + + Helfen dir deine Freunde von der Freiheit nicht? + + + Ich will sie mit dieser Sache nicht nerven... Wir beide kriegen das schon hin, ist kein Problem. + + + Kommst du mit nach Pripyat? + + + Ne... aber wenn ich jünger wäre... ich weiß noch, wie ich immer nach Sibirien und zurück gewandert bin, aber mittlerweile versuche ich, meine Ausflüge etwas kürzer zu halten... ich schätze, ich werde langsam alt. + + + Pass auf dich auf. + + + Warte. Falls du zur Janow-Station willst, können wir ja zusammen gehen. Ist immer nett, wenn man sich unterwegs mit jemandem unterhalten kann... + + + Danke, aber ich will lieber alleine gehen. + + + Auf zur Janow-Station. + + + Danke, dass du einem alten Mann geholfen hast... Hier, für dich. Falls du irgendwelche Fragen hast, frag einfach drauflos. Ich werde sie so gut wie möglich beantworten... + + + Warum hast du nicht Mitglieder der Freiheit um Hilfe gebeten? + + + Was soll es bringen, die Söldner gegen die Freiheitler aufzubringen? Wir hatten schon einen Krieg und das sollte reichen. Das hier ist eine persönliche Angelegenheit und da will ich sie nicht mit reinziehen, verstehst du? + + + Was ist hier passiert? + + + Einige Kerle sind hierher gekommen und wollten mich töten... Ich war gerade im Gebüsch bei der Arbeit, als ein Söldnertrupp aufgekreuzt ist. Ihr Anführer hat mit seinem PDA kommuniziert und irgendetwas von einem Zentrallabor in Pripyat gefaselt, ein Befehl mit hoher Dringlichkeitsstufe bla bla... Dann bin ich auf einen dämlichen Ast getreten und schon wussten sie, dass ich im Gebüsch bin. Also habe ich mir mein Gewehr geschnappt und die Beine in die Hand genommen. Ich dachte mir schon die ganze Zeit, dass sie irgendwann kommen werden. Das ist der Preis, den man für Lauschangriffe bezahlen muss. + + + Am Wichtigsten ist es, dass du auf alles gefasst bist und dich nicht überraschen lässt. Folge mir leise... Wenn wir unauffällig bleiben und uns nicht bewegen, wird das alles ganz einfach. + + + OK. + + + Wir müssen hier weg. Lass uns später reden. + + + OK. + + + Ich stelle einen Trupp zusammen und breche dann auf nach Pripyat. Willst du dich mir anschließen? + + + Klingt verlockend, aber... nein danke. Die Wissenschaftler haben mir eine Genehmigung für den Aufenthalt in der Zone versprochen und außerdem zahlen sie gut. Tut mir leid, aber ich bleibe hier. + + + Seid ihr bereit, Messungen in Anomalien vorzunehmen? + + + Wir sind immer bereit, solange du uns Deckung gibst. Welche Anomalie sollen wir uns vorknöpfen? + + + Gehen wir nach Fen. + + + Gehen wir am Dorf Kopatschi vorbei zum Aschehügel. + + + Wartet, ich habe meine Meinung geändert. + + + Wir sind bereit, aber sollten besser warten, bis die Emission vorbei ist... + + + OK. + + + Messungen vorgenommen, gehen wir. + + + Ich will hier auch nicht unbedingt länger herumhängen. Wohin als Nächstes? + + + Gehen wir nach Fen. + + + Gehen wir am Dorf Kopatschi vorbei zum Aschehügel. + + + Zum Bunker der Wissenschaftler. + + + Moment, ich muss nachdenken. + + + Seid ihr soweit, um zurück zum Bunker zu gehen? + + + Wir können es gar nicht mehr erwarten... + + + Wenn das so ist, dann los. + + + OK, wartet noch eine Sekunde auf mich... + + + Ich habe einige Fragen. + + + Schieß los und ich werde versuchen, deine Fragen zu beantworten. + + + Ich glaube, das war alles. + + + Ich möchte mehr über die Mission der Wissenschaftler erfahren. + + + Ah, der Tunnel... Da ist etwas, ein merkwürdiges Artefakt oder so. Dieser Ort ist wirklich sonderbar. Zuerst war alles ruhig, aber dann habe ich etwas in meinem Kopf gespürt... Außerdem wimmelt es dort nur so von Hamstern, aber mach dir darüber keine Gedanken - die werden wir ohne Probleme los. + + + Warst du schon einmal dort? + + + Ja, aber wir sind nicht tief in den Tunnel vorgedrungen. Wir haben gerade für Hermann Messungen vorgenommen, als die Hamster in großer Anzahl aufgetaucht sind. Als wir dann wieder bei den Wissenschaftlern waren und ihnen die Messergebnisse gezeigt haben, waren sie so aufgeregt wie kleine Kinder. Sie wollten, dass wir den kompletten Tunnel unter die Lupe nehmen, aber ich gehe da nicht noch einmal rein! Jetzt haben sie dich ja angeheuert und wir sind nur hier, um dir Deckung zu geben. + + + Ich verstehe. + + + Wir haben schon einmal Messungen vorgenommen, deswegen kriegen wir das schon hin. + + + Wo habt ihr Messungen vorgenommen? + + + Nun ja, Messungen klingt wie 'ne große Sache, war aber nur ein kleiner Job, und ehrlich gesagt bisher der einzige dieser Art. Es ging dabei um das Anomalien-Psi-Feld in diesem verdammten Tunnel. Sobald wir die Geräte eingeschaltet hatten, kamen die Hamster aus jedem gottverdammten Loch gekrochen. Mace hätte es fast nicht mehr rausgeschafft, so zerbissen wie er war. + + + Findest du das nicht merkwürdig? + + + Nein, warum sollte ich? Die Zone mag keine neugierigen Leute, deswegen ist das völlig normal. Oserski hat das mal gesagt und wie du siehst, hat er Recht behalten. Frag ihn, wenn du willst, vielleicht weiß er etwas, das er uns nicht gesagt hat. + + + Ich verstehe. + + + Verstehe. + + + Was kannst du mir über die Leute sagen, die im Bunker leben? + + + Ein zusammengewürfelter Haufen ist das... Zwei Wissenschaftler - Hermann in leitender Position und Oserski. Sie haben Nowikow angeheuert, der sich um den ganzen technischen Kram kümmert, und Gari als Ortskundigen. Dann sind da noch wir... Uns haben sie neulich engagiert, um Messungen vorzunehmen und andere wissenschaftliche Dinge zu erledigen. Ach ja, Gari hat außerdem vor kurzem einen Kerl von der Armee in den Bunker gebracht. Das war's. + + + Kannst du mir mehr über Hermann erzählen? + + + Hermann hat hier das Sagen. Er ist Professor bei irgendeinem Institut, wahrscheinlich ein geheimes... Er hat die Expedition organisiert. Nachdem der Hirnschmelzer deaktiviert worden war, haben sie sofort diesen Bunker hier gebaut. Er ist auch derjenige, der Gari und uns angeheuert hat. Er zahlt gut und hat uns sogar eine offizielle Genehmigung für den Aufenthalt in der Zone versprochen. + + + Reden wir über etwas anderes. + + + Kannst du mir mehr über Oserski erzählen? + + + Er ist ein feiner Kerl und die rechte Hand von Hermann. Hin und wieder befolgt Hermann sogar seine Ratschläge. Viel mehr weiß ich allerdings nicht über ihn - meistens haben wir mit Hermann zu tun. + + + Kannst du mir von Nowikow erzählen? + + + Er ist wie Einstein auf Abenteuerreise, Mann. Nowikow weiß genau, was er zu tun hat, wenn er mit technischen Sachen herumhantiert. Tatsächlich ist er besser als jeder andere, der dir hier über den Weg laufen könnte. Ich weiß nicht, was ihn hierher verschlagen hat, aber man kann durchaus sagen, dass die Zone für ihn kein Buch mit sieben Siegeln ist - er weiß mehr über die Zone als wir. + + + Kannst du mir von Gari erzählen? + + + Gari ist ein feiner Kerl und war einer der ersten, die hier aufgetaucht sind. Er hat mir erzählt, dass die Wissenschaftler gerade abgesetzt wurden, als er hierher gekommen ist, und dann hat er sich ihnen einfach angeschlossen. In letzter Zeit langweilt er sich, weil er nicht gerne herumhockt. Allerdings kann er nicht gehen, bevor er nicht seinen Vertrag mit den Wissenschaftlern erfüllt hat. Falls du sonst noch etwas über ihn wissen willst, frag ihn am besten selbst. + + + Erzähle mir etwas über den Typen von der Armee. + + + Hah. Gari ist auf ihn gestoßen, als er vor den Zombies weggerannt ist. Er kann sich glücklich schätzen, dass es Gari war, denn die meisten anderen hätten ihn sicher erledigt. Er bleibt jetzt im Bunker und da mache ich ihm keinen Vorwurf. + + + Was machen die Söldner hier? + + + Diese verdammten Halsabschneider bewachen den Bunker. Sie sind hier vor einiger Zeit aufgetaucht, haben mit Hermann geredet und sind dann geblieben. Ich habe den Eindruck, dass Hermann auch nicht gerade glücklich darüber ist... Ihr Anführer heißt Black und ist ein Thema für sich. + + + Was kannst du mir über diese Gegend erzählen? + + + Nun, nicht weit von hier ist eine alte Militärbasis... Nördlich davon liegt das Dorf Kopatschi und östlich davon eine Bahnstation, wo die Stalker herumhängen. Ach ja, auf den Schienen in der Nähe ist ein Zug... Ist kein besonders schöner Ort, das kannst du mir glauben. + + + Erzähle mir von der alten Militärbasis. + + + Tja, da gibt es nicht viel zu erzählen... Alle wertvollen Sachen wurden schon vor langer Zeit geplündert, deswegen gibt es dort jetzt nicht mehr viel zu sehen... außer Mutanten und Zombies. Da ist auch ein kleiner Bunker - genug, um sich bei einer Emission in Sicherheit zu bringen. + + + Erzähle mir von dem Dorf. + + + Man kann es nicht mehr wirklich Dorf nennen - sind nur noch ein paar kleine Hügelchen, weil das Dorf 1986 wegen der Strahlung zugeschüttet wurde. In der heutigen Zeit will dort niemand mehr hin. Ist kein gesunder Ort und zu holen gibt es dort auch nichts. + + + Erzähle mir von der Bahnstation. + + + Kannst du mir etwas über den Zug erzählen? + + + Die Janow-Station ist einen Besuch wert, falls du noch nie dort warst. Vor allem, wenn man sich ein kühles Bier genehmigen oder mit befreundeten Stalkern plaudern will. Außerdem ist sie abgesehen von unserem Bunker der einzige sichere Ort in dieser Gegend. + + + Wie ich sehe, habt ihr neue Ausrüstung am Start? + + + Aber hallo, Kumpel. Wir sind jetzt offiziell unter dem Namen "Wissenschaftliches Forschungsteam Iskra" bekannt! Aber du brauchst nicht glauben, dass wir dich vergessen haben, nur weil wir jetzt Wissenschaftler sind, ha ha! Meine "Kollegen" und ich haben die Sache in aller Ausführlichkeit besprochen und wir sind zu dem Schluss gekommen, dass... dass du dir das wirklich verdient hast, Kumpel! Falls du in einer Anomalie landest oder von einer Emission erwischt wirst - Gott bewahre -, nimm dir einen Moment Zeit und schicke uns eine Dankesnachricht. Wir werden sie erhalten, glaub mir! + + + Hey. + + + Na, was geht ab? + + + Also, können wir los oder sollen wir noch ein bisschen warten? + + + Ich dachte schon, dass ich in diesem Tunnel als hirnloser Zombie enden werde! Was kann ich für den Mann tun, der mich gerettet hat? + + + Na, willst du dir die Beine ein bisschen vertreten? + + + Hey, Bruder. + + + Wir sind dir was schuldig, und das werde ich nicht vergessen. + + + Ich glaube, wir sind hier fertig und es wird langsam Zeit, dass wir von diesem gottverdammten Ort verschwinden... + + + Was hat es mit diesem Tunnel auf sich? + + + Da ist kein bisschen Staub. Hermann sagt, dass das an der Tesla-Anomalie liegt, aber es fällt mir schwer, das zu glauben. + + + Frag den Boss. Ich weiß nicht, was ich dir erzählen darf und was ich besser für mich behalten sollte. + + + Sag mir, was du gefunden hast, als du das Psi-Feld gemessen hast. + + + Auf dem Boden waren Fußabdrücke. Sahen aus wie von Menschen, aber wer ist schon so verrückt und latscht dort barfuß herum? + + + Dein Gehirn spielt verrückt und egal wo du hinschaust, siehst du diese merkwürdigen Formen. Ist ein verdammtes Psi-Feld, verstehst du? + + + Und, was hast du unter der Erdoberfläche gefunden? + + + Nicht viel, nur ein paar tote Hamster. + + + Hm... nichts, was man nicht auch woanders in der Zone finden könnte. + + + Alles OK? + + + Mir geht's gut, dank dir! Ich übertrage dir ein paar Koordinaten, als Zeichen meiner Dankbarkeit. Du kannst alles behalten, was du dort findest. Ist zwar nicht viel, aber kommt von Herzen... + + + Wie geht es dir? + + + Mann, Tausend Dank! Ich danke dir, ich... ich weiß gar nicht, was ich sagen soll. Ich übertrage dir die Koordinaten unseres Verstecks - als Zeichen meiner Dankbarkeit. + + + Bist du noch am Leben? + + + Danke, das werde ich dir nie vergessen. Ich gebe dir die Koordinaten unseres Verstecks. Das hast du dir verdient... + + + Ist dein Gehirn noch intakt? + + + Man, was ich gesehen habe, als ich... Das wird mich mein ganzes Leben lang verfolgen... + + + Also, zurück zum Bunker? + + + Darauf kannst du wetten! + + + Dann los. + + + Ihr geht vor, wir sehen uns dann dort. + + + Ist dein Trupp bereit, zum Tunnel aufzubrechen? + + + Sag Bescheid, wenn es losgehen kann. + + + Jetzt. Los! + + + Warten wir noch ein wenig. + + + Ich gehe alleine. Wir treffen uns dort. + + + Ich gehe alleine. Wir treffen uns dort. + + + Nein, wir haben kein allzu großes Vertrauen in dich und Zeit ist Geld. Entweder du gehst mit uns oder wir bleiben hier. + + + Wenn das so ist, gehen wir zusammen. + + + Wenn das so ist, müsst ihr warten. + + + Keine Chance... Es macht keinen Sinn, das während einer Emission zu riskieren. + + + So, da sind wir. + + + Also... fangen wir an? + + + Ja, natürlich. + + + Gebt mir einen Moment, ich muss mich erstmal zurechtfinden. + + + Was zum Teufel willst du? + + + Ich geh hier nur vorbei. + + + Gut, dann geh weiter. + + + OK. + + + Immer mit der Ruhe, Schwachkopf! + + + Geht dich nichts an! + + + Oh... Hallo... + + + Nimble hat mir erzählt, dass du ein hinterlistiger Drecksack bist. Ich schätze, du hast schon so manch einen Stalker übers Ohr gehauen... + + + Ich weiß gar nicht, wovon du redest! So etwas habe ich noch nie gemacht. Nimble ist wohl nicht ganz richtig im Kopf! + + + Was hast du den Banditen über mich erzählt? Warum haben sie bei den Dockkränen auf mich gewartet? + + + Du musst mich mit jemandem verwechseln... Mit den Banditen habe ich nichts am Hut! + + + Nimble hat mir von dir erzählt... Ich schlage vor, du gibst mir deine Waffe und machst es für uns beide leichter. + + + Was hat er dir denn erzählt?! Ich habe nichts, das nicht mir gehört! + + + Mach dich vom Acker, Kumpel... + + + Hilf mir, Bruder - ich brauche ein Medkit! + + + Sag mir erst, wo du mein Zeug versteckt hast! + + + Tut mir leid, Mann, ich habe das Geld wirklich gebraucht... Ich sage dir alles, aber bitte hilf mir! Ehrlich, ich drehe keine krummen Dinger mehr, das war früher! + + + OK, hier. + + + Danke, Mann! Ich habe die Sachen in mein Versteck getan - in der Kanalisation hinter dem Umspannwerk. + + + Ich verstehe. + + + Ich glaube dir kein Wort. Das Medkit kannst du vergessen. + + + Hier. + + + Ich gebe dir kein Medkit. + + + Danke. Ich hätte nicht gedacht, dass du mir hilfst... + + + Wen könnte ich anheuern, um die Wissenschaftler zu beschützen? + + + Die Wächter natürlich, wen denn sonst? Schließlich sind sie die besten Kämpfer in der Zone! Schwere Kampfwachen - na, wie klingt das? + + + Sie beschäftigen zurzeit Freiheitler? In diesem Fall kann ich dir nicht weiterhelfen. Ich hätte die Wächter vorgeschlagen, aber die verstehen sich nicht besonders gut mit der Freiheit. + + + Wen könnte ich anheuern, um Messungen für die Wissenschaftler vorzunehmen? + + + Versuch es mal bei Shulga. Sind zwar alles keine Superhirne, aber einige von seinen Jungs sind nicht auf den Kopf gefallen. + + + Bezahlen sie immer noch die Freiheitler dafür, dass sie sie beschützen? Wenn ja, dann würde ich davon abraten, die Wächter anzuheuern... Mehr kann ich dir dazu nicht sagen. + + + Als wir in der Unterführung angekommen sind, hat der Aufzug den Geist aufgegeben... + + + Hah, ihr seid da runtergegangen und habt den einzigen betriebsbereiten Generator benutzt... der dazu noch der Notfallgenerator ist. Ich hätte ihn fast nicht zum Laufen gebracht. Er hat also seine Arbeit getan und ist dann abgeraucht. Du solltest froh sein, dass er nicht auf halbem Wege ausgegangen ist... Der Aufzug hat keinen Notausgang! + + + Wer könnte Sachen aus einer persönlichen Kiste gestohlen haben? + + + Verdammt! Ich hab wirklich keine Ahnung. Aber eins sag ich dir: Hätte Shulga in der Janow-Station das Sagen, wäre das sicher nicht passiert. + + + Kannst du einen Stahlbehälter aufbrechen? + + + Ich bin doch kein Tresorknacker, Mann. Metall ist nicht so mein Ding... Aber falls es um irgendetwas Elektronisches geht, melde dich bei mir. + + + Eine Gruppe friedlicher Monolith-Kämpfer will irgendwo unterkommen. Wer könnte ihnen da weiterhelfen? + + + Machst du Witze? Ich habe gehört, die sind wie wilde Tiere... Also die Stalker würden ihnen sicher keinen herzlichen Empfang bereiten, so viel ist sicher... Du solltest mal mit Shulga reden. Wenn der Oberstleutnant sie bei den Wächtern aufnimmt, sind sie sicher. Vielleicht können sie sich ja dort sogar irgendwie nützlich machen. + + + Kannst du einen Flugschreiber entschlüsseln? + + + Lass mal sehen... Das könnte knifflig werden. Ich schätze, es wird ungefähr drei Stunden dauern und dementsprechend kosten. Ich kümmere mich darum und dann reden wir... Mach du in der Zwischenzeit einen Spaziergang, damit ich mich konzentrieren kann... + + + Lass mal sehen... Das könnte knifflig werden. Ich schätze, es wird ungefähr drei Stunden dauern und dementsprechend kosten. Ich kümmere mich darum und dann reden wir... Du könntest dich ja in der Zwischenzeit nach den Komponenten umsehen, die ich brauche. Damit verdienst du ein bisschen Kohle und ich verlange weniger für den Job. + + + Was? Ich arbeite immer noch daran. Verdammt, dieser Flugschreiber ist der reinste Alptraum... + + + Ich bin mit deinem Flugschreiber fertig... Das war wirklich eine Drecksarbeit... + + + Wie viel schulde ich dir? + + + Mindestens 3.000. + + + Hier. + + + So viel habe ich nicht. + + + Nun, ich kann dir einen Preisnachlass geben, wenn du mir die Komponenten bringst. + + + Gut, lass von dir hören. + + + Ist ja ein ganz schöner Batzen... Ich werde darüber nachdenken. + + + Ich gewähre dir einen Rabatt. Das macht dann nur 2.850. + + + Ich gewähre dir einen Rabatt. Das macht dann nur 2.700. + + + Ich gewähre dir einen Rabatt. Das macht dann nur 2.550. + + + Ich gewähre dir einen Rabatt. Das macht dann nur 2.400. + + + Ich gewähre dir einen Rabatt. Das macht dann nur 2.250. + + + Ich gewähre dir einen großen Rabatt. Das macht dann nur 2.100. + + + Ich gewähre dir einen großen Rabatt. Das macht dann nur 1.950. + + + Ich gewähre dir einen großen Rabatt. Das macht dann nur 1.800. + + + Dafür mache ich dir einen verdammt guten Preis. Nur 1.650. + + + Hey, ich hab zwar keine Ahnung, wozu du die Aufnahmen brauchst, aber bei den Kosten hoffe ich für dich, dass es sich lohnt. + + + Wir werden sehen. + + + Ich sitze immer noch an dem Flugschreiber... Warum machst du dich nicht nützlich und besorgst mir die Komponenten? + + + Senka? Als ich vor langer Zeit in Zaton war, hatte ich ihn eines Tages am Hals und seitdem ist er mit mir unterwegs... Er ist ein professioneller Trinker mit jahrelanger Berufserfahrung... hah! Ich kann ihn hin und wieder für Besorgungen gebrauchen... + + + Wer könnte an Informationen über den Gründer der Wächter interessiert sein? + + + Shulga natürlich... Die Wächter gedenken gerne ihrer Anfänge. Du weißt doch: Solange man sich nicht mit der Geschichte auseinandersetzt, wiederholt sie sich... Am Wichtigsten ist es, dass die Freiheitler diese Informationen nicht in die Finger kriegen. Sie würden nur alles verdrehen, so viel ist sicher. Nicht mit bösen Hintergedanken, sondern einfach, weil sie ein schlechtes Gedächtnis haben... + + + Ich habe Werkzeug für dich. + + + Gut... und was davon ist für mich? + + + Das einfache Werkzeug. + + + Großartig! Jetzt brauche ich nur noch Feinwerkzeug und Kalibrierungswerkzeug... + + + Das Feinwerkzeug. + + + Großartig! Jetzt brauche ich nur noch einfaches Werkzeug und Kalibrierungswerkzeug... + + + Das Kalibrierungswerkzeug. + + + Großartig! Jetzt brauche ich nur noch einfaches Werkzeug und Feinwerkzeug... + + + Im Moment nichts. + + + Cool! Werkzeug zur Kalibrierung und ich habe alles, was ich brauche. + + + Cool! Werkzeug für feine Arbeiten und ich habe alles, was ich brauche. + + + Cool! Werkzeug für einfache Arbeiten und ich habe alles, was ich brauche. + + + Wow! Wo zum Teufel hast du das her? + + + Falls du Werkzeug brauchst, kann ich mich darum kümmern. + + + Das wäre 'ne feine Sache. Im Moment komme ich mir so vor, als würde ich in der Steinzeit arbeiten - mit dem einzigen Unterschied, dass der Schamanenstab durch einen Lötkolben ersetzt wurde... Wenn ich gutes Werkzeug hätte, könnte ich ein paar erstklassige technische Verbesserungen vornehmen. Und für dich würde dabei auch etwas herausspringen... + + + OK, ich versuche, Werkzeug aufzutreiben. + + + Ich habe meine Meinung geändert. + + + Gute Idee. Dann kann ich technische Verbesserungen vornehmen und du verdienst bares Geld... + + + Ich habe den PDA des Wächterhändlers. Kennst du jemanden, der Interesse daran haben könnte? + + + Ein Händler bei den Wächtern? Im Ernst, gib Shulga den PDA und er wird sich mit der Sache befassen. Und kein Wort zu den Freiheitlern, hast du verstanden? Ein Arschloch würde reichen, um den Ruf der ganzen Fraktion zu ruinieren... + + + Ich habe einige Dokumente gefunden. Darin wird beschrieben, wie man nach Pripyat gelangt. + + + Lass mich mal einen Blick darauf werfen... Ja, ja, ja... es gibt also eine Unterführung namens "Pripyat 1", die unterhalb der Stadt Pripyat verläuft und unter anderem im Transportbereich der Jupiter-Anlage vor einem Aufzug endet. Beeindruckend! Laut den Notizen wurde die Unterführung versiegelt und mit Gas gefüllt. Außerdem wurde die Stromversorgung unterbrochen. Ich könnte versuchen, den Generator wieder zum Laufen zu bringen und dadurch die Aufzugverriegelung zu öffnen. Allerdings... + + + ... Allerdings kann ich mich nicht ohne geeignete Schutzmaßnahmen in Jupiter aufhalten und ich rate dir, gar nicht erst daran zu denken, auf eigene Faust unter der Erde herumzuspazieren. Du brauchst wenigstens ein paar Leute an deiner Seite. Außerdem braucht ihr alle Schutzanzüge mit geschlossenem Atemkreislauf, oder ihr werdet dort unten keine Minute überleben... Hör zu, Zulu lebt in einem Turm nicht weit von hier. Versuche, mit ihm zu reden. Falls ihr gut miteinander klarkommt, erklärt er dir vielleicht, wie man einen Trupp zusammenstellt. + + + Du hast Materialien erwähnt... + + + Richtig, es ist hier in der Gegend so gut wie unmöglich, Materialien für Funkgeräte zu finden. Ich habe schon alles verwendet, was ich auftreiben konnte, und hier handelt niemand mit Materialien für Funkgeräte, weil man mit dem Verkauf von Waffen mehr Kohle machen kann... Aber ich habe gehört, dass möglicherweise bei der Zementfabrik noch irgendetwas herumliegt... + + + Hier, ich habe die Materialien gefunden. Jeden Winkel der Zementfabrik habe ich abgegrast! + + + Wow, Bruder - ich bin beeindruckt! Ich mache mir gleich mal eine Notiz: Reparaturarbeiten und technische Verbesserungen für meinen Lieblingsstalker ab jetzt kostenlos! + + + Ich habe einige der Materialien gefunden, die du haben wolltest. Hier. + + + Wow! Ab jetzt Rabatte ohne Ende für dich, mein Freund! + + + Ich kann versuchen, die Materialien für dich aufzutreiben. + + + Das wäre großartig! Also falls du zum Beispiel Kolophonium und Kondensatoren findest, bringe die Sachen zu mir... Mann, ich wäre dir sogar für Textolit dankbar. Nen dicken Batzen Geld kann ich dir zwar nicht versprechen, aber auf jeden Fall einen Preisnachlass. + + + Für was brauchst du all diese Sachen? + + + Nun ja, eigentlich hantiere ich mit Waffen und Ausrüstung herum... von irgendetwas muss ich ja leben... Aber meine Leidenschaft ist Funkzubehör. Kennst du das Gefühl, wenn man an irgendetwas herumbastelt und es dann funktioniert? Ich weiß noch, wie ich mal einen Störsender gebaut habe... war wirklich ein nützliches Gerät. Ich habe ihn eingeschaltet, als die Werbedurchsagen der 100 Rads Bar mir langsam auf die Eier gegangen sind. + + + Warum sollten gerade in der Zementfabrik Materialien für Funkzubehör zu finden sein? + + + Zementfabrik ist nur der Name... Da wurde schon lange vor der Tschernobyl-Katastrophe kein Zement mehr hergestellt. Sie haben die Anlage umgebaut und dann angefangen, dort elektrische Geräte herzustellen. + + + Ich habe in Jupiter einige Dokumente gefunden. Magst du sie dir mal ansehen? + + + Hm... nichts Interessantes... nur verwaltungstechnischer Kram... + + + Hm... hier und da ist mal etwas Interessantes, aber alles ziemlich vage... Wir brauchen alle Informationen. Sieh dich mal an den Orten um, die in den Dokumenten erwähnt werden. + + + Ich brauche einfach Materialien, verdammt. So kann ich nicht arbeiten... Oh, hallo. Was gibt's? + + + Hallo! Geht es um etwas Technisches? Wie du siehst, habe ich keine Materialien, aber ich kann trotzdem Reparaturarbeiten oder kleinere Verbesserungen vornehmen. + + + Oh, hey. Hör zu. Wenn man bedenkt, dass all diese Materialien, die ich brauche, einfach so in der Zementfabrik herumliegen... alleine der Gedanke macht mich Wahnsinnig... + + + Hey! Ist da was zerbrochen oder hast du nen Haufen Münzen für eine technische Verbesserung zusammengekratzt? Vergiss nicht, dass du bei mir einen Preisnachlass auf Lebenszeit hast! + + + Hallo, Bruder! Wie kann ich dir helfen? Vergiss nicht, dass ich dir einen absolut guten Preis mache. + + + Kannst du ein Speichermodul hacken? + + + Ich denke ja... Allerdings habe ich es noch nie versucht, deswegen brauche ich mindestens drei Stunden. Ich würde es aber gerne mal probieren... Dafür mache ich dir einen guten Preis - nur 1.000. + + + Ich kann warten, insofern abgemacht! + + + Gut! Dann mache ich mich mal an die Arbeit. Lass dir Zeit... Ich gebe dir Bescheid, wenn ich fertig bin. + + + So viel habe ich nicht. + + + Tja, dann komm später wieder, falls du die Sache dann noch erledigt haben willst. Billiger kriegst du's auf jeden Fall nirgends. + + + Ich werde darüber nachdenken. + + + Wie ich bereits gesagt habe, brauche ich dafür ungefähr drei Stunden. 1.000 ist ein guter Preis und an deiner Stelle würde ich das Angebot annehmen. + + + Und, hast du das Speichermodul gehacked? + + + Nein, ich bin noch dabei... Keine Sorge, ich sag dir Bescheid, wenn ich soweit bin. + + + Was? Du hast das Modul nicht bekommen? Dann bist du wahrscheinlich Senka nicht über den Weg gelaufen. Ich habe ihn in deine Richtung geschickt, damit er dir das Modul geben kann. Egal. Abgesehen von Messwerten für die Schichtdicke des Bodens und die Vegetation waren darauf die Koordinaten von drei Funksendern gespeichert. Ich lade sie auf deinen PDA hoch... + + + Hast du versucht, die Chimären zu töten? + + + Die verwundete Chimäre ist nach Zaton gelaufen. Gontas Trupp ist ihr auf den Fersen... Allerdings habe ich gehört, dass ihnen ein erfahrener Jäger fehlt. Wenn du ihnen hilfst, sorge ich dafür, dass es die Mühe wert war... Die andere Chimäre, die Fox auf dem Gewissen hat... tja, also sie ist mir entwischt. Als hätte sie sich plötzlich in Luft aufgelöst... Der arme Fox... er war ein guter Mann, aber das Alter hat wohl seinen Tribut gefordert... + + + Um die verwundete Chimäre hast du dich ja gekümmert... Die andere, die Fox auf dem Gewissen hat... tja, also sie ist mir entwischt. Als hätte sie sich plötzlich in Luft aufgelöst... Der arme Fox... er war ein guter Mann, aber das Alter hat wohl seinen Tribut gefordert... + + + Was machst du? + + + Nun, ich bin Trapper und bis vor kurzem habe ich Jagd auf Mutanten gemacht, die für die Stalker eine ernsthafte Bedrohung waren... Aber jetzt nehme ich Aufträge entgegen und gebe sie an jüngere Jäger weiter. Ich bilde sie aus und lehre sie dabei Jagdtaktiken... + + + Erzähle mir etwas über das Jagen von Mutanten... + + + Jeder Mutant erfordert eine andere Vorgehensweise... Burer und Poltergeister erledigt man auf die eine Art, Pseudogiganten und Controller auf die andere... und Chimären sind ein Thema für sich. + + + Erzähle mir etwas über Burer. + + + Burer machen sich bei ihren Angriffen die Gravitation zunutze... Aus nächster Nähe werfen sie dich und aus großer Entfernung werfen sie etwas AUF dich. Am besten fährst du damit, wenn du sie auf mittlerer Distanz halten kannst und in Bewegung bleibst - außer es bereitet dir Freude, einen schweren Gegenstand ins Gesicht zu kriegen... Aber achte darauf, dass du bei Kräften bleibst! Burer können gezielt Gravitationsimpulse nutzen, um dir die Waffe aus der Hand zu reißen. Wenn du erschöpft bist, kann das wirklich funktionieren. + + + Erzähle mir etwas über Poltergeister. + + + Es gibt zwei Arten von Poltergeistern. Die einen können mithilfe der Gravitation Gegenstände auf den Gegner schleudern, die anderen können Flammen manifestieren und damit ihre Opfer verbrennen. Unerfahrene Jäger springen oft wie wild um die Poltergeister herum, um ihren Angriffen auszuweichen... Die ganze Kunst besteht jedoch darin, sich die Tatsache zunutze zu machen, dass Poltergeister nicht in dem Sinne sehen oder hören, wie wir es tun. Sie nehmen auf eine gewisse Weise diejenigen Lebewesen wahr, die sich im Gravitationsfeld bewegen... Aus diesem Grund rührt sich ein erfahrener Jäger nicht vom Fleck, sobald er einen Poltergeist sieht. Dann schießt er und bleibt sofort wieder wie angewurzelt stehen usw. + + + Erzähle mir etwas über Controller. + + + Sie setzen dein eigenes Gehirn gegen dich ein. Bei der Jagd auf Controller ist es wichtig, einen Sichtschutz zu benutzen, weil Controller nur dein Gehirn manipulieren können, wenn sie dich sehen... Außerdem sind sie ziemlich langsam, weswegen du Granaten einsetzen solltest, falls dein Leben auf dem Spiel steht. + + + Erzähle mir etwas über Chimären. + + + Das sind sehr gefährliche Raubtiere, die in der Nacht ihr Unwesen treiben. Im Schutze der Dunkelheit versuchen sie, sich an dich heranzuschleichen und dann auf dich zu stürzen. Wenn du weißt, dass eine Chimäre in der Nähe ist, dreh dich immer wieder um und gib deinen Kameraden Deckung... + + + Erzähle mir etwas über Pseudogiganten. + + + Das Schwierigste bei der Jagd auf Pseudogiganten ist es, sie zu töten. Sie können unglaublich viel einstecken, ohne mit der Wimper zu zucken... Ich kann dir nur raten, es mit einer Schrotflinte aus kurzer Distanz zu versuchen. Denke aber daran, dass bei Angriffen von Pseudogiganten alles in Mitleidenschaft gezogen werden kann, was nicht niet- und nagelfest ist. Greife das Biest von oben an... und achte darauf, dass der Untergrund, auf dem du stehst, stabil ist. + + + Ach, schon gut. + + + Warum jagst du nicht mehr? + + + Ich bin nicht mehr der Jüngste, Mann. Das ist auch der Grund, warum Fox draufgegangen ist... Er war mein Partner und Freund. Wir haben zusammen Jagd auf viele Bestien gemacht, Seite an Seite... bis zu dem Tag, als wir in Zaton auf diese zwei Chimären gestoßen sind, die in der Zone seit achtzehn Monaten niemand mehr zu Gesicht bekommen hat... Eines dieser Biester hat Fox auf den Boden gestoßen, bevor ich überhaupt meine Schrotflinte rausholen konnte. Als ich die andere Chimäre angeschossen habe, haben sie das Weite gesucht... Sie sollen für immer in der Hölle schmoren! + + + Wer könnte Sachen aus einer persönlichen Kiste gestohlen haben? + + + Hm... keine Ahnung. So was gibt's bei den Jägern nicht. Wenn man seine Kameraden gegen sich aufbringt und irgendwann einen Blutsauger an der Backe hat, könnte es sonst unter Umständen passieren, dass sie ihre Munition nicht vergeuden wollen... + + + Ungewöhnliche Zeiten erfordern ungewöhnliche Mittel... Bei allem was ich über Blutsauger weiß, würde ich denken, dass ein paar von ihnen auf Beutezug waren... Aber da sie jetzt keinen Unterschlupf mehr haben, in den sie zurückkehren könnten, stellen sie für die Stalker keine Gefahr mehr dar. + + + Hast du sonst noch etwas für mich zu tun? + + + Sicher. Ein Stalkertrupp ist neulich in die Tunnel nördlich der Anlage gegangen und dort auf ein Mutantenlager gestoßen. Sie waren alle so verängstigt, dass keiner von ihnen überhaupt beschreiben kann, was für Mutanten das waren. Zwei von den Stalkern haben es nicht mehr nach draußen geschafft. Den Leuten in der Janow-Station macht dieser Vorfall wirklich Angst. Deswegen haben sie zusammengelegt und eine Belohnung von 5.000 für denjenigen ausgesetzt, der sich um dieses Mutantenlager kümmert. Das ist nicht ungefährlich, deswegen solltest du dir das gut überlegen... Wäre das was für dich? + + + Ich kümmere mich darum. + + + Du bist mutig... Viel Glück. Du wirst es brauchen. + + + Im Moment nicht. + + + Das kann ich dir nicht verübeln... Ich bezweifle, dass irgendjemand den Mumm dazu hat, ein ganzes Mutantenlager auseinander zu nehmen. + + + Wie gesagt, unbekannte Mutanten in den Tunneln nördlich der Jupiter-Anlage. Dir würden 5.000 als Belohnung winken... Willst du's doch versuchen? + + + Im Moment machen sich die Stalker große Sorgen wegen der Mutanten in den Tunneln... + + + Die Mutanten in den Tunneln waren mutierte Zwerge. Jetzt sind es tote mutierte Zwerge. + + + Ich schätze, das waren Burer. Das erklärt, warum die Leute in der Janow-Station wegen der ganzen Sache so besorgt waren... Nun, jetzt da sie tot sind, gehört die Belohnung dir! + + + Ich schätze, das waren Burer, die auch neulich zwei Stalker getötet haben. Das erklärt, warum die Leute in der Janow-Station für die Eliminierung dieser Monster eine Belohnung ausgesetzt haben. Nun, jetzt da sie tot sind, gehört die Belohnung dir! + + + Ich bin soweit und kann mich um die Chimäre kümmern. + + + Gut. Es wurde gerade dunkel, als der Jäger dieses Biest gesehen hat. Die Chimäre war unterwegs in Richtung Belüftungsanlage. Chimären sind nachtaktive Revierjäger, deswegen ist sie wahrscheinlich gerade unterwegs in ihr Jagdrevier gewesen... Ich denke, dort solltest du in der Abenddämmerung nach ihr suchen. Andererseits ist sie zu dieser Zeit natürlich aufmerksamer und aktiver... Sei vorsichtig und Waidmanns Heil! + + + Die Chimäre ist tot. + + + Danke... danke! Du hast Fox gerächt und jetzt kann er in Frieden ruhen. Hier ist dein Geld - das hast du dir verdient. Ach, da ist noch etwas. Hier, nimm meine Schrotflinte. Du hast mir dafür etwas viel Wichtigeres gegeben - etwas Frieden... + + + Ich bin Trapper... Du musst dich nicht vorstellen. + + + Was führt dich hierher? + + + Danke, dass du gekommen bist... Ich brauche einen zuverlässigen und erfahrenen Jäger und du bist das Beste, was die Janow-Station zu bieten hat. Nach allem, was passiert ist, darf mir die Chimäre nicht noch einmal entwischen... Ich investiere in die Sache meine gesamten Ersparnisse, und zwar 10.000. Ich will sichergehen, dass das auch wirklich richtig durchgezogen wird... Fox muss gerächt werden! + + + Ich bitte dich inständig darum, die Chimäre zu erledigen. Falls es dir egal ist, ob die Janow-Station diesen mutierten Killer los wird oder nicht, tu es wenigstens für das Geld... 10.000 ist 'ne Menge Knete. + + + Wie sieht's aus mit der Chimäre? Die Zeit drängt, das Biest könnte sich jederzeit ein neues Jagdrevier suchen. + + + Schön, dich zu sehen! Was gibt's Neues? + + + Hast du sonst noch etwas für mich zu tun? + + + Natürlich... In Fen wurde eine Gruppe Sumpfblutsauger gesehen, hinter der Zementfabrik. Sie scheinen sich erstmal wieder in ihre Sümpfe zurückgezogen zu haben, aber Stalker vor Ort wollen sichergehen, dass sie dort für immer bleiben - wenn du verstehst, was ich meine. Dir winken 3.000, wenn du die ganze Gruppe erledigst. Interesse? + + + Ja, ich mach's. + + + Gut. Viel Erfolg bei der Jagd... + + + Jetzt nicht. + + + Wie du willst... Du hast noch Zeit, es dir anders zu überlegen, bevor sich andere Jäger um die Sache kümmern. + + + Wie gesagt... Es geht um die Gruppe Sumpfblutsauger in Fen, hinter der Zementfabrik. 3.000 wäre die Belohnung... Bist du dabei? + + + Im Moment nicht, abgesehen von der Sache mit den Sumpfblutsaugern in Fen... + + + Ich habe die Sumpfblutsauger getötet. + + + Jetzt kehrt für die Stalker wieder ein bisschen Ruhe ein. Hier wie vereinbart dein Geld. + + + Ja, die Stalker dieser Gegend werden froh sein, dass sie ihre unliebsamen Nachbarn los sind. Sie haben sogar für eine Belohnung zusammengelegt, genau genommen 3.000... Hier. + + + Gonta und ich haben die Chimäre in Zaton getötet. + + + Danke. Je weniger von diesen Bestien hier ihr Unwesen treiben, desto besser für uns alle. Wenn du dich jetzt noch um das andere Viech kümmern könntest... + + + Danke, dass du dich auch um das zweite Biest gekümmert hast. Es ist gut zu wissen, dass diese Chimären keinen Stalker mehr ins Jenseits befördern werden... + + + Sag mir, wie du den Controller getötet hast. + + + Hör aufmerksam zu und lerne, mein Freund... Ich war unterwegs zu meinem Versteck, um meine Beute zu holen. Als ich dort angekommen bin, habe ich gesehen, wie es sich ein Controller oben auf dem Versteck gemütlich gemacht hat. Also habe ich mir ein herumliegendes Metallgitter geschnappt und mich damit abgeschirmt, während ich mich langsam dem Controller genähert habe. Bis er kapiert hat, was hier eigentlich los ist, hat er schon ein halbes Magazin in seinem Schädel gehabt. Gerade als er versuchen wollte, mich zu manipulieren, habe ich mit meinem Gewehrkolben ausgeholt und ihm den Todesstoß versetzt. Das war's. + + + Erzähle mir von den Artefakten im Steinbruch. + + + Pah, da gibt es nicht viel zu erzählen, weil es dort mittlerweile nichts mehr zu holen gibt. Es macht keinen Sinn, in Anomalien auf Schatzsuche zu gehen, wenn Flint schon dort war. Das weiß doch jeder. + + + Also bist du derjenige, der seinen Kameraden im Steinbruch verrecken lassen hat! + + + Was?! + + + Das musst du erstmal beweisen. Du laberst doch nur Müll... Dein Wort gegen das eines Mitglieds der Freiheit - na dann viel Glück. + + + Wir werden sehen. + + + Nichts. + + + Danke, tschüss. + + + Erzähle mir von den Blutsaugern in Zaton. + + + Als ich in Zaton war, haben Blutsauger den Stalkern wirklich das Leben schwer gemacht. Sie haben sie Tag und Nacht gejagt, aber das hat überhaupt nichts gebracht. Ich habe beschlossen, ihnen zu helfen, also habe ich mir meine Schrotflinte geschnappt und bin direkt in das Lager der Blutsauger marschiert. Nachdem ich mich also eine Zeit lang mit den Biestern beschäftigt hatte, war das Blutsaugerproblem in Zaton Geschichte. + + + Du weißt wahrscheinlich nicht einmal, wo dieses Lager ist. + + + Verschwinde. + + + Was willst du? Langweile jemand anderen mit deinem Schwachsinn! + + + Mach 'nen Abgang, Kumpel... Dein Wort gegen das eines Mitglieds der Freiheit - na dann viel Glück. + + + Wir werden sehen. + + + Danke, tschüss. + + + Erzähle mir von der Abkürzung nach Jupiter. + + + Tja, also der Ortskundige hat von Zaton nach Jupiter immer einen ganz schönen Umweg gemacht. Ich hingegen dachte mir: "Warum so umständlich?"... Also habe ich mir die Gegend genauer angesehen und konnte dann ziemlich schnell einen Weg durch die Anomalien finden. Diese Information habe ich an den Ortskundigen verkauft und jetzt bringt er jeden auf dieser Route dorthin. + + + Wie wäre es, wenn wir Pilot fragen, wer ihm die Karten besorgt hat? + + + Verschwinde. + + + Was willst du? Langweile jemand anderen mit deinem Schwachsinn! + + + Du kannst mir überhaupt nichts nachweisen. Dein Wort gegen das eines Mitglieds der Freiheit - na dann viel Glück. + + + Wir werden sehen. + + + Danke, tschüss. + + + Erzähle mir von deinem Abstecher zur Oase. + + + Ich war der erste, der jemals die Oase betreten hat. Keine Mutanten und Anomalien weit und breit, nur Ruhe und Frieden. Außerdem findet man dort jede Menge Artefakte. Man bedient sich und dann geht's wieder ab nach Hause. + + + Völliger Quatsch. Ich war in der Oase und kann das alles nicht bestätigen. + + + Verschwinde. + + + Was willst du? Langweile jemand anderen mit deinem Schwachsinn! + + + Leck mich doch. Dein Wort gegen das eines Mitglieds der Freiheit - na dann viel Glück. + + + Wir werden sehen. + + + Danke, tschüss. + + + Erzähle mir von deiner Zusammenarbeit mit den Wissenschaftlern. + + + Ich war neulich in ihrem Bunker. Sie haben sich über meinen Besuch gefreut und gesagt: "Genau so einen wie dich brauchen wir jetzt, Flint!". Es stellte sich heraus, dass sie jemanden gesucht hatten, der ihre Geräte in der Nähe von Anomalien aufstellt. Ich habe gesagt: "Ist doch überhaupt kein Problem" und dann ohne große Mühen das gemacht, was sie von mir wollten. Schwierig wurde es erst, als ich von diesen Freaks mein wohlverdientes Geld haben wollte. + + + Hör auf, dich auf den Lorbeeren anderer Leute auszuruhen. Ich war das, nicht du! + + + Verschwinde. + + + Was willst du? Langweile jemand anderen mit deinem Schwachsinn! + + + Lügen... Du hast keine Beweise. Dein Wort gegen das eines Mitglieds der Freiheit - na dann viel Glück. + + + Wir werden sehen. + + + Danke, tschüss. + + + Hey. Willst du auch hören, was ich alles zu erzählen habe? + + + Willst du etwas fragen? + + + Was willst du? + + + Kumpel... verdammt... ich sterbe... + + + Nimm dieses Medkit. + + + Danke, mein Freund... aber das wird nichts nützen... Hör zu... Ich war mit einem Mitglied der Freiheit hier, wir haben ein Artefakt gefunden. Auf dem Weg zurück bin ich in eine Gasanomalie geraten. Wenn er mir geholfen hätte, würde ich jetzt vielleicht durchkommen, aber... Er hat sich das Artefakt gekrallt und mich hier zurückgelassen. Er hat behauptet, dass er Hilfe holen wird... Finde ihn. Die Leute sollen wissen, dass man ihm nicht über den Weg trauen kann... + + + Ich werde ihn finden. + + + Ich bezweifle, dass ich irgendetwas beweisen kann. + + + Stütz dich auf meiner Schulter ab, wir bringen dich zu einem Arzt. + + + Dumm gelaufen. Tschüss. + + + Ich habe etwas für dich... + + + Einen Fleischklumpen. Hier, nimm. + + + Danke. Die Wissenschaftler bezahlen gut, aber mir geht es eher um die Genehmigung. + + + Wow, vielen Dank, Kumpel! Jetzt kann ich endlich nach Pripyat aufbrechen - ich muss mir nur noch einfallen lassen, wie ich dorthin komme. + + + Einen Kloß. Hier, nimm. + + + Danke. Die Wissenschaftler bezahlen gut, aber mir geht es eher um die Genehmigung. + + + Wow, vielen Dank, Kumpel! Jetzt kann ich endlich nach Pripyat aufbrechen - ich muss mir nur noch einfallen lassen, wie ich dorthin komme. + + + Einen Fleischklumpen und einen Kloß. Hier, nimm. + + + Wow, vielen Dank, Kumpel! Jetzt kann ich endlich nach Pripyat aufbrechen - ich muss mir nur noch einfallen lassen, wie ich dorthin komme. + + + Keins. + + + Ist es hier langweilig? + + + Du hast einen Vertrag erwähnt... + + + Ja, ich habe mich dazu bereit erklärt, für die Wissenschaftler zu arbeiten, weil ich dachte, dass das ein Kinderspiel wird. Allerdings habe ich übersehen, dass die Vertragslaufzeit erst endet, wenn alle Arbeiten erledigt sind. Die Wissenschaftler haben versprochen, mir danach eine offizielle Genehmigung für den Aufenthalt in der Zone zu geben. + + + Ich habe jede verdammte Klausel dieses Vertrags erfüllt, außer einer Kleinigkeit. Ich muss alle chemischen Artefakte finden, die es gibt. Woher hätte ich denn wissen sollen, dass man hier in der Gegend keine Fleischklumpen und Klöße findet? Hätte ich diese zwei Artefakte gefunden, wäre ich schon längst unterwegs nach Pripyat. Aber war wohl nix! + + + Vielleicht kann ich dir mit diesen Artefakten helfen. + + + Das ist wirklich tragisch. + + + Ja... ein Fleischklumpen und ein Kloß und ich bin unterwegs nach Pripyat! + + + Was ist so außergewöhnlich an Pripyat? + + + Niemand weiß, wie man dort hingelangt... Schließlich sind wir in der Zone, und man kann da nicht so einfach auf direktem Wege hingehen. Man sagt, dass Pripyat die reinste Fundgrube ist, was Artefakte betrifft... Wie auch immer, bei all den verschiedenen Gerüchten, die über Pripyat kursieren, bin ich schlicht und einfach neugierig. + + + Ich stelle einen Trupp zusammen und breche dann auf nach Pripyat. Willst du dich uns anschließen? + + + Eigentlich bin ich am überlegen, ob ich nicht alleine versuchen soll, dorthin zu gelangen... auch wenn ich dann auf mich gestellt wäre. Nimm's nicht persönlich, ich bin halt eher ein Einzelgänger... + + + Hah, ich will mich auch bald nach Pripyat aufmachen... allerdings alleine. Nimm's nicht persönlich, ich bin halt eher ein Einzelgänger... + + + Willkommen im Reich der Langeweile. + + + Mann, ich will unbedingt nach Pripyat! + + + Ich muss nur wissen, wie man nach Pripyat gelangt, dann bin ich ruckzuck dort. + + + Hier ist's OK! So muss das Leben sein! + + + Natürlich ist es gut, sich sicher zu fühlen. Aber wenn es doch nicht so langweilig wäre! + + + Vielleicht kann ich dir mit diesen Artefakten helfen. + + + Weißt du wirklich, wie man nach Pripyat gelangt? + + + Nein. Aber wenn es da wirklich von Artefakten nur so wimmelt, wie die Leute sagen, bin ich sofort bereit, es herauszufinden. Ich meine, einen Pionier wie mich gibt es nur einmal auf der Welt - schließlich war ich einer der ersten, die einen Weg nach Jupiter gefunden haben. Allerdings bin ich ein Einzelgänger - ich habe keine Zeit, auf jemanden aufzupassen. + + + Bringst du mich nach Jupiter? + + + Klar. Können wir los? + + + Ja. + + + Noch nicht. + + + Nicht während einer Emission. + + + Bringst du mich nach Pripyat? + + + Für 5.000 würde ich es versuchen. Mir gefällt es dort! + + + Abgemacht. + + + Nein, danke. + + + OK, deine Entscheidung. + + + Ich glaube, ich habe nicht genug Geld. + + + Für 5.000 würde ich es versuchen... Aber lass uns warten, bis die Emission vorbei ist. + + + Kannst du mich nach Zaton bringen? + + + Ne, Mann - ist dort einfach zu langweilig. Da ist Pilot. Er ist genau der Richtige, wenn es um ungefährliche, aber dafür langweilige Jobs geht. + + + Nun, ich kann dich zur Janow-Station führen und für 3.000 Pilot engagieren, damit er dich nach Zaton bringt. Was sagst du? + + + Abgemacht. + + + Nein. + + + Wie du meinst. + + + Ich habe nicht genug Geld. + + + Nun, ich kann dich zur Janow-Station führen und für 1.000 Pilot engagieren, damit er dich nach Zaton bringt. Was sagst du? + + + Ne, Mann - ist dort einfach zu langweilig. Da ist Pilot. Er ist genau der Richtige, wenn es um ungefährliche, aber dafür langweilige Jobs geht. Frag ihn nach der Emission. + + + Nun, ich kann dich zur Janow-Station führen und für 3.000 Pilot engagieren, damit er dich nach Zaton bringt... natürlich erst, wenn die Emission vorbei ist. + + + Nun, ich kann dich zur Janow-Station führen und für 1.000 Pilot engagieren, damit er dich nach Zaton bringt... natürlich erst, wenn die Emission vorbei ist. + + + Man sagt, du hast es durch die Tunnel geschafft? Ich komme auch aus Jupiter... habe einen unterirdischen Durchgang gefunden. Wenn du willst, kann ich dich umsonst dorthin zurückbringen... Weißt du, ich bin froh, wenn ich den Obrigkeiten irgendwie behilflich sein kann. + + + Lange nicht mehr gesehen! Man sagt, du hast es durch die Tunnel geschafft? Ich habe einen unterirdischen Durchgang gefunden. Wenn du willst, kann ich dich umsonst zurückbringen... Weißt du, ich bin froh, wenn ich den Obrigkeiten irgendwie behilflich sein kann. + + + Lange nicht mehr gesehen! Man sagt, du hast es durch die Tunnel geschafft? Du wirst es nicht glauben, aber ich bin aus meinem Vertrag rausgekommen und habe trotzdem die Genehmigung gekriegt... Ich bin danach sofort hierher gekommen und habe einen unterirdischen Durchgang gefunden. Wenn du willst, kann ich dich umsonst zurückbringen... Weißt du, ich bin froh, wenn ich den Obrigkeiten irgendwie behilflich sein kann. + + + Lange nicht mehr gesehen! Man sagt, du hast es durch die Tunnel geschafft? Ich habe einen unterirdischen Durchgang gefunden. Wenn du willst, kann ich dich umsonst zurückbringen... Weißt du, ich bin froh, wenn ich den Obrigkeiten irgendwie behilflich sein kann. Danke übrigens, dass du mir dabei geholfen hast, den Vertrag mit den Wissenschaftlern zu erfüllen... Ich habe mich hier ein wenig umgesehen und das hier gefunden - du kannst das sicher gebrauchen. + + + Topol, warum bewachst du nicht den Bunker der Wissenschaftler? + + + Wir wurden angeheuert, um Messungen vorzunehmen und Proben zu sammeln. Wir sind quasi selbst fast schon Wissenschaftler. Und obwohl ich gegen den Job an sich nichts habe, bin ich mir nicht sicher, ob ich gegen die neuen Feinde der Wissenschaftler etwas ausrichten kann. Ich hab keine Lust, von den Söldnern eine Kugel in den Kopf zu kriegen. + + + Du bist am falschen Ort, Kumpel! Und du solltest besser verschwinden, bevor es auch noch die falsche Zeit ist. + + + Suchst du Streit oder was? Verschwinde von hier, bevor du fündig wirst! + + + Mach dich vom Acker, Kumpel. Hör auf mich, dann kriegst du keinen Stress. + + + Was habt ihr jetzt vor? + + + Wir brechen bald zur Janow-Station auf. Du kannst gerne mitkommen. + + + Ja, das liegt auf dem Weg. Ich schließe mich euch an. + + + Nein, ist nicht die gleiche Richtung, in die ich will. + + + Gut, dass du sie zu uns gebracht hast. Auf sich gestellt hätten die es nicht lange gemacht. + + + Danke, dass du das mit den Wächtern klargemacht hast. + + + Was habt ihr jetzt vor? + + + Wir brechen bald zur Janow-Station auf. Du kannst gerne mitkommen. + + + Ja, das liegt auf dem Weg. Ich schließe mich euch an. + + + Nein, ist nicht die gleiche Richtung, in die ich will. + + + Das war die richtige Entscheidung, Mann. Du hast diesen Typen geholfen und uns Verstärkung gebracht. Respekt. + + + Danke, dass du das mit den Freiheitlern klargemacht hast. + + + Hast du eine Idee, wer Sachen aus einer persönlichen Kiste gestohlen haben könnte? + + + Keine Ahnung. Hier tummeln sich alle möglichen Leute... Frag doch mal Knochenmann, er kennt hier fast jeden... + + + Auf zu Zulu. + + + OK. Ich hoffe, er schießt nicht, wenn er meine alte Panzerung sieht! Wir müssen sie unterwegs noch holen... und die Panzerung zurückbringen, die ich gerade trage. + + + Gehen wir. + + + Emissionen sind nicht gesund... Wir sollten ein bisschen warten. + + + Was ist passiert? + + + Tja... wir wissen nicht, wie wir hierher gekommen sind. Ich erinnere mich nur noch daran, dass wir ein Monolithertrupp waren und unbedingt das Zentrum der Zone erreichen wollten. Dort ist der Monolith - ein Meteor, der neue Lebensformen von anderen Planeten auf die Erde gebracht hat... Ich weiß noch, wie wir zusammen das Atomkraftwerk Tschernobyl erreicht haben, aber dann erinnere ich mich nur noch bruchstückhaft. Da war ein helles Licht... kosmisch kalt und... eine deutliche Stimme... Es war alles so wunderschön. Allerdings weiß ich nicht mehr, was diese Stimme mir befohlen hat. Mehrere Jahre meines Lebens... einfach weg. Bei den Jungs genau dasselbe... Und jetzt wissen wir nicht wohin. Auf jeden Fall brauchen wir einen Unterschlupf, damit wir uns vor Emissionen schützen können... und vor Mutanten. Wüsstest du einen sicheren Ort für uns? + + + Nicht weit von hier haben die Stalker ein Lager, ich kann es euch auf der Karte zeigen. + + + Ich weiß nicht, ob wir dort sicher wären... Auf dem Weg zum Atomkraftwerk Tschernobyl waren die Leute sehr misstrauisch... Ich glaube, wir haben später sogar Stalker getötet. Weißt du, wie man mit unserer Fraktion derzeit umspringt? Wahrscheinlich schießen sie gleich... Kannst du uns helfen? Du könntest allen im Lager der Stalker sagen, dass wir keine angriffslustigen Spinner mehr sind. Kannst du mit ihnen reden und dafür sorgen, dass sie uns aufnehmen? + + + Kein Problem. Ich rede mit ihnen, sobald ich das nächste Mal im Lager bin. + + + Tut mir leid, ich kann euch leider nicht helfen. + + + Wie genau kann ich euch helfen? + + + Wir brauchen einen Unterschlupf, damit wir uns vor Emissionen schützen können... und vor Mutanten. Kannst du uns dabei helfen, einen sicheren Ort für uns zu finden? + + + OK. Ich frage mal die Jungs in der Janow-Station. + + + Tut mir leid, ich kann euch leider nicht helfen. + + + Du brauchst einen Schutzanzug mit geschlossenem Atemkreislauf, wenn du nach Pripyat willst. + + + Kein Problem - ich habe noch meine Monolith-Panzerung und die ist genau damit ausgestattet. Das Problem ist nur, dass ich mich damit nicht in der Janow-Station blicken lassen sollte. + + + Ich stelle einen Trupp zusammen und breche dann auf nach Pripyat. Willst du dich uns anschließen? + + + Würde ich gerne... ich meine, es würde mich brennend interessieren, was dort mit uns passiert ist. Aber ich kann jetzt meine Jungs nicht hier zurücklassen - sie würden nicht mitkommen. Haben schon genug durchgemacht. + + + Ja, ich komme mit. Ich will unbedingt wissen, was mit uns passiert ist. Hoffentlich finde ich in Pripyat die Antwort auf diese Frage. Ich muss nur Loki Bescheid sagen, aber denke nicht, dass er etwas dagegen hat. + + + Ja, ich komme mit. Ich will unbedingt wissen, was mit uns passiert ist. Hoffentlich finde ich in Pripyat die Antwort auf diese Frage. Ich muss nur Shulga Bescheid sagen, aber denke nicht, dass er etwas dagegen hat. + + + Bereit zum Abmarsch? + + + Bereit. + + + Hallo, Stalker. Kannst du uns helfen? + + + Hallo. Hast du herausfinden können, ob wir ins Lager der Stalker gehen können? + + + Nein, ich bin noch dabei... + + + Beeil dich. Wer weiß, was einem hier alles zustoßen könnte. + + + Hallo. Danke für deine Hilfe. + + + Hallo. + + + Wie geht's? + + + Alles in Ordnung mit dem Trupp, aber ich würde wirklich gerne wissen, was mit uns geschehen ist. + + + Was machen die Söldner hier? + + + Darüber sollten Sie mit Hermann sprechen. Er kümmert sich um die verwaltungstechnischen Dinge im Labor. Soweit ich weiß, haben die Söldner mit Hermann eine Übereinkunft bezüglich der Bewachung unseres Labors getroffen. Genaueres weiß ich allerdings auch nicht. Ich möchte jedoch erwähnen, dass sie sich bei zahlreichen Gelegenheiten als zuverlässige Kämpfer erwiesen haben. + + + Was machen Sie hier? + + + Das war eine rhetorische Frage, nicht wahr? Wir sind hier mit Forschungen beschäftigt. Wollen Sie etwas Bestimmtes wissen? + + + Was genau erforschen Sie? + + + Wir haben nichts Bestimmtes im Sinn. Wir sind sozusagen wissenschaftliche Späher. Unser Ziel ist es, Zusammenhänge zwischen bestimmten Phänomenen zu erkennen, Theorien abzuleiten und diese dann zu belegen oder zu verwerfen. Wir sind uns darüber im Klaren, dass einige unserer Theorien keinen praktischen Nutzen haben. + + + Was wissen Sie über die Zone? + + + Da kann ich zu diesem Zeitpunkt nur mutmaßen... Ich glaube, dass die Zone unter dem Einfluss einer unbekannten Kraft entstanden ist. Elektromagnetische Felder, normale physikalische Gesetzmäßigkeiten oder Strahlungseinflüsse können nicht dazu geführt haben, dass sich die Biosphäre so schnell verändert hat. Offensichtlich lassen sich einige Mutationen mit Strahlung erklären... aber Entschuldigung! Unter normalen Bedingungen würde es hunderte, wenn nicht gar tausende Jahre dauern, bis ein Schwein zu Fleisch mutiert! Aber in der Zone kam es schon nach wenigen Jahren zu derartigen Mutationen. Es scheint fast so, als hätte jemand direkt auf den genetischen Code einzelner Tiere eingewirkt. Allein bei dem Gedanken läuft es mir schon kalt den Rücken runter. + + + Wie lange sind Sie schon in der Zone? + + + Nicht länger als eine Woche. Es war ziemlich mühsam, den ganzen bürokratischen Mist zu erledigen und diese Expedition zu organisieren. Würden wir nicht für Hermann arbeiten, würden wir vielleicht immer noch an der Grenze zur Zone warten, während Stalker sich im Inneren der Zone nach Lust und Laune bedienen. + + + Das war alles, was ich wissen wollte. + + + Oserski, warum hat Hermann mich angeheuert, um den Trupp während der Messungen zu beschützen? + + + Das ist auf meinen Mist gewachsen. Er hat darin keinen Nutzen gesehen, aber ich konnte ihn überzeugen. Meine Forschungen haben ergeben, dass der Einsatz unserer hochfrequenten Geräte in Anomaliefeldern bei mutierten Lebewesen in der Nähe zu einem erhöhten Aggressionspotenzial und einer gesteigerten Aktivität führt. In einfachen Worten: Sie machen sich auf die Suche nach Beute. + + + Oserski, ich habe Neuigkeiten. + + + Ja? Ich höre. + + + Sie hatten Recht. Die Mutanten haben uns keine Ruhe gelassen, als wir die Messungen vorgenommen haben. Aber als wir die Geräte ausgeschaltet haben, hat sich die Lage beruhigt. + + + Was?! Wenn... wenn sich meine Hypothese als richtig herausstellt, ist es wahrscheinlich, dass mutierte Tiere, die die Fähigkeit erlangt haben, auf Informationsfelder zurückzugreifen, mithilfe von Telepathie Signale von außerhalb empfangen können... künstlich erzeugte Signale... Das würde bedeuten, dass die unnatürliche Ähnlichkeit der auftretenden Mutationen und diese typischen Veränderungen der Zellstruktur... kein Zufall sind... + + + Könnten Sie etwas konkreter werden? Und sich eventuell etwas klarer ausdrücken? + + + Nein! Das sind alles nur persönliche Vermutungen. Oh, wie unhöflich von mir! Vielen Dank, dass Sie uns bei unseren Forschungen geholfen haben. + + + Was kann ich tun, damit Sie mit Hermann über einen Schutzanzug reden? + + + In einem Gebiet am Rand des Steinbruchs wurde eine bis dato unbekannte Pflanzenanomalie entdeckt. Ich hätte gerne eine Probe dieser Pflanze, aber die Stalker weigern sich, auch nur in die Nähe dieses Ortes zu gehen. Wenn ich eine dieser Pflanzen hätte, könnte ich Hermann davon überzeugen, Sie mit einem übrig gebliebenen Schutzanzug zu belohnen. + + + Ich werde diese Pflanze für Sie finden. + + + Gut. Ich habe die Koordinaten der Anomalie auf Ihren PDA geladen. + + + Vielleicht ein andermal. + + + Kommen Sie vorbei, falls Sie Ihre Meinung geändert haben. + + + Hier, ich habe die Pflanze, die Sie wollten. Wie sieht es nun mit dem Schutzanzug aus? + + + Großartig. Hah, Sokolow ist herausgerutscht, dass der Schutzanzug eigentlich für ihn ist. Aber egal. Ich zeige Hermann die Pflanze und er wird bestimmt trotzdem schnell mit dem Schutzanzug rausrücken. Sagen Sie Sokolow, dass er kommen und ihn holen soll. + + + Ich kann versuchen, neue Wachen für Sie zu finden. + + + Das wäre wirklich nett. Bitte sprechen Sie mit Hermann darüber. Diese Angelegenheit fällt in seinen Zuständigkeitsbereich. + + + Ich würde gerne meine Resistenz gegen Psi-Felder überprüfen lassen. + + + Hah, hat Hermann Sie zu mir geschickt? Gut, ich versuche, Ihnen das so einfach wie möglich zu erklären. Um Ihre Resistenz gegen Psi-Emissionen anständig analysieren zu können, bräuchte ich ein ganzes wissenschaftliches Institut und müsste jahrelang forschen. Ich habe lediglich eine Feldausrüstung mit einigen schmutzigen Reagenzgläsern. + + + Also ist es unmöglich? + + + Nicht so schnell. Es muss ja keine vollständige Analyse sein. Für unsere Zwecke müssen wir nur die Resistenz Ihrer Neuronen im Gehirn gegen Psi-Emissionen messen. Eine einfache Untersuchung reicht völlig aus. Also... in Ihrem Gehirn sind keine Auffälligkeiten erkennbar, was bedeutet, dass Sie relativ starken Psi-Emissionen ausgesetzt sein können, ohne das Bewusstsein zu verlieren. + + + Was ist mit der Hypothese bezüglich des erhöhten Aggressionspotenzials der Mutanten? + + + Ich habe zwei Theorien. Die Aggressivität der Mutanten könnte daher rühren, dass einige Leute in ihr Revier eingedrungen sind. In diesem Fall wäre das selbst für die meisten normalen Lebewesen - einschließlich der Menschen - ein normales Verhalten. Die andere Theorie ist, dass Mutanten aus irgendeinem Grund von unseren Messgeräten beeinflusst werden. Letztere Theorie wäre natürlich deutlich faszinierender. + + + Wie könnte man das überprüfen? + + + Das Messgerät müsste in einem Gebiet eingeschaltet werden, in dem zuvor keine Mutanten waren. Außerdem sollte das Experiment nur von einer einzigen Person durchgeführt werden, um zu vermeiden, dass sich das Eindringen der Menschen in das Jagdrevier auf das Messergebnis auswirkt. + + + Hier ist der Scanner. + + + Welche Ergebnisse haben Sie erhalten? + + + Ich weiß nicht, was Ihr Gerät anzeigen wird, aber ich glaube, dass die Theorie stimmt. Nachdem ich den Scanner eingeschaltet hatte, hat es nur fünf Minuten gedauert, bis Schnorks aufgetaucht und auf mich losgegangen sind. + + + Das habe ich mir gedacht. Aus irgendeinem Grund sind es normalerweise die unerwünschten Theorien, die sich als richtig herausstellen. Auf jeden Fall war es gut, dass Sie der Sache auf den Grund gegangen sind. Ab jetzt müssen wir dafür sorgen, dass jeder Trupp, den wir für Messungen aussenden, vorgewarnt ist. + + + Ich bin bereit, die These zu bestätigen oder zu widerlegen. + + + Ich bin hocherfreut, dass es auf der Welt immer noch Menschen gibt, die bereit sind, zum Wohle der Wissenschaft Opfer zu bringen. Der am besten geeignete Ort für das Experiment ist der Erdrutsch am südlichen Rand des Steinbruchs. Diese Gegend ist voller Gravitationsanomalien, die Mutanten normalerweise meiden. Das Gerät, das ich Ihnen gebe, ist mit einem Sensor zur Mutantenortung ausgestattet. Wenn Sie nach der Durchführung des Experiments mit dem Gerät zurück sind, kann ich mehr über dessen Auswirkungen auf das Aggressionspotenzial der Mutanten herausfinden. Erklären Sie sich dazu bereit, dieses Experiment durchzuführen? + + + Ja, ich mach's. + + + Im Moment nicht. + + + Gibt es irgendeine Möglichkeit, einen wissenschaftlichen Schutzanzug zu bekommen? + + + Das würde leider gegen die Vorschriften verstoßen. Wir müssen über alle Gegenstände in unserem Besitz Buch führen. Aber so wie ich Hermann kenne, hat er bestimmt mehr Ausrüstung beantragt, als wir eigentlich brauchen. Unter bestimmten Umständen kann ich ihn vielleicht überreden, einen Schutzanzug abzugeben. + + + Soll ich Artefakte für Sie suchen? + + + Nein, tut mir leid. Wir heuern nicht mehr irgendwelche Leute zum Suchen von Artefakten an, sondern arbeiten mit einem erfahrenen Artefaktsammler zusammen. Was immer wir brauchen, besorgt er für uns. + + + Ich kann versuchen, neue Wachen für Sie zu finden. + + + Das wäre keine schlechte Idee. In der Zone ist es nie ruhig... Sprechen Sie mit Hermann darüber - er hat hier das Sagen. + + + Sie sollen mir Scanner für die Erforschung von Anomalien aushändigen. + + + Bitte sehr. Drei Scanner, wie Hermann es gesagt hat. + + + Bitte sehr. Zwei weitere Scanner, wie Hermann es gesagt hat. + + + Wie bekommt man einen wissenschaftlichen Schutzanzug? + + + Hermann ist für die Ausrüstung verantwortlich. Aber ich kann Ihnen jetzt schon sagen, dass Sie ihn gar nicht erst fragen brauchen. Er wird Ihnen nichts geben. Versuchen Sie es lieber bei Oserski. Er ist lockerer drauf als Hermann und hat zudem einen gewissen Einfluss auf ihn. + + + Was führt Sie hierher? + + + Hören Sie, wo sind die Söldner, die Sie beschützt haben? + + + Wie geht's? + + + Hören Sie... Jemand hat die Söldner, die Sie beschützt haben, über den Haufen geschossen. Ich habe sie zwar auch nicht besonders gemocht, aber das geht zu weit... + + + CS-3a, cool! Das ist eine verdammt gute Panzerung... Erinnert mich an die gute alte Zeit... + + + Können Sie ein Speichermodul hacken? + + + Lassen Sie mal sehen... Kein Problem, so etwas habe ich schon mal gemacht... Wird nicht länger als eine Stunde dauern. Ich mache es für... sagen wir... 2.000. Einverstanden? + + + Einverstanden. + + + Gut. Ich gebe Ihnen Bescheid, sobald ich das Speichermodul gehacked habe. + + + So viel Geld habe ich nicht. + + + Hm. Tja, Sie wissen, wo Sie mich finden. Ich bezweifle, dass das irgendjemand besser hinbekommen würde als ich. + + + Ich werde darüber nachdenken. + + + Wie gesagt, ich mache es in einer Stunde für 2.000. + + + Und, haben Sie das Speichermodul gehacked? + + + Ich bin noch nicht soweit. Wie gesagt, ich gebe Ihnen Bescheid, wenn ich fertig bin. + + + Ja, hier. Jetzt kommen Sie an die Informationen ran. + + + Ich habe ein sonderbares Semi-Artefakt gefunden. Haben Sie Interesse? + + + Natürlich. Wo haben Sie es gefunden? + + + In Zaton, in dem verlassenen Baggerschiff. + + + Abgemacht. + + + Nein danke! Ich schau mich nach einem anderen Verkäufer um. + + + Was machen die Söldner hier? + + + Sie arbeiten für uns und bewachen das mobile Labor. Um gleich auf Ihre wahrscheinlich nächste Frage zu antworten: Ich hatte keine andere Wahl und musste sie anheuern. Aufgrund eines geheimen Militäreinsatzes haben wir nicht die erforderlichen Schutzmaßnahmen zur Verfügung gestellt bekommen. Dieser Umstand und die Tatsache, dass Stalker plötzlich verrückt nach Artefakten sind, ließen mir keine andere Wahl. Nur so kann ich für die Sicherheit des Labors garantieren. + + + Was machen Sie hier? + + + Wir erforschen die unterschiedlichsten Phänomene. + + + Welchem Zweck dienen Ihre Forschungen? + + + Wir führen wichtige wissenschaftliche Untersuchungen durch. Mit anderen Worten, wir sind nicht hier, um Schutzanzüge zu testen, neue Medikamente zu entwickeln usw. Unser Ziel ist es, eine logische Erklärung für die Dinge zu finden, die wir in der Zone beobachten können. Selbst wenn es uns nur gelingen würde, einen Bruchteil der Geheimnisse hinter diesen Phänomenen zu lüften, würde dies den globalen technischen Fortschritt massiv beschleunigen. + + + Was wissen Sie über die Zone? + + + Nicht viel, wenn ich ehrlich sein soll. Wir fangen gerade erst an, die Mechanismen hinter den Phänomenen zu begreifen, die wir hier beobachten können. Und leider sind wir meilenweit davon entfernt, die Zone als Ganzes zu verstehen. Das wird vor allem dadurch erschwert, dass die Zone sich von Zeit zu Zeit verändert. Damit meine ich nicht das Auftauchen neuer Anomalien oder anderer Kleinigkeiten. Ich rede hier von schwerwiegenderen Veränderungen, die man nicht immer mit dem bloßen Auge erkennen kann. Die abnehmende Stärke des Magnetfeldes zum Beispiel. Das Dumme an der Sache ist, dass wir nicht wissen, wohin das alles führen wird. Wir können nur abwarten und hilflos zusehen. + + + Wie lange sind Sie schon in der Zone? + + + Nicht lange, ungefähr eine Woche. Abgesehen davon war ich ein paar Mal in Sacharows Labor. Ich bereue es immer noch, dass wir diese Expedition nicht früher starten konnten. Ich habe den Leuten im Forschungsministerium mehrere Male gesagt, dass wir immer zwei vollständig ausgestattete mobile Labors bereithalten müssen... Sie sind einfach nur mit ihren fetten Hintern auf den Stühlen gesessen, haben teilnahmslos genickt und das war's. Denen haben wir es zu verdanken, dass uns fast die beste Gelegenheit entgangen wäre, die uns die Zone je geboten hat! + + + Ich verstehe. + + + Spucken die Scanner, die ich in den Anomalien aufgestellt habe, irgendwelche Informationen aus? + + + Welche Anomalie genau interessiert Sie? + + + Die Anomalie beim Parkplatz. + + + Ja, unsere Geräte zeigen an, dass in dieser Anomalie Artefakte sind! + + + Leider deutet nichts darauf hin, dass es in dieser Anomalie Artefakte gibt. + + + Betonbad-Anomalie + + + Asphalt-Anomalie + + + Fen-Anomalie + + + Aschehügel-Anomalie + + + Das war's erstmal. + + + Ich bin ganz Ohr. + + + Die jüngsten Ereignisse haben uns klar und deutlich vor Augen geführt, dass unser Forschungsteam nicht ausreichend vorbereitet ist, um Feldversuche anständig durchzuführen. Ihnen hingegen ist es gelungen, ganz alleine mit dem Controller fertigzuwerden! Wirklich erstaunlich! + + + Worauf wollen Sie hinaus? + + + In unserer Situation wäre es alles andere als unvernünftig, zu versuchen, einen fähigen Experten wie Sie anzuheuern. Unser Forschungsteam braucht dringend Unterstützung. Wir müssen Messungen vornehmen, Scanner aufstellen usw. + + + Fahren Sie fort... + + + Ich versuche, einen Zusammenhang zwischen Emissionen und der Entstehung von Artefakten in Anomalien herzustellen. Ich habe eine Theorie entwickelt, wonach man die nächste Emission anhand der Anzahl und Qualität der entstandenen Artefakte vorhersehen kann. Um genaue Berechnungen anstellen zu können, brauche ich jedoch statistische Werte. Dafür müssen wir nur einige Scanner im Zentrum verschiedener Anomalien aufstellen. + + + Tut mir leid, ich habe kein Interesse. + + + Das ist bedauerlich. Sie hätten der Wissenschaft einen großen Dienst erweisen können. + + + Gut, ich helfe Ihnen. + + + Ausgezeichnet! Sie müssen die Scanner bei Nowikow holen und sie dann in den Anomalien aufstellen, die in der Karte Ihres PDAs vermerkt sind. Kommen Sie anschließend hierher zurück - es gibt eine weitere Sache in Punkto Scanner und Messungen, die ich gerne mit Ihnen besprechen möchte. + + + Ich denke darüber nach und komme später wieder. + + + Ich habe die Scanner in den Anomalien aufgestellt. + + + Ausgezeichnet! Ich habe schon die ersten Ergebnisse und kann es gar nicht mehr bis zur nächsten Emission erwarten. Sie wird uns die statistischen Werte bringen, die wir brauchen... + + + Ich bin ganz Ohr! + + + Als ich mich der Anomalie genähert und den Forschungsdetektor ausgepackt habe, hat sich alles um mich herum gekrümmt, als würde die Umgebung zusammengedrückt werden. Nach einer Weile sind dann wie aus dem Nichts die Leichen toter Stalker aufgetaucht! Danach war es wieder vorbei. + + + Das ist unglaublich! Natürlich sind diese Informationen sehr unwissenschaftlich und es lässt sich daraus nichts mit Gewissheit ableiten, aber wir werden diese Ausführungen dennoch in unseren Aufzeichnungen vermerken. Nennen wir die Anomalie "Raumblase"! + + + Wie es scheint, haben Sie neue Wachen? + + + Ja, sie leisten gute Arbeit. Mit ihnen in der Nähe fühlen wir uns sicher. Danke für Ihre Mühe. Hier, Ihre Belohnung. + + + Sehen Sie sich diese Dokumente an. + + + Mal sehen... Ich will gar nicht fragen, wo Sie die herhaben, aber das ist einfach unglaublich! Lassen Sie mich davon eine Kopie anfertigen... Ach übrigens, hier, eine kleine Belohnung. + + + Was ist mit Ihren Wachen passiert? + + + Das weiß ich nicht, sie sind einfach verschwunden! + + + Ich habe in der Zone gute Kontakte. Ich könnte einige neue Wachen für Sie auftreiben. + + + Das wäre wunderbar! Als Gegenleistung für ihre Arbeit erhalten sie unsere vollste Unterstützung und werden mit den neuesten Technologien ausgestattet! Sie gehen natürlich auch nicht leer aus! + + + Einverstanden! + + + Ich kann es gar nicht mehr erwarten! + + + Ich habe meine Meinung geändert. + + + Das ist schade. + + + Kann passieren. + + + Noch etwas? + + + Unsere Wachen wurden getötet! Man hat sie direkt außerhalb unseres Bunkers niedergeschossen! + + + Ich habe einige Dokumente in der Jupiter-Anlage gefunden. Wollen Sie einen Blick darauf werfen? + + + Interessant, aber nicht zu gebrauchen. Dennoch danke für Ihre Mühe. Falls Sie sonst noch etwas finden, bringen Sie es hierher. + + + Ich wurde auf der Suche nach Dokumenten von Söldnern angegriffen. Hier ist der PDA ihres Anführers. + + + Wow. Und ich dachte, sie waren hier, um uns zu beschützen. Ich glaube, das muss ich meinen Vorgesetzten zeigen. Vielen Dank, junger Mann. + + + Leider enthält er keine interessanten Informationen. + + + Da ist etwas: Wir müssen alles über die jüngsten Entwicklungen in der Jupiter-Anlage herausfinden. Ich brauche diesbezüglich unbedingt die technischen Dokumente. Wahrscheinlich müssen Sie im verwaltungstechnischen Bereich der Anlage danach suchen. + + + Ich werde mich dort umsehen und alles, was ich finde, zu Ihnen bringen. + + + Nein, dabei werde ich Ihnen nicht helfen. + + + Ich habe die Dokumente aus der Jupiter-Anlage. + + + Interessant, aber nicht zu gebrauchen. Dennoch danke für Ihre Mühe. Falls Sie sonst noch etwas finden, bringen Sie es hierher. + + + Ich wurde auf der Suche nach Dokumenten von Söldnern angegriffen. Hier ist der PDA ihres Anführers. + + + Wow. Und ich dachte, sie waren hier, um uns zu beschützen. Ich glaube, das muss ich meinen Vorgesetzten zeigen. Vielen Dank, junger Mann. + + + Ich werde versuchen, die Anomalie zu finden. + + + Ich habe keine Zeit. + + + Ich bin gekommen, weil ich Sie bei Ihren Forschungen unterstützen will. + + + Ich spreche bestimmt für das gesamte Team, wenn ich sage, dass wir sehr erfreut darüber wären, wenn Sie der Wissenschaft ein weiteres Mal dienen würden. Welche Arbeit würde Sie interessieren? + + + Ich möchte Ihnen dabei helfen, Messungen vorzunehmen. + + + Sind Sie sicher, dass Sie für uns einen vollständigen externen Scan durchführen wollen? + + + Ja. Sagen Sie mir, was ich tun soll. + + + Nein, ich denke lieber noch einmal darüber nach. + + + Sie haben über das Aufstellen von Scannern gesprochen. + + + Ich versuche, einen Zusammenhang zwischen Emissionen und der Entstehung von Artefakten in Anomalien herzustellen. Ich habe eine Theorie entwickelt, wonach man die nächste Emission anhand der Anzahl und Qualität der entstandenen Artefakte vorhersehen kann. Um genaue Berechnungen anstellen zu können, brauche ich jedoch statistische Werte. Dafür müssen wir nur einige Scanner im Zentrum verschiedener Anomalien aufstellen. + + + OK, ich helfe Ihnen dabei. + + + Ausgezeichnet! Sie müssen die Scanner bei Nowikow holen und sie dann in den Anomalien aufstellen, die in der Karte Ihres PDAs vermerkt sind. + + + Ich denke darüber nach und komme später wieder. + + + Die Scanner in den Anomalien übertragen Informationen. Wir müssen einfach nur die Ergebnisse abwarten. Sie können einige weitere Scanner in Anomalien aufstellen, wenn Sie möchten. Zusätzliche Informationen können nie schaden. Als Gegenleistung informieren wir Sie, wenn Artefakte in Anomalien auftauchen. + + + Einverstanden. + + + Ausgezeichnet! Sie müssen die Scanner bei Nowikow holen und sie dann in den Anomalien aufstellen, die in der Karte Ihres PDAs vermerkt sind. + + + Ich denke darüber nach und komme später wieder. + + + Leider gilt bei uns die Vorschrift, dass wir einer Person nicht mehr als eine Arbeit zuteilen dürfen. Tut mir leid, aber wir müssen uns an die Regeln halten. + + + Haben Sie die Ergebnisse der Anomaliefeldmessungen von dem Trupp erhalten, den ich beschützt habe? + + + Ich möchte hinzufügen, dass Ihre Messungen definitiv die Aufmerksamkeit von Mutanten und Zombies auf sich gezogen haben. Es hat uns einiges an Zeit und Mühe gekostet, sie uns vom Leib zu halten. + + + Hm... Sie glauben also, dass sie auf die Scans reagiert haben? Interessant. Das würde Oserskis Theorie bestätigen, die besagt, dass Mutanten telepathischen Zugriff auf unterschiedlichste Felder haben. Ich denke, das sollte ich mit ihm erörtern. Hier, Ihre Bezahlung für Ihre Arbeit. Das haben Sie sich redlich verdient! + + + Hm... Sie glauben also, dass sie auf die Scans reagiert haben? Interessant. Das würde Oserskis Theorie bestätigen, die besagt, dass Mutanten telepathischen Zugriff auf unterschiedlichste Felder haben. Sie sollten Oserski davon berichten. Die Sache mit den Stalkern ist tragisch. Wir werden einen Teil unseres bescheidenen Etats ihren Familien als Entschädigung zukommen lassen. Der Rest ist für Sie - als Bezahlung für die Arbeit, die Sie für uns getan haben. Danke! + + + Gibt es irgendeine Möglichkeit, einen wissenschaftlichen Schutzanzug zu bekommen? + + + Nein! Die Anzahl der uns zur Verfügung gestellten Schutzanzüge ist stark begrenzt und ich kann keinen von ihnen entbehren! + + + Was kann ich für Sie tun? + + + Haben Sie zufällig die Leute gesehen, die für die Bewachung unseres Bunkers zuständig sind? + + + Reden Sie weiter. + + + Sie werden es mir nicht glauben, aber jemand hat unsere Wachen getötet, und zwar direkt vor unserem Bunker! + + + Brauchen Sie Hilfe? + + + Zurzeit versuchen wir, eine neue Probenart zu sammeln. Von diesen Proben gehen keine Anomalieeffekte aus, aber Experimente, die wir damit durchführen, ziehen unglaubliche Resultate nach sich! + + + Fahren Sie fort... + + + Fassen Sie sich kurz und sagen Sie mir, was es zu tun gibt. + + + In Ordnung... Die Stalker, die das Psi-Feld gefunden haben, glauben, dass sich dort ein Mutantenunterschlupf befindet. Ich glaube ihnen nicht... Ich meine, abgesehen von Controllern kann kein Mutant in einem unregelmäßigen Psi-Feld überleben! Keine Sorge, unsere Jungs werden sich um die Mutanten kümmern. Wir brauchen Sie deswegen, weil der vermehrte Kontakt mit Psi-Feldern die Resistenz unserer Stalker gegen mögliche Schäden verringert hat. + + + Lassen Sie mich das klarstellen: Sie wollen, dass ich ein unbekanntes Psi-Feld betrete und dort eine Probe für Sie hole, die dort eventuell nicht einmal auffindbar sein wird. Und wenn doch, weiß niemand, wie sie aussieht. Habe ich das richtig verstanden? + + + Genau! Dieser Einsatz ist für die Wissenschaft von großer Bedeutung und für unser Team erst recht. Ihre Hilfe wäre für uns von unschätzbarem Wert. Falls Sie Zweifel haben, reden Sie mit Oserski. Er wird die notwendige Analyse durchführen, mit deren Hilfe Ihre Resistenz gegen Psi-Emissionen genau ermittelt werden kann. Sie können auch gerne unsere Stalker fragen. Sie werden Ihnen alles genau erklären. Also, möchten Sie der Wissenschaft einen großen Dienst erweisen? + + + Ja. + + + Sie wissen es noch gar nicht? Ihr Stalkertrupp ist tot. + + + Angesichts der Tatsache, dass Sie letztes Mal nicht zum Tunnel gekommen sind, dürfte es für mich äußerst schwierig werden, das Team von einer Zusammenarbeit mit Ihnen zu überzeugen. + + + Das war so nicht beabsichtigt. + + + Ich glaube Ihnen, aber unser Team zum Sammeln der Proben setzt sich aus besonderen Leuten zusammen - Sie sollten sie nicht im Stich lassen. Ich werde noch einmal mit ihnen reden und sollte sie dazu bringen können, ihre Meinung zu ändern. Aber enttäuschen Sie mich dieses Mal nicht. Ich warte auf die Probe. + + + Tut mir leid, aber ich muss leider ablehnen. Ihre Ausrüstung ist einfach nicht für den Aufenthalt in einem unregelmäßigen Psi-Feld geeignet. Sie würden einen schnellen, aber schmerzhaften Tod erleiden, und das will ich nicht zu verantworten haben. + + + Ich habe die Probe. + + + Wirklich? Lassen Sie sehen, ich bin schon ganz aufgeregt! + + + Ich habe Ihre Probe. Es hat sich herausgestellt, dass ein Controller im Tunnel war. Er hat versucht, Ihren Trupp zu manipulieren, und hätte damit fast Erfolg gehabt. Ich konnte ihn jedoch vorher töten. + + + Sie sind wirklich ein Teufelskerl! Sie haben einen Controller getötet und die Stalker vor einem Psi-Angriff bewahrt... Wenn ich nicht wüsste, dass es wahr ist, würde ich Ihnen nicht glauben! Eine ausgezeichnete Erfahrung und eine fantastische Probe. Ihr Engagement für die Wissenschaft ist in der Tat bemerkenswert. Ich möchte Ihnen ganz persönlich dafür danken, auch im Namen meines Teams und aller Forscher auf der Welt! + + + Leider wurde der Trupp von einem Controller angegriffen. Ich musste mich verteidigen. Der Controller ist zwar tot, aber die Stalker haben es nicht mehr geschafft. + + + Ein Controller, sagen Sie? Wie schrecklich! Wer hätte das ahnen können?! Ich trauere um den Verlust dieser tapferen Jungs... Sie waren loyale Diener der Wissenschaft. Auch wenn sie eigentlich keine Wissenschaftler waren, haben sie dennoch mehr für die Wissenschaft getan als viele Professoren! Ich danke Ihnen und möchte Ihnen diese kleine Belohnung geben... + + + Leider wurde der Trupp von einem Controller angegriffen. Ich hätte es fast nicht mehr rausgeschafft. + + + Was machen die Söldner hier? + + + Mir im Weg umgehen, wenn Sie mich fragen. Zuerst haben Sie mich andauernd gebeten, dieses und jenes zu reparieren... Aber seit gestern sind sie alles andere als zurückhaltend und stellen permanent Fragen über unsere Ausrüstung. Mir will einfach nicht in den Sinn kommen, wie ihnen das bei der Bewachung unseres Bunkers weiterhelfen soll. + + + Welche Modifikationen können Sie an Ausrüstungen durchführen? + + + Wie Sie sehen, ist das hier ein Forschungskomplex... Wir haben hier kein Kevlar und keine Waffen als Ersatzteile herumliegen. Aber ich kann mit einer meiner persönlichen Entwicklungen Körperpanzerung wieder zusammenflicken oder modifizieren. Sie können sich bestimmt vorstellen, dass ich eine ganze Menge Ausrüstungsgegenstände hier herumliegen habe. + + + Ihnen und Ihrer Probe aus dem Psi-Feld ist es zu verdanken, dass sich Oserski etwas einfallen lassen konnte, um die Menschen vor Emissionen zu schützen. Ich habe seine Ideen in die Tat umgesetzt... und kann Ihren Schutzanzug damit ausstatten, wenn Sie möchten. + + + Nun, abgesehen von den gewöhnlichen Verbesserungen kann ich Ihnen auch Filter- und Psi-Schutz-Modifikationen anbieten. Schließlich sind diese Dinge erst dank Ihrer Hilfe möglich... Oserski und Hermann haben sich wie kleine Kinder gefreut! + + + Abgesehen von den gewöhnlichen Verbesserungen kann ich Ihnen auch Isolations- und Psi-Schutz-Modifikationen anbieten. Schließlich sind diese Dinge erst dank Ihrer Hilfe möglich... Oserski und Hermann haben sich wie kleine Kinder gefreut! + + + Ich habe eine breite Palette an Modifikationen: Isolation, Filtersystem und Psi-Schutz. Ist ein Schutzanzug mit all diesen Dingen ausgestattet, können Sie jede Anomalie betreten... und kommen vielleicht sogar wieder heil raus. Danke übrigens, dass Sie bei Hermanns Forschungen geholfen haben. Ansonsten könnte ich Ihnen jetzt diese Modifikationen gar nicht anbieten. + + + Erzählen Sie mir von Ihrem Bunker. + + + Hm... Was wollen Sie wissen? + + + Wozu genau dient das Labor? + + + Ich glaube, dass das nicht einmal Hermann und Oserski genau wissen. Offenbar arbeiten sie dort an allen möglichen Forschungsprojekten... Aber die Resultate sind bestenfalls bescheiden. Andererseits könnten Sie ja mal mit Oserski reden... Es ist mir gelungen, basierend auf seinen Theorien einige nette Schutzanzug-Modifikationen zu entwickeln. + + + Was wissen Sie über die Zone? + + + Wissenschaftlich betrachtet nichts, aber praktisch gesehen kenne ich mich gut in der Zone aus. Hier sind nur Dinge von Wert, die die Überlebenschancen erhöhen. Der Zone ist es egal, ob Sie ein Bandit sind oder ein Stalker, der Artefakte sammelt, um seine Familie zu ernähren. Nur diejenigen, die für den Aufenthalt in der Zone gut ausgerüstet sind, überleben hier. + + + Wie lange sind Sie schon in der Zone? + + + Eine ganze Weile. Anfangs habe ich wie jeder andere Artefakte gesucht, aber mit meiner Gesundheit ging es immer mehr bergab, bis ich mir darüber im Klaren wurde, dass ich nicht mehr weitermachen kann. Zum Glück bin ich nicht auf den Kopf gefallen, weswegen es für mich nicht schwer war, Arbeit zu finden. Ich war ungefähr ein Jahr lang mit einer Fraktion unterwegs, die sich aus ehemaligen Wissenschaftlern zusammengesetzt hat. Das waren gute Leute... ein Jammer, dass sie dabei draufgegangen sind, als sie mit blindem Eifer irgendeinem fadenscheinigen Ziel hinterher gejagt sind. Danach habe ich eine Zeit lang die Zone durchstreift und dann angefangen, für die Wissenschaftler zu arbeiten. Bisher bereue ich es nicht. + + + Das war alles, was ich wissen wollte. + + + Ich habe vor, ein unregelmäßiges Psi-Feld zu betreten. Haben Sie irgendwelche Ratschläge? + + + Was soll ich sagen? Ich bezweifle, dass Sie mit der Theorie über Informationsenergiefelder vertraut sind... Jedenfalls ist es nicht gefährlich, für eine kurze Zeit den Wirkungen eines Psi-Feldes ausgesetzt zu sein... zumindest nicht auf lange Sicht. Aber nehmen Sie das alles nicht auf die leichte Schulter, wenn Sie dort sind. Wer Psi-Felder unterschätzt, endet als Zombie. + + + Können Sie einen Stahlbehälter aufbrechen? + + + Ist nicht mein Ding. Außerdem habe ich dafür nicht die richtige Ausrüstung... und es wäre gegen unsere Gesundheits- und Sicherheitsvorschriften. + + + Können Sie einen Flugschreiber entschlüsseln? + + + In der Tat, aber ich werde es nicht tun. Früher habe ich das ein paar Mal gemacht, aber war einfach zu nervig... Die Wissenschaftler halten mich schon genug auf Trab. + + + Was ist an dem Schutzanzug CS-3a so besonders? + + + Abgesehen von der Tatsache, dass ich ihn entworfen habe? Ist einer der besten Schutzanzüge in der gesamten Zone. Deswegen tragen Sie ihn ja, oder? Er ist leicht, schränkt die Bewegungsfreiheit nicht ein und hat eine stabile Körperpanzerung. Ich habe ihn selbst mit dem Anomalieschutzsystem versehen... Ein Jammer, dass damals unsere Materialien knapp waren. Aber was will man auch mitten im Sumpf anderes erwarten? Ein paar Teile und das wäre ein absolut moderner Schutzanzug. Ich habe 'ne Menge hochwertige Ausrüstungsteile herumliegen, also wäre das kein Problem. + + + Arbeiten Sie für Uhu? + + + Nein. Er hat mir neulich bei einem Einkauf geholfen... eine Hand wäscht die andere. + + + Uhu hat mich darum gebeten, Ihnen Detektoren zu bringen. Hier sind sie. + + + Gut. Ich erledige einige Arbeiten und lasse sie dann von den Ortskundigen zurück zu Uhu bringen... Alles andere ist eine Sache zwischen Ihnen und Uhu. + + + Oh! Du bist also derjenige, der den Banditen in Zaton Waffen verkauft! + + + Pssst... Bist du verrückt?! Du kannst doch hier nicht über so etwas reden. Wir kennen uns nicht, verstanden? + + + Verstanden. + + + Wie wäre es, wenn ich dem Anführer von deinen kleinen Nebengeschäften erzähle? + + + Und was willst du zu ihm sagen? Du kannst mir nichts nachweisen. Ich meine, du warst derjenige, der geholfen hat, die Zeugen zum Schweigen zu bringen. Du hast keine Beweise und würdest wie ein Idiot dastehen. + + + Ich habe bei einigen toten Söldnern einen PDA gefunden. Er enthält einen Vertrag für einen Auftragsmord. Ich sollte das Opfer sein - und du warst der Auftraggeber. + + + Mir reicht's jetzt langsam mit dir... Hör zu, gib mir den PDA und du kriegst von mir eine hervorragende Waffe, mit der ausschließlich Elitetruppen der Wächter ausgerüstet sind. Wie klingt das? + + + Gut, ich nehme die Waffe. + + + Behalte sie. Ich brauche keine Almosen von einer hinterhältigen Schlange! + + + Ich habe einen weiteren PDA mit einem Vertrag für einen Auftragsmord mit mir als Opfer. Und wieder bist du der Auftraggeber. + + + Mist... diese verdammten Söldner... auf die ist wirklich kein Verlass... Hör zu, vergessen wir die Sache doch einfach. Folgender Vorschlag: Die Söldner lassen dich in Ruhe und dafür lässt du mich in Ruhe. Als kleine Entschädigung bringe ich dich zum geheimen Lagerhaus der Wächter. Dort kannst du so viele Waffen mitnehmen, wie du tragen kannst. + + + OK, machen wir's so. + + + Gut, treffen wir uns dort. Das Versteck ist neben dem Steinbruch. + + + Ich gehe nirgendwo hin. Du wirst mir das ganze Zeug hier und jetzt geben müssen. + + + Ich habe nichts hier! So blöd bin ich nicht! Entweder treffen wir uns beim Versteck oder du kriegst überhaupt nichts. + + + Nein, danke. + + + Ich brauche keine Almosen von einer hinterhältigen Schlange! + + + Ich möchte die Zone verlassen. + + + Sicher? Es gibt keinen Weg zurück. + + + Ich bin mir sicher. Gehen wir. + + + Ich glaube... ich bleibe noch. + + + Mal sehen... nun, deine Leber ist größer, als ich erwartet hätte, aber das ist ja wohl ein Berufsrisiko, was? Abgesehen davon bist du topfit! + + + Wenn das Ding nicht leuchten würde, wäre wohl alles OK. So, wie der Zug jetzt aussieht, macht mir das Ganze aber etwas Angst. Geh und sieh selbst... aber ich glaube nicht, dass es dir viel Spaß machen wird. + + + OK, es ist deine Entscheidung. + + + "Ehemalige" Monolither? Na ja, wenn du das sagst... bürgst du für sie? + + + "Ehemalige" Monolither? Nein, danke. Das Letzte, was ich jetzt gebrauchen kann, ist ein wilder Haufen von Fanatikern. + + + Hah! Guter Junge. Du bist nicht auf den Kopf gefallen und weißt, wie du mich bei Laune hältst. Also, was hast du für mich? Ein Artefakt oder die 15.000? + + + Ich habe dir ein Artefakt gebracht. + + + Schön, welches? + + + Ich habe kein Artefakt, das so viel wert ist. + + + Flamme. + + + Goldfisch. + + + Feuerfliege. + + + Schneeflocke. + + + Hmm... im Moment nichts. + + + Nun, ich habe gesagt, was ich zu sagen hatte. Jetzt bist du dran mit dem Reden. + + + Bis später. + + + Natürlich! Die unregelmäßigen Psi-Felder müssen untersucht werden... je schneller desto besser. Sagen Sie, wie schätzen Sie die Sicherheit bei dieser Sache ein? Wir brauchen unbedingt Ihre Hilfe, um an eine Probe zu gelangen. Wollen Sie sich also in den Dienst der Wissenschaft stellen? + + + Ich könnte eventuell ein paar gute Männer für Ihre neue Forschungsgruppe finden. + + + Wirklich? Das wäre eine große Hilfe und würde auch, so denke ich wenigstens, belohnt werden. + + + In Ordnung. Ich werde die passenden Leute anheuern. + + + Ich werde noch einmal darüber nachdenken. + + + Hier. Ich bin in dem Tunnel auf einen Controller gestoßen... und habe ihn getötet. + + + Das ist fantastisch! Sie haben einen Controller getötet und uns das beschafft, was wir brauchen... eigentlich ist das kaum zu glauben! Eine großartige Erfahrung und eine perfekte Probe. Sie haben der Wissenschaft einen sehr großen Dienst erwiesen. Im Namen aller Wissenschaftler hier möchte ich mich herzlich bei Ihnen bedanken! + + + Hier. Ich bin in dem Tunnel auf einen Controller gestoßen... und konnte gerade noch entkommen. + + + Ein Controller? Wie schrecklich! Aber wer hätte das wissen können? Das Wichtigste ist, dass Sie uns die Probe gebracht haben und damit der Wissenschaft einen großen Dienst erwiesen haben. Vielen Dank, und hier haben Sie Ihre Belohnung. + + + Wie macht sich die neue Forschungsgruppe? + + + Oh, prächtig. Das sind fähige Männer, muss ich sagen. Bitte nehmen Sie das hier. Wir schätzen Ihre Fähigkeiten im... ähhh... Personalwesen. + + + Was geht ab, Bruder? Natürlich freue ich mich, dich zu sehen, aber es wäre auch nicht schlecht, wenn ich 'ne Weile alleine sein könnte. + + + Ich bin wegen dem gefangenen Stalker hier. Ich will ihn freikaufen. + + + Und ich will Respekt für die Banditen und unsere Regeln, Kumpel. Aber ich will auch nicht unnötig für Unruhe sorgen... deswegen sage ich, dass du 15.000 locker machst oder mir ein entsprechendes Artefakt gibst. Ich bin ein fairer Geschäftsmann - ich verlange nicht mehr, als er mir schuldet. + + + Hier hast du das Geld. + + + OK... ich respektiere das, was du tust. Nimm jetzt diesen Versager mit und sag den Stalkern, dass beim nächsten Mal der Preis höher sein wird. + + + So viel habe ich nicht bei mir. + + + Schön, dann hast du halt Pech gehabt. Sonst noch was? + + + Ich habe gerade nichts Passendes bei mir - ich komme später wieder. + + + Mal sehen... hmm, ich sehe hier nichts von strategischer Wichtigkeit, aber das Zeug könnte irgendwann noch nützlich werden. Ich biete dir 500 pro Dokument. Einverstanden? + + + Mal sehen. Ach du heilige Scheiße! Diese Informationen könnten den Ruf der Wächter ruinieren! Ich biete dir 4.000 dafür. + + + Interessant. Nun, ich kann dir 2.000 dafür bieten. + + + Ja, aber der Preis ist derselbe: 2.000. + + + OK, bis später. + + + Aber das ist ja schrecklich! Was zum Teufel könnte ihnen zugestoßen sein? Hmm... vielleicht Mutanten. Ich muss Oserski fragen, was für ein Monster es sein könnte... hmm. Trotzdem muss das Psi-Feld untersucht werden. Diese Mission ist äußerst wichtig für die Wissenschaft im Allgemeinen und für unsere Gruppe im Besonderen. Wir brauchen unbedingt Ihre Hilfe, um an eine Probe zu gelangen. Wenn Sie irgendwelche Zweifel haben, reden Sie mit Oserski. Er wird die nötigen Untersuchungen durchführen, um Ihre Resistenz gegen Psi-Emissionen zu ermitteln. Was sagen Sie? Wollen Sie der Wissenschaft helfen? + + + Ich werde darüber nachdenken. + + + Unser Forschungsteam, das aus Stalkern hier aus der Gegend besteht, ist vor kurzem auf ein äußerst außergewöhnliches Psi-Feld gestoßen. Laut unseren Theorien und den durchgeführten Messungen erzeugt dieses Feld unregelmäßige Psi-Effekte, statt sie ständig auszusenden. + + + Leider sind die Mitglieder unserer Forschungsgruppe alle tot und wir können keine Messungen mehr vornehmen, solange wir keinen Ersatz finden. + + + Warten Sie bitte... wären Sie so freundlich und würden mir einen Augenblick zuhören? + + + Wie lauten die Ergebnisse des Anomaliescans? + + + Haben Sie noch andere Arbeit für mich? + + + Ich habe davon gehört. + + + Leider konnte ich Hermann noch nicht davon überzeugen, einen Suchtrupp auszurüsten. Ich muss zugeben, die Gerüchte über dieses Phänomen sind sehr widersprüchlich, aber irgendetwas sagt mir, dass die Oase wirklich existiert. Meine Intuition trügt mich sehr selten... wenn Sie also die Oase finden und mir einen Beweis für ihre Existenz bringen würden, wäre ich Ihnen äußerst dankbar. + + + Das würde ich gerne tun, aber ich war schon in der Oase. + + + Hmm... ähh... ich glaube, ich habe mich verhört. Was haben Sie gesagt? + + + Ich bin hier, um Wanos Schulden zu begleichen. + + + Ja, ich erinnere mich an ihn. Er schuldet uns nicht gerade wenig... sieben Riesen sind's, um genau zu sein. + + + OK, hier. + + + Sag Wano, dass er uns nichts mehr schuldet. + + + OK. + + + So viel habe ich nicht bei mir. + + + Komm wieder, wenn du flüssig bist. + + + Von Zinsen war aber nicht die Rede. + + + Was redest du da? Denkst du, ich bin blöd und verleihe Geld, ohne Zinsen zu verlangen? Sieben Riesen, und dabei bleibt's. + + + Überleg's dir lieber noch einmal. Ich hab hier meine Knarre und kein Problem damit, sie einzusetzen. Also, was würde deine Leiche mit den ganzen Zinsen anfangen? + + + Schon gut, schon gut... nur die Ruhe! Wir können uns sicher einigen. Gib mir einfach fünf Riesen und die Sache ist gegessen. + + + Ha! Mit deiner Spielzeugwumme jagst du mir keine Angst ein, Vollidiot! Sieben Riesen, inklusive Zinsen. Ende der Diskussion. + + + Hast du mich vergessen? Ich habe noch immer die Knarre. + + + Ich ziehe es vor, dich ohne Bezahlung zu erschießen. + + + Ich werde darüber nachdenken. + + + Sieben Riesen, inklusive Zinsen. + + + Ich kann gerade keine großen Jobs gebrauchen. Ich muss mich zusammenreißen... weißt du, vielleicht sogar nach Hause gehen... einen richtigen Job finden und diese beschissenen Artefakte vergessen. Ich weiß nur nicht, wie ich Grizzly zurücklassen soll... und Torba. Wir sind echt gute Freunde... sind immer füreinander da und so. Ich weiß nicht, vielleicht muss ich einfach mal 'ne Nacht drüber schlafen und den Kopf freikriegen... + + + Ich kann gerade keine großen Jobs gebrauchen. Ich muss mich zusammenreißen... weißt du, vielleicht sogar nach Hause gehen... einen richtigen Job finden. Ach, ich weiß nicht... ich muss mich einfach mal entspannen und den Kopf freikriegen... + + + Und, bereit, Mitaj zu retten? Ich hoffe, es macht dir nichts aus, mit ein paar Leuten zusammenzuarbeiten, die ich angeheuert habe... + + + Ich habe hier den PDA von Morgan, dem Händler der Wächter. Hast du Interesse? + + + Ich habe hier einen PDA, der beweist, dass Morgan Kontakt zu den Söldnern hat. + + + Ich denke... ich werde es behalten. + + + Ich wusste, dass Sie Ihren Wunsch, der Wissenschaft zu dienen und etwas Gutes zu leisten, am Ende nicht ignorieren würden! In Ordnung, so lautet der Plan: Eine Forschungsgruppe aus Stalkern wird die Messungen vornehmen. Ihr Auftrag besteht darin, sie zu begleiten, zu beschützen und durch schwieriges Gelände zu führen. Viel Glück. Die Stalker warten draußen auf Sie. + + + Hallo, Stalker. Überrascht, hier einen alten Knacker zu treffen? He he! Ich bin mit den Jungs hierher gekommen, um ein bisschen Abwechslung zu haben. Ich repariere Ausrüstung und manchmal kümmere ich mich auch um Menschen... + + + Jetzt wo du hier bist, was kann ich für dich tun? + + + Wie bist du nach Pripyat gekommen? + + + Gari hat mir den Weg gezeigt. Diese Stalker hatten schon lange vor, hierher zu kommen, aber sie hatten keine Lust, sich mit dem Militär anzulegen. Als dann Gari gesagt hat, dass das Militär kein Problem mehr darstellt, habe ich nicht lange gefackelt. Jetzt ist Onkel Jar hier und alles wird gut. Ha ha! + + + Ich brauche medizinische Hilfe. + + + Lass den alten Mann mal sehen... + + + Na also, du wirst es überleben. Wenn es zu einer Schwellung kommen sollte, pinkle einfach drauf - das hilft! + + + Du siehst gesund genug aus. Willst wohl einen alten Mann auf den Arm nehmen... ha ha... + + + Willkommen in meinem bescheidenen Haus der Freude und des Genusses. Bist du auf der Suche nach Freude, nach Genuss oder etwa beidem? + + + Na ja, die Jungs sagen immer, das ich fast schon zu nett bin... freu dich also jetzt darüber... das nächste Mal werde ich nicht so zuvorkommend sein. Und jetzt verschwinde von hier, Versager! + + + Ich war schon dort. Die Banditen sind tot. + + + Wow, du hast's echt drauf! Vielen, vielen Dank! Hier, nimm das Geld - ich wollte damit meine Schulden begleichen, aber jetzt bekommt es jemand, der es wirklich verdient. + + + Wow, du hast's echt drauf! Vielen, vielen Dank! Behalte das Geld, das für meine Schulden gedacht war. Jetzt bekommt es jemand, der es wirklich verdient! + + + Unsere Scanner haben ungewöhnliche Aktivitäten nördlich von hier registriert. Angesichts der empfangenen Daten vermute ich, dass die dortige Anomalieformation instabil ist. Leider kann ich von hier aus nicht mehr darüber sagen. Wir müssen Feldmessungen vornehmen... Was ich allerdings zweifelsfrei sagen kann, ist, dass gewöhnliche Detektoren der Stalker nicht in der Lage sein werden, die Anomalie zu erfassen - Sie werden einen Swarog-Detektor brauchen... eine unserer Entwicklungen. + + + Die Scanner registrieren weiterhin anomale Aktivitäten nördlich von hier. Wenn Sie über etwas Besseres als einen gewöhnlichen Detektor der Stalker verfügen - z.B. über einen Swarog-Detektor -, könnten Sie Feldmessungen vornehmen. + + + Bisher nur von den Sumpfanomalien. Trotzdem hat Nowikow bereits eine praktische Anwendung dafür gefunden. Vielen Dank für Ihre Mühe, wir freuen uns schon auf den zweiten Teil der Ergebnisse. + + + Bisher nur aus dem Anomaliegebiet hinter Kopatschi. Trotzdem hat Nowikow bereits eine praktische Anwendung dafür gefunden. Vielen Dank für Ihre Mühe, wir freuen uns schon auf den zweiten Teil der Ergebnisse. + + + Natürlich. Ich habe die vollständigen Ergebnisse erhalten. Um ehrlich zu sein, ist der Umfang der erzeugten Daten so groß, dass es Wochen oder gar Monate dauern wird, sie vollständig zu verarbeiten. Trotzdem kann Nowikow bereits viel damit anfangen. Vielen Dank für Ihre Mühe. + + + Nein, so etwas ist hier nicht vorgefallen. Hmm... aber vor kurzem habe ich in der Tat einen verdächtigen Typen gesehen. Ich hatte einen Spaziergang gemacht und war gerade auf dem Rückweg, als ich einen Stalker bemerkte, der gerade die Janow-Station verließ. Als er mich auch bemerkte, wurde er vollkommen ohne Grund unhöflich und hat irgendetwas darüber gefaselt, dass er wüsste, wo ich wohne, oder so einen Blödsinn. Ich habe ihn ignoriert, weil ich dachte, er wäre betrunken... aber wenn ich jetzt so darüber nachdenke, ist es doch ziemlich merkwürdig. + + + Wohin ist er gegangen? + + + Nach Nordosten. Ich habe ein paar Schüsse aus der Richtung gehört, aber das ist hier in der Gegend nichts Ungewöhnliches. Frag Zulu - der hockt Tag und Nacht in seinem Turm und hat vielleicht etwas gesehen. + + + Nach Nordosten. Wahrscheinlich ist er zum Umspannwerk gegangen. + + + Ich verstehe. + + + Was geht, mein Freund? + + + Wie geht es dir? + + + Ganz gut. Klar, es ist nicht einfach, aber wir werden es hier schon rausschaffen. Zusammen kriegen wir das schon hin! + + + Wie geht es dir? + + + Ich weiß nicht so recht... mir geht's nicht besonders gut hier. Irgendwie habe ich das Gefühl, dass ich weitergehen sollte. Vielleicht breche ich bald wieder auf... mach mir nur keine Vorwürfe. + + + Ich habe das Blutsaugerlager in Zaton zerstört. Komplett ausgelöscht. + + + [fortfahren...] + + + [fortfahren...] + + + [fortfahren...] + + + [fortfahren...] + + + Ich suche Freiwillige, die Messungen in Anomalien vornehmen. + + + Ich benötige Messungen, die in Anomalien vorgenommen werden müssen. + + + Wer liegt denn da auf der faulen Haut? + + + Du hast das Artefakt gefunden? + + + Und wie! Hier gibt es nichts zu tun - die einzige Unterhaltung, die wir haben, ist dieses Backgammon-Brett. Das hier ist kein Vergleich zu Pripyat... mann, wenn ich doch endlich diesen verfluchten Vertrag erfüllen könnte... dann würde ich sofort dorthin gehen! + + + [fortfahren...] + + + Du kannst zum Steinbruch gehen - dort ist Splitter gestorben. Kurz vor seinem Tod hat er mir verraten, dass Flint seine Beute gestohlen und ihn in der Anomalie zurückgelassen hat. + + + Sein Name war Splitter. Er ist in eine Gasanomalie gelaufen und du bist mit seinem Artefakt abgehauen. Wie du siehst, hat er mir alles erzählt, bevor er gestorben ist. + + + Ich will nicht wissen, woher du das hast. Machen wir es einfach: Ich gebe dir 4.000 für diesen PDA. Schon lange habe ich mich gefragt, was unser Versorgungsoffizier so alles treibt, wenn er nicht gerade arbeitet... + + + Dann schauen wir mal. Was zum... dieses miese Stück Dreck! Er hat nicht nur unsere Waffen verkauft, sondern die Koordinaten des Lagerhauses an die Freiheit verraten!!! Verdammt, wir müssen sofort ein Begrüßungskomitee aufstellen. + + + Dann schauen wir mal. Das ist ja nicht zu fassen! Wir haben über das Lagerhaus Bescheid gewusst und wollten sogar einen Abstecher dorthin wagen, aber wir hatten keine Ahnung von irgendeinem Alarm, weil die miese Ratte ihn überhaupt nicht erwähnt hat. Moment, ich werde die Jungs warnen. + + + Nun, aus reiner Neugier gebe ich dir 4.000 dafür. + + + Also er ist nicht gerade eine Kampfmaschine, kann aber trotzdem sehr gut mit einem Gewehr umgehen. Er hat allerdings immer einen angesäuerten Gesichtsausdruck... fast so, als ob seine Rationen immer nur aus Zitronen bestehen würden. + + + Ich bin beim alten Kühlturm auf eine seltsame Anomalie gestoßen. + + diff --git a/gamedata/configs/text/ger/st_dialogs_pripyat.xml b/gamedata/configs/text/ger/st_dialogs_pripyat.xml new file mode 100644 index 0000000..774ecdf --- /dev/null +++ b/gamedata/configs/text/ger/st_dialogs_pripyat.xml @@ -0,0 +1,906 @@ + + + + Hah! Die haben richtig eins auf den Sack gekriegt! Danke für deine Hilfe. Wenn du nicht gewesen wärst, hätten mich diese Mistkerle richtig fertiggemacht. Weißt du, du bist ja doch ein guter Stalker... Tut mir leid, dass ich beleidigt war, aber du hättest mir ja früher sagen können, dass du vom Geheimdienst bist. + + + Kein Problem. Wir sollten besser zum Militärlager aufbrechen - dort ist es sicherer. + + + Ja, das wäre auf jeden Fall besser, als alleine in Pripyat rumzulaufen. + + + Dann gehen wir. + + + Ich muss hier erst noch etwas erledigen, aber geh nur. Das Lager ist in dem Gebäude mit dem Waschsalon. + + + Zeit für mich, zu gehen. + + + Warte... hier... ist das zuverlässigste MG in der gesamten Zone. + + + Aber... brauchst du es nicht mehr? + + + Ich habe immer etwas dabei, um mir Mutanten vom Leib zu halten. Außerdem habe ich beschlossen, zurückzugehen. Gari bringt mich nach Jupiter. Du kannst das MG also besser gebrauchen. Nimm es und halte es in Ehren. + + + Viel Glück. + + + Danke, das ist eine gute Waffe. + + + Pah! Das ist keine gute Waffe, sondern die beste Waffe in der gesamten Zone. Sie wurde modifiziert und ist deswegen ziemlich schwer. Andererseits, warum soll man weglaufen, wenn man dieses Ding dabei hat. Soll doch der Feind die Beine in die Hand nehmen! + + + Wiedersehen. + + + Cool! + + + Weißt du, wo Zulu ist? + + + Er ist weg... Er hat mich darum gebeten, ihn nach Jupiter zu bringen. Nicht weit von der Anlage entfernt haben sich dann unsere Wege getrennt. Er hat mir nicht gesagt, wohin er geht. + + + Warte... Es gibt da eine unangenehme Sache, die ich dir erzählen will... Einige Söldner wollten, dass ich sie nach Pripyat bringe. Sie haben mir ein nettes Sümmchen geboten, also habe ich zugestimmt. Aber schon bald wurde mir klar, dass ich in der Klemme sitze... Sie haben mich keine Sekunde aus den Augen gelassen und die Waffe auf mich gerichtet. Als wir uns Pripyat genähert haben, konnte ich fliehen, aber sie müssten mittlerweile in der Stadt sein, also sei vorsichtig. + + + Hast du zufällig mitbekommen, über was die Söldner geredet haben? + + + Ein paar Sachen, ja. Sie hatten sicher nicht vor, mich am Leben zu lassen. Deswegen gab es für sie auch keinen Grund, ihre Pläne vor mir zu verheimlichen. Hauptsächlich haben sie davon geredet, die Leute des Auftraggebers zu treffen. Sie wollten ihnen das Ziel ihrer Mission klarmachen. + + + Wo findet das Treffen statt? + + + In der Nähe, im Hof der Wohnanlage. + + + Danke für die Information. + + + Du hast die Söldner erwähnt. Hast du mitbekommen, über was sie geredet haben? + + + Ein paar Sachen, ja. Sie hatten sicher nicht vor, mich am Leben zu lassen. Deswegen gab es für sie auch keinen Grund, ihre Pläne vor mir zu verheimlichen. Hauptsächlich haben sie davon geredet, die Leute des Auftraggebers zu treffen. Sie wollten ihnen das Ziel ihrer Mission klarmachen. + + + Wo findet das Treffen statt? + + + In der Nähe, im Hof der Wohnanlage. + + + Ich habe mit den Wissenschaftlern eine Abmachung bezüglich eines Schutzanzuges getroffen - reden Sie mit Hermann darüber. + + + OK... Wo ist der Treffpunkt? + + + In der Nähe der Janow-Station, bei Zulu. + + + Da sind überall Stalker! Wie wäre es, wenn Sie mich dorthin bringen? Wenn ich dort alleine auftauche, könnte es Ärger geben. Aber wenn Sie dabei sind, werden sie nicht schießen, weil sie Sie kennen. + + + Zu welcher Evakuierungsstelle sind Sie gegangen? + + + Tut mir leid, ich darf darüber nicht reden - ist geheim. + + + Gehen wir zu Zulu. + + + OK. Aber zuerst müssen wir mit Hermann reden, damit wir den wissenschaftlichen Schutzanzug kriegen. + + + Gehen wir. + + + Würde ich ja gerne... aber da draußen ist gerade eine Emission im Gange. Wir sollten ein bisschen warten. + + + Was hat Sie hierher verschlagen? + + + Mein Hubschrauber ist in Jupiter abgestürzt und durchs Dach einer Werkstatt gerauscht. Ich bin der einzige Überlebende. Ich habe es aus der Jupiter-Anlage rausgeschafft und mich bis zur nächsten Evakuierungsstelle durchgeschlagen, aber dort war niemand. Dann bin ich auf Gari gestoßen und er hat mich zum Bunker gebracht. + + + Sie brauchen einen Schutzanzug mit geschlossenem Atemkreislauf, wenn Sie nach Pripyat wollen. + + + Was machen Sie hier? + + + Mein Befehl lautet, zur Evakuierungsstelle zu gehen, aber die Zone ist zu gefährlich. Ich bin Pilot und kein Fußsoldat! Deswegen warte ich hier und hoffe, dass man mich aufgabelt, sobald der Einsatz abgeschlossen ist. + + + Ich stelle einen Trupp zusammen und breche dann auf nach Pripyat. Wollen Sie sich mir anschließen? + + + Pripyat? Klingt gar nicht schlecht... Vielleicht haben ein paar unserer Jungs überlebt und sie haben es irgendwie nach Pripyat geschafft... Dort ist eine Evakuierungsstelle, also wäre das sogar ein möglicher Zielort für mich. Alleine würde ich mich nicht auf den Weg machen, aber zusammen mit Ihrem Trupp könnte ich es versuchen. + + + Sind Sie bereit? + + + Kann man so sagen. + + + Guten Tag, Stalker. + + + Guten Tag. + + + Guten Tag. + + + Guten Tag, Major. + + + Wo haben Sie die Militäruniform her? + + + Nun, ich denke, inzwischen weiß jeder, dass die Militärhubschrauber abgestürzt sind... Ich bin Leutnant Sokolow, Kopilot eines der Hubschrauber. + + + Wegen dieser Wache... + + + Sein Signal kommt aus dem alten Lebensmittelgeschäft, aber er antwortet nicht... Vielleicht hat er sein Funkgerät verloren... Aber sicher kann man das zu diesem Zeitpunkt nicht sagen. Wir müssen ihn finden... + + + Danke, Oberst! Ich denke, ich komme schon zurecht. + + + Wegen dieser Wache... + + + Tja... alles nur wegen diesem Controller... Wahrscheinlich ist dem Aufklärungstrupp das Gleiche widerfahren. Der Controller hat sie dazu gebracht, aufeinander zu schießen... Diese Kreaturen gehören zu den schlimmsten Biestern in der Zone und wir wurden nicht für einen Kampf gegen sie ausgebildet. Der Controller hat uns völlig kalt erwischt und wieder einmal haben wir Opfer zu beklagen... + + + Wenigstens hat man sich um den Controller gekümmert. + + + Ich hoffe, die Lage beruhigt sich jetzt etwas... Ich bin Ihnen für Ihre Hilfe dankbar, Major. Ich schätze, Sie haben bei diesem Einsatz viel Munition verbraucht... Finden Sie Leutnant Kirilloff und bitten Sie ihn, Ihnen die nötige Ausrüstung zu geben. + + + Danke, Oberst! + + + Keine Sorge, Oberst. Ich werde mich um diesen Mutanten kümmern. + + + Können Sie mir Genaueres zu dem Einsatz sagen? + + + Wer ist das? + + + Wenn wir die Ursache für die Störung nicht bald finden, können wir nur noch abwarten, bis wir sterben. Der erste große Angriff der Monolither wird das Militär in Stücke reißen... und der Einsatz wird definitiv scheitern... + + + Ich versuche, die Ursache so schnell wie möglich zu finden. + + + Und, Major? Haben Sie die Ursache für die Funkstörung gefunden? + + + Nein, ich bin noch dabei... + + + Gari hat mir von dem Vorfall mit den Söldnern erzählt... + + + Ja, mir hat er auch davon berichtet... Nach seiner Flucht ist er hierher gekommen und hatte Angst, dass er verfolgt wird. Zum Glück - sowohl für ihn, als auch für uns - haben die Söldner seine Spur verloren... Wir beobachten den Ort, an dem sich die Söldner und die Leute des Auftraggebers treffen sollen, aber dort ist alles ruhig... Ich würde wirklich gerne wissen, was die Söldner hier vorhaben. + + + Ich habe Informationen, dass die Söldner in Pripyat nach einem geheimen Labor suchen. + + + Ein geheimes Labor, hier in Pripyat? Wo haben Sie diese Information her? + + + Vom Notebook eines Söldners aus Zaton. Ein Stalker namens Onkel Jar hat mir außerdem eine Geschichte erzählt, die das bestätigt. + + + Hm... was wissen Sie noch? + + + Sie suchen nach dem Zentrallabor. Während meiner Untersuchung ist es mir gelungen, die Koordinaten herauszufinden. + + + Wenn das wahr ist, bedeutet das, dass wir neben den Zombies und Fanatikern gegen einen weiteren Feind gewappnet sein müssen... Wir müssen entscheiden, wie es weitergeht. + + + Wir müssen das Treffen beobachten und wenn möglich den Vertreter des Auftraggebers eliminieren. Das würde sicherstellen, dass für eine Weile niemand zum X8-Labor gelangt. + + + Das wäre eine gute Lösung. Wir werden zwar nicht herausfinden, wer noch über das Labor Bescheid weiß, aber wir können wenigstens dafür sorgen, dass die Söldner nicht dorthin gelangen. Allerdings werden die Söldner schnell reagieren und stellen damit eine Bedrohung für uns dar. Versuchen Sie, beide Ziele zu töten. Ich werde Leutnant Kirilloff den Befehl geben, Sie zu begleiten. + + + In Ordnung. + + + Warten Sie, vielleicht sollten wir das andere Ziel nehmen. + + + Entscheiden Sie, welches Ziel Priorität hat. + + + Wir müssen den Anführer der Söldner eliminieren. Gelingt es Ihnen, sollte der geschwächte Söldnertrupp kein allzu großes Problem mehr darstellen. + + + Klingt nach einer guten Vorgehensweise, aber der Bote wird dann wahrscheinlich entkommen und die Information über das Labor woanders an den Mann bringen. Das würde bedeuten, dass die Söldner doch noch das Labor finden. Versuchen Sie, beide Ziele zu eliminieren. Ich werde Leutnant Kirilloff den Befehl geben, Sie zu begleiten. + + + Dafür habe ich keine Zeit. + + + Vom Notebook eines Söldners aus Zaton. + + + Eine Geschichte, die mir ein Stalker aus der Janow-Station namens Onkel Jar erzählt hat. + + + Wegen der Söldner... + + + Gute Arbeit. Beide Ziele wurden eliminiert. Jetzt kommen uns die Söldner nicht in die Quere und lenken keine unnötige Aufmerksamkeit auf das Labor. Das Gewehr können Sie behalten. Etwas mehr Munition dafür habe ich auch noch. + + + Gut. Der Anführer ist tot und die Söldner stellen kein Problem mehr für uns dar. Aber da die Leute des Auftraggebers entkommen konnten, besteht die Gefahr, dass sie im Labor auftauchen. Bleiben Sie wachsam... Das Gewehr können Sie behalten. Etwas mehr Munition dafür habe ich auch noch. + + + Gut. Die Person, die den Standort des Labors gekannt hat, ist tot. Das bedeutet, die Söldner werden es nicht finden. Allerdings bezweifle ich, dass sie Pripyat verlassen werden, und somit bleiben sie eine Bedrohung für uns. Seien Sie wachsam... Das Gewehr können Sie behalten. Etwas mehr Munition dafür habe ich auch noch. + + + Sie haben im letzten Moment das Ziel geändert? Das war eine gute Entscheidung. Der Anführer ist tot und die Söldner stellen kein Problem mehr für uns dar. Aber da die Leute des Auftraggebers entkommen konnten, besteht die Gefahr, dass sie im Labor auftauchen. Bleiben Sie wachsam... Das Gewehr können Sie behalten. Etwas mehr Munition dafür habe ich auch noch. + + + Sie haben im letzten Moment das Ziel geändert? Das war eine gute Entscheidung. Die Person, die den Standort des Labors gekannt hat, ist tot. Das bedeutet, die Söldner werden es nicht finden. Allerdings bezweifle ich, dass sie Pripyat verlassen werden, und somit bleiben sie eine Bedrohung für uns. Seien Sie wachsam... Das Gewehr können Sie behalten. Etwas mehr Munition dafür habe ich auch noch. + + + Das ist nicht besonders gut gelaufen. Der Anführer der Söldner ist am Leben und der Vertreter des Auftraggebers ebenso. Jetzt wissen die Söldner über uns Bescheid und stellen für uns eine ebenso große Bedrohung dar wie die Streitkräfte der Monolither. Darüber hinaus wissen sie jetzt, wo sich das Labor befindet. Es ist nur eine Frage der Zeit, bis sie dort auftauchen werden. Bleiben Sie wachsam... Das Gewehr können Sie behalten. Etwas mehr Munition dafür habe ich auch noch. + + + Machen Sie Ihre Soldaten bereit, Oberst. Es kann losgehen. + + + OK. Geben Sie Strelok Deckung, Major. Wir können auf uns selbst aufpassen. + + + Also... von allen Leuten hier haben Sie und Strelok die meiste Erfahrung in der Zone - mit dem Unterschied, dass Strelok nur vom Hörensagen her über die Zone bescheid weiß, während Sie auf jeden Fall ein Profi sind. Ich will damit sagen, dass ich auf Sie zähle, Major. Behalten Sie Strelok im Auge - von uns sind nicht viele übrig. + + + Der Trupp ist bereit zum Abmarsch. Wir warten nur noch auf Sie, Major. + + + Sieht so aus, als seien die Verrückten alle tot. Schnappen Sie sich dieses Gewehr und dann nichts wie weg, solange wir noch können. + + + Klingt vernünftig. + + + Ich bin bereit, gehen wir. + + + OK. Der Trupp ist bereit. + + + Abmarsch. + + + Wir müssen warten. Ich will in der Emission keine Männer verlieren. + + + Ich bin Hauptmann Tarasow. Sie sind vielleicht Major, aber hier habe ich das Sagen und das bedeutet, dass meine Befehle nicht zur Disposition stehen. Das Leben jedes Mannes im Trupp hängt davon ab. Der Plan lautet wie folgt: Wir bringen uns im westlichen Abschnitt des Krankenhauses in Stellung und warten, bis die Monolith-Kämpfer auftauchen. Wir müssen schnell sein, damit wir nicht unnötig Aufmerksamkeit erregen. + + + Verstanden, auf geht's. + + + In Ordnung. Der Trupp ist bereit. + + + Abmarsch. + + + Wir müssen warten. Ich will in der Emission keine Männer verlieren. + + + Warten Sie, Hauptmann. Ich bin noch nicht soweit. + + + Gibt es bezüglich der Störung irgendwelche Neuigkeiten? + + + Ich habe viele Störquellen identifiziert, eine davon befindet sich irgendwo in der Nähe. Wenn wir sie zerstören, können wir vielleicht mit dem Hauptquartier kommunizieren. + + + Ich habe die Koordinaten der Störquelle berechnet. Es muss sich dabei um eine Art speziell angefertigten Sender im Hochfrequenzbereich handeln, wenn nicht sogar im Mikrowellenbereich. + + + Das von Ihnen zerstörte Gerät war tatsächlich die Störquelle. Wahrscheinlich gibt es viele davon, aber wir konnten schon den Funkkontakt zum Hauptquartier herstellen. + + + Erzählen Sie mir von dem Signal. + + + Das Signal taucht immer wieder auf und verschwindet dann wieder. Aber jedes Mal, wenn wir es wieder empfangen, befindet es sich näher am Lager. + + + Ist das alles? + + + Nein. Das Signal wird auf Frequenzen gesendet, die nur selten für die Funkübertragung verwendet werden. + + + Ich verstehe. + + + Nehmen Sie diese Waffe und die Munition... Sie können es sich erst einmal bequem machen. Ich behalte die Stelle von der anderen Seite aus im Auge und melde mich bei Ihnen, sobald sie auftauchen. + + + OK. + + + Guten Tag. Ich heiße Leutnant Kirilloff und bin für die Instandhaltung der Waffen sowie für die Munitionslagerung zuständig. + + + Haben Sie Munition? + + + Ja, wir sind neulich in ein Lagerhaus der Monolither eingebrochen. Es war voller Munition für jede erdenkliche Waffe, die man in der Zone kriegen kann... Ich frage mich, wie sie hier an all die Waffen rankommen... Ich schätze, dass eine der Wachen in diesem Gebiet sie ihnen verkauft... + + + Also können Sie auch meine Waffen reparieren? + + + Sicher. Wir wurden dafür ausgebildet, die unterschiedlichsten Waffen zu reparieren. + + + Ich verstehe. + + + Guten Tag. + + + Warum habe ich bloß diese Kopfschmerzen? + + + Die Stunde der Wahrheit ist gekommen. Ich frage mich, ob wir es schaffen... + + + Ich brauche Munition. + + + Kein Problem... Was genau brauchen Sie? + + + 9x18 Pistolen-Munition... + + + Hier... sonst noch etwas? + + + Hier... + + + 9x19 Pistolen-Munition... + + + 11.43x23 Pistolen-Munition... + + + Schrotflinten-Munition... + + + 5.45x39 Sturmgewehr-Munition... + + + 5.56x45 Sturmgewehr-Munition... + + + 9x39 Sturmgewehr-Munition... + + + Scharfschützengewehr-Munition... + + + MG-Munition... + + + Mehr darf ich Ihnen leider nicht geben, Major... Laut Befehl des Obersts müssen wir Munition sparen. + + + Ach, schon gut. + + + Ich brauche Granaten. + + + Kein Problem... welche? + + + Handgranaten. + + + Hier... + + + VOG-25 Granatwerfer-Munition. + + + M209 Granatwerfer-Munition. + + + Ach, schon gut. + + + Mehr darf ich Ihnen leider nicht geben, Major... Laut Befehl des Obersts müssen wir Munition sparen. + + + Ich brauche medizinische Hilfe. + + + Ich helfe immer gerne. Lassen Sie mal sehen... + + + Wieder ganz der Alte, gesund und munter. + + + Wie fühlen Sie sich nach dem, was passiert ist? + + + Ich bin wieder OK... Nach dem Kindergarten war ich in einem Schockzustand, aber als die Emission angefangen hat, habe ich mich ziemlich schnell wieder gefangen... + + + Guten Tag. + + + Am Wichtigsten ist es, die Hubschrauber zu erreichen. + + + Ich brauche Medizin. + + + Mal sehen, was ich habe. Hier, bitte. + + + Tut mir leid, ich habe nicht mehr viel übrig, deswegen kann ich Ihnen nichts mehr geben. + + + Wir haben Ihr Funksignal verfolgt. + + + Ja. Ich habe einen Stalker namens Guide kontaktiert. Er hat mir erklärt, wie man über die unterirdischen Tunnel an diesen Ort gelangt. + + + Wer ist Guide? + + + Ein legendärer Stalker. Man sagt, er kann einen an jeden Ort der Zone bringen... Die Jungs von der Armee können sich glücklich schätzen, ihn getroffen zu haben. Ohne ihn wären sie nicht weit gekommen. + + + Woher wussten Sie, dass das Militär hier ist? + + + Guide hat es mir gesagt. Er war derjenige, der Kowalski und seinen Trupp hierher gebracht hat. + + + Ich verstehe. + + + Welche Informationen wollen Sie an die Regierung weitergeben? + + + Da gibt es vieles... Ich bin mir sicher, dass man mithilfe meiner Informationen die Zone zerstören kann. Ich dachte, ich könnte das selbst tun... aber das ist viel schwieriger, als ich eigentlich vermutet hätte. Die Leute, die damit angefangen haben, haben keine Kontrolle mehr darüber... Ich erkläre das alles, wenn wir hier raus sind. + + + Was haben Sie im Sarkophag gesehen? + + + Das ist alles ein großer Schwindel... der Monolith, der Wunschgönner, erstunken und erlogen - ein Gerät, das einem die Sinne vernebelt. Und die Leute, die dahinter stecken, halten sich an irgendeinem anderen Ort verborgen... + + + Wissen Sie, wer dahinter steckt? + + + Vielleicht, vielleicht auch nicht... Ich weiß nicht mehr, was ich glauben soll... Dennoch habe ich mehr herausgefunden, als ihnen lieb ist. + + + OK, das ist genug. + + + Ich sage alles, was ich weiß. Solange diese Informationen an die richtigen Leute geraten. + + + Ich habe unterwegs die Verstecke Ihres Trupps gefunden... + + + Ich frage mich, wie Sie das geschafft haben... Da müssten Aufzeichnungen gewesen sein. Haben Sie welche gefunden? + + + Ja, diese drei Mitteilungen habe ich gefunden. + + + Danke... Ghost und Fang waren meine Freunde... Zusammen ist es uns gelungen, den Hirnschmelzer zu überwinden und das Atomkraftwerk Tschernobyl zu erreichen. Leider sind sie mittlerweile nicht mehr am Leben. Nach unserer Rückkehr sind wir getrennte Wege gegangen. Ich wurde verwundet und bin mit dem Doktor in den Sümpfen geblieben. Ich habe die beiden nie wieder gesehen... Erst viel später habe ich erfahren, dass Fang von Söldnern getötet wurde und Ghost sein Vertrauen in die Wissenschaftler mit dem Leben bezahlt hat... Wie auch immer, das war früher... Jetzt weiß ich, was getan werden muss, um sicherzugehen, dass meine Freunde nicht umsonst gestorben sind. + + + Ja, hier ist Ihre Nachricht an Ghost. + + + Danke... Ghost war mein Freund... Zusammen mit Ghost und Fang ist es mir gelungen, den Hirnschmelzer zu überwinden und das Atomkraftwerk Tschernobyl zu erreichen. Nach unserer Rückkehr vom Zentrum der Zone sind wir getrennte Wege gegangen. Ich wurde verwundet und bin mit dem Doktor in den Sümpfen geblieben. Ich habe die beiden nie wieder gesehen... Erst viel später habe ich erfahren, dass Fang von Söldnern getötet wurde und Ghost sein Vertrauen in die Wissenschaftler mit dem Leben bezahlt hat... + + + Ja, hier ist Fangs Mitteilung an Sie. + + + Danke... Fang war mein Freund... Zusammen mit Ghost und Fang ist es mir gelungen, den Hirnschmelzer zu überwinden und das Atomkraftwerk Tschernobyl zu erreichen. Nach unserer Rückkehr vom Zentrum der Zone sind wir getrennte Wege gegangen. Ich wurde verwundet und bin mit dem Doktor in den Sümpfen geblieben. Ich habe die beiden nie wieder gesehen... Erst viel später habe ich erfahren, dass Fang von Söldnern getötet wurde und Ghost sein Vertrauen in die Wissenschaftler mit dem Leben bezahlt hat... + + + Ja, hier ist Ihre Nachricht an Fang. + + + Danke... Fang war mein Freund... Zusammen mit Ghost und Fang ist es mir gelungen, den Hirnschmelzer zu überwinden und das Atomkraftwerk Tschernobyl zu erreichen. Nach unserer Rückkehr vom Zentrum der Zone sind wir getrennte Wege gegangen. Ich wurde verwundet und bin mit dem Doktor in den Sümpfen geblieben. Ich habe die beiden nie wieder gesehen... Erst viel später habe ich erfahren, dass Fang von Söldnern getötet wurde und Ghost sein Vertrauen in die Wissenschaftler mit dem Leben bezahlt hat... + + + Ja, hier ist Ihre Mitteilung an Ghost und Fangs Mitteilung an Sie. + + + Danke... Ghost und Fang waren meine Freunde... Zusammen ist es uns gelungen, den Hirnschmelzer zu überwinden und das Atomkraftwerk Tschernobyl zu erreichen. Leider sind sie mittlerweile nicht mehr am Leben. Nach unserer Rückkehr sind wir getrennte Wege gegangen. Ich wurde verwundet und bin mit dem Doktor in den Sümpfen geblieben. Ich habe die beiden nie wieder gesehen... Erst viel später habe ich erfahren, dass Fang von Söldnern getötet wurde und Ghost sein Vertrauen in die Wissenschaftler mit dem Leben bezahlt hat... + + + Ja, hier ist Ihre Mitteilung an Ghost und eine weitere an Fang. + + + Danke... Ghost und Fang waren meine Freunde... Zusammen ist es uns gelungen, den Hirnschmelzer zu überwinden und das Atomkraftwerk Tschernobyl zu erreichen. Leider sind sie mittlerweile nicht mehr am Leben. Nach unserer Rückkehr sind wir getrennte Wege gegangen. Ich wurde verwundet und bin mit dem Doktor in den Sümpfen geblieben. Ich habe die beiden nie wieder gesehen... Erst viel später habe ich erfahren, dass Fang von Söldnern getötet wurde und Ghost sein Vertrauen in die Wissenschaftler mit dem Leben bezahlt hat... + + + Ja, hier ist Ihre Nachricht an Fang und seine Nachricht an Sie. + + + Danke... Fang war mein Freund... Zusammen mit Ghost und Fang ist es mir gelungen, den Hirnschmelzer zu überwinden und das Atomkraftwerk Tschernobyl zu erreichen. Nach unserer Rückkehr vom Zentrum der Zone sind wir getrennte Wege gegangen. Ich wurde verwundet und bin mit dem Doktor in den Sümpfen geblieben. Ich habe die beiden nie wieder gesehen... Erst viel später habe ich erfahren, dass Fang von Söldnern getötet wurde und Ghost sein Vertrauen in die Wissenschaftler mit dem Leben bezahlt hat... + + + Ja. Leider habe ich sie nicht bei mir. + + + Mal sehen... oh, Sie haben ein großes Problem, Major! Es geht Ihnen so schlecht, dass Sie die Aufnahmeprüfung für das Raumfahrtprogramm wohl nur mit Ach und Krach schaffen würden! Ha ha! + + + Na los, Major. Die Monolither werden nicht warten. + + + Major, wir vermissen eine Wache - der Mann hat seinen Posten verlassen. Sein Funksignal kommt aus dem Lebensmittelgeschäft, aber er antwortet nicht. Gott weiß, was ihm dort zugestoßen ist. Vielleicht ist er ja durchgedreht - der Hubschrauberabsturz hat ihn ziemlich mitgenommen. Würden Sie das Funksignal für mich überprüfen? + + + Klar, mach ich. + + + Ich kann nichts versprechen. + + + Major, wir müssen den Spähtrupp finden. + + + Sie müssen sich zusammen mit dem Sturmtrupp zu Objekt A17 begeben - Hauptmann Tarasow wird Ihnen den Weg zeigen. Das Ziel sind zwei Krankenhausflügel, die über einen Durchgang miteinander verbunden sind. Monolither halten sich momentan im Westflügel auf. Sie müssen im anderen Flügel einen Hinterhalt vorbereiten. Sie dürften das Gewehr dabei haben, vermutlich getragen vom größten Spinner unter ihnen. + + + Er ist wahrscheinlich der Anführer des Trupps. Die Jungs haben mitbekommen, wie er ihnen eine Predigt gehalten hat - ohne Übertreibung! Seien Sie vorsichtig... wer weiß, was man von dem Kerl erwarten kann! + + + Verstanden, Oberst. + + + Guten Tag. Ich bin Oberst Kowalski, Kommandeur dieser Einheit. + + + Ich bin Major Degtarew vom ukrainischen Geheimdienst. Ich bin autorisiert, das Fehlschlagen der Operation Fairway zu untersuchen. + + + Ich verstehe. Dann hören Sie mir zu, Major. Operation Fairway ist zusammen mit unseren Hubschraubern Geschichte! Die Hälfte meiner Jungs ist draufgegangen und wir haben keinen Kontakt zum Hauptquartier. Ich will genauso wie Sie wissen, warum die Operation fehlgeschlagen ist. + + + Irgendwelche Theorien? + + + Meine einzige Theorie ist, dass die Hubschrauber abgeschossen wurden. Und zwar mit einer äußerst starken Waffe, über die wir bisher nicht viel wissen. Monolither haben sie einmal gegen uns eingesetzt, beim ersten Angriff auf das Atomkraftwerk. Ich habe vor, in den Besitz einer dieser Waffen zu kommen und sie zu untersuchen. Wenn Sie bei der Sache mitmachen wollen - der Monolithertrupp mit der Waffe wurde bereits lokalisiert und unser Sturmtrupp wartet auf meinen Befehl, die Operation zu starten. Was sagen Sie dazu? + + + Ich mache mit. Aber nur unter der Bedingung, dass Sie alle Informationen, die Sie haben, mit mir teilen und mir zudem absolute Handlungsfreiheit gewähren. + + + Ich habe Informationen über die unbekannte Waffe, das Gaußgewehr. + + + Wow! Wie funktioniert es? Kann man damit einen Hubschrauber abschießen? + + + Theoretisch ist das möglich, aber die beschleunigten Projektile hätten Löcher in den Hubschraubern hinterlassen. Aber es gibt keine Löcher. + + + Verdammt... das war dann wohl eine Sackgasse. Eine andere Theorie habe ich nicht. Also können wir nichts weiter tun, als mitten in dieser verdammten Zone zu sitzen und zu hoffen, dass sie uns angreifen... aber OK, genug geweint! Kümmern wir uns um Dinge, auf die wir hier und jetzt einen Einfluss haben. Dank Ihnen wissen wir, dass es gegen diese beschleunigten Projektile nicht hilft, einfach irgendwo in Deckung zu gehen. Das ist doch schon mal etwas. Deswegen bedanke ich mich bei Ihnen, Major. Ich melde mich bei Ihnen, falls wir etwas Neues erfahren. + + + Theoretisch ist das möglich, aber Stingray 4 und 5 sind aufgrund eines elektronischen Ausfalls abgestürzt. Beschleunigte Projektile wären dazu nicht in der Lage gewesen. + + + Wie geht die Operation voran? + + + Feldwebel Morosow ist gefallen. Die Monolither haben uns in eine Falle gelockt, indem sie ihre eigenen Leute geopfert haben. + + + Drecksäcke! Sie konnten über unseren Plan doch gar nicht Bescheid wissen?! Wir haben also unseren Scharfschützen verloren. Was ist mit dem Ziel der Operation? + + + Wir mussten einige Verluste hinnehmen... die Monolither haben uns in eine Falle gelockt, indem sie ihre eigenen Leute geopfert haben. + + + Drecksäcke! Sie konnten über unseren Plan doch gar nicht Bescheid wissen?! Wir haben also einige Männer verloren. Was ist mit dem Ziel der Operation? + + + Der Trupp ist tot... die Monolither haben uns in eine Falle gelockt, indem sie ihre eigenen Leute geopfert haben. + + + Drecksäcke! Sie konnten über unseren Plan doch gar nicht Bescheid wissen?! Wir haben also Tarasow und seine Männer verloren. Was ist mit dem Ziel der Operation? + + + Ich habe die Waffe, aber sie wurde im Kampf beschädigt. + + + D.h. wir können nicht feststellen, ob damit die Hubschrauber abgeschossen wurden. Hören Sie, Major: Sie haben Verbindungen zu den Stalkern. Möglicherweise hatten sie vorher mit dieser Waffe zu tun. Bei denen gibt es bestimmt auch Techniker. Würden Sie mit ihnen reden? + + + Klar. + + + Gut... ach, bevor ich's vergesse: Ein anderer Stalker hat es von der Jupiter-Anlage hierher geschafft - unterhalten Sie sich zuerst mit ihm, wenn Sie möchten. + + + Ich bin noch dabei. + + + Verstehe. Major, wir brauchen diese Waffe. Ich bin mir sicher, dass Sie verstehen, wie wichtig diese Angelegenheit ist. + + + Ja. + + + Ich habe beim Flugabwehrkomplex Wolchow deine Nachricht gefunden. Hier. + + + Hör zu... ach, egal. Ich glaube sowieso nicht, dass irgendeiner von euch dort aufkreuzen wird. Wenn du hier in der Gegend auf Militär stößt, lass es mich wissen, ja? Danke schon mal im Voraus... + + + Major... Gott sei Dank! Ich bin gerettet! + + + Wie sind Sie hier gelandet? + + + Ähh... ich erinnere mich nicht wirklich daran. Ich hatte solche Angst, dass ich nicht mehr klar denken konnte... und ich weiß nicht mal, was mir so eine Angst eingejagt hat. Ich habe einfach den Drang verspürt, mich zu verstecken, und deswegen bin ich losgerannt... ich erinnere mich an Straßen, irgendwelche Kreuzungen... und dann bin ich hier gelandet. Die Tür war von außen abgeschlossen... ich dachte, ich würde hier drinnen sterben! Wie haben Sie mich gefunden? Aber... lassen Sie uns am besten von hier verschwinden... uns der Basis nähern. Dieses Loch hier macht mich ganz verrückt! + + + Gehen wir. + + + Hallo. Brauchen Sie medizinische Hilfe? Ich bin zwar kein Arzt, aber wenn es sein muss, kann auch ich Kugeln entfernen und Wunden nähen. + + + Ich brauche Informationen. + + + Dann fragen Sie. + + + Über Operation Fairway... + + + Was ist damit? + + + Ist etwas Ungewöhnliches vorgefallen, als die Hubschrauber in der Luft waren? + + + Erst, als die Maschinen langsam abgestürzt sind. Wir haben uns an den Operationsplan gehalten: Sind 90 Sekunden vor der Emission gestartet, haben unser Schutzsystem aktiviert und den Autopiloten eingeschaltet. Wir haben uns auf die kürzeste Sicherheitsroute begeben, die wir mit der Anomaliekarte berechnet hatten. Dass wir so gut wie keine Sicht mehr hatten, hätte keine Auswirkungen auf die Mission haben dürfen, denn der Korridor war breit genug. Laut dem Plan hätten wir das Atomkraftwerk nach 12,5 Minuten erreichen müssen. Nach 9 Minuten ist jedoch der Kontakt zu Stingray 4 abgebrochen... und danach sind die anderen runtergekracht wie riesige Ziegelsteine. + + + Ich habe einige weitere Fragen über die Operation... + + + Wissen Sie, was mit den Hubschraubern passiert ist? + + + Nicht wirklich. Ich weiß nicht das Geringste über Stingray 2 und 4... wo sie genau abgestürzt sind und was mit den Männern an Bord passiert ist. Die Informationen über die anderen Maschinen stammen von den Männern, die das Ganze überlebt haben, daher sollten Sie keine exakten Angaben erwarten. Wir hatten ganz andere Sorgen! + + + Erzählen Sie mir von Stingray 1. + + + Wie sind Sie hierher gekommen? + + + Unweit des Minenfelds sind wir auf einen Stalker gestoßen. Ich glaube, er hatte die Explosion der Mine gehört. Ein seltsamer Bursche war das... nannte sich selbst Guide. Er hat keine Fragen gestellt und uns einfach angeboten, uns nach Pripyat zu führen. Das passte zu unserem Plan, daher war ich einverstanden. Für den Fall der Fälle haben wir ihn immer im Auge behalten, aber es ist alles gut gegangen. Er hat kein Wort geredet, bis wir die Stadt erreicht haben... und dann ist er ganz plötzlich verschwunden. Ich habe meinen Männern befohlen, nicht auf die Suche nach ihm zu gehen. + + + Erzählen Sie mir von Stingray 3. + + + Hauptmann Tarasow sagt, dass beide Triebwerke ausgefallen wären. Sie mussten auf dem Hügel bei Position B2 notlanden. Sie hatten zwar Glück und landeten einigermaßen sicher, aber der Techniker hatte keine Gelegenheit mehr, die Ursache der Fehlfunktion festzustellen, weil sie von Schnorks angegriffen wurden... dabei fielen drei Mann. Die restliche Besatzung wollte nicht dort bleiben - sie kontaktierten die Stingray 5-Besatzung und machten sich auf den Weg, sie zu treffen. Unterwegs gerieten sie in ein Gefecht mit einem stark bewaffneten gegnerischen Trupp, konnten sich aber ohne Verluste aus der Affäre ziehen. + + + Wie sind sie nach Pripyat gelangt? + + + Die Besatzungen von Stingray 3 und 5 trafen unweit der Absturzstellen bei einem Schiff zusammen. Man hat mir berichtet, dass dort ein Mann leben würde, der total durchgeknallt ist: Als meine Männer versuchten, ihn zu verhaften, versuchte er seinerseits, sie gefangen zu nehmen! Überlegen Sie sich das mal, der Kerl wollte es alleine gegen elf Mann aufnehmen! Trotz allem war es ein Glücksfall, dass die Männer auf diesen Stalker gestoßen waren, denn sie konnten sich am Ende irgendwie einigen und er führte sie nahezu ohne Zwischenfälle nach Pripyat. Lediglich Leutnant Stezenko hat auf dem Weg hierher in einer Gravitationsanomalie ein paar Zehen verloren. + + + Erzählen Sie mir von Stingray 5. + + + Die Bordelektronik hatte eine Fehlfunktion und Stingray 5 stürzte mitten in einem Sumpf ab. Fünf Mann überlebten die Katastrophe. Als sie ihre Ausrüstung aus dem Wrack holten, wurden sie von der Stingray 3-Besatzung kontaktiert. Der Truppkommandeur Major Neborski ist auf dem Weg zum Treffpunkt ums Leben gekommen. Der arme Kerl wurde ganz in der Nähe der Scanstation von einem Blutsauger getötet... die anderen haben es ohne Zwischenfälle geschafft. Einen weiteren Mann, den Scharfschützen Oberfeldwebel Batjaj, verloren sie, als sie in Pripyat ankamen und in einen Kampf mit den Monolithern gerieten. + + + Wie sind sie nach Pripyat gelangt? + + + Die Besatzungen von Stingray 3 und 5 trafen unweit der Absturzstellen bei einem Schiff zusammen. Man hat mir berichtet, dass dort ein Mann leben würde, der total durchgeknallt ist: Als meine Männer versuchten, ihn zu verhaften, versuchte er seinerseits, sie gefangen zu nehmen! Überlegen Sie sich das mal, der Kerl wollte es alleine gegen elf Mann aufnehmen! Trotz allem war es ein Glücksfall, dass die Männer auf diesen Stalker gestoßen waren, denn sie konnten sich am Ende irgendwie einigen und er führte sie nahezu ohne Zwischenfälle nach Pripyat. Lediglich Leutnant Stezenko hat auf dem Weg hierher in einer Gravitationsanomalie ein paar Zehen verloren. + + + Nicht viel. Ich weiß nicht das Geringste über Stingray 2... wo sie genau abgestürzt sind und was mit den Männern an Bord passiert ist. Über Stingray 4 dürften Sie mehr wissen als ich. Leutnant Sokolow - das ist der, der mit Ihnen hierher gekommen ist - ist der einzige Überlebende aus dem Hubschrauber. Die Informationen über die anderen Maschinen stammen von den Männern, die das Ganze überlebt haben, daher sollten Sie keine exakten Angaben erwarten. Wir hatten ganz andere Sorgen! + + + Nicht viel. Ich weiß nicht das Geringste über Stingray 2... wo sie genau abgestürzt sind und was mit den Männern an Bord passiert ist. Über Stingray 4 reden Sie besser mit Leutnant Sokolow. Er ist der einzige Überlebende aus dem Hubschrauber, der es nach Pripyat geschafft hat. Die Informationen über die anderen Maschinen stammen von den Männern, die das Ganze überlebt haben, daher sollten Sie keine exakten Angaben erwarten. Wir hatten ganz andere Sorgen! + + + Ich brauche andere Informationen. + + + Ich habe keine weiteren Fragen. + + + Wie ist die Lage in Pripyat? + + + So beschissen, wie sie nur sein kann. In Pripyat wimmelt es von fanatischen Monolithern und verfluchten Zombies. Eine Emission jagt die nächste und als ob das nicht genug wäre, muss man auch immer auf Mutanten und Anomalien achten... kurz gesagt: Willkommen in der Hölle! + + + Wie sieht es mit Ausrüstung und Vorräten aus? + + + Erzählen Sie mir mehr über die Monolither. + + + Ganz einfach: Sie sind Fanatiker. Ich weiß nicht, wer oder was sie so anstachelt, aber sie sind immer auf Kampf aus. Sie ziehen sich nicht mal zurück, wenn sie in Unterzahl sind und dazu auch noch schlechter bewaffnet... was sowieso nicht allzu oft vorkommt. Wie es scheint, bekommen sie regelmäßig Verstärkung aus dem Atomkraftwerk. Verflucht sollen sie sein! Einige unserer besten Männer sind diesen Wilden schon zum Opfer gefallen... + + + Haben Sie einmal versucht, einen von ihnen zu befragen? + + + Das bringt nichts. Denn sie kämpfen nicht nur bis zum Tod, nein, es ist schlimmer: Einer unserer Jungs konnte einmal einen von ihnen lebend gefangen nehmen, der von einer Granate betäubt war. Später haben wir ihn dann für einen kurzen Moment nicht im Auge behalten und er hat sofort seinen Kopf gegen die Wand gehämmert. Und zwar so hart, dass sein Schädel aufgebrochen ist wie eine verdammte Walnuss! + + + Was werden Sie jetzt machen? + + + Ich glaube nicht, dass wir Operation Fairway fortsetzen können. Dass Sie hier sind, beweist das. Mein Plan ist, die Basis so lange zu halten, bis die Hubschrauber auftauchen. Ich kenne mehrere mögliche Zeitpunkte für die Evakuierung. + + + Es werden aber keine Hubschrauber kommen, solange wir nicht herausfinden, warum die Stingrays abgestürzt sind. + + + So ist das also... nun, zu Fuß kommen wir hier nie weg! Weiß der Teufel, wie viele Meilen das sind... und dann wimmelt es in der Zone ja auch von Stalkern, die nicht gerade unsere Freunde sind. D.h. also, dass unsere einzige Chance darin besteht, unsere eigenen Nachforschungen anzustellen... und dabei nicht draufzugehen. Major, wir haben dasselbe Ziel! + + + Nicht jetzt. + + + Ich bin ganz Ohr, Major. + + + Die einzige Ausrüstung, die wir haben, ist das, was wir selbst hierher getragen haben. Oh, und natürlich die Sachen, die wir den Monolithern abgenommen haben, hauptsächlich Munition. Daher sind wir besonders vorsichtig, was wir wem geben. Das trifft auch auf Lebensmittel zu - alles, was wir haben, sind unsere Rationen und das bisschen Essen, das wir im Lagerhaus der Monolither gefunden haben. + + + Die einzige Ausrüstung, die wir haben, ist das, was wir selbst hierher getragen haben. Oh, und natürlich die Sachen, die wir den Monolithern abgenommen haben, hauptsächlich Munition. Daher sind wir besonders vorsichtig, was wir wem geben. Was unsere Vorräte angeht: Da sieht es nicht viel besser aus, aber ich habe eine Vereinbarung mit Gari getroffen. Er besorgt uns Konservenessen und wir erlauben ihm, in der Basis zu bleiben, und drücken ein Auge zu, wenn er nach Artefakten sucht... es ist ja nicht so, dass wir eine andere Wahl hätten. + + + Wir haben unsere Jungs gerächt... erledigen Sie, was Sie zu tun haben, und lassen Sie uns dann zurückgehen. Ich will hier nicht länger als nötig bleiben. + + + Lassen Sie uns hier keine Zeit verlieren, OK? Ich möchte so schnell wie möglich zur Basis zurückkehren... + + + OK. + + + Dort drüben ist das seltsame Ding! Was glaubst du, wofür sie es brauchen? Ach, ist doch egal. Komm schon, Kumpel, erledige, was du tun musst, und dann lass uns zurück zur Basis gehen. + + + Bist du fertig? Ich würde sagen, wir machen uns auf den Weg zurück zur Basis und futtern dort was... + + + OK. + + + Wie geht es Ihnen? + + + Beschissen. Es ist toll, mit meinesgleichen zu sein, aber ich stehe nicht wirklich darauf, meine Zeit mit anderen Leuten in einem großen Loch zu verbringen. + + + Ich habe Sie hier noch nie gesehen. Sind Sie vor kurzem erst gekommen? + + + Ja. Ich bin Leutnant Sokolow, Kopilot von Stingray 4. + + + Wie sind Sie hierher gekommen? + + + Mit einem Stalker namens Gari. Ich habe ihn gebeten, mich mitzunehmen, als er auf der Suche nach einem Weg Richtung Pripyat war. Das war eine verrückte Reise, das sage ich Ihnen! Zum Glück sind wir gleich auf unseren Spähtrupp gestoßen, als wir in Pripyat angekommen sind. + + + Was ist mit Stingray 4 geschehen? + + + Weiß der Teufel! Ich hatte ein schlechtes Gefühl bei der ganzen Sache... wir flogen mit dem Autopiloten, die Geräte waren in Ordnung, alles bestens. Und plötzlich saßen wir in einem Haufen Schrott, als die ganze Bordelektronik ausfiel. Der Pilot und ich versuchten, flaches Gelände zu erreichen, aber das hat nicht geklappt. Wir sind mitten in die Hauptwerkstatt der Jupiter-Anlage gekracht, sauber durch das Dach! Ich bin der Einzige, der das Ganze überlebt hat. + + + Ich brauche eine Körperpanzerung. + + + OK. Als Erstes haben wir hier den Helm. Und dann die Körperpanzerung - ich hoffe, sie passt, denn wir haben nur diese eine Größe. Ich habe das Ding zusammengeflickt, also sollte es gut genug sein. + + + Natürlich, Major. Unter den gegebenen Umständen habe ich keine andere Wahl. Ach übrigens, melden Sie sich am besten bei Leutnant Kirilloff. Er wird Ihnen einiges an Ausrüstung geben. + + + Wegen den Hubschraubern... + + + Ich höre. + + + Mann, das ist ziemlich verrückt... ich weiß jetzt schon, dass Kirilloff mich später um Kopfschmerztabletten anbetteln wird. + + + Das Warten ist das Schlimmste. Es macht einen mehr fertig als alles andere... + + + OK, Major, die Männer sind bereit zum Aufbruch. Frischen Sie falls nötig bei Rogowez und Kirilloff Ihre Vorräte auf. Lassen Sie mich wissen, wenn Sie bereit sind. + + + OK. + + + Abmarsch. + + + Nun, in dem Fall muss der Schutzanzug absolut dicht sein, so wie die der Wissenschaftler. Aber auf der anderen Seite dürfte es nicht einfach sein, Hermann dazu zu bringen, mir einen Schutzanzug zu geben. Wenn es nach ihm ginge, müsste ich splitternackt durch die Zone wandern, statt mich in ihrem tollen Bunker breitzumachen... aber ich schätze, Sie könnten Oserski fragen. Er ist ein bisschen freundlicher und könnte sich überreden lassen, mir einen Schutzanzug zu überlassen. + + + Also Major? + + + [fortfahren...] + + + [fortfahren...] + + + Ich war an Bord des Vogels. Als die Kommunikation mit Stingray 4 abgebrochen ist, habe ich sofort die anderen über die abgemachte Evakuierungsstelle in Pripyat informiert - ich habe geglaubt, dass wir es zu Fuß zum Atomkraftwerk schaffen könnten. Kurz darauf wurde der Hubschrauber getroffen und es roch nach Rauch - das Triebwerk war in Flammen aufgegangen. Den Piloten gelang es, auf dem Hubschrauberlandeplatz bei der Jupiter-Anlage zu landen, aber sie kamen dabei beide ums Leben. Danach fiel Feldwebel Schlijatschin - denn es stellte sich heraus, dass die Gegend um den Landeplatz vermint war. In Pripyat haben wir dann beim Kampf gegen die Monolither um dieses Gebäude einen weiteren Mann verloren, einen Oberleutnant. + + diff --git a/gamedata/configs/text/ger/st_dialogs_zaton.xml b/gamedata/configs/text/ger/st_dialogs_zaton.xml new file mode 100644 index 0000000..4746791 --- /dev/null +++ b/gamedata/configs/text/ger/st_dialogs_zaton.xml @@ -0,0 +1,3117 @@ + + + + Ich habe im Baggerschiff ein sonderbares Artefakt gefunden. Hier. + + + Interessant - ein Semi-Artefakt... Hier, deine Belohnung. Ich bin großzügig, wenn jemand seine Sache gut macht... Wie es scheint, wurdest du gut ausgebildet. Schau bei mir vorbei, falls du Arbeit brauchst. Ich kriege oft Bestellungen rein. Die Kunden wollen bestimmte Artefakte und bezahlen gut. + + + Hast du Arbeit für mich? + + + Eine Kleinigkeit könntest du für mich erledigen... Letzte Nacht haben Stalker ein merkwürdiges Leuchten im Baggerschiff gesehen... Soll selbst für diese Gegend ziemlich komisch gewesen sein. Geh doch der Sache mal auf den Grund. + + + Mache ich. + + + Pass dort gut auf dich auf - der Ort ist völlig verstrahlt. Vergiss nicht, Medikamente mitzunehmen. Du wirst mir für diesen Rat noch dankbar sein. + + + Jetzt nicht. + + + Ich habe alle Jobs vergeben, die ich für heute hatte. + + + Nimm dieses Semi-Artefakt. + + + Hier ist dein Anteil. Ich bin großzügig, wenn jemand seine Sache gut macht... Wie es scheint, wurdest du gut ausgebildet. Schau bei mir vorbei, falls du Arbeit brauchst. Ich kriege oft Bestellungen rein. Die Kunden wollen bestimmte Artefakte und bezahlen gut. + + + Ich habe ein sonderbares Artefakt im Baggerschiff gefunden. Magst du es dir mal ansehen? + + + Interessant - ein Semi-Artefakt... Ich nehme es. 3.000 dürfte ein fairer Preis sein. + + + Ich habe gesehen, wie dir jemand ein Artefakt gegeben hat, das ich gefunden habe. + + + Tut mir leid, aber das interessiert mich nicht. Meine Regeln sind ziemlich einfach: Wer liefert, wird bezahlt. Du weißt, wie es in der Zone läuft - halte die Augen offen, reagiere schnell und traue niemandem über den Weg. Aber falls du ab und zu Arbeit brauchst, bin ich der richtige Ansprechpartner. Ich kriege oft Bestellungen rein. Die Kunden wollen bestimmte Artefakte und bezahlen gut. + + + Welche Artefakte brauchst du? + + + Gravit. + + + Ausgezeichnet, das ging ja schnell. Hier, deine Belohnung. + + + Auge. + + + Blase. + + + Muschel. + + + Goldfisch. + + + Flamme. + + + Feuerfliege. + + + Schneeflocke. + + + Ich kann dir Gravit verkaufen. + + + Irgendwas läuft hier verkehrt. Die Leute nehmen Aufträge an und dann verschwinden sie... Ich kriege langsam ein schlechtes Gefühl und muss den Laden wohl dichtmachen. + + + Ich kann dir Auge verkaufen. + + + Ich kann dir Blase verkaufen. + + + Ich kann dir Muschel verkaufen. + + + Ich kann dir Goldfisch verkaufen. + + + Ich kann dir Flamme verkaufen. + + + Ich kann dir Feuerfliege verkaufen. + + + Ich kann dir Schneeflocke verkaufen. + + + Verstehe. Ich komme später wieder. + + + Beide Teams, die für mich gearbeitet haben, sind verschwunden... Ich habe beschlossen, erstmal keine Aufträge mehr anzunehmen. + + + Die Sache ist erledigt. + + + Ausgezeichnet! Hier ist deine Belohnung. + + + Hier. Ist zwar vielleicht nicht viel, aber immerhin. + + + Erzähle mir von deinen Artefakt-Aufträgen. + + + Wen könnte ich anheuern, um die Wissenschaftler zu beschützen? + + + Meine Jungs - Spartacus und sein Trupp. Sie haben viel Erfahrung. Einige von ihnen waren beim Sicherheitsdienst, bevor es sie in die Zone verschlagen hat, andere sogar in einer Spezialeinheit der Polizei - ob du's glaubst oder nicht. Die wissen, wie man mit einer Waffe umgeht... Wenn sie den Job machen, sind sie sicher gute Wachen. + + + Ich hätte da jemanden für dich, aber angesichts der jüngsten Ereignisse... Der Trupp von Spartacus weilt nicht mehr unter uns... Mögen sie in Frieden ruhen. + + + Wen könnte ich anheuern, um Messungen für die Wissenschaftler vorzunehmen? + + + Kennst du Gonta und seine Jungs? Wenn nicht gerade Jagdsaison ist, sind sie... ähm... froh, wenn sie was zu tun haben. Vor allem, wenn's ausnahmsweise mal nichts mit Rumgeballer zu tun hat. Ihre Einstellung ist: "Wenn mein Finger Sehnsucht nach dem Abzug hat, kann ich ja immer noch auf die Jagd gehen." + + + Da kann ich dir wirklich nicht weiterhelfen. Ich würde Gontas Trupp empfehlen, aber ich habe schon lange nichts mehr von ihnen gehört. + + + Erzähle mir vom Leben hier. + + + Da weiß ich gar nicht, wo ich anfangen soll. Wenn du mir konkrete Fragen stellst, versuche ich, sie zu beantworten. + + + Was machen die Stalker hier? + + + Das müsstest du doch am besten wissen, Kumpel. Ihr Ausgangspunkt ist die Skadowsk und von dort aus erkunden sie das Gebiet auf der Suche nach Artefakten. Wenn ihnen irgendetwas oder irgendjemand zu Nahe kommt, fackeln sie nicht lange und drücken auf den Abzug. Danach kehren sie wieder zurück zur Skadowsk, um sich vollaufen zu lassen und den Magen vollzuschlagen... Sie genießen die Ruhe, bevor es zum nächsten Beutefeldzug geht. Anders sieht es allerdings aus, wenn eine Emission im Gange ist. Dann sitzen wir alle angespannt da und sind gedanklich bei denen, die nicht rechzeitig Deckung gefunden haben... + + + Was hat die Stalker zum Zentrum der Zone geführt? + + + Eine komische Frage. Einige hoffen, die nächste Artefakt-Goldgrube zu entdecken. Andere wiederum verschlägt es hierher, weil sie den Gerüchten um die Oase Glauben schenken, oder weil sie den Wunschgönner suchen. Und nicht zu vergessen die ureigensten menschlichen Triebe - Gier und Neugierde... Jeder hat seine Gründe und ich bin mir sicher du auch. + + + Was hat dich hierher verschlagen? + + + Ich bin mit Grouse hierher gekommen, nachdem der Hirnschmelzer deaktiviert worden war. Aber ich denke nicht, dass es wirklich das ist, was du wissen willst, richtig? Hauptsächlich handle ich mit Artefakten. Die Welt außerhalb der Zone hat schon genug Schnickschnack, deswegen wollen die wichtigen Kunden außergewöhnliche Sachen. Aus diesem Grund habe ich beschlossen, ein Stalkerlager zu errichten, wo immer noch mit hochwertigen Waren gehandelt wird. Und wenn ein Stalker mit seiner Beute zurückkommt, was braucht er dann? Ein kühles Bier in der Hand und jemanden zum Plaudern. Und das kriegt er auf der Skadowsk. + + + Was hältst du von den Banditen? + + + Ganz einfach: Wenn sie sich an Bord der Skadowsk anständig aufführen, habe ich nichts gegen sie. Im Grunde genommen hat man es selten mit Vollidioten zu tun. Einige von ihnen sind sogar ehemalige Stalker. Wer weiß, vielleicht beschließt ja einer von den armen Kerlen, die krummen Geschäfte bleiben zu lassen, bevor er eine Kugel in den Kopf kriegt... Das Leben steckt voller Überraschungen. + + + Nein, ist schon gut. Vergiss es. + + + Wenn du meinst. + + + Sag, sind hier irgendwelche Leute vom Militär aufgetaucht? + + + Denk mal nach. Was würden denn Soldaten in unserem Lager wollen? Du kannst mir glauben, wenn ich dir sage, dass sie diesen Ort lieber meiden. Viele von uns hier erinnern sich noch allzu gut daran, wie es war, als wir beim Kordon durch den Dreck kriechen mussten - während uns ihre MG-Kugeln um die Ohren geflogen sind... + + + Erzähl mir vom Kompass-Artefakt. + + + Das Artefakt gibt es nur in Legenden. Man sagt, Kompass hätte keine schädlichen Nebenwirkungen und bringt einen unbeschadet aus jeder Anomalie raus, wenn man das Artefakt richtig einsetzt. Du verstehst also, warum die Kunden Schlange stehen würden, um es in die Finger zu kriegen. Erst neulich hat mir jemand erzählt, dass Noah etwas darüber wissen soll. Er ist ein Stalker und lebt südlich von hier. + + + Gut, ich werde Noah einen Besuch abstatten. + + + Ich werde darüber nachdenken. + + + Ein legendäres Artefakt, wie ich bereits gesagt habe. Angeblich weiß ein Stalker namens Noah etwas darüber. Er lebt südlich von hier. + + + Ich habe nicht weit von der Janow-Station entfernt ein merkwürdiges Artefakt gefunden. Interesse? + + + Lass mich mal einen Blick darauf werfen... Ist auf jeden Fall ein komisches Ding, aber ich glaube nicht, dass ich dafür einen Käufer finde. Ich schlage vor, du gehst zurück zur Janow-Station und zeigst es den Wissenschaftlern. Merkwürdiges Zeug lässt ihre Herzen höher schlagen. + + + Uhu sagt, du hältst dich nicht an die Abmachung. + + + Wir haben eine ganz klare Übereinkunft getroffen: Ich kriege die Detektoren, verwende sie und jeder bekommt seinen Anteil. Ich habe ihn schon für zwei Detektoren bezahlt, insofern habe ich mich an unsere Abmachung gehalten. So war es ausgemacht. Wenn du für Uhu arbeitest, kannst du den dritten Detektor zurückbringen - ich kaufe ihn nicht. + + + Also, was soll ich Uhu sagen? + + + Denke schon. + + + Wenn ich du wäre, würde ich mit Uhu keine Geschäfte machen. Falls du gutes Geld machen willst, kann ich dir bei der Artefaktjagd einen Vorsprung geben. Zwei bis drei Stunden - genug, um alle anderen zu schlagen. Außerdem hätte ich einen besonderen Auftrag, falls du Interesse hast. Ich brauche unbedingt ein Artefakt namens Kompass. + + + Sultan konnte sich das Kompass-Artefakt unter den Nagel reißen. + + + Dieser Mistkerl gibt einfach keine Ruhe... gut, ist keine große Sache. Versuch noch mal mit Noah zu reden. Den neuesten Gerüchten zufolge könnte es... nützlich sein. + + + Ich habe ein Kompass-Artefakt gefunden. Hier. + + + Du rettest mir wirklich den Arsch, Kumpel! Ich bin mir sicher, dass ich diesen wichtigen Kunden jetzt in der Tasche habe. Es hat da ein Gerücht gegeben, wonach Sultan angeblich vorhatte, mich aus dem Geschäft zu drängen. Der muss wohl in den sauren Apfel beißen, und das zu Recht. Hier, für dich - hast du dir redlich verdient. + + + Ich will nicht nach dem Kompass-Artefakt suchen. + + + Schade. Tja... + + + Sultan lässt dich grüßen. Ach übrigens, alle deine Versorgungswege wurden geschlossen. + + + Jetzt ist klar, wer hinter all dem steckt... Ich werde die Skadowsk nicht verlassen. Wie es scheint, habe ich keine andere Wahl und muss für dich und Sultan arbeiten. Er bekommt seinen Anteil an den Verkäufen und du wirst auch jeden Tag kommen und die Hand aufmachen. Das Geld wird da sein. + + + Gib mir meinen Anteil. + + + Hier. + + + Du bist früh dran. Ich habe das Geld noch nicht. + + + Glaubst du, dass Nimble mit gestohlenen Waren handelt? + + + Das bezweifle ich... Soweit ich weiß, überlässt er die schmutzigen Geschäfte lieber anderen. Ein guter Geschäftsmann legt großen Wert auf seinen Ruf und Namen. Alles in allem habe ich noch nie jemanden schlecht über Nimble reden hören. + + + Ich suche Snag. Hast du eine Idee, wo er sein könnte? + + + Das letzte Mal habe ich ihn gesehen, als er gerade aus der Bar gekommen ist. Wenn ich die Unterhaltung noch richtig in Erinnerung habe, ist er unterwegs zu den Dockkränen gewesen. Solltest vielleicht dort nach ihm suchen. + + + Jemand hat vor, eine Gruppe von Stalkern zu überfallen. Auch unsere Jungs. + + + Wow, Mann. Die Banditen vermehren sich wie die Fliegen und jetzt kämpfen wir sogar gegeneinander? + + + Man hat mich gefragt, ob ich bei einem Angriff auf das Lager in der Nähe der Schewtschenko mitmachen will. + + + Arschlöcher... Es wäre sogar gut, wenn du ihr Angebot annehmen würdest. Verstehst du, worauf ich hinaus will? Ich könnte so meine Jungs vorwarnen, damit sie unseren Gästen einen warmen Empfang bereiten. + + + Einverstanden. + + + Gut, geh zu den Idioten und ich werde meinen Jungs Bescheid sagen. + + + Tut mir leid, da kann ich dir nicht helfen. + + + Ich habe in der Oase ein Artefakt gefunden. Interesse? + + + Das Herz der Oase? Nein, ich denke, da muss ich passen. Jeder sagt was anderes... Vielleicht ist es nur ein Aberglaube, aber ich will lieber die Finger davon lassen. Ich glaube, es wäre nicht verkehrt, das Ding den Wissenschaftlern zu geben. Die sehen sich das dann bestimmt genauer an und können uns sagen, welche Auswirkungen das Artefakt auf Menschen hat. + + + Bist du neu hier? Das ist OK, wirst dich früh genug an alles gewöhnen... Die Zone ist ein strenger Lehrmeister, musst du wissen. Ich bin Beard, der Barmann von hier. Komm zu mir, wenn du irgendwelche Fragen hast, alles klar? + + + Lass hören. + + + Wie wäre es damit, Artefakte zu suchen und dabei ein bisschen Kohle zu machen? + + + Wie sieht's mit meinem Auftrag aus? Vergiss nicht: Wer zuerst kommt, mahlt zuerst... + + + Du bist spät dran, jemand hat mir schon dieses Artefakt gebracht. Ich nehme es trotzdem gerne, werde dafür aber nicht genauso viel zahlen. + + + Da ist was im Busch. Es heißt, die Banditen planen einen großen Waffeneinkauf. Unsere Jungs wollen ihnen folgen und die Transaktion verhindern. Wir wären für jede Hilfe sehr dankbar. + + + Und? + + + Warum sind in der Kläranlage Söldner? + + + Du solltest dich dort nicht blicken lassen. Hat dich nicht zu interessieren. + + + Arbeitest du gerne für die Wissenschaftler? + + + Doch, schon. Ich freue mich, dass du ausgerechnet zu uns gekommen bist. Bessere Wachen als uns können die Wissenschaftler nicht kriegen. + + + Ich stelle einen Trupp zusammen und breche dann auf nach Pripyat. Willst du dich uns anschließen? + + + Nein. Ich muss auf die Wissenschaftler aufpassen. Du könntest es bei Sokolow versuchen - Wenn ich mich richtig erinnere, wollte er nach Pripyat. + + + Nein. Ich muss auf die Wissenschaftler aufpassen. Schließlich sind wir hier, um sie zu beschützen. + + + Ähm... nein, für's Erste bleibe ich hier. + + + Willst du für die Wissenschaftler arbeiten? + + + Kommt drauf an... Um was geht es? + + + Sie brauchen Leute, die ihren Bunker beschützen. + + + Klar, und danke für das Angebot. + + + Sie brauchen Leute, die Messungen in Anomalien vornehmen. + + + Das ist nichts für uns. Frag lieber die Stalker. + + + Hör zu, Stalker. Mein knurrender Magen geht mir schon tierisch auf den Senkel und dein Generve macht es nur noch schlimmer... + + + Ich könnte dir was zu Essen bringen. + + + Hah! Gut, mach das. Fleischkonserven, Wurst und Brot... jeweils sechs Rationen. Und bring nicht zu wenig, wir sind fast am Verhungern. + + + Ich habe gehört, hier könnte Werkzeug herumliegen. + + + Was weiß ich!? Aber ich will nicht, dass du hier herumspazierst. Wir haben schon genug um die Ohren - ich kann nicht einmal jemanden losschicken, um Proviant zu holen. + + + Was weiß ich!? Kannst gerne den ganzen Schrott durchwühlen. Vielleicht findest du, wonach du suchst. + + + Hier ist der Proviant. + + + Wow, ich hatte die Hoffnung schon aufgegeben... danke. Wird ein feines Essen für die Jungs. Was wolltest du noch mal? Im Schrott herumstöbern? Nur zu. Vielleicht findest du, wonach du suchst. Aber hör auf, mit der Waffe herumzufuchteln! + + + Wow, ich hatte die Hoffnung schon aufgegeben... danke. Wird ein feines Essen für die Jungs. Hör zu, wenn du dich hier umsehen willst, nur zu... Aber hör auf, mit der Waffe herumzufuchteln! + + + Du bist hier nicht willkommen. Das ist unser Lager und es gibt keinen Grund, hier herumzuschnüffeln. Meine Jungs sind hungrig und die Nerven liegen blank... + + + Zisch ab! Meinen Jungs knurrt der Magen und sie sind wirklich nicht gut drauf. Ihnen juckt der Finger am Abzug... + + + Oh, Stalker... ist es wichtig? Wenn nicht, mach ich mich wieder an die Arbeit. + + + Ich bin bereit für die Jagd. + + + Gut, gehen wir. + + + Dann los. + + + Du bist zu früh. Komm um 3 Uhr morgens wieder. + + + Ich verstehe. + + + Wir auch... abgesehen von der Emission - die Chimäre schläft jetzt bestimmt nicht. Ich schätze, wir müssen unser Glück ein andermal versuchen... + + + Gonta ist tot. Wie konnte das nur passieren... Willst du zufällig zur Janow-Station? Trapper, Gontas Freund, ist dort. Du könntest ihm sagen, dass die Chimäre tot ist. Ich gehe jetzt wahrscheinlich zurück. + + + Pass auf dich auf. + + + Das kann doch wohl nicht wahr sein. Gonta ist draufgegangen und du bist daran nicht ganz unschuldig... Was sollen wir jetzt machen? + + + Pass auf dich auf. + + + Erzähle mir von dir. + + + Ich bin Gonta, Anführer des Jagdtrupps. Wir verdienen unser Geld mit dem Töten von Mutanten. Wir können sie auch lebend fangen - für wissenschaftliche Experimente oder falls jemand ein exotisches Haustier haben will... Wie Trapper immer sagte: "Jedem Tier seine Kugel..." + + + Erkläre mir, wie man Mutanten jagt. + + + Also ich bin zwar nicht der erfahrenste Jäger weit und breit, aber ich kann dir dennoch einiges über Rudeltiere wie Fleisch, Wildschweine, Schattenhunde, Pseudohunde, Schnorks und Hamster erzählen... Sogar über Blutsauger weiß ich das ein oder andere. + + + Erkläre mir, wie man Fleisch und Wildschweine jagt. + + + Also, Schweine - auch "Fleisch" genannt - sind die harmlosesten Mutanten. Sie bleiben Stalkern fern, aber wenn du sie angreifst, werden sie aggressiv. Ist jedoch ein Wildschwein dabei, bedeutet das nichts Gutes. Dreihundert Kilo geballte Kraft sollte man nicht auf die leichte Schulter nehmen. Steh diesem Viech bloß nicht im Weg, wenn es auf dich zuläuft, sondern mache dir die Situation zunutze... Ein gewichtiges Biest wie dieses kann nicht sofort reagieren. Geh schnell auf die Seite und dann hau dem Wildschwein eine Ladung Schrot um die Ohren. + + + Erzähle mir etwas über Schattenhunde und Pseudohunde. + + + Allein umherstreunende Hunde sind nicht besonders gefährlich, aber im Rudel ist mit ihnen nicht zu spaßen. Sie greifen nur an, wenn sie hungrig sind... Und das blöde ist: Sie sind fast immer hungrig. Hast du es also mit einem ganzen Rudel zu tun, versuche, sie von einer erhöhten Position aus unter Beschuss zu nehmen - ansonsten rennen sie dich einfach über den Haufen. Das gilt vor allem dann, wenn ausgewachsene Pseudohunde dabei sind. Sie sind nicht viel kräftiger als Schattenhunde, aber gerissener und deshalb sehr gefährlich... Wenn sich ein Pseudohund plötzlich in ein ganzes Rudel verwandelt, denke daran: Du wirst von Phantomen angegriffen. Der richtige Pseudohund hält sich wahrscheinlich eher im Hintergrund und wird nur ab und zu versuchen, dich zu beißen... Versuche, ihn zu identifizieren. Sobald der richtige Pseudohund tot ist, verschwinden die Phantome einfach. + + + Erzähle mir etwas über Schnorks. + + + Überreste von Menschen... Ein einzelner Schnork ist für einen erfahrenen Jäger kein allzu großes Problem. Du wartest, bis er dir entgegen springt, und dann verpasst du ihm eine Ladung Schrot. Hast du es mit mehreren Schnorks zu tun, musst du so schnell wie möglich auf sie schießen, während du ihren Sprüngen ausweichst. Sie wissen das, und deswegen greifen sie normalerweise zusammen an. + + + Erzähle mir etwas über Hamster. + + + Ein Alptraum für jeden Jäger... Der größte Fehler wäre, sie wegen ihrer geringen Größe zu unterschätzen. Sie sind unglaublich schnell, beweglich und immer im Rudel unterwegs. Sobald dutzende kleine Krallen in deinen Körper schneiden, ist der Zeitpunkt gekommen, an dem du sie nicht mehr unterschätzt, sondern abdrückst... Und das ist das größte Problem: Sie sind äußerst schwer zu treffen. Aus diesem Grund rate ich den Stalkern immer, eine geladene Schrotflinte mit dabei zu haben. + + + Erzähle mir etwas über Blutsauger. + + + Blutsauger sind ausgezeichnete Jäger und können sich gut verstecken. Mit ihrer Tarnung kann man sie fast nicht mehr sehen. Wenn du einen Blutsauger jagst, versuche, ihn aufzuscheuchen. In Bewegung kann man ihn besser erkennen... Denke daran, dass Blutsauger versuchen, sich von hinten an dich heranzuschleichen und ihre Fühler um deinen Hals zu legen. Das ist richtig unheimlich, Mann... Wenn du Pech hast und einigen Blutsaugern über den Weg läufst, sieh dich immer wieder um. + + + Ach, schon gut. + + + Sollte ich Magpie über den Weg laufen, gebe ich dir auf jeden Fall Bescheid. + + + Es wird sich für dich lohnen... Ich werde ihn ordentlich zurechtstutzen. + + + Was hat Magpie verbrochen? + + + Eines Tages ist er zu mir gekommen und hat gesagt, dass er wegen eines Controllers seine Beute nicht holen kann. Zu dem Zeitpunkt hat in meinem Trupp ein Mann gefehlt. Unser Fährtensucher Danila war unterwegs, um Blutsaugern zu ihrem Lager zu folgen. Also haben wir beschlossen, Magpie mit seiner Beute zu helfen, und dafür ist er dann mit uns auf die Jagd gegangen. Er musste nur in der Nähe des Baus Ausschau nach der Chimäre halten... + + + Und was ist dann passiert? + + + Ganz einfach: Dieser Bastard hat sich mit seiner Beute aus dem Staub gemacht - und nebenbei auch noch unsere eigene Beute gekrallt. Als die Chimäre endlich aufgetaucht ist, waren wir darauf nicht vorbereitet, weil Magpie vorher abgehauen ist. Das ging alles so schnell, dass Garmata nicht reagieren konnte. Anstatt zu jagen, musste ich schließlich meinen Trupp verteidigen. Ich habe die Chimäre zwar getroffen, aber sie hat Krabbe erwischt und ist dann verschwunden. Eine Woche Vorbereitung für die Katz! + + + Du hast das Jagen wohl im Blut, Mann! Hier, eine persönliche Trophäe von mir... Wie Trapper immer gesagt hat: "Dein Können ist deine wichtigste Waffe..." Ach übrigens, willst du demnächst zur Janow-Station? Du könntest Trapper sagen, dass die Chimäre tot ist. Ich bleibe erstmal auf der Skadowsk, bis es Krabbe wieder besser geht. Kommst du mit uns mit? + + + Ja, gehen wir. + + + Nein, ich sehe mich noch ein bisschen hier in der Gegend um. + + + Wir haben's geschafft. Hier, eine persönliche Trophäe von mir... Das hätte zwar alles ein bisschen reibungsloser ablaufen können, aber ist schon in Ordnung. Wie Trapper immer gesagt hat: "Wer Erfahrung hat, braucht keine Fallen..." Ach übrigens, willst du demnächst zur Janow-Station? Du könntest Trapper sagen, dass die Chimäre tot ist. Ich bleibe erstmal auf der Skadowsk, bis es Krabbe wieder besser geht. Kommst du mit uns mit? + + + Garmata ist tot... Diese Chimäre ist uns teuer zu stehen gekommen. Du willst nicht zufällig demnächst zur Janow-Station, oder? Wir sollten Trapper wissen lassen, dass die Chimäre tot ist. Ich bleibe erstmal auf der Skadowsk, bis es Krabbe wieder besser geht. Kommst du mit? + + + Ich habe Danila gefunden. Er ist tot. Tremor hat ihn umgebracht. + + + Oh Mann! Warum muss es immer die Guten erwischen? Tremor, dieser Mistkerl! Danila war ein verdammt feiner Kerl! + + + Glaubst du, dass Nimble mit gestohlenen Waren handelt? + + + Gestohlene Waren? Wie kommst du darauf? Ich kenne Nimble schon lange und bestelle bei ihm regelmäßig Waffen. Er verkauft gute Ware zu einem vernünftigen Preis. Das, was du da sagst, höre ich zum ersten Mal. Wahrscheinlich hat er Konkurrenz bekommen und die Leute sind so verzweifelt, dass sie sich nur mit Gerüchten zu helfen wissen... + + + Ich stelle einen Trupp zusammen und breche dann auf nach Pripyat. Willst du dich uns anschließen? + + + Ich habe einen Vertrag mit den Wissenschaftlern und muss ihn einhalten. Außerdem ist mir nicht wirklich danach. Rede doch mal mit Sokolow. Der nervt mich die ganze Zeit damit, dass er doch unbedingt nach Pripyat muss, aber zu viel Schiss hat, alleine zu gehen. Ein toller Soldat ist das... + + + Ich habe einen Vertrag mit den Wissenschaftlern und muss ihn einhalten. Außerdem ist mir nicht wirklich danach. Tut mir leid, Mann. + + + Ne, mir ist nicht danach. Die große Jagd findet hier statt. Du weißt besser als die meisten anderen, wie viele Mutanten nach wie vor diese Gegend unsicher machen - genug, um einem guten Jäger für den Rest seines Lebens die Zeit zu vertreiben. + + + Wollt ihr für die Wissenschaftler arbeiten? + + + Worum geht es? + + + Sie brauchen jemanden, der ihren Bunker bewacht. + + + Nein danke. Ich bin Jäger, bei mir dreht sich alles um Mutanten. Und Mutanten stellen für den Bunker keine Bedrohung dar. Menschen allerdings schon. + + + Sie brauchen jemanden, der Messungen in Anomalien vornimmt. + + + Warum nicht? Darum können wir uns kümmern. Ich erkläre hiermit die Jagdsaison offiziell für beendet! Wird bestimmt 'ne nette Abwechslung zu unserem normalen Alltag - du weißt schon, jedes Mal weiche Knie, wenn man sich auf den Weg zur Jagd macht... + + + Nein, im Moment nicht. Die Jagd geht vor. Ich habe mit dieser Chimäre noch ein Hühnchen zu rupfen. Wir dürfen nicht zulassen, dass dieser blutrünstige Mutant die Zone unsicher macht und einen Stalker nach dem anderen erwischt. + + + Das einzige, was ich jetzt will, ist Magpies Kehle, damit ich sie ihm durchschneiden kann. Dann bin ich entspannt und wir können uns über geschäftliche Dinge unterhalten. + + + Später. Wir haben so schon genug um die Ohren. Eine Chimäre ist auf unserer Abschussliste und wir wollen Magpie aufspüren. Keine Zeit für andere Dinge. + + + Ich habe Magpie gefunden. Er ist in der Janow-Station und gibt sich dort als "Flint" aus. + + + Dieser Mistkerl ist noch am Leben? Nun, nicht mehr lange... Hier, eine Belohnung für deinen heißen Tipp. Ich weiß das sehr zu schätzen. Ich kann's gar nicht mehr erwarten, dieses Sackgesicht zu erwischen. Flint, sagst du also... + + + Ja. Danke. + + + Hey, hast du diesen Kerl namens Magpie gesehen? Kennst du ihn? Nein? Solltest du diesem Mistkerl über den Weg laufen, kannst du ihm gerne eine Kugel in den Kopf jagen. Oder du sagst mir, wo er ist, dann kümmere ich mich selbst darum. + + + Hallo. + + + Warte! Wir haben die Chimäre aufgespürt und dürfen keine Zeit verlieren. Krabbe liegt immer noch flach, Danila ist noch nicht zurück und zu zweit macht es keinen Sinn, dem Biest hinterher zu jagen. Wir brauchen einen dritten Mann. Du bist ein zäher Bursche und hast Magpie gefunden. Wie wäre es, wenn wir diese stinkende Chimäre zusammen jagen? + + + Warte! Wir haben die Chimäre aufgespürt und dürfen keine Zeit verlieren. Krabbe liegt immer noch flach und Danila... tja... zu zweit macht die Jagd keinen Sinn. Wir brauchen einen dritten Mann. Du scheinst ein zäher Bursche zu sein. Wie wäre es, wenn wir diese stinkende Chimäre zusammen jagen? + + + Mit Vergnügen. + + + Wie Trapper immer gesagt hat: "Beim Jagen ist das Jagen selbst nur die halbe Miete..." Wie auch immer: Wenn die Chimäre in der Nacht auf Beutesuche war, kehrt sie ungefähr um drei Uhr morgens wieder in ihren Bau zurück und hält ihren Schönheitsschlaf ab. Das ist der Moment, an dem wir zuschlagen müssen... Falls du Zeit hast, komm um drei Uhr morgens hierher und wir brechen auf zur Jagd. Wir treffen uns an der Bar. + + + Ich werde darüber nachdenken. + + + Wenn du dich entschieden hast, schau gegen drei Uhr morgens in der Bar vorbei. Um diese Zeit kriecht die Chimäre zurück in ihren Bau und legt sich aufs Ohr. + + + Na, alles klar? Siehst ausgeschlafen aus. + + + Ah, hallo. Die Welt ist klein, nicht wahr? + + + Und? Zeit für die Chimärenparty. + + + Hast du vor der Jagd Muffensausen? + + + Trapper hat mich gebeten, euch bei der Jagd auf die Chimäre zu helfen. + + + Ich merke schon, auf sein Bauchgefühl kann man immer noch zählen. Folgendes: Wir haben die Chimäre endlich aufgespürt. Leider liegt Krabbe immer noch flach und Danila ist auch noch nicht zurück... Deswegen sind wir nur zu dritt. Aber wenn Trapper dich ausgewählt hat, musst du ein guter Jäger sein. Also, wenn die Chimäre in der Nacht auf Beutesuche war, kehrt sie ungefähr um drei Uhr morgens wieder in ihren Bau zurück und hält ihren Schönheitsschlaf ab. Das ist der Moment, an dem wir zuschlagen müssen... Falls du Zeit hast, komm um drei Uhr morgens hierher und wir brechen auf zur Jagd. Wir treffen uns an der Bar. + + + Willst du mich für dumm verkaufen? + + + Ja, das bist du - dumm. Und Dummköpfen muss man zeigen, wo's langgeht. + + + Egal. Die Welt ist klein und die Zone ist sogar noch kleiner. Wir werden uns schon wieder über den Weg laufen... + + + Geh... Verschwinde. Auf der Skadowsk wird nicht geschlägert. + + + Ja, gut. + + + Ich muss zugeben, ich habe einen Fehler gemacht. Aber du hast dich nicht an die Spielregeln gehalten. + + + So läuft das nun mal in der Zone. Und jetzt hör mit dem Gequassel auf. + + + Er muss ein ziemlicher Dummkopf sein, wenn er sich das Artefakt durch die Lappen gehen lassen hat. + + + OK, musst nicht gleich heulen. Man lernt nie aus. Zur Belohnung gebe ich dir einen aus. Das muntert dich wieder auf. + + + Da sag ich nicht nein. + + + Nein danke. Ein Bier kann ich mir schon noch selbst leisten. + + + Du hältst dich wohl für den Allergrößten, was?! Halt die Klappe und bleib, wo du bist! Gib mir das Artefakt, Dummkopf! + + + Arschloch. Behalte das Artefakt... Verrecken sollst du damit. + + + Verpiss dich. + + + Bruder! Hör zu, da ist irgendwo ein Artefakt, das heilende Kräfte haben soll... Ich brauche es unbedingt. Einer meiner Kameraden ist todkrank und unsere Medizin bringt überhaupt nichts. Der wird's nicht mehr lange machen. Ich wollte mir das Artefakt holen, aber dann bin ich in eine Gasanomalie geraten. Du bist nicht zufällig über dieses Artefakt gestolpert, oder? + + + Wenn es wirklich so ernst um ihn steht... hier. + + + Danke, Bruder! Das werde ich dir nie vergessen. + + + Pass auf dich auf. + + + Ich habe das Artefakt. Aber ich brauche es selbst. + + + Ach, komm schon! Mein Kamerad... er geht wirklich drauf! + + + In der Zone ist sich jeder selbst der Nächste. Pass auf dich auf. + + + Nein, ich habe es nicht gesehen. Pass auf dich auf. + + + Dieses Artefakt wird dir nicht viel bringen. Das kannst du mir glauben. + + + Wenn du es wirklich unbedingt brauchst... hier. + + + Danke, Bruder! Das werde ich dir nie vergessen. + + + Pass auf dich auf. + + + Wir werden sehen. + + + Wir haben nichts miteinander zu bereden. + + + Warum lebst du auf diesem alten Schrottkahn? + + + Das ist eine Arche! Merk dir das... und das wirst du, wenn du am Leben bleiben willst! Wenn eine Welle kommt, bleib hier. Dann hast du eine Chance, zu überleben. Kein Mutant schafft es jemals hier rein. + + + Du hast von einer Welle gesprochen... + + + Ja, die Mutantenwelle, die die Leute zermalmen und aus der Zone jagen wird! Und wer auch immer diesen Ansturm überlebt, wird von einer gigantischen Emission getötet! Sie wird alles Leben in der Zone auslöschen - mit Ausnahme derjenigen, die darauf vorbereitet sind. + + + Wo hast du diesen Hund her? + + + Das ist Lassie, mein kleines, süßes Mädchen... Wenn ich sie nicht hätte, wäre ich schon vor langer Zeit im Schlaf aufgefressen worden. Diese verdammten Mutanten... wie ich sie hasse! Sobald du die Augen zumachst, kommen sie mit ihren fiesen Klauen, Raubtierzähnen und Fühlern angekrochen... + + + Ich brauche ein Kompass-Artefakt. Weißt du, wo ich es finden kann? + + + Dieser Schrott wird dir nicht helfen, wenn die Mutanten aus dem Unterholz gekrochen kommen! Hier, für dich - und jetzt geh mir aus den Augen. + + + Danke. + + + Weißt du irgendetwas über die abgestürzten Hubschrauber? + + + Über einen von ihnen weiß ich etwas... Er ist auf dem Plateau und in der Gegend wimmelt es nur so von Schnorks. Alle paar Tage mache ich Jagd auf sie... Was schaust du mich so an? Ihren ganzen Unterschlupf schaffe ich nicht an einem Tag. + + + Wie gelangt man auf das Plateau? + + + Willst wohl auch gerne ein paar Schnorks abknallen, was? Respekt... ich kann dich hinbringen. + + + Gehen wir. + + + Ein andermal. + + + Ein Stalker. + + + Verstehe. Was willst du? + + + Geht dich nichts an. + + + Ich bringe dich hin. Aber bleib erstmal hier. Eine Emission ist im Anmarsch... hast du mich verstanden? Eine Emission!!! + + + Ich war im Unterschlupf. + + + Ja? Die Mutanten sind einfach nicht tot zu kriegen... Es werden immer mehr. Und eines schönen Tages werden sie kommen! Ihre Welle wird die Zone zu einem Grab für all jene machen, die nicht darauf vorbereitet sind! + + + Hör zu, hm... du hast nicht zufällig ein Kompass-Artefakt? + + + Du glaubst, dass es dich vor einer Emission schützt? Hier, und jetzt verzieh dich! + + + Danke. + + + Wer bist du? + + + Ein Stalker. Wir haben uns schon gesehen. + + + Ich erinnere mich nicht... Wie auch immer, was willst du? + + + Ein Stalker. Nur ein Stalker. + + + Verstehe. Du suchst Zuflucht in der Arche? Fühl dich wie zu Hause. + + + Geht dich nichts an. + + + Ah, du bist es. Was willst du? + + + Du hast nicht zufällig noch ein Kompass-Artefakt, das du entbehren kannst? + + + Erzähle mir etwas über Anomalien. + + + Wenn du dich einer Anomalie näherst, denke daran, dass es entweder sehr heiß wird, die Luft voller giftiger Gase sein wird oder du es mit einer hohen Strahlung zu tun haben wirst. Es könnten auch Psi-Störungen auftreten, aber ich will jetzt nicht ins Detail gehen. Das alles hängt von der Beschaffenheit der Anomalie ab - sei es Hitze, Gas oder Elektrizität... oder Gravitation. Aber ich hoffe für dich, dass du dich damit nicht auseinandersetzen musst. Dann gibt es noch Anomalien, die sich bewegen. Aber das ist ein ganz anderes Thema. + + + Erzähle mir etwas über Hitzeanomalien. + + + Wenn du eine Art Flimmern siehst, so wie Luft über dem Asphalt an einem heißen Sommertag, dann ist das eine Hitzeanomalie. Alles, was mit ihr in Berührung kommt, geht in extrem heißen Flammen auf. Zuerst dachte man, dass es sich dabei um natürliche Gase handelt, die an dieser Stelle austreten, aber mit dieser Theorie hat man sich schon lange nicht mehr befasst. + + + Erzähle mir etwas über Gasanomalien. + + + Diese Anomalienart wird wegen der merkwürdigen, unaufhörlichen chemischen Prozesse, die darin ablaufen, so genannt. Dabei entsteht Säure, die deine Haut in nur wenigen Sekunden zerfrisst. Die giftigen Gase tun ihr Übriges und zersetzen deine Lunge mindestens genauso schnell... Glücklicherweise kann man Gasanomalien im offenen Gelände einfach erkennen. Wenn du allerdings in einem dunklen Tunnel in eine Gasanomalie gerätst, ist das keine spaßige Angelegenheit. + + + Erzähle mir etwas über Elektroanomalien. + + + Eine äußerst interessante Anomalienart, die eine beträchtliche Menge an statischer Ladung erzeugt. Stalker machen sich normalerweise die Tatsache zunutze, dass Elektroanomalien mit jedem beliebigen Metallgegenstand entladen werden können. Deswegen werfen sie eine Schraube in die Anomalie und rennen dann schnell hindurch, bevor sich die Anomalie wieder auflädt. Ich umgehe sie lieber - die Aufladephase ist einfach zu kurz. + + + Erzähle mir etwas über Gravitationsanomalien. + + + Sie sind normalerweise ortsgebunden. Wenn du an eine bestimmte Stelle schaust und feststellst, dass dahinter liegende Gegenstände verzerrt sind, handelt es sich dabei um eine Gravitationsanomalie. Du solltest besser auf Distanz bleiben. Bei allen drei bekannten Varianten kommt es sofort zu einer Reaktion, wenn man mit ihnen in Berührung kommt. Sprungbrett schleudert alles, was sich darunter befindet, nach oben - oft in großer Entfernung. Vortex bewirkt genau das Gegenteil: Alles wird nach unten gezogen und mit einem enormen Druck zerquetscht, um Sekunden später durch die Luft gewirbelt zu werden. Karussell schleudert sein Opfer in die Luft und wirbelt es herum, bis es in Stücke gerissen ist... Kein schönes Ende, wie auch immer man es dreht und wendet. + + + Erzähl mir etwas über bewegliche Anomalien. + + + Ich persönlich habe bisher nur Komet und Tesla zu Gesicht bekommen. Bei ersterer Anomalie handelt es sich um eine Feuerkugel mit einem Durchmesser von etwa einem Meter. Aber ich versichere dir, dass du die Hitze auch schon aus großer Entfernung spürst... Tesla hingegen ist so etwas wie eine Blitzkugel - schwer zu beschreiben. Auf jeden Fall handelt es sich dabei um eine Art Kugel, und sie ist definitiv elektrisch geladen. Beide Anomalien sind ständig in Bewegung, aber normalerweise in einer geschlossenen kreisförmigen Bahn. Ein achtsamer Stalker sollte sie ohne Probleme umgehen können... Man darf sich dabei nur nicht ablenken lassen. + + + Ach, schon gut. + + + Erzähle mir von dir. + + + Ich heiße Pilot, und das kommt nicht von ungefähr. Ich benutze nur sichere Routen und hab nicht das Zeug zum Artefakte sammeln oder Bekämpfen von Banditen... Jeder sollte seine Talente nutzen und andere davon profitieren lassen. Wobei jedes Talent natürlich seinen Preis hat... + + + Erzähle mir etwas über Emissionen. + + + Ich habe einige Karten von dem Gebiet zwischen Zaton und Jupiter. Willst du mal einen Blick darauf werfen? + + + Lass mal sehen... Gut, viele Details. In unserem Geschäft machen Details den feinen Unterschied zwischen Leben und Tod aus. Hm, in diese Karten ist eine sichere Route eingezeichnet, die direkt von der Skadowsk zur Janow-Station führt. Wenn es dir nichts ausmacht, kopiere ich die Daten auf meinen PDA. Ich kann dir dafür einen netten Preisnachlass anbieten. + + + Brauchst du vielleicht einen Ortskundigen, der dir zeigt, wie man die ganzen Anomalien umgeht und sich vor Emissionen in Sicherheit bringt? Pilot stets zu Diensten. + + + Brauchst du die Hilfe eines Ortskundigen? + + + Schön, dich zu sehen. Was kann der alte Pilot für dich tun? + + + Willst du dich schon wieder auf den Weg machen? + + + Guten Tag. Hältst es wohl nicht lange an einem Ort aus, was? Stets zu Diensten. + + + Hallo. Falls du einen Ortskundigen brauchst, bist du bei mir richtig - sobald die Emission vorbei ist. In der Zwischenzeit können wir uns ja über Anomalien unterhalten, um die Zeit totzuschlagen. + + + Leider kann ich dir im Moment nicht als Ortskundiger zur Verfügung stehen... Die Emission ist in vollem Gange. + + + Wie viel kostet es zur Janow-Station? + + + Ist von hier aus leider 'ne ganz schöne Meile. Würde 3.000 kosten. + + + Das klingt OK, gehen wir. + + + So viel habe ich nicht. + + + Ich bleibe noch hier. + + + Mit deinen Karten - nur 1.000. + + + Das klingt OK, gehen wir. + + + So viel habe ich nicht. + + + Ich bleibe noch hier. + + + Ist von hier aus 'ne ganz schöne Meile. Würde 3.000 kosten. Wir können los, sobald die Emission vorbei ist. + + + Mit deinen Karten - nur 1.000. Wir müssen nur noch warten, bis die Emission vorbei ist. + + + Kannst du mich nach Pripyat bringen? + + + Nein. Jeder hat sein Spezialgebiet. Siehst du Gari dort drüben? Ich denke, er kann dir helfen. + + + Ich selbst nicht, nein. Aber für 6.000 kann ich dich zur Janow-Station bringen und dort mit Gari einen Deal klarmachen. Er würde dich dann von dort aus nach Pripyat bringen. Was meinst du? + + + OK, gehen wir. + + + So viel habe ich nicht. + + + Ich bleibe noch hier. + + + Ich selbst nicht, nein. Aber für nur 4.000 kann ich dich zur Janow-Station bringen und dort mit Gari einen Deal klarmachen. Er würde dich dann von dort aus nach Pripyat bringen. Was meinst du? + + + OK, gehen wir. + + + So viel habe ich nicht. + + + Ich bleibe noch hier. + + + Nein. Jeder hat sein Spezialgebiet. Siehst du Gari dort drüben? Ich denke, er kann dir helfen, sobald die Emission vorbei ist. + + + Ich selbst nicht, nein. Aber für 6.000 kann ich dich zur Janow-Station bringen und dort mit Gari einen Deal klarmachen. Er würde dich dann von dort aus nach Pripyat bringen. Aber natürlich erst, wenn die Emission vorbei ist. + + + Ich selbst nicht, nein. Aber für nur 4.000 kann ich dich zur Janow-Station bringen und dort mit Gari einen Deal klarmachen. Er würde dich dann von dort aus nach Pripyat bringen. Aber natürlich erst, wenn die Emission vorbei ist. + + + Kannst du mich nach Pripyat bringen? + + + Nach Pripyat? Nein. Ich bin mit meiner aktuellen Route schon so ausgelastet, dass ich keine andere brauche. Aber ich habe einen guten Kumpel, der in der Jupiter-Anlage gearbeitet hat. Er hat mir erzählt, dass unter der Anlage Tunnel sind, die nach Pripyat führen. Genaueres konnte er mir dazu nicht sagen, aber er meinte, er würde im verwaltungstechnischen Bereich der Anlage suchen. + + + Nein. Wenn du dorthin willst, versuche, die Tunnel unter der Jupiter-Anlage zu finden. + + + Wie viel kostet es zur Skadowsk? + + + Da wir einen Umweg machen müssen, kostet es 3.000. + + + Das klingt OK, gehen wir. + + + Ich bin im Moment ein bisschen knapp bei Kasse. + + + Ich bleibe noch hier. + + + Auf der neuen Route macht das nur 1.000. + + + Das klingt OK, gehen wir. + + + Ich bin im Moment ein bisschen knapp bei Kasse. + + + Ich bleibe noch hier. + + + Da wir einen Umweg machen müssen, kostet es 3.000. Wir können aufbrechen, sobald die Emission vorbei ist. + + + Auf der neuen Route macht das nur 1.000. Wir müssen nur noch warten, bis die Emission vorbei ist. + + + Wo kannst du mich hinbringen? + + + Zur Janow-Station, nicht weit von der Jupiter-Anlage entfernt - und von dort zurück zur Skadowsk. Lieber kenne ich nur eine Route, aber die dann wie meine eigene Westentasche. + + + Ich habe die Waffenlieferung für die Banditen vereitelt. + + + Danke für deine Hilfe. Ich erinnere mich noch allzu gut an die 90er und die Gangster mit ihren Granatwerfern... Hier, für dich. Es ist immer gut, wenn man flüssig ist. + + + Ich suche Grouse. Wir wollten uns hier treffen. + + + Ich soll dir etwas von ihm ausrichten. Er meinte, er will zu den Dockkränen und hätte etwas Neues über die vermissten Stalker herausgefunden. + + + Grouse ist tot. Tremor hat ihn getötet, wie auch die beiden anderen Stalker... Und Tremor weilt auch nicht mehr unter uns. + + + Tremor? Verdammt. Diese Schlange war immer genau vor unserer Nase. Es hätte jeden von uns erwischen können... Warum ausgerechnet Grouse... Danke, Kumpel. Du hast unser ganzes Lager gerettet. Hier. + + + Tremor?! Tut mir leid, Kumpel, aber das nehme ich dir nicht ab. Wenn es dafür einen Beweis gäbe, wär's vielleicht was anderes... Der arme Grouse... + + + Hier ist Tremors PDA. Er enthält Beweise, die bestätigen, dass er damit etwas zu tun hatte. + + + Verdammt. Diese Schlange war immer genau vor unserer Nase. Es hätte jeden von uns erwischen können... Warum ausgerechnet Grouse... Danke, Kumpel. Du hast unser ganzes Lager gerettet. Hier. + + + Ich helfe dir dabei, mit den Banditen fertig zu werden. + + + Gut. Geh zur Forststation - dort sind unsere Jungs. Sie werden dir genau sagen, was zu tun ist. + + + Was weißt du über Nimble? Könnte er mit gestohlenen Waffen handeln? + + + Ich kenne ihn nicht wirklich. Aber ich bezweifle, dass er damit etwas zu tun hat. Wenn man mit heißer Ware handelt, nimmt man normalerweise keine Vorbestellungen an... + + + Ich wusste, dass ich irgendwann auffliege. Es war nur eine Frage der Zeit... + + + Tremor?! Kannst du mir sagen, was hier eigentlich los ist? + + + Ich habe nichts mehr zu verbergen. Es hat keinen Zweck. Jetzt weißt du, dass ich es war, der Grouse getötet hat... genauso wie Danila und die anderen vermissten Stalker. + + + OK, ich habe verstanden. Genug geredet. + + + Überhaupt nichts hast du verstanden. Niemand wird mich jemals verstehen... + + + Warum hast du das getan? + + + Ich bin abhängig von Hämoglobin... So etwas würde ich nicht einmal meinen ärgsten Feinden wünschen... Es gibt keine Möglichkeit, diese Sucht loszuwerden. Manchmal hast du das Gefühl, du könntest einen ganzen Monat überstehen, ohne auch nur einen Tropfen Blut zu trinken. Ein paar Mal war das bei mir so. Aber an anderen Tagen, da frisst dich die Sucht innerlich auf und du würdest alles dafür tun, um an Blut ranzukommen... + + + Wie konntest du es geheim halten? + + + Als ich noch in der Klinik gearbeitet habe, war es einfach. Es gab immer einen Überschuss an Blutspenden. Aber in der Zone war es anders... Ich dachte, dass mich diese raue Umgebung von der Sucht ablenken würde. Aber da habe ich mich wohl getäuscht. Ich hatte schlimmere Entzugserscheinungen als jemals zuvor und konnte einfach an nichts anderes mehr denken. Die Leichen habe ich so aussehen lassen, als wären die Leute von Blutsaugern angegriffen worden. Meistens habe ich mir Opfer gesucht, die schon verwundet waren. + + + Und was ist mit Danila und Grouse? + + + Danila ist nach dem Blutsaugerangriff zu mir gekommen, weil er medizinische Hilfe gebraucht hat. Er war verwundet. Als er und Grouse beschlossen haben, gemeinsam Jagd auf Blutsauger zu machen, wurde mir klar, dass ich die Entzugserscheinungen nicht viel länger ertragen werde. Ich habe nach wie vor versucht, es für mich zu behalten, aber mein Wille war fast gebrochen... Dann ist Grouse aufgetaucht. Er hat gemerkt, was los ist, und versucht, mich zu töten. Es tut mir leid um diese Leute, aber mein Bedauern bringt sie auch nicht wieder zurück. + + + OK, ich habe verstanden. Genug geredet. + + + Überhaupt nichts hast du verstanden. Niemand wird mich jemals verstehen... + + + Ich höre. + + + Hallo, brauchst du Hilfe? + + + Hallo. + + + Ich brauche medizinische Hilfe. + + + Lass mal sehen... + + + So, das war's. Du kannst gehen. + + + Na, was geht? Suchst du auch nach Artefakten? + + + Hey! Bist wohl auch auf der Suche nach Artefakten. Sollten genug für alle da sein. + + + Oh, hallo! Willst dir auch ein paar Artefakte krallen, was? + + + Hallo. Bringst du dieses Artefakt zu Beard? + + + Vielleicht, vielleicht auch nicht. Was geht dich das an? + + + Ich brauche es. + + + Nicht nur du... Aber ich würde es gegen eine neue Waffe tauschen - sofern sie richtig gut ist. + + + Ich habe eine gute Waffe. Lass uns tauschen... + + + In Ordnung. + + + Nein, das wird nichts. + + + Dann geh mir aus den Augen. + + + OK. + + + Nichts, wirklich. + + + Was weißt du über Nimble? + + + Oh, nicht viel... Wir machen keine Geschäfte miteinander. Während er die Zone nach einer Megawaffe durchkämmt, habe ich schon hundert normale Waffen verkauft. Außerdem ist er ziemlich dickköpfig und will nicht mit den örtlichen Banditen handeln. Er ist ein lausiger Händler, was mir allerdings zugute kommt. + + + Beard meinte, ihr hattet eine andere Abmachung. + + + Andere Abmachung... am Arsch! Dieses bärtige Schwein wird langsam größenwahnsinnig! Man sollte ihn mal daran erinnern, wer hier der Boss ist... Hör zu, drüben in Zaton hängt ein ziemlich einflussreicher Typ rum, Sultan sein Name. Geh zu ihm - er wird dir sagen, was du tun sollst. + + + Ich gehe zu Sultan und rede mit ihm. + + + Sultan ist mir egal. Gib mir sofort meinen Anteil! + + + Äh... nun gut. Hier ist die Kohle... Aber denk dran, Beard führt dich hinters Licht. + + + Ich brauche Informationen. + + + Was willst du wissen? + + + Ich brauche giftiges Gas. Man hat mir gesagt, dass ich dich fragen soll. + + + Eine kluge Entscheidung. Ich sage es dir für 2.000. + + + Hier. + + + Hör zu. Hier ist mal ein Militärkonvoi durchgefahren, der Gas transportiert hat. Er hat jedoch nie seinen Zielort erreicht und ist wahrscheinlich irgendwo verunglückt. Niemand weiß, was genau passiert ist, aber die Gasflaschen müssten immer noch dort sein. Alles klar? Ach ja, da müssten auch einige Dokumente sein. Wenn du sie findest, bringe sie zu mir und du holst deine Kosten für die Fragerei vielleicht wieder rein. + + + Das ist mir zu teuer. + + + Wie du meinst. + + + Wo finde ich einen Stalker namens Magpie? + + + Für 1.000 kann ich dir einen Tipp geben. + + + Hier. + + + Hier wirst du ihn nicht finden, aber ein kleiner Vogel hat mir erzählt, dass er irgendwo in Jupiter sein könnte, oder vielleicht nahe der Janow-Station. Aber merke dir Folgendes: Wenn jemand irgendwo Mist baut und dann woanders hingeht, wird sich diese Person bestimmt einen anderen Namen zulegen... Möglicherweise hat er auch seine Kleidung gewechselt, weil er davon ausgeht, dass man unter den Stalkern nach ihm sucht. + + + Ich suche Snag. Hast du eine Idee, wo er sein könnte? + + + Für 1.000 sag ich's dir. + + + Hier. + + + Snag ist ein gieriger Dummkopf, weil er sich auf gefährliche Leute eingelassen hat. Er hat sich aus dem Staub gemacht, daher solltest du irgendwo in Jupiter nach ihm suchen. Er kann sonst nirgends hin. Du bist nicht der einzige, der nach ihm sucht. + + + Was weißt du über die abgestürzten Hubschrauber? + + + Hm... jeder hier weiß, wo sie abgestürzt sind. Einer ist auf dem südlichen Plateau gelandet, der zweite im Sumpf und der dritte direkt auf den Strommasten des Umspannwerks. Über welche Absturzstelle willst du etwas wissen? + + + Über das südliche Plateau. + + + Über das Umspannwerk. + + + Über den Sumpf. + + + Das wär's bezüglich der Hubschrauber gewesen. + + + Du schuldest mir 200. + + + Hier. + + + Also, der Hubschrauber ist direkt neben einem Schnorkunterschlupf runtergekommen. Soweit ich weiß, haben es die Soldaten vom Plateau herunter geschafft - zwar nicht alle, aber die meisten. Sie haben die Mutanten erledigt und sind dann runtergeklettert. Ach übrigens, wenn du da rauf willst, kann ich dir eine nette Schrotflinte und Munition anbieten. Damit kommst du gegen diese Biester klar. Allerdings gibt es da ein kleines Problem: Nur ein verrückter Kerl namens Noah weiß, wie man auf das Plateau raufkommt. + + + Das ist mir zu teuer. + + + Wie du meinst. + + + Ich sage es dir für 200. + + + Hier. + + + Ich sage es dir für 200. + + + Hier. + + + Im Moment will ich nichts wissen. + + + Hast du Arbeit für mich? + + + Erstens gibt es eine Kleinigkeit für die Wissenschaftler zu erledigen, zweitens müssen wir an Informationen aus dem Söldnerlager rankommen und drittens braucht der Händler immer noch jemanden, der ihn beschützt. Ist viel los zurzeit, du kannst es dir aussuchen. + + + Erzähle mir von dem Job für die Wissenschaftler. + + + Du musst drei Veles-Detektoren auftreiben und sie in den Bunker der Wissenschaftler nahe Jupiter bringen. Sprich dort mit Nowikow. Er meinte, er will an den Dingern herumbasteln... Falls die Detektoren Kohle abwerfen, teilen wir den Gewinn gerecht auf. Verstanden? Dann los. Sollte wirklich kein Problem sein. + + + Einverstanden. + + + Vielleicht ein andermal. + + + Erzähle mir von der Sache mit dem Söldnerlager. + + + Irgendwelche Söldner sind in der Kläranlage aufgetaucht und ich sterbe vor Neugierde, weil ich wissen will, was sie dort im Schilde führen... Schleiche dich in ihr Lager und krall dir alle Informationen über ihre Pläne, die du kriegen kannst - PDAs, Dokumente usw. Bring alles zu mir, verstanden? Dann los. Das wird ein Kinderspiel, wenn du niemanden auf dich aufmerksam machst. + + + Einverstanden. + + + Im Moment nicht. + + + Erzähle mir von dem Händler, der Schutz braucht. + + + Er braucht Wachen, während er ein Geschäft abwickelt. Du musst eigentlich nichts tun, außer rumstehen und dafür sorgen, dass alles ernst rüberkommt... OK? Der Händler wartet in der Forststation auf dich. Er kann dir Genaueres sagen. + + + OK. + + + Warte. + + + Ein andermal. + + + Es gibt da eine Kleinigkeit für die Wissenschaftler zu erledigen und außerdem suche ich jemanden, der mir Informationen aus dem Söldnerlager beschaffen kann. Du kannst es dir aussuchen... + + + Es gibt da eine Kleinigkeit für die Wissenschaftler zu erledigen und der Händler braucht noch eine Wache. Entscheide du. + + + Ich suche jemanden, der mir Informationen aus dem Söldnerlager beschaffen kann und außerdem braucht der Händler noch eine Wache. Entscheide du. + + + Es gibt da eine Kleinigkeit für die Wissenschaftler zu erledigen. Wirklich ein Kinderspiel - hol mir dies, bring mir das... + + + Der Händler braucht noch eine Wache, während er ein Geschäft über die Bühne bringt. Ist 'ne Kleinigkeit. + + + Ich habe nichts für dich zu tun. + + + Ich denke, du könntest interessiert sein. + + + Was hast du anzubieten? + + + Noahs PDA. + + + Der Psychopath aus dem verrosteten Kahn? Ich gebe dir dafür 1.000. + + + Abgemacht. + + + Nein, danke. Ich behalte ihn erstmal. + + + Pass auf, dass das Ding dir kein Loch in die Tasche brennt... + + + Den PDA eines Söldners, sein Spitzname lautet Hook. Ich habe ihn in der Kläranlage gefunden. + + + Ich gebe dir dafür 1.000. + + + Abgemacht. + + + Sehr interessant... gute Arbeit, Stalker. + + + Den PDA eines Söldners, sein Spitzname lautet Ridge. Ich habe ihn in der Kläranlage gefunden. + + + Ich gebe dir dafür 1.000. + + + Abgemacht. + + + Einen PDA mit Informationen über die Verstecke der Monolither. + + + Ich gebe dir dafür 5.000. + + + Abgemacht. + + + Den PDA eines Mannes, der mit dem Auftraggeber der Söldner zu tun hat. + + + Ich gebe dir dafür 4.000. + + + Abgemacht. + + + Den PDA von General Taschenkow, einem der Wächtergründer. + + + Dafür lasse ich einiges springen - 2.500. + + + Abgemacht. + + + Den PDA eines Söldners. + + + Ich gebe dir dafür 1.000. + + + Abgemacht. + + + Morgans PDA. + + + Informationen über den Händler der Wächter, der heimlich Waffen verkauft. Könnte sich als nützlich erweisen. Ich gebe dir dafür 4.000. + + + Abgemacht. + + + Eine Notiz aus dem Versteck von Streloks Trupp. Sie ist für Ghost. + + + Ich gebe dir dafür 500. + + + Abgemacht. + + + Eine Notiz aus dem Versteck von Streloks Trupp. Sie ist für Strelok. + + + Ich gebe dir dafür 500. + + + Abgemacht. + + + Eine Notiz aus dem Versteck von Streloks Trupp. Sie ist für Fang. + + + Ich gebe dir dafür 500. + + + Abgemacht. + + + Dokumente aus der Jupiter-Anlage - eine Akte mit dem Evakuierungsbefehl. + + + Ich gebe dir dafür 750. + + + Abgemacht. + + + Dokumente aus der Jupiter-Anlage - Besprechungsnotizen. + + + Ich gebe dir dafür 750. + + + Abgemacht. + + + Dokumente aus der Jupiter-Anlage - ein Lieferplan. + + + Ich gebe dir dafür 750. + + + Abgemacht. + + + Dokumente aus der Jupiter-Anlage - ein Brief mit einer Anweisung, die besagt, dass Forschungsobjekt 62 nur durch die Unterführung transportiert werden darf. + + + Ich gebe dir dafür 750. + + + Abgemacht. + + + Ne. Wenn Sultan mit drinhängt, halte ich mich lieber raus. + + + Mal sehen... Ja, nicht schlecht. Kommen wir ins Geschäft? + + + Klar, ich kann damit nichts anfangen. + + + Ein Notebook aus dem Söldnerlager nahe der Kläranlage. + + + Ich biete dir 2.000. + + + Abgemacht. + + + Ähm... Bring das zu Beard oder zu den Wissenschaftlern. Ich bin nicht scharf auf fragwürdige Ware... ich hab keine Lust, verstrahlt zu werden, während ich schlafe. + + + Und da soll das Ding auch bleiben. Ich gehe ungern ein unnötiges Risiko ein. Wer weiß, vielleicht erzeugt es um Mitternacht ein Anomaliefeld um sich herum... Warum bringst du es nicht zu den Wissenschaftlern? Sollen die sich das doch mal näher ansehen. + + + Und ich habe einen Nuklearsprengkopf in meinem Küchenschrank! Aber den Wissenschaftlern kannst du damit vielleicht 'ne Freude machen - die sammeln so ein Zeug. + + + Snags PDA. + + + Lass mal sehen... hm... nichts Besonderes. Wahrscheinlich hast du das Versteck schon leergeräumt. Ich würde dir 200 geben. + + + Einverstanden. + + + Den PDA von einem Kerl aus Sultans Reihen. + + + Interessant... könnte zu gebrauchen sein. Ich gebe dir 1.000. + + + Einverstanden. + + + Ein Speichermodul eines unbemannten Flugobjekts. + + + Ein äußerst interessanter Fund... aber reich wirst du damit nicht. Woher soll ich wissen, dass ich der Erste bin, der die Informationen zu sehen bekommt? Ich gebe dir 500. + + + Abgemacht. + + + Im Moment nichts. + + + Wegen dieser Detektoren... + + + Ja? + + + Wo finde ich sie? + + + Keine Ahnung, finde sie einfach. + + + Ich habe die Detektoren. + + + Und warum bist du dann noch hier? Bring sie zu Nowikow in den Bunker der Wissenschaftler nahe Jupiter. + + + Ich habe Nowikow die Detektoren gebracht. + + + Gut. Jetzt kann er an ihnen herumbasteln. Er hat versprochen, sie dann einer vertrauenswürdigen Person zu geben, die sie zu uns bringen wird. + + + Es gibt Probleme. Unser kleines Geschäft ist in der Schwebe. Nowikow hat mit den Detektoren sehr gute Arbeit geleistet. Er hat die Reichweite erhöht, die Sensibilität verbessert usw. Mit diesen Detektoren kannst du einen großen Bogen um die ganzen anderen Artefaktjäger machen. Ich habe einen Deal mit Beard klargemacht, wonach die von ihm angeheuerten Stalker die neuen Detektoren benutzen dürfen... + + + Und? + + + Wir haben ausgemacht, dass wir den Profit gerecht aufteilen, aber die Stalker weigern sich, uns unseren Anteil zu geben. Du musst mit Beard reden und ihn davon überzeugen, dass er sich an die Abmachung hält... Du willst doch auch deinen Teil des Kuchens, oder? + + + Ich brauche deinen neuen Detektor. + + + Hah! Und ich brauche ein anständiges Schießeisen. Wenn du eine gute, wertvolle Waffe hast, können wir tauschen. + + + Einverstanden. + + + Nein, danke. + + + Ich brauche deinen neuen Detektor. + + + Ist das eine Drohung? Wie du dir sicher denken kannst, brauche ich ihn selbst. + + + Du verstehst mich nicht ganz, oder? Deiner ist der Letzte. Es war kein allzu großes Problem, die anderen Besitzer aus dem Weg zu räumen... + + + Was?! Du hast sie kaltgemacht? Nimm den Detektor und lass mich in Ruhe. + + + Hey, wie wäre es, wenn du mich am Arsch leckst? + + + Das verschieben wir besser auf ein andermal. Darf ich dich jetzt freundlich darum bitten, mir den Detektor zu geben? + + + Und ich bitte dich freundlich darum, mich am Arsch zu lecken. + + + Stalker, kannst du Arbeit gebrauchen? + + + Um was geht es? + + + Ich habe meine Beute in einem alten Saporoschez versteckt, als ich plötzlich von einem Erdbeben überrascht wurde. Der Wagen ist dann in einen Erdspalt gestürzt. Ich habe nachgesehen und man müsste irgendwie an den Wagen rankommen. Nur... ähm... da sind Mutanten, weißt du - Schnorks. Ob du's glaubst oder nicht, ich habe nicht einmal vor Controllern Angst, aber diese verdammten Schnorks sind mir irgendwie unheimlich und einfach ekelerregend. Falls du dort unten eine Kiste mit Sicherheitsschloss findest, bring sie zu mir und wir teilen die Beute gerecht auf. + + + Abgemacht. + + + Danke, Stalker. + + + Ist das deine Kiste? + + + Ja, das ist sie! Wow, du hast's echt drauf! + + + Vielleicht ein andermal. + + + Schade. + + + Nein, ich habe im Moment zu viel zu tun. + + + OK, wie du willst. + + + Und? Irgendwelche Neuigkeiten? + + + Was willst du? Siehst du nicht, dass ich zu tun hab? + + + Hey, das ist meine Waffe! Wo hast du sie her, du Dieb? Meine wurde erst neulich gestohlen. + + + Was redest du da? Ich habe sie vor kurzem gekauft. + + + Ich habe keinen blassen Schimmer, wo oder wie du an das Ding rangekommen bist, aber es handelt sich dabei definitiv um die Waffe, die mir gestohlen wurde. Du willst mich ganz sicher nicht wütend machen, also gib mir bitte die Waffe und alles ist gut. + + + OK, hier. Ich will keinen Ärger. + + + Gib sie mir. + + + Diese Waffe gehört mir. + + + Ja klar... Ich warne dich, ich habe gute Kontakte und jeder kennt mich hier! Mit einem schlechten Ruf wirst du in der Zone nicht lange überleben, Stalker. Was sagst du jetzt, hä? Erwarte hier von niemandem Hilfe. Mann, du hast richtig verschissen! + + + Zisch ab! + + + Bist du sicher, dass das deine Waffe ist? + + + Ja, da bin ich mir ganz sicher. Diese Waffe sieht man in der Zone nicht wirklich oft. Das ist auf jeden Fall meine. + + + Du täuschst dich. Geh und wir vergessen die Sache einfach. + + + Was? Ich soll mich täuschen?! Denk nach, bevor du redest, Arschloch! Wenn du Ärger willst, sind alle auf meiner Seite, das kannst du mir glauben. Gib mir die Waffe zurück und alles ist gut. Ich werde sogar so gnädig sein und niemandem von der Sache erzählen. + + + Was?! Hast du mal dran gedacht, dass ich dir mit dieser verdammten Waffe sofort ein Loch in den Schädel pusten könnte? + + + OK, entspann dich, Kumpel. Die Sache ist ein bisschen außer Kontrolle geraten, aber jetzt bin ich die Ruhe selbst. Ich muss mich getäuscht haben. + + + Wegen dieser Kiste... + + + Hast du sie gefunden? + + + Ich bin noch dabei. + + + Ich habe beschlossen, nicht länger danach zu suchen. + + + Was für ein Jammer. + + + OK, lass mal sehen... + + + Klar, einen Moment... + + + Ich habe beschlossen, die Kiste zu behalten. + + + Oh, du mieser... Glaub ja nicht, dass ich das vergesse! + + + Hier ist die Kiste. + + + OK, dann teilen wir jetzt die Beute auf, oder? + + + Leg los. + + + Mal sehen, was wir hier haben... Meine alte, aber todbringende Fora. Mein Onkel hat sie vor langer Zeit selbst modifiziert. Ist ja fast schon ein Familienerbstück, oder... Deswegen sollte ich sie nehmen. + + + Nein, gib sie mir! + + + Ach, dann nimm sie... + + + Was ist da noch... + + + Nein, du hast schon genug Sachen aus der Kiste. + + + Was ist da noch... + + + Von mir aus, dann nimm du sie. Was ist noch drin? + + + OK, mal sehen... Ein ausgezeichnetes Medkit. Gut genug, wenn man es mit einem Bären oder sogar mit einem Controller aufnehmen will. Das gehört mir... + + + Eigentlich könnte ich ein Medkit gut gebrauchen! + + + Hm... na gut. + + + Was ist da noch... + + + Nein, du hast schon genug Sachen aus der Kiste. + + + Was ist da noch... + + + Du kannst es behalten. Was ist da noch? + + + OK... wow. Ich bezweifle, dass du jemals so ein Gewehr in den Händen gehalten hast... Ein erweitertes AKM-74/2U. Ich habe diesem Kerl von den Wächtern 'ne Menge Medkits gegeben, damit er mit dieser Schönheit rausrückt. Das war damals, als die Freiheitler einem Wächtertrupp dermaßen eingeheizt haben, dass ihnen die Medkits ausgegangen sind. Seitdem hat mir dieses Baby drei Mal das Leben gerettet... Das ist definitiv für mich. + + + Kann ich das Gewehr vielleicht haben? + + + Hm... das bricht mir jetzt echt das Herz. Aber so war's abgemacht. Nimm es. + + + Was ist da noch... + + + Nein, du hast schon genug Sachen aus der Kiste. + + + Was ist da noch... + + + OK, behalte es. Was ist noch drin? + + + Ohhh... ein schönes und wertvolles Stück. Dieses Artefakt ist 'nen ganz schönen Batzen Geld wert! Ich habe es übrigens selbst aus einer Anomalie geholt. Dabei habe ich mir mehr als nur einmal in die Hosen gemacht. Das ist meine Trophäe, die ich mir mit Blut und Tränen verdient habe. + + + Ich glaube, ich brauche das Artefakt dringender als du. + + + Du machst mich echt fertig, Mann... Nimm es - meine Großzügigkeit wirst du in absehbarer Zeit sicher nicht vergessen. + + + Was ist da noch... + + + Du hast schon genug Sachen aus der Kiste. + + + Was ist da noch... + + + Behalte es. Was ist noch drin? + + + Und zu guter Letzt... ein hervorragender Helm, handgefertigt. Vor ner Weile haben wir beim Kordon einen neuen Stalker bekommen, ein richtiger Handwerker war das. Hat ein paar coole Sachen zusammengebastelt, bevor er draufgegangen ist. Dieser Helm hat auch dazugehört. So einen findest du nirgendwo! Ich behalte ihn. + + + Pass auf, ich bin hier derjenige, der gegen eine Horde Schnorks sein Leben aufs Spiel gesetzt hat... Wenn hier jemand diesen Helm verdient hat, dann ich. + + + Nun gut... viel Spaß damit. + + + Was ist da noch... + + + Du hast schon genug. Ein paar Sachen sollte ich schon für mich behalten, oder? + + + Was ist da noch... + + + In Ordnung, behalte ihn. + + + Das war's, Mann. Das ist die ganze Beute. + + + Gut, man sieht sich. + + + Das war's. Aber ich kann dich doch nicht mit leeren Händen gehen lassen... Hier, nimm meine Pistole! + + + Viel Glück. + + + Was machst du hier? + + + Ich diene und beschütze. Ich war früher bei der Polizei und hier bin ich so etwas wie der örtliche Sheriff. Ich bin mit Beard hierher gekommen, und dann hat er beschlossen, hier ein Lager einzurichten. Warum weitergehen, wenn doch eh niemand einen Weg nach Pripyat kennt? Hier gibt es genug Artefakte. Also sind wir geblieben. + + + Wen könnte ich anheuern, um die Wissenschaftler zu beschützen? + + + Wir haben ein paar gute Männer. Der Trupp von Spartacus zum Beispiel. Zähe Burschen, richtige Profis - viele von ihnen waren früher bei der Polizei. Falls sie Zeit haben, findest du für diesen Job nirgends bessere Leute als sie. + + + Vor ner Weile hätte ich dir noch ein paar Leute vorschlagen können, aber jetzt nicht mehr. Keiner der Stalker hier würde das machen. + + + Wen könnte ich anheuern, um Messungen für die Wissenschaftler vorzunehmen? + + + Es gibt da eine Gruppe von Stalkern, Gonta führt den Haufen an. Sprich mit ihm, vielleicht macht er es... Denen kann eine Abwechslung von der ganzen Mutantenabknallerei sicher nicht schaden. + + + Wenn Gonta mit seinen Jungs hier wäre, würde ich dich zu ihm schicken, aber da das nicht der Fall ist... Mir fällt ansonsten keiner ein, der dafür in Frage kommen würde. + + + Hast du bei Nimble Waffen gekauft? Weißt du, ob er mit gestohlenen Sachen handelt? + + + Du glaubst, er ist so hinterhältig, dass er hinter meinem Rücken solche Dinger dreht? Nein, auf keinen Fall. Mein Bauchgefühl sagt mir, dass Nimble kein Hehler ist. + + + Ich suche Snag. Hast du eine Idee, wo er sein könnte? + + + Snag - ich kenne ihn. Ein Dummkopf ist das. Einige Jungs haben ihn neulich drüben bei den Dockkränen gesehen. Da scheint er jetzt immer gerne herumzuhängen. Schau doch dort mal vorbei. + + + Hallo, Stalker. Hast du Lust, ein bisschen Knete zu verdienen und gleichzeitig unserem Lager zu helfen? + + + Hallo, Stalker. Immer noch hier? Wenn du weiter so herumtrödelst, machen uns die Blutsauger bald alle fertig. + + + Reden wir später. Ich hab zu tun. + + + Was für 'nen Job kann ich für dich erledigen? + + + Folgendes: Einige Stalker werden vermisst. Niemand hat was von ihnen gehört, aber erst neulich wurde eine Leiche gefunden. Keine Anzeichen von Gewalt, aber im Körper war überhaupt kein Blut mehr. Tremor hat sich die Leiche angesehen, er könnte dir mehr dazu sagen... Wie auch immer, das müssen Blutsauger gewesen sein! Ich habe mit dem Jäger Danila geredet und er ist aufgebrochen, um ihr Lager zu finden. Seitdem fehlt von ihm jede Spur. + + + Was soll ich tun? + + + Du musst das Lager aufspüren und findest dabei hoffentlich auch Danila. Wird kein Spaziergang, aber ich sorge dafür, dass es sich für dich lohnt. OK? + + + Einverstanden. + + + OK, ich habe zwei Orte ins Auge gefasst, die zuerst überprüft werden sollten. Die Koordinaten eines Ortes habe ich auf deinen PDA hochgeladen. Ich muss noch ein paar Sachen erledigen und dann sehe ich mir mal den anderen Ort genauer an. Ich sag dir dann Bescheid, ob ich etwas gefunden habe. + + + Einverstanden. + + + Ich glaube, da muss ich passen. + + + Komm wieder, falls du deine Meinung änderst. + + + Kein Interesse. + + + Immer noch das Gleiche... Solange da irgendwo ein Blutsaugerlager ist, haben wir alle ein großes Problem. Und von dem Jäger Danila haben wir immer noch nichts gehört. Hilfst du uns bei der Sache? + + + Grouse hat mir erzählt, dass du die Leiche von einem der vermissten Stalker untersucht hast. Glaubst du, dass ein Blutsauger den Kerl getötet hat? + + + Ja, und ich habe mir auch die anderen Leichen angesehen... Keine andere Kreatur wäre in der Lage, das ganze Blut aus einem menschlichen Körper rauszukriegen - bis zum letzten Tropfen. Alles deutet auf einen Blutsaugerangriff hin... Was sonst könnte man daraus schließen? + + + Erzähle mir etwas über dich. + + + Ich bin Arzt, ein ausgebildeter Gehirnchirurg. Was willst du sonst noch wissen? Ich kann einen Hypothalamus mit der Präzision eines Lasers herausschneiden, aber bisher hat sich dazu in der Zone noch keine Gelegenheit geboten. Hier bin ich nur ein gewöhnlicher Arzt - einer von vielen... Aber ich verstehe mein Handwerk. + + + Ich höre. + + + Kannst du einen Flugschreiber entschlüsseln? + + + Tja, also das ist nicht wirklich mein Spezialgebiet - diese ganzen Zahlen und Algorithmen... nicht jedermanns Sache. Wenn du mir einfachen mechanischen Kram bringst, kriege ich das sofort hin... ein bisschen schrauben hier, ein bisschen herumhantieren dort und schon ist alles in Butter. + + + Glaubst du, dass Nimble mit gestohlenen Waren handelt? + + + Mach mal halblang... Nimble und gestohlene Waren? Nie und nimmer. Als ich mit meiner Werkstatt angefangen habe, war Nimble es, der mir geholfen hat - und wollte dafür rein gar nichts... Egal was irgendjemand behauptet: Ich weiß, dass Nimble ein feiner Kerl ist. + + + Hast du was für mich zu tun? + + + Aber sicher. Ich brauche Werkzeug, aber ich kann mich nicht selbst darum kümmern. Der Job raubt mir meine ganze Zeit. Wenn du mir nützliches Werkzeug bringst, siehst du mal, wie man Waffen und Ausrüstung anständig aufmotzt. Und dir bringt es ein bisschen Kohle ein. + + + OK, ich halte die Augen offen. + + + Nein. Vielleicht später. + + + Oh, sicher. Ich brauche Werkzeug, erinnerst du dich noch? Eine kleine Hilfe für mich, ein bisschen Knete für dich. + + + Kannst du ein Speichermodul hacken? + + + Ne, Mann, da kann ich dir nicht helfen. Dieser ganze moderne Elektronikkram, Computer usw.... Ist nicht mein Ding. Da solltest du besser einen jüngeren Techniker fragen... Die saugen das Zeug mit der Muttermilch auf, Mann. + + + Kannst du einen Stahlbehälter aufbrechen? + + + Das ist kein Problem. Ich mache gute Arbeit und kostet dich nur 500. + + + Hier. + + + OK, das kriegen wir schon hin... ein bisschen rumhantieren und zack - ist die Sache erledigt. Es gibt nichts, was ich nicht mit Brecheisen und Hammer aufkriege. + + + So viel habe ich nicht. + + + Komm wieder, wenn du das Geld zusammenhast. Ich werde hier sein! + + + Ich werde darüber nachdenken. + + + Ich hab was zum Saufen. Magst du 'nen Schluck? + + + Ne, ich bin trocken, Mann. Als ich Forschungsobjekt 62 gesehen habe, da habe ich mir gedacht: "Das war's, jetzt höre ich auf." Weißt du, Alkohol macht einen nur fertig und gehört bei einer gesunden Ernährung nicht auf den Tisch. Wer soll die Munition für dein Gaußgewehr zusammenschustern, wenn ich mich tot gesoffen habe? + + + Hier ist noch eine Flasche für dich. + + + Ich hab noch eine dritte Flasche, falls du mehr willst. + + + Ich habe Werkzeug für dich. + + + Gut. Welches? + + + Das einfache Werkzeug. + + + Coole Sache! Jetzt brauche ich nur noch Feinwerkzeug und Kalibrierungswerkzeug. + + + Das Feinwerkzeug. + + + Coole Sache! Jetzt brauche ich nur noch einfaches Werkzeug und Kalibrierungswerkzeug. + + + Das Kalibrierungswerkzeug. + + + Coole Sache! Jetzt brauche ich nur noch einfaches Werkzeug und Feinwerkzeug. + + + Im Moment keins. + + + Gut. Jetzt nur noch Kalibrierungswerkzeug und ich habe, was ich brauche. + + + Gut. Jetzt nur noch Feinwerkzeug und ich habe, was ich brauche. + + + Gut. Jetzt nur noch einfaches Werkzeug und ich habe, was ich brauche. + + + Wow, gute Arbeit! Wie machst du das bloß, Mann? Jetzt habe ich eine breite Palette an Werkzeug, hah! Kannst mir dabei zuschauen, wie ich aus Feuerzeugen ein Maschinengewehr zusammenbaue! + + + Ich habe den Bauplan und die Begleitdokumentation zu Forschungsobjekt 62. + + + Coole Sache! Ich wusste doch, dass diese Mistkerle nicht genug Zeit hatten, um alles zu zerstören. Lass mal sehen... hmm... daran haben sie also gearbeitet. Gut! Es dauert ein paar Stunden, bis ich das alles kapiert habe. Lass das Gaußgewehr hier. Ich werde versuchen, es zu reparieren. Warte hier. Ich brauche nicht lange, um dieses Baby wieder zum Singen zu bringen! + + + Ich brauche Batterien für mein Gaußgewehr. + + + Dafür mache ich dir den Lieblingskundenpreis: 2.000. + + + Hier. + + + Ich werde darüber nachdenken. + + + Ich bin im Moment ein bisschen knapp bei Kasse. + + + Bist du mit dem Gaußgewehr fertig? + + + War ein Klacks. Die Sache mit der Stromversorgung ist klar. Falls das Gewehr Zicken macht, bring es einfach hierher zurück und ich kümmere mich darum. + + + Ich arbeite noch daran. Ich liebe es einfach, herumzuschrauben... + + + Ich habe hier ein unbekanntes Waffenmodell. + + + Was meinst du mit "unbekannt"? Gib her, lass mich mal einen Blick drauf werfen... + + + Nur zu... Hast du so ein Ding schon mal gesehen? + + + Ah, du bist es... Ich habe geträumt, dass du mir etwas aus der Vergangenheit mitgebracht hast... Gut, dass ich nichts getrunken habe. + + + War es zufällig diese Waffe hier, die du in deinem Traum gesehen hast? + + + Wow, Mann... Dann war das wohl gar kein Traum. Das ist ein Gaußgewehr, oder Forschungsobjekt 62, wie es offiziell genannt wurde. Puh... Ich war damals als Leiharbeiter in der Jupiter-Anlage beschäftigt - in der Waffenentwicklung, "basierend auf dem Prinzip der elektromagnetischen Projektilbeschleunigung", oder so ähnlich. Siehst du die Spulen? Die habe ich entworfen... Ein Jammer, dass sie das Projekt im Jahr 2004 eingestellt haben. Wir haben nie eine Möglichkeit gefunden, die Stromversorgung kompakt umzusetzen. + + + Dieses Gewehr wurde schon benutzt. Wie ist das möglich? + + + Woher soll ich das wissen? Ehrlich gesagt würde ich mich nicht trauen, mit einem Schraubenzieher an dieser Batterie herumzufummeln. Außerdem ist die Mechanik der Stromversorgung hinüber. Der Bauplan würde mir jetzt wirklich sehr gelegen kommen. Die Entwicklungswerkstatt, in der ich gearbeitet habe, hat den Produktionsfortschritt dokumentiert. Vielleicht liegen der Bauplan und die Begleitdokumentation noch irgendwo dort herum... Ich habe noch die Schlüsselkarte für die Werkstatt, warum auch immer... + + + Kannst du mir die Schlüsselkarte geben? + + + Ja, also... ich denke schon. Aber pass auf, dass du sie nicht verlierst. Wenn du mir die Sachen bringst, kann ich dieses Gewehr vielleicht reparieren. + + + Hier hast du deine Schlüsselkarte wieder - keinen einzigen Kratzer hat sie abbekommen. + + + Danke. Sie erinnert mich an die gute alte Zeit. + + + Du... ähm... du kannst mir gerne deine ganzen kaputten Waffen und durchlöcherten Schutzanzüge vorbeibringen...Ich bin zwar nicht halb so gut, wenn ich nüchtern bin, aber probieren kann ich's ja trotzdem... + + + Wo warst du? Ich hab mir schon langsam Sorgen gemacht und überall nach dir gesucht. Wo ist dieser Stalker, habe ich gesagt... Prost! + + + Na, alles klar? Fühl dich wie zu Hause... Hast du mir was zum Reparieren oder vielleicht was zum Trinken mitgebracht? + + + Wow! Coole Sache! Meine Hände zittern zwar nicht, aber mein Kopf sagt "Ich will mehr"... Gib mir noch was zu Trinken, junger Mann! + + + Warum so zögerlich? Mach die nächste Flasche auf, na los! Lass uns auf unsere gemeinsame Sache trinken. Jawohl. Wodka weckt das Mechanikergenie in mir, ohne Scheiß. + + + Ach, wäre Joker doch hier. Dann würden wir gemeinsam auf Barge anstoßen... Möge er in Frieden ruhen. War ein guter Mann und konnte viel wegstecken. Er war für uns wie ein Fels in der Brandung. + + + Ach, wäre Barge doch hier. Dann würden wir gemeinsam auf Joker anstoßen... Möge er in Frieden ruhen. Er war ein feiner Kerl und immer für uns da. Auf ihn konnte man sich verlassen. + + + Uff... Barge... Joker... Wie konnte es nur soweit kommen... Eins führt zum anderen... + + + Hm... Was haben wir denn da? Ich kümmere mich morgen um die gepanzerten Maschinenpistolen... Keine Sorge, ist kein Ding. Auf mich warten ein paar gute Drinks... + + + Wegen der Sache mit Forschungsobjekt 62... Ich würde wirklich gerne einen Blick auf den Bauplan werfen. + + + Eine kluge Entscheidung, mein Freund. Musst deine Waffe gut in Schuss halten. Und falls du ein oder zwei Flaschen übrig hast, kann ich hier 'nen Haufen Verbesserungen machen. Du willst 'nen Fallschirm an deine Schrotflinte anbringen lassen? Kann ich machen, he he. + + + Sieh an, sieh an! Die haben ein elektrostatisches Artefakt in die Batterie eingebaut! Hah! Hab ich mir gleich gedacht, dass da irgendein komischer Anomaliescheiß mit im Spiel ist! Das Prinzip an sich ist einfach - jetzt kriege ich das selbst hin. + + + Du brauchst jemanden, der rumschraubt? + + + Das ist der reinste Kauderwelsch. Ich glaube, ich habe mich schon eine ganze Weile nicht mehr mit technischem Papierkram beschäftigt... + + + Ja, ich bin mit zwei Kumpels nach Zaton gekommen - Barge und Joker... Die waren noch Kinder, voller Tatendrang und bisschen übermütig! Konnten es gar nicht erwarten, tonnenweise Artefakte in die Finger zu kriegen. Sie wollten die Ersten und die Schnellsten sein... Ich habe in ihre glänzenden Augen geschaut und mir gedacht: "Das tut denen gar nicht gut. Beute schön und gut, sicher, aber das ist kein Grund, sich Hals über Kopf in die Klauen eines Mutanten zu stürzen." + + + Und was ist passiert? + + + Nun... eines Nachts waren wir draußen, haben was getrunken und heftig darüber diskutiert, was wir als Nächstes tun sollen - sollen wir hier bleiben oder weiterziehen, und wenn ja, wohin. Keiner von uns hat locker gelassen und wir waren richtige Sturköpfe. Die Diskussion wurde immer hitziger und schließlich haben sich unsere Wege getrennt. Ich habe ihnen vorgeworfen, dass sie doch keine Ahnung vom Leben haben... und einige andere unschöne Dinge. Mann... wenn ich ihnen wieder über den Weg laufen würde, würde ich mich dafür entschuldigen... und wir würden wie vorher zusammen was trinken und über die guten alten Zeiten plaudern... + + + Ich kann Barge deine Entschuldigung ausrichten, falls ich ihm über den Weg laufe. + + + Das wäre nett. + + + Ich kann deinen Kumpels deine Entschuldigung ausrichten, falls ich ihnen über den Weg laufe. + + + Das wäre nett. + + + Ich kann Joker deine Entschuldigung ausrichten, falls ich ihm über den Weg laufe. + + + Das wäre nett. + + + Ich habe einen PDA gefunden. Wirf mal einen Blick drauf. + + + Was soll ich mit dem Ding? Von wem ist er? + + + Barge ist tot?! Ich kann es nicht glauben! Oh, Mann! Er war einer der zähesten Burschen von allen... Oh, Barge... ruhe in Frieden. Ich hoffe, dass es Joker wenigstens gut geht. + + + Barge ist tot?! Ich kann es nicht glauben! Oh, Mann! Er war einer der zähesten Burschen von allen... Oh, Barge... und Joker auch... sie waren zu jung zum Sterben, mögen sie in Frieden ruhen. Wie konnte das nur passieren... + + + Sie sind tot? Ich kann es nicht glauben! Oh, Mann! Barge war einer der zähesten Burschen von allen... und Joker... oh, Joker... Jetzt können wir gar nicht mehr über deine Witze lachen. Sie waren zu jung zum Sterben, mögen sie in Frieden ruhen. Wie konnte das nur passieren... + + + Kannst du mir einige Fragen beantworten? + + + Sicher. + + + Wie lange dauert es, bis meine Lieferung da ist? + + + Das hängt ganz davon ab, wie schwierig die Sachen zu kriegen sind. Normalerweise dauert es einen Tag, manchmal geht es auch schneller. + + + Erzähle mir etwas über dich. + + + Da gibt es nicht viel zu erzählen. Wie bei den meisten Leuten ist auch bei mir das Leben ein ständiges Auf und Ab. Bin in ein paar Anomalien geraten, wurde von Banditen gefangen genommen... Ich bin als junger Hüpfer in die Zone gekommen, ist schon lange her. Am Anfang habe ich mir mein Geld als Laufbursche verdient - Antistrahlenkits, panzerbrechende Munition und das ganze Zeug. Dann habe ich für Sidorowitsch gearbeitet... habe mich dafür revanchiert, dass er mir den Arsch gerettet hat. Als ich für ihn die Drecksarbeit gemacht habe, konnte ich einige gute Kontakte knüpfen und habe dann auf eigene Faust mit exklusiven Waren gehandelt. Bisher konnte ich immer wieder aufstehen, wenn das Leben mir einen harten Schlag versetzt hat. Aber irgendwie habe ich das Gefühl, dass mir das Glück nicht mehr lange die Stange halten wird. Außerdem bin ich nicht mehr scharf darauf, mir für ein paar Münzen den Arsch aufzureißen. + + + Danke, ich verstehe. + + + Freut mich, dass ich helfen konnte. + + + Du hast mir eine gestohlene Waffe verkauft! + + + Was redest du da? Ich handle nicht mit Hehlerware und bin ein seriöser Geschäftsmann. Wenn du mir nicht glaubst, kannst du jeden im Lager fragen. Sie werden dir alle sagen, dass ich eine ehrliche Haut bin und niemanden verarsche. + + + Ich bin auf einen Stalker gestoßen, der behauptet, dass diese Waffe ihm gehört hat. + + + Und wie heißt der Typ? + + + Snag. + + + Was geht dich das an? + + + Es ist nicht ganz unwichtig. Da nimmt dich jemand mächtig auf den Arm, Stalker. + + + Das werden wir schon sehen. + + + Jemand nimmt dich auf den Arm, Stalker. + + + Ich bin gekommen, weil ich meine Bestellung abholen will. + + + Hier ist deine Steppe Eagle. War kniffliger, als ich dachte. Irgendein Pistolenfreak hatte großes Interesse an dem Ding, ich konnte es mir gerade noch rechtzeitig krallen. Aber sieh selbst - eine handgefertigte Pistole. Die Komponenten wurden mit beispielloser Präzision justiert. Hast du dich jemals gefragt, wie eine perfekte Scharfschützenpistole aussehen könnte? Hier hast du die Antwort. Das macht noch weitere 2.800. + + + Gut, bitte sehr. + + + Hier. Es macht Spaß, mit dir Geschäfte zu machen. + + + So viel habe ich nicht. + + + OK, ich bewahre die Waffe eine Zeit lang für dich auf. Ich hoffe, du kannst das Geld bald auftreiben. + + + Ich will das nicht kaufen. + + + Wenn du die Bestellung nicht entgegennimmst, kann ich dir nächstes Mal nicht über den Weg trauen. Deswegen muss ich dann ein gewisses Risiko mit einkalkulieren und werde von dir einen höheren Vorschuss verlangen. + + + Egal, ich nehme die Bestellung nicht. + + + Gut, wie du willst. + + + Ich werde darüber nachdenken. + + + Sicher, ist deine Sache. Ich bewahre die Waffe eine Zeit lang für dich auf. + + + Hier hast du deine ultra-zielsichere Steppe Eagle-Pistole. Das macht noch weitere 2.800. + + + Hier, die Alpine-Pistole - eine wahre Schönheit. Du kannst dir sicher sein, dass es diese Waffe in der gesamten Zone nicht zwei Mal gibt. Ein einzigartiges Modell und in sehr geringer Stückzahl für eine einzelne Spezialeinheit in Auftrag gegeben. Es war nicht einfach, da ranzukommen, ich musste sogar einen meiner Partner im Ausland einspannen. Die Pistole hat ein erweitertes Magazin, einen extrem stabilen Stahllauf und ein Gehäuse aus besonders starken Polymeren. Mach die übrigen 2.800 locker und das Baby gehört dir. + + + Hier ist deine Alpine-Pistole mit erweitertem Magazin. Mach die übrigen 2.800 locker und das Baby gehört dir. + + + Das ist die March-Pistole. Sie hat einem Söldner namens Wolfshund gehört. Es handelt sich dabei um eine kompakte, großkalibrige Pistole mit kurzem Verschlusslauf und leichtem Verschlusssystem. Wolfshund war durch und durch ein Dreckskerl, aber von Waffen hatte er Ahnung, das muss man ihm lassen. Man sagt, sein Lieblingskunststück war es, alle vier Gliedmaßen seines Opfers und dann den Kopf wegzuschießen - und das bevor der arme Kerl auf dem Boden gelandet ist. Wie auch immer, das macht noch 2.800. + + + Hier ist deine March-Schnellfeuerpistole. Das macht noch weitere 2.800. + + + Bitte sehr - Cutter, eine Maschinenpistole. Eins vorneweg, lass dich vom Aussehen der Waffe nicht verunsichern. Ist ein brandneues Modell und noch nicht in Serienproduktion gegangen - ein Prototyp direkt aus der Waffenfabrik. Den Konstrukteuren ging es darum, eine neue Waffe für kurze Distanzen zu entwickeln - mit einer Kombination aus einem großem Kaliber, Schnellfeuer und Genauigkeit. Das macht noch weitere 8.000. + + + Ja, hier hast du Cutter, eine Schnellfeuermaschinenpistole. Das macht noch weitere 8.000. + + + Hier haben wir ein ganz besonderes Stück - Karbonator, eine richtige Armeeschrotflinte. Automatikfeuer mit geringem Rückstoß dank eines ausgeglichenen stoßfreien Systems. Leg noch 8.000 auf den Tisch und sie gehört dir. + + + Hier, Karbonator, eine automatische Schrotflinte. Leg noch 8.000 auf den Tisch und sie gehört dir. + + + Ich glaube, das ist genau das, was du brauchst. Eliminator, eine der neuesten Entwicklungen. Die ganze Ladung sollte eigentlich nach Zentralafrika geschickt werden, aber Freunde haben mir einen Gefallen getan und mir ein "Warenmuster" zukommen lassen. Eine automatische Schrotflinte mit einem großen Magazin und einer hervorragenden Feuerrate. Noch 8.000, dann gehört sie dir. + + + Sicher. Die automatische Schrotflinte Eliminator mit einem erweiterten Magazin. Macht noch 8.000. + + + Sicher, hier hätten wir Storm - Maschinenpistole und Granatwerfer in einem. Bei diesem Prototyp handelt es sich um eine modifizierte Version einer konventionellen Waffe, die für Spezialeinheiten in der Zone konzipiert wurde. Technische Innovationen der Spitzenklasse von unseren slawischen Brüdern... Leg 16.000 drauf und sie gehört dir. + + + Sicher, hier hätten wir Storm, Maschinenpistole und Granatwerfer in einem, mit erweitertem Magazin. Macht noch weitere 16.000. + + + Bitte sehr. GP37 - ein Sturmgewehr der neuen Generation. Schussgenau, zuverlässig und mit eingebautem optischen Zielfernrohr. Hat mal einem UN-Beobachter gehört. Ihr Trupp wurde auf eine Erkundungsmission in die Zone geschickt. Allerdings hat der Einsatz kein gutes Ende genommen... Noch 16.000 und das Gewehr gehört dir. + + + Bitte sehr. GP37 - ein Sturmgewehr der neuen Generation. Das macht noch weitere 16.000. + + + Eine Sekunde. Hier hätten wir ein modulares FT-200M-Gewehr, konzipiert von belgischen Waffenherstellern. Es handelt sich dabei um eine Allzweckwaffe mit hoher Schussgenauigkeit, die sowohl für Rechts- als auch für Linkshänder geeignet ist. Sie ist mit einem optischen Zielfernrohr und einem Granatwerfer bestückt. Ich habe das Gewehr von einigen glücklosen UN-Beobachtern bekommen... Das macht noch weitere 16.000. + + + Hier hätten wir ein modulares FT-200M-Gewehr. Das macht noch weitere 16.000. + + + Das ist Tide - eine Waffe, die auf Basis eines schallgedämpften Scharfschützengewehrs für die Armee zum Kampf gegen Zombies entwickelt wurde. Tide hat eine größere Stoppwirkung als sein Vorgängermodell, musste dafür allerdings an Feuerrate einbüßen. Der Scharfschütze kann einen Zombie nach dem anderen ausschalten, ohne seine Position preiszugeben. Es hat sich jedoch herausgestellt, dass Stalker allein schon ausreichen, um die Zombies an der Barriere zurückzuschlagen, weswegen das Gewehr nie in Serienproduktion gegangen ist. Du kriegst das Baby für zusätzliche 16.000. + + + Das ist Tide, ein schallgedämpftes Scharfschützengewehr mit erhöhter Stoppwirkung. Gib mir noch 16.000 und hab Spaß mit der Waffe. + + + Hier, SVU2-A - ein verkürztes Scharfschützengewehr mit erhöhter Feuerrate. Ich habe es Max abgekauft, dem legendären Wächter von den Freiheitlern. Er hat geschworen, dass es in der gesamten Zone kein Gewehr wie dieses gibt. Eine einzigartige Waffe, zumindest in dieser Gegend. Das macht noch weitere 16.000. + + + Ja, SVU2-A - ein verkürztes Scharfschützengewehr mit erhöhter Feuerrate. Das macht noch weitere 16.000. + + + Klar, wirf einen Blick auf Lynx. Ein örtlicher Waffenexperte hat das Scharfschützengewehr selbst gebaut. Er weilt nicht mehr unter uns, weswegen es nur dieses eine Exemplar gibt. Sieht zwar wie jedes andere Gewehr aus, aber wenn du es einsetzt, wirst du den Unterschied merken - eine ideale Kombination aus Schussgenauigkeit und Stoppwirkung. Mach die übrigen 16.000 locker und das Baby gehört dir. + + + Ja, und zwar Lynx - ein Scharfschützengewehr mit erhöhter Schussgenauigkeit und Stoppwirkung. Für zusätzliche 16.000 gehört es dir. + + + Hier. Ich konnte alles von meiner Liste auftreiben - eine CS-3a-Körperpanzerung mit Helm. Der Helm an sich ist nichts Besonderes, aber man kann ein mobiles Taktiksystem mit integriertem Nachtsichtgerät und aktivem Infrarotsensor einbauen. Die CS-3a ist eine Körperpanzerung der ganz besonderen Sorte. Sie schützt hervorragend gegen Beschuss und Anomalien, obwohl sie so leicht ist und die Bewegungsfreiheit kaum einschränkt. 32.000 würde dich der ganze Spaß noch kosten. + + + Ja. Eine CS-3a-Körperpanzerung mit taktischem Helm. Macht alles in allem noch 32.000. + + + Hier, extra für dich, ein SEVA-Schutzanzug. Alles so, wie du es in Auftrag gegeben hast - ein geschlossener Atemkreislauf, ein Hitzeschutz, ein Schutzstromkreislauf und eine Außenbeschichtung aus korrosionsbeständigem Material. Außerdem wurden einige Artefaktbehälter integriert. Dieser Schutzanzug ist ein Muss für jeden Stalker. Gib mir wie vereinbart noch 24.000 und er gehört dir. + + + Hier, ein SEVA-Schutzanzug. Macht noch weitere 24.000, wie vereinbart. + + + Voilà, ein Kampf-Exoskelett. Der beste Schutz gegen Kugeln, Klauen oder Granatsplitter, den du in der Zone kriegen kannst - abgesehen von gepanzerten Fahrzeugen. Und mehr tragen kannst du auch. Für 48.000 gehört es dir - mit allem, was dazugehört, also Batterien und Servomotoren. + + + Voilà, ein Kampf-Exoskelett. Für 48.000 gehört es dir. + + + Ich würde gerne etwas bestellen. + + + Kein Problem. Was brauchst du? + + + Eine Pistole. + + + Klar. Das wären 3.500 und 700 davon im Voraus. + + + OK, hier. + + + Ich melde mich bei dir, sobald die Lieferung eingetroffen ist. + + + Ich habe das Geld nicht. + + + Tja, dann komm bitte wieder, wenn du flüssig bist. + + + Weißt du, ich habe meine Meinung geändert. + + + Kein Problem. Falls du doch noch etwas bestellen willst, findest du mich immer hier. + + + Du bist nicht gerade ein verlässlicher Kunde... Deswegen kostet die Pistole 4.200. Außerdem will ich 1.400 davon im Voraus. + + + Leider sind die besten Pistolen ausverkauft. Falls du auch mit normalen Waffen zufrieden bist, ist Uhu der richtige Mann. + + + Eine Schusswaffe für kurze Distanzen. + + + Sicher. Macht 10.000 und 2.000 davon im Voraus. + + + Die letzte Lieferung hast du nicht angenommen... Deswegen will ich dieses Mal 12.000 und davon 4.000 im Voraus. + + + Hm... da kann ich wahrscheinlich nichts machen. Die Nachfrage ist einfach zu groß. + + + Eine Sturmwaffe. + + + Eine großkalibrige Schnellfeuerwaffe, ich verstehe... Der reguläre Preis liegt bei 20.000 und davon 4.000 im Voraus. Was meinst du? + + + Du bist ein ziemlich schwieriger Kunde. Ich muss 24.000 verlangen und 8.000 davon im Voraus. Einverstanden? + + + Ist im Moment kein guter Zeitpunkt... Das Militär beim Kordon macht Zicken. Ihr Außenposten wurde neulich von irgendjemandem angegriffen, weswegen es noch schwieriger ist, mit ihnen klarzukommen. + + + Ein Scharfschützengewehr. + + + Für nur 20.000 organisiere ich dir das beste Scharfschützengewehr, aber ich brauche 4.000 davon im Voraus. + + + Mit dir Geschäfte zu machen birgt ein gewisses Risiko... Ich kann versuchen, deine Bestellung für 24.000 abzuwickeln, aber nur, wenn du mir 8.000 im Voraus bezahlst. + + + Tut mir leid, aber diese Waffe ist zurzeit schwer zu kriegen. Meine Kontaktperson für Scharfschützenwaffen ist... nennen wir es "verhindert". + + + Einen Kampfanzug. + + + Ja, da fällt mir bestimmt etwas... Passendes ein. Wird dich 40.000 kosten und 8.000 davon brauche ich als Vorauszahlung. + + + Ja, da fällt mir bestimmt etwas... Passendes ein. Du hast dich geweigert, die letzte Lieferung anzunehmen, deswegen kostet dich der Spaß 48.000 und davon 16.000 als Vorauszahlung. + + + Ich kriege nichts Besseres als den Schutzanzug, den ich letztes Mal für dich hatte. Er war einzigartig und hatte eine Top-Qualität. + + + Einen Schutzanzug mit geschlossenem Atemkreislauf. + + + Das ist ja 'ne ganz schöne Bestellung... Wird nicht leicht zu kriegen sein, wirklich nicht... Ich kann versuchen, eines dieser Babys für 30.000 zu besorgen, aber ich muss dich um eine Vorauszahlung in Höhe von 6.000 bitten. + + + Du hast mich bei deiner letzten Bestellung hängenlassen, deswegen muss ich mir das dieses Mal genau überlegen. Ich kann versuchen, eines dieser Babys für 36.000 zu besorgen, aber ich muss dich um eine Vorauszahlung in Höhe von 12.000 bitten. + + + Ich habe mir das letzte Mal den Arsch für deine Bestellung aufgerissen. Du brauchst nicht glauben, dass ich das nochmal mache. + + + Ein Exoskelett. + + + Du hast dir das vorher bestimmt gut überlegt. Ich kann eine Kampfausführung besorgen, aber das wird mit 60.000 nicht ganz billig. Ich weiß, ein ganz schöner Batzen, aber das ist ein Exoskelett auch wert. Vergiss nicht, dass ich 12.000 als Vorauszahlung brauche. + + + Bei der letzten Bestellung hast du dich nicht korrekt verhalten, weswegen ich dieses Mal 72.000 verlange. Vergiss nicht, dass ich 24.000 als Vorauszahlung brauche. + + + Keine Chance. Seit sie die Fabrikanlage geschlossen haben, findet man Exoskelette normalerweise nur noch an Leichen... Das ist einfach nicht mein Ding. + + + Im Moment nichts. + + + Tut mir leid, mein Laden ist zurzeit geschlossen. Vorübergehende Schwierigkeiten bei der Lieferung... + + + Hallo, mein Name ist Nimble. Die Leute kommen zu mir, wenn sie einzigartige Waffen brauchen. Seltene Modelle, Prototypen, außergewöhnliche Schusswaffen - solche Sachen. Außerdem Eliteausrüstung und die modernsten Modifikationen von Schutz- und Kampfanzügen. Ich probiere jeden Artikel persönlich aus und kann deswegen für eine hohe Qualität garantieren. + + + Hallo. Willst du eine Bestellung aufgeben? + + + Hallo. + + + Deine Bestellung wird in Kürze geliefert. + + + Die Bestellung ist eingetroffen. Komm vorbei und hol sie ab. + + + Hey! Bist du der Kumpel von Snag? + + + Ja, ich kenne ihn. + + + Er meinte, du bringst uns Beute... + + + Ich kann mich nicht daran erinnern, das mit ihm besprochen zu haben. + + + Ja, so ist es besser. Wir sind doch nicht so blöd und warten den ganzen Tag auf Snag... + + + Tschüss. + + + Keine Chance! + + + Denk gut nach. Wenn du wenigstens ein bisschen Hirn hast, dann weißt du, dass man mitspielt, wenn man zahlenmäßig unterlegen ist. + + + Ich habe nein gesagt! + + + Nein, ich kenne ihn nicht. + + + Ahh, verdammt! Mich hat's ziemlich schlimm erwischt... Hilf mir, Kumpel, ich brauche ein Medkit... Ich halte nicht mehr lange durch... + + + Hier, nimm dieses Medkit. + + + Puh! Danke, Kumpel. Ich wäre fast in einer Boiler-Anomalie draufgegangen. Die Mutantenhunde hätten heute ihren großen Tag gehabt... Hier, nimm meinen Detektor. Vielleicht kannst du ihn eines Tages brauchen... Ich bin echt dankbar, dass du mir das Leben gerettet hast. Ich glaube, ich mache im Lager erst einmal eine Verschnaufpause. + + + Viel Glück! + + + Puh! Danke, Kumpel. Ich wäre fast draufgegangen. Die Mutantenhunde hätten heute ihren großen Tag gehabt... Hier, nimm dieses Artefakt. Vielleicht kannst du es eines Tages brauchen... Ich bin echt dankbar, dass du mir das Leben gerettet hast. Ich glaube, ich mache im Lager erst einmal eine Verschnaufpause. + + + Ich kann dir keins geben, ich brauche es selbst. + + + Ich habe kein Medkit. + + + Danke nochmal! Ohne dich würde ich jetzt die Radieschen von unten ansehen... + + + Stalker! Schnell, du musst Petrucha helfen! Schau, am Rand des Spalts! Er wurde von einer Anomalie erwischt! Sein Schutzanzug hat überhaupt nichts gebracht! Und ich selbst habe keinen. Petrucha und ich haben unser ganzes Geld zusammengekratzt, um seinen Schutzanzug zu kaufen... Einen Schritt weiter und ich bin erledigt! Bitte hilf uns! + + + OK, bleibt wo ihr seid. Ich versuche es. + + + Kümmert euch selbst darum. + + + Danke, dass du Petrucha gerettet hast. Verdammt, warum haben wir nicht mehr Geld für einen besseren Schutzanzug zusammengespart! + + + Geh mir aus den Augen. Du hast Petrucha sterben lassen... War ein feinerer Kerl, als du jemals sein wirst! + + + Man sieht sich. + + + Ich habe mich um das Lager der Blutsauger gekümmert. + + + Gut. Du hast unsere toten Brüder gerächt - möge Gott ihrer Seelen gnädig sein... Diese Belohnung hast du dir redlich verdient. + + + Ich habe ein ganzes Lager voller Blutsauger unter dem Antennenkomplex entdeckt. + + + Gut. Das Lager muss gesäubert werden. Lass mich nachdenken... Wer weiß, wie viele Blutsauger in diesen Tunneln sind. Vielleicht können wir sie mit giftigem Gas erledigen. Ich erinnere mich daran, dass Uhu mal von irgendwelchen Gasflaschen gesprochen hat. Rede du mit ihm - wir haben kein besonders gutes Verhältnis zueinander... Falls du irgendwie eine der Gasflaschen in die Finger kriegen solltest, befestige sie am Belüftungssystem des Antennenkomplexes. Es sollte dann nur eine Sache von ein paar Minuten sein, bis diese Biester erledigt sind. + + + Gut, ich mach's. + + + Ich werde darüber nachdenken. + + + Ich habe schon eine Gasflasche. + + + Wow, du hast's echt drauf, Kumpel. + + + Ah, da ist unser Stalker. Wir haben schon auf dich gewartet. + + + Um was genau geht es? + + + Wir gehen zu einem Treffen. Für dich wird es da nicht allzu viel zu tun geben, hoffe ich. Steh einfach rum und bleib cool. + + + OK. + + + Hah. Denen haben wir's gezeigt. Kannst gut mit der Waffe umgehen, Stalker. Hier. + + + Viel Glück. + + + Du verdammter Anfänger. Hast 'ne todsichere Sache vermasselt. Verschwinde. + + + Tschüss. + + + Was willst du? + + + Ach nichts. + + + Hat Uhu dich geschickt? + + + Ja. Er meinte, du brauchst Hilfe. + + + Ja, das ist wahr. Ich denke, du kriegst das hin. + + + OK, um was geht es? + + + Fungiere bei einer geschäftlichen Transaktion als Wache. Das war's. + + + Kann ich machen. + + + Bleib in meiner Nähe und gib mir Deckung. + + + Verstanden. + + + Ich rede nur mit dem Boss. + + + Wie du willst. + + + Danke, Stalker. Du warst mir eine große Hilfe. Ich dachte mir schon, dass diese Arschlöcher irgendwie alles vermasseln. Sie wurden auf dem ganzen Weg verfolgt! Hier, das ist für deine Mühen. + + + Viel Glück. + + + Du gibst 'nen guten Nichtstuer ab, aber als Leibwächter taugst du nichts. Ich habe versprochen, dich zu bezahlen, also muss ich wohl in den sauren Apfel beißen. + + + Viel Glück. + + + Du gibst 'nen guten Nichtstuer ab, aber als Leibwächter taugst du nichts. Ich habe versprochen, dich zu bezahlen, also muss ich wohl in den sauren Apfel beißen. + + + Viel Glück. + + + Was willst du? Es gibt nichts, wofür ich dir zu danken habe. Ich hätte es fast nicht geschafft... Zisch ab! + + + Viel Glück. + + + Guter Junge... danke, dass du gekommen bist. Wir wollen uns an die Banditen ranschleichen und mithören. Dann werden wir schon sehen, was passiert. + + + Alles klar. + + + Danke, Stalker. Hier, von uns... Der Barmann hat deine eigentliche Belohnung. + + + Alles klar. + + + Erzähle mir von eurem Leben hier. + + + Ist kein Spaziergang, so viel ist sicher... Was genau willst du wissen? + + + Was macht ihr hier? + + + Wir passen auf Stalker auf. Du musst zugeben, dass gut die Hälfte von euch eher wie Kinder sind und nicht wie echte Kerle. Ihr kommt in die Zone mit irgendwelchen dummen Träumen, oder um den Helden zu spielen - oder einfach, weil das Leben es nicht gut mit euch meint. Euch ist nicht klar, dass euch hier meistens nichts anderes erwartet als der Tod. Und genau um solche Leute kümmern wir uns. Wir finden einen bei der Müllhalde, nehmen ihm seine Sachen weg und schicken ihn zurück zum Kordon. Einige von ihnen haben dann genug und verschwinden zurück in die Welt außerhalb der Zone. Diejenigen, die genug Mumm haben, wieder hierher zurück zu kommen, nehmen wir unter unsere Fittiche - und kassieren von ihnen Steuern. Ich sag dir was: Niemand wagt es, unser Territorium zu betreten - nicht die Armee, nicht die Söldner und nicht einmal Mutanten. + + + Was hat euch in das Zentrum der Zone geführt? + + + Wir sind wegen der Stalker hier, warum sonst? Wenn wir nicht hier wären und für Ordnung sorgen würden, gäbe es hier das reinste Chaos. Du machst Beute, behältst sie, klar, und dann werden Steuern fällig. Steuern für Frieden und Sicherheit, weißt du. Wenn einer von euch eine Anomalie abgrast, behalten wir die Umgebung im Auge und halten euch die Mutanten vom Leib. Läuft alles glatt und ihr habt was in der Anomalie gefunden, nehmen wir uns einen Anteil... eine Art Verwaltungsgebühr sozusagen. + + + Wie wurdest du der Boss? + + + Wo soll ich anfangen... ich denke, das ging schon in der Schule los. Ich hatte einen guten Kumpel, mein bester Freund, sozusagen. Wir sind zusammen rumgehangen, haben geraucht, getrunken usw. Er wollte immer stärkere Kicks und hat dann mit Drogen angefangen. Zuerst ein bisschen Gras, und als er irgendwann Kohle verdient hat, ging es mit Koks und Heroin weiter. "Du solltest den Scheiß lieber bleiben lassen, Toljan, bevor es zu spät ist.", habe ich gesagt. Aber er hat nicht auf mich gehört. Eines Tages hat er schlechtes Zeug erwischt und das war's. Ich habe seine Dealer aufgespürt und für meinen Kumpel mit ihnen abgerechnet... Ich war dafür im Knast, und danach ging's richtig los. Bandenkriege, Messerstechereien und dann wieder Knast... Bin rausgekommen, hab ein Geschäft aufgemacht und bin wieder im Knast gelandet... Als ich wieder raus war, habe ich die ganze Scheiße hinter mir gelassen und wollte in die Zone. Hier habe ich dann ein paar harte Monate hinter mich gebracht und immer mehr an Einfluss gewonnen. Jetzt habe ich hier das Sagen und sorge für Recht und Ordnung. + + + Was hältst du von den Stalkern? + + + Es gibt solche und solche. Einige taugen nichts und überleben nicht länger als eine Woche, andere sind opportunistische Profitjäger... und wieder andere sind ganz in Ordnung - das Leben hat es auf beiden Seiten des Kordons nicht gut mit ihnen gemeint. Die Leichen der ersten durchsuchen wir nach Beute und die zweiten besteuern wir. Und was die dritte Kategorie anbelangt - nun ja, wir versuchen, uns aus dem Weg zu gehen. Dumm nur, dass man sie alle nicht immer auf den ersten Blick unterscheiden kann... + + + Ach, schon gut. + + + Wie du willst. + + + Beard wird jetzt für uns arbeiten. + + + Du weißt, was sie sagen: "Die Kuh gehört uns, also melken wir sie." Statte ihm hin und wieder einen Besuch ab und erinnere ihn daran, seine Gebühr zu bezahlen. + + + Beard hat eine wichtige Bestellung für ein Artefakt namens Kompass erhalten. + + + Wir müssen dafür sorgen, dass wir das Artefakt vor ihm in die Finger kriegen. Beard würde sich für irgendeinen Kleinkram nicht so ins Zeug legen. Mein Bauchgefühl sagt mir, dass er dieses Ding braucht, um seinen Arsch zu retten - also um im Geschäft zu bleiben. Bring mir dieses Kompass-Artefakt, sobald du es gefunden hast. + + + Ich habe das Kompass-Artefakt gefunden. Hier. + + + Ich will nicht für dich nach dem Kompass-Artefakt suchen. + + + Hey, du Trottel, ich will mal eins klarstellen: Wenn du sagst, dass du für etwas zu haben bist, aber mich dann hängen lässt, werde ich danach nicht besonders gut auf dich zu sprechen sein. Und Leute, die ich nicht mag, haben es in der Regel ziemlich schwer. Hast du das kapiert? + + + Ich werde es mir merken. + + + Ich hole mir diese Detektoren von den Stalkern. + + + Gut. Ich kümmere mich in der Zwischenzeit um die anderen Kanäle unseres Auftraggebers. + + + Ein kleiner Vogel hat mir erzählt, dass du Beard ein Kompass-Artefakt gebracht hast. Jetzt hör mir mal gut zu, du Schwachkopf. Wenn du sagst, dass du für etwas zu haben bist, aber mich dann hängen lässt, werde ich danach nicht besonders gut auf dich zu sprechen sein. Und Leute, die ich nicht mag, haben es in der Regel ziemlich schwer. Hast du das kapiert? + + + Ich werde es mir merken. + + + Beard hat jetzt keine aufgemotzten Detektoren. + + + Reizend. Während du weg warst, habe ich mich darum gekümmert, seine anderen Versorgungskanäle zu schließen. Jetzt gehört der Kunde mit Haut und Haaren uns. Geh zu Beard und richte ihm Grüße von Sultan aus. + + + Beard schuldet mir Geld. Uhu meinte, du könntest mir helfen. + + + Ich denke, das kann ich... Das ist mein Plan: Wir treiben Beard in den Ruin und reißen uns dann sein Geschäft unter den Nagel. Du bekommst dein Geld und einen Anteil am Geschäft. Abgemacht? + + + Abgemacht. + + + Du musst jetzt herausfinden, mit wem Beard zurzeit Geschäfte macht. Wenn wir seine Versorgungskanäle schließen, haben wir ein leichtes Spiel. + + + Ich werde darüber nachdenken. + + + Kleine Info: Zu viel Nachdenken ist schlecht für deine Gesundheit. + + + Glaubst du, dass Nimble mit gestohlenen Waren handelt? + + + Nimble? Ne, dazu hat er nicht den Mumm. Uhu ist unser örtlicher Händler, wenn es um heiße Ware geht. Egal was du ihm anbietest, er wird es kaufen, ohne Fragen zu stellen. + + + Ich suche Snag. Hast du eine Idee, wo er sein könnte? + + + Ja, habe ich. Meine Jungs haben ihn vor ein paar Tagen bei den Dockkränen gesehen. Ich sollte ihn mir eigentlich mal vorknöpfen, weil er mir Geld schuldet, aber ich vergesse es dauernd. + + + Ich habe einen Job für dich. Meine Jungs müssen zu einem Händler... geschäftlich, versteht sich. In letzter Zeit geht es in der Zone heiß her, deswegen dachte ich mir, dass ein Mann zusätzlich nicht schaden kann. Sorge dafür, dass die Sache reibungslos über die Bühne geht. + + + OK. + + + Gut. Meine Leute warten auf dich in der Nähe der Forststation. Die Koordinaten sind auf deinem PDA. + + + Alles klar. + + + Kein Interesse. + + + Warum zur Hölle bist du immer noch hier? Beweg deinen Arsch zur Forststation. + + + In Ordnung. + + + Und, hast du dich schon entschieden? Können wir auf dich zählen? + + + Ich bin dabei. + + + Nein. + + + Vergiss nicht, ich bin Sultan. Alles, was du hier siehst, ist entweder unter meiner Kontrolle oder wird es bald sein. Wenn du ein angenehmes Leben haben willst, solltest du für mich arbeiten. Wenn nicht, wird es ungemütlich. So läuft hier der Hase. + + + Was willst du? + + + Was führt dich hierher? + + + Ja? + + + Ich habe alle Stalker getötet. + + + Wow, Kumpel... scheiße, mit dir ist nicht zu spaßen, was? Kommst hierher und machst sie einfach fertig, mannomann. Für was habe ich dich eigentlich angeheuert... Hast uns keine Kohle gebracht, sondern nur Ärger an den Hals gejagt... Komm mal bisschen runter, Mann, hast du gehört... + + + Arbeitest du gerne für die Wissenschaftler? + + + Ist nicht schlecht - bisher gab es nie Probleme. Die Wissenschaftler haben uns Ausrüstung beschafft, insofern läuft es gut. + + + Es läuft ausgezeichnet! Die Arbeit ist einfach und sie bezahlen gut. Und seit wir hier sind, ist noch niemand gekommen und hat Ärger gemacht - nicht einmal die Monster. + + + Ich stelle einen Trupp zusammen und breche dann auf nach Pripyat. Willst du dich uns anschließen? + + + Ne, ich bin nicht wirklich scharf auf Pripyat - im Gegensatz zu manch anderen Leuten... Außerdem haben wir einen Job zu erledigen - wir müssen die Wissenschaftler beschützen... Aber du könntest diesen Typen vom Militär mitnehmen. Dann hat er die Gelegenheit, nach seinen Kameraden zu suchen, und wir hätten unsere Ruhe. Der Kerl ist schon ganz in Ordnung, aber das hier ist nicht der richtige Ort für ihn... + + + Ne, ich bin nicht wirklich scharf auf Pripyat - im Gegensatz zu manch anderen Leuten... Außerdem haben wir einen Job zu erledigen - wir müssen die Wissenschaftler beschützen... + + + Wollt ihr für die Wissenschaftler arbeiten? + + + Um was genau geht es? + + + Ihr müsstet ihren Bunker bewachen. + + + Bewachen also... wäre für uns nicht das erste Mal, einverstanden. Wir machen uns auf zum Bunker, sobald wir bereit sind. + + + Ihr müsstet Messungen in Anomalien vornehmen. + + + Messungen also... Sehe ich etwa aus wie ein Laborfritze? Ist nicht wirklich mein Ding. + + + Reden wir später darüber. Hier treiben im Moment zu viele neue Ganoven ihr Unwesen. Ich muss ihnen erst zeigen, wo's langgeht, und danach denke ich vielleicht über Arbeit nach. + + + In Ordnung, dann wollen wir mal. Denen werden wir ordentlich einheizen! + + + Gut. + + + Wir sollten uns besser in Sicherheit bringen. Die verdammte Emission! + + + Dann wollen wir mal. Denen werden wir ordentlich einheizen! Cool bleiben, wird schon alles glatt laufen. + + + War 'ne nette Schießerei, was? Hier ist das Geld, Kumpel. Ich melde mich, falls es wieder etwas zu "erledigen" gibt. + + + Wow, Kumpel... scheiße, mit dir ist nicht zu spaßen, was? Kommst hierher und machst sie einfach fertig, mannomann. Für was habe ich dich eigentlich angeheuert... Hast uns keine Kohle gebracht, sondern nur Ärger an den Hals gejagt... Komm mal bisschen runter, Mann, hast du gehört... + + + Bist du noch ganz sauber?! Wo waren denn die Stalker?! Was für eine Scheiße ist das denn? Du hast uns verpfiffen, oder? Das kann sonst niemand gewesen sein! Meine Jungs waren zu der Zeit alle in meiner Nähe... Jetzt versohlen wir dir den Hintern, wie wir es bei den Stalkern machen wollten! Was schaust du so blöd? Leere deine Taschen aus, du Arsch! + + + Wir sollten uns auf den Weg machen... zum Schiff. + + + Hey, Meister. Tut mir leid, aber mir ist gerade nicht nach einem Plausch. + + + Ich helfe dir. + + + Gut. Wir arrangieren wie vereinbart das Treffen und du brichst auf. Wenn sie kommen, greifen wir sie von allen Seiten an. Denk daran, Abstand zu halten, damit du nicht von den eigenen Leuten erwischt wirst. + + + OK. + + + Ne, das ist nichts für mich. + + + Hey, Stalker. Ich habe gerade zu tun. Reden wir später, alles klar? + + + Danke für die Warnung. Willst du vielleicht mitmachen? Wäre eine nette Gelegenheit, den Bastarden sozusagen in den Rücken zu fallen. + + + Wir werden diese Dreckskerle hinterrücks überfallen. Sobald es losgeht, eröffnest du von hinten das Feuer. + + + Diese Arschgesichter sind so gut wie tot. Danke für den Tipp. + + + Danke für deine Hilfe. + + + Hör zu. Wenn es nicht dringend ist, lass uns später plaudern, ja? + + + Hallo. + + + Ich habe Magpie gefunden. Er war in der Janow-Station und hat sich dort als ein gewisser "Flint" ausgegeben. Ich habe mich um ihn gekümmert. + + + Um ihn gekümmert? Das ist schade. Ich hätte mich liebend gerne selbst um diese miese Ratte gekümmert... aber was soll's? Dennoch sind das gute Neuigkeiten! Hier, für dich - ich stehe zu meinem Wort. + + + Danke. + + + Ich möchte die Zone verlassen. + + + Sicher? Es gibt keinen Weg zurück. + + + Ich bin mir sicher. Gehen wir. + + + Ich glaube... ich bleibe noch. + + + Gut, nimm das Geld. Ich will keinen Ärger. + + + Hä? Gib mir alles, was du hast, Vollidiot! Und dann verzieh dich besser! + + + Ich gehe. + + + Das kann ich nicht! + + + Mal sehen... deine Gesundheit? Nun, wenn es dir schlecht geht, müsste ich wohl schon so gut wie tot sein... + + + Hör zu, es gibt etwas Dringendes zu erledigen. Ein Händler, den ich kenne, will ein Geschäft abwickeln. Das Problem dabei ist, dass seine Kunden nicht sehr vertrauenswürdig sind. Deswegen will er für den Fall der Fälle einen Leibwächter anheuern. Hättest du Interesse? + + + Ja. + + + Gut. Der Händler wird bei der Forststation auf dich warten. Er wird dir dann die Details erklären. + + + Nein, nicht wirklich. + + + Wie du willst. Wenn du deine Meinung rechtzeitig änderst, könnte der Job noch zu haben sein. + + + Was für Arbeit hast du für mich? + + + Arbeit, die dir zumindest Geld einbringt. Denk mal nach: Warum frage ich dich? Du bist neu hier und kennst niemanden... aber wenn du dich klug verhältst, könntest du dir hier sehr schnell Respekt verschaffen. Willst du wissen, um was es geht? + + + Ja, sicher. + + + OK, dann hör zu. Wir haben vor, ein paar von Beards Stalkern hochzunehmen. Das wird echt ein Kinderspiel. Spät in der Nacht tauchst du mit unseren Männern auf der Schewtschenko auf und noch bevor diese Touristen kapieren, was los ist, haut ihr sie in die Pfanne. Wir kriegen das Geld, du die ganze Ausrüstung... verstehst du? Gut. Siehst du Haxe dort drüben? Er wird dir die ganzen Details erklären. + + + Nicht wirklich. + + + Schade. Lass dir ruhig etwas Zeit und denk darüber nach... du wirst sicher mitmachen, wenn du weißt, was gut für dich ist, Kumpel. + + + Kumpel, ich hab den perfekten Job für dich, wenn du herumkommen willst... soll ich dir verraten, um was es geht? + + + Barges PDA. Ich habe seine Leiche in den Höhlen unter dem abgebrannten Bauernhof gefunden. + + + Ich habe das hier bei ein paar Knochen in der Nähe der Pinieneiche gefunden. Es ist Jokers PDA. + + + Joker? Das ist... unmöglich! Oh Gott... ich bin schockiert! Joker... ist... tot. Oh Joker, wir werden nie wieder über deine Witze lachen... ruhe in Frieden! Ich hoffe, Barge ist wenigstens noch OK... + + + Joker? Das ist... unmöglich! Oh Gott... ich bin schockiert! Joker ist also auch tot... Oh Joker, wir werden nie wieder über deine Witze lachen... ruhe in Frieden! Und du auch, Barge. Wie konnte das nur passieren... + + + Von Barge und Joker. Einen habe ich bei einem Skelett in der Nähe der Pinieneiche gefunden und den anderen bei einer Leiche in den Höhlen unter dem abgebrannten Bauernhof. + + + Um ehrlich zu sein, gibt es nicht viel zu sagen. Emissionen sind hochgefährlich und nahezu immer tödlich. Man kann am wechselnden Wetter spüren, wenn langsam eine Emission im Anmarsch ist, aber wenn sie ihren Höhepunkt erreicht, ebbt sie auch recht schnell wieder ab. Sobald du die ersten Anzeichen einer Emission bemerkst, solltest du dich sofort in Sicherheit bringen - in eine Höhle oder irgendeinen Unterschlupf aus Beton, Ziegelsteinen oder Stahl! Ich z.B. spüre, dass eine Emission naht, wenn mein Rücken anfängt zu schmerzen. Aber über die Ursache der Emissionen selbst kann ich dir nichts sagen... ich habe einfach keine Ahnung. + + + Brauchst du Ausrüstung? Informationen? Oder willst du vielleicht Informationen verkaufen? + + + Sultan sagt, dass du die Stalker ausnehmen willst. Ich bin dabei. + + + Gut. Beweg deinen Arsch nach Mitternacht zur Schewtschenko... wir werden auf dich warten. Aber kreuze dort nicht erst am Morgen auf. + + + Oh, du bist es, Bruder. Also, was hast du mit Sultan besprochen? + + + Also... komm nach Mitternacht - aber vor Sonnenaufgang - zum Schiff. Wir werden auf dich warten. + + + Ich glaube, ich sollte besser bei dir bleiben. Wir warten bis Mitternacht und dann kannst du mir den Weg zur Schewtschenko zeigen. + + + Klar, bleib ruhig hier. Sollte kein Problem sein, dich zum Schiff zu bringen. + + + Eigentlich... habe ich noch etwas zu tun. + + + Außerhalb der Zone habe ich einige wichtige Kunden, die immer wieder ausgewählte Artefakte bestellen. Und die müssen zu vorgegebenen Zeiten geliefert werden. Wenn du mir bringst, was ich brauche, lass ich gutes Geld springen. Aber wie gesagt: Es handelt sich um sehr wichtige Bestellungen und deshalb schicke ich immer mehrere Leute los. Die volle Bezahlung bekommst du nur dann, wenn du auch als Erster lieferst. + + + Über den abgebrannten Bauernhof. Hmm... wer bist du eigentlich? + + + Der Ort wird auch Eisenwald genannt. Der Hubschrauber ist mitten in die Strommasten gerauscht. Keiner der Armeejungs hat überlebt... und selbst wenn sie den Absturz überlebt hätten, wären sie da niemals lebend rausgekommen. Die Poltergeister dort lieben es, die Leute in Elektroanomalien zu hetzen... diese Viecher spüren selbst die kleinste Bewegung, wie du sicher weißt. + + + Hör zu... nachdem der Hubschrauber abgestürzt war, wurden dort fünf Armeetypen gesehen. Offenbar haben sie es auch geschafft, aus dem Sumpf zu entkommen. Es ist kein großes Problem, dorthin zu gelangen, halte dich nur vom Wasser fern und achte darauf, dass du immer festen Boden unter den Füßen hast. Und du wirst auch chemischen Schutz brauchen. Wenn du also vorhast, dorthin zu gehen, geh vorher besser zum Arzt und kauf dir reichlich Gegengift. + + + Echt schade, dass meine Kumpels Joker und Barge nicht hier sind... wir hätten 'ne Menge Spaß. Wir waren wie Brüder, haben immer zusammengehalten. Wie konnte es nur soweit kommen? Ich bin noch hier, aber sie sind verschwunden und nur Gott weiß, wo sie sich herumtreiben... + + + Erzähl mir mehr über Joker und Barge. + + + Ich habe schon etwas von dort. + + + Raus mit der Sprache... hast du etwas für mich? + + + Nun, jetzt verstehe ich. Ich kenne ihn... er war schon immer ein Gauner, aber in letzter Zeit hat er es wirklich übertrieben... die Stalker so zu betrügen... jemand muss ihm seine Grenzen aufzeigen! + + + Ich brauche Informationen aus dem Söldnerlager. Das ist nicht so schwierig, wie es klingt. + + + In Ordnung, ich warte... vergiss aber nicht, dass der Job dringend ist - er muss innerhalb von zwei Tagen erledigt werden. + + + Den PDA von Sultans Boten. + + + Ist nicht besonders interessant. Ich gebe dir 500 dafür. + + + OK. + + + Detektorprototypen. Willst du sie haben? + + + Geheime Dokumente, die ich auf der Brücke beim verlassenen Konvoi gefunden habe. Willst du einen Blick darauf werfen? + + + Ein seltsames Artefakt. Ich habe es beim Baggerschiff gefunden. + + + Ein seltsames Artefakt. Ich habe es in der Nähe der Janow-Station gefunden. + + + Das Artefakt "Herz der Oase". + + + Legen wir los. + + + Halt. + + + Eine Gruppe von Stalkern hat vor, euch zu überfallen. Seid auf der Hut. + + + Miese Ratten! Aber gut, dann werden wir sie gebührend empfangen! Pass auf, lass sie glauben, dass du auf ihrer Seite bist. Wenn du das machst, kannst du uns dabei helfen, den Überfall abzuwehren. Wir werden dich dafür auch belohnen. + + + Es ist mir scheißegal, an was du dich erinnerst. Her damit! + + + OK, bitte sehr. + + + Nicht? Das ist uns verdammt egal. Her damit, Vollidiot! + + + Nur die Ruhe, ist ja schon gut... hier, bitte sehr. + + + Miese Ratten! Aber gut, dann werden wir sie gebührend empfangen! Pass auf, du musst uns gegen diese Typen helfen. Wir werden dich dafür auch belohnen. + + + Denen haben wir's aber gezeigt, was? Du hast nichts geleistet, also kriegst du auch nichts von der Beute ab. Ich lass dich wissen, wenn wir weitere "Geschäfte" zu erledigen haben... + + + Du bist zu nichts zu gebrauchen... also erwarte keine Belohnung. Na ja, immerhin bist du auf ein Schwätzchen vorbeigekommen. + + + Bis dann. + + + Sehr gut! Jetzt können wir unseren lieben Auftraggeber unter Druck setzen. Ich habe gehört, dass Beard seinen Stalkern einige sehr gute Detektoren gegeben hat, mit denen man seltene Artefakte finden kann. Also musst du dich jetzt diesen Stalkern anschließen und dir dann die Detektoren krallen. Wie klingt das für dich? + + + Keine Chance gegen ihn. Ich habe versucht, seine Versorgungswege zu kappen, aber der bärtige Halunke hat es trotzdem geschafft, an ein Kompass-Artefakt zu gelangen. Es sieht also gut für ihn aus... vorerst. + + + [fortfahren...] + + + [fortfahren...] + + + [fortfahren...] + + + Grouse ist tot. Es sieht so aus, als ob Tremor ihn getötet hätte... aber der ist auch tot. + + diff --git a/gamedata/configs/text/ger/st_generate_fnames.xml b/gamedata/configs/text/ger/st_generate_fnames.xml new file mode 100644 index 0000000..e38170b --- /dev/null +++ b/gamedata/configs/text/ger/st_generate_fnames.xml @@ -0,0 +1,492 @@ + + + + Sanek + + + Schurik + + + Wadja + + + Wasjan + + + Wasek + + + Witjucha + + + Wetal + + + Wowan + + + Schorka + + + Grischka + + + Grischko + + + Dimon + + + Lecha + + + Dimucha + + + Scheka + + + Fimka + + + Iljucha + + + Kostjan + + + Mitka + + + Michal + + + Micha + + + Michas + + + Koljan + + + Toljan + + + Pawlucha + + + Saschok + + + Stepka + + + Stepucha + + + Timocha + + + Felka + + + Juras + + + Jaschka + + + Andriucha + + + Tocha + + + Arkascha + + + Temka + + + Borjan + + + Bodja + + + Hauptmann + + + Leutnant + + + Gefreiter + + + Andrei + + + Anton + + + Oleg + + + Roman + + + Aleksandr + + + Sergei + + + Anatoli + + + Juri + + + Bogdan + + + Wenjamin + + + Witali + + + Wladimir + + + Dimitri + + + Iwan + + + Konstantin + + + Alexei + + + Sanja + + + Sanek + + + Arthur + + + Jaschka + + + Jarik + + + Jara + + + Slawa + + + Borja + + + Borka + + + Bogdan + + + Slawik + + + Wadim + + + Wadja + + + Wadik + + + Walik + + + Walera + + + Schurik + + + Wasja + + + Waska + + + Wasko + + + Wenja + + + Witja + + + Witka + + + Witalik + + + Wlad + + + Wowa + + + Wowka + + + Lenja + + + Sewa + + + Sewka + + + Gena + + + Genka + + + George + + + Goscha + + + Schora + + + Mark + + + Gleb + + + Grischa + + + Alex + + + Grischka + + + Grischko + + + Danja + + + Kirjucha + + + Danko + + + Dennis + + + Dima + + + Dimka + + + Dimitro + + + Schenja + + + Leschka + + + Schenka + + + Egor + + + Egorka + + + Fima + + + Wanja + + + Wanka + + + Igorek + + + Ilja + + + Kostja + + + Kostik + + + Tolik + + + Lewa + + + Lenja + + + Ljonka + + + Max + + + Matwei + + + Mitja + + + Mischa + + + Mischka + + + Nikita + + + Nik + + + Anton + + + Kolja + + + Oleg + + + Pascha + + + Paschka + + + Petro + + + Petja + + + Petka + + + Roma + + + Romka + + + Rostik + + + Toschka + + + Rus + + + Sawwa + + + Semjon + + + Sema + + + Serega + + + Rusik + + + Stepan + + + Stepa + + + Tima + + + Timka + + + Artem + + + Fedor + + + Fedja + + + Fedka + + + Filja + + + Filka + + + Edik + + + Jurka + + + Jurik + + + Jurko + + + Jascha + + + Hauptfeldwebel + + + Feldwebel + + diff --git a/gamedata/configs/text/ger/st_generate_snames.xml b/gamedata/configs/text/ger/st_generate_snames.xml new file mode 100644 index 0000000..032e7ff --- /dev/null +++ b/gamedata/configs/text/ger/st_generate_snames.xml @@ -0,0 +1,4836 @@ + + + + Grau + + + Berserker + + + Drecksack + + + Flachkopf + + + Spion + + + Bison + + + Biber + + + Bulldogge + + + Ochse + + + Spatz + + + Specht + + + Bestie + + + Magier + + + Buckel + + + Eber + + + Vogel + + + Sittich + + + Wanze + + + Nark + + + Elch + + + Ratte + + + Boa + + + Laib + + + Kaputt + + + Lang + + + Irrsinn + + + Blitz + + + Klinge + + + Trommel + + + Müll + + + Schraube + + + Dynamit + + + Trumpf + + + Schaufel + + + Joint + + + Tote Hose + + + Kreuz + + + Teer + + + Socke + + + Brecheisen + + + Aspirin + + + Messer + + + Schaft + + + Nickel + + + Frack + + + Tödlich + + + Hocker + + + Schleifstein + + + Ass + + + Meißel + + + Strohhalm + + + Shortstop + + + Schwelle + + + Bolzen + + + Segel + + + Faust + + + Narbe + + + Frosch + + + Hacker + + + Khan + + + Koschei + + + Rambo + + + Reisführer + + + Terminator + + + Tschapaj + + + Dschinghis + + + Banane + + + Laib + + + Schokoriegel + + + Papa + + + Stachel + + + Homeboy + + + Wundbrand + + + Panne + + + Diplom + + + Antilope + + + Fubar + + + Paria + + + Aspik + + + Holzkohle + + + Trumpf + + + Joint + + + Socke + + + Goblin + + + Moor + + + Kühler + + + Flop + + + Ravioli + + + Chili + + + Reibeisen + + + Fettsack + + + Keks + + + Ghul + + + Geizkragen + + + Kaputt + + + Geizhals + + + Silberblick + + + Unhold + + + Krüppel + + + Kicker + + + Schiefe + + + Betrüger + + + Schalter + + + Toupet + + + Wild + + + Kumpel + + + Lokal + + + Schleim + + + Champ + + + Monokel + + + Bengel + + + Schnorrer + + + Heißsporn + + + Blödmann + + + Leiche + + + Psycho + + + Großmaul + + + Zerrissen + + + Raffke + + + Blind + + + Rotz + + + Hipster + + + Met + + + Kadaver + + + Schlitzer + + + Ohr + + + Narr + + + Windhund + + + Lahm + + + Kräftig + + + Krank + + + Connaisseur + + + Robust + + + Kavalier + + + Blutegel + + + Künstler + + + Schwindler + + + Banker + + + Penner + + + Baron + + + Hausierer + + + Unorthodox + + + Landstreicher + + + Matrose + + + Zwerg + + + Bourbon + + + Bourgeois + + + Chauffeur + + + Dieb + + + Rasiert + + + Gangster + + + Bote + + + Graf + + + Tyrann + + + Wilder + + + Würger + + + Ratgeber + + + Spieler + + + Cheater + + + Pate + + + Veteran + + + Coach + + + Bling-bling + + + Wahnsinnig + + + Totengräber + + + Metzger + + + Ninja + + + Henker + + + Punk + + + Guerilla + + + Pazifist + + + Brocken + + + Pirat + + + Brandstifter + + + Prinz + + + Bandit + + + Kamikaze + + + Zuhälter + + + Tyrann + + + Killer + + + Posaune + + + Apotheker + + + Abdurachmanow + + + Altinnik + + + Barsak + + + Kirejew + + + Scherbin + + + Kowaltschuk + + + Koew + + + Koslow + + + Kolontarew + + + Kolontar + + + Kondratenko + + + Korkin + + + Kornejew + + + Baul + + + Krawtschenko + + + Kriwda + + + Kriwochazkij + + + Kusnezow + + + Kusmich + + + Kusjakin + + + Kultschizkij + + + Kunzew + + + Kurwits + + + Kutscheruk + + + Baschakow + + + Kuschnarew + + + Chaladze + + + Lawrik + + + Lawrow + + + Liwschitz + + + Lisitschanskij + + + Litwin + + + Limarenko + + + Masepa + + + Makarenko + + + Baschmakow + + + Malzew + + + Mamajew + + + Merslajew + + + Miltschenko + + + Mironjuk + + + Mohrer + + + Kryga + + + Mostowoj + + + Muntjan + + + Muchmakedow + + + Beschewlij + + + Miskow + + + Nawrozkij + + + Neprizkij + + + Nikanorow + + + Nikeschin + + + Nikulin + + + Futsin + + + Nordiew + + + Nosan + + + Opolew + + + Binoew + + + Orlewitsch + + + Orloff + + + Petkewitsch + + + Petrenko + + + Petrow + + + Plochenkow + + + Podjatschew + + + Poljanin + + + Poplawskij + + + Popow + + + Blinow + + + Portnich + + + Prasolow + + + Prokopenko + + + Proskurin + + + Prozenko + + + Prudow + + + Pustowar + + + Putschek + + + Rabinowitsch + + + Radkewitsch + + + Bobrow + + + Resun + + + Rogosa + + + Rodnijanskij + + + Rotan + + + Rublew + + + Rudik + + + Rusanow + + + Ritschagirskij + + + Sawtschenko + + + Sawtschuk + + + Bogdanow + + + Sagitow + + + Swiridow + + + Sedich + + + Sereda + + + Sidorenko + + + Sidorow + + + Sinij + + + Sinizin + + + Skamejka + + + Sluzkij + + + Bojko + + + Smelow + + + Smolij + + + Sorokin + + + Statsura + + + Stepkin + + + Stischinskij + + + Sikula + + + Tarnawskij + + + Tatartschuk + + + Timtschuk + + + Andreitschuk + + + Bojtschenko + + + Boldeskul + + + Bondarew + + + Borisow + + + Britsch + + + Bronstein + + + Burjak + + + Buturin + + + Bjalo + + + Walentinow + + + Andruschenko + + + Wasiljew + + + Weselow + + + Winogradow + + + Wownenko + + + Wolantschuk + + + Wolodar + + + Woloschin + + + Woronzow + + + Worochajew + + + Wjuschinskij + + + Anisiew + + + Galkin + + + Gansjuk + + + Garkowenko + + + Garkuscha + + + Georgow + + + Glebowskij + + + Gnatjuk + + + Gontscharenko + + + Gordienko + + + Gorlewoj + + + Ardaschew + + + Gorochin + + + Gorjunow + + + Grebenko + + + Gritsajenko + + + Gritsaj + + + Gritsenkow + + + Grischatschew + + + Grischuk + + + Gubar + + + Gunko + + + Babitsch + + + Gurewitsch + + + Denisenko + + + Dowgaljuk + + + Dombrik + + + Dozenko + + + Drosdusch + + + Dubentschuk + + + Dudorow + + + Duka + + + Dumko + + + Balan + + + Dunajew + + + Diklow + + + Erofejew + + + Efremow + + + Schabenko + + + Schmijew + + + Schurakowskij + + + Sabjagoda + + + Sagorodnjuk + + + Samosentschuk + + + Baranow + + + Sarubin + + + Sacharin + + + Swonnizkij + + + Sinowjew + + + Soso + + + Solotar + + + Subarew + + + Subkow + + + Iwanow + + + Ignatenko + + + Baranowskij + + + Ischenko + + + Ischuk + + + Kasakow + + + Kasanzew + + + Kandibabko + + + Kapuka + + + Kapustjanko + + + Kats + + + Kikabidze + + + Gatsula + + + Abdurachmanow + + + Altinnik + + + Barsak + + + Kirejew + + + Scherbin + + + Kowaltschuk + + + Koew + + + Koslow + + + Kolontarew + + + Kolontar + + + Kondratenko + + + Korkin + + + Kornejew + + + Baul + + + Krawtschenko + + + Kriwda + + + Kriwochazkij + + + Kusnezow + + + Kusmich + + + Kusjakin + + + Kultschizkij + + + Kunzew + + + Kurwits + + + Kutscheruk + + + Baschakow + + + Kuschnarew + + + Chaladze + + + Lawrik + + + Lawrow + + + Liwschitz + + + Lisitschanskij + + + Litwin + + + Limarenko + + + Masepa + + + Makarenko + + + Baschmakow + + + Malzew + + + Mamajew + + + Merslajew + + + Miltschenko + + + Mironjuk + + + Mohrer + + + Kryga + + + Mostowoj + + + Muntjan + + + Muchmakedow + + + Beschewlij + + + Miskow + + + Nawrozkij + + + Neprizkij + + + Nikanorow + + + Nikeschin + + + Nikulin + + + Futsin + + + Nordiew + + + Nosan + + + Opolew + + + Binoew + + + Orlewitsch + + + Orloff + + + Petkewitsch + + + Petrenko + + + Petrow + + + Plochenkow + + + Podjatschew + + + Poljanin + + + Poplawskij + + + Popow + + + Blinow + + + Portnich + + + Prasolow + + + Prokopenko + + + Proskurin + + + Prozenko + + + Prudow + + + Pustowar + + + Putschek + + + Rabinowitsch + + + Radkewitsch + + + Bobrow + + + Resun + + + Rogosa + + + Rodnijanskij + + + Rotan + + + Rublew + + + Rudik + + + Rusanow + + + Ritschagirskij + + + Sawtschenko + + + Sawtschuk + + + Bogdanow + + + Sagitow + + + Swiridow + + + Sedich + + + Sereda + + + Sidorenko + + + Sidorow + + + Sinij + + + Sinizin + + + Skamejka + + + Sluzkij + + + Bojko + + + Smelow + + + Smolij + + + Sorokin + + + Statsura + + + Stepkin + + + Stischinskij + + + Sikula + + + Tarnawskij + + + Tatartschuk + + + Timtschuk + + + Andreitschuk + + + Bojtschenko + + + Boldeskul + + + Bondarew + + + Borisow + + + Britsch + + + Bronstein + + + Burjak + + + Buturin + + + Bjalo + + + Walentinow + + + Andruschenko + + + Wasiljew + + + Weselow + + + Winogradow + + + Wownenko + + + Wolantschuk + + + Wolodar + + + Woloschin + + + Woronzow + + + Worochajew + + + Wjuschinskij + + + Anisiew + + + Galkin + + + Gansjuk + + + Garkowenko + + + Garkuscha + + + Georgow + + + Glebowskij + + + Gnatjuk + + + Gontscharenko + + + Gordienko + + + Gorlewoj + + + Ardaschew + + + Gorochin + + + Gorjunow + + + Grebenko + + + Gritsajenko + + + Gritsaj + + + Gritsenkow + + + Grischatschew + + + Grischuk + + + Gubar + + + Gunko + + + Babitsch + + + Gurewitsch + + + Denisenko + + + Dowgaljuk + + + Dombrik + + + Dozenko + + + Drosdusch + + + Dubentschuk + + + Dudorow + + + Duka + + + Dumko + + + Balan + + + Dunajew + + + Diklow + + + Erofejew + + + Efremow + + + Schabenko + + + Schmijew + + + Schurakowskij + + + Sabjagoda + + + Sagorodnjuk + + + Samosentschuk + + + Baranow + + + Sarubin + + + Sacharin + + + Swonnizkij + + + Sinowjew + + + Soso + + + Solotar + + + Subarew + + + Subkow + + + Iwanow + + + Ignatenko + + + Baranowskij + + + Ischenko + + + Ischuk + + + Kasakow + + + Kasanzew + + + Kandibabko + + + Kapuka + + + Kapustjanko + + + Kats + + + Kikabidze + + + Gatsula + + + Abdurachmanow + + + Altinnik + + + Barsak + + + Kirejew + + + Scherbin + + + Kowaltschuk + + + Koew + + + Koslow + + + Kolontarew + + + Kolontar + + + Kondratenko + + + Korkin + + + Kornejew + + + Baul + + + Krawtschenko + + + Kriwda + + + Kriwochazkij + + + Kusnezow + + + Kusmich + + + Kusjakin + + + Kultschizkij + + + Kunzew + + + Kurwits + + + Kutscheruk + + + Baschakow + + + Kuschnarew + + + Chaladze + + + Lawrik + + + Lawrow + + + Liwschitz + + + Lisitschanskij + + + Litwin + + + Limarenko + + + Masepa + + + Makarenko + + + Baschmakow + + + Malzew + + + Mamajew + + + Merslajew + + + Miltschenko + + + Mironjuk + + + Mohrer + + + Kryga + + + Mostowoj + + + Muntjan + + + Muchmakedow + + + Beschewlij + + + Miskow + + + Nawrozkij + + + Neprizkij + + + Nikanorow + + + Nikeschin + + + Nikulin + + + Futsin + + + Nordiew + + + Nosan + + + Opolew + + + Binoew + + + Orlewitsch + + + Orloff + + + Petkewitsch + + + Petrenko + + + Petrow + + + Plochenkow + + + Podjatschew + + + Poljanin + + + Poplawskij + + + Popow + + + Blinow + + + Portnich + + + Prasolow + + + Prokopenko + + + Proskurin + + + Prozenko + + + Prudow + + + Pustowar + + + Putschek + + + Rabinowitsch + + + Radkewitsch + + + Bobrow + + + Resun + + + Rogosa + + + Rodnijanskij + + + Rotan + + + Rublew + + + Rudik + + + Rusanow + + + Ritschagirskij + + + Sawtschenko + + + Sawtschuk + + + Bogdanow + + + Sagitow + + + Swiridow + + + Sedich + + + Sereda + + + Sidorenko + + + Sidorow + + + Sinij + + + Sinizin + + + Skamejka + + + Sluzkij + + + Bojko + + + Smelow + + + Smolij + + + Sorokin + + + Statsura + + + Stepkin + + + Stischinskij + + + Sikula + + + Tarnawskij + + + Tatartschuk + + + Timtschuk + + + Andreitschuk + + + Bojtschenko + + + Boldeskul + + + Bondarew + + + Borisow + + + Britsch + + + Bronstein + + + Burjak + + + Buturin + + + Bjalo + + + Walentinow + + + Andruschenko + + + Wasiljew + + + Weselow + + + Winogradow + + + Wownenko + + + Wolantschuk + + + Wolodar + + + Woloschin + + + Woronzow + + + Worochajew + + + Wjuschinskij + + + Anisiew + + + Galkin + + + Gansjuk + + + Garkowenko + + + Garkuscha + + + Georgow + + + Glebowskij + + + Gnatjuk + + + Gontscharenko + + + Gordienko + + + Gorlewoj + + + Ardaschew + + + Gorochin + + + Gorjunow + + + Grebenko + + + Gritsajenko + + + Gritsaj + + + Gritsenkow + + + Grischatschew + + + Grischuk + + + Gubar + + + Gunko + + + Babitsch + + + Gurewitsch + + + Denisenko + + + Dowgaljuk + + + Dombrik + + + Dozenko + + + Drosdusch + + + Dubentschuk + + + Dudorow + + + Duka + + + Dumko + + + Balan + + + Dunajew + + + Diklow + + + Erofejew + + + Efremow + + + Schabenko + + + Schmijew + + + Schurakowskij + + + Sabjagoda + + + Sagorodnjuk + + + Samosentschuk + + + Baranow + + + Sarubin + + + Sacharin + + + Swonnizkij + + + Sinowjew + + + Soso + + + Solotar + + + Subarew + + + Subkow + + + Iwanow + + + Ignatenko + + + Baranowskij + + + Ischenko + + + Ischuk + + + Kasakow + + + Kasanzew + + + Kandibabko + + + Kapuka + + + Kapustjanko + + + Kats + + + Kikabidze + + + Gatsula + + + Sinaew + + + Feigelmann + + + Ledenzow + + + Alferow + + + Antipin + + + Blinow + + + Bogomolow + + + Wasilewitsch + + + Geschkenbein + + + Djakonow + + + Erochin + + + Sajikin + + + Sacharow + + + Iwtschenko + + + Kabanow + + + Larin + + + Manko + + + Mironow + + + Stepanenko + + + Oganesjan + + + Tschernodub + + + Schilow + + + Tschirikow + + + Beljawin + + + Fadejew + + + Steklow + + + Andrejew + + + Spirin + + + Balizkij + + + Abdurachmanow + + + Altinnik + + + Barsak + + + Kirejew + + + Scherbin + + + Kowaltschuk + + + Koew + + + Koslow + + + Kolontarew + + + Kolontar + + + Kondratenko + + + Korkin + + + Kornejew + + + Baul + + + Krawtschenko + + + Kriwda + + + Kriwochazkij + + + Kusnezow + + + Kusmich + + + Kusjakin + + + Kultschizkij + + + Kunzew + + + Kurwits + + + Kutscheruk + + + Baschakow + + + Kuschnarew + + + Chaladze + + + Lawrik + + + Lawrow + + + Liwschitz + + + Lisitschanskij + + + Litwin + + + Limarenko + + + Masepa + + + Makarenko + + + Baschmakow + + + Malzew + + + Mamajew + + + Merslajew + + + Miltschenko + + + Mironjuk + + + Mohrer + + + Kryga + + + Mostowoj + + + Muntjan + + + Muchmakedow + + + Beschewlij + + + Miskow + + + Nawrozkij + + + Neprizkij + + + Nikanorow + + + Nikeschin + + + Nikulin + + + Futsin + + + Nordiew + + + Nosan + + + Opolew + + + Binoew + + + Orlewitsch + + + Orloff + + + Petkewitsch + + + Petrenko + + + Petrow + + + Plochenkow + + + Podjatschew + + + Poljanin + + + Poplawskij + + + Popow + + + Blinow + + + Portnich + + + Prasolow + + + Prokopenko + + + Proskurin + + + Prozenko + + + Prudow + + + Pustowar + + + Putschek + + + Rabinowitsch + + + Radkewitsch + + + Bobrow + + + Resun + + + Rogosa + + + Rodnijanskij + + + Rotan + + + Rublew + + + Rudik + + + Rusanow + + + Ritschagirskij + + + Sawtschenko + + + Sawtschuk + + + Bogdanow + + + Sagitow + + + Swiridow + + + Sedich + + + Sereda + + + Sidorenko + + + Sidorow + + + Sinij + + + Sinizin + + + Skamejka + + + Sluzkij + + + Bojko + + + Smelow + + + Smolij + + + Sorokin + + + Statsura + + + Stepkin + + + Stischinskij + + + Sikula + + + Tarnawskij + + + Tatartschuk + + + Timtschuk + + + Andreitschuk + + + Bojtschenko + + + Boldeskul + + + Bondarew + + + Borisow + + + Britsch + + + Bronstein + + + Burjak + + + Buturin + + + Bjalo + + + Walentinow + + + Andruschenko + + + Wasiljew + + + Weselow + + + Winogradow + + + Wownenko + + + Wolantschuk + + + Wolodar + + + Woloschin + + + Woronzow + + + Worochajew + + + Wjuschinskij + + + Anisiew + + + Galkin + + + Gansjuk + + + Garkowenko + + + Garkuscha + + + Georgow + + + Glebowskij + + + Gnatjuk + + + Gontscharenko + + + Gordienko + + + Gorlewoj + + + Ardaschew + + + Gorochin + + + Gorjunow + + + Grebenko + + + Gritsajenko + + + Gritsaj + + + Gritsenkow + + + Grischatschew + + + Grischuk + + + Gubar + + + Gunko + + + Babitsch + + + Gurewitsch + + + Denisenko + + + Dowgaljuk + + + Dombrik + + + Dozenko + + + Drosdusch + + + Dubentschuk + + + Dudorow + + + Duka + + + Dumko + + + Balan + + + Dunajew + + + Diklow + + + Erofejew + + + Efremow + + + Schabenko + + + Schmijew + + + Schurakowskij + + + Sabjagoda + + + Sagorodnjuk + + + Samosentschuk + + + Baranow + + + Sarubin + + + Sacharin + + + Swonnizkij + + + Sinowjew + + + Soso + + + Solotar + + + Subarew + + + Subkow + + + Iwanow + + + Ignatenko + + + Baranowskij + + + Ischenko + + + Ischuk + + + Kasakow + + + Kasanzew + + + Kandibabko + + + Kapuka + + + Kapustjanko + + + Kats + + + Kikabidze + + + Gatsula + + + Weiß + + + Grün + + + Unsterblich + + + Rostig + + + Romantiker + + + Grausam + + + Muskelpaket + + + Schwätzer + + + Blind + + + Tapfer + + + Rotz + + + Debatter + + + Oldtimer + + + Berserker + + + Hipster + + + Met + + + Grimm + + + Niete + + + Trocken + + + Glückspilz + + + Sprenkel + + + Fettsack + + + Bauch + + + Kadaver + + + Kaputt + + + Klugscheißer + + + Schlitzer + + + Ohr + + + Vermummter + + + Narr + + + Lahm + + + Kräftig + + + Knochen + + + Zyniker + + + Typ + + + Heiter + + + Krank + + + Alarm + + + Connaisseur + + + Robust + + + Anfänger + + + Eingeborener + + + Aviator + + + Agent + + + Kavalier + + + Blutegel + + + Kumpel + + + Jünger + + + Künstler + + + Asket + + + Schwindler + + + Banker + + + Barde + + + Baron + + + Hausierer + + + Unorthodox + + + Jogger + + + Athlet + + + Kämpfer + + + Landstreicher + + + Matrose + + + Zwerg + + + Bourbon + + + Bourgeois + + + Bürokrat + + + Vandale + + + Barbar + + + Pförtner + + + Besserwisser + + + Hexer + + + Besucher + + + Wikinger + + + Chauffeur + + + Taucher + + + Chief + + + Dieb + + + Reisender + + + Seelenklempner + + + Reiter + + + Großmaul + + + Gangster + + + Geologe + + + Gladiator + + + Bote + + + Gast + + + Graf + + + Portier + + + Raffke + + + Überläufer + + + Verkäufer + + + Windhund + + + Dandy + + + Vertreter + + + Tyrann + + + Wilder + + + Diplomat + + + Doc + + + Doktor + + + Professor + + + Würger + + + Wärter + + + Penner + + + Ratgeber + + + Ack-ack + + + Quacksalber + + + Spieler + + + Indianer + + + Irokese + + + Hauptmann + + + Cheater + + + Clown + + + Herzog + + + Rot + + + Rasiert + + + Kosak + + + Koch + + + Magier + + + Komantsche + + + König + + + Pate + + + Händler + + + Raucher + + + Kurier + + + Coach + + + Veteran + + + Legionär + + + Heiler + + + Förster + + + Lord + + + Magnat + + + Bling-bling + + + Wahnsinnig + + + Mars + + + Steinmetz + + + Mechaniker + + + Großer + + + Totengräber + + + Moderator + + + Milchmann + + + Metzger + + + Söldner + + + Empfänger + + + Boss + + + Ninja + + + Operator + + + Waffenschmied + + + Glücklich + + + Schah + + + Henker + + + Polkan + + + Punk + + + Daddy + + + Guerilla + + + Pastor + + + Hirte + + + Alter + + + Pflüger + + + Glücklicher + + + Pazifist + + + Transporter + + + Pfiff + + + Pilot + + + Pionier + + + Pirat + + + Schreiner + + + Brandstifter + + + Feuerwehr + + + Slipper + + + Bohnenstange + + + Frost + + + Botschafter + + + Postbote + + + Poet + + + Prinz + + + Prophet + + + Professor + + + Springer + + + Imker + + + Maultier + + + Loyal + + + Rabbi + + + Funken + + + Bandit + + + Rasta + + + Wärter + + + Rocker + + + Bergarbeiter + + + Samurai + + + Minensucher + + + Pfleger + + + Glotzer + + + Priester + + + Sekretär + + + Gigolo + + + Scham + + + Skythe + + + Pfadfinder + + + Maschinist + + + Kamikaze + + + Brüter + + + Lebensretter + + + Brocken + + + Sportsmann + + + Fremder + + + Student + + + Richter + + + Giftpilz + + + Zuhälter + + + Erbsenzähler + + + Soldat + + + Tänzer + + + Tyrann + + + Drecksack + + + Feilscher + + + Wischer + + + Kehrer + + + Volksmensch + + + Tourist + + + Killer + + + Posaune + + + Quarterback + + + Schütze + + + Apotheker + + + Rostig + + + Verbal + + + Flachkopf + + + Maler + + + Schafhirt + + + Schamane + + + Bergmann + + + Bergbauer + + + Sheriff + + + Chief + + + Gelehrter + + + Fahrer + + + Buckel + + + Spion + + + Elektriker + + + Kadett + + + Heide + + + Alligator + + + Anakonda + + + Trottel + + + Bison + + + Biber + + + Mantis + + + Stolz + + + Bulldogge + + + Hörnchen + + + Ochse + + + Grice + + + Spatz + + + Rabe + + + Bisam + + + Wegerich + + + Aasfresser + + + Betrüger + + + Bitter + + + Manul + + + Gans + + + Delfin + + + Dinosaurier + + + Drossel + + + Specht + + + Igel + + + Käfer + + + Feldhase + + + Bestie + + + Donner + + + Magier + + + Aurochs + + + Truthahn + + + Eber + + + Vogel + + + Sittich + + + Wanze + + + Kobra + + + Moskito + + + Hengst + + + Grobian + + + Katze + + + Kroko + + + Heuschrecke + + + Nark + + + Elch + + + Mammut + + + Elefant + + + Erreger + + + Mücke + + + Ameise + + + Lang + + + Nervtöter + + + Spinne + + + Ratte + + + Pilger + + + Piranha + + + Python + + + Feldhase + + + Eule + + + Falke + + + Murmeltier + + + Weichling + + + Gopher + + + Fisch + + + Kakerlake + + + Tarantel + + + Hamster + + + Boa + + + Eule + + + Frettchen + + + Wurm + + + Bergmann + + + Tote Hose + + + Absolut + + + Anomalie + + + Prellbock + + + Laib + + + Kaputt + + + Irrsinn + + + Feuerball + + + Blitz + + + Klinge + + + Trommel + + + Hocker + + + Donut + + + Vakuum + + + Müll + + + Kiesel + + + Lüfter + + + Beil + + + Wind + + + Schraube + + + Kragen + + + Nagel + + + Rotschopf + + + Frosch + + + Kassette + + + Globus + + + Brocken + + + Granate + + + Nebel + + + Sarg + + + Sommerzeit + + + Motor + + + Dynamit + + + Loch + + + Schokoriegel + + + Legal + + + Schloss + + + Hintern + + + Isotop + + + Felsen + + + Falle + + + Zauberer + + + Karma + + + Ziegel + + + Kleber + + + Fiesling + + + Schlüssel + + + Peitsche + + + Trumpf + + + Kappe + + + Baumspalter + + + Whiskey + + + Wurzel + + + Sense + + + All + + + Schaufel + + + Gestrüpp + + + Joint + + + Kreuz + + + Teer + + + Trigger + + + Socke + + + Brecheisen + + + Maschine + + + Ziel + + + Motor + + + Pumpe + + + Eisen + + + Nachtvogel + + + Flinte + + + Aspirin + + + Fallschirm + + + Rund + + + Fünf + + + Messer + + + Schaft + + + Knete + + + Schwarzpulver + + + Hardware + + + Nickel + + + Rocker + + + Rack + + + Reaktor + + + Hacke + + + Sieb + + + Frack + + + Roboter + + + Hirsch + + + Spaten + + + Holzkohle + + + Mondschein + + + Stiefel + + + Cider + + + Tödlich + + + Schnaps + + + Furche + + + Fass + + + Brust + + + Axt + + + Hintern + + + Flink + + + Schleifstein + + + Ass + + + Knoten + + + Faktor + + + Lampe + + + Meißel + + + Juni + + + Knoblauch + + + Strohhalm + + + Chance + + + Fettsack + + + Shortstop + + + Dorn + + + Schrank + + + Schwelle + + + Schabe + + + Düse + + + Stab + + + Bolzen + + + Schraube + + + Segel + + + Geizkragen + + + Hirni + + + Reißzahn + + + Klaue + + + Knochen + + + Faust + + + Nerv + + + Skelett + + + Schwanz + + + Kranz + + + Narbe + + + Grau + + + Geizhals + + + Hacker + + + Khan + + + Athlet + + + Pinocchio + + + Hexer + + + Voldemort + + + Tauber + + + Drache + + + Donner + + + Gioconda + + + Silberblick + + + Nudel + + + Blechkopf + + + Ikarus + + + Casanova + + + Koschei + + + Kaiser + + + Kloß + + + Kutusow + + + Kleiner + + + Bonaparte + + + Denker + + + Nelson + + + Neptun + + + Oskar + + + Prometheus + + + Puschkin + + + Freitag + + + Rambo + + + Roquefort + + + Reisführer + + + Terminator + + + Depp + + + Tinte + + + Kaiser + + + Tschapajew + + + Tschapaj + + + Tschebur + + + Tscheburaschka + + + Chingachgook + + + Dschinghis + + + Stirlitz + + + Banane + + + Habicht + + + Heinzel + + + Laib + + + Papa + + + Stachel + + + Homeboy + + + Bulkin + + + Bulldozer + + + Puffer + + + Knödel + + + Whist + + + Säbel + + + Wundbrand + + + Hybrid + + + Panne + + + Trommler + + + Highlander + + + Diplom + + + Kobold + + + Antilope + + + Onkel + + + Fubar + + + Fröstel + + + Paria + + + Kagor + + + Kohl + + + Karbid + + + Aspik + + + Trumpf + + + Kommodore + + + König + + + Joint + + + Socke + + + Unhold + + + Eis + + + Goblin + + + Moor + + + Madera + + + Spaghetti + + + Meister + + + Mutant + + + Kühler + + + Flop + + + Teich + + + Krüppel + + + Schnüffler + + + Ravioli + + + Chili + + + Gurt + + + Mehlkloß + + + Blase + + + Reibeisen + + + Bohrer + + + Rijasanskij + + + Mondschein + + + Krüppel + + + Morchel + + + Keks + + + Tabak + + + Zeitplan + + + Ass + + + Zucchini + + + Ghul + + + Posaune + + + Phantom + + + Stunt + + + Grau + + + Kicker + + + Koma + + + Schiefe + + + Plump + + + Rückgrat + + + Betrüger + + + Regenbogen + + + Schalter + + + Busch + + + Toupet + + + Sinij + + + Kriecher + + + Wild + + + Kleiner + + + Steif + + + Nekro + + + Lokal + + + Grab + + + Schleim + + + Champ + + + Narziss + + + Black + + + Lax + + + Versager + + + Albern + + + Ärgernis + + + Heulsuse + + + Monokel + + + Bengel + + + Schnorrer + + + Paranoia + + + Heißsporn + + + Teflon + + + Räuber + + + Blödmann + + + Leiche + + + Rechtschaffen + + + Einfaltspinsel + + + Psycho + + + Maultier + + + Zerrissen + + + Raffke + + + Harsch + + diff --git a/gamedata/configs/text/ger/st_items_artefacts.xml b/gamedata/configs/text/ger/st_items_artefacts.xml new file mode 100644 index 0000000..e347653 --- /dev/null +++ b/gamedata/configs/text/ger/st_items_artefacts.xml @@ -0,0 +1,153 @@ + + + + Dieses Artefakt ist eine Verbindung aus hohlen, organischen Strukturen. Es erzeugt eine gasartige Substanz, die radioaktive Partikel im Körper neutralisieren kann, ohne ihm Schaden zuzufügen. Aufgrund der großen Wirkung ist die Nachfrage nach diesem Artefakt enorm. + + + Blase + + + Eine rötliche Anordnung von gepressten und verformten versteinerten Pflanzen-, Erd- und Tierablagerungen. Das Artefakt kann chemische Gifte teilweise neutralisieren. Es ist strahlungsaktiv. + + + Steinblut + + + Dieses Artefakt entsteht in Anomaliezonen mit intensiver thermischer Aktivität. Es absorbiert erhöhte Hitze und bleibt selbst dennoch kühl. Es ist strahlungsaktiv. + + + Dieses Artefakt besteht aus granitartigem Stein, der von gewaltigen Gravitationskräften verformt wurde. Die kristalline Struktur, die daraus resultiert, konnte bisher wissenschaftlich nicht erklärt werden. Das Artefakt bietet durchschnittlichen Schutz vor Psi-Emissionen und ist radioaktiv. + + + Steinblume + + + Kristall + + + Dieses Artefakt weist elektrostatische Elemente auf, doch Wissenschaftler konnten die genauen physikalischen Bedingungen, die für die Entstehung notwendig sind, bisher nicht vollständig entschlüsseln. Das Artefakt ist in der Zone beliebt und wird für seine energiespendenden Eigenschaften geschätzt, auch wenn es den Körper bei übermäßigem Gebrauch ermüden kann. Es ist strahlungsaktiv. + + + Batterie + + + Dieses Artefakt hat man für nutzlosen Schrott gehalten. Allerdings haben Wissenschaftler vor kurzem herausgefunden, dass es eine hervorragende belebende Wirkung auf das Nervensystem hat. Es ist strahlungsaktiv. + + + Muschel + + + Viele Aspekte dieses Artefakts stellen die Wissenschaftler noch immer vor ein Rätsel. Die Emissionen, die durch Impulse in ihren dickeren Teilen erzeugt werden, lassen das Blut an offenen Wunden schneller gerinnen und damit eine Schutzschicht bilden; dadurch wird die Wundheilung beschleunigt. Das Artefakt ist strahlungsaktiv. + + + Mamas Perlen + + + Dieses Artefakt ist ein starkes Absorbens für elektrischen Strom, den es später in Form von Entladungen wieder freisetzt. Blitz kann seinen Träger vor Spannungen von bis zu 5.000 Volt schützen, ist allerdings strahlungsaktiv. + + + Blitz + + + Das einzigartige elektrostatische Artefakt kann unter der Wirkung von Psi-Wellen in Schwingung geraten. Stalker haben einen Weg gefunden, das Artefakt so einzustellen, dass es gegenphasig zu Quellen von Emissionen schwingt und damit ihre Wirkung vollständig oder zumindest erheblich neutralisiert. Es ist strahlungsaktiv. + + + Mondlicht + + + Der Funkensprüher ist ein heller Vertreter der elektrostatischen Artefaktfamilie und kann Schwankungen in elektrischen Feldern ausgleichen. Das Artefakt ist strahlungsaktiv. + + + Funkensprüher + + + Dieses Artefakt erinnert entfernt an ein menschliches Auge. Es verbessert den Metabolismus des Körpers enorm und beschleunigt damit die Wundheilung. Erfahrene Stalker behaupten zudem, dass Auge Glück bringen soll. Das Artefakt ist strahlungsaktiv. + + + Auge + + + Dieses seltene Artefakt kommt in Gebieten mit hoher thermischer Aktivität vor. Es sendet eine starke Infrarotstrahlung aus, wodurch es den Metabolismus des Trägers verbessert und damit Wunden buchstäblich auf der Stelle verheilen lässt. Ein äußerst seltenes und daher extrem wertvolles Artefakt, das aber strahlungsaktiv ist. + + + Flamme + + + Obwohl Feuerball ein Wärmeartefakt ist, muss man keine Angst haben, sich daran zu verbrennen. Es wird dafür geschätzt, dass es die Temperatur nahezu unabhängig von äußeren Umständen in einem kleinen Umkreis permanent auf 75 Grad halten kann. Das Artefakt ist strahlungsaktiv. + + + Feuerball + + + Ein relativ seltenes Artefakt, das in chemisch kontaminierten Gebieten vorkommt. Es wird besonders für seine Eigenschaft geschätzt, jede Art von Wunde in wenigen Minuten heilen zu können. Aus unbekannten Gründen streuen Wissenschaftler das Gerücht, dass sich das Artefakt auf die Gene seiner Träger auswirkt. Es ist strahlungsaktiv. + + + Kloß + + + Feuerfliege + + + Goldfisch ist das Ergebnis der erhöhten Wechselwirkung von zwei Gravitationsfeldern. Daher kann dieses Artefakt selbst ein starkes, gerichtetes Gravitationsfeld erzeugen und damit das Gewicht von Gegenständen in seiner Umgebung auf ein Minimum senken. Das erhöht die Tragekapazität der Stalker enorm und ist auch der Grund, warum dieses Artefakt sehr gefragt ist. Es ist strahlungsaktiv. + + + Goldfisch + + + Gravit besteht aus metallischen Substanzen, die erhöhter Gravitation ausgesetzt waren. Dadurch ist das Artefakt in der Lage, ein Antigravitationsfeld zu erzeugen, das vielen Stalkern dabei hilft, größere Lasten als üblich zu tragen. Das Artefakt ist strahlungsaktiv. + + + Gravit + + + Auf den ersten Blick erinnert dieses Artefakt an Kloß, manch einer behauptet sogar, dass es Kloß ist, lediglich mit gesteigerten Eigenschaften, weil es einem starken elektrischen Feld ausgesetzt war. Durch einzigartige Eigenschaften erhöht Schneeflocke erheblich den Muskeltonus des Trägers. Das Artefakt ist strahlungsaktiv. + + + Schneeflocke + + + Dieses Gravitationsartefakt absorbiert radioaktive Partikel und vermindert dadurch Strahlungsschäden am Körper. Es ist in der Zone weit verbreitet und wird - inoffiziell - auch außerhalb der Zone bei der Behandlung von schwerwiegenden akuten Strahlenerkrankungen eingesetzt. + + + Qualle + + + Dieses organische Artefakt besteht aus versteinertem mutiertem Tiergewebe. In chemisch kontaminierter Umgebung wandelt es die chemischen Stoffe in der Luft in eine schleimige Flüssigkeit um. Es ist strahlungsaktiv. + + + Fleischklumpen + + + Dieses leuchtende Artefakt kann die Gravitation in einem begrenzten, lokalen Bereich senken. Es wird von Stalkern häufig zusammen mit Gravit, einem ähnlichen Artefakt, benutzt, um die maximale Tragekapazität zu erhöhen. Das Artefakt ist strahlungsaktiv. + + + Nachtstern + + + Ein einzigartiges organisches Artefakt mit einzigartigen Eigenschaften. Auf bisher ungeklärte Art und Weise verbessert es die allgemeine Regenerationsfähigkeit des menschlichen Körpers, ohne die Anreicherung von Toxinen zu verstärken. Dank eines vertretbaren Preises und des ansprechenden Aussehens gilt dieses Artefakt als ein begehrtes Sammlerobjekt. Es ist strahlungsaktiv. + + + Seele + + + Dieses seltsam geformte Artefakt kommt an Orten mit erhöhter Gravitation vor. Es wirkt wie eine Art Schwamm und absorbiert radioaktive Elemente. Dadurch schützt das Artefakt sowohl vor äußerer Strahlung als auch vor radioaktiven Partikeln, die sich bereits im Körper befinden. + + + Gepresstes + + + Kompass + + + Ein seltenes Artefakt - es ist schon einige Jahre her, seit eines davon gefunden wurde. Es kann Lücken in Anomaliefeldern aufspüren. Mit diesem Artefakt, so heißt es, kann man die kompliziertesten Anomaliefelder unbeschadet durchqueren. Allerdings wissen nur die Wenigsten, wie man richtig mit dem Kompass-Artefakt umgeht. + + + Herz der Oase + + + Dieses Artefakt wurde im Zentrum der legendären Oase gefunden. Offenbar ist es eine kristallisierte Pflanze, die die heilenden Kräfte der Oase übernommen hat. Im Gegensatz zur Oase ist dieses Artefakt jedoch extrem radioaktiv. + + + Feuerfliege interagiert mit Feldern, die bisher wissenschaftlich unbekannt sind. Dadurch werden die Regeneration von Gewebe und Organen in Lebewesen sowie die Normalisierung metabolischer Prozesse beschleunigt. Mit diesem Artefakt kann ein schwer verletzter Stalker buchstäblich in Sekunden wieder auf die Beine kommen. Leider kommt Feuerfliege äußerst selten vor; darüber hinaus ist das Artefakt strahlungsaktiv. + + diff --git a/gamedata/configs/text/ger/st_items_equipment.xml b/gamedata/configs/text/ger/st_items_equipment.xml new file mode 100644 index 0000000..81373e2 --- /dev/null +++ b/gamedata/configs/text/ger/st_items_equipment.xml @@ -0,0 +1,156 @@ + + + + Antistrahlenmedikament + + + Das Strahlenschutzmedikament Mexaminum ist nicht unüblich in der Zone. Es sorgt bei der Einnahme dafür, dass sich die peripheren Blutgefäße zusammenziehen und die Sauerstoffzufuhr eingeschränkt wird. Dies beugt der Strahlenbelastung vor bzw. hilft bei der Behandlung. Das Medikament hat keine schweren Nebenwirkungen, auch wenn in einzelnen Fällen von Übelkeit, Schwindelgefühlen, Krämpfen und Magenschmerzen berichtet wurde. + + + Verband + + + Gewöhnlicher elastischer Verband, mit dem Blutungen gestoppt und Infektionen vermieden werden können. Bei einer normalen Blutung reicht es aus, den Verband sorgfältig auf der Wunde anzubringen. Bei einer arteriellen Blutung muss der betroffene Bereich besonders fest abgebunden werden. + + + Standard-Militärfernglas mit maximal 7,5-facher Vergrößerung. Nützlich in der Zone, um damit die Geschehnisse aus der Distanz zu verfolgen. + + + Fernglas + + + Brot + + + Man hat zwar niemals einen Bäcker in der Zone gesehen, aber dieses Brot ist nicht verstrahlt und sogar essbar. Zumindest sind bisher keine Beschwerden bekannt geworden. + + + Touristenfrühstück + + + Konservenessen, das vermutlich von Stalkern in einem Armeedepot erbeutet wurde, aber so ganz ohne Etikett kann man das schwer sagen. Wenn man dem Mindesthaltbarkeitsdatum glauben kann, müsste es noch essbar sein. + + + Echo-Detektor + + + Dieser veraltete Detektor für Anomalien gibt ein Alarmsignal aus, wenn man sich einer Anomalie nähert und dabei Anomaliepartikel in eine spezielle Kammer des Geräts eindringen. Er kann auch Artefakte aufspüren und zeigt die Entfernung zum nächsten Artefakt an (je nach Distanz ändert sich die Frequenz des ausgegebenen Tons). Um in den Artefaktsuchmodus zu gelangen, muss die vordere Abdeckung geöffnet werden. Aufgrund der einfachen Bauart kann der Echo-Detektor lediglich zum Aufspüren der gewöhnlichsten Artefakte genutzt werden. + + + Peil-Detektor + + + Veles-Detektor + + + Ein wissenschaftlicher Detektor der neuesten Generation. Mit drei modernen Detektorkammern werden die Positionen der Artefakte auf einem speziellen Bildschirm angezeigt. Im geschlossenen Zustand registriert das Gerät nur Radioaktivität und Anomalien. Um in den Artefaktsuchmodus zu gelangen, muss die vordere LED-Anzeige geöffnet werden. Im Suchmodus kann der Detektor alle wissenschaftlich bekannten Artefakte aufspüren. + + + Prototyp Swarog-Detektor + + + Der Prototyp eines Scanners für Anomaliefrequenzen mit erweiterten Funktionen. Dieses Gerät bietet ein Programm, mit dem man statische Gebiete anomaler Aktivität identifizieren und weiterhin Artefakte aufspüren kann. Die Positionen der Anomaliegebiete und Artefakte werden auf einer speziellen Anzeige dargestellt. Der Artefaktsuchmodus, der durch das Öffnen der vorderen LED-Anzeige aktiviert wird, wurde so eingestellt, dass Anomalieformationen entdeckt werden können, die momentan wissenschaftlich noch gar nicht erfasst sind. + + + Standard-Taschenlampe für Stirnbefestigung. Nützlich für Stalker, die sich plötzlich im Dunkeln wiederfinden. Aber seien Sie gewarnt: Kann bei unvorsichtigem Gebrauch unliebsame Gäste anlocken. + + + Taschenlampe + + + Anabiotika + + + Gegengift + + + Das IP2-Antitoxin ist ein komplexes Medikament, das aus verschiedenen Gegengiften besteht, darunter Metoclopramidum, Pyridoxin, Thiamin, Riboxin und andere pharmazeutische Mittel. Das Medikament wird benutzt, um eine Reihe von Antibiotika gegen natürliche Gifte sowie Mittel gegen synthetische Toxine in den Blutkreislauf zu bringen. IP2 ist in der Zone nicht besonders verbreitet, da die meisten Stalker lieber auf eine Gasmaske und einen Schutzanzug setzen. Dennoch gibt es genügend von ihnen, die dieses Gegengift mit sich führen. Die Wirkung des Medikaments hält lange an. + + + Herkules + + + Vinca + + + Ukrainisches Vikasolum - ein künstliches Äquivalent zu Vitamin K. Der Hauptzweck dieses Mittels ist die Beschleunigung der Blutgerinnung. Besonders bei Stalkern begehrt, die ihre langsam heilenden Wunden und Verletzungen, die ihnen von Mutanten zugefügt wurden, schneller verheilen lassen wollen. Die Wirkung des Mittels hält lange an. + + + Psi-Blocker + + + Ein Medikament, das lawinenartige Nervenimpulse abblockt. Die Einnahme sorgt dafür, dass man für eine kurze Zeit alle Emotionen verliert. Es wird ausschließlich in der Zone eingesetzt, um die Einflüsse von anomalen Psi-Feldern auszugleichen. Die Wirkung des Medikaments hält lange an. + + + Strahlenschutzmittel + + + Energy-Drink für Stalker + + + Wird häufig von Stalkern auf langen Reisen getrunken, wenn keine Pausen eingelegt werden können. Das Getränk enthält leicht verdauliche Kohlenhydrate sowie bestimmte Wirkstoffe, die die Adrenalinausschüttung im Körper erhöhen. + + + Die gute, alte Gitarre. + + + Gitarre + + + Diätwurst + + + Diese Wurst - eine Mischung aus Hähnchen und Soja - ist oft das einzige Essen am Tag für Stalker. Kein Gourmetessen, aber man kann ja nicht alles haben. Aufgrund der zahlreichen Konservierungsstoffe ist die Wurst lange haltbar. + + + Medkit + + + Armee-Medkit + + + Ein Medkit, das speziell für die Behandlung von Verletzungen im Kampf gedacht ist. Es enthält Blutstiller, Schmerzmittel, Antibiotika und Immunstimulanzien sowie Instrumente zur Entfernung von Kugeln und Splittern aus dem Körper. Dieses Medkit wird standardmäßig an Militärpersonen ausgegeben, teilweise aber auch von Wächtern verwendet. + + + Ein allgemeines Einweg-Medkit - nützlich für die Behandlung von zahlreichen Verletzungen wie z.B. Wunden, Quetschungen, herkömmlichen und chemischen Vergiftungen etc. Recht beliebt bei Stalkern. + + + Wissenschaftliches Medkit + + + Dieses Medkit ist speziell für den Einsatz in der Zone konzipiert. Es enthält sowohl wundheilende Präparate als auch Mittel gegen Strahlenerkrankungen und für die Senkung der Strahlungskonzentration im Körper. Das Medkit enthält im Gegensatz zu anderen Varianten Vikasolum, Batilolum und Naphazolin. + + + Keine gespeicherten Daten. + + + PDA + + + Cossacks-Wodka + + + Hergestellt von GSC. Trinkt sich angenehm und sorgt für eine erhebliche Verringerung von Strahlenauswirkungen. Sollte in Maßen genossen werden. + + + Dieser Anomaliedetektor der neuesten Generation kann Anomalieformationen aufspüren und verfügt über ein Farbdiodenfeld, das nicht nur die Richtung von Artefakten anzeigt, sondern auch die Entfernung. Um in den Artefaktsuchmodus zu gelangen, muss die vordere Abdeckung geöffnet werden. Leider wurde das Gerät mit einer veralteten Liste von erfassbaren Artefakten programmiert. + + + Ein experimentelles Medikament, das von Professor Oserski für wissenschaftliche Forschungsteams in der Zone entwickelt wurde. Hauptsächlich enthält es Tetrodotoxin, auch "Zombiepulver" genannt, das das zentrale Nervensystem des Menschen vollständig zum Erliegen bringt. Dadurch steigen die Chancen, außerhalb eines sicheren Unterschlupfs eine Emission zu überleben. Das Medikament hat keine Feld- oder klinischen Tests durchlaufen, was für Zweifel an seiner Wirksamkeit sorgt und auch die Frage der Nebenwirkungen aufwirft. + + + Schraube + + + Der Hauptbestandteil dieses Produkts ist ein anaboles Androgen - ein künstliches Steroid, dessen Zusammensetzung der von Testosteron ähnelt. Es wird häufig von Stalkern, die lange unterwegs sind, eingenommen, um die Muskelermüdung zu verringern. Das Mittel erhöht die Tragekapazität des Konsumenten erheblich. Die Wirkung hält lange an. + + + Das Strahlenschutzmittel B190 Indraline ist in Medkits enthalten, die an Arbeiter in Kernkraftwerken ausgegeben werden. Es wird in der Zone statt des hochgiftigen PC1 Cystaminhydrochlorids verwendet, das bei wiederholter Einnahme häufig zum Tod führt. Das Mittel schwächt die Wirkung von Gammastrahlung auf lebendes Gewebe ab. Es sollte möglichst vor dem Strahlenkontakt eingenommen werden, weil es nicht sofort wirkt. Die Wirkung des Medikaments hält lange an. + + + Mundharmonika + + + Für alle, die den Blues im Blut haben. + + diff --git a/gamedata/configs/text/ger/st_items_outfit.xml b/gamedata/configs/text/ger/st_items_outfit.xml new file mode 100644 index 0000000..6d5776d --- /dev/null +++ b/gamedata/configs/text/ger/st_items_outfit.xml @@ -0,0 +1,117 @@ + + + + CS-3a Körperpanzerung + + + PSZ-9d Wächterpanzerung + + + PS5-M Universalschutzanzug + + + Exoskelett + + + Bulat-Kampfanzug + + + Dieses Exoskelett bietet hervorragenden Schutz vor Schaden durch Projektile und Splitter, schränkt jedoch im Gegenzug die Bewegungsfreiheit des Trägers ein. Es ist anfällig gegen panzerbrechende Munition. + + + Exoskelett + + + Dieser Armeekampfanzug ist für Angriffsoperationen gedacht. Er bietet ausgezeichneten Schutz vor Schaden durch Vollmantelgeschosse und Splitter, ohne die Mobilität des Trägers einzuschränken. Der Anzug ist anfällig gegen panzerbrechende Munition. + + + Armeekampfanzug + + + Ein gewöhnlicher schwarzer Ledermantel. Hat keinen weiteren Nutzen, als den Träger nachts warm zu halten oder ihn vor dem Biss eines blinden, alten Hundes zu schützen. Obwohl der Mantel nicht besonders bequem ist, wird er von Stalkern in der Zone häufig getragen - entweder weil sie sich gut damit im Dunkeln verstecken können oder wegen seines "coolen" Aussehens. + + + Ledermantel + + + SEVA-Schutzanzug + + + Berill-5M Kampfanzug + + + Sphere-M12 Helm + + + Ein Aluminium-/Titan-Helm mit Stoffüberzug, der Platz für weitere Stahlplatten zur Panzerung bietet, sowie mit einer gepanzerten Gesichtsmaske. Der Sphere-M12 wird normalerweise in Kombination mit der Spetsnaz-Körperpanzerung der PSZ-Reihe eingesetzt. Aufgrund der Atemmaske und des integrierten Nachtsichtgeräts der ersten Generation sowie des maximalen Schutzes für den Kopfbereich ist der Helm in der Zone recht beliebt. Verfügt über Elektronikfelder. + + + Stahlhelm + + + Ein total veralteter Armeestahlhelm ohne jegliche Zusätze. Er schützt weder vor Anomalien noch vor Strahlung, kann aber Projektile abwehren. Dieser Helm war nie besonders beliebt in der Zone, außer während einer kurzen, bewaffneten Auseinandersetzung zwischen den Fraktionen. + + + Schutzhelm + + + Ein leichter Helm mit einem luftdichten Visier, der vor Anomalien schützen soll. Nach dem Design zu urteilen, stammt dieser Helm aus der gleichen Forschungsschmiede wie der SEVA-Schutzanzug. Der Einsatzzweck des Schutzhelms könnte durchaus in der Kombination mit Armeekampfanzügen bei Operationen in extremen Anomaliegebieten liegen. + + + Gasmaske + + + Eine gewöhnliche Gasmaske aus Kunststoff und Gummi, die radioaktive Partikel und giftige Substanzen aus der Luft filtert. Dank ihrer universellen Einsetzbarkeit wird sie von vielen Anfängern wie auch Veteranen geschätzt. Die Gasmaske bietet keinen physischen Schutz. + + + Taktischer Helm + + + Ein westliches Modell eines taktischen Helms ohne Tarnbemalung. Bisher ist ungeklärt, wie dieser Helm in die Zone gelangt ist. Er ist dafür gedacht, mit zahlreichen Scannern und Geräten für die Satellitenkommunikation einem Truppanführer die strategische Überlegenheit über den Gegner zu gewährleisten. Diese Funktionen sind in diesem speziellen Helm jedoch nicht integriert. Er ist mit einer mehrschichtigen Kevlarummantelung und gepanzerten Elementen zum Schutz der elektronischen Bauteile ausgestattet. Darüber hinaus bietet er einen Atemschutz und ein Nachtsichtgerät der ersten Generation. + + + Sunrise-Schutzanzug + + + Freiheit-Wachanzug + + + Dieser leichte Stalkerschutzanzug wird von Handwerkern der Freiheit hergestellt. Das Material wird mit "Horizont" behandelt, einer speziellen Lösung, die die Fraktion durch systematisches Ausprobieren entwickelt hat, um den Schutz vor Anomalien zu verbessern. Wie auch der Freiheit-Wachanzug weist der Sturmanzug eine integrierte Körperpanzerung und Artefaktbehälter auf. + + + Freiheit-Sturmanzug + + + Diese moderne Version des Wächterschutzanzugs ist für Stalkerrekruten geeignet, die an leichte Anzüge gewöhnt sind. Sie bietet im Gegensatz zur PSZ-Serie guten Schutz gegen Anomalien und kann zugleich den Schuss einer Pistole aufhalten. Es kann kein Artefaktbehälter an dem Anzug angebracht werden, aber er kann stattdessen mit einem Kampfhilfssystem ausgestattet werden. + + + Dieser moderne Armeekampfanzug ist für Einsätze in Anomaliegebieten gedacht. Er besteht aus einem schweren PSZ-12p Armeekampfanzug, einem integrierten Kompensationsanzug und einem Schutzanzug gegen Anomalien. Die Panzerung schützt hervorragend vor Projektilen und Splittern, ohne die Beweglichkeit des Trägers stark zu beeinträchtigen. Weist keinen Artefaktbehälter auf. + + + Dieser Schutzanzug für Forschungseinsätze in der Zone bietet einen geschlossenen Atemkreislauf und eine äußere Isolationsbeschichtung. Damit schützt er hervorragend vor Anomalien. Wegen der recht großen Anfälligkeit gegenüber physikalischem Schaden ist er nicht besonders wirkungsvoll gegen Projektile und Splitter. Weist einen integrierten Artefaktbehälter auf. + + + Dieser Anzug aus einem der Kiewer Forschungsinstitute ist eine großartige Alternative zu den selbstgemachten Stalkeranzügen. Die integrierte Körperpanzerung kann zwar nur eine Pistolenkugel aufhalten, aber der Schutz gegen Anomalien und Strahlung ist unübertroffen. Dieser komplett aufrüstbare Anzug mit zwei Artefaktbehältern ist die erste Wahl für viele erfahrene Stalker. + + + Dieser Kampfanzug besteht aus einer berylliumbeschichteten Armeepanzerung der PS5-Serie, die für den Einsatz in der Zone modifiziert wurde. Sie wurde für Angriffsoperationen in hochradioaktiven Gebieten konzipiert und ist in Gebieten mit hoher anomaler Aktivität ineffektiv. Stalker bekommen sie im Tausch von Beute mit Armeebediensteten. Weist keinen Artefaktbehälter auf. + + + Dieser Stalkeranzug der Marke Eigenbau besteht aus einem Schutzanzug aus doppelt geschichtetem, gummiertem Stoff mit Plexiglasfutter und einer integrierten Körperpanzerung. Obwohl er nicht einmal den Schuss einer Pistole aufhalten kann, ist er wegen seines geringen Preises und des hohen Modifikationspotenzials sehr beliebt. Weist einen integrierten Artefaktbehälter auf. + + + Dieser Stalkerschutzanzug der Freiheit mit verstärkter Körperpanzerung ist ein guter Kompromiss zwischen Kampf- und Anomalieschutz. Die integrierte Panzerung besteht aus einer Schutzplatte und 10 Kevlarschichten, die eine Pistolenkugel aufhalten können. Der Anzug wird mit dem recht teuren Schutzmittel "Souverän" gegen Anomalien behandelt. Weist einen Artefaktbehälter auf. + + + Diese Frühversion des Wächterschutzanzugs ist eine für die Zone modifizierte Spetsnaz PSZ-9 Körperpanzerung. Sie kann einem Gewehrschuss widerstehen, aber diese Effektivität wird mit hohem Gewicht, ausladender Größe und kaum vorhandenem Anomalieschutz erkauft. Der Anzug kann zwar nicht mit einem Artefaktbehälter ausgestattet werden, aber dafür mit einem Kampfhilfssystem. + + + Einst wurde diese Körperpanzerung von Clear Sky getragen, aber seit der Auslöschung der Fraktion dient der Anzug nur mehr der Erinnerung daran, dass in der Zone selbst ein perfekter Schutzanzug keine Sicherheit garantiert. Dieser Anzug kann einen Pistolenschuss aufhalten, zudem ist der Träger gut geschützt vor Anomalien. Weist einen integrierten Artefaktbehälter auf. + + + Experimenteller Prototyp eines militärischen Exoskeletts, der wegen der hohen Kosten und einiger Konstruktionsmängel nie in Serienproduktion ging. Da aber damit das maximal tragbare Gewicht enorm steigt und daher Nachfrage dafür herrscht, werden geringe Stückzahlen in unterirdischen Fabriken außerhalb der Ukraine hergestellt. Weist einen integrierten Artefaktbehälter auf. + + + SEVA-Schutzanzug + + diff --git a/gamedata/configs/text/ger/st_items_quest.xml b/gamedata/configs/text/ger/st_items_quest.xml new file mode 100644 index 0000000..f1fb9f8 --- /dev/null +++ b/gamedata/configs/text/ger/st_items_quest.xml @@ -0,0 +1,369 @@ + + + + Dokumente mit Notizen + + + In den Dokumenten wird erwähnt, dass die Unterführung "Pripyat 1" auf Befehl der Abteilung 1 nach der Versiegelung des Aufzugs mit einer Mischung aus Kohlenstoffdioxid und einem chemischen Zusatzstoff geflutet wurde. Folglich wurden alle Mitarbeiter angewiesen, chemische Schutzanzüge mit geschlossenem Atemkreislauf zu tragen. + + + Brief über die Lieferung von Forschungsobjekt 62 + + + "Aufgrund der anomalen Aktivitäten ist der Transport von Forschungsobjekt 62 über offenes Gelände nicht möglich. Benutzen Sie daher die Unterführung 'Pripyat 1'. Der Plan der Lieferung und der darauffolgenden Schließung der Unterführung wurde an die Abteilung 1 übermittelt." + + + Ordner mit Befehlen + + + In diesen Dokumenten wird die Evakuierung des Produktionskomplexes aus der Jupiter-Anlage in unterirdische Labore erwähnt. Diese Angelegenheit soll in der Laborabteilung diskutiert worden sein. + + + Lieferplan + + + "Zeitplan für die Lieferung von Forschungsobjekt 62: 14.7. - 20 Einheiten (1 beschädigt); 21.7. - 32 Einheiten (2 beschädigt); 28.7. - 26 Einheiten (1 beschädigt). Der Versandschein mit Informationen über die Verluste bei der Lieferung wurde an die Anlagenverwaltung geschickt. Eine Kopie davon ging auch in die Reparaturwerkstatt." + + + Notizbuchseite + + + Die folgende Entscheidung wurde bei dem Treffen gefällt: Die Versandabteilung muss sich auf die Evakuierung der Produktionsanlage von Forschungsobjekt 62 konzentrieren. + + + Dienstprotokoll + + + "... 18:30 - alle Abschnitte der P-1-Unterführung wurden luftdicht verschlossen. 19:00 - Eisenbahntore wurden luftdicht versiegelt; die Tore mussten verschweißt werden. 19:45 - Aufzugtüren wurden verriegelt; die Bedienung des Verriegelungsmechanismus hat die Aktivierung des Reservegenerators erforderlich gemacht, da der Strom in der Unterführung bereits abgestellt war. 20:00 - die Chemiewerkstatt hat die Flutung der Unterführung mit Gas eingeleitet. 22:00 - alle Arbeiten an der Versiegelung der Unterführung wurden abgeschlossen, alle Dokumente wurden an Abteilung 1 übermittelt." + + + Baupläne der Unterführung + + + Baupläne der Unterführung "Pripyat 1", aus denen hervorgeht, dass sich die Unterführung unter der Stadt Pripyat befindet. Das Dokument weist Notizen auf: 1. Aufzugstore versiegeln. 2. Unterführung mit Gas aus Chemiewerkstatt versiegeln. + + + Veränderter Isolator + + + Das hier war mal ein Isolator. Mittlerweile hat er sich fast in ein instabiles Artefakt verwandelt. Er ist vermutlich die Quelle der unregelmäßigen Psi-Emissionen. + + + Kolophonium-Dose + + + Eine Dose Kolophonium, das man beim Löten verwendet. Recht selten in der Zone, was auch der Grund dafür sein dürfte, dass hiesige Techniker oft einfach nur Isolierband benutzen, um defekte Ausrüstung zu reparieren. + + + Eine Packung Widerstände + + + Eine Packung Widerstände - eine der grundlegendsten elektrischen Komponenten. Sie sind nicht allzu selten in der Zone, da sie für die Aufrüstung von High-Tech-Ausrüstung verwendet werden, aber diese Sorte von Widerständen wird normalerweise nicht benötigt. + + + Textolitplatte + + + Textolit ist einer der wichtigsten Bestandteile von gedruckten Schaltungen. Die Gefühle eines Elektrotechnikers beim Anblick einer unbenutzten Textolitplatte sind nicht weniger intensiv als die eines Schriftstellers beim Anblick eines leeren Blattes Papier. + + + Ein Behälter mit Transistoren + + + Ein Behälter mit Transistoren - das sind Halbleiter, die elektrische Signale erzeugen, umwandeln und verstärken. Von Transistoren träumen alle Funktechniker in der Zone. + + + Kupferdrahtrolle + + + Kupferdraht ist ein hervorragender Leiter und zugleich eine Grundmetallquelle. Vor allem wegen Letzterem ist solcher Draht sehr selten in der Zone. So gut wie alle Kupferdrahtvorräte wurden in den 90er Jahren aufgespürt, eingeschmolzen und in Wiederverwertungsanlagen gebracht. + + + Mutantendetektor + + + Dieses Gerät stellt eine Verbindung eines gewöhnlichen Anomaliedetektors, eines Mutantensensors mit begrenzter Reichweite und einer Aufzeichnungsmöglichkeit für die erzielten Ergebnisse dar. Es weist eine automatische Abschaltung auf, die eintritt, sobald eine bestimmte Menge an Daten gesammelt wurde. + + + Verwaltungsunterlagen + + + Ein Ordner mit Unterlagen, die reine Verwaltungsinformationen enthalten. Laut diesen Dokumenten wurde die gesamte technische Dokumentation von Forschungsobjekt 62 auf Anordnung des Zentrallabors an die Testwerkstatt übergeben. + + + Blacks PDA + + + Eine Nachricht sticht aus allen anderen hervor. Sie stammt von Schakal und lautet: "Mein Mann beim Forschungsinstitut wird dich als Leiter der Expedition vorschlagen. Er wird deine Jungs zum Bewachen des Bunkers einstellen müssen, das wird die Sache einfacher für dich machen. Vergiss nicht: Der Auftraggeber wünscht, dass die Wissenschaftler KEINERLEI Informationen über die Bedienung der X-Objekte erhalten. Anderenfalls können wir die Zone nicht verlassen. Enttäusch mich nicht, Black." + + + Flugschreiber + + + Der Flugschreiber von Stingray 1, der den Absturz überstanden hat. Er dürfte Details über die letzten Momente des Fluges enthalten, wenn auch in verschlüsseltem Format. + + + Militärplastiksprengstoff mit einem 5-Sekunden-Timer. + + + Sprengstoff mit Timer + + + Verändertes Rad + + + Snags PDA + + + Der PDA enthält eine Karte mit einer Markierung beim Umspannwerk, die eindeutig auf ein Versteck hindeutet, sowie einige erotische Bilder. Nichts Besonderes. + + + PDA eines Banditen + + + Die letzte Nachricht auf dem PDA lautet: "Schnapp dir diesen Snag und bring ihn zu mir - wir beide müssen uns mal eingehend unterhalten. Es ist mir egal, wo er ist... finde ihn einfach. Wenn er sich wehren sollte, erteile ihm eine Lektion! Sultan." + + + Dieser PDA enthält Informationen über Morgans Kunden sowie die Koordinaten des geheimen Wächterlagerhauses, aus dem er die Waffen gestohlen hat. Danach hat er die Waffen an Söldner verkauft und zudem Kontakt zu einem gewissen Sultan aufgenommen. Um seine Spuren zu verwischen, wollte Morgan die Position des Lagerhauses an die Freiheit weitergeben. Sein Komplize, ein gewisser Geier, sollte diese Information übermitteln. Der PDA erwähnt auch einen Sensor, den nur Morgan ausschalten kann; dieser alarmiert die Wächter, wenn das geheime Lager betreten wird. Für diese Informationen dürften sich sowohl die Wächter als auch die Freiheit interessieren. + + + Morgans PDA + + + Eine Notiz auf der Rückseite eines alten Dokuments: "Ghost, ich nehme meine Sachen. Danke für das Sturmgewehr - ich werde es brauchen. Als Gegenleistung lasse ich dir einige Medikamente vom Doktor da. Ich konnte den Söldner loswerden, der mir auf den Fersen war, deswegen brauche ich das Zeug nicht mehr... hoffe ich zumindest. Ich werde mich jetzt mit Fang treffen... es ist ihm gelungen, den Decoder zusammenzusetzen. Treffen wir uns an der üblichen Stelle, wenn du es schaffst. Strelok." + + + Eine Nachricht an Ghost + + + Eine Nachricht auf einem karierten Stück Papier: "Strelok, ich habe den anderen Decoder für alle Fälle in unserem Versteck in Pripyat gelassen. Ghost und ich gehen jetzt zum Agroprom-Institut, deswegen lassen wir unsere zusätzliche Munition hier. Nimm sie dir, wenn du sie brauchst. Gute Jagd! Fang." + + + Eine Nachricht an Strelok + + + Eine Nachricht auf der Rückseite eines alten Dokuments: "Ich kann nicht länger warten, Fang - ein ganzer Trupp ist mir auf den Fersen. Ich werde auf eigene Faust zum Sarkophag gehen. Meine Waffe lasse ich hier, da ich sowieso keine Munition mehr dafür habe. Falls ich nicht mehr zurückkomme, gib sie Ghost. Wenn er gut mit der Waffe umgeht, wird sie ihm gute Dienste leisten. Mach's gut. Strelok." + + + Eine Nachricht an Fang + + + Ein Speichermodul aus dem unbemannten Flugobjekt. Nowikow hat das Modul gehacked, sodass Sie Zugriff auf die Informationen haben, die das Flugobjekt gesammelt hat. Unter anderem beinhaltet das Modul die Koordinaten der drei Funksender. + + + Speichermodul (gehacked) + + + Ein Speichermodul aus dem unbemannten Flugobjekt. Trotz des Absturzes ist das Modul voll funktionstüchtig, aber leider durch eine Sperre geschützt. + + + Speichermodul (geschützt) + + + Ein altes Blatt Papier mit dem Wachplan und der Zahl 1421 darunter. Über den alten Text wurde nachträglich folgende Nachricht geschrieben: "Leutnant W. I. Sokolow. Nach dem Absturz des Hubschraubers habe ich mich zur Evakuierungsstelle B205 begeben. Zwei Tage lang wurde kein Evakuierungsversuch unternommen. Es ist aber zu riskant, hier zu bleiben. Daher habe ich mich entschlossen, B205 zu verlassen und zum mobilen Labor der wissenschaftlichen Expedition zu gehen. Das Labor befindet sich nordöstlich der Evakuierungsstelle." + + + Sokolows Nachricht + + + Eine Pflanze, die zu einem Wäldchen gehört hat, das teilweise durch anomale Aktivitäten transformiert worden ist. Das Wäldchen hat aggressiv auf das Eindringen reagiert, aber die Pflanze scheint soweit nicht gefährlich zu sein. + + + Anomale Pflanze + + + Die letzte Nachricht auf dem PDA stammt von Morgan. Es handelt sich dabei hauptsächlich um den Auftrag, den Stalker Degtarew zu eliminieren. Der Nachricht sind noch mehrere Bilder angehängt. Morgans Anweisungen lauten, die Nachricht nach dem Lesen zu löschen. + + + PDA eines Söldners + + + Dieses Gerät vereint einen Artefaktdetektor, eine Batterie und einen starken Sender in sich. Es scannt Anomalien und stellt die Anzahl sowie die Art der Artefakte fest, die darin vorkommen. Diese Informationen werden danach automatisch in den Bunker der Wissenschaftler übermittelt. + + + Scanner für anomale Aktivitäten + + + Der letzte Eintrag auf dem PDA ist eine Tonaufnahme: \n"... Egal welchen Weg wir einschlagen, wir landen immer genau an der gleichen Stelle. Ich habe mich immer noch nicht an diesen Nebel gewöhnt. Es ist merkwürdig, dass Tschepurnij spurlos verschwunden ist. Vielleicht hat er einen Weg nach draußen gefunden? \nSechster Tag... Wir haben kein Wasser mehr. Der Oberst wurde wütend, hat zwei Leute aus kürzester Distanz abgeknallt und anschließend sich selbst eine Kugel in den Kopf gejagt. Jetzt bin ich in dieser verdammten Anomalie ganz auf mich gestellt... Hätte ich unsere Funkverbindung zum Hauptquartier nicht unterbrochen, hätten sie uns retten können... und die Wächter hätten nicht existiert. Ich frage mich, wie die Dinge ihren Lauf genommen hätten. Ach, was soll's. Hauptmann Taschenkow ist vor langer Zeit gestorben... Und General Taschenkow von den Wächtern wird ihm folgen... Ich vermute, das versteht man unter Gerechtigkeit..."\nDie Aufnahme endet mit einem deutlich hörbaren Schuss. + + + General Taschenkows PDA + + + Die Bedienungsanleitung beschreibt, wie das Forschungsobjekt 62 handzuhaben ist. Es wird betont, dass keinerlei Änderungen wegen einer etwaigen Krümmung der Projektilflugbahn oder aufgrund des Windes notwendig sind, weil diese Aspekte innerhalb der effektiven Reichweite der Waffe keine Rolle spielen würden.\nDiese Dokumente darf niemand in die Hände bekommen, denn sie wären von größtem Interesse für den ukrainischen Geheimdienst. + + + Bedienungsanleitung für Forschungsobjekt 62 + + + Dieses Notizbuch beinhaltet die genaue Beschreibung eines Experiments, bei dem die Wirkung eines Psi-Felds auf ein Objekt in der anderen Hemisphäre gemessen wurde. Eine Gruppe von Wissenschaftlern in der Karibik hat das Signal empfangen, allerdings war es gestört. Das Signal war auf seltsame Art und Weise verändert worden, ganz so, als ob irgendjemand es korrigiert hätte. Eine mögliche Erklärung dafür ist, dass die Noosphärentheorie tatsächlich stimmt und die Änderungen durch die Noosphäre vorgenommen wurden.\nDiese Dokumente darf niemand in die Hände bekommen, denn sie wären von größtem Interesse für den ukrainischen Geheimdienst. + + + Notizbuch mit der Beschreibung eines Experiments + + + Diese Dokumente beschreiben die technischen Eigenschaften der Antenne und wie sie von den geplanten Werten abweichen. Auf der Rückseite befindet sich eine Notiz, aus der hervorgeht, dass die Dokumente im Labor X10 gefertigt wurden.\nDiese Dokumente darf niemand in die Hände bekommen, denn sie wären von größtem Interesse für den ukrainischen Geheimdienst. + + + Regenbogen-Sender - grundlegende technische Eigenschaften + + + Diese Dokumente befassen sich mit den Nebenentdeckungen der Forschungen, insbesondere der Entdeckung, dass Lebewesen gerichtete Psi-Emissionen erzeugen können. Als Teil der Forschungen, die im Labor X16 stattfanden, ist so ein biologischer Feldsender, im Grunde genommen ein riesiges Gehirn, entstanden.\nDiese Dokumente darf niemand in die Hände bekommen, denn sie wären von größtem Interesse für den ukrainischen Geheimdienst. + + + Forschungsunterlagen + + + Hierbei handelt es sich um einen Bericht über die Studie von biologischen Proben aus dem Labor X18. Die Proben wurden informationellen Feldwirkungen unterschiedlicher Intensität ausgesetzt. Der Bericht beschreibt höchst detailliert die Mutationen der Lebewesen, nachdem sie den Emissionen ausgesetzt wurden.\nDiese Dokumente darf niemand in die Hände bekommen, denn sie wären von größtem Interesse für den ukrainischen Geheimdienst. + + + Bericht einer Studie von biologischen Proben + + + Diese Dokumente beziehen sich auf den Transfer des Forschungsteams und aller Materialien in ein anderes, als X7 bezeichnetes Labor. Dieses wird für Forschungen im Zusammenhang mit der Wirkung der Noosphäre genutzt. Das Forschungsteam setzt sich aus N. A. Lebedew, E. F. Kalantscha und W. I. Suslow zusammen.\nDiese Dokumente darf niemand in die Hände bekommen, denn sie wären von größtem Interesse für den ukrainischen Geheimdienst. + + + Transferbefehl + + + Die letzte Nachricht auf dem PDA lautet: "Ich habe den Notfallgenerator im sechsten - dem technischen - Stockwerk gefunden. Zwei Stunden hat es gedauert, bis ich ihn wieder zum Laufen gebracht habe. Ich würde ihn sehr gerne aktivieren, aber Serbin hat mir befohlen zu warten, bis er ein paar Leute geholt hat." + + + Bartschuks PDA + + + Eine rote Magnetschlüsselkarte, markiert mit "X8". + + + Rote X8-Schlüsselkarte + + + Der PDA enthält zahlreiche bedeutungslose Einträge, aber ein Eintrag sticht hervor: "Der Monolith kommuniziert mit dem Empfänger der Nachricht und befiehlt ihm, überschüssige Munition einzusammeln und an Orten zu verwahren, die die Ungläubigen nicht kennen. Diese Orte sollen mit dem Zeichen des Monolithen markiert werden. In schwierigen Zeiten sollen jene, die den Monolithen hören können, dann von seiner Weisheit profitieren... Ich habe den Willen des Monolithen an meine Brüder weitergeleitet und ihnen gesagt, wo sie die Munition finden können..." + + + PDA eines Monolithers + + + Ein recht einfacher Werkzeugkasten. Wohl nicht geeignet für feinere Arbeiten, aber angesichts des Werkzeugmangels in der Zone könnte das Werkzeugset für genügsame Techniker von Nutzen sein. + + + Einfaches Werkzeug + + + Eine brauchbare Werkzeugsammlung. Sie scheint von einem erfahrenen Techniker sorgfältig für seine eigenen Zwecke zusammengestellt worden zu sein. Trotz des Alters ist das Werkzeug in gutem Zustand. + + + Feinwerkzeug + + + Ein professionelles Werkzeugset für die Feineinstellung von Ausrüstungsgegenständen. Der Hinweis auf dem Behälter besagt, dass das Werkzeug in Deutschland hergestellt wurde. Das Werkzeugset enthält alles Notwendige, um so gut wie jede Feineinstellung und Kalibrierung vornehmen zu können. + + + Kalibrierungswerkzeug + + + Alte Magnetschlüsselkarte + + + Kardans Magnetschlüsselkarte. Sie gewährte Zugang zur Testwerkstatt für Forschungsobjekt 62. + + + Dokumente über Forschungsobjekt 62 + + + Diese Dokumente beschreiben den Betriebsmechanismus und die wichtigsten technischen Eigenschaften des elektromagnetischen Geräts.\nIn den Dokumenten findet sich folgender Hinweis: "Die Dokumente müssen ins Zentrallabor X8 zurückgebracht werden. Ich werde beschäftigt sein, also müssen Sie das selbst übernehmen. Benutzen Sie die Magnetkarte im Servicezentrum Jubilejni von Pripyat, um in das zweite Untergeschoss zu gelangen. Von dort aus finden Sie schon den Weg. Die Zugangskarte liegt bei.\nN. Lebedew."\nDiese Dokumente darf niemand in die Hände bekommen, denn sie wären von größtem Interesse für den ukrainischen Geheimdienst. + + + Gelbe X8-Schlüsselkarte + + + Befehl 562 + + + Interner Befehl 423 + + + Schlüssel A + + + Ein gewöhnlicher Schlüssel, gekennzeichnet mit dem Buchstaben "A". + + + Schlüssel B + + + Ein gewöhnlicher Schlüssel, gekennzeichnet mit dem Buchstaben "B". + + + Eine der Tonaufnahmen klingt besonders wahnsinnig: "Hier sind also diese verdammten Mutanten! Sie sind auf das Plateau geklettert, weil sie dachten, dass Noah sie dort nicht erwischt... Vermutlich wissen sie nicht, dass ich meinen ganz persönlichen Weg dort hinauf am nördlichen Bauernhof vorbei habe... Auf uns wartet eine Menge Spaß, ihr Arschlöcher!" + + + Noahs PDA + + + In einer Unmenge von Spam wurde eine Nachricht auf diesem Notebook als wichtig markiert:\n"Richte ein Lager in der Nähe der Kläranlage ein und alle, die bei diesem Job mitmachen, werden dich dort treffen. Black musst du nicht erwarten, denn er und seine Männer werden wegen einer anderen Mission bei Jupiter sein. Das Militär hat alle Flüge in die Zone ausgesetzt, daher droht von der Seite keine Gefahr. Wenn die Stalker einen Weg nach Pripyat finden, schicken wir einen Ortskundigen los und warten dort auf die Männer des Auftraggebers - sie werden uns den Weg zum Labor zeigen.\nSchakal." + + + Notebook eines Söldners + + + Die letzte empfangene Nachricht lautet:\n"Wir warten ganz ungeduldig bei irgend so 'ner Werkstatt. Ich habe zwei Jungs losgeschickt, damit sie die Straße für dich auskundschaften. Aber dennoch werden wir hier warten, bis der Kurier des Auftraggebers auftaucht - die Luft hier ist viel angenehmer.\nTesak." + + + PDA von Hook dem Söldner + + + PDA von Rippe dem Söldner + + + Eine Flasche eines gefährlichen chemischen Nervengases. + + + Eine Flasche Perin B3-Gas + + + Diese Kiste ist mit einem recht kniffligen Schloss versehen. Nach dem Gewicht und dem Geräusch zu urteilen, das die Kiste beim Schütteln macht, ist sie nicht leer. + + + Stahlkiste + + + Nachricht auf dem PDA: "Ich bin mir sicher, dass sich das Artefakt auf dem Baum selbst befindet. Ich könnte vom Hügel aus auf den Baum klettern... hoffentlich gibt es dort auf den Hügeln keine Mutanten. Es ist echt blöd, dass ich nach dem Streit mit Kardan und Barge alleine hierher kommen musste. Aber wenn ich das Artefakt zurückbringe, werden sie sehen, dass ich Recht hatte..." + + + Jokers PDA + + + Aus der letzten Nachricht auf dem PDA geht hervor, dass ihr Verfasser wütend war: "Kardan, der alte Säufer. Er ist nicht nur ein fauler Hund, wenn er was getrunken hat - 'Hier ist es besser, wir sollten es ruhig angehen lassen' - nein, er macht sich dann auch noch lustig über Joker und mich und sagt, wir seien noch jung und hätten keine Ahnung. Hey... Joker ist auch ein Thema für sich: Ist plötzlich 'ne beleidigte Leberwurst, schnappt sich seine Tasche und verschwindet. Während ich versucht habe, Kardan zu beruhigen, ist er gegangen und ich habe keinen blassen Schimmer wohin. Und was soll ich tun? Mit diesem senilen Schwachkopf trinken? Nein danke! Sein Wodka taugt nichts... Pfui Teufel..." + + + Barges PDA + + + Tremor hat auf seinem PDA Tagebuch geführt und seine letzten Aufnahmen sind die interessantesten: "Aufnahme 12. Ich werde bald meine Forschungen abschließen. Die Leute im Lager schöpfen langsam Verdacht. Grouse und Danila wollen einige Blutsauger jagen. Ich frage mich, wann sie es herausfinden... Ich muss die Behälter mit Blut sortieren, um festzustellen, welche von ihnen verseucht wurden. Die anderen muss ich verstecken... [hastig:] Da kommt jemand. [Geräusch, wie das Aufnahmegerät ausgeschaltet und anschließend wieder eingeschaltet wird]. Aufnahme 13 - möglicherweise meine letzte. Erst dieser neugierige Jäger und jetzt Grouse... Damit komme ich nicht davon. Sie werden mich erwischen, ich weiß es. Aber das ist völlig egal. Diese Hämoglobinabhängigkeit bringt mich sowieso bald um. Und lieber lasse ich mir eine Kugel in den Kopf jagen, als an einer Krankheit zu sterben..." + + + Tremors PDA + + + Streng geheim. Befehl 562 des für die Sicherheit von Objekt 1 zuständigen HQ-Kommandeurs R. Ju. Didenko.\nChemieschutzeinheit 423: Verlegen von Sektor B103 nach Sektor A19, um Feldtests der chemischen Lösung Perin B3 unter Kampfbedingungen durchzuführen. Der Einheitskommandeur Oberst P. P. Slawin ist verantwortlich für die Durchführung der Tests. Der stellvertretende Einheitskommandeur Oberstleutnant K. S. Walow ist verantwortlich für den Transport und die Sicherheit. + + + Streng geheim. Befehl von Oberst P. P. Slawin.\nLaut diesem Befehl haben sich die Mitglieder der Chemieschutzeinheit 423 mit folgenden Informationen vertraut zu machen:\n1. Die Schlüssel für den Behälter mit der chemischen Lösung Perin B3 sind im Besitz von Oberst P. P. Slawin (Schlüssel A) und Oberstleutnant K. S. Wlasow (Schlüssel B).\n2. Konvoireihenfolge (beginnend vorne): Fahrzeug des stellvertretenden Einheitskommandeurs, Geleitfahrzeug 8, Schützenpanzer 1, Transportfahrzeug 1, Schützenpanzer 3, Geleitfahrzeug 2, Fahrzeug des Einheitskommandeurs (P. P. Slawin).\nKopien des Befehls sind Oberstleutnant K. S. Wlasow und Oberleutnant R. B. Nasarenku zu überreichen. + + + Eine gelbe Magnetschlüsselkarte, markiert mit X8.\nDie Karte darf niemandem in die Hände fallen, da man mit ihr Zugang zum Geheimlabor erhält. + + + PDA von Sultans Boten + + + Die letzte Nachricht, die mit diesem PDA verschickt wurde, ist eine Sprachaufzeichnung: "Ich habe mich um diese Versager gekümmert, Sultan! Die werden sich nicht mehr mit uns anlegen!" + + + Dies war früher das Ruder des Baggerschiffs. Mittlerweile hat es sich teilweise in ein merkwürdiges Artefakt verwandelt. Es sind keine besonderen Eigenschaften festzustellen, außer dem sichtbaren Leuchten und etwas Radioaktivität. + + + Eine empfangene Nachricht lautet:\n"Ich habe es geschafft, etwas wegen den Waffen in die Wege zu leiten. Der gierige Drecksack wird uns die Vorräte seiner Fraktion verkaufen. Das wird zwar schön billig, aber wir müssen schnell zur Jupiter-Anlage.\nGeier." + + diff --git a/gamedata/configs/text/ger/st_items_weapons.xml b/gamedata/configs/text/ger/st_items_weapons.xml new file mode 100644 index 0000000..42dd32a --- /dev/null +++ b/gamedata/configs/text/ger/st_items_weapons.xml @@ -0,0 +1,567 @@ + + + + .45 ACP Patronen + + + Das Vollmantelgeschoss Kaliber .45 erfreut sich dank seines hohen Gewichts und der relativ geringen Treibladung bereits seit über hundert Jahren großer Beliebtheit. Das Geschoss ist daher vergleichsweise langsam, aber sehr schussgenau und weist eine beachtliche Stoppwirkung auf. + + + .45 ACP + + + .45 ACP Hydroschock-Patronen + + + Diese ungewöhnliche .45 ACP-Munition besteht aus einem Teilmantel-Flachkopfgeschoss mit einer expandierenden Hülle und einem Stahlkern. Sie stellt eine Kombination aus einem expandierenden Teilmantel-Flachkopfgeschoss und panzerbrechender Munition dar. Daher profitiert sie von den Vorteilen beider Geschossarten, weist allerdings auch ihre Nachteile auf. + + + .45 Hydro + + + 12x70 Schrotladung + + + Standardgeschosse Kaliber 12 gefüllt mit 6mm-Schrot. Tödlich auf kurze Distanz. Nur geeignet für den Einsatz in Waffen mit glattem Lauf. + + + 12x70 Schrot + + + 12x76 Massivgeschosse + + + Diese schweren Massivgeschosse vom Kaliber 12 werden normalerweise auf der Jagd nach ganz großer Beute eingesetzt, können aber auch in anderen Bereichen sinnvoll sein. Die schwere Munition bohrt sich nicht wie üblich durch die Panzerung, sondern durchschlägt sie einfach mit einer immensen Wucht. + + + 12x76 Massiv + + + 5,45x39 mm AP Patronen + + + Panzerbrechende Militärmunition Kaliber 5,45x39 7H22 für automatische Gewehre aus den Ländern des Warschauer Paktes. Sie weist ein panzerbrechendes Geschoss aus Hartlegierung auf und ist besonders gegen Körperpanzerung wirksam. + + + 5,45x39 AP + + + 5,45x39 mm Patronen + + + Verbesserte Militärmunition Kaliber 5,45x39 7H10 für automatische Gewehre aus den Ländern des Warschauer Paktes. Sie ist dank des geringeren Rückstoßes schussgenauer als Geschosse vom Kaliber 7,62 und hat eine um 100 m größere Reichweite. + + + 5,45x39 + + + 5,56x45 mm AP Patronen + + + Gebräuchliche panzerbrechende Militärmunition der NATO Kaliber 5,56x45. Sie ist unter der Indexnummer SS190/M855 bekannt und wird von zahlreichen westlichen Sicherheitsfirmen und Sondereinsatzkräften verwendet. Besonders wirksam gegen Körperpanzerung. + + + 5,56x45 AP + + + 5,56x45 mm Patronen + + + Standardmunition der NATO Kaliber 5,56x45, die speziell für zielgenaues automatisches Feuern entwickelt wurde. Sie weist gute ballistische Eigenschaften auf, da sie auf der Grundlage von Jagdmunition konzipiert wurde. Allgemein unter der Indexnummer SS109 bekannt. + + + 5,56x45 + + + 7,62x54 mm 7H1 Patronen + + + Scharfschützenmunition Kaliber 7,62 mit einem Stahlgeschoss. Wurde speziell für das SVD entwickelt. Im Gegensatz zum Maschinengewehr-Pendant weist die 7H1-Variante eine geringe Streuung und hervorragende panzerbrechende Eigenschaften auf. + + + 7,62x54 7H1 + + + 7,62x54 mm PP Patronen + + + Günstige Maschinengewehrmunition Kaliber 7,62. Da sie von der Form her ungeeignet für Scharfschützengewehre ist, wird sie nur im RP-74 Maschinengewehr eingesetzt. + + + 7,62x54 PP + + + 9x18 mm Patronen + + + Vollmantelmunition bestehend aus einem Stahlgeschoss und einem Bleikern unter einem Metallmantel. Sie weist eine gute Stoppwirkung auf, ist aber nicht sehr effektiv gegen Körperpanzerung. + + + 9x18 + + + 9x18 mm +P+ Patronen + + + Hierbei handelt es sich um Geschosse mit erhöhter Stoppwirkung; die europäische Bezeichnung +P+ bedeutet "Überdruckmunition" - die Mündungsgeschwindigkeit ist um 30% erhöht. Nicht besonders wirkungsvoll gegen Körperpanzerung. + + + 9x18 +P+ + + + 9x19 mm FMJ Patronen + + + Diese Standardmunition vom Kaliber 9x19 mit Vollmantelgeschoss weist gute Eigenschaften auf und ist zugleich einfach herzustellen. Sie ist aufgrund der Tatsache, dass expandierende Munition laut internationaler Gesetze im Kampf verboten ist, durchaus beliebt, allerdings nicht besonders wirkungsvoll gegen Körperpanzerung. + + + 9x19 FMJ + + + 9x19 mm JHP Patronen + + + Diese Teilmantel-Hohlspitzmunition vom Kaliber 9x19 mit expandierender Hülle trumpft mit hoher Stoppwirkung auf und neigt nicht allzu sehr zu Querschlägern. Sie wird für gewöhnlich von Polizeikräften und zur Selbstverteidigung eingesetzt. Allerdings ist sie aufgrund ihres Penetrationspotenzials nicht besonders effektiv gegen Körperpanzerung. + + + 9x19 JHP + + + 9x39 mm SP-6 Patronen + + + Die SP-6 ist eine Unterschallmunition für Sturmgewehre mit Teilmantel-Flachkopfgeschoss und einem harten Stahlkern, der aus der Hülle hervorsteht. Sie erfordert einen Schalldämpfer für geräuscharmes Feuern. Wird von Sondereinsatzkräften des Warschauer Paktes eingesetzt und ist gegen Körperpanzerung wirkungsvoll. + + + 9x39 SP-6 + + + 9x39 mm SP-5 Patronen + + + Die SP-5 ist eine Unterschallmunition für Scharfschützengewehre mit bimetallischer Hülle. Sie weist einen Stahlkern auf, wohinter sich eine Kammer mit Blei befindet. Sie erfordert einen Schalldämpfer für geräuscharmes Feuern und wird von Sondereinsatzkräften des Warschauer Paktes eingesetzt. + + + 9x39 SP-5 + + + Batterien + + + M203 Granate + + + 40mm-Granate für den M203 Unterlaufgranatwerfer mit einem letalen Wirkungsradius von 5 m. Kann auch im integrierten Granatwerfer des FT-200M eingesetzt werden. + + + M203 + + + OG-7V Sprengkopf + + + Splittersprengkopf für den Antipersoneneinsatz im RPG-7u Granatwerfer. Der Hauptzweck dieses Sprengkopfes besteht darin, mit dem RPG-7u Gegner zu töten, die sich außerhalb der Reichweite von Handgranaten in Deckung befinden. + + + OG-7V + + + VOG-25 Granate + + + Gewöhnliche Splittergranate für den GP-25 Koster Unterlaufgranatwerfer mit einem letalen Wirkungsradius von 5 m. Die VOG-25 Granate wird auch im Tunder S14 sowie Bulldog 6 Granatwerfer eingesetzt. + + + VOG-25 + + + PSO-1m Zielfernrohr + + + Ein weit verbreitetes optisches Zielfernrohr mit fester 5-facher Vergrößerung aus sowjetischer Produktion. Wie üblich in den Ländern des Warschauer Paktes wird es mit einer Prismenschiene auf Waffen montiert. + + + PSS-2x Zielfernrohr + + + Ein optisches Zielfernrohr mit fester 5-facher Vergrößerung und integriertem Wärmesucher, mit dem für den menschlichen Körper typische Wärmequellen identifiziert werden können. Es wurde für Sondereinsatzkräfte konzipiert und wird mit einer Prismenschiene auf Waffen montiert. + + + NSPU-3 Zielfernrohr + + + Ein Nachtsichtzielfernrohr mit fester 5-facher Vergrößerung und Bildverstärker für den Einsatz im Dunkeln. Es wird mit einer Prismenschiene auf Waffen montiert. + + + SUSAT 4-fach Zielfernrohr + + + Ein anpassbares Langreichweitenzielfernrohr mit 1,6- bis 4-facher Vergrößerung, das eine automatische Justierung für eine größere Effektivität bietet. Es wird mit einer Picatinny-Schiene nach NATO-Standard auf Waffen montiert. + + + Ein Zielfernrohr mit fester 4-facher Vergrößerung, das hauptsächlich in westlichen Ländern hergestellt wird. Es wird mit einer Picatinny-Schiene nach NATO-Standard auf Waffen montiert und häufig auf kleineren Waffen für zielgenaues Feuern aus mittlerer bis großer Distanz eingesetzt. + + + SUSAT Twilight 1,6-fach Zielfernrohr + + + Optisches SUSAT-Zielfernrohr mit 1,6-facher Vergrößerung und höherer Kontrastdarstellung für den Einsatz bei schlechten Lichtverhältnissen. Es wird mit einer Picatinny-Schiene nach NATO-Standard auf Waffen montiert. + + + SUSAT Night 4-fach Zielfernrohr + + + Ein Zielfernrohr mit fester 4-facher Vergrößerung und Nachtsichtgerät für den Einsatz bei Dunkelheit sowie großen Distanzen. Es wird mit einer Picatinny-Schiene nach NATO-Standard auf Waffen montiert. + + + SUSAT 1,6-fach Zielfernrohr + + + Optisches SUSAT-Zielfernrohr mit 1,6-facher Vergrößerung für den Einsatz bei kurzen bis mittleren Distanzen. Es wird mit einer Picatinny-Schiene nach NATO-Standard auf Waffen montiert. + + + PSU-1 Zielfernrohr + + + Ein optisches Zielfernrohr mit 2,7-facher Vergrößerung für den urbanen Einsatz bei mittleren Distanzen. Es wird mit einer Prismenschiene auf Waffen montiert. + + + Schalldämpfer + + + Ein wirkungsvoller Schalldämpfer, der je nach Bedarf angepasst werden kann. Der Körper um den Lauf beinhaltet ein feines Messingsieb, während die Frontpartie aus einer Reihe von Metallwänden mit Öffnungen für den Projektildurchlass besteht. Das Schalldämpferset enthält zudem Adapter und Abdichtungen für die meisten Waffen. In der Regel wird der Schalldämpfer für das Dezimieren gegnerischer Reihen eingesetzt, ohne Aufmerksamkeit zu erregen. + + + F1 Granate + + + Eine defensive Handgranate mit Splitterwirkung, die mittlere Körperpanzerung durchdringen kann. Die Granate weist einen letalen Wirkungsradius von 7 m auf. Stalker gelangen in den Besitz von F1 Granaten, indem sie mit Soldaten handeln, die vorgeben, sie im Kampf gegen Mutanten eingesetzt zu haben. + + + GP-25 Koster + + + Ein einzelschüssiger Unterlaufgranatwerfer mit gezogenem Lauf für Sturmgewehre, der in Ländern des Warschauer Paktes hergestellt wird. Der Feuermechanismus ist selbstspannend und weist einen manuellen Sicherungshebel auf. Zudem wird das Auslösen automatisch verhindert, wenn der Granatwerfer nicht korrekt am Gewehr angebracht ist. Benötigt VOG-25 Granaten. + + + M203 + + + Ein modifizierter M203 Granatwerfer, der um 3 Zoll verkürzt wurde. Er wird mit einer Picatinny-Schiene auf Waffen montiert. Aufgrund einer geänderten Montierung wird dieser Granatwerfer weltweit häufig eingesetzt. + + + RGD-5 Granate + + + Eine offensive Handgranate mit einem kleinen letalen Wirkungsradius von 5 m. Stalker setzen sie aufgrund ihres geringen Anschaffungspreises häufig zum "Ausräuchern" von Mutanten ein. + + + Rauchgranate + + + Eine Rauchhandgranate, die zum Vernebeln eingesetzt wird. Nach dem Wurf der Granate dauert es 10 Sekunden, bis sich der Rauch im Wirkungsbereich entfaltet hat. + + + Messer + + + AC-96/2 + + + AKM-74/2 + + + AKM-74/2U + + + Martha + + + Abgesägte Schrotflinte + + + Eine abgesägte Jagdschrotflinte mit parallelem Doppellauf. Sie ist leichter und kompakter als eine gewöhnliche Schrotflinte. Aufgrund der Tatsache, dass sie sich einfach verbergen lässt und zudem im Nahkampf extrem wirkungsvoll ist, gehört sie zu den beliebtesten Waffen unter Banditen. + + + Kora-919 + + + Steppe Eagle + + + Eine handgefertigte Pistole, die auf der Grundlage des Black Kite entworfen wurde. Die Komponenten sind fein darauf abgestimmt, dass für eine Handfeuerwaffe dieser Art eine nahezu unglaubliche Schussgenauigkeit gewährleistet wird. + + + Black Kite + + + FT-200M + + + Fora-12 + + + GP37 + + + Gaußgewehr + + + Tunder S14 + + + Dieses Sturmgewehr ist wie die AKM-Serie mit einem Granatwerfer ausgestattet und wurde für den Einsatz in schnellen Eingreiftrupps konzipiert. Die Hauptunterschiede bestehen in der 9x39-Munition, der Bullpup-Form und der zahlreichen Konfigurationsmöglichkeiten. Das Gewehr wird dafür geschätzt, dass es im Häuserkampf gepanzerte Gegner hinter improvisierter Deckung aus der Distanz ausschalten kann. Zudem hat es eine hervorragende Stoppwirkung. + + + Storm + + + Diese russische Modifikation des Tunder S14 ist ein experimentelles Sturmgewehr-Granatwerfer-System. Sie wurde speziell für den Einsatz in der Zone entwickelt und weist insbesondere ein vergrößertes Magazin auf. + + + HPSS-1m + + + Ein modifiziertes Modell einer Pistole aus der ersten Hälfte des 20. Jahrhunderts, das so zuverlässig, durchschlagskräftig und schussgenau ist wie das Original. Pistolen dieser Serie gelten als die besten Handfeuerwaffen des 20. Jahrhunderts und sind in der Zone äußerst gefragt. + + + IL 86 + + + TRs 301 + + + Viper 5 + + + Diese Maschinenpistole hat sich weltweit zu einer enorm beliebten Waffe entwickelt, weil sie zuverlässig, einfach zu bedienen und schussgenau ist. In den vergangenen Jahrzehnten wurde die Viper 5 von Sondereinsatzkräften und Polizeitruppen auf der ganzen Welt eingesetzt. Da die globalen Schwarzmärkte mit der Viper 5 geradezu überflutet wurden, ist es keine große Überraschung, dass sie irgendwann auch in der Zone aufgetaucht ist. + + + Frasier + + + Prototyp einer Maschinenpistole, der auf dem hervorragenden Viper 5-Modell basiert. Die Frasier wurde für den Kampfeinsatz bei kurzen und kürzesten Distanzen konzipiert. Sie profitiert von einem größeren Kaliber, einer erhöhten Feuerrate und einer verbesserten Schussgenauigkeit. + + + PB-1s + + + Zulus RP-74 + + + Diese Waffe hat zuvor Zulu gehört. Ihre Spezialfunktionen beinhalten u.a. eine erhöhte Munitionierung und einen besonders verlässlichen Abzugsmechanismus. Die Modifikationen haben zwar das Gesamtgewicht der Waffe erhöht, aber das war für den letzten Besitzer kein Problem. + + + PMm + + + Ehren-PMm + + + Eine alte PMm, die Degtarew als Zeichen der Anerkennung überreicht wurde, und zwar "Für das erfolgreiche Ausführen höchstgefährlicher Staatsbefehle sowie für Tapferkeit und Mut bei der Ausübung seiner Pflichten". + + + Eliminator + + + Bulldog-6 + + + Dieser Revolver-Granatwerfer verfügt über sechs gezogene Frontladerläufe, die alle einem Unterlaufgranatwerfer entsprechen. Die Trommel wird ebenfalls von vorne geladen. Die Waffe wird häufig für das schnelle Unterdrücken von gegnerischen Feuerstellungen und - im freien Feld - gegen verschanzte Feinde oder besonders starke Mutanten eingesetzt. + + + RP-74 + + + Dieses Maschinengewehr mit Munitionsgurt ist eine tragbare Modifikation mit einer komplizierten Zweistufen-Munitionszuführung. Trotz seines Gewichts und seiner niedrigen Genauigkeit hat dieses leichte MG seine Anhänger in der Zone. Es wird hauptsächlich eingesetzt, um während Fraktionskämpfe zahlenmäßig überlegene feindliche Truppen abzuwehren und Mutantenverstecke zu säubern. + + + RPG-7u + + + SIP-t M200 + + + Alpine + + + Ein einzigartiges Modell der SIP-t M200 Handfeuerwaffe. Teil einer kleinen, limitierten Edition, die für eine unbekannte Sondereinheit hergestellt wurde. Dieses Modell profitiert von einem größeren Magazin, einem extrem widerstandsfähigen Stahllauf und einem höchst widerstandsfähigen Polymergehäuse. + + + SGI-5k + + + Ein relativ neues Sturmgewehr, das trotz des nicht besonders aufregenden Designs schnell auf der ganzen Welt Anhänger gefunden hat. Waffen dieser Serie gehören zu den besten ihrer Klasse und sind berühmt für ihre Zuverlässigkeit, Schussgenauigkeit sowie einfache Bedienung. Obwohl dieses Sturmgewehr in der Zone recht schwierig beschafft werden kann, wird es häufig von erfahrenen Stalkern zu entsprechenden Preisen bestellt. + + + Streloks SGI-5k + + + Ein SGI-5k Sturmgewehr aus der Schweiz. Auch wenn es nicht mehr wirklich neu ist, kann man leicht erkennen, dass sich der vorherige Besitzer sehr gut um die Waffe gekümmert hat: Sie wurde auseinandergenommen und wieder zusammengesetzt, nachdem jede Komponente auf optimale Leistung hin feinjustiert wurde. Dadurch ist die Stoppwirkung erhöht. Der Buchstabe "S" und 16 kleine Kerben sind in den Kolben der Waffe eingeritzt. + + + SPSA-14 + + + SPSA-AUT + + + Die selbstspannende SPSA-AUT Schrotflinte wird nur in Werkstätten der Wächter hergestellt. Diese Waffe ist für den Einsatz gegen große Mutantengruppen gedacht. Ihre verbesserte Patronenzuführung gewährleistet eine hohe Feuerrate, zudem wurde die Magazingröße auf 10 erhöht. Benötigt Munition des Kalibers 12x70. + + + Karbonator + + + Eine Armeeschrotflinte, die auf SPA-14-Basis speziell für Sturmtruppen entwickelt wurde. Wie auch ihr Vorgängermodell beherrscht sie Automatikfeuer, trumpft jedoch aufgrund ihres ausgeglichenen stoßfreien Systems mit einer besseren Rückstoßdämpfung auf. + + + SVDm-2 + + + Ein Armeescharfschützengewehr, das seit über 50 Jahren auf dem Markt ist und sich mit einer außergewöhnlichen Zuverlässigkeit und einfachen Bedienung einen hervorragenden Ruf erarbeitet hat. Das SVDm-2 wird normalerweise von der Armee eingesetzt, um die effektive Reichweite ihrer Einheiten zu erhöhen. Aber auch Stalker schätzen diese Waffe wegen ihrer panzerbrechenden Eigenschaft, mit der man Mutantenhaut und Armeepanzerungen durchdringen kann. + + + Lynx + + + Eine handgefertigte Version des SVDm-2 Scharfschützengewehrs. Äußerlich mag es keine Unterschiede geben, aber diese Version bietet dennoch eine ideale Mischung aus Schussgenauigkeit und Stoppwirkung. + + + SVUmk-2 + + + SVU2-A + + + Dieses verkürzte Scharfschützengewehr mit erhöhter Feuerrate ist der nächste Schritt in der Evolution des SVUmk-2 Scharfschützengewehrs. Es gehörte früher Max, der legendären Wache von den Freiheitlern. + + + Jagdschrotflinte + + + Diese weitverbreitete Jagdschrotflinte mit zwei übereinander liegenden Läufen kann dank ihrer Schussgenauigkeit und Stoppwirkung einen besseren Schutz gegen Mutanten darstellen als eine Pistole. Sie wird meist von Anfängern in den Außenbezirken der Zone eingesetzt. + + + Nicht identifizierte Waffe + + + Eine unbekannte Waffe, deren Feuermechanismus nicht greift. Sie scheint defekt zu sein - wenn man den Abzug drückt, passiert nichts. + + + UDP Compact + + + Tadellose Zuverlässigkeit, enorme Haltbarkeit und hervorragende Schussgenauigkeit sind die Hauptvorzüge dieser Waffe. Ihre wenigen Nachteile liegen in ihrer nicht zu unterschätzenden Größe, ihrem relativ hohen Schwerpunkt und dem massiven Verschluss, wodurch sie nur schwierig verborgen werden kann. Aber dies wird von den Vorteilen der Waffe mehr als wettgemacht, weswegen sie unter den Veteranen der Zone besonders beliebt ist. + + + March + + + Eine kompakte, großkalibrige Pistole mit kurzer Verschlussbewegung und leichtem Verschlusssystem. Gehörte früher einem Söldner namens Wolfshund. Scheint eine modifizierte Version der UDP Compact Pistole zu sein. + + + SA Avalanche + + + Vintar BC + + + Ein spezielles Armeescharfschützengewehr, das eigens für geräuschloses Schießen ohne Mündungsfeuer im Rahmen von Sondereinsätzen entwickelt wurde, bei denen es für den Schützen ernste Konsequenzen haben könnte, wenn er entdeckt würde. Das Vintar BC bietet sehr gute panzerbrechende Eigenschaften, eine große Stoppwirkung und ein integriertes optisches Scharfschützenzielfernrohr. Viele Stalker schätzen diese Waffe trotz ihres kleinen Magazins sehr. + + + Tide + + + Eine Waffe, die auf der Basis des schallgedämpften Scharfschützengewehrs für die Armee entwickelt wurde. Das Gewehr hat eine größere Stoppwirkung als sein Vorgängermodell Vintar BC, dafür allerdings eine geringere Feuerrate. Der Schütze kann mit dieser Waffe einen Gegner nach dem anderen ausschalten, ohne seine Position preiszugeben. + + + Walker P9m + + + Chaser 13 + + + Eine westliche Schrotflinte mit glattem Lauf, die dank ihrer bemerkenswerten Zuverlässigkeit und niedrigen Nachladezeit weltweit äußerst beliebt ist. Vor allem wegen ihrer Funktionalität wird sie von den Jägern in der Zone geschätzt. Alle Komponenten der Waffe sind mit einem Antikorrosionsmittel beschichtet. + + + Predator + + + Eine maßgeschneiderte Pump-Action-Schrotflinte, die früher Trapper gehörte. Der Jäger hatte nur eine Anforderung an diese Waffe: Sie sollte Raubtiere mit einem Schuss töten können. Diese Philosophie beruhte auf der Überzeugung, dass ein Monster, gleich wie viele Menschen es getötet hat, auch nur ein Lebewesen ist und daher nicht leiden sollte. + + + Selbst gemachte Batterien + + + SUSAT Mera Zielfernrohr + + + Ein modernes Sturmgewehr, das als Nachfolger des altgedienten AKM-74/2 entwickelt wurde. Der Hauptunterschied besteht im neuen Zweifach-Salvenmodus mit hoher Geschwindigkeit, mit dem man zwei Projektile auf eine Distanz von bis zu 100 Metern in dasselbe Ziel feuern kann. Damit steigen die Chancen, das Ziel zu treffen, erheblich. Zudem sind das Tötungspotenzial, die Stoppwirkung und die panzerbrechende Wirkung erhöht. + + + Mit dieser 1974 entwickelten Waffe hielt die kleinkalibrige Munition mit Niedrigimpuls Einzug in den Warschauer Pakt. Das AKM-74/2, der Nachfolger des beliebtesten Sturmgewehrs der Welt, hat eine größere Mündungsbremse und damit einen noch geringeren Rückstoß. Dies führt zu größerer Schussgenauigkeit und weniger Streuung, vor allem bei schnellen Einzelschüssen oder Salven. Wie sein Vorgänger ist auch dieses Gewehr einfach und zuverlässig. + + + Obwohl diese Waffe im Hinblick auf Größe, Gewicht und taktische Ausrichtung einer MP ähnelt, gilt sie dennoch als Sturmgewehr, weil sie denselben internen Mechanismus hat wie das AKM-74/2. Sie ist vor allem für ihre Beweglichkeit im Häuserkampf und die starke panzerbrechende Wirkung bekannt. Ihre Nachteile liegen in der geringen Wirkungsreichweite (trotz relativ großer Schussreichweite), der Neigung zum Überhitzen und den häufigen Querschlägern. + + + Die verbesserte Version eines Klassikers unter den automatischen Pistolen, der alle großen bewaffneten Konflikte des 20. Jahrhunderts mit Bravour gemeistert hat und auch im neuen Jahrtausend noch lange nicht zum alten Eisen gehört. Sie wird von vielen Herstellern weltweit in Standard- und modifizierten Konfigurationen produziert. Der einzige Nachteil - die durchschnittliche Magazingröße - wird durch die starke Munition mehr als wettgemacht. + + + Die ultimative Handfeuerwaffe - groß, schwer und tödlich. Sie wurde für die Jagd auf mittlere und große Beute sowie für den Einsatz bei Schießwettbewerben konzipiert, bei denen auf Stahlziele in mehr als 50 Meter Entfernung geschossen wird. Ihr eingeschränkter Nutzen in der Zone geht auf ihren Preis, ihre Größe und ihr Gewicht zurück, die alle das Doppelte anderer Pistolen betragen. + + + Diese futuristisch anmutende Waffe im Bullpup-Design ist eigentlich ein seriengefertigtes modulares System, das aus einem Gewehr und einer Granatenvorrichtung mit einer computergestützten Feuersteuerung und einem 40mm-Granatwerfer besteht. Trotz ihrer Größe ist die Waffe äußerst ergonomisch, lässt sich einfach bedienen und profitiert von ihren guten technischen Eigenschaften. + + + Eine ukrainische Pistole, die hauptsächlich von Exekutivkräften eingesetzt wird. Sie bietet eine bessere Schussgenauigkeit und Ergonomie sowie ein größeres Magazin als die PMm. Diese Waffen gelangen in großen Mengen in die Zone, weil sie wegen Defekten aufgrund einiger falscher Berechnungen in der frühen Entwurfphase weiterverkauft werden. Dennoch steht sie bei Stalkern wegen ihrer guten Kampfeigenschaften hoch im Kurs. + + + Ein neues Mitglied der Gewehrfamilie aus westlicher Produktion, das sich erheblich von seinen Vorgängern unterscheidet. Es hat eine Automatikbasis mit einem halbverriegelten Verschlusssystem und ähnelt mehr einem amerikanischen, gasbetriebenen automatischen Sturmgewehr mit einem kurzhubigen Gaskolben. Diese Änderungen machen das Gewehr zu einem hervorragenden Beispiel einer modernen Waffe - leicht, zuverlässig und ergonomisch. + + + Wegen der vielen Nachteile wurden die meisten Waffen dieses Typs modernisiert, während die übrigen auf dem Schwarzmarkt landeten. Die Hauptvorteile dieses Gewehrs sind das integrierte Zielfernrohr mit 4-facher Vergrößerung, die große Genauigkeit bei Einzelschuss und die zuverlässige Modifikationstechnologie. Im Salvenmodus ist die Schussgenauigkeit jedoch deutlich geringer und die Bauteile und Mechanismus des Gewehrs werden relativ unzuverlässig. + + + Eine neue Entwicklung in dieser berühmten Waffenfamilie. Die Änderungen wurden im oberen Teil der Stahlkonstruktion vorgenommen, die aus dem Lauf, dem Gasrohr und dem Verschlusssystem besteht. So wurde das Gewicht der Waffe verringert, ihre Ergonomie verbessert und das Gassystem aufgewertet. Die Waffe ist äußerst schussgenau, auch wenn sie zum Verschmutzen neigt und damit nicht die beste Wahl für die schwierigen Umstände in der Zone darstellt. + + + Diese Pistole wurde in der zweiten Hälfte des 20. Jahrhunderts auf Basis des PMm für Sondereinsatzkräfte und Spähtrupps entwickelt. Der vordere Teil des Pistolenlaufs weist einen integrierten Schalldämpfer auf. Zudem verfügt sie über ein kurzes Verschlusssystem, in dem kein Platz mehr für eine rückführende Feder ist; die ist daher im Griff der Pistole verbaut. Sie ist zwar veraltet, kann aber in den richtigen Händen immer noch sehr effektiv sein. + + + Dieses Sowjeterbe ist die am weitesten verbreitete Pistole in der Zone und gehört zu den besten kompakten Handfeuerwaffen zur Selbstverteidigung überhaupt. Sie ist klein, äußerst zuverlässig, leicht zu bedienen und einfach in Schuss zu halten. Demgegenüber stehen die Nachteile wie etwa die kurze Reichweite, niedrige Schussgenauigkeit und geringe Stoppwirkung. Auch vom Gewicht und der Magazingröße her ist sie modernen Pistolen unterlegen. + + + Eine revolverartige Sturmschrotflinte mit glattem Lauf, deren Hauptaugenmerk auf extremer Feuerkraft für militärische Einheiten liegt. Die Waffe profitiert von ihrem großen Magazin und einer hohen Feuerrate, aber ihre Größe, ihr großes Gewicht und die lange Nachladedauer stehen den Vorteilen gegenüber. Sie ist nicht sehr verbreitet in der Zone und wird hauptsächlich eingesetzt, um geschlossene Räume von Mutanten zu säubern. + + + Dieser Granatwerfer aus den 60er Jahren gelangte aus Armeelagern in die Zone. Die Waffe hat ein rückstoßfreies Einzelschusssystem mit glattem Lauf und einem hinten offenen Rohr. Sie verfügt über ein optisches PGO-27 Zielfernrohr mit 2,7-facher Vergrößerung. Obwohl sie wegen ihrer Größe und ihres Gewichts nicht gerade wie geschaffen für Stalker ist, hat sie dank ihrer zerstörerischen Wirkung und der einfachen Handhabung ihre Anhänger in der Zone. + + + Dieses einzig verbliebene seriengefertigte Modell einer weltweit beliebten Pistole hat sich seinen guten Ruf durch exzellente Ergonomie und Schussgenauigkeit verdient. Und trotz des kleinen Magazins profitiert die Waffe von der starken Munition und dem zuverlässigen Aufbau. Viele glauben, dass die SIP-t M200 die beste seriengefertigte Handfeuerwaffe vom Kaliber .45ACP ist - bei den erfahrenen Stalkern und Söldnern ist sie auf jeden Fall beliebt. + + + Diese automatische Schrotflinte mit glattem Lauf wurde in der zweiten Hälfte des 20. Jahrhundert entwickelt und verfügt über selbstspannende und Pump-Action-Feuermodi. Sie dient Polizei- und Sturmtrupps als Allzweckwaffe und genießt vor allem wegen ihrer Zuverlässigkeit sowie der flexiblen Einsatzmöglichkeiten einen guten Ruf. Trotz ihres großen Gewichts, komplexen Aufbaus und hohen Preises ist sie dank der Effektivität gegen Mutanten beliebt. + + + Eine modernisierte Version des SVDm-2 Scharfschützengewehrs im kompakten Bullpup-Design für schnelle Eingreiftruppen. Das Gewehr erlaubt schnelleres Präzisionsfeuer und ist deutlich leichter, während seine Genauigkeit bei Einzelschüssen auf kurze und mittlere Distanzen der seines Vorgängers ähnelt. Wegen dieser Eigenschaften ist die Waffe bei zahllosen Stalkern sehr beliebt. + + + Eine modifizierte Version des schallgedämpften Vintar BC Scharfschützengewehrs, die als Sturmgewehr für Sondereinsatzkräfte konzipiert ist. Der Hauptzweck dieses Gewehrs besteht darin, auf Gegner mit moderner Schutzausrüstung zu schießen, ohne die Position des Schützen zu verraten. Dank des integrierten Schalldämpfers und der schweren Unterschallmunition vom Kaliber 9x39 sind die Lautstärke und das Mündungsfeuer der Waffe erheblich reduziert. + + + Dieses extrem schussgenaue High-Tech-Gewehr, das unter der Bezeichnung Forschungsobjekt 62 bekannt ist, wurde in Geheimlabors in der Zone entwickelt. Seine Funktionsweise besteht darin, dass die Projektile mit Elektromagneten auf sehr hohe Geschwindigkeiten beschleunigt werden, was in einer schier unglaublichen Stoppwirkung bei so gut wie keinem Rückstoß resultiert. Die Waffe wird durch eingekapselte Artefaktteile in den Batterien betrieben. + + + Die Martha genießt weltweit den Ruf einer relativ zuverlässigen, jedoch recht sperrigen Pistole. Sie wird von Armee- und Polizeikräften sowie von verschiedenen Militär- und Sicherheitsorganisationen eingesetzt. Die Pistole ist dank ihrer starken Munition und des großen Magazins in der Unterwelt mindestens genauso beliebt. Marthas, die in der Zone vorkommen, sind normalerweise veraltet und stammen vermutlich aus aussortierten Beständen. + + + Eine hervorragende Pistole westlicher Produktion, die für ihre Zuverlässigkeit, ihr großes Magazin und ihre hohe Schussgenauigkeit bekannt ist. Darüber hinaus gehört sie zu den ergonomischsten Handfeuerwaffen ihrer Klasse. Sie ist eine der gebräuchlichsten Pistolen in der Zone und wird von Profis und Anfängern gleichermaßen geschätzt, die sie sich leisten können. + + + Batterien, die eingekapselte Teile des Artefakts "Blitz" als Energiequelle nutzen. Hergestellt mit High-Tech-Ausrüstung. + + + Diese Batterien mit niedriger Kapazität nutzen eingekapselte Teile des Artefakts "Blitz" als Energiequelle. Ihre geringe Kapazität ist auf die provisorischen Herstellungsbedingungen und das Fehlen von professioneller Ausrüstung zurückzuführen. + + diff --git a/gamedata/configs/text/ger/st_items_weapons_upgrades.xml b/gamedata/configs/text/ger/st_items_weapons_upgrades.xml new file mode 100644 index 0000000..212670e --- /dev/null +++ b/gamedata/configs/text/ger/st_items_weapons_upgrades.xml @@ -0,0 +1,2022 @@ + + + + Flachheit + + + Kaliber + + + Rückstoß + + + Zuverlässigkeit + + + 1,6-fach Reflexvisier + + + Optisches 4-fach Zielfernrohr + + + Schalldämpfer + + + Unterlaufschiene + + + Gewicht + + + Dank des äußeren Gewindes kann ein Schalldämpfer verwendet werden. + + + Äußeres Gewinde am Lauf + + + Anbringung einer Schiene, damit ein optisches Zielfernrohr angebracht werden kann. + + + Optische Schiene + + + Anbringung einer Schiene, damit ein Unterlaufgranatwerfer angebracht werden kann. + + + Schiene für Unterlaufgranatwerfer + + + Das Standardmagazin wird durch ein größeres ersetzt. + + + Erhöhte Magazingröße + + + Ein komplizierter, integrierter Umbau der mechanischen und automatischen Teile der Waffe, damit ihr Kaliber geändert werden kann. Dies geht auf Kosten der Zuverlässigkeit. + + + Kaliberwechsel auf 5x45 + + + Ein komplizierter, integrierter Umbau der mechanischen und automatischen Teile der Waffe, damit ihr Kaliber geändert werden kann. Dies geht auf Kosten der Zuverlässigkeit. + + + Kaliberwechsel auf 5x56 + + + Ein komplizierter, integrierter Umbau der mechanischen und automatischen Teile der Waffe, damit ihr Kaliber geändert werden kann. Dies geht auf Kosten der Zuverlässigkeit. + + + Kaliberwechsel auf 9x18 + + + Ein komplizierter, integrierter Umbau der mechanischen und automatischen Teile der Waffe, damit ihr Kaliber geändert werden kann. Dies geht auf Kosten der Zuverlässigkeit. + + + Kaliberwechsel auf 9x19 + + + Das Fassungsvermögen des Magazins wird erhöht, ohne dass der Waffenteil vergrößert wird. + + + Erhöhtes Magazinfassungsvermögen + + + Ein leichteres Polykarbonat-Kastenmagazin mit höherer Kapazität, das einen Teil des zusätzlichen Gewichts ausgleicht. + + + Erhöhtes Fassungsvermögen des Kastenmagazins + + + Eine erhöhte Anzahl von Titanplatten verbessert die Haltbarkeit der Körperpanzerung enorm. + + + Zusätzliche Aluminium-/Titanplatten + + + Verstärkte Platten, die mehr Schutz bieten, aber nicht mehr so haltbar sind. + + + Kevlarplatten + + + Eine Aluminium-Titan-Legierung senkt das Gewicht von Titan, das in Schutzausrüstung eingesetzt wird. + + + Aluminium- und Titanplatten + + + Normalerweise hat Titan ein zu hohes Gewicht, um in Schutzausrüstung verwendet zu werden, aber manchmal wird es in Exoskeletten eingesetzt. + + + Massive Titanteile + + + Indem Metall durch Kohlefaser ersetzt wird, sinkt das Gewicht von Körperpanzerung, ohne dass die Zuverlässigkeit darunter leidet. + + + Austausch von Metallteilen in Körperpanzerung durch Kohlefaser + + + Kevlar gehört zu den gebräuchlichsten Materialien, die bei der Herstellung von Körperpanzerung eingesetzt werden. + + + Kevlarplatten + + + Polykarbonat kann eine Kugel aufhalten, ist aber so leicht wie Kunststoff. + + + Polykarbonatplatten + + + Keramikplatten halten nicht lange, aber sie sind zuverlässiger als Kevlar, weil sie die Energie auftreffender Projektile besser kompensieren. + + + Einbau von Keramikplatten + + + Einfache Stahlplatten, die in einen Mantel eingenäht werden. + + + Stahlplatten + + + An einer Keramikaußenschicht prallen panzerbrechende Geschosse ab, die in einem Winkel auftreffen. Direkt auftreffende Geschosse lösen sich in Staub auf, wenn sie auf die Außenschicht treffen. + + + Keramikaußenschicht für Körperpanzerung + + + Eine zusätzliche innere Panzerungsschicht für den Fall, dass die äußere Schicht beschädigt wird. + + + Doppelte Schutzplatte + + + Panzerung mit einer Innenschicht, die die auftreffende Energie über einen größeren Bereich verteilt und damit besser kompensiert. + + + Zusätzliches Kompensationselement + + + Dieser Rahmen kann eine Kugel aufhalten, wenn die Hauptkörperpanzerung bereits beschädigt ist. + + + Zusätzlicher gepanzerter Rahmen + + + Dünnere Schutzschichten sind übereinander angebracht, um die Verschleißfestigkeit der Körperpanzerung zu erhöhen. + + + Segmentpanzerung + + + Mehr Platten bedeuten zwar nicht automatisch einen besseren Schutz, garantieren aber eine höhere Haltbarkeit. + + + Zweite Schutzschicht + + + Mobile Schutzplatten schützen die Gelenke vor Schussverletzungen. + + + Anbringung von mobilen Schutzplatten für Gelenke + + + Ein leichterer Aluminiumrahmen für Platten ersetzt den Stahlrahmen. + + + Leichterer Aluminiumrahmen + + + Verstärkte Ledereinlagen verringern die Wucht, die der Träger durch die Körperpanzerung spürt, wenn er von einer Kugel getroffen wird. + + + Verstärkte Ledereinlagen + + + Eine zusätzliche Keramikschicht mit Silikonverstärkung. + + + Verstärkte Keramikplatten + + + Durch die Verwendung von leichteren Materialien wird das Gewicht der Körperpanzerung gesenkt. + + + Anbringung leichterer Kunststoff- und synthetischer Teile + + + Während massive Titanplatten viel zu schwer sind, um von einem Infanteristen getragen zu werden, kann ein Exoskelett das Gewicht mit seinen starken Servomotoren aushalten. + + + Titanpanzerung "Kürass" + + + SBK-RKhZ.m.II - ein spezieller Kampfanzug zum Schutz vor Strahlung und Chemikalien (Version II). + + + SBK-RKhZ.m.II Strahlenschutzanzug (luftdicht) + + + Diese anstrengende und zeitraubende Verbesserung ist nicht sehr beliebt, hat jedoch schon so manches Leben gerettet. + + + Eingenähtes Kettenhemd + + + Die "Schuppe" besteht aus überstehenden Keramikplatten, die den Träger davor schützen, an derselben Stelle getroffen zu werden. + + + Keramik-Schutzmodifikation "Schuppe" + + + Nach der Behandlung mit "Souverän" ist der Schutzanzug nahezu immun gegenüber mechanischem Schaden und Faserrissen. + + + Behandlung mit dem Schutzmittel "Souverän" + + + Keramik absorbiert einen großen Teil der auftreffenden Energie, indem sie auf Fragmente abgeleitet wird, welche dann abfallen. + + + Anbringung einer Keramikschicht auf Platten + + + Ein verstärktes Gerüst, in dem Beryllium statt Aluminium eingesetzt wird. Damit bietet es Infanteristen mit den besten Schutz. + + + Keramik absorbiert einen großen Teil der auftreffenden Energie, indem sie auf Fragmente abgeleitet wird, welche dann abfallen. + + + Keramikschicht auf Platten + + + Die Kohlefaser gehört zu den widerstandsfähigsten und verschleißfestesten Materialien überhaupt und wird sogar in der Luft- und Raumfahrtkonstruktion eingesetzt. + + + Eine mehrschichtige Polymer- und Keramikbeschichtung. + + + Mehrschichtige Plattenbeschichtung "Schutzschicht" + + + Eine heimische Technologie und eine der neuesten Entwicklungen im Bereich der Körperpanzerung - die Herstellung von künstlichen Saphiren. + + + Die Feineinstellung von Komponenten sorgt dafür, dass die Waffe seltener klemmt. + + + Komponentenfeineinstellung + + + Der Trend nach Kunststoffkomponenten hat sich nicht nur ausgezahlt, sie sind mittlerweile auch recht beliebte Ausrüstungsverbesserungen. + + + Polymaterialkomponenten + + + Ein Feuermechanismus mit niedrigem Impuls sorgt für einen geringeren Rückstoß. + + + Feuermechanismus mit niedrigem Impuls + + + Dank der festen Positionierung der Munition während des Feuerns, fliegt das jeweilige Projektil auf einer geraden Bahn und trifft sein Ziel. + + + Einbau einer Positionierungseinheit für die Munition + + + Ein Rollenverschlusssystem, das den Rückstoß und die Streuung reduziert. + + + Halboffenes Rollenverschlusssystem + + + Der Einbau eines zusätzlichen Gaszylinders reduziert die Waffenbelastung und erhöht damit die Feuerrate enorm. + + + Einbau eines zusätzlichen Gaszylinders + + + Ein Gasantrieb wird in selbstspannenden Schrotflinten für halbautomatisches Feuer eingesetzt. + + + Einbau eines Gasantriebs + + + Eine Schutzbeschichtung schließt Fehlzündungen aufgrund einer mechanischen Fehlfunktion gänzlich aus. + + + Komponentenschutzbeschichtung + + + Wenn ein Schuss abgegeben wird, öffnet ein Bauteil mittels einer Schiebebewegung des Vorderschaftgriffs einen Durchgang in den Lauf und kehrt danach wieder in den geschlossenen Zustand zurück. + + + Laufverschlusssystem + + + Mit einem Trägheitsautomatiksystem kann der Pump-Action-Mechanismus einer gewöhnlichen Schrotflinte in einen selbstspannenden Mechanismus umgewandelt werden. + + + Einbau eines Trägheitsautomatiksystems + + + Das einheitliche Rückstoßmodul ist eine der besten technischen Möglichkeiten, den Rückstoß zu reduzieren. + + + Einheitliches Rückstoßmodul + + + Eine automatische Antriebsstange verbessert die Präzision der Waffe + + + Einbau einer automatischen Antriebsstange + + + Ein aktives Gegengewicht bewegt sich vom Verschlussrahmen weg und kompensiert damit zum Teil den Rückstoß. + + + Einbau eines aktiven Gegengewichts + + + Die Verwendung von zusätzlichen Rollenteilen führt zu einer Reduzierung des Rückstoßes. + + + Einbau eines Rollenrückstoßkompensators + + + Das Verschlusssystem der Waffe wird durch eine bessere Variante ersetzt, wodurch die Feuerrate erhöht wird. + + + Offenes Verschlusssystem + + + Wenn die Waffe abgefeuert wird, bewegt sich das Verschlussrahmengegengewicht vom Verschluss weg, wodurch eine einfachere Handhabung der Waffe beim Schießen erreicht wird. + + + Einbau eines selbstregulierenden Gegengewichts + + + Als zusätzliches Bauteil wird ein Gegengewicht im Gehäuse angebracht, um mittels einer entsprechenden Gegenkraft den Rückstoß zu reduzieren. + + + Einbau eines beweglichen Gegengewichts + + + Der Trend nach Polymerkomponenten hat sich nicht nur ausgezahlt, sie sind mittlerweile auch recht beliebte Ausrüstungsverbesserungen. + + + Stoßresistente Polymerkomponenten für Automatikelemente + + + Eine spezielle Vorrichtung wird verbaut, um die Waffe vor Verschmutzungen zu schützen. + + + Automatischer Doppelstellung-Gasregler + + + Eine spezielle Vorrichtung verschließt den Lauf luftdicht, um den Druck beim Feuern zu erhöhen. + + + Einbau einer Laufverschlussvorrichtung + + + Ein Zahnrad sorgt für die Synchronisation, was die Flachheit der Waffe verbessert. + + + Synchronisation der Stangenbewegung + + + Eine Komponente, die am hinteren Gehäuse angebracht wird und die Verschlussgeschwindigkeit reduziert. Dies führt dazu, dass einfacher gezielt gefeuert werden kann. + + + Trägheitsverzögerungsmechanismus + + + Eine spezielle Komponente, die in das Verschlusssystem eingebaut wird, um die Verschlussbewegung abzufedern und den Rückstoß zu reduzieren. + + + Einbau einer Geschwindigkeitsreduzierung für das Rückstoßladesystem + + + Eine integrierte Verbesserung, die aufgrund des erheblich steigenden Gewichts der Waffe normalerweise meist bei Scharfschützengewehren durchgeführt wird. + + + Integrierte Rückstoßdämpfung + + + Einbau eines Mechanismus mit beweglichen Komponenten, der die Geschwindigkeit der Munitionszuführung beim Schießen erhöht. + + + Automatische Munitionszuführung + + + Verbesserung der Automatikkomponenten der Waffe, bei der mehrere Bauteile ersetzt werden. Dadurch wird die Schussgenauigkeit erhöht. + + + Ausgeglichenes stoßfreies System + + + Eine synthetische Komponente unmittelbar vor dem Bewegungsbereich des Verschlusses. Durch die erfolgende hohe Kompression wird die Schussgenauigkeit erhöht. + + + Einbau einer Abstoppvorrichtung + + + Eine Verbindung fixiert die Position des Laufs und wenn der Lauf sich bewegt, öffnen sich zusätzliche Kompensationslöcher. + + + Einbau einer "intelligenten Kompensation" + + + Eine Modernisierung, mit der das Abzugssystem weicher eingestellt wird, was für Scharfschützen wichtig ist. + + + Einbau einer Abzugsregulierung + + + Mit dieser Komponente wird dem Schützen der Moment besser vermittelt, in dem sich der Schuss löst. Dadurch wird die Schussgenauigkeit erhöht. + + + Einbau eines Abzugs mit besserer Rückmeldung + + + Ein Rollenverschlusssystem, das in westlichen Ländern häufig eingesetzt wird, reduziert den Rückstoß und die Streuung. + + + Halboffenes Rollenverschlusssystem + + + Ein spezieller Mechanismus kompensiert einen Teil der Energie, die beim Feuern freigesetzt wird, wodurch das Schießen mit der Waffe angenehmer von der Hand geht. + + + Dämpfung des Feuermechanismus + + + Weil Scharfschützengewehre mehr Wartungsarbeit als normale Waffen erfordern, können sie mit einem Dreistellung-Gasregler ausgestattet werden. + + + Einbau eines automatischen Dreistellung-Gasreglers + + + Die Beschichtung sorgt dafür, dass keine Energie entweicht. Damit wird der Projektilimpuls erhöht. + + + Verbesserung der Automatikteile mit einer Spezialbeschichtung + + + Durch den Einbau einer langen Feuermechanismusstange kann ein Scharfschützengewehr im Automatikmodus abgefeuert werden. + + + Lange Feuermechanismusstange + + + Eine Abstoppvorrichtung wirkt sich auf den Rückstoßmechanismus aus und verbessert damit die Schussgenauigkeit. + + + Installation einer Abstoppvorrichtung + + + Den herkömmlichen Lauf durch einen längeren Lauf zu ersetzen, verbessert die Schussgenauigkeit und die Flachheit. + + + Längerer Lauf + + + Das Fehlen von großen Gaskammern und die Laufmontierung am Vorderschaftgriff wirken sich positiv auf die Schussgenauigkeit aus. + + + "Schwebender" Lauf + + + Diese Modifikation verringert den Schaden, der durch Modifikationen entsteht, die ihrerseits die Feuerrate erhöhen. + + + Einbau eines Laufs mit Kühllamellen + + + Eine veraltete Komponente wird durch eine modernere ersetzt, wodurch der Rückstoß reduziert wird. + + + Optimierte Mündungsbremse + + + Einbau eines Laufs mit zusätzlichen gezogenen Kanälen, die die Projektilgeschwindigkeit und die Schussgenauigkeit der Waffe erhöhen. Der Nachteil ist, dass der Rückstoß beträchtlich steigt. + + + Zusätzliche gezogene Kanäle im Lauf + + + Dieser Lauf soll den effektiven Wirkungsbereich bei sehr kurzen Distanzen vergrößern und ist daher für zielgenaues Schießen nicht geeignet. Die Feuerrate wird durch den einfacher gezogenen Lauf erhöht. + + + Einbau eines einfacher gezogenen Laufs + + + Läufe mit Polygonzug werden normalerweise verwendet, um die Schussgenauigkeit zu erhöhen. + + + Einbau eines Laufs mit Polygonzug + + + Durch den Sinuszug wird die Lauftemperatur gesenkt und die Feuerrate erhöht. + + + Laufkammer mit Sinuszug + + + Ein besonderer Lauf für Waffen mit guten Flachheitswerten, der die Schussgenauigkeit erhöht. + + + Gezogene Scharfschützengewehrkanäle + + + Extrem widerstandsfähige Materialien sorgen für einen langsameren Verschleiß des Laufs. + + + Lauf aus extrem widerstandsfähiger Legierung + + + Die Behandlung der Laufinnenfläche schützt den Lauf vor mechanischen Schäden. + + + Behandlung des Laufs + + + Die synthetische Verstärkung des Laufs sorgt für eine beträchtliche Reduzierung der Streuung. + + + Synthetische Laufverstärkung + + + Den herkömmlichen Lauf durch einen längeren Lauf zu ersetzen, verbessert die Flachheit. + + + Längere Laufteile + + + Gasablasskanäle im Lauf schützen diesen nicht nur vor Verschmutzungen, sondern leiten einen Teil des Rückstoßes auch auf den Lauf selbst um. + + + Gasablasskanäle + + + Den herkömmlichen Lauf durch einen längeren Lauf zu ersetzen, verbessert die Flachheit. + + + Längerer Laufteil + + + Diese Schutzbeschichtung der Laufinnenfläche verhindert die Überhitzung, merzt Produktionsfehler aus und erhöht die Haltbarkeit enorm. + + + Schutzbeschichtung der Laufinnenfläche + + + Die Ausbalancierung des Laufs wird durch mehrere bewegliche Kolben erreicht, die dafür sorgen, dass die Waffe beim Halten stabiler in der Hand liegt. + + + Ausbalancierung des Laufs + + + Aufgrund des gezogenen Laufs ist es unmöglich, Schrotmunition zu verschießen, aber die erhöhte Schussgenauigkeit macht diesen Nachteil mehr als wett. + + + Gezogener Lauf + + + Durch die Verstärkung mit Polymaterialien kann der Laufdruck erhöht werden, was sich in einer höheren Projektilgeschwindigkeit niederschlägt. + + + Dynamische Laufverstärkung + + + Eine zylindrische Laufbohrung erhöht die Feuerrate der Waffe, ohne ihre Schussgenauigkeit zu beeinträchtigen. + + + Zylindrische Laufbohrung + + + Wenn die Waffe abgefeuert wird, bewegt sich ein Gegengewicht zum Mündungsbereich des Laufs und kompensiert damit einen Teil des Rückstoßes. + + + Einbau eines aktiven Gegengewichts am Laufmantel + + + Den herkömmlichen Lauf durch einen längeren Lauf zu ersetzen, verbessert die Schussgenauigkeit und Flachheit, verringert aber die Feuerrate. + + + Längerer Laufteil + + + Die Laufperforation führt zu einer Reduzierung des Rückstoßes, weil das Gas durch spezielle Öffnungen entweichen kann. + + + Perforierter Lauf + + + Ein professionell verkürzter Lauf erhöht die Feuerrate der Waffe, ohne die Flachheit und Schussgenauigkeit zu beeinträchtigen. + + + Verkürzter Lauf + + + Eine Chrombeschichtung der Laufinnenfläche erhöht die Haltbarkeit der Waffe. + + + Chrombeschichtung der Laufinnenfläche + + + Diese Kunststoffelemente kompensieren einen Teil des Rückstoßes. + + + Einbau von Kunststofftrennelementen + + + Ein einfacher gezogener Lauf ist bei sehr kurzen Distanzen sinnvoll, wenn es mehr auf die Feuerrate und weniger auf die Schussgenauigkeit ankommt. + + + Einbau eines einfacher gezogenen Laufs + + + Einbau eines Laufs mit zusätzlichen gezogenen Kanälen, die die Projektilgeschwindigkeit und die Schussgenauigkeit der Waffe erhöhen. Der Nachteil ist, dass der Rückstoß beträchtlich steigt. + + + Zusätzliche gezogene Kanäle im Lauf + + + Die Entlastung des Laufs führt zu einer enormen Reduzierung des Rückstoßes. + + + Übertragung des Laufkompensators/Mündungsfeuerreglers auf den Rahmen + + + Durch den Sinuszug wird die Lauftemperatur gesenkt und die Feuerrate erhöht, ohne die Flachheit zu beeinträchtigen. + + + Lauf mit Sinuszug + + + Läufe mit Polygonzug werden normalerweise verwendet, um die Schussgenauigkeit von Scharfschützengewehren zu erhöhen. + + + Einbau eines Laufs mit Polygonzug + + + Der pneumatische Antrieb setzt einen Teil der Rückstoßenergie in einen höheren Laufdruck um, wodurch die Mündungsgeschwindigkeit erhöht wird. + + + Pneumatischer Antrieb + + + Zusätzliche Bewegungskomponenten erhöhen das Maximalgewicht, das getragen werden kann. + + + Zusätzliche Servomotoren + + + Eine Entwicklung der Freiheit-Techniker, die als Erste überhaupt Metallteile von Exoskeletten durch Kohlefaser austauschten, um das hohe Gewicht zu senken. + + + Austausch von Metallteilen durch Kohlefaser + + + Eine Panzerung schützt die kritischen Komponenten des Exoskeletts vor Schaden durch Beschuss. + + + Antriebspanzerung + + + Das System für einfache Fortbewegung setzt verstärkte Federn und Gelenke ein, mit denen das Gewicht des Exoskeletts selbst genutzt wird, um die Motorfunktionen zu unterstützen. + + + "Schagohod"-System für einfache Fortbewegung + + + Die hydraulische Antriebshilfe ist eine Modifikation, die die vierte Generation der Exoskelette von der dritten Generation unterscheidet. Die Antriebshilfe ermöglicht es, mit einem Exoskelett zu sprinten. + + + Hydraulische Antriebshilfe + + + Eine Stoffeinlage verhindert Gewebeschäden im Falle eines Treffers. + + + Stoffeinlage zur Dämpfung + + + Die Silikonverstärkung ist wirkungsvoller als ihr Pendant aus Gummi und absorbiert Treffer so, dass der Träger weniger Schaden einstecken muss. + + + Silikonverstärkung zur Dämpfung + + + Stoff, Klammern und Verstärkungen werden durch leichtere synthetische Materialien ersetzt, um das Gewicht der Panzerung zu senken. + + + Leichtere synthetische Polymermaterialien + + + Die Gummierung verhindert Gewebeschäden im Falle eines Treffers. + + + Gummierte Schicht zur Dämpfung + + + Die Unterschicht kommt ins Spiel, wenn der Hauptstoff beschädigt wird. + + + Eine mehrschichtige Einlage aus Polykarbonat, Silikon und Kohlefaser für den Fall, dass die Hauptpanzerung durchbrochen wird. + + + Polymerschutzeinlagen + + + Der luftdichte Schutzanzug "Expanse" der Freiheit wird bei der Suche nach Artefakten in Anomaliegebieten eingesetzt. + + + Anomalieschutzanzug "Expanse" + + + Eine luftdichte Schicht aus synthetischem Material für den Fall, dass die äußere Hauptschicht beschädigt wird. + + + Synthetische Schicht + + + Eine Vielzahl von ergonomischen Anpassungen mithilfe einer Gummikonstruktion. Dabei bleibt die Mobilität erhalten, selbst wenn schwere Panzerung getragen wird. + + + Mobilitätsgummischutzanzug + + + Konstantan wird als Isolationsstoff gegen Elektrizität eingesetzt und hat eine sehr hohe Schmelztemperatur. + + + Wärmeisolationseinlagen aus Konstantan + + + Blei ist ein verlässlicher Schutz gegen Radioaktivität, weil es alle drei Arten von radioaktiver Strahlung absorbiert. + + + Bleizusätze für Schutzanzug + + + Allgemeiner Schutz vor Regen und ätzenden Substanzen, die ansonsten in direkten Kontakt mit der Haut kommen würden. + + + Ölzeugschutzanzug + + + Der mit einer feuerfesten Substanz behandelte Stoff ist besonders bei Stalkern beliebt, die nach Feuerartefakten suchen. + + + Mit einer feuerfesten Substanz behandelter Stoff + + + Magnesiumeinlagen schützen den Träger vor Hitzegefahren. + + + Magnesiumeinlagen + + + Eine einfache Plastikinnenschicht kann den Träger vor chemischen und elektrischen Gefahren schützen. + + + Luftdichte Plastikinnenschicht + + + Stoff, Klammern und Verstärkungen werden durch leichtere synthetische Materialien ersetzt, um das Gewicht der Panzerung zu senken. + + + Austausch von Stoff durch synthetische Materialien + + + Plexiglas absorbiert zwei Arten von radioaktiver Strahlung und ist zugleich leichter als Blei. + + + Plexiglasinnenschicht für Strahlenschutz + + + Zuverlässiger Schutz vor chemischen und elektrischen Gefahren. + + + Elastische, luftdichte Plastikinnenschicht + + + Eine dünne Schicht aus Konstantan dient als Isolation gegen Elektrizität. + + + Isolationsinnenschicht aus Konstantan + + + Glasfaser wird in Schutzanzügen eingesetzt, die von Einsatztruppen bei Naturkatastrophen getragen werden. + + + Glasfaserwärmeschutz + + + Imprägnierter Stoff beugt chemischen Vergiftungen vor. + + + Imprägnierter Schutzanzugsstoff + + + Gummi bietet einfachen Schutz bei kurzem Strahlenkontakt. + + + Gummierter Schutzanzugsstoff + + + Wird in Stalkerschutzanzügen eingesetzt, um die Haltbarkeit zu verbessern. + + + Widerstandsfähiger Schutzrahmen + + + Nickel ist feuerfest genug, um für Einlagen in Körperpanzerungen verwendet zu werden. + + + Feuerfester Schutzanzug mit Nickeleinlagen + + + Diese Legierung aus Nickel und Magnesium wird in Körperpanzerungen zum Schutz vor Stromschlägen eingesetzt. + + + Isolationsschutzanzug mit Manganineinlagen + + + Luftdichter Schutzanzug mit einer Antikorrosionsbeschichtung und Kevlarpanzerung. + + + Schutzanzug "Zweite Haut" mit integrierter Panzerung + + + Ein Schutzanzug aus neuen, nicht näher angegebenen Polymeren, die zuvor im Kiewer Forschungsinstitut bei der Entwicklung des Anzugs "Ökologe" mit Bismuteinlagen verwendet wurden. + + + Polymerschutzanzug "Ökologe" mit Bismuteinlagen + + + Die Bleimasche erzeugt einen undurchdringlichen Schutz vor Strahlung und Chemikalien, ohne die Beweglichkeit zu beeinträchtigen. + + + Plexiglasschutzanzug "Lebensretter" mit flexibler Bleimasche + + + Eine einheimische Entwicklung nach der Katastrophe von Tschernobyl. Wird in Exoskeletten eingesetzt, um elektrische Fehlfunktionen zu verhindern. + + + Schutzanzug "Evakuator" mit Bleieinlagen + + + Montage eines Sturmvisiers für den Einsatz bei kurzen Distanzen. + + + 1,6-fach Reflexvisier + + + Montage eines optischen Zielfernrohrs für mittlere und lange Distanzen. + + + Optisches 4-fach Zielfernrohr + + + Montage eines optischen Zielfernrohrs für lange Distanzen. + + + Optisches 5-fach Zielfernrohr + + + Montage eines optischen Zielfernrohrs für lange Distanzen. + + + Optisches 6-fach Zielfernrohr + + + Eine Modifikation an Sturmwaffen mit Reflexvisieren, die den Visierkontrast im gelben Spektrum erhöht. Dies ist besonders für Einsätze in Dämmerlicht und in schlecht beleuchteten Gebäuden von Vorteil. + + + Verbesserung des Visierkontrasts + + + Ein Wärmesucher macht es möglich, die für den menschlichen Körper typischen Wärmequellen zu entdecken und zu identifizieren. + + + Automatisches optisches Zielerfassungssystem + + + Nachtsichtgeräte haben schon sehr vielen Scharfschützen mehr als nur gute Dienste erwiesen. + + + Einbau eines Nachtsichtgeräts + + + Mit dieser Modifikation kann das Visier recht einfach auf die Zielentfernung eingestellt werden. + + + Visier mit einstellbarer Distanzkontrolle + + + Ein pneumatischer Kolben reduziert den Rückstoß bei Salvenfeuer. + + + Pneumatischer Kolben + + + Ein bewegliches Schulterstück verringert die Wirkung des Rückstoßes auf den Körper beträchtlich. + + + Einbau einer Schulterstückdämpfung + + + Ein moderner Kolben, der der besonderen Form des menschlichen Körpers angepasst wurde. + + + Ergonomischer Kolben + + + Beim Abfeuern der Waffe wird ein Teil der Pulvergase aus dem Lauf in die Öffnung hinter dem Verschluss übertragen, wodurch dieser sanfter gestoppt wird, wenn er sich wieder zurückbewegt. + + + Einbau eines Gaspuffers für das Verschlusssystem + + + Der Verschlussrahmen wird verlängert und ragt zum Teil in den Kolben hinein. Dadurch wird die Flachheit erhöht, allerdings wächst auch der Rückstoß an. + + + Verlängerung des Verschlussrahmens + + + In den Kolben wird ein bewegliches Gegengewicht eingebaut, das beim Schießen dem Rückstoß entgegenwirkt. + + + Bewegliches Gegengewicht + + + Mit einer größeren Ablage kann zielgenauer geschossen werden. + + + Vergrößerte Ablage + + + Eine Feder-Rückstoßdämpfung verbessert die Handhabung eines tragbaren Maschinengewehrs beim Schießen. + + + Integrierte Feder-Rückstoßdämpfung + + + Ein Puffer für das Verschlusssystem, der im Kolben eingebaut wird und den größten Teil des Rückstoßes absorbiert. + + + Zusätzlicher Gaspuffer für das Verschlusssystem + + + Bei großkalibrigen Scharfschützengewehren wird am Standardkolben häufig eine gummierte Komponente zur Dämpfung des Rückstoßes angebracht. + + + Dämpfungskomponente am Kolben + + + Ein einstellbarer Kolben mit einer Wangenauflage ist nützlich, um aus komfortablen und weniger komfortablen Positionen schießen zu können. + + + Einstellbarer Kolben mit Wangenauflage + + + Eine im Kolben eingebaute Komponente für großkalibrige Waffen mit starkem Rückstoß. + + + Hydraulische Rückstoßdämpfung am Kolben + + + Aktivfilter können selbst mit korrosiven Chemikalien fertigwerden. + + + Aktivfilter + + + Der geschlossene Ring hat sich als Teilschutz gegen Psi-Emissionen bewährt. + + + Psi-Schutzring aus Stahlgitterpaaren + + + Eine Maske, die bei kontaminierter Luft oder bei Temperaturen, die entweder zu hoch oder zu niedrig zum Atmen sind, eingesetzt wird. + + + Auftragung einer Abschirmungsbeschichtung + + + Auftragung einer Abschirmungsbeschichtung + + + Ein Filter mit einer verstärkten Antikorrosionsbeschichtung und einer zusätzlichen Schutzschicht gegen giftige Substanzen. + + + Filter für den Einsatz in kontaminierter Umgebung + + + Eine Plexiglasmaske schützt teilweise vor radioaktiver Strahlung. + + + Plexiglasbeschichtung + + + Eine Plexiglasmaske schützt teilweise vor radioaktiver Strahlung. + + + Plexiglasatemmaske + + + Eine Atemmaske, die giftige Substanzen komplett herausfiltert. + + + Imprägnierte Atemmaske + + + Diese Beryllium- und Aluminiumplatten bieten einen hervorragenden Schutz, ohne das Gewicht des Helms nennenswert zu vergrößern. + + + Beryllium- und Aluminiumplatten + + + Beryllium- und Aluminiumplatten bieten einen besseren Schutz, ohne das Gewicht nennenswert zu vergrößern. + + + Beryllium- und Aluminiumplatten + + + Verbesserte Filter gewährleisten ein konstantes Sauerstoffniveau unabhängig davon, wie kontaminiert die Umgebung ist. + + + Einbau von verbesserten Filtern für wissenschaftliche Arbeiten + + + Hochentwickelte Psi-Schutzvorrichtung, von der behauptet wird, dass sie von einem Wissenschaftler namens Sacharow erfunden wurde. + + + Einbau des Psi-Kuppelschutzes + + + Schutzrahmen aus einer Legierung gegen thermischen und elektrischen Schaden. + + + Gesichtsschutz "Thunderbird" aus Konstantan + + + Zusätzliche Panzerung, die die Haltbarkeit des Helms erhöht. + + + Verstärkte Helmpanzerung + + + Ein Filter mit einer zusätzlichen Reinigungsschicht und einem System zur Neutralisierung von giftigen Substanzen. + + + Verstärktes Atemgerät für extreme Bedingungen + + + Einbau eines Nachtsichtgeräts für Einsätze bei Nacht oder unter schlechten Lichtbedingungen. + + + Nachtsichtgerät der ersten Generation + + + Im Falle einer kritischen Kontaminierung der Luft mit radioaktiven oder chemischen Partikeln wird mit diesem System in den geschlossenen Atemkreislauf gewechselt. + + + Schutzsystem gegen radioaktive und chemische Gefahren + + + Reinigungs- und Atemmaske "Dampf" + + + Einbau eines verbesserten Nachtsichtgeräts für den Einsatz in vollständiger Dunkelheit. + + + Nachtsichtgerät der zweiten Generation + + + Ein Wärmesucher macht es möglich, die für den menschlichen Körper typischen Wärmequellen zu entdecken und zu identifizieren. + + + Automatisches Zielerfassungssystem + + + Ein wissenschaftliches Gerät auf Wellenbasis, das für den Einsatz in Anomaliegebieten mit Psi-Emissionen entwickelt wurde. + + + Psi-Stimulator "Orakel" + + + Einbau eines verbesserten Nachtsichtgeräts für den Einsatz in vollständiger Dunkelheit. + + + Nachtsichtgerät der dritten Generation + + + Ionisierte Luftpartikel bewegen sich zwischen den Elektroden des Systems entgegen der Bewegungsrichtung der Elektronen, wodurch ein Ionenwind erzeugt wird. + + + Kühlsystem "Ionenwind" + + + Mit einem Infrarotscanner können Menschen in der Nähe entdeckt werden. + + + Infrarotscanner + + + SPB - VPZ.m.IV Psi-Schutzsystem mit psychologischen Sicherheitswellen (Version 4). + + + SPB - VPZ.m.IV Kampfsystem + + + Mit dieser verstärkten Rücklauffeder wird die Projektilgeschwindigkeit erhöht. + + + Verstärkte Rücklauffeder + + + Die beweglichen Teile des Rücklaufmechanismus werden verstärkt und gedämpft, damit der Lauf sich beim Schießen ruhiger verhält und so das Zielen vereinfacht. + + + Dämpfung des Rücklaufmechanismus + + + Einbau einer zusätzlichen Rücklauffeder mit einer entgegengesetzten Windung, um den Rückstoß zu reduzieren, ohne die Flachheit zu beeinträchtigen. + + + Zusätzliche Rücklauffeder + + + Die Schutzbeschichtung erhöht die Zuverlässigkeit und, was noch wichtiger ist, schließt den Mechanismus luftdicht ab, wodurch keine Energie entweichen kann. + + + Schutzbeschichtung für Komponenten des Rücklaufmechanismus + + + Titanstangen können viel höhere Feuerraten aushalten als gewöhnliche Stangen. + + + Rücklaufstangen aus Titan + + + Ein synthetisches Element wird an den Stangen angebracht, damit sie sich exakt so bewegen wie gewünscht. Dies verbessert die Schussgenauigkeit. + + + Einbau eines Ausgleichselements + + + Durch die Verstärkung der Rohrführungshülse kann im Lauf ein größerer Druck erreicht werden. Damit wird die Projektilgeschwindigkeit erhöht. + + + Verstärkung der Rohrführungshülse + + + Es wird eine Verteilerkomponente eingebaut, die durch die entstehenden Gase geöffnet und durch das Rücklaufsystem selbst wieder geschlossen wird. Damit kann ein Teil der freigesetzten Gasenergie im Rücklaufsystem genutzt werden. + + + Einbau eines Verteilers + + + Der Rücklaufmechanismus wird durch eine stärkere Version ersetzt, die aus je zwei Führungsstangen und Rücklauffedern besteht. Dies erhöht die Feuerrate der Waffe. + + + Umwandlung in ein Zweistangensystem + + + Spezielle Auslassöffnungen um den Trommelbereich der Waffe reduzieren den Rückstoß. + + + Verwendung der Gasenergie + + + Auf der Trommel werden diagonale Nutenfelder hinzugefügt. Dies erhöht die Drehgeschwindigkeit des Mechanismus, der die Gasenergie nutzt. + + + Diagonale Nutenfelder auf der Trommel + + + Der Vorteil dieser europäischen Standardmodifikation liegt im reduzierten Gewicht, ohne die Zuverlässigkeit zu beeinträchtigen. + + + Stoßresistenter Polymerkolben + + + Ein Gehäuse aus einer extrem widerstandsfähigen Legierung sorgt dafür, dass das Sturmgewehr tägliche Kampfhandlungen gut übersteht. + + + Gehäuse aus extrem widerstandsfähiger Legierung + + + Ein einfaches Gegengewicht am vorderen Gehäuse, um den Rückstoß zu reduzieren. + + + Einbau eines Gegengewichts am Stahlbehälter + + + Eine Ummantelung ist hilfreich bei erhöhten Feuerraten, weil dabei zusätzliche Hitze erzeugt wird, die kompensiert werden muss. + + + Zusätzliche Kühlummantelung + + + Eine angenehmere Griffform, die das Feuern der Waffe in Bewegung einfacher macht. + + + Ergonomische Gehäuseform + + + Eine Modifikation, die ausschließlich an Waffen mit festem Bullpup-Gehäuse vorgenommen wird und die Wartung der Waffe vereinfacht. + + + Modulares Gehäuse + + + Diese Beschichtung verhindert das Überhitzen des Laufs, beseitigt Produktionsmängel und verlängert die Haltbarkeit beträchtlich. + + + Glättbeschichtung des Gehäuses und Laufs + + + Eine leichte, bewegliche Komponente wird im abgeschrägten Griff eingebaut, um dem Rückstoß der Waffe entgegenzuwirken, wenn sie abgefeuert wird. + + + Abgeschrägter Griff + + + Durch die Aussparung im Griff sinkt das Gewicht der Waffe. + + + Abgeschrägter Griff + + + Eine leichtere Version des Standardkolbens. + + + Leichterer Kolben + + + Durch die Verwendung eines leichteren Polymaterials sinkt das Gewicht der Waffe. + + + Stoßresistenter Polymerkolben + + + Der Waffe wird ein zusätzliches Gegengewicht hinzugefügt, um den Rückstoß zu reduzieren. + + + Einbau eines Gegengewichts + + + Eine modernere und angenehmere Griffform erleichtert die Handhabung der Waffe. + + + Ergonomischer Griff + + + Ein Dämpfungsgriff reduziert den Rückstoß. + + + Dämpfungsgriff + + + Eine modernere und angenehmere Kolbenform erleichtert die Handhabung der Waffe. + + + Ergonomischer Kolben + + + Eine spezielle Beschichtung schützt die Waffe vor äußeren Einwirkungen. + + + Antikorrosionsbeschichtung + + + Eine Quecksilber-Rückstoßdämpfung wird im Waffenkolben eingebaut und absorbiert einen Teil des Rückstoßes, wenn die Waffe abgefeuert wird. + + + Quecksilber-Rückstoßdämpfung + + + Ein frei bewegliches Impulsgegengewicht, das sich vom Verschluss wegbewegt, wenn die Waffe abgefeuert wird, und damit einen Teil des Rückstoßes absorbiert. + + + Einbau eines Impulsgegengewichts + + + Der Austausch des Materials reduziert den Schaden, den der Lauf durch unregelmäßige Temperaturanstiege beim Schießen nehmen kann. Daher kann die Feuerrate der Waffe erhöht werden. + + + Extrem widerstandsfähige, hitzebeständige Legierungen + + + Eine wichtige Modifikation, die die Waffe vor den Auswirkungen der Umgebungstemperatur beim Schießen schützt. + + + Einbau einer temperaturregelnden Ummantelung + + + Diese technologische Entwicklung der äußeren Lamellierung erfordert höchste Präzision, damit sich keine Punkte überdurchschnittlicher Erhitzung auf dem Lauf bilden. + + + Externe Lauflamellen + + + Der Lauf wird durch eine modernere Variante ersetzt. Dies verbessert die Schussgenauigkeit enorm. + + + Änderung der Laufgeometrie + + + Ein teurer Rahmen für eine Waffe, der lange haltbar ist. + + + Titanrahmen + + + Mit diesem Material ist der Rahmen zuverlässiger als mit Verbundwerkstoff. + + + Massivstahlrahmen + + + Der Pistolenrahmen wird durch eine leichtere Variante ersetzt, ohne die Zuverlässigkeit der Waffe zu beeinträchtigen. + + + Polymerpistolenrahmen + + + Eine modernere und angenehmere Griffform erleichtert die Handhabung der Waffe. + + + Ergonomischer Griff + + + Ein Dämpfungsgriff reduziert den Rückstoß. + + + Dämpfungsgriff + + + Verstärkte Schutzklappen, die die Waffen vor Schmutz und Stößen schützen sollen. + + + Schutzverstärkung + + + Eine Änderung im hinteren Teil sorgt für eine ergonomischere Griffform. + + + Änderung der Griffform mit geradem hinteren Teil + + + Die Möglichkeit, die passende Grifflänge selbst einzustellen, sorgt für eine ergonomischere Griffform. + + + Einstellbarer Griff + + + Diese Modifikation ist nur dann möglich, wenn bereits eine Rücklauffeder in den Griff integriert wurde. + + + Einbau einer Rücklauffederdämpfung + + + Die Möglichkeit, die passenden Platten auszuwählen, sorgt für eine ergonomischere Griffform. + + + Griff mit geänderter Form und austauschbaren Platten + + + Die Ummantelung ist für Waffen gedacht, die häufig eingesetzt werden, und schützt sie vor allzu frühem Verschleiß. + + + Einbau einer perforierten Stahlummantelung + + + Eine technologischere und modernere Rückstoßdämpfung als diejenigen, die in herkömmlichen automatischen Waffen Verwendung finden. + + + Effektive Mündungsbremse + + + Ein modernerer und besser geeigneter Lauf für Scharfschützeneinsätze bei extrem großen Distanzen. + + + Einbau eines schweren Laufs mit Polygonzug + + + Längsrillen verhindern, dass der Lauf überhitzt und verschmutzt. + + + Längsrillen am Lauf + + + Integrierter Schalldämpfer und Mündungsfeuerunterdrücker. Unverzichtbar für heimliches Schießen. + + + Einbau eines integrierten Schalldämpfers + + + Normalerweise wird der Sinuszug bei Sturmwaffen verwendet, um ihre Feuerrate zu erhöhen. + + + Laufkammer mit Sinuszug + + + Ein Injektor der Generation A, der in einem der Kiewer Forschungsinstitute entwickelt wurde. Er injiziert regelmäßig kleine Adrenalindosen in das Blut. Das mag zwar gefährlich sein, aber es kann Ihnen im Notfall auch das Leben retten. + + + Adrenalininjektor "Rage" + + + Ein System zur Entsorgung von Kondensat mit giftigen Substanzen aus dem Reinigungsfilter. + + + Entgiftungssystem + + + Dieser kleine, von Clear Sky entwickelte Wellensender wird auf dem Rücken angebracht und erhöht, falls er ständig genutzt wird, die Gerinnungsgeschwindigkeit des Blutes. + + + Hämostimulator "Ray" + + + Mit diesem System wird das Äußere des Schutzanzugs unter Strom gesetzt, wodurch radioaktive und chemische Partikel vom Anzug abgewiesen werden. + + + Integrierter Partikelabweiser + + + Ein Injektor der Generation B, der regelmäßig ein Gerinnungsmittel in den Blutkreislauf pumpt, wenn der Blutdruck stark fallen sollte. + + + Hämoglobininjektor "Hydra" + + + Dieses System behält stets die optimale Körpertemperatur bei und verhindert damit eine etwaige Erschöpfung. + + + Einbau eines Temperaturreglers + + + Dieser Wellensender wird auf der Brust angebracht und erhöht, falls er ständig genutzt wird, die Geschwindigkeit der Wundheilung, die Stärke des Immunsystems und die Schmerzschwelle des Trägers erheblich. + + + Biostimulator "Sonne" + + + Ein wissenschaftliches Gerät auf Wellenbasis, das für den Einsatz in Anomaliegebieten mit Psi-Emissionen entwickelt wurde. + + + Psi-Stimulator "Orakel" + + + Ein Injektor der Generation C, der im Kampf eine Mischung aus nicht näher bekannten Mitteln in den Blutkreislauf pumpt, die die Geweberegeneration beschleunigen und das Schmerzempfinden dämpfen. + + + Bioregenerator "Phönix" + + + Ein integriertes System, das die Gesundheit des Trägers überwacht und bei Bedarf Vitamine, Adrenalin oder Anabolika verabreicht. + + + Einbau eines Lebenserhaltungssystems + + + Dieser Wellensender wird am Hals angebracht. Sein Aufbau und seine Wirkungsweise sind zwar noch nicht ganz klar, aber der Sender hat nachweislich eine beruhigende Wirkung. + + + Neurostimulator "Reflex" + + + Der Zweck der Verschlussbolzendämpfung liegt darin, einen Teil des Rückstoßes zu kompensieren, wodurch die Streuung bei Salvenfeuer verringert wird. + + + Verschlussbolzendämpfung + + + Eine der einfachsten und beliebtesten Modifikationen, mit denen der Abzugswiderstand reduziert wird. Einfach und nützlich. + + + Weicher Abzug + + + Eine spezielle Auswahl an Komponenten aus verschiedenen Materialien, die an die jeweilige Waffe angepasst werden. Diese Modifikation ist zwar nicht ganz billig, aber sie verbessert die Haltbarkeit Ihrer Waffe. + + + Feuermechanismuskomponenten aus Verbundwerkstoff + + + Damit wird die Feuerrate der Waffe erhöht, was allerdings auf Lasten der Schussgenauigkeit und Zuverlässigkeit geht. + + + Erzwungene Abzugsverzögerung + + + Die Entfernung der Abzugsfeder sorgt dafür, dass der erste Schuss eine halbe Sekunde früher abgegeben werden kann. Das mag nicht viel sein, kann aber im Notfall Ihr Leben retten. + + + Federloser Abzug + + + Eine Schutzbeschichtung schließt Fehlzündungen aufgrund von Fehlfunktionen des Feuermechanismus gänzlich aus. + + + Schutzbeschichtung für Komponenten des Feuermechanismus + + + Durch den verschlusslosen Feuermechanismus wird das automatische Laden beschleunigt, was die Feuerrate der Waffe erheblich erhöht. + + + Verschlussloser Feuermechanismus + + + Der stoßfreie Feuermechanismus durchbohrt die Munition, statt sie mit einem Bolzen zu treffen. Dadurch geht das Schießen beträchtlich sanfter von statten. + + + Einbau eines stoßfreien Feuermechanismus + + + Der Abzug wird mit dem ersten Schuss entsichert. Alle nachfolgenden Schüsse erfolgen danach mit dem entsicherten Abzug und damit schneller. + + + Feuermechanismus mit Doppelabzug + + + Eine der einfachsten und beliebtesten Modifikationen, mit denen der Abzugswiderstand reduziert wird. Einfach und nützlich. + + + Weicher Abzug + + + Das Vorspannen erhöht die Schussgenauigkeit. + + + Feuermechanismus mit Vorspannvorrichtung + + + Sorgt dafür, dass vom ersten bis zum letzten Schuss der Abzug mit demselben Druck betätigt werden muss. Dies wirkt sich positiv auf die Handhabung aus. + + + Sicherer Abzug + + + Eine moderne Modifikation, die verhindert, dass der Verschlussbereich der Waffe Schaden nimmt. + + + Vergrößerter Verschlusskopf + + + Mit einem modularen Feuermechanismus gestalten sich die Wartung und das Austauschen von Teilen einfacher. Darüber hinaus wird auch die Handhabung verbessert. + + + Modularer Feuermechanismus + + + Die Spannkomponente reduziert beträchtlich den Druck, der notwendig ist, um den Abzug zu betätigen. Dadurch wird die Schussgenauigkeit verbessert. + + + Einbau einer Spannkomponente + + + Hierbei handelt es sich um eine neue technologische Entwicklung, die es ermöglicht, den Feuermodus sehr einfach zu wechseln. Dies ist ein weiterer Schritt auf dem Weg zu ergonomischeren Waffen. + + + Doppelfeuermodus + + + Nachdem der erste Schuss abgegeben wurde, ist nur noch eine halbe Abzugsbewegung nötig, um nachfolgende Schüsse abzugeben. + + + Feuermechanismus mit kurzer Bewegung + + + Zusätzliche Bewegungskomponenten erhöhen das Maximalgewicht, das getragen werden kann. + + + Zusätzliche Servomotoren + + + Dieses System verabreicht antitetanische, entzündungshemmende und Sulfanilamid-Substanzen. + + + Integriertes System "Feldarzt" + + + Ein Belüftungssystem für den Schutzanzug mit einem Vorsorgefilter für den Einsatz in kontaminierter Umgebung. + + + Interne Temperaturregelung + + + Eine ergonomische Verbesserung: Spezielle Stützen am Schutzanzug sorgen dafür, dass das getragene Gewicht besser kompensiert wird und dadurch geringer wirkt. + + + Gewichtsverteilungsweste + + + Ein Sauerstoffbehälter ist nötig bei Einsätzen in chemisch oder radioaktiv verseuchter Umgebung. + + + Einbau eines Sauerstoffbehälters + + + Einbau eines zusätzlichen Artefaktbehälters. + + + Zusätzlicher Artefaktbehälter + + + Ein System aus Stützelementen, mit denen das getragene Gewicht ausgeglichener auf den gesamten Körper verteilt wird. + + + Stützsystem für Gewichtsverteilung + + + Ein Rahmen für den Rücken entlastet die Schulter, indem er das getragene Gewicht auf den gesamten Körper verteilt. Dadurch wird das maximale Tragegewicht erhöht. + + + Gewichtsverteilungsrahmen für den Rücken + + + Dieses System verabreicht antiseptische, antitetanische und stimulierende Mittel. Es ist zwar selbst gemacht, aber schadet dem Körper offensichtlich nicht. + + + Integriertes System "Pflege" + + + Dieses System lädt ein spezielles Gitter mit derselben Ladung wie die einer entsprechenden Anomalie auf, um die Gefahr zu reduzieren. + + + Elektrostatisches Schutzsystem "Stingray" + + + Imprägnierte Innenschicht, die vor chemischer Vergiftung schützen soll. + + + Imprägnierte Innenschicht für chemischen Schutz + + + Ein experimentelles System für Langstreckenläufe, das wegen seines hohen Preises und der zweifelhaften Umsetzung außerhalb der Zone nicht zum Einsatz kommt. + + + Integriertes System "Athlet" + + + Ein System zur Entsorgung von Kondensat mit giftigen Substanzen aus dem Reinigungsfilter. + + + Entgiftungssystem "Gegengift" + + + Einbau eines zusätzlichen Artefaktbehälters mit zwei Fächern. + + + Zusätzlicher Artefaktbehälter mit zwei Fächern + + + Ein Kampfunterstützungssystem, das in den Schutzanzug integriert wird. Es wird selten verwendet, hauptsächlich von den Spetsnaz. Das System bietet bereits eingebaute Adrenalin- und Gerinnungsmittelspender. + + + Feldunterstützungssystem "Warjag" + + + Bei diesem Prototypen eines Kampfunterstützungssystems haben die Entwickler auf schädliche Adrenalinspender verzichtet. Stattdessen werden zusammen mit den Gerinnungsmitteln heilende Substanzen verabreicht. + + + Feldunterstützungssystem "Skif" + + + Diese ziemlich teure Modifikation ist relativ üblich für Waffen der neueren Generationen. + + + Einbau eines massiven Verschlusses + + + Die Verstärkung des Verschlussbereichs verhindert das Entweichen von Energie, wodurch die Flachheit der Waffe verbessert wird. + + + Verschlussverstärkung mit synthetischen Einlagen + + + Anders als die Bezeichnung vermuten lässt, wird hierbei der Verschluss ausgewechselt, weil er die Auswirkungen der erhöhten Feuerrate wegstecken muss. + + + Schneller Automatikabzug + + + Das Gasventil weist ein bewegliches Teilstück auf, das sich mit derselben Geschwindigkeit bewegt und damit einen Teil des Rückstoßes kompensiert. + + + Einbau eines Gasventils mit einem beweglichen Teilstück + + + Ein zweiter Kolben bewegt das Gegengewicht, das der Bewegung des Verschlusssystems entgegenwirkt. + + + Einbau eines zusätzlichen Gaskolbens + + + Die Schutzbeschichtung erhöht die Zuverlässigkeit und, was noch wichtiger ist, schließt den Mechanismus luftdicht ab, wodurch keine Energie entweichen kann. + + + Schutzbeschichtung für den Verschluss + + + Mit diesen Längsrillen im Gehäuse werden die Reibung verringert und kleine Schmutzpartikel eingefangen, wodurch die Verschmutzung des Verschlusssystems verhindert wird. + + + Längsrillen im Gehäuse + + + Der Durchmesser der Gaskammer wird durch synthetische Verstärkungen verringert. Dadurch steigt die Projektilgeschwindigkeit beträchtlich an. + + + Gerichtete Gasenergie + + + Der Verschluss leitet auf dem Weg in seine Startposition die Luft durch die Laufkammer und kühlt sie damit. + + + Kühlsystem + + + Der Verschluss der Waffe gleitet entlang des Laufs. Damit wird verhindert, dass sich der Mündungsbereich nach oben bewegt. + + + Einbau eines gleitenden Verschlusses + + + Der Einbau eines Gaskolbens verhindert das Eindringen von Gasen in den Verschlussrahmen. Dies sorgt dafür, dass die Waffe deutlich weniger schmutzanfällig ist. + + + Einbau eines Gaskolbens + + + Dieses System fängt einen Teil der anfallenden Gase ab, wodurch die Bewegung des Verschlusssystems verbessert wird. + + + Gasauffangsystem + + + Der Austausch der Automatikteile ist mehr eine Optimierung als eine Verbesserung des Gaskolbens. Dies resultiert in einer beträchtlichen Steigerung der Feuerrate. + + + Gaskolben für kurze Bewegungen + + + Ein Rollenverschlusssystem, das in modernen Waffen häufig eingesetzt wird, reduziert den Rückstoß und die Streuung. + + + Wechsel auf ein halboffenes Verschlusssystem + + + Indem ein Teil der entstehenden Wärme absorbiert wird, werden die Temperaturschwankungen der Waffe beim Feuern reduziert. + + + Hitzeabsorbierende Komponenten + + + Eine längere Bewegung des Gaskolbens erhöht leicht die Länge der Waffe, sorgt aber auch für eine beträchtliche Verbesserung der Flachheit. + + + Gaskolben für lange Bewegungen + + + Ein Puffer für bewegliche Teile verteilt den Rückstoß gleichmäßig auf die gesamte Waffe, sodass die Wirkung abgeschwächt wird. + + + Einbau eines Spezialpuffers für bewegliche Teile + + + Die symmetrische Kühlung eines Laufteils durch den Auswerfer sorgt dafür, dass die Waffe nicht überhitzt. + + + Gleichmäßiges Kühlsystem + + + Sorgt für eine erhöhte Feuerrate, ohne andere Teile durch erhöhten Rückstoß zu beeinträchtigen. + + + Beweglicher Verschlussbereich + + + Verbessert die Flachheit der Waffe, indem der Impuls besser auf die Munition übertragen wird. + + + Laufschließsystem des Verschlussbereichs + + + Reduziert den Rückstoß dadurch, dass die Verschlussbewegung verlangsamt wird. + + + Langsame Rückwärtsbewegung des Verschlusssystems + + + Die Schutzbeschichtung schützt die Waffe vor vorzeitigem Verschleiß. + + + Schutzbeschichtung für den Verschluss + + + Verbessert die Flachheit der Waffe, indem der Impuls besser auf die Munition übertragen wird. + + + Schiefer Laufabschluss + + + Ein schwererer und geschlossener Verschluss verhindert Fehlfunktionen im Verschlussbereich der Waffe. + + + Verstärktes und komplett geschlossenes Verschlusssystem + + + Ein kleiner Puffer kompensiert einen Teil des Rückstoßes. + + + Polymerrückstoßpuffer + + + Der Einbau einer Stahleinlage reduziert den Rückstoß. + + + Einbau einer abschließenden Einlage + + + Durch eine schnellere Verschlussbewegung und die entsprechende Verstärkung des Rücklaufmechanismus kann die Flachheit der Waffe verbessert werden. + + + Verbesserte Verschlussbewegung + + + Eine kurze Verschlussbewegung erhöht die Feuerrate der Waffe beträchtlich, ohne die Flachheit zu beeinträchtigen. + + + Einbau eines Verschlusssystems mit kurzer Bewegung + + + Eine lange Verschlussbewegung sorgt dafür, dass mehr Energie auf die Munition übertragen wird. + + + Einbau eines Verschlusssystems mit langer Bewegung + + + Der Austausch der Automatikteile ist mehr eine Optimierung als eine Verbesserung des Gaskolbens. Dies resultiert in einer beträchtlichen Steigerung der Feuerrate. + + + Einbau eines Rückstoßenergienutzungssystems mit kurzer Bewegung + + + Der Einbau dieses Moduls verringert erheblich die Streuung, ohne die Feuerrate zu beeinträchtigen. + + + Rücklaufmodul mit Doppelfeder + + + Der Einbau zusätzlicher Kompensationsöffnungen sorgt für eine beträchtliche Reduzierung des Rückstoßes. + + + Integrierter Vertikalkompensator für den Lauf + + + Modernisierung von Automatikteilen der Pistole, sodass Automatikfeuer möglich wird. + + + Vollautomatischer Feuermodus + + + Verbesserung von Automatikteilen der Pistole, sodass Dreifach-Salvenfeuer möglich wird. + + + Dreifach-Salvenfeuermodus + + + Preis + + + Kann nicht eingebaut werden + + + Installiert + + + Wollen Sie wirklich den folgenden Einbau vornehmen: + + + Automatisches Zielerfassungssystem + + + Automatisches Zielerfassungssystem + + + Optisches 5-fach Zielfernrohr + + + Optisches 6-fach Zielfernrohr + + + Infrarotscanner + + + Gewicht der Körperpanzerung + + + Nachtsichtgerät der zweiten Generation + + + Nachtsichtgerät der dritten Generation + + + Schiene für optisches Zielfernrohr + + + Integrierter Schalldämpfer + + + Unterlaufgranatwerfer + + + Wundheilung + + + Lebensregeneration + + + Nachtsichtgerät der ersten Generation + + + Justierbares Visier + + + Hochkontrastvisier + + + Servomotorverstärker + + + Schutzanzughaltbarkeit + + + Es ist nicht klar, wie die Waffe funktioniert. Ohne weitere Informationen über ihren Aufbau, kann sie nicht repariert werden. + + + Der Techniker kann diese Modifikation nicht durchführen + + + Dieses Teil wurde bereits modifiziert + + + Nicht genug Geld + + + Verwendet keinen Schrot + + + Automatikfeuermodus + + + Dreifach-Salvenfeuermodus + + + Anzahl der Kisten + + + der Techniker braucht Wodka + + + der Techniker benötigt Werkzeug für einfache Arbeiten + + + der Techniker benötigt Werkzeug für feine Arbeiten + + + der Techniker benötigt Werkzeug für Kalibrierungsarbeiten + + + der Techniker benötigt zusätzliche Informationen + + + vorangehende Modifikationen erforderlich + + + Schutzschicht "Armadillo" auf Basis von Saphirkristallen + + + Verstärktes Titan- und Berylliumgerüst + + + Zusätzliche Kohlefaserbeschichtung + + + Gummierte Stoffunterschicht + + diff --git a/gamedata/configs/text/ger/st_land_names.xml b/gamedata/configs/text/ger/st_land_names.xml new file mode 100644 index 0000000..613d0e0 --- /dev/null +++ b/gamedata/configs/text/ger/st_land_names.xml @@ -0,0 +1,171 @@ + + + + Klaue-Anomalie + + + Eisenwald-Anomalie + + + Sägewerk + + + Antennenkomplex Krug + + + Kläranlage + + + Rundkreis-Anomalie + + + Forststation + + + Skadowsk + + + Abgebrannter Bauernhof + + + Boiler-Anomalie + + + Sumpf + + + Isumrudnoje + + + Schewtschenko + + + Baggerschiff + + + Dockkräne + + + Pinieneiche-Anomalie + + + Tankstelle + + + Altes Schiff + + + Narbe-Anomalie + + + Preobraschenski-Brücke + + + Südliches Plateau + + + Werkstätten des Umspannwerks + + + Aschehügel-Anomalie + + + Kühlturm + + + Umspannwerk + + + Plawni-Anomalie + + + Zementfabrik + + + Kopatschi + + + Janow-Station + + + Steinbruch + + + Bunker der Wissenschaftler + + + Flugabwehrkomplex Wolchow + + + Anomales Wäldchen + + + Parkplatz + + + Checkpoint + + + Asphalt-Anomalie + + + Östlicher Tunnel + + + Containerlagerhaus + + + Belüftungsanlage + + + Hubschrauberlandeplatz + + + Betonbad-Anomalie + + + Jupiter-Anlage + + + Prometheus-Kino + + + Flusshafen + + + Altes Servicezentrum + + + Schule + + + Krankenhaus + + + Servicezentrum Jubilejni + + + Waschsalon + + + Kindergarten + + + Wohnanlage + + + Lebensmittelgeschäft + + + Kaufhaus + + + Buchladen + + + Vulkan-Anomalie + + + Wein-Anomalie + + diff --git a/gamedata/configs/text/ger/st_mp_mapdesc.xml b/gamedata/configs/text/ger/st_mp_mapdesc.xml new file mode 100644 index 0000000..5950479 --- /dev/null +++ b/gamedata/configs/text/ger/st_mp_mapdesc.xml @@ -0,0 +1,126 @@ + + + + Fahrzeugstation + + + Ein seltsamer Ort. Dieses stille Gebäude birgt sicherlich so manches Geheimnis, aber die Stalker werden aus einem anderen Grund davon angezogen: Man kann hier zahlreiche Artefakte finden. Das Risiko ist zwar hoch, aber der mögliche Gewinn ist ebenfalls enorm. Wenn Sie schnell denken und handeln, werden Sie das Glück sicher auf Ihrer Seite haben. + + + Ein seltsamer Ort. Dieses stille Gebäude birgt sicherlich so manches Geheimnis, aber die Stalker werden aus einem anderen Grund davon angezogen: Man kann hier zahlreiche Artefakte finden. + + + Ein Depot beim Eingang der Zone. Die Traktoren, Busse und Lastwagen, die hier stehen, haben ihre beste Zeit bereits hinter sich. Bisher wurden hier keine Artefakte gefunden, aber der Ort ist beliebt bei Räubern, die Jagd auf Anfänger machen und sie um der Beute willen töten. Suchen Sie Deckung in den Gebäuden oder hinter den Fahrzeugen... und hüten Sie sich vor Gegnern auf den Dächern! + + + Ein Depot beim Eingang der Zone. Die Traktoren, Busse und Lastwagen, die hier stehen, haben ihre beste Zeit bereits hinter sich. + + + Ein verlassenes Depotgebäude und das angrenzende Gebiet. Hier können Sie einiges an Ausrüstung und Vorräten finden, wenn Sie sich anstrengen. Sehen Sie sich vor starken Anomalien und Scharfschützen auf den Dächern vor - von dort hat man so gut wie alle Zugangswege perfekt im Blick. + + + Ein verlassenes Depotgebäude und das angrenzende Gebiet. Sehen Sie sich vor starken Anomalien und Scharfschützen auf den Dächern vor. + + + Ein geheimnisvoller und zugleich faszinierender Ort. Dieses Becken wurde für Experimente an jemandem oder etwas gebaut, aber der genaue Zweck wird wohl für immer ein Rätsel bleiben. Hier gibt es keine nennenswerten Artefakte, daher kommen die Stalker lediglich wegen der Überreste von bizarren Bauteilen und Geräten hierher. Passen Sie gut auf die Dächer auf und vergessen Sie nicht, dass die Gegend extrem stark verstrahlt ist. + + + Ein geheimnisvoller und zugleich faszinierender Ort. Dieses Becken wurde für Experimente an jemandem oder etwas gebaut, aber der genaue Zweck wird wohl für immer ein Rätsel bleiben. + + + Dieser gefährliche Teil des Dunklen Tals besteht aus einer langen Straße und einem verlassenen Institut. Wer weiß, was dort früher alles gelehrt wurde! Das Einzige, was man heute hier lernen kann, ist, wie man auch unter den schlimmsten Bedingungen überlebt! Oh, zu erwähnen wäre noch, dass Sie die Dächer immer im Auge behalten sollten... + + + Dieser gefährliche Teil des Dunklen Tals besteht aus einer langen Straße und einem verlassenen Institut. + + + Diese düstere, verlassene Fabrik wurde schon zahllosen Stalkern zum Grab. Unzählige Anomalien warten hier auf unvorsichtige Besucher... aber die Leute lassen sich nicht abschrecken und strömen weiterhin massenweise her - angelockt von den wertvollen Artefakten, die man hier finden kann. Vorsicht vor der Strahlung! + + + Diese düstere, verlassene Fabrik wurde schon zahllosen Stalkern zum Grab. + + + Die Feuerwache, deren gesamte Einsatzkräfte bei der Katastrophe im Atomkraftwerk Tschernobyl 1986 verheizt wurden. Von dem Turm hat man eine gute Übersicht über die Umgebung. Nur wenige wagen sich in die höheren Stockwerke und die Untergeschosse des Gebäudes. Es wird schon einen Grund dafür geben. In dieser Gegend prallen bereits seit einiger Zeit die Fraktionen der Zone aufeinander - beim Kampf um die beste strategische Ausgangsposition. + + + Die Feuerwache, deren gesamte Einsatzkräfte bei der Katastrophe im Atomkraftwerk Tschernobyl 1986 verheizt wurden. Sie stellt eine hervorragende taktische Position dar. + + + Teil einer riesigen Müllhalde, auf der nach der Katastrophe von 1986 haufenweise radioaktive Abfälle entsorgt wurden. Hier gibt es zahlreiche baufällige Kräne und eine gewisse Auswahl an Ausrüstung. Weitere Attraktionen sind abbruchreife Gebäude und ein großer Hangar. Die Nähe zum Kordon und die relativ zahlreichen Artefakte sorgen dafür, dass vor allem Stalker hierher kommen, die einfache Arbeit bevorzugen. + + + Teil einer riesigen Müllhalde, auf der nach der Katastrophe von 1986 haufenweise radioaktive Abfälle entsorgt wurden. + + + Ein kleiner Teil der rätselhaften Stadt Limansk - man findet hier verlassene Wohnblocks und ein halb fertig gestelltes Gebäude vor. Als verschiedene wertvolle Artefakte gefunden wurden, breitete sich die Nachricht wie ein Lauffeuer in der Zone aus. Seitdem einige Straßen nach Limansk geöffnet wurden, wird hier ununterbrochen gekämpft. + + + Ein kleiner Teil der rätselhaften Stadt Limansk - man findet hier verlassene Wohnblocks und ein halb fertig gestelltes Gebäude vor. + + + Ein menschenleeres, gottverlassenes Dorf mitten in der Zone. Der kleine, seichte, schmutzige See, in dem zahlreiche Fahrzeugwracks ihre letzte Ruhestätte gefunden haben, erfüllt Sie mit einer unterbewussten Angst vor der Wirklichkeit der Zone. Sehen Sie sich vor Scharfschützen vor, aber vergessen Sie auch nicht, dass die Zone die Mutigen belohnt. + + + Ein menschenleeres, gottverlassenes Dorf mitten in der Zone. Der kleine, seichte, schmutzige See, in dem zahlreiche Fahrzeugwracks ihre letzte Ruhestätte gefunden haben, erfüllt Sie mit einer unterbewussten Angst vor der Wirklichkeit der Zone. + + + Eine verlassene Armeebasis mit den Überresten von Lastwagen und Schützenpanzern sowie verfallenen Hauptquartieren und Kasernen. Der trostlose Eindruck trügt allerdings, denn die Basis ist eine wahre Fundgrube für Artefakte. Das bedeutet aber auch, dass hinter jeder Ecke ein Gegner lauern könnte. + + + Eine verlassene Armeebasis mit den Überresten von Lastwagen und Schützenpanzern sowie verfallenen Hauptquartieren und Kasernen. + + + Dieses alte Dorf ist ein wirklich unheimlicher Ort. Sollten Sie mutig genug sein, hierher zu kommen, wundern Sie sich nicht, wenn Sie mit einer Kugel begrüßt werden. Hier ist kein Fleck sicher! Mögen Ihr Zielfernrohr und der Schalldämpfer Ihnen gute Dienste leisten! + + + Dieses alte Dorf ist ein wirklich unheimlicher Ort. Sie haben es zwar bis hierher geschafft, aber dürfen sich keine Sekunde ausruhen. + + + Dies ist kein Becken, sondern vielmehr ein Blutbad. Echos von Schüssen, Explosionen und Schreien der Sterbenden hallen durch die gefliesten Korridore. Nur wenige Stalker kennen den Weg hierher, aber noch weniger kennen einen Weg heraus. + + + Dies ist kein Becken, sondern vielmehr ein Blutbad. Echos von Schüssen, Explosionen und Schreien der Sterbenden hallen durch die gefliesten Korridore. + + + Eine kleine Eisenbahnstation in der Nähe der Rostok-Fabrik. + + + Eine kleine Eisenbahnstation in der Nähe der Rostok-Fabrik, voller verrosteter Waggons und Lokomotiven, die schon lange nicht mehr fahren. Eine Fülle von Artefakten lockt furchtlose Stalker aus der gesamten Zone hierher. + + + Eine Reparaturbasis in der Nähe eines kleinen Dorfes. Sämtliche betriebsfähigen Fahrzeuge wurden nach der Katastrophe von Tschernobyl eingesetzt. Inzwischen wurde der Rest der Ausrüstung geplündert. Die Gegend ist voller Gefahren wie z.B. tückischer Sümpfe und verseuchtem Schilf. Aber mit Glück kann man dort etwas Wertvolles finden. + + + Eine Reparaturbasis in der Nähe eines kleinen Dorfes. Die Gegend ist voller Gefahren wie z.B. tückischer Sümpfe und verseuchtem Schilf. + + + Berge von Metall rosten hinter Betonwänden ruhig vor sich hin. Vor dem Jahrhundertwechsel war die Fabrik durchgehend in Betrieb und wurde von zahllosen Lautsprechern mit sozialistischen Slogans beschallt. Aber das Gebäude wurde schon vor langer Zeit aufgegeben und verlassen. + + + Alte, verlassene Fabrik: Berge von Metall hinter Betonwänden - das ist alles, was noch übrig ist. + + + Ein Sportzentrum in Pripyat, unweit der verlassenen Schule. Die Sportarten, die hier bevorzugt werden, haben sich seit 1986 grundlegend geändert, genauso wie die Zahl der Aktiven. Die Stalker zieht es wegen zweifelhaftem Ruhm, Beute und Artefakten hierher... und manche von ihnen bleiben für immer. + + + Ein Sportzentrum in Pripyat, unweit der verlassenen Schule. + + + Ein äußerst seltsamer Ort. Viele lachen über Stalker, die behaupten, dass sie den Ort schon einmal gesehen hätten, aber er existiert wirklich. Gravitationsanomalien haben dort die Erde aufgerissen und eine Mondlandschaft hinterlassen. Das Gebiet wird von drei großen Türmen bestimmt, Überbleibseln der Militärpräsenz, die auf großen Erdhaufen thronen. + + + Ein äußerst seltsamer Ort. Gravitationsanomalien haben dort die Erde aufgerissen und eine Mondlandschaft hinterlassen. + + + Hierbei hat es sich um den Randbereich der Rostok-Fabrik gehandelt, bevor sich die Wächter hier niedergelassen haben. Ein unheimlicher Ort, der jedoch reichlich Artefakte zu bieten hat. Alle leeren Hangars und Lagerhäuser sind voller tödlicher Gefahren. Seien Sie äußerst vorsichtig und behalten Sie besonders den weißen Turm im Auge. + + + Hierbei hat es sich um den Randbereich der Rostok-Fabrik gehandelt, bevor sich die Wächter hier niedergelassen haben. Ein unheimlicher Ort, der jedoch reichlich Artefakte zu bieten hat. + + + Nur wenige wagen sich bis in die verlassene Stadt Pripyat vor, in der früher die Angestellten des Atomkraftwerks Tschernobyl lebten. Dennoch toben auf den Straßen der toten Stadt wilde Feuergefechte, und zwar in einem kleinen Gebiet zwischen dem Prometheus-Kino, dem Pier und den Häusern auf der Kurschatowa-Straße. + + + In einem kleinen Teil von Pripyat zwischen dem Prometheus-Kino, dem Pier und den Häusern auf der Kurschatowa-Straße toben Feuergefechte zwischen den wenigen, die es bis in die tote Stadt geschafft haben. + + diff --git a/gamedata/configs/text/ger/st_mp_speechmenu.xml b/gamedata/configs/text/ger/st_mp_speechmenu.xml new file mode 100644 index 0000000..4b2ea92 --- /dev/null +++ b/gamedata/configs/text/ger/st_mp_speechmenu.xml @@ -0,0 +1,57 @@ + + + + Alle angreifen! + + + Ich suche das Artefakt! Gib mir Deckung! + + + Mir nach! + + + Wir bewachen vorerst das Artefakt. Nicht angreifen! + + + Ich halte die Position. + + + Position halten! + + + Nimm das Artefakt! Ich gebe dir Deckung. + + + Ich brauche Hilfe. + + + Kein Geld - kauf mehr Ausrüstung. + + + Nein. + + + Niemand zu sehen. + + + Meldung, sofort! + + + Rückzug! + + + Hol das Artefakt zurück! + + + Verstanden. + + + Halt's Maul! + + + Zusammenbleiben. + + + Hol das Artefakt! + + diff --git a/gamedata/configs/text/ger/st_mp_teamdesc.xml b/gamedata/configs/text/ger/st_mp_teamdesc.xml new file mode 100644 index 0000000..20963a8 --- /dev/null +++ b/gamedata/configs/text/ger/st_mp_teamdesc.xml @@ -0,0 +1,15 @@ + + + + Die Anarchisten der Zone. Sie halten die Zone für einen Ort der Freiheit und sind der Meinung, dass alle Gesetze, Regeln und Konventionen der restlichen Welt hier nicht gelten. Ihr Motto lautet: "Tu, was du willst, und mach dein Ding." Die Freiheitler kämpfen gegen die Versuche der Regierung, Kontrolle über die Zone zu erlangen, und sie liegen mit den Söldnern im Krieg. Ihre Mitglieder tragen hauptsächlich sowjetische und russische Waffen. + + + Freiheitsfraktion (Freie Stalker) + + + Diese abenteuerlustigen Halsabschneider kommen aus aller Welt und sind sich für nichts zu schade. Ihr Motto lautet: "Geld stinkt nicht". Solange es Bedarf an Artefakten gibt, werden sie um die vollständige Kontrolle über die Artefaktfelder kämpfen. Die Söldner tragen hauptsächlich westliche Waffen. + + + Söldnerfraktion (Die Halsabschneider) + + diff --git a/gamedata/configs/text/ger/st_quests_general.xml b/gamedata/configs/text/ger/st_quests_general.xml new file mode 100644 index 0000000..e6d0597 --- /dev/null +++ b/gamedata/configs/text/ger/st_quests_general.xml @@ -0,0 +1,18 @@ + + + + Achtung! Emission beginnt in: + + + Sie müssen sich in den nächsten Unterschlupf begeben, um sich vor der Emission zu schützen. + + + Sie dürfen Ihren Unterschlupf während der Emission nicht verlassen. + + + Emission: Deckung suchen + + + Emission: In Deckung warten + + diff --git a/gamedata/configs/text/ger/st_quests_jupiter.xml b/gamedata/configs/text/ger/st_quests_jupiter.xml new file mode 100644 index 0000000..c1a88db --- /dev/null +++ b/gamedata/configs/text/ger/st_quests_jupiter.xml @@ -0,0 +1,687 @@ + + + + Schulden: Banditen Geld bringen + + + Wano schuldet Banditen Geld für einen Schutzanzug und kann es nicht zurückzahlen, weil die Zinsen zu hoch sind. Er hat Sie daher um Hilfe gebeten. + + + Schulden: Zurück zu Wano gehen + + + Teilen Sie Wano mit, was aus seinen Schulden geworden ist. + + + Schulden: Um die Banditen kümmern + + + Die Begleichung von Wanos Schulden ist nicht wie geplant gelaufen. Schalten Sie die Banditen aus. + + + Geisel: Belohnung bei Mitajs Freunden abholen + + + Mitaj wurde befreit. Treffen Sie sich an der Bar mit seinen Freunden, um Ihre Belohnung zu erhalten. + + + Geisel: Mitaj befreien + + + Geisel: Mit Grizzly reden, damit er bereit ist + + + Sie müssen sich zuerst mit Grizzly unterhalten, bevor Sie versuchen, die Geisel zu befreien. + + + Geisel: Mitaj mit Gewalt befreien + + + Sie müssen die Banditen ausschalten, um einen Stalker namens Mitaj zu befreien. + + + Geisel: Mit den Stalkern treffen + + + Bei der Geiselbefreiung werden Sie Hilfe von Stalkern erhalten. Sie müssen sich in der Nacht mit ihnen treffen, um die Banditen gemeinsam anzugreifen. + + + Geisel: Lösegeldzahlung arrangieren, um Mitaj zu befreien + + + Arrangieren Sie eine Lösegeldzahlung an den Anführer der Banditen, um einen Stalker namens Mitaj zu befreien. + + + Befreien Sie einen Stalker namens Mitaj, der von Banditen gefangen gehalten wird. + + + Geisel: Mitaj aus dem Banditenlager führen + + + Das Banditenlager ist zu gefährlich, um sich dort länger aufzuhalten. Sie müssen Mitaj hinauseskortieren. + + + Geisel: Mit Mitaj reden + + + Mitaj ist relativ sicher. Reden Sie mit ihm darüber, was als Nächstes getan werden sollte. + + + Weg nach Pripyat: Mit dem Techniker über die Unterführung unterhalten + + + Aus den Dokumenten, die Sie gefunden haben, geht eindeutig hervor, dass es unterhalb der Jupiter-Anlage einen unterirdischen Durchgang nach Pripyat gibt. In dieser Unterführung fließt kein Strom, sie wurde mit Gas geflutet und der Eingang ist blockiert. Sie müssen einen Techniker finden, der den Generator aktivieren und den Eingang zur Unterführung öffnen kann. + + + Das Speichermodul befindet sich in Expertenhand. Sie müssen warten, bis es gehacked wurde. + + + Unbemanntes Flugobjekt: Speichermodul hacken + + + Unbemanntes Flugobjekt: Speichermodul von Nitro holen + + + Unbemanntes Flugobjekt: Speichermodul von Nowikow holen + + + Nitro hat das Speichermodul gehacked. Sie sollten es sich holen, um zu erfahren, welche Informationen es enthält. + + + Nowikow hat das Speichermodul gehacked. Sie sollten es sich holen, um zu erfahren, welche Informationen es enthält. + + + Sie haben ein Speichermodul aus dem unbemannten Flugobjekt geborgen. Das Modul muss gehacked werden, bevor Sie auf die Informationen darauf zurückgreifen können. + + + Unbemanntes Flugobjekt: Warten, bis das Modul gehacked wurde + + + Oase: Beweis finden + + + Die Oase wurde gefunden und scheint wirklich eine heilende Wirkung zu haben. Sie müssen einen Beweis für die Wissenschaftler finden. + + + Oase: Beweis zu den Wissenschaftlern bringen + + + Die Oase wurde gefunden und scheint wirklich eine heilende Wirkung zu haben. Sie müssen das Artefakt, das Sie gefunden haben, als Beweis zu den Wissenschaftlern bringen. + + + Oase: Überprüfen, ob die Legende wahr ist + + + Oserski, der Wissenschaftler aus dem Bunker, hat Sie gebeten, die Oase zu finden - einen legendären Ort in der Zone. Gerüchte besagen, dass es dort heilendes Wasser geben soll, aber niemand weiß genau, ob der Ort wirklich existiert. + + + Kopatschi: Mit Onkel Jar mitgehen + + + Onkel Jar braucht Hilfe bei irgendetwas. Begeben Sie sich mit ihm zusammen in das Dorf Kopatschi. + + + Kopatschi: Söldner ausschalten + + + Es sieht so aus, als ob Onkel Jar geahnt hat, dass die Söldner auftauchen würden. Sie müssen sie ausschalten. + + + Kopatschi: Bei Onkel Jar bleiben + + + Onkel Jar hat Sie gebeten, in seiner Nähe zu bleiben und still zu sein. + + + Kopatschi: Mit Onkel Jar reden + + + Die Söldner sind tot. Sie sollten sich mit Onkel Jar unterhalten, um eine Erklärung dafür zu erhalten, was hier vorgefallen ist. + + + Unregelmäßige Psi-Emissionen: Anomalieformation zu den Wissenschaftlern bringen + + + Bringen Sie die Probe wie abgemacht zu Hermann. Offenbar ist das die Quelle der unregelmäßigen Psi-Emissionen - ein Objekt, das durch anomale Einwirkung teilweise transformiert worden ist. + + + Unregelmäßige Psi-Emissionen: Die Quelle untersuchen + + + Untersuchen Sie den Tunnel nach Anomalieformationen. Die Wissenschaftler sind der Meinung, dass das unregelmäßige Psi-Feld eine Quelle hat, die möglicherweise einem Artefakt ähnelt. + + + Unregelmäßige Psi-Emissionen: Topols Trupp treffen + + + Topols Trupp hat sich zu dem Tunnel mit den unregelmäßigen Psi-Emissionen begeben und Sie müssen sie dort treffen. + + + Unregelmäßige Psi-Emissionen: Mit Topol reden + + + Gehen Sie zusammen mit Topols Trupp zum Tunnel mit den unregelmäßigen Psi-Emissionen. Es wurde abgemacht, dass Stalker den Tunnel bewachen, während Sie nach dem suchen, was die Wissenschaftler wollen. + + + Sie sollten alle Funktechnikmaterialien, die Sie finden, zu Nitro bringen. + + + Nitro braucht Funktechnikmaterialien. Sie können ihm das, was Sie bereits haben, geben oder versuchen, noch mehr zu finden. + + + Funkausrüstung: Materialien für Nitro finden + + + Nitro braucht Funktechnikmaterialien. Er will, dass Sie bei der Zementfabrik danach suchen. + + + Diebstahl: Herausfinden, wer für den Diebstahl verantwortlich ist + + + Fragen Sie die Stalker in der Janow-Station, ob sie einen Verdächtigen gesehen haben, der Sachen aus einer persönlichen Kiste gestohlen haben könnte. + + + Diebstahl: Umspannwerk überprüfen + + + Sie müssen das Umspannwerk überprüfen, denn dorthin hat sich der verdächtige Stalker aufgemacht, der für den Diebstahl verantwortlich sein könnte. + + + Diebstahl: Ihre Sachen wieder holen + + + Alles, was Snag gestohlen hat, müsste sich in seinem Versteck in der Kanalisation hinter dem Umspannwerk befinden. + + + Anomale Pflanze: Probe einer Pflanze beschaffen + + + Am Rand des Steinbruchs ist ein Gebiet voller anomaler Pflanzen aufgetaucht. Oserski hat Sie gebeten, ihm eine Probe einer Pflanze für seine Forschungen zu beschaffen. + + + Anomale Pflanze: Oserski die Pflanze geben + + + Sie müssen die Pflanzenprobe zu Oserski bringen. Als Gegenleistung wird er Hermann überreden, Ihnen einen wissenschaftlichen Schutzanzug zu geben. + + + Jagd: Unbekannte Mutanten töten + + + Eine Gruppe von Stalkern hat in den Tunneln nördlich der Jupiter-Anlage unbekannte Mutanten entdeckt. Untersuchen Sie das Gebiet und schalten Sie die Mutanten aus. + + + Jagd: Belohnung für das Töten der Mutanten im Tunnel bei Trapper holen + + + Die Mutanten in den Tunneln nördlich der Jupiter-Anlage wurden ausgeschaltet. Sie sollten Trapper davon in Kenntnis setzen und Ihre Belohnung abholen. + + + Theorie: Scanner im Zentrum des Erdrutsches platzieren + + + Platzieren Sie den Scanner im Zentrum des Erdrutsches, um Oserskis Theorie zu bestätigen. + + + Theorie: Auf das Ende des Experiments warten + + + Der Scanner ist jetzt aktiviert und hat bereits begonnen, die Gegenwart von Mutanten zu registrieren. Sie müssen warten, bis genügend Daten gesammelt wurden, um die Theorie zu bestätigen oder zu widerlegen. + + + Theorie: Scanner nehmen + + + Es wurden genügend Daten gesammelt, um Oserskis Theorie zu bestätigen. Nehmen Sie den Scanner. + + + Theorie: Scanner zu Oserski bringen + + + Sie müssen den Scanner zu Oserski bringen. Die gesammelten Daten sollten ausreichen, um seine Theorie zu bestätigen. + + + Jagd: Sumpfblutsauger töten + + + In Fen, hinter der Zementfabrik, wurde eine Gruppe von Sumpfblutsaugern gesichtet. Die Stalker vor Ort haben Sie gebeten, sie auszuschalten. + + + Jagd: Belohnung für das Töten der Sumpfblutsauger bei Trapper holen + + + Die Sumpfblutsauger sind tot. Sie sollten sich bei Trapper die Belohnung abholen, die die Stalker vor Ort zusammengelegt haben. + + + Jagd bei Nacht: Chimäre töten + + + Chimären sind nachtaktive Raubtiere und niemand weiß, wo sich diese Chimäre tagsüber versteckt. Sie müssen sie nachts töten, wenn sie bei der Belüftungsanlage auftaucht, um zu jagen. + + + Jagd bei Nacht: Trapper mitteilen, dass die Chimäre tot ist + + + Die Chimäre ist tot und Fox der Jäger wurde gerächt. Setzen Sie Trapper davon in Kenntnis. + + + Werkzeug: Nitro Werkzeug bringen + + + Nitro hat Sie gebeten, ihm zwei Werkzeugsets zu beschaffen: Eines für einfache Arbeiten und eines für feinere Arbeiten. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Nitro Werkzeug bringen + + + Nitro hat Sie gebeten, ihm zwei Werkzeugsets zu beschaffen: Eines für einfache Arbeiten und eines für Kalibrierungsarbeiten. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Nitro Werkzeug bringen + + + Nitro hat Sie gebeten, ihm Werkzeug für einfache Arbeiten zu beschaffen. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Nitro Werkzeug bringen + + + Nitro hat Sie gebeten, ihm zwei Werkzeugsets zu beschaffen: Eines für feinere Arbeiten und eines für Kalibrierungsarbeiten. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Nitro Werkzeug bringen + + + Nitro hat Sie gebeten, ihm Werkzeug für feinere Arbeiten zu beschaffen. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Nitro Werkzeug bringen + + + Nitro hat Sie gebeten, ihm Werkzeug für Kalibrierungsarbeiten zu beschaffen. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Nitro Werkzeug bringen + + + Nitro hat Sie gebeten, ihm drei Werkzeugsets zu beschaffen: Eines für einfache, eines für feinere und eines für Kalibrierungsarbeiten. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Pripyat 1: Schutzanzug mit geschlossenem Atemkreislauf finden + + + Sie benötigen einen Schutzanzug mit geschlossenem Atemkreislauf, um die Unterführung "Pripyat 1" benutzen zu können, weil sie mit einer Mischung aus Kohlenstoffdioxid und einem unbekannten Zusatzstoff geflutet wurde. + + + Pripyat 1: Strider zu Zulu bringen + + + Sie müssen Strider zu Zulu bringen und ihn als neues Mitglied des Trupps vorstellen. Zulu dürfte es nicht gerne sehen, wenn ein Kämpfer in einem Monolitheranzug ganz alleine auftaucht. + + + Pripyat 1: Mit Strider über einen Schutzanzug reden + + + Die Unterführung "Pripyat 1" wurde mit einer Mischung aus Kohlenstoffdioxid und einem unbekannten Zusatzstoff geflutet. Sie müssen Strider darüber informieren, dass er einen Schutzanzug mit geschlossenem Atemkreislauf benötigt, um durch die Unterführung zu gelangen. + + + Pripyat 1: Trupp für den Weg nach Pripyat zusammenstellen + + + Nitro hat es geschafft, den Eingang zur Unterführung "Pripyat 1" zu öffnen, aber er weigert sich, ohne Schutz in die Jupiter-Anlage zu gehen. Darüber hinaus empfiehlt er, dass Sie sich einige Männer suchen, die Sie durch die Unterführung begleiten sollen. Zulu wäre bereits dabei und er hat Ihnen vorgeschlagen, dass Sie neue Rekruten zu ihm schicken. + + + Pripyat 1: Mit Zulu darüber reden, nach Pripyat zu gehen + + + Nitro hat es geschafft, den Eingang zur Unterführung "Pripyat 1" zu öffnen, aber er weigert sich, ohne Schutz in die Jupiter-Anlage zu gehen. Darüber hinaus empfiehlt er, dass Sie sich einige Männer suchen, die Sie durch die Unterführung begleiten sollen. Er hat Ihnen vorgeschlagen, darüber mit Zulu zu reden, weil er Ihnen beim Zusammenstellen eines Trupps helfen könnte. + + + Pripyat 1: Sokolow zu Zulu bringen + + + Sokolow hat sich bereit erklärt, nach Pripyat zu gehen, und könnte einen wissenschaftlichen Schutzanzug nehmen, wenn er den Bunker verlässt. Sie sollten ihn zu Zulu bringen und ihn als ein neues Mitglied des Trupps vorstellen. + + + Pripyat 1: Mit Sokolow über einen Schutzanzug reden + + + Pripyat 1: Mit Oserski über einen Schutzanzug für Sokolow reden + + + Sokolow ist bereit, einen wissenschaftlichen Schutzanzug zu tragen, aber Hermann wird ihn wohl keinen aus dem Bunker nehmen lassen. Sie sollten mit Oserski reden - er ist freundlicher und man kann sich besser mit ihm unterhalten. + + + Pripyat 1: Sokolow vom wissenschaftlichen Schutzanzug berichten + + + Oserski freut sich sehr über die Pflanzenprobe. Er hat Sie gebeten, Sokolow mitzuteilen, dass er seinen wissenschaftlichen Schutzanzug bei Hermann abholen kann. + + + Die Unterführung "Pripyat 1" wurde mit einer Mischung aus Kohlenstoffdioxid und einem unbekannten Zusatzstoff geflutet. Sie müssen Sokolow darüber informieren, dass er einen Schutzanzug mit geschlossenem Atemkreislauf benötigt, um durch die Unterführung zu gelangen. + + + Pripyat 1: Wano Geld für den Schutzanzug geben + + + Der Schutzanzug, für den Wano den Banditen Geld geschuldet hat, verfügt über einen geschlossenen Atemkreislauf. Wano musste ihn als Pfand für seine Schulden hergeben. Jetzt benötigt er 3.000, um den Schutzanzug zurückzukaufen. + + + Pripyat 1: Wano zu Zulu bringen + + + Wano erklärt sich bereit, nach Pripyat zu gehen. Sie müssen ihn zu Zulu bringen und ihn als neues Mitglied des Trupps vorstellen. Auf dem Weg kann Wano seinen Schutzanzug zurückkaufen. + + + Pripyat 1: Mit Wano über einen Schutzanzug reden + + + Die Unterführung "Pripyat 1" wurde mit einer Mischung aus Kohlenstoffdioxid und einem unbekannten Zusatzstoff geflutet. Sie müssen Wano darüber informieren, dass er einen Schutzanzug mit geschlossenem Atemkreislauf benötigt, um durch die Unterführung zu gelangen. + + + Flint, auch bekannt unter dem Namen Magpie, ist ein hinterhältiger Scheißkerl. Sie sollten die Stalker in Zaton oder die anderen Fraktionen über ihn aufklären. Das dürfte eine gute Lektion für ihn sein. + + + Flint ist ganz klar ein Angeber und redet von Dingen, die er nicht einmal mit eigenen Augen gesehen hat. Es wäre nicht schlecht, seinen Schwindel auffliegen zu lassen. + + + Fremde Lorbeeren: Um Flint kümmern + + + Flint schmückt sich ganz offensichtlich mit fremden Lorbeeren. Er muss kapieren, wann er besser die Klappe halten sollte. + + + Flints Angeberei ist kaum zu fassen - Sie sollten mit ihm reden und ihn von Ihrem Standpunkt überzeugen. + + + Flint, auch bekannt unter dem Namen Magpie, ist ein hinterhältiger Scheißkerl. Sie sollten die Stalker in Zaton oder die anderen Fraktionen über ihn aufklären. Das wäre die perfekte Rache. + + + Anomalieforschung: Scanner vom Techniker besorgen + + + Besorgen Sie sich Scanner von Nowikow. Hermann möchte Daten über Artefaktformationen sammeln und die Scanner müssen dafür in den Zentren verschiedener Anomalien aufgestellt werden. + + + Anomalieforschung: Scanner in der Anomalie platzieren + + + Anomalieforschung: Belohnung abholen + + + Holen Sie sich Ihre Belohnung dafür ab, dass Sie die Scanner in den Anomalien aufgestellt haben. Jetzt kann Hermann seine Daten über Artefaktformationen sammeln. + + + Stellen Sie den Scanner im Zentrum der Anomalie auf. Hermann möchte Daten über Artefaktformationen sammeln und die Scanner müssen dafür in den Zentren verschiedener Anomalien aufgestellt werden. + + + Ein Vertrag mit den Wissenschaftlern: Gari das Kolobok-Artefakt bringen + + + Gari braucht das Kolobok-Artefakt, um seinen Vertrag mit den Wissenschaftlern zu erfüllen. Besorgen Sie ihm dieses Artefakt. + + + Ein Vertrag mit den Wissenschaftlern: Gari das Fleischklumpen-Artefakt bringen + + + Gari braucht das Fleischklumpen-Artefakt, um seinen Vertrag mit den Wissenschaftlern zu erfüllen. Besorgen Sie ihm dieses Artefakt. + + + Ein Vertrag mit den Wissenschaftlern: Gari das Kolobok- und das Fleischklumpen-Artefakt bringen + + + Gari braucht das Kolobok- und das Fleischklumpen-Artefakt, um seinen Vertrag mit den Wissenschaftlern zu erfüllen. Besorgen Sie ihm diese Artefakte. + + + Ein Vertrag mit den Wissenschaftlern: Artefakte geliefert + + + Gari hat beide Artefakte erhalten und damit seinen Vertrag erfüllt. + + + Wächtergeschichte: PDA des Wächtergründers an Interessenten geben + + + Sie haben den PDA des Gründers der Wächter gefunden, der in einer Anomalie ums Leben gekommen war. Sie sollten den PDA jemandem geben, der an den letzten Momenten im Leben des Anführers der Wächter interessiert sein könnte. + + + Anomale Aktivität: Das Gebiet mit einem verbesserten Detektor untersuchen + + + Die Scanner der Wissenschaftler haben nördlich des Bunkers ungewöhnliche Aktivitäten registriert. Untersuchen Sie das Gebiet mit einem verbesserten Detektor. + + + Schutz der Wissenschaftler: Verlässliche Wachen finden + + + Der Bunker der Wissenschaftler wird nicht bewacht. Sie müssen verlässliche Wachen finden, die das übernehmen könnten. + + + Schutz der Wissenschaftler: Belohnung bei Hermann abholen + + + Sie haben Wachen für den Bunker der Wissenschaftler gefunden und sollten nun zu Hermann zurückkehren, um Ihre verdiente Belohnung zu kassieren. + + + Letzte Entwicklungen: Dokumente in der Jupiter-Anlage finden + + + Hermann interessiert sich für die letzten Entwicklungen in der Jupiter-Anlage. Finden Sie die Dokumente im Verwaltungsbereich der Anlage. + + + Letzte Entwicklungen: Dokumente zu Hermann bringen + + + Aus den Dokumenten, die Sie gefunden haben, geht hervor, dass die gesamte technische Dokumentation aus der Anlage geschafft wurde. Auch wenn das nicht gerade viel ist, sollten Sie Hermann davon in Kenntnis setzen. + + + Letzte Entwicklungen: Dokumente und Blacks PDA zu Hermann bringen + + + Während Ihrer Suche nach den Dokumenten kam es zu einem Angriff durch Söldner. Laut dem PDA, den Sie bei ihrem Anführer Black gefunden haben, hatten sie den Auftrag, die Wissenschaftler daran zu hindern, nach den Dokumenten zu suchen. Darüber hinaus geht aus den Dokumenten, die Sie gefunden haben, hervor, dass die gesamte technische Dokumentation aus der Anlage geschafft wurde. Sie sollten Hermann darüber in Kenntnis setzen und ihm zudem Blacks PDA zeigen. + + + Ehemalige Monolither: Mit Janow-Bewohnern über Schutz suchende Ex-Monolither reden + + + Ein Trupp von Monolithern konnte sich von dem Bann befreien, der sie unter Kontrolle hielt. Nun suchen sie nach einem Zufluchtsort, wo sie vor Emissionen und Mutanten sicher sind. Sie müssen mit den Bewohnern der Janow-Station sprechen, ob sie die ehemaligen Monolither aufzunehmen bereit sind. + + + Bringen Sie die Rekrutierer der Wächter zu den ehemaligen Monolithern. Wenn sich diese den Wächtern anschließen, werden sie in der Janow-Station vor Emissionen und Mutanten sicher sein. + + + Bringen Sie die Rekrutierer der Freiheit zu den ehemaligen Monolithern. Wenn sich diese der Freiheit anschließen, werden sie in der Janow-Station vor Emissionen und Mutanten sicher sein. + + + Ehemalige Monolither: Rekrutierer zu ehemaligen Monolithern bringen + + + Anomalieforschung: Die Stalker beschützen + + + Wie es scheint, hat das Vornehmen von Messungen in der Anomalie die Aufmerksamkeit von Mutanten erregt. Sie müssen den Stalkern Deckung geben, bis sie alle nötigen Daten gesammelt haben. + + + Anomalieforschung: Die Stalker beschützen + + + Wie es scheint, hat das Vornehmen von Messungen in der Anomalie die Aufmerksamkeit von Zombies aus Kopatschi erregt. Sie müssen den Stalkern Deckung geben, bis sie alle nötigen Daten gesammelt haben. + + + Anomalieforschung: Mit Hermann reden + + + Die Anomaliemessungen sind abgeschlossen. Informieren Sie die Wissenschaftler und holen Sie sich Ihre Belohnung ab. + + + Anomalieforschung: Mit den Stalkern reden + + + Reden Sie mit dem Stalkertrupp, der die Messungen vornimmt - Sie müssen wissen, welche Anomalie auf dem Plan steht. + + + Anomalieforschung: Mit den Stalkern reden + + + Alle nötigen Messungen wurden vorgenommen. Daher können Sie sich zusammen mit dem Trupp wieder auf den Weg zum Bunker der Wissenschaftler machen. + + + Anomalieforschung: Mit den Stalkern reden + + + Die Messungen in der Anomalie wurden vorgenommen. Daher müssen Sie jetzt mit dem Trupp darüber reden, wie das nächste Ziel lautet. + + + Anomalieforschung: Die Stalker beschützen + + + Hermann hat Ihnen den Auftrag angeboten, die Stalker zu beschützen, während sie Messungen in Anomalien vornehmen. + + + Stingray 4: Absturzstelle untersuchen + + + Stingray 4: Herausfinden, warum die Elektronik ausgebrannt ist + + + Untersuchen Sie die Absturzstelle von Stingray 4. + + + Sie müssen die Quelle der starken elektrischen Entladung finden, die Stingray 4 getroffen hat. + + + Stingray 1: Den Flugschreiber einem Techniker zur Entschlüsselung geben + + + Der Flugschreiber von Stingray 1 hat den Absturz unbeschadet überstanden. Er muss zur Entschlüsselung zu einem Techniker gebracht werden, damit Sie Zugriff auf die aufgezeichneten Informationen bekommen. + + + Stingray 1: Auf die Entschlüsselung des Flugschreibers warten + + + Nitro hat sich bereit erklärt, den Flugschreiber zu entschlüsseln, und geschätzt, dass es ca. drei Stunden dauern wird. Sie müssen warten, bis er seine Arbeit abgeschlossen hat. + + + Stingray 1: Zu Nitro zurückkehren, um die Flugschreiberinformationen zu erhalten + + + Nitro dürfte mittlerweile den Flugschreiber entschlüsselt haben. Gehen Sie zu ihm, um die Informationen zu bekommen, die der Flugschreiber enthält. + + + Stingray 1: Absturzstelle untersuchen + + + Untersuchen Sie die Absturzstelle von Stingray 1. + + + Pripyat 1: Nach Pripyat gehen + + + Sie müssen die Unterführung "Pripyat 1" passieren und die militärische Evakuierungsstelle in Pripyat erreichen. + + + Weg nach Pripyat: Chemische Werkstatt in der Jupiter-Anlage untersuchen + + + In der chemischen Werkstatt müssten Informationen über die Flutung der Unterführung "Pripyat 1" mit einer Art Gas zu finden sein. + + + Weg nach Pripyat: Verwaltungsbereich der Jupiter-Anlage untersuchen + + + Der Ortskundige kennt keinen sicheren Weg nach Pripyat, aber er hat eine Idee, wo Sie Informationen über die unterirdischen Tunnels finden könnten, die von der Jupiter-Anlage zur Stadt führen. Sie sollten Ihre Suche im Verwaltungsbereich beginnen. + + + Weg nach Pripyat: Laborbereich der Jupiter-Anlage untersuchen + + + In den Dokumenten, die Sie im Verwaltungsbereich gefunden haben, wird die Evakuierung des Produktionskomplexes aus der Jupiter-Anlage erwähnt. Die entsprechenden Informationen über diesen Vorgang dürften im Laborbereich zu finden sein. + + + Weg nach Pripyat: Den Aufzug zur Unterführung "Pripyat 1" überprüfen + + + Der Eingang zur unterirdischen Unterführung befindet sich hinter dem Aufzug. Untersuchen Sie das Gebiet und halten Sie nach jeder Information über die Unterführung Ausschau. + + + Weg nach Pripyat: Abteilung 1 der Jupiter-Anlage untersuchen + + + In der Abteilung 1 müssten sich Informationen über die Unterführung "Pripyat 1" befinden. Diese könnten sich als sehr wichtig erweisen, deswegen sollten Sie sich dort umsehen. + + + Weg nach Pripyat: Versandabteilung der Jupiter-Anlage untersuchen + + + Laut der Notiz in der Laborwerkstatt müsste die Evakuierung von der Versandabteilung durchgeführt worden sein. Aus diesem Grund sollten Sie sich auch dort umsehen. + + + Weg nach Pripyat: Reparaturwerkstatt der Jupiter-Anlage untersuchen + + + Die Versandabteilung hatte Informationen über Verluste bei dem Transport des sog. Forschungsobjekts 62. Laut den Unterlagen sollte sich die Reparaturwerkstatt um diese Angelegenheit kümmern - Sie sollten sich dort umsehen. + + + Weg nach Pripyat: Mit dem Ortskundigen reden + + + Aus den Aufzeichnungen des Flugschreibers aus einem der Hubschrauber geht hervor, dass die militärischen Einheiten bei der Evakuierungsstelle B28 zusammentreffen sollten. Laut den Karten aus einem der Hubschrauber, die bei der Mission eingesetzt wurden, befindet sich diese Evakuierungsstelle in Pripyat. Sie müssen einen Weg dorthin finden. Sprechen Sie mit dem Ortskundigen darüber. + + + Lagerhaus der Wächter: Freie Wahl + + + Lagerhaus der Wächter: Morgan treffen + + + Der Händler Morgan bietet Ihnen als Gegenleistung dafür, dass Sie Stillschweigen über seine Geschäfte bewahren, Zugang zum Lagerhaus der Wächter. Sie müssen sich mit ihm wie abgemacht beim Steinbruch treffen. + + + Sie müssen das Tor öffnen, um weitergehen zu können. + + + Sie müssen die Tür öffnen, um weitergehen zu können. + + + Sie müssen die Stromversorgung zum Tor aktivieren, um weitergehen zu können. + + + Sie müssen das Tor aufschließen, um weitergehen zu können. Dies kann vermutlich im Kontrollraum erledigt werden. + + + Forschungsgruppe: Die richtigen Leute anheuern + + + Eine Forschungsgruppe, die für die Wissenschaftler gearbeitet hat, ist verschwunden. Sie müssen eine neue Gruppe zusammenstellen, damit die Arbeit fortgesetzt werden kann. + + + Forschungsgruppe: Bei Hermann die Belohnung abholen + + + Sie haben die passenden Leute für eine neue Forschungsgruppe aufgetrieben. Kehren Sie jetzt zu Hermann zurück, um Ihre Belohnung zu kassieren. + + + Pripyat 1: Oserskis Mission abschließen + + + Sie müssen Oserskis Mission mit der anomalen Pflanze abschließen, um einen Schutzanzug für Sokolow zu bekommen. + + + Nitro braucht Funktechnikmaterialien. Sie müssen in der Zementfabrik danach suchen. + + + Es war Flint, der Splitter in der Anomalie zurückgelassen hat. Reden Sie mit ihm und finden Sie heraus, warum er das getan hat. + + + Vergeltung: Splitter rächen + + + Finden Sie heraus, wer Splitter in einer Anomalie zurückgelassen und sich mit seinem Artefakt aus dem Staub gemacht hat. Leider konnte Splitter den Namen des Übeltäters nicht mehr verraten, daher ist über ihn nur bekannt, dass er ein Freiheitler ist. + + + Oberstleutnant Shulga hat Ihnen die Erlaubnis erteilt, jede beliebige Ausrüstung aus dem Lagerhaus der Wächter zu nehmen, wenn Sie es erobern können. + + + Loki hat Ihnen die Erlaubnis erteilt, jede beliebige Ausrüstung aus dem Lagerhaus der Wächter zu nehmen, solange es von der Freiheit kontrolliert wird. + + diff --git a/gamedata/configs/text/ger/st_quests_pripyat.xml b/gamedata/configs/text/ger/st_quests_pripyat.xml new file mode 100644 index 0000000..fc328b0 --- /dev/null +++ b/gamedata/configs/text/ger/st_quests_pripyat.xml @@ -0,0 +1,345 @@ + + + + Forschungsobjekt 62: Dokumente in der Testwerkstatt finden + + + Sie müssen Dokumente über Forschungsobjekt 62 finden. Diese sollten Klarheit darüber bringen, ob die Hubschrauber mit dieser Waffe abgeschossen worden sein könnten. + + + Unbekannte Waffe: Schutz im Gebäude suchen + + + Sie müssen Schutz in dem Gebäude suchen und den Angriff der Monolither abwehren. + + + Unbekannte Waffe: Informationen finden + + + Die Waffe funktioniert nicht und es ist auch nicht klar, wie sie funktionieren könnte. Sie müssen einen Techniker finden, der mehr mit der unbekannten Waffe anfangen kann. + + + Unbekannte Waffe: Den Anführer des Monolithertrupps töten + + + Sie müssen den Anführer des Monolithertrupps töten, der die unbekannte Waffe benutzt. + + + Unbekannte Waffe: Tote Monolither durchsuchen + + + Die Monolither müssten die unbekannte Waffe bei sich haben - finden Sie sie. + + + Unbekannte Waffe: Mit Kardan reden + + + Kardan dürfte seinen Kater mittlerweile ausgeschlafen haben. Sprechen Sie mit ihm über die unbekannte Waffe. + + + Unbekannte Waffe: Warten, bis Kardan wieder zu sich kommt + + + Kardan weiß vermutlich mehr über die Waffe. Sie müssen sich mit ihm unterhalten, wenn er wieder aufwacht. + + + Gaußgewehr: Kowalski von der Waffe berichten + + + Sie müssen Kowalski alles berichten, was Sie über Forschungsobjekt 62 in Erfahrung bringen konnten. + + + Unbekannte Waffe: Dem Trupp anschließen + + + Sie müssen sich dem Spezialtrupp anschließen, um gemeinsam in den Besitz der Waffe zu kommen. + + + Unbekannte Waffe: Die Waffe nehmen + + + Nehmen Sie die Waffe des Anführers der Monolither an sich. + + + Unbekannte Waffe: Die Waffe zu Kowalski bringen + + + Sie haben die Waffe - jetzt sollten Sie sie Kowalski zeigen und herausfinden, ob die Waffe den Absturz der Hubschrauber verursacht haben könnte. + + + Unbekannte Waffe: Am Hinterhalt gegen die Monolither teilnehmen + + + Der Armeespähtrupp bereitet einen Hinterhalt gegen den Monolithertrupp vor. Sie sollten sich daran beteiligen. + + + Monolitherkämpfer: Verstärkung treffen + + + Kowalski hat Verstärkung geschickt, die Ihnen beim Ausschalten der Monolither helfen soll, die sich in den Buchladen verkrochen haben. + + + Monolitherkämpfer: Buchladen säubern + + + Sie müssen alle Monolither in dem Gebäude ausschalten. Große Monolithereinheiten stellen eine Bedrohung für das Armeelager dar. + + + Monolitherkämpfer: Seltsames Gerät untersuchen + + + In dem Gebäude sind Sie auf ein seltsames Gerät gestoßen. Untersuchen Sie es. + + + Labor X8: Dokumente über Experimente finden + + + Die Informationen, die Sie gefunden haben, beziehen sich auf ein Zentrallabor, das als X8 bezeichnet wird. Dort könnten Sie Informationen über geheime Experimente in der Zone finden. + + + Verschwundene Späher: Trupp finden + + + Der Spähtrupp, den Kowalski losgeschickt hatte, ist nach merkwürdigem Funkkontakt verschwunden. Sie müssen ihn finden, um herauszufinden, was geschehen ist. + + + Verschwundene Wache: Gebiet untersuchen, in dem die Wache gestorben ist + + + Die Wache benahm sich sehr seltsam. Sie sollten den Grund dafür herausfinden. + + + Verschwundene Wache: Wache finden + + + Einer der Soldaten ist nicht mehr auf seinem Posten - Sie müssen herausfinden, warum er verschwunden ist. + + + Verschwundene Wache: Controller töten + + + In der Nähe der verschwundenen Wache trieb ein Controller sein Unwesen - er muss ausgeschaltet werden. + + + Funkstörung: Verschwundenen Trupp finden + + + Der Trupp, der auf der Suche nach der Quelle der Funkstörung war, ist verschwunden - Sie müssen ihn finden. + + + Funkstörung: Leichen durchsuchen + + + Durchsuchen Sie die Leichen - vielleicht können Sie so herausfinden, wie die Personen gestorben sind. + + + Funkstörung: Leiche durchsuchen + + + Durchsuchen Sie die Leiche - vielleicht können Sie so herausfinden, wie die Person gestorben ist. + + + Funkstörung: Tür aufsprengen + + + Sie müssen mit Sprengstoff die Tür aufsprengen, um in das Gebäude gelangen zu können. + + + Funkstörung: Geräusch untersuchen + + + Aus dem Kühlschrank sind Geräusche zu hören - es scheint so, als ob jemand darin eingeschlossen wäre. Überprüfen Sie das. + + + Funkstörung: Die Quelle der Störung zerstören + + + Sie haben die Quelle der Funkstörung entdeckt - jetzt müssen Sie sie zerstören. + + + Funkstörung: Die Quelle der Störung finden + + + In dem Gebäude befindet sich eine Quelle der Funkstörung - finden Sie sie. + + + Funkstörung: Sprengstoff finden + + + Der Trupp, der auf der Suche nach der Quelle der Funkstörung war, hatte Sprengstoff dabei. Finden Sie diesen, um den Eingang in das Gebäude freizusprengen. + + + Funkstörung: Das Kindergartengebäude betreten + + + Die Signalquelle befindet sich irgendwo im Kindergartengebäude, deswegen müssen Sie es betreten. + + + Evakuierung: Der Armee helfen + + + Strelok mag zwar tot sein, aber Sie müssen der Armee immer noch helfen, zu den Hubschraubern zu gelangen. + + + Evakuierung: Strelok helfen + + + Das Hauptquartier interessiert sich für die Informationen, die Strelok zu bieten hat. Sie müssen ihn zu den Hubschraubern geleiten. + + + Evakuierung: Zu den Hubschraubern gelangen + + + Es ist niemand mehr am Leben - Sie müssen es alleine bis zu den Hubschraubern schaffen. + + + Evakuierung: Mit Kowalski reden + + + Sie müssen mit Kowalski reden, bevor die Evakuierung beginnt. + + + Evakuierung: Kowalski mitteilen, dass Sie bereit sind + + + Sie sollten Kowalski darüber informieren, dass Sie bereit sind, die Evakuierung zu starten. + + + Evakuierung: Auf das Ende der Emission warten + + + Sie müssen warten, bis die Emission vorbei ist. + + + Unbekannt: Die Quelle des Signals finden + + + Kirilloff hat in der Nähe der Basis ein seltsames Signal geortet. Sie müssen die Quelle dieses Signals finden. + + + Unbekannt: Dem Signal folgen + + + Die Koordinaten des Signals stehen wieder zur Verfügung, folgen Sie ihnen. + + + Unbekannt: Den letzten bekannten Ort des Signals untersuchen + + + Das Signal hat im Hof des Gebäudes ausgesetzt. Untersuchen Sie daher den letzten bekannten Ort des Signals. + + + Unbekannt: Bereit machen für Angriff auf die Basis + + + Kehren Sie zur Armeebasis zurück und machen Sie sich für einen wahrscheinlichen Angriff bereit. + + + Funkstörung: Mit Kowalski reden + + + Oberst Kowalski möchte sich mit Ihnen unterhalten. + + + Labor X8: In den Aufzugschacht gelangen + + + Der Eingang zum unterirdischen Labor befindet sich unter dem Servicezentrum Jubilejni. Und der einzige Weg dorthin führt durch den Aufzugschacht. + + + Labor X8: Generator finden + + + Die Stromversorgung für die Türen des Aufzugschachts wurde unterbrochen. Um sie zu öffnen, müssen Sie den Notfallgenerator finden und aktivieren. + + + Labor X8: Ins Labor hinabsteigen + + + Sie müssen den Aufzug benutzen, um in das Labor X8 zu gelangen, das sich unter dem Servicezentrum Jubilejni befindet. + + + Ein Schuss: Boten ausschalten + + + Sie müssen den Boten eliminieren. Wenn er tot ist, werden die Söldner das Labor nicht finden können. + + + Ein Schuss: Auf die Männer des Auftraggebers warten + + + Warten Sie auf die Männer des Auftraggebers und töten Sie dann ihren Anführer. Wenn er tot ist, werden die Söldner das Labor nicht finden können. + + + Ein Schuss: Anführer des Söldnertrupps töten + + + Sie müssen den Anführer des Söldnertrupps ausschalten. Wenn er tot ist, werden die Söldner keine große Gefahr mehr darstellen. + + + Ein Schuss: Auf die Söldner warten + + + Warten Sie auf die Söldner und töten Sie dann ihren Anführer. Wenn er tot ist, werden die Söldner keine große Gefahr mehr darstellen. + + + Ein Schuss: Mit Kowalski reden + + + Berichten Sie Kowalski vom Ausgang der Mission. + + + Labor X8: Unterirdischen Komplex verlassen oder weiter nach Dokumenten suchen + + + Sie haben Dokumente gefunden und können jetzt das Labor verlassen. Allerdings könnten sich im Komplex noch weitere Dokumente befinden. + + + Labor X8: Unterirdischen Komplex verlassen oder weiter nach Dokumenten suchen + + + Sie haben Dokumente gefunden und können jetzt das Labor verlassen. Allerdings könnten sich im Komplex noch weitere Dokumente befinden. + + + Labor X8: Unterirdischen Komplex verlassen + + + Es sieht so aus, als ob Sie alle Dokumente im Labor gefunden hätten. Sie können den unterirdischen Komplex jetzt verlassen. + + + Monolitherkämpfer: Auf Verstärkung warten + + + Sie müssen auf die Verstärkung, die Kowalski geschickt hat, warten, um die Monolither im Buchladen ausschalten zu können. + + + Unter vier Augen: Mit Kowalski reden + + + Sie müssen mit Kowalski reden. Es sieht so aus, als ob er etwas Wichtiges zu sagen hätte. + + + Evakuierung: Bei den Hubschraubern warten + + + Sie müssen die Hubschrauber vor den Gegnern beschützen, bis sie starten können. + + + Evakuierung: Den Arzt wiederbeleben + + + Es sieht so aus, als ob der Arzt erneut von Unbekannten getroffen wurde. Beleben Sie ihn so schnell wie möglich wieder. + + + Evakuierung: Zu den Hubschraubern zurückkehren + + + Sie müssen zu den Hubschraubern zurückkehren, weil sie jetzt jeden Moment starten könnten. + + + Evakuierung: Sofort zu den Hubschraubern zurückkehren + + + Die Hubschrauber sind bereit zu starten. Sie müssen sofort an Bord gehen - die Piloten können nicht mehr viel länger warten. + + diff --git a/gamedata/configs/text/ger/st_quests_zaton.xml b/gamedata/configs/text/ger/st_quests_zaton.xml new file mode 100644 index 0000000..e4047b6 --- /dev/null +++ b/gamedata/configs/text/ger/st_quests_zaton.xml @@ -0,0 +1,780 @@ + + + + Sicherer Hafen: Skadowsk erreichen + + + Die einzigen sicheren Orte in der Zone sind große Lager. Das nächstliegende Lager wäre das Schiff Skadowsk - und dorthin sollten Sie sich begeben. + + + Umgebungskarten: Interessenten für die Karten finden + + + Umgebungskarten: Pilot die Karten anbieten + + + Möglicherweise hätte Pilot, der hiesige Ortskundige, Interesse an den Karten des Gebiets zwischen Zaton und Jupiter. + + + Stingray 2: Absturzstelle untersuchen + + + Untersuchen Sie die Absturzstelle von Stingray 2. + + + Stingray 5: Absturzstelle untersuchen + + + Stingray 5: Herausfinden, warum die Elektronik ausgebrannt ist + + + Stingray-Einheit: Die Quelle der Entladungen finden, die die beiden Hubschrauber getroffen haben + + + Untersuchen Sie die Absturzstelle von Stingray 5. + + + Sie müssen die Quelle der starken elektrischen Entladung finden, die Stingray 5 getroffen hat. + + + Sie müssen herausfinden, warum die Elektronik von Stingray 4 und Stingray 5 ausgebrannt ist. Offensichtlich wurden die Hubschrauber von starken elektrischen Entladungen getroffen. + + + Proviant: Lebensmittel für die Söldner besorgen + + + Der Söldnertrupp in den Werkstätten des Umspannwerks hat Sie gebeten, sechs Dosen Fleisch, Würste oder Brot zu besorgen. + + + Proviant: Die Lebensmittel zu den Söldnern bringen + + + Sie müssen die Lebensmittel, die Sie besorgt haben, zu den Söldnern in den Werkstätten des Umspannwerks bringen. + + + Werkzeug: Die Werkstätten des Umspannwerks untersuchen + + + In den Werkstätten des Umspannwerks soll es Werkzeug geben. Vielleicht finden Sie dort sogar das Werkzeug, das der Techniker braucht. + + + Jagd auf die Chimäre: Den Mutanten finden, solange er schläft + + + Sie müssen die Chimäre finden, bevor sie aufwacht. + + + Auf der Suche nach Magpie: Gonta informieren + + + Wie es scheint, wurde der Stalker namens Magpie, der Gontas Trupp hereingelegt hat, gefunden. Er hat sich mittlerweile der Freiheit angeschlossen und ist dort unter dem Namen Flint bekannt. + + + Jagd auf die Chimäre: Den Mutanten töten + + + Die Chimäre ist aufgewacht und Sie sollten sie töten, bevor es zu spät ist. + + + Jagd auf die Chimäre: Gonta um 3:00 Uhr in der Bar treffen + + + Sie sollten sich vor Sonnenaufgang mit Gonta treffen, um sich seinem Trupp bei der Jagd auf die Chimäre anzuschließen. + + + Jagd auf die Chimäre: Trapper informieren + + + Sie sollten den Stalker Trapper informieren, dass die Jagd auf die Chimäre erfolgreich war. Er dürfte Sie dafür belohnen. + + + Auf der Suche nach Magpie: Den Stalker finden + + + Ein Stalker namens Magpie hat Gontas Trupp hereingelegt, sodass die Männer von einer Chimäre angegriffen wurden. Sie haben Sie gebeten, den Mistkerl zu finden. + + + Evakuierungsstellen: Position B205 untersuchen + + + Auf der Karte, die Sie in einem der Hubschrauber gefunden haben, sind Evakuierungsstellen eingezeichnet. Sie sollten überprüfen, ob die Soldaten zu Position B205 gegangen sind. + + + Evakuierungsstellen: Position B28 untersuchen + + + Auf der Karte, die Sie in einem der Hubschrauber gefunden haben, sind Evakuierungsstellen eingezeichnet. Sie sollten überprüfen, ob die Soldaten zu Position B28 gegangen sind. + + + Evakuierungsstelle: Koordinaten von Position B28 herausfinden + + + In einer Aufnahme auf dem Flugschreiber aus einem der Stingray-Hubschrauber erwähnt der Kommandeur eine Position, bei der die Einheiten zusammentreffen sollen. Dabei handelt es sich um die Evakuierungsstelle B28 und Sie müssen die Koordinaten dieser Stelle herausfinden. + + + Evakuierungsstelle: Position B28 erreichen + + + Die Position, an der die Soldaten zusammentreffen sollen, befindet sich in Pripyat. Finden Sie einen Weg dorthin. + + + Evakuierungsstellen: Position B2 untersuchen + + + Auf der Karte, die Sie in einem der Hubschrauber gefunden haben, sind Evakuierungsstellen eingezeichnet. Sie sollten überprüfen, ob die Soldaten zu Position B2 gegangen sind. + + + Seltsames Phänomen: Das Artefakt zu Beard bringen + + + Die Quelle des seltsamen Leuchtens war ein ebenso seltsames Artefakt. Es dürfte für Beard von Interesse sein. + + + Seltsames Phänomen: Stalker über das Artefakt befragen + + + Die Stalker könnten etwas über das seltsame Artefakt wissen oder jemanden kennen, der mehr darüber weiß. Sie sollten sich mit ihnen unterhalten. + + + Seltsames Phänomen: Die Quelle des Leuchtens beim Baggerschiff finden + + + Beim Baggerschiff wurde ein seltsames Leuchten beobachtet. Beard hat Sie gebeten, die Quelle dieses Phänomens zu ermitteln. + + + Seltsames Phänomen: Das Artefakt nehmen + + + Die Quelle des seltsamen Leuchtens war ein ebenso seltsames Artefakt. Sie sollten es nehmen. + + + Seltsames Phänomen: Beard vom Artefakt berichten + + + Die Quelle des seltsamen Leuchtens war ein ebenso seltsames Artefakt. Auch wenn es sich nicht in Ihrem Besitz befindet, sollten Sie Beard davon berichten. + + + Zum Plateau: In die Anomalie springen + + + Offensichtlich führt der Weg auf das Plateau durch die Anomalie. Sie müssen hineinspringen. + + + Zum Plateau: Noahs geheimen Weg finden + + + Auf Noahs PDA ist die Rede von seinem "geheimen Weg" auf das Plateau. Diesen müssen Sie finden. + + + Zum Plateau: Herausfinden, wie Sie von Noah aus dorthin gelangen + + + Es heißt, dass ein Stalker namens Noah den Weg auf das Plateau kennt. Sie müssen in Erfahrung bringen, wie man dorthin gelangen kann. + + + Verschwundene Stalker: Beweise zurückbringen, dass Tremor etwas damit zu tun hatte + + + Sie müssen den PDA mit Tremors Aufnahmen zur Skadowsk bringen und Beard zeigen. Die Aufnahmen machen deutlich, dass der Arzt für das Verschwinden der Stalker verantwortlich ist. + + + Verschwundene Stalker: Beweise finden, dass Tremor etwas damit zu tun hatte + + + Sie müssen überprüfen, ob Tremor irgendwelche Beweise zurückgelassen hat, die bestätigen, dass er für das Verschwinden der Stalker verantwortlich ist. + + + Stingray 3: Absturzstelle untersuchen + + + Untersuchen Sie die Absturzstelle von Stingray 3. + + + Sie müssen das Artefakt zu Beard bringen, aber die Zeit, die Ihnen als Vorsprung gewährt wurde, ist abgelaufen. Jetzt sind auch Ihre Konkurrenten auf der Suche nach dem Artefakt. + + + Sie müssen das Artefakt zu Beard bringen. Aber vergessen Sie nicht: Ihre Konkurrenten suchen ebenfalls danach. + + + Sie müssen das Artefakt zu Beard bringen, aber es wird berichtet, dass eine andere Gruppe bereits fündig geworden sei. Sie sollten dem Signal folgen und den Auftrag so schnell wie möglich ausführen, bevor Ihre Konkurrenten es schaffen. + + + Sie müssen das Artefakt zu Beard bringen, aber eine andere Gruppe hat das bereits getan. Jetzt werden Sie nur die Hälfte für das Artefakt bekommen. + + + Sie müssen das Artefakt zu Beard bringen. + + + Artefaktbestellung: "Gravit" abliefern + + + Artefaktbestellung: "Auge" abliefern + + + Artefaktbestellung: "Blase" abliefern + + + Artefaktbestellung: "Muschel" abliefern + + + Artefaktbestellung: "Goldfisch" abliefern + + + Artefaktbestellung: "Flamme" abliefern + + + Artefaktbestellung: "Feuerfliege" abliefern + + + Artefaktbestellung: "Schneeflocke" abliefern + + + Sie müssen für Beard das Artefakt finden, aber die Zeit, die Ihnen als Vorsprung gewährt wurde, ist abgelaufen. Jetzt sind auch Ihre Konkurrenten auf der Suche nach dem Artefakt. + + + Sie müssen für Beard das Artefakt finden. Aber vergessen Sie nicht: Ihre Konkurrenten suchen ebenfalls danach. + + + Sie müssen für Beard das Artefakt finden, aber es wird berichtet, dass eine andere Gruppe bereits fündig geworden sei. Sie sollten dem Signal folgen und den Auftrag so schnell wie möglich ausführen, bevor Ihre Konkurrenten es schaffen. + + + Sie müssen für Beard das Artefakt finden, aber eine andere Gruppe hat bereits geliefert. Jetzt werden Sie nur die Hälfte für das Artefakt bekommen. + + + Sie müssen für Beard das Artefakt finden. + + + Artefaktbestellung: "Gravit" finden + + + Artefaktbestellung: "Auge" finden + + + Artefaktbestellung: "Blase" finden + + + Artefaktbestellung: "Muschel" finden + + + Artefaktbestellung: "Goldfisch" finden + + + Artefaktbestellung: "Flamme" finden + + + Artefaktbestellung: "Feuerfliege" finden + + + Artefaktbestellung: "Schneeflocke" finden + + + Kompass: Noah finden und in Erfahrung bringen, wo Sie das seltene Artefakt finden können + + + Sie müssen Noah auf dem alten Schiff finden und in Erfahrung bringen, wo Sie das seltene Kompass-Artefakt finden können. Beard sucht schon sehr lange danach und ist bereit, viel Geld dafür zu zahlen. + + + Kompass: Das Artefakt zu Beard bringen + + + Kompass: Von Noah in Erfahrung bringen, wo Sie das seltene Artefakt finden können + + + Sultan interessiert sich ebenfalls für das Artefakt, das Beard sucht. Sie müssen Noah auf dem alten Schiff finden und in Erfahrung bringen, wo Sie das Artefakt finden können. + + + Kompass: Das Artefakt zu Sultan bringen + + + Das Artefakt, das Sie von Noah erhalten haben, ist der Kompass, den Sultan sucht. + + + Dunkle Geschäfte: Ihren Anteil bei Beard kassieren + + + Sie sollten sich Ihren Anteil an Beards Einnahmen bei ihm holen. + + + Verführerische Geschäfte: Mit Sultan reden + + + Der Händler Uhu glaubt, dass Beard sich nicht an die Vereinbarung hält, und hat Ihnen vorgeschlagen, dass Sie Sultan, den örtlichen Gangsterboss, um Hilfe bitten. + + + Dunkle Geschäfte: Den Stalkern die Detektoren abnehmen + + + Sie müssen den Stalkern, die für Beard nach Artefakten suchen, um jeden Preis die Detektorprototypen abnehmen. Ohne Detektoren wird er Sultans Bedingungen akzeptieren. + + + Dunkle Geschäfte: Mit Sultan reden + + + Beard hat keine Detektoren, deswegen sollten Sie mit Sultan reden, um herauszufinden, ob er das Problem mit Beards anderen Lieferanten gelöst hat. + + + Dunkle Geschäfte: Beard zwingen, für Sultan zu arbeiten + + + Jetzt da Beard keine Detektoren oder Lieferanten mehr hat, sind ihm die Hände gebunden. Zwingen Sie ihn, für Sultan zu arbeiten. + + + Dunkle Geschäfte: Mehr über Beards momentane Geschäfte herausfinden + + + Sie müssen herausfinden, welchen Geschäften Beard im Moment nachgeht. Das wird Ihnen dabei helfen, seine Versorgungskanäle zu schließen. + + + Dunkle Geschäfte: Den Stalkern den zweiten Detektor abnehmen + + + Sie müssen den Stalkern, die für Beard nach Artefakten suchen, um jeden Preis die Detektorprototypen abnehmen. Ohne Detektoren wird er Sultans Bedingungen akzeptieren. + + + Verführerische Geschäfte: Nowikow drei Veles-Detektoren bringen + + + Der Händler Uhu hat Ihnen ein lukratives Geschäft vorgeschlagen. Sie sollen drei Veles-Detektoren finden und in den Bunker der Wissenschaftler zu Nowikow bringen. + + + Verführerische Geschäfte: Warten, bis Uhu die Detektoren erhält + + + Nowikow hat die Detektoren angenommen und versprochen, sie Uhu zurückzuschicken. Sie müssen warten, bis er die Arbeit mit den Detektoren abgeschlossen hat, und danach von Uhu die Ergebnisse in Erfahrung bringen. + + + Verführerische Geschäfte: Mit Uhu reden + + + Der Händler Uhu hat Sie per Funk kontaktiert und Ihnen erzählt, dass er Probleme hat. Er würde Sie gerne treffen. + + + Verführerische Geschäfte: Beard überzeugen, sich an die Vereinbarung zu halten + + + Der Händler Uhu glaubt, dass Beard sich nicht an die Vereinbarung hält. Sie müssen mit ihm reden und ihn davon überzeugen, nicht mehr gegen die Vereinbarung zu verstoßen. + + + Verführerische Geschäfte: Ihren Anteil von Uhu verlangen + + + Beard ist der Meinung, dass er Uhu nichts schuldet - Sie müssen herausfinden, wer Recht hat, und dann von dieser Person Ihren Anteil einfordern. + + + Snag hat Sie gebeten, ihm seine Kiste zu bringen. Er hat sie in einem alten Saporoschez-Auto versteckt, das während eines Erdbebens in einen Spalt gestürzt ist. Snag hat Angst, da hinunterzugehen, weil es dort von Schnorks nur so wimmelt. + + + Sie haben Snags Kiste und sollten sie ihm jetzt zurückbringen, um sich mit ihm den Inhalt brüderlich zu teilen. + + + Blutsaugerlager: Die Stalker informieren + + + Informieren Sie die Stalker über das Blutsaugerlager unter dem Antennenkomplex Krug. + + + Blutsaugerlager: Beard informieren + + + Sie müssen Beard von dem Blutsaugerlager, das unter dem Antennenkomplex Krug gefunden wurde, erzählen, damit er entscheiden kann, wie die Stalker beschützt werden sollen. + + + Verschwundene Stalker: Grouse folgen + + + Grouse hat Sie gebeten, mit ihm zusammen den verlassenen Antennenkomplex zu durchsuchen. Er hat Blutsauger gesehen und will überprüfen, ob der Jäger dort ist. + + + Verschwundene Stalker: Herausfinden, was passiert ist + + + Tremor ist wohl doch nicht so unschuldig, wie er zu sein scheint. Sie müssen herausfinden, was passiert ist. + + + Verschwundene Stalker: Grouse finden + + + Grouse ist nicht ohne Grund zu den Kränen gegangen - vielleicht hatte er etwas über die verschwundenen Stalker herausgefunden. Deswegen sollten Sie dort nach ihm suchen. + + + Verschwundene Stalker: Herausfinden, wo sich Grouse aufhält + + + Grouse ist nicht dort, wo er normalerweise steckt. Sie sollten Beard fragen, wohin er gegangen ist. + + + Verschwundene Stalker: Den verschwundenen Jäger finden + + + Grouse hat Sie um Hilfe bei der Suche nach dem verschwundenen Jäger gebeten. Dieser sollte eigentlich das Blutsaugerlager finden. Laut den neuesten Meldungen sind die Blutsauger dafür verantwortlich, dass in letzter Zeit Stalker verschwunden sind. + + + Verschwundene Stalker: Raus aus dem Blutsaugerlager + + + Im Untergeschoss haben Sie ein Blutsaugerlager entdeckt und zudem gesehen, dass sich die Blutsauger dort in einer Art Schlafzustand befinden. Sie sollten von dort verschwinden, und zwar leise. + + + Verschwundene Stalker: Grouse treffen + + + Sie sollten sich mit Grouse treffen und die Suche nach dem verschwundenen Jäger besprechen. + + + Verschwundene Stalker: Grouse später treffen + + + Im Antennenkomplex waren keine Spuren von Danila dem Jäger zu finden. Allerdings war Grouse recht verblüfft darüber, was Sie im Gebäude gefunden haben. Er hat Sie gebeten, sich später mit ihm zu treffen, um die Sache eingehender zu besprechen. + + + Verschwundene Stalker: Grouse treffen + + + An dem Ort, den Grouse gemeint hatte, gab es einen toten Blutsauger, aber keine Spuren von Danila dem Jäger. Allerdings scheint es so, als ob Grouse etwas Interessantes gefunden hätte, und er bittet Sie, sich ihm anzuschließen. + + + Es hat sich herausgestellt, dass die Blutsauger nichts mit dem Verschwinden der Stalker zu tun haben - Tremor steckt dahinter, der Arzt auf der Skadowsk. + + + Werkzeug: Kardan Werkzeug bringen + + + Kardan hat Sie gebeten, ihm zwei Werkzeugsets zu beschaffen: Eines für einfache Arbeiten und eines für feinere Arbeiten. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Kardan Werkzeug bringen + + + Kardan hat Sie gebeten, ihm zwei Werkzeugsets zu beschaffen: Eines für einfache Arbeiten und eines für Kalibrierungsarbeiten. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Kardan Werkzeug bringen + + + Kardan hat Sie gebeten, ihm Werkzeug für einfache Arbeiten zu beschaffen. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Kardan Werkzeug bringen + + + Kardan hat Sie gebeten, ihm zwei Werkzeugsets zu beschaffen: Eines für feinere Arbeiten und eines für Kalibrierungsarbeiten. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Kardan Werkzeug bringen + + + Kardan hat Sie gebeten, ihm Werkzeug für feinere Arbeiten zu beschaffen. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Kardan Werkzeug bringen + + + Kardan hat Sie gebeten, ihm Werkzeug für Kalibrierungsarbeiten zu beschaffen. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Werkzeug: Kardan Werkzeug bringen + + + Kardan hat Sie gebeten, ihm drei Werkzeugsets zu beschaffen: Eines für einfache, eines für feinere und eines für Kalibrierungsarbeiten. Der Techniker wird Sie für das Werkzeug bezahlen und damit bessere Modifikationen für Waffen und Panzerung durchführen können. + + + Söldnerlager: Möglichst viele Informationen sammeln + + + Der Händler Uhu wird für alle Informationen, die Sie im Söldnerlager bei der Kläranlage finden, einen guten Preis zahlen. Er ist sehr interessiert an den Plänen der Söldner. + + + Söldnerlager: Möglichst viele Informationen sammeln + + + Der Händler Uhu wird für alle Informationen, die Sie im Söldnerlager bei der Kläranlage finden, einen guten Preis zahlen. Er ist sehr interessiert an den Plänen der Söldner. + + + Drei Kameraden: Herausfinden, was mit Barge passiert ist + + + Kardan hat Sie gebeten, sich in seinem Namen bei seinem Kameraden, einem Stalker namens Barge, zu entschuldigen. Sie hatten sich gestritten und Barge war weggegangen, ohne zu sagen wohin. + + + Drei Kameraden: Herausfinden, was mit Barge und Joker passiert ist + + + Kardan hat Sie gebeten, sich in seinem Namen bei seinen Kameraden, zwei Stalkern namens Barge und Joker, zu entschuldigen. Sie hatten sich gestritten und seine Kameraden waren weggegangen, ohne zu sagen wohin. + + + Drei Kameraden: Herausfinden, was mit Joker passiert ist + + + Kardan hat Sie gebeten, sich in seinem Namen bei seinem Kameraden, einem Stalker namens Joker, zu entschuldigen. Sie hatten sich gestritten und Joker war weggegangen, ohne zu sagen wohin. + + + Sonderbefehl: Waren abholen + + + Die Waren wurden geliefert - es ist an der Zeit, sie bei Nimble abzuholen. + + + Sonderbefehl: Auf Lieferung warten + + + Die Bestellung wurde aufgegeben, daher müssen Sie jetzt nur noch darauf warten, dass Nimble die Waren bekommt. + + + Guter Ruf: Snag finden + + + Sie müssen Snag finden und dafür sorgen, dass er den Mund hält. Nimble hat nie mit Diebesgut gehandelt, Snag hingegen lügt häufiger, als er die Wahrheit sagt. Er wurde zuletzt bei den Dockkränen gesehen und könnte sich immer noch dort aufhalten. + + + Sie müssen Snag finden und dafür sorgen, dass er den Mund hält. Snag hält sich nicht bei den Dockkränen auf, aber die Banditen könnten wissen, wo er sich herumtreibt. + + + Sie müssen Snag finden und dafür sorgen, dass er den Mund hält. Offenbar sind die Banditen in diese Sache verwickelt, daher dürften sie wissen, wo sich Snag aufhält. + + + Sie müssen Snag finden und dafür sorgen, dass er den Mund hält. Im Moment haben Sie keinerlei Hinweise darauf, wo er sich aufhalten könnte. + + + Sie müssen Snag finden und dafür sorgen, dass er den Mund hält. Laut dem PDA, den Sie bei einem der Banditen gefunden haben, suchen Sultans Männer nach Snag. Leider gibt es keinen Hinweis darauf, wo er sich aufhalten könnte. + + + Guter Ruf: Herausfinden, wohin Snag verschwunden ist + + + Snag ist nicht da, wo er sich normalerweise herumtreibt. Daher sollten Sie die Leute vor Ort fragen, ob sie gesehen haben, wohin er gegangen ist. + + + Sie müssen Snag finden und dafür sorgen, dass er den Mund hält. Er ist nicht da, wo er sich normalerweise herumtreibt. Vielleicht weiß Sultan, wo Sie ihn finden könnten. + + + Sie müssen Snag finden und dafür sorgen, dass er den Mund hält. Er ist nicht da, wo er sich normalerweise herumtreibt. Vielleicht weiß Beard, wo Sie ihn finden könnten. + + + Guter Ruf: Mit Snag reden + + + Sie müssen Snag finden und dafür sorgen, dass er den Mund hält. Nimble hat nie mit Diebesgut gehandelt, Snag hingegen lügt häufiger, als er die Wahrheit sagt. + + + Blutsaugerlager: Belüftungsschacht finden + + + Finden Sie den Belüftungsschacht, damit Sie das Blutsaugerlager mit giftigem Gas fluten können. + + + Blutsaugerlager: Giftiges Gas finden + + + Sie benötigen giftiges Gas, um das Blutsaugerlager zu zerstören. Uhu dürfte wissen, so Sie solches Gas finden können. + + + Sie benötigen giftiges Gas, um das Blutsaugerlager zu zerstören. Uhu behauptet, dass Sie beim verlassenen Militärkonvoi eine Gasflasche finden können. + + + Blutsaugerlager: Schlüssel für die Kiste finden + + + In den Dokumenten, die Sie gefunden haben, werden Schlüssel für die Kiste mit der Gasflasche erwähnt. Sie müssen sie finden. + + + Blutsaugerlager: Einen Weg finden, die Kiste mit der Gasflasche zu öffnen + + + Die Kiste mit der Gasflasche ist verschlossen. Sie müssen einen Weg finden, sie zu öffnen. + + + Blutsaugerlager: Gasflasche platzieren + + + Platzieren Sie die Gasflasche für das Belüftungssystem im Untergeschoss des Antennenkomplexes. Das Gas sollte durch den Belüftungsschacht in das Untergeschoss strömen und die Blutsauger töten. + + + Blutsaugerlager: Beard informieren, dass das Lager zerstört wurde + + + Berichten Sie Beard davon, dass Sie das Blutsaugerlager zerstört und damit die Sicherheit der Stalker auf der Skadowsk wiederhergestellt haben. + + + Blutsaugerlager: Ventil aufdrehen + + + Drehen Sie das Ventil auf, damit das giftige Gas durch den Belüftungsschacht in das Untergeschoss mit dem Blutsaugerlager strömen kann. + + + Blutsaugerlager: Warten, bis das Gas wirkt + + + Sie müssen sichergehen, dass das Gas das Lager erreicht und die Blutsauger alle tot sind. + + + Transaktion: Banditen bei der Forststation treffen + + + Sultan hat Sie gebeten, bei einer Transaktion mit einem Händler mitzumachen. Sie müssen seine Männer begleiten und ihnen Hilfe leisten, falls etwas passieren sollte. + + + Transaktion: Den Händler treffen + + + Uhu hat einen Auftrag für Sie: Sie müssen einen Händler bei einer Transaktion beschützen. Ganz offensichtlich handelt es sich um ein krummes Geschäft und es wird nicht ohne Probleme über die Bühne gehen. + + + Transaktion: Stalker bei der Forststation treffen + + + Treffen Sie sich mit den Stalkern bei der Forststation und helfen Sie ihnen, die Transaktion zwischen den Banditen und dem Waffenhändler zu vereiteln. + + + Transaktion: Den Händler beschützen + + + Der Händler hat Ihnen Ihren Auftrag erklärt: Sie müssen ihn bei der Transaktion beschützen. + + + Transaktion: Gespräch mithören + + + Die Stalker möchten mithören, was die Banditen und der Waffenhändler zu bereden haben. + + + Transaktion: Den Waffenhandel vereiteln + + + Tun Sie alles Nötige, um das Geschäft zwischen den Banditen und dem Waffenhändler zu vereiteln. + + + Transaktion: Zeugen ausschalten + + + Aus dem Geschäft des Waffenhändlers wurde nichts, daher müssen Sie alle Zeugen ausschalten. + + + Transaktion: Den Händler beschützen + + + Sie müssen den Händler beschützen. Zudem hat er Sie aufgefordert, alle Zeugen der Transaktion - inklusive seiner Kunden - auszuschalten. + + + Transaktion: Den Händler durchsuchen + + + Der Händler könnte wichtige Informationen bei sich haben, die Ihnen später von Nutzen sein könnten. Lassen Sie sie sich nicht entgehen. + + + Transaktion: Den Banditen während der Transaktion Rückendeckung geben + + + Halten Sie die Stellung und geben Sie den Banditen Rückendeckung, während sie mit dem Händler verhandeln. + + + Transaktion: Mit dem Händler reden + + + Das Geschäft mit den Banditen wurde abgewickelt, daher sollten Sie jetzt Ihre Belohnung kassieren. + + + Transaktion: Ihre Belohnung von Beard kassieren + + + Beard hatte Ihnen eine Belohnung versprochen, falls es Ihnen gelingen sollte, das Geschäft zwischen den Banditen und dem Händler zu vereiteln. Da Sie es geschafft haben, können Sie nun Ihre Belohnung einfordern. + + + Transaktion: Mit dem Banditenanführer reden + + + Sie müssen dem Anführer der Banditen mitteilen, dass Sie bereit sind, bei der Transaktion mitzumachen. + + + Der Überfall: Entscheiden, was zu tun ist + + + Der Überfall: Die Stalker angreifen + + + Der Überfall: Ihre Belohnung kassieren + + + Der Überfall auf das Lager wurde abgewehrt, daher können Sie sich jetzt wegen Ihrer Belohnung an die Stalker wenden. Diese hätten es sehr schwer gehabt, wenn sie nicht gewarnt worden wären. + + + Eine Gruppe von Stalkern hat vor, wie Banditen ihre eigenen Leute zu überfallen. Sie müssen sich entscheiden, ob Sie bei dem Angriff mitmachen, die Stalker warnen oder sich überhaupt nicht einmischen. + + + Der Überfall: Bis zum vereinbarten Zeitpunkt warten + + + Der Überfall: Auf den richtigen Moment warten + + + Unerreichbares Versteck: Kiste zu Snag bringen + + + Transaktion: Mit dem Anführer des Stalkertrupps reden + + + Die Transaktion wurde sabotiert, der Waffenhändler ist tot. Reden Sie mit dem Anführer des Stalkertrupps. + + + Verschwundene Stalker: Den Leuten auf der Skadowsk berichten, was geschehen ist + + + Mit den Schlüsseln, die Sie gefunden haben, müssen Sie die Kiste aufmachen und die Flasche mit dem giftigen Gas herausnehmen. + + + Blutsaugerlager: Flasche mit giftigem Gas aus der Kiste nehmen + + + Der Überfall: Räuber angreifen + + + Die Räuber von hinten anzugreifen, wird den Stalkern helfen, den Überfall abzuwehren. + + + Der Überfall: Räuber treffen + + + Schließen Sie sich den Räubern beim Überfall auf das Stalkerlager an. + + + Der Überfall: Den Räubern anschließen + + + Sie wurden von Stalkern gebeten, ihnen dabei zu helfen, den Überfall der Räuber abzuwehren. Sie sollten sich den Räubern anschließen. Wenn sie dann den Überfall starten, können Sie ihnen ohne Probleme in den Rücken fallen. + + + Die Räuber dürften bei der Schewtschenko warten. Sie müssen sich mit ihnen treffen, um am Überfall auf die Stalker teilnehmen zu können. + + + Warten Sie auf das Treffen mit den Räubern. Sie wollen das Stalkerlager nach Mitternacht überfallen, während es dunkel ist. Der vereinbarte Treffpunkt ist die Schewtschenko. + + + Der Überfall: Ihren Anteil kassieren + + + Der Überfall auf die Stalker war ein voller Erfolg und Sie sollten Ihren Anteil an der Beute kassieren. + + + Warten Sie auf den richtigen Augenblick, wenn die Räuber durch den Überfall abgelenkt sind. Dann können Sie sie von hinten aufs Korn nehmen und damit den Stalkern auf der Schewtschenko helfen. + + + Dunkle Geschäfte: Anfangen, für Beard zu arbeiten + + + Um den Stalkern, die für Beard arbeiten, die Detektorprototypen abzunehmen, müssen Sie sich unter sie mischen. Dadurch erfahren Sie, wo Ihre Konkurrenten sind. + + + Sie müssen die Kiste nehmen und sie zu ihrem Besitzer bringen. + + + Auf dem Bordcomputer von Stingray 2 befanden sich Karten der Gegend zwischen Zaton und der Jupiter-Anlage. Sie sollten jemanden finden, der etwas mit diesen Karten anfangen kann. + + + Zum Plateau: Mit Stalkern reden + + + Es scheint so, als ob es keinen direkten Weg zum Plateau gäbe. Fragen Sie die Stalker vor Ort, wie sie dorthin gelangen. + + + Sie haben von Noah das Kompass-Artefakt erhalten, das Beard will. + + diff --git a/gamedata/configs/text/ger/st_subtitles.xml b/gamedata/configs/text/ger/st_subtitles.xml new file mode 100644 index 0000000..30618ef --- /dev/null +++ b/gamedata/configs/text/ger/st_subtitles.xml @@ -0,0 +1,156 @@ + + + + Am 26. April 1986 wird um 01:23 Uhr der Reaktor von Block 4 des Atomkraftwerks Tschernobyl durch eine Folge von thermischen Explosionen zerstört. Die dadurch entstandene radioaktive Wolke bewegt sich über den europäischen Teil der UdSSR, Osteuropas und Skandinaviens und erreicht schließlich den amerikanischen Kontinent. + + + Die Konsequenzen dieser Katastrophe sind so fatal, dass die Regierung sich gezwungen sieht, eine Evakuierung der nahe liegenden Städte und Dörfer anzuordnen. + + + Eine Sperrzone mit einem Radius von 30 Kilometern wird errichtet, um die Bewohner daran zu hindern, in das verstrahlte Gebiet zurückzukehren. + + + Trotz der Katastrophe bleibt das Atomkraftwerk Tschernobyl in Betrieb. Die Existenz eines Kraftwerks sowie die Tatsache, dass das Gebiet nicht mehr besiedelt ist, veranlassen den Ministerrat der UdSSR dazu, in der Sperrzone ein Netzwerk aus geheimen Labors zu errichten. + + + 11. Juni 2006. Die Sperrzone wird von einem grellen Blitz erhellt, gefolgt von in den Himmel aufsteigendem Rauch. Nach einem Augenblick der totalen Stille bringt ein dröhnender Donner die Erde zum Beben. Die meisten Truppen der Regierung, die dort zur Bewachung des Gebiets stationiert sind, sterben auf der Stelle. + + + 2008. Die Wissenschaftler haben immer noch keine Erklärung für die Vorkommnisse gefunden. Die seltenen Expeditionen in die Sperrzone enden für gewöhnlich in einer Tragödie und die Überlebenden berichten von mutierten Tieren mit unglaublichen Fähigkeiten, die durch das Gelände streifen. + + + Laut verschiedener Schätzungen beheimatet die Zone im Jahr 2010 zwischen ein- und dreihundert unbekannte Personen. Sie nennen sich Stalker und verdienen sich ihren Lebensunterhalt durch das Einsammeln ungewöhnlicher Gesteinsbildungen, die gemeinhin als Artefakte bekannt sind und zu stattlichen Preisen gehandelt werden. + + + 2011. Trotz der Errichtung militärischer Sperrgebiete nimmt die Zahl der Stalker immer weiter zu. Diese halten sich jedoch überwiegend in den Randgebieten der Zone auf und das Zentrum bleibt nahezu unerforscht. Die wenigen Versuche, tiefer in die Zone vorzudringen, schlagen ausnahmslos fehl. + + + 2012: Ein Stalker namens Strelok lüftet das Geheimnis um den Hirnschmelzer, einen von Menschenhand geschaffenen Sender, der für Jahre ein Betreten des Zentrums der Zone unmöglich gemacht hat. Nachdem der Hirnschmelzer deaktiviert wurde, treibt es alle Stalker in das Zentrum der Zone: einige mit der Hoffnung, einen wertvollen Artefaktfund zu machen, andere auf der Suche nach dem Wunschgönner. + + + Die Regierung beschließt, eine groß angelegte Militäroperation durchzuführen. Bei diesem Einsatz - Operation "Fairway" - finden Karten mit Anomaliefeldern Verwendung, um Hubschrauber unversehrt zum Atomkraftwerk Tschernobyl manövrieren zu können. Trotz sorgfältiger Vorbereitung missglückt die Operation und keiner der Hubschrauber kehrt zurück. + + + Major Degtarew, Agent des ukrainischen Geheimdienstes, wird in die Zone geschickt, um das Verschwinden der Hubschrauber zu untersuchen. + + + Verkleidet als Stalker, bewaffnet mit einem gewöhnlichen Sturmgewehr und ausgerüstet mit Verpflegung für zwei Wochen sowie mit einem Funkgerät zur Kommunikation mit dem Hauptquartier macht sich der Major auf den Weg in das Zentrum der Zone. + + + Gespräche mit Stalkern führen zu keinem Ergebnis. Entweder haben sie keine Informationen, oder sie wollen sie für sich behalten... + + + Die Zone lässt keine Gelegenheit aus, den Major daran zu erinnern, dass dieser Einsatz kein Erholungsurlaub ist. Kein Tag vergeht ohne einen Angriff von Mutanten oder schlimmer: Menschen. + + + Die Kommunikation mit dem Hauptquartier gibt ebenfalls keinen Anlass, optimistisch zu sein: Die Informationen sind spärlich, abgesehen von den Koordinaten der fünf abgestürzten Hubschrauber, die per Satellit übertragen wurden. + + + Als der Major nur noch 5 Kilometer vom Atomkraftwerk Tschernobyl entfernt ist, bricht der Funkkontakt ab. + + + Degtarew wurde als Belohnung dafür, dass er seine Ermittlungen erfolgreich abschließen konnte, zum Oberst befördert und zum Missionskoordinator ernannt. Er lehnte die Arbeit im Hauptquartier ab und bat darum, für den ukrainischen Geheimdienst als ständiger Beobachter in die Zone geschickt zu werden. + + + Die Informationen über die Entwicklung von PSI-Geräten, die Degtarew beschafft hatte, waren alarmierend für den ukrainischen Geheimdienst. Alle entsprechenden Informationen wurden aus den Militärunterlagen entfernt und als streng geheim eingestuft. Das gesamte Personal, das in der Zone tätig war, wurde angewiesen, um jeden Preis zu verhindern, dass Details über die Labors an die Öffentlichkeit gelangen. + + + Auf Basis der technischen Dokumente für Forschungsobjekt 62 wurden verschiedene experimentelle Prototypen entwickelt. Nach einer Reihe von Tests wurde auf Grund der hohen Kosten für die Munition entschieden, dass die Waffe nicht in die Serienproduktion gehen solle. Dennoch ist es nicht unwahrscheinlich, dass die Entwicklung des Gaußgewehrs fortgesetzt wurde und noch wird. + + + Nachdem es Sultan und seiner Bande nicht gelungen war, die Skadowsk zu übernehmen, verließen sie das Schiff, um ihren krummen Geschäften woanders nachzugehen. Das daraufhin eintretende Gefühl der Sicherheit unter den Stalkern führte zu einer enormen Steigerung der Artefaktverkäufe an Beard. Dessen Geschäft blühte auf und die ehemals ruhige Bar der Skadowsk wurde so beliebt wie die berühmte 100 Rads Bar, obwohl sie sich fast mitten in der Zone befindet! + + + Die Skadowsk wurde zur Heimat der Banditen. Obwohl alle Stalker zu Steuerzahlungen gezwungen wurden, gingen die Streitereien an Bord dramatisch zurück, nachdem an einigen unverbesserlichen Quertreibern ein Exempel statuiert worden war - man hatte sie über Bord geworfen, damit sie in den Emissionen ums Leben kommen. Beard jedoch war nicht willens, einen Teil seiner Einnahmen abzugeben. Daher scharte er einen Trupp von Stalkern um sich und machte sich auf, um die unerforschten Gebiete der Zone zu erkunden. Auf der Skadowsk setzte sich Sultans Gesellschaftsordnung endgültig durch. + + + Die Skadowsk wurde zur Heimat für all jene, die das Schiff erreichen konnten. Obwohl die Stalker erbitterten Widerstand leisteten, versuchten die Banditen immer wieder vergeblich, ihre so genannte "Ordnung" auf dem Schiff durchzusetzen. Trotz dieser andauernden Auseinandersetzungen wurde auf der Skadowsk die einzigartige Art zu leben fortgeführt, für die das Schiff so berühmt war. + + + Leider war dies nicht von allzu langer Dauer. Blutsauger aus einer Höhle in der Nähe der Skadowsk fanden einen Weg zum Schiff. Als sie schließlich dazu übergingen, am helllichten Tage anzugreifen, wurde die Entscheidung getroffen, den Unterschlupf der Kreaturen zu stürmen. Leider schafften es die Jäger nicht, tief genug in die Tunnel vorzustoßen, und schon kurz darauf löschten die Blutsauger mit einer einzigen Angriffswelle alles Leben an Bord der Skadowsk aus. + + + Nach der Zerstörung der Blutsaugerhöhle kann wohl kaum noch etwas den Lauf der Dinge auf der Skadowsk stören. Das alte Schiff entwickelte sich vorübergehend zu einem Hort der Stabilität in der ansonsten vom ewigen Wandel geprägten Zone. + + + Den Freiheitlern gelang es, das Vertrauen der Stalker in der Janow-Station zu gewinnen. Die Wächter starteten einen Angriff, um verlorenen Boden wiedergutzumachen, doch Oberst Shulga wurde bei einem Feuergefecht getötet. Der Wächtertrupp konnte den Verlust seines Kommandeurs nicht verkraften und fiel schon bald auseinander. + + + Verstärkungen und die wachsende Beliebtheit unter den Stalkern sorgten dafür, dass der Angriffstrupp der Wächter die Freiheitler von der Janow-Station vertreiben konnte. Bei dieser Schlacht wurden Loki und sein Trupp ein für allemal ausgeschaltet. + + + Die Freiheitler und die Wächter in der Janow-Station gelangten zu einem fragilen Gleichgewicht. Die Kämpfer der beiden Parteien hatten einfach genug von den endlosen Gefechten. Aus diesem Grund begannen sie, ihre Gruppierungen zu verlassen und sich den freien Stalkern anzuschließen. + + + Die wissenschaftliche Expedition, die die Professoren Hermann und Oserski organisiert hatten, war ein voller Erfolg. Die gesammelten Daten ermöglichten bahnbrechende Entwicklungen auf den Gebieten der Medizin und Technik. Dies führte schließlich dazu, dass das Bildungsministerium zusätzliche Finanzmittel für die Erforschung der Zone bewilligte. + + + Die Professoren Hermann und Oserski mussten ihre wissenschaftliche Forschung in der Zone wegen fehlender Daten vorzeitig beenden. Nach ihrer Rückkehr in die Welt außerhalb der Zone widmeten sie sich Arbeitsfeldern, die nichts mehr mit der Zone zu tun hatten. + + + Garis Geschichten über den Kampf der Armee gegen die Gefahren von Pripyat ermutigten Stalker dazu, die Geisterstadt zu erkunden. Trotz der Angriffe durch die Monolither gelang es ihnen, das ehemalige Armeelager zu sichern. Sie nutzten es als Basis für ihre weiteren Vorstöße tief in die Stadt, die zwar langsam vonstattengingen, aber dennoch erfolgreich waren. + + + Garis Geschichten über das Schicksal der Armee ließen die Stalker vor Pripyat zurückschrecken. Die wenigen, die sich in die Stadt wagten, stießen auf unerklärliche Phänomene, was das bereits düstere Bild, das die Menschen von der toten Stadt hatten, weiter verfestigte. + + + Die Legende von der Oase war keine mehr. Wer schließlich den Weg zur geheimen Anomalie gefunden hatte, wurde zu einem immer beliebteren Gesprächsthema unter Stalkern. Dennoch versuchten weiterhin zahlreiche Stalker sie zu finden - was sich die Banditen schon bald zu Nutze machten. Sie boten den Stalkern an, sie zur Oase zu führen, überfielen sie aber lediglich, wenn sie weit genug von den Stalkerlagern entfernt waren. + + + Organisierte Söldnertrupps sind weiterhin in der Zone aktiv. Ihr Interesse an den geheimen Labors zu ignorieren, fällt den Verantwortlichen des ukrainischen Geheimdienstes immer schwerer. Jeder Versuch herauszufinden, wer die Söldner angeheuert hat, ist bis jetzt gescheitert. + + + Das Gebiet um die Janow-Station zieht weiterhin viele Stalker an. Das Fehlen von gefährlichen Mutanten und zahlreiche Anomalien haben dazu geführt, dass das Gebiet immer öfter als "Fundgrube" bezeichnet wird. + + + Das Gebiet um die Janow-Station gehört mittlerweile zu den gefährlichsten Gegenden der Zone. Immer weniger Stalker kehren von Abstechern dorthin lebend zurück, viele von ihnen fallen bereits unweit des Lagers wilden Mutanten zum Opfer. Einer der Vermissten ist Trapper, der sich auf die Spuren einer Chimäre gemacht hatte - das dürfte seine letzte Jagd gewesen sein. + + + Zulu kehrte zur Hauptbasis der Wächter bei der Rostok-Anlage zurück. Niemand weiß, was er dort mit dem Anführer der Wächter, General Woronin, besprach. Aber einige Tage später wurde er an der Spitze eines großen Trupps gesehen, der ins Zentrum der Zone unterwegs war. + + + Gerüchte über Zulus Schicksal erreichten den Anführer der Wächter, General Woronin. Entgegen den meisten Erwartungen entschied Woronin, Zulu posthum den Silbernen Schild zu verleihen, die höchste Auszeichnung der Wächter. + + + Wano begab sich in die von den Freiheitlern kontrollierten Militärlager, wo er durch seinen freundlichen Charakter und Optimismus schnell an Beliebtheit gewann. Später übernahm er schließlich die Leitung einer kleinen Gruppe von Wissenschaftlern, die Anomaliegebiete untersuchten. + + + Die Stalker in der Janow-Station haben Wano noch nicht vergessen und erinnern sich gern an seine Leichtherzigkeit und seine Fertigkeiten. Auch wenn man sich über viele Aspekte seines Lebens streiten kann, ist eines gewiss: Angesichts seines allgemeinen Pechs war es ein großer Fehler, sich auf die Suche nach einem Weg nach Pripyat zu machen. + + + In der Zone ist eine neue Gruppierung aufgetaucht. Sie sind gut ausgebildet, aber ihre Ziele sind unbekannt. Gerüchten zufolge handelt es sich bei ihnen um ehemalige Monolither. Ihr Anführer ist unter dem Namen Strider bekannt. + + + Nur wenige bekamen das Verschwinden von Strider mit. Sein Wunsch, Leuten zu helfen, die in den Bann des Monolithen geraten waren, begleitete ihn bis ins Grab. + + + Oberleutnant Sokolow nahm weiterhin an Flugmissionen über der Zone teil. Während eines solchen Fluges über Limansk wurde sein Flugzeug von Söldnern abgeschossen. Zwei Wochen später wurde er von einer Patrouille in der Nähe des Kordons gefunden. Einen Monat nach seiner Rettung verließ Sokolow die Luftstreitkräfte und heuerte stattdessen bei einer zivilen Luftfahrtgesellschaft an. + + + Zu den zahlreichen Opfern der Operation "Fairway" kam ein weiteres hinzu: "Oberleutnant O. N. Sokolow, gefallen bei der Ausübung seiner Pflichten." + + + Uhu hat Kunden außerhalb der Zone gefunden. Er verkauft Informationen und diese landen, falls die Gerüchte stimmen sollten, direkt beim ukrainischen Geheimdienst. + + + Eine Gruppe von Stalkern musste wegen einer besonders starken Emission Unterschlupf auf Noahs altem Kahn suchen. Als das Schiff von einer Horde Schnorks angegriffen wurde, stellte sich heraus, dass der Kahn die beste Verteidigungsmöglichkeit gegen Mutanten war, die die Stalker je gesehen hatten. Und noch erstaunlicher war die Tatsache, dass Noah eine Reihe von Pseudohundwelpen in die Schlacht gegen die Schnorks schickte. + + + Nachdem Kardan vom Schicksal seiner Freunde gehört hatte, gab er seine Träume von einem Leben als Stalker auf. Er besiegte seinen Alkoholismus und zog in die Janow-Station, wo er zusammen mit Nitro eine Werkstatt eröffnete. Mittlerweile widmen beide Mechaniker ihre gesamte Freizeit dem Bau eines Fahrzeugs, das in der Zone eingesetzt werden kann. + + + Nachdem Kardan seine Alkoholsucht besiegt hatte, verließ er die Skadowsk. Es hieß, dass er sich auf die Suche nach seinen vermissten Freunden gemacht hätte. Mehrere Tage später kehrte er - verletzt und verstrahlt - zurück. Sobald seine Verletzungen auskuriert waren, verließ er die Zone zum zweiten und wohl letzten Mal. + + + Strelok gab die Informationen, die er bei seinem Abstecher zum Atomkraftwerk Tschernobyl gesammelt hatte, an den ukrainischen Geheimdienst weiter. Dies veranlasste die Regierung, ein Forschungsinstitut für die Erforschung des Anomaliegebiets Tschernobyl einzurichten. Strelok übernahm die Position des leitenden wissenschaftlichen Beraters im Institut. + + + Strelok hat sein Wissen mit ins Grab genommen. Die Informationen, die er beim Atomkraftwerk Tschernobyl gesammelt hatte und die zu einem besseren Verständnis der Zone hätten führen können, gelangten niemals in die Außenwelt. Fast scheint es so, als ob die Zone wüsste, wie sie ihre Geheimnisse zu schützen hat. + + + Als der Kommandeur der Stingray-Staffel, Oberst Kowalski, aus der Zone zurückkehrte, musste er die Gründe für die misslungene Operation "Fairway" erläutern. Nach einer schleppenden Untersuchung und dem vergeblichen Versuch der Führungsriege, den Oberst zum Sündenbock zu machen, wurde dieser schließlich ehrenvoll aus dem Dienst entlassen. + + + Die letzte Ruhestätte von Oberst Kowalski, Kommandeur der Stingray-Staffel, befindet sich unweit der seines Trupps. Die Zone nahm die Leichen zu sich und nichts weiter als alte Fotos erinnert mittlerweile noch an sie. + + diff --git a/gamedata/configs/text/ger/ui_st_credits.xml b/gamedata/configs/text/ger/ui_st_credits.xml new file mode 100644 index 0000000..418c753 --- /dev/null +++ b/gamedata/configs/text/ger/ui_st_credits.xml @@ -0,0 +1,684 @@ + + + + Sergey Chechin + + + Maciej Abramowicz + + + Armen Abroyan + + + Sprecher + + + Tester + + + AMD/ATI + + + Roman Androshiuk + + + Animationen + + + Grafikabteilung + + + Künstlerische Leitung + + + Nikita Atroshenko + + + Damian Bajorek + + + Mikhail Bastrykin + + + Kamil Bilinski + + + Krzysztof Binkowski + + + Arkadiusz Bochenek + + + Justin Boggs + + + Anatoly Bogush + + + Wojciech Borowy + + + Stanislaw Burtsau + + + Character Models + + + Aleksey Cherevatenko + + + Jerzy Chrul + + + Wojciech Ciemny + + + Musik + + + Dmitry "Abe" Davidyan + + + Aaron Davies + + + Alexander Demidenko + + + Abteilung + + + Programmierung + + + Lukasz Derewonko + + + Ruslan Didenko + + + Yuri Doroshenko + + + Elena Dovgaliuk + + + Rafal Durajczyk + + + Petr Dushinsky + + + Maciej Dziarnowski + + + Sergey Eremenko + + + Yuri "Dark" Falchenko + + + Jakub Gabryel + + + Cezary Galach + + + Gamedesign-Abteilung + + + Gameplay-Programmierung + + + CENEGA QA + + + Besonderer Dank an + + + Filip Gerasimov + + + Grigory Hermann + + + Angelica Girich + + + Pawel Golubinski + + + Marcin Gorniak + + + Tomasz Goscicki + + + Grafik-Programmierung + + + Holger Grun + + + Pawel Grzywaczewski + + + Sergiy Grygorovich + + + Marcin Gutowski + + + Dmitry Yasenev + + + Intel + + + Sergey Ivantsov + + + Norbert Jankowski + + + Alexander Kachaniuk + + + Dmitry Kalita + + + Aleksander Keska + + + Andrey "Darin" Kirienko + + + Lukasz Kobylanski + + + Andrey Kolomiets + + + Artur Komorek + + + Yuri Konstantinov + + + Maria Kotolovskaya + + + Alexander Kovach + + + Kirill Koval + + + Irina Krivchikova + + + Dmitry Krivets + + + Eugene Kuchma + + + Svetlana Kudrya + + + Sergey Kurbatov + + + Olga Kuzhel + + + Dmitry Kuzmenko + + + Aleksey Kuznetsov + + + Oleg Kuznetsov + + + Szymon Lazarski + + + Leitung Animationen + + + Leitung Grafiken + + + Leitung Gamedesign + + + Leitung Programmierung + + + Leitung Qualitätssicherung + + + Leitung Experten + + + Leveldesign + + + Lektorat + + + Vladimir Litvinenko + + + Eric Lundgren + + + Sergey Maistrenko + + + Dmitry Macedon + + + Roman Malinkin + + + Projektmanager + + + Alexander Maniliuk + + + Daniel Mankowski + + + Denis Matveenko + + + Maciej Mazurek + + + Piotr Mazurkiewicz + + + Darren McPhee + + + Igor Melnikov + + + Victor Merkulov + + + Damian Mielnik + + + Pavel Mikhailov + + + Konstantin Mironov + + + Großer Dank an Oleg Fomenko + + + und BuntarMedia + + + für die MOCAP-Beratung + + + Vladimir Morev + + + Andrey Moroz + + + Dawid Mrozowski + + + Yuri Negrobov + + + Mehrspieler-Programmierung + + + nVidia + + + Aleksey Omelchuk + + + Lukasz Osinski + + + Mikhail Parfeniuk + + + Eugene Pashin + + + Igor Pasichnyi + + + Bartosz Peas + + + Physik-Programmierung + + + Jacek Piotrowski + + + Alexander Plichko + + + PR-Abteilung + + + PR-Leitung + + + PR-Manager + + + Sergey Prishepa + + + Produzent + + + Projektmanager + + + Tester + + + Anton Ravin + + + Sebastian Rejent + + + Mateusz Rekorajski + + + Filip Resiak + + + Peter Ross + + + Ivan Rozin + + + Lukasz Ruminski + + + Denis Rutkovsky + + + Lukasz Rynkowski + + + Business Development Manager + + + Piotr Samborowski + + + Maria Shapunova + + + Sergey Shelest + + + Igor Sidorenko + + + Mikolaj Sitkiewicz + + + Yuri Skripal + + + Konstantin Slipchenko + + + Tomasz Sobotka + + + Sound-Produzent + + + Besonderer + + + Dank an + + + Oleg Stalchuk + + + Liudmila Starodub + + + Vladimir Stavitsky + + + Pawel Stempien + + + Pawel Strzelczyk + + + Mitwirkende + + + Konstantin Stupivtsev + + + Technischer + + + Kundendienst + + + Rafal Szekalski + + + Maciej Szumowski + + + Marcin Szwargolinski + + + Vladimir Tereshiuk + + + Sergey Terliuk + + + Texturen + + + Und alle anderen, die uns dabei geholfen + + + haben, das Spiel noch besser zu machen: + + + Konstantin Morozkov + + + Yaroslav "Uncle Yar" Alexandrov + + + Dmitry "Comandor" Ivanov + + + Oleg Chernov + + + Ig. Valerian (Golovchenko) aka oVal + + + M. Bystrykhin + + + Eugene "Mulder" Khaletskiy + + + Pavel "Goon" Bolotov + + + Alexander "Leks" Abramov + + + Alexander Novikov + + + Alexander Poshtaruk, Andrey Oleshk + + + Eugene "KRANZ" Goncharenko + + + Sergey Dvuzhilny + + + Aleksey "Don Reba" Badalov + + + Sergey Dvuzhilny, Tolusha + + + Artem Zuev, aka BAC9-FLCL + + + Glot, Patriot, Mers + + + Tiger, Demesis, Kharon, Moby + + + Alexander Oleinik + + + Konstantin "Inquisitor" Kriuchkov + + + Alexander Shakhovsky, Igor Dolzhenko + + + Sergey "Tur" Leshenko + + + Dmitry "Hill" Gorban + + + Mikhail Kliuev + + + Sergey "Termite" Volchanov + + + Sergey Tikhomirov + + + Ilya Tolmachev + + + Jakub Trudzik + + + Interface-Design + + + Yuri Uralsky + + + Denis "Tetri$Zs" Yusupov + + + RandyJ VanderHeyden + + + Vladimir Vazhinsky + + + Andrey Verpakhovsky + + + Alexander Vilkov + + + Anastassia Voskolovich + + + Andrzej Wardziak + + + Web-Programmierung + + + Dominik Wojcik + + + Lukasz Watroba + + + Eugene Yablon + + + Yuri Yatsenko + + + Eugene Yatsiuk + + + Oleg Yavorsky + + + Valentin Yeltyshev + + + Eugene Zaitsev + + + Andrey Zakoliukin + + + Marek Zdziarski + + + Michal Zegarski + + + Albert Zmudzki + + + Aleksey Zorin + + + Bartosz Zukowski + + + Victoria "Morrant" Yukhno + + + Sergey "ion" Kalintsev + + + Roman "RVCool" Kulikov + + + Maxim Smirnov + + + Omar Al-Shekhly + + + Roman =Marauder= Arhipov + + diff --git a/gamedata/configs/text/ger/ui_st_inventory.xml b/gamedata/configs/text/ger/ui_st_inventory.xml new file mode 100644 index 0000000..ef57c61 --- /dev/null +++ b/gamedata/configs/text/ger/ui_st_inventory.xml @@ -0,0 +1,303 @@ + + + + Nicht genug Geld + + + Der Charakter hat nicht genügend Geld + + + $$ACTION_QUICK_USE_1$$ + + + $$ACTION_QUICK_USE_2$$ + + + $$ACTION_QUICK_USE_3$$ + + + $$ACTION_QUICK_USE_4$$ + + + Artefakt aktivieren + + + Granatwerfer montieren an + + + Zielfernrohr montieren an + + + Schalldämpfer montieren an + + + Preis + + + Gruppe: + + + Zustand + + + Granatwerfer abmontieren + + + Zielfernrohr abmontieren + + + Schalldämpfer abmontieren + + + Anzug tragen + + + Fallen lassen + + + Alles fallen lassen + + + Essen + + + kg + + + An Gürtel anbringen + + + In den Rucksack + + + In das Feld + + + Der Händler hat kein Interesse an Gegenständen dieser Art. + + + Dieser Gegenstand ist zu stark beschädigt, um damit zu handeln. + + + Spielen + + + Gegenstand verkaufen + + + Zustand der Panzerung + + + Radioaktive Verstrahlung + + + Anzug ausziehen + + + Entladen + + + Benutzen + + + G. + + + Magazingr. + + + Schussgen. + + + Normale Munition für Pistole kaufen (Q) + + + Gewehrmunition kaufen (W) + + + Wundheilung + + + Abbrechen + + + Waffe kann nicht gekauft werden + + + Anzahlbeschränkung + + + Schaden + + + Standard (F5) + + + Zurück + + + Unterlaufgranatwerfer für Gewehr kaufen (D) + + + Granaten für Unterlaufgranatwerfer kaufen (E) + + + Handhabung + + + Jetzt + + + Lebensregen. + + + Schwer + + + Letzte Zusammenstellung kaufen + + + Zuletzt (F4) + + + Geld + + + Benötigt + + + Nicht genug Geld + + + OK + + + Getragenes Gewicht + + + Wärmeschutz + + + Chemiesch. + + + Panzerung + + + Strahl.sch. + + + Elektrosch. + + + Psi-Schutz + + + Trefferabs. + + + Energieregen. + + + Zusammenstellung 1 (F1) + + + Zusammenstellung 2 (F2) + + + Zusammenstellung 3 (F3) + + + Strahlung + + + Rangbeschränkung + + + Feuerrate + + + Reset (C) + + + Sturmgew. + + + Hungerminderung + + + Optisches Zielfernrohr für Gewehr kaufen (S) + + + Alle Gegenstände im Rucksack verkaufen (X) + + + Gewehre + + + Schalldämpfer für Pistole kaufen (A) + + + Schalldämpfer für Gewehr kaufen (F) + + + Scharfsch. + + + Zeit + + + Sie haben bereits + + + S.T.A.L.K.E.R.-Onlinedienste sind nicht verfügbar. + + + Keine Verbindung zum Master-Server. + + + Schutz: + + + Standard + + + Gekaufte Zusammenstellung gespeichert unter + + + Gesamtgewicht: + + + Trinken + + + Energieregeneration + + + Blutung + + + Maximalgewicht + + + Gesundheit + + + Munition + + + Wirkungsdauer + + + Sek + + + Ermöglicht es, eine Emission zu überleben + + + Helm tragen + + + Helm absetzen + + diff --git a/gamedata/configs/text/ger/ui_st_ixray.xml b/gamedata/configs/text/ger/ui_st_ixray.xml new file mode 100644 index 0000000..11e8ced --- /dev/null +++ b/gamedata/configs/text/ger/ui_st_ixray.xml @@ -0,0 +1,62 @@ + + + + S.T.A.L.K.E.R.: Ruf von Pripyat + + + Hauptmenu + + + Stufe: + + + Schnellspeichern + + + Automatisches Speichern + + + + m + + + Schlagdistanz + + + + Kofferraum offnen ($$ACTION_USE$$) + + + Benutzen ($$ACTION_USE$$) + + + + Frei + + + + Automatisches Nachladen + + + + Mehrstr. Texturladung + + + Schattenkarte + + + 1024x1024 + + + 2048x2048 + + + 3072x3072 + + + 4096x4096 + + + Immer aktiv + + diff --git a/gamedata/configs/text/ger/ui_st_keybinding.xml b/gamedata/configs/text/ger/ui_st_keybinding.xml new file mode 100644 index 0000000..a39560e --- /dev/null +++ b/gamedata/configs/text/ger/ui_st_keybinding.xml @@ -0,0 +1,225 @@ + + + + PDA + + + Angriffsbefehl + + + Gehen + + + Artefakt + + + Rückwärts + + + Fernglas + + + Kaufmenü + + + Chat + + + Teamchat + + + Konsole + + + PDA-Kontakte + + + Ducken + + + Ducken (de)aktivieren + + + Detektor + + + Nach unten + + + Fallen lassen + + + Schießen + + + Nächster Feuermodus + + + Vorheriger Feuermodus + + + Vorwärts + + + Unterlaufgranatwerfer + + + Allgemein + + + Richtung + + + Rucksack + + + Bewegung + + + Mehrspieler + + + Waffe + + + Rucksack + + + Springen + + + Nach links + + + Nach links lehnen + + + Seitwärts nach links + + + PDA-Karte + + + Waffe im nächsten Feld + + + Nachtsichtgerät + + + Pause + + + PDA + + + Waffe im vorherigen Feld + + + Zurück + + + Nachladen + + + Reparieren + + + Nach rechts + + + Nach rechts lehnen + + + Seitwärts nach rechts + + + Punkte + + + Screenshot + + + Modellauswahlmenü + + + Rennen + + + Teamauswahlmenü + + + Taschenlampe + + + Aktivieren + + + Nach oben + + + Benutzen + + + Schneller Verband + + + Schnelles Medkit + + + Abstimmung beginnen + + + Abstimmen + + + Mit "Nein" abstimmen + + + Mit "Ja" abstimmen + + + Waffe 1 + + + Waffe 2 + + + Waffe 3 + + + Waffe 4 + + + Waffe 5 + + + Waffe 6 + + + Munitionsart wechseln + + + Vorherige Waffe dieses Typs + + + Zoomen + + + Sprachnachrichten (1) + + + Sprachnachrichten (2) + + + Schnellzugriffsfeld 1 + + + Schnellzugriffsfeld 2 + + + Schnellzugriffsfeld 3 + + + Schnellzugriffsfeld 4 + + diff --git a/gamedata/configs/text/ger/ui_st_loadscreen.xml b/gamedata/configs/text/ger/ui_st_loadscreen.xml new file mode 100644 index 0000000..e5dc099 --- /dev/null +++ b/gamedata/configs/text/ger/ui_st_loadscreen.xml @@ -0,0 +1,474 @@ + + + + 100 TIPPS FÜR DAS ÜBERLEBEN IN DER ZONE + + + Wenn Sie einem Gegner ins Auge schießen, stirbt er auf der Stelle, ganz gleich wie stark seine Panzerung auch sein mag. + + + Die AC-96/2 verfügt über einen einzigartigen Salvenmodus, in dem beide Kugeln in einer Salve abgefeuert werden und denselben Zielpunkt treffen. + + + Bei doppelläufigen Schrotflinten kann man beide Läufe nahezu gleichzeitig abfeuern. + + + Pistolen sollte man nicht unterschätzen. Sie haben eine erhebliche Stoppwirkung und können sehr effektiv gegen schlecht gepanzerte Ziele sein. + + + Scharfschützengewehre eignen sich dank ihrer Flachheit und Schussgenauigkeit hervorragend zum Ausschalten von Gegnern aus der Distanz. Auf kurze Entfernung sind sie weniger effektiv. + + + Schießen in Bewegung ist erheblich ungenauer als das Feuern, während Sie stehen oder sich zumindest ducken. + + + Waffen und Schutzanzüge nutzen sich unter den schwierigen Bedingungen der Zone schnell ab. Verschlissene Waffen sind ungenauer und klemmen öfter, während abgenutzte Schutzanzüge den Träger schlechter beschützen. + + + Drücken Sie "$$ACTION_SCREENSHOT$$", um einen Screenshot anzulegen. + + + Auf der Minimap wird das Artefakt oder der Spieler, der es trägt, angezeigt. Wenn die Entfernung zum Artefakt zu groß ist, deutet ein Pfeil auf der Minimap in die entsprechende Richtung. + + + Die AC-96/2 verfügt über einen einzigartigen Salvenmodus, in dem beide Kugeln in einer Salve abgefeuert werden und denselben Zielpunkt treffen. + + + Bei doppelläufigen Schrotflinten kann man beide Läufe nahezu gleichzeitig abfeuern. + + + Pistolen sollte man nicht unterschätzen. Sie haben eine erhebliche Stoppwirkung und können sehr effektiv gegen schlecht gepanzerte Ziele sein. + + + Scharfschützengewehre eignen sich dank ihrer Flachheit und Schussgenauigkeit hervorragend zum Ausschalten von Gegnern aus der Distanz. Auf kurze Entfernung sind sie weniger effektiv. + + + Waffen und Schutzanzüge nutzen sich unter den schwierigen Bedingungen der Zone schnell ab. Verschlissene Waffen sind ungenauer und klemmen öfter, während abgenutzte Schutzanzüge den Träger schlechter beschützen. + + + Einige medizinische Produkte haben einzigartige Eigenschaften. Herkules-Pillen z.B. sorgen vorübergehend dafür, dass Sie mehr Gewicht tragen können, während Psi-Blocker Ihnen dabei helfen, Psi-Emissionen zu widerstehen. + + + Drücken Sie "$$ACTION_SCREENSHOT$$", um einen Screenshot anzulegen. + + + Tipp # + + + Wodka, eine günstige Alternative zu Strahlenschutzmitteln, stellt den einfachsten Weg dar, die Wirkung von Strahlung auf den Körper zu verringern. + + + Sie können genauere Informationen über die aktuelle Mission einblenden, indem Sie "$$ACTION_SCORES$$" gedrückt halten. + + + Um nach Artefakten zu suchen, brauchen Sie einen Detektor. Die besten Detektoren erleichtern die Suche und finden womöglich wertvollere Artefakte. + + + Stalker lassen niemanden mit einer Waffe in ihr Lager. Um Ihre Waffe einzustecken, müssen Sie die entsprechende Taste drücken ("$$ACTION_WPN_1$$", "$$ACTION_WPN_2$$", "$$ACTION_WPN_3$$", "$$ACTION_WPN_4$$"). + + + Sie können die Grenzen von Anomalien aufspüren, indem Sie Schrauben werfen. Drücken Sie "$$ACTION_WPN_6$$", um Ihre Schraube in die Hand zu nehmen. + + + Lebensmittel sind nicht nur die Lösung für Ihren Hunger, sondern stellen auch langsam Ihre Gesundheit wieder her. + + + Energy-Drinks verbessern vorübergehend die Regeneration Ihrer Ausdauer, was sich wiederum positiv auf Ihre Beweglichkeit auswirkt. + + + Eine niedrige Ausdauer kann dazu führen, dass Sie sich nicht mehr bewegen können und damit in entscheidenden Momenten sehr anfällig gegenüber feindlichen Angriffen sind. + + + Mit den Geräusch- und Feinddetektoren in der linken oberen Bildschirmecke können Sie Ihre Heimlichkeit stets im Auge behalten. + + + Wenn Sie einen Detektor in der Hand halten, können Sie weiterhin ein Messer, eine Pistole oder eine Schraube mit der anderen Hand führen. + + + Einige medizinische Mittel verbessern die Widerstandskraft des Körpers gegen schädliche Wirkungen. Die Einnahme solcher Mittel kann bei Missionen in Anomaliegebieten Ihr Leben retten. + + + Sie können das Kontextmenü für Gegenstände in Ihrem Rucksack öffnen, indem Sie den Mauszeiger auf das gewünschte Objekt führen und die rechte Maustaste drücken. + + + Die meisten Artefakte haben außer ihren nützlichen Seiten auch die Nebenwirkung, dass sie radioaktiv sind. Dies wiederum kann dadurch ausgeglichen werden, dass Sie Artefakte benutzen, die ihrerseits Strahlung absorbieren. + + + Das Messer ist wirkungslos gegen Gegner mit Feuerwaffen. Setzen Sie es daher im Nahkampf oder bei lautlosen Angriffen ein. + + + Das Gewicht, das Sie tragen, senkt Ihre Ausdauer. Zu viel Gewicht schränkt Ihre Bewegungsfähigkeit ein und wenn Sie vollkommen überladen sind, können Sie sich gar nicht mehr fortbewegen. + + + Ein Detektor ist der einzig sichere Weg, Anomaliegebiete nach Artefakten zu durchsuchen. + + + Die meisten Artefakte bleiben unsichtbar, da sie sich ständig im Anomaliegebiet bewegen. Dies ändert sich, sobald Sie sie mit Ihrem Detektor identifizieren. + + + Mutanten sind nachts aktiver, was der Grund dafür ist, dass Stalker für gewöhnlich auf den Sonnenaufgang warten, bevor Sie sich in die Zone begeben. + + + Wenn Sie starker Strahlung ausgesetzt waren, nehmen Sie Antistrahlenmedikamente ein. Sollten Sie keine haben, benutzen Sie Medkits, um die ersten Symptome zu bekämpfen, bis Sie es zu einem Arzt schaffen. + + + Die meisten Stalker können Sie zu Zielen in der Nähe führen, aber nur ein erfahrener Ortskundiger ist in der Lage, Sie schnell und sicher zu weit entfernten Orten zu bringen. Und deswegen verlangen sie auch ein Vermögen für ihre Dienste. + + + Sie können nicht nur mit dem Verkauf von Artefakten Geld verdienen: Auch nicht benötigte Ausrüstung kann eine lukrative Einnahmequelle sein. Vergessen Sie aber nicht, dass Händler an stark beschädigten Gegenständen normalerweise nicht interessiert sind. + + + Um einen Schalldämpfer, ein Zielfernrohr oder einen Unterlaufgranatwerfer von Ihrer Waffe abzumontieren, müssen Sie auf die Waffe im Rucksack rechtsklicken und danach die entsprechende Aktion im Kontextmenü auswählen. + + + Wenn Sie sich möglichst leise fortbewegen möchten, drücken Sie "$$ACTION_ACCEL$$" zum Gehen oder "$$ACTION_CROUCH$$", um sich zu ducken. + + + Schrotflinten sind Waffen für kurze Distanzen. Je weiter weg Ihr Gegner ist, desto weniger Wirkung zeigen Schrotflinten. + + + Wenn Sie vor kleineren Feuerwaffen in Deckung gehen, sollten Sie sich hinter etwas Massives begeben. Im Gegenteil zu Betonwänden stellen Holzbretter und Blechverkleidungen keine besonders undurchdringlichen Hindernisse dar. + + + Kopfschüsse verursachen kritischen Schaden und sind für die meisten Gegner tödlich. + + + Jeder Mutantentyp in der Zone weist seine eigenen Kampfeigenschaften auf. Wenn Sie diese beachten und sich ihnen entsprechend verhalten, steigen Ihre Überlebenschancen enorm. + + + Sie können kontrollieren, wie weit Sie eine Granate werfen, indem Sie "$$ACTION_WPN_ZOOM$$" gedrückt halten. + + + Ihre Gegner können Granaten einsetzen und werden das auch möglichst oft tun. Wenn die Granatenwarnung angezeigt wird, sollten Sie den Explosionsbereich sofort verlassen. + + + Indem Sie mit Anlauf springen, können Sie große Spalte und Erdrisse überwinden. + + + Ihre Gesundheits- und Ausdaueranzeigen werden in der rechten unteren Bildschirmecke dargestellt. + + + Die Zone lebt - d.h. Sie können auch in Gebieten, die Sie bereits gesäubert haben, weiterhin auf Mutanten oder feindliche Stalker stoßen. + + + Seien Sie in der Zone stets auf der Hut und verlassen Sie sich nicht auf alte Informationen. Wenn Sie in ein Anomaliegebiet zurückkehren, das Sie bereits erforscht haben, kann es durchaus vorkommen, dass die alten Wege nicht mehr sicher sind. + + + In Gesprächen mit anderen Stalkern können Sie nützliche Informationen über neue Gebiete oder aktuelle Ereignisse erhalten. + + + Sie können jede beliebige Waffe in den beiden Waffenfeldern benutzen. So können Sie flexible Waffenkombinationen erstellen, wie etwa Sturmgewehr/Schrotflinte oder Pistole/Scharfschützengewehr. + + + Alle Händler, die Sie in den verschiedenen Stalkerlagern treffen, haben ihre eigenen, besonderen Warenangebote. Ärzte z.B. haben normalerweise die beste Auswahl an medizinischen Produkten. + + + Wenn Sie verletzt oder verstrahlt in ein Stalkerlager kommen, können Sie sich vom örtlichen Arzt kostenlos behandeln lassen. + + + Sie können Ihre persönlichen Gegenstände im Lager in einer persönlichen Kiste verstauen, damit Sie nicht benötigte Ausrüstung nicht mit sich herumschleppen müssen. + + + Sollten Sie bis zu einer bestimmten Uhrzeit warten müssen, können Sie im Lager ein Nickerchen machen, damit die Zeit schneller vergeht. Finden Sie dazu den Schlafbereich, drücken Sie "$$ACTION_USE$$" und legen Sie fest, wie lange Sie schlafen wollen. + + + Das Nachtsichtgerät in Ihrem Helm können Sie zur Version der jeweils nächsten Generation aufrüsten lassen. Damit wird die Reichweite des Geräts erheblich vergrößert. + + + Wenn Sie sich in der Zone aufhalten, sollten Sie stets Extramunition mit sich führen - Sie könnten sie schneller brauchen, als Ihnen lieb ist. + + + Vergessen Sie nicht, Ihren Spielfortschritt regelmäßig zu speichern - damit verhindern Sie, dass Sie dieselben Abschnitte wieder und wieder spielen müssen. + + + Um Medikamente sinnvoll zu konsumieren, sollten Sie wissen, wie sie wirken. Lesen Sie dazu die Beschreibungen der Medikamente und finden Sie heraus, was genau sie bewirken. + + + Greifen Sie Gegner, die in Deckung sind, mit Granaten an. Beachten Sie dabei aber den Explosionsradius der Granate, um keine Verbündeten in Mitleidenschaft zu ziehen. + + + Um einen Gegenstand aus Ihrem Rucksack zu entfernen, rechtsklicken Sie darauf und wählen Sie die entsprechende Aktion aus. + + + Sie können in den Spieloptionen festlegen, dass das Spiel an wichtigen Punkten automatisch gespeichert werden soll. + + + Wenn Sie ins Lager zurückkehren, sollten Sie Ihre Ausrüstung reparieren lassen, unnötige Beute verkaufen und sich mit Munition sowie Medikamenten eindecken. + + + Verwenden Sie bei Abstechern in die Zone Schutzanzüge, Artefakte oder entsprechende Medikamente, um die schädliche Wirkung von Anomaliegebieten zu mildern. + + + Sie können an den Leichen Ihrer Gegner neben Waffen und Munition auch wertvolle Gegenstände wie PDAs mit wichtigen Informationen finden. + + + Artefakte sind nicht einfach nur eine Art von Beute: Neben der Tatsache, dass sie leicht und teuer sind, können sie häufig auch äußerst nützliche Wirkungen aufweisen. + + + Wegen der Umweltbedingungen in der Zone sind viele Mutanten radioaktiv verseucht. Es ist daher extrem gefährlich, sich ihnen ohne entsprechenden Strahlenschutz zu nähern. + + + Mit Verbandszeug, einem Armee-Medkit oder Vinca-Mitteln können Sie Blutungen stoppen. Wenn Sie nämlich nicht schnell genug handeln, kann eine Blutung schwere gesundheitliche Folgen nach sich ziehen. + + + Auf manchen Waffen können justierbare Zielfernrohre mit langer Reichweite montiert werden. Drücken Sie "$$ACTION_NEXT_SLOT$$" oder "$$ACTION_PREV_SLOT$$", um die Reichweite zu ändern. + + + Manche Orte sind unzugänglich, selbst wenn Sie sich ducken. Um so tief wie möglich zu kommen, müssen Sie "$$ACTION_CROUCH$$" und "$$ACTION_ACCEL$$" gleichzeitig drücken und gedrückt halten. + + + Um die Wahrscheinlichkeit zu verringern, von gegnerischem Feuer getroffen zu werden, sollten Sie sich beim Schießen um die Ecke lehnen. Halten Sie dafür "$$ACTION_LLOOKOUT$$" oder "$$ACTION_RLOOKOUT$$" gedrückt. + + + Dank eines integrierten Zielerkennungssystems in Ihrem Fernglas, können Sie nicht nur weit entfernte Objekte betrachten, sondern auch Gegner aufspüren. Drücken Sie "$$ACTION_WPN_5$$", um Ihr Fernglas zu benutzen. + + + Ihre Taschenlampe schalten Sie mit "$$ACTION_TORCH$$" ein bzw. aus. + + + Um eine Schraube in die Hand zu nehmen, müssen Sie "$$ACTION_WPN_6$$" drücken. + + + Wenn Ihr Helm ein Nachtsichtgerät aufweist, können Sie es mit "$$ACTION_NIGHT_VISION$$" ein- bzw. ausschalten. + + + Drücken Sie "$$ACTION_QUICK_USE_1$$", "$$ACTION_QUICK_USE_2$$", "$$ACTION_QUICK_USE_3$$" oder "$$ACTION_QUICK_USE_4$$", um den entsprechenden Gegenstand im Schnellzugriffsfeld zu benutzen. + + + Die Wirkung von Medikamenten setzt nicht sofort ein und kann in manchen Fällen eine lange Zeit anhalten. + + + Ihr PDA bietet Ihnen eine Kartenansicht, Informationen über Ihre aktuellen Missionen, Ihre persönlichen Statistiken und ein Nachrichtenprotokoll. Drücken Sie zum Öffnen des PDAs "$$ACTION_ACTIVE_JOBS$$". + + + Um nach Artefakten zu suchen, müssen Sie Ihren Detektor einsetzen. Drücken Sie dafür "$$ACTION_SHOW_DETECTOR$$". + + + Drücken Sie zum Pausieren des Spiels "$$ACTION_PAUSE$$". + + + Drücken Sie zum Schnellspeichern "$$ACTION_QUICK_SAVE$$". Mit "$$ACTION_QUICK_LOAD$$" können Sie den letzten Schnellspeicherstand laden. + + + Rennen ist die schnellste Fortbewegungsart, aber auch die anstrengendste. Drücken Sie "$$ACTION_SPRINT_TOGGLE$$" zum Rennen. + + + Wenn Sie beim Schießen zielen, treffen Sie genauer, als wenn Sie einfach drauflos feuern. Drücken Sie zum Zielen "$$ACTION_WPN_ZOOM$$". + + + Wenn Sie über einen Unterlaufgranatwerfer verfügen, können Sie zwischen diesem und dem normalen Feuermodus wechseln, indem Sie "$$ACTION_WPN_FUNC$$" drücken. + + + Wenn Sie über unterschiedliche Munitionsarten für Ihre Waffe verfügen, können Sie mit "$$ACTION_WPN_NEXT$$" zwischen diesen wechseln. + + + Drücken Sie "$$ACTION_WPN_RELOAD$$", um Ihre Waffe nachzuladen, bevor das Magazin leer ist. + + + Zum Ablegen Ihrer aktuellen Waffe müssen Sie "$$ACTION_DROP$$" drücken. + + + Um eine Emission unbeschadet zu überstehen, sollten Sie in einem stabilen Gebäude oder unter der Erde Unterschlupf suchen. Wenn eine Emission ansteht, wird die Unterschlupfmöglichkeit, die am nächsten liegt, auf Ihrem PDA angezeigt. + + + Um einen Gegenstand über das Schnellzugriffsfeld zu benutzen, müssen Sie ihn aus Ihrem Rucksack in eines der vier Felder über den Artefaktbehältern ziehen. + + + Das Bluttropfensymbol in der rechten unteren Bildschirmecke weist Sie auf eine Blutung hin, die gestoppt werden muss. Die Farbe des Symbols gibt an, wie stark die Blutung ist. + + + Ein Strahlungssymbol in der rechten unteren Bildschirmecke weist Sie darauf hin, dass Sie einer Strahlung ausgesetzt sind. Wenn dies geschieht, sollten Sie Strahlenschutzmittel einnehmen. Die Farbe des Symbols gibt an, wie stark die Strahlung ist. + + + Sie können mit Hilfe von Filtern verschiedene Markierungen auf Ihrem PDA ein- bzw. ausblenden. Die Filterschaltflächen befinden sich über der Karte, unter der Zeile mit der aktuellen Mission. + + + Artefakte sind für gewöhnlich nicht statisch: Sie bewegen sich innerhalb eines Anomaliegebiets. Plumpe Versuche, ein Artefakt in die Hände zu bekommen, werden Sie schneller in eine Anomalie führen, als Sie "Detektor" sagen können. + + + Einige Stalker können Ihnen ihre Dienste anbieten, wie z.B. Informationen oder exklusive Waren. Eine andere Möglichkeit ist, dass Sie bestimmte Artefakte bei Ihnen in Bestellung geben. + + + Nach einer Emission können neue Artefakte in Anomaliegebieten erscheinen, die Sie zuvor bereits erforscht hatten. + + + In den Spieloptionen können Sie den Schwierigkeitsgrad jederzeit anpassen. + + + Techniker in Stalkerlagern können Ihre Waffen, Schutzanzüge und Helme verbessern + + + Wenn Sie überleben möchten, sollten Sie immer das Geräusch des Geigerzählers beachten, das Sie vor Strahlung warnt. Ebenso wichtig ist das Anomaliegefahrensignal, das Sie warnt, wenn Sie sich in die Nähe einer Anomalie begeben. + + + Ihre Beziehung zu anderen Personen wirkt sich direkt auf den Preis von Waren und Diensten aus. Haben Sie ein schlechtes Verhältnis, können Sie keinen Rabatt erwarten. Wenn Sie gut mit dem Händler auskommen, könnte er Ihnen sogar etwas Besonderes anbieten. + + + Sie können die Waffen, die Sie finden, entladen, um an mehr Munition zu gelangen. Rechtsklicken Sie dafür auf die Waffe in Ihrem Rucksack und wählen Sie danach die entsprechende Aktion im Kontextmenü aus. + + + Indem Sie Gegner ausschalten und Artefakte sammeln, erhalten Sie Punkte, mit denen Sie Ihren Rang verbessern können. Wenn Sie im Rang aufsteigen, erhalten Sie Zugriff auf neue Waffen, Ausrüstung und Panzerung. + + + Rauchgranaten werden eingesetzt, um das Artefakt zu stehlen oder Deckung zu erzeugen. + + + Der linke Bereich des Kaufmenüs besteht aus folgenden fünf Reitern (von oben nach unten): Pistolen, Hauptwaffen, Ausrüstung, Munition und Medikamente. Wenn Sie einen Reiter auswählen, werden die für Ihren Rang verfügbaren Gegenstände angezeigt. + + + Der rechte Bereich des Kaufmenüs enthält 4 Schnellkauffelder. Mit dem Disksymbol speichern Sie die Zusammenstellung, während Sie mit der entsprechenden Zahl die jeweilige Zusammenstellung laden. Im 4. Feld wird der letzte Kauf automatisch gespeichert. + + + Wenn Sie über mehr als eine Waffe verfügen, können Sie zwischen ihnen wechseln, indem Sie wiederholt "$$ACTION_WPN_3$$" drücken. + + + Ein Artefakt kann aktiviert werden, um eine Anomalie zu erzeugen. Machen Sie es dazu mit "$$ACTION_ARTEFACT$$" bereit und halten Sie danach "$$ACTION_WPN_FIRE$$" gedrückt. Die erzeugte Anomalie ist sowohl für Gegner als auch für den Erzeuger gefährlich. + + + Ein wissenschaftlicher Schutzanzug wird Ihnen dabei helfen, in Anomalie- und radioaktiven Gebieten zu überleben. + + + ARTEFAKTJAGD: Um zu gewinnen, müssen Sie eine bestimmte Anzahl von Artefakten in Ihre Basis bringen. + + + Um einen Schalldämpfer, ein Zielfernrohr oder einen Unterlaufgranatwerfer von Ihrer Waffe abzumontieren, müssen Sie auf die Waffe im Rucksack rechtsklicken und danach die entsprechende Aktion im Kontextmenü auswählen. + + + Wenn Sie sich möglichst leise fortbewegen möchten, drücken Sie "$$ACTION_ACCEL$$" zum Gehen oder "$$ACTION_CROUCH$$", um sich zu ducken. + + + Schrotflinten sind Waffen für kurze Distanzen. Je weiter weg Ihr Gegner ist, desto weniger Wirkung zeigen Schrotflinten. + + + Wenn Sie vor kleineren Feuerwaffen in Deckung gehen, sollten Sie sich hinter etwas Massives begeben. Im Gegenteil zu Betonwänden stellen Holzbretter und Blechverkleidungen keine besonders undurchdringlichen Hindernisse dar. + + + Kopfschüsse verursachen kritischen Schaden und sind für die meisten Gegner tödlich. + + + Schnelles Laufen, Springen und Verletzungen senken Ihre Ausdauer beträchtlich. + + + Sie können kontrollieren, wie weit Sie eine Granate werfen, indem Sie "$$ACTION_WPN_ZOOM$$" gedrückt halten. + + + Ihre Gegner können Granaten einsetzen und werden das auch möglichst oft tun. Wenn die Granatenwarnung angezeigt wird, sollten Sie den Explosionsbereich sofort verlassen. + + + DEATHMATCH: Sammeln Sie möglichst viele Punkte durch getötete Gegner, um zu gewinnen. + + + Indem Sie mit Anlauf springen, können Sie große Spalte und Erdrisse überwinden. + + + Ihre Gesundheits- und Ausdaueranzeigen werden in der rechten unteren Bildschirmecke dargestellt. + + + Auf der Minimap wird die Richtung des Artefakts angezeigt. Wenn der Pfeil nach oben gerichtet ist, befindet sich das Artefakt oberhalb Ihrer Position. Zeigt er nach unten, liegt das Artefakt unterhalb Ihrer Position. + + + Sie können die Rucksäcke Ihrer Gegner einsammeln, um zusätzliches Geld zu erhalten. Überschüssige Ausrüstung kann in der Basis verkauft werden. + + + Das Mitglied Ihres Teams, das das Artefakt trägt, sollte um jeden Preis beschützt werden. + + + Greifen Sie Gegner, die in Deckung sind, mit Granaten an. Beachten Sie dabei aber den Explosionsradius der Granate, um keine Verbündeten in Mitleidenschaft zu ziehen. + + + Sie können innerhalb Ihres Teams mit Sprachnachrichten kommunizieren. Drücken Sie "$$ACTION_SPEECH_MENU_0$$" oder "$$ACTION_SPEECH_MENU_1$$", um in das Sprachnachrichtenmenü zu gelangen. + + + TEAM DEATHMATCH: Ihr Team muss möglichst viele Punkte durch getötete Gegner sammeln, um zu gewinnen. + + + Eine Abstimmung wird mit "$$ACTION_VOTE_BEGIN$$" gestartet. + + + Wenn Sie den Punktestand einsehen möchten, drücken Sie "$$ACTION_SCORES$$". + + + Drücken Sie zum Respawnen "$$ACTION_JUMP$$", nachdem die Wartezeit abgelaufen ist. + + + Drücken Sie zum Öffnen des Kaufmenüs "$$ACTION_BUY_MENU$$", während Sie sich in der Basis aufhalten. + + + Sie können den allgemeinen Chat mit "$$ACTION_CHAT$$" aufrufen. Um lediglich mit Ihrem Team zu chatten, müssen Sie "$$ACTION_CHAT_TEAM$$" drücken. + + + Rennen ist die schnellste Fortbewegungsart, aber auch die anstrengendste. Drücken Sie "$$ACTION_SPRINT_TOGGLE$$" zum Rennen. + + + Wenn Sie beim Schießen zielen, treffen Sie genauer, als wenn Sie einfach drauflos feuern. Drücken Sie zum Zielen "$$ACTION_WPN_ZOOM$$". + + + Wenn Sie über einen Unterlaufgranatwerfer verfügen, können Sie zwischen diesem und dem normalen Feuermodus wechseln, indem Sie "$$ACTION_WPN_FUNC$$" drücken. + + + Wenn Sie über unterschiedliche Munitionsarten für Ihre Waffe verfügen, können Sie mit "$$ACTION_WPN_NEXT$$" zwischen diesen wechseln. + + + Drücken Sie "$$ACTION_WPN_RELOAD$$", um Ihre Waffe nachzuladen, bevor das Magazin leer ist. + + + ARTEFAKTEROBERUNG: Um zu gewinnen, müssen Sie eine bestimmte Anzahl von gegnerischen Artefakten in Ihre Basis bringen. + + + Zum Ablegen Ihrer aktuellen Waffe müssen Sie "$$ACTION_DROP$$" drücken. + + + Drücken Sie "$$ACTION_INVENTORY$$", um Ihren Rucksackinhalt anzuzeigen. + + + Die meisten Waffen haben mehrere Feuermodi. Drücken Sie zum Wechseln der Modi "$$ACTION_WPN_FIREMODE_NEXT$$" oder "$$ACTION_WPN_FIREMODE_PREV$$". + + + Manche Orte sind unzugänglich, selbst wenn Sie sich ducken. Um so tief wie möglich zu kommen, müssen Sie "$$ACTION_CROUCH$$" und "$$ACTION_ACCEL$$" gleichzeitig drücken und gedrückt halten. + + + Um die Ecke können Sie sehen, wenn Sie Sie "$$ACTION_LLOOKOUT$$" oder "$$ACTION_RLOOKOUT$$" drücken. Beachten Sie, dass Sie dabei nicht schießen können. + + + ARTEFAKTEROBERUNG: Um ein gestohlenes Artefakt wieder in Ihre Basis zu bringen, müssen Sie den Gegner, der das Artefakt trägt, ausschalten und danach mit "$$ACTION_USE$$" das Artefakt aufheben. + + + ARTEFAKTJAGD: Sie können das Artefakt zerstören, indem Sie es aktivieren. Nehmen Sie es dazu in die Hand, indem Sie "$$ACTION_ARTEFACT$$" drücken, und halten Sie dann "$$ACTION_WPN_FIRE$$" gedrückt. + + + Sie können nicht rennen, während Sie das Artefakt tragen. + + + Drücken Sie "$$ACTION_INVENTORY$$", um Ihren Rucksackinhalt anzuzeigen. + + + Um eine Waffe, einen Anzug oder einen Helm zu reparieren, müssen Sie einen Techniker finden und auf "Reparieren" klicken, nachdem Sie den gewünschten Gegenstand im Modifikationsfenster ausgewählt haben. + + + Die meisten Waffen haben mehrere Feuermodi und Sie können mit Modifikationen weitere hinzufügen. Drücken Sie zum Wechseln der Modi "$$ACTION_WPN_FIREMODE_NEXT$$" oder "$$ACTION_WPN_FIREMODE_PREV$$". + + + Die Flachheit der Waffe beeinflusst die Flugbahn des Projektils, während die Handhabung die Zeit bestimmt, die nach einem Schuss vergeht, bis das Visier wieder an seiner ursprünglichen Position ist. + + + Einige Schutzanzüge verfügen über integrierte Helme. Bei solchen Anzügen ist es nicht möglich, andere Helme zu tragen. + + + Jede Waffe weist ihre eigenen Werte in den Bereichen Schussgenauigkeit, Handhabung, Schaden und Feuerrate auf. Dadurch können Sie stets diejenige Waffe auswählen, die Ihren aktuellen Anforderungen am besten entspricht. + + + Schießen in Bewegung ist erheblich ungenauer als das Feuern, während Sie stehen oder sich zumindest ducken. + + + Dieser Energy-Drink verbessert vorübergehend Ihre Energieregeneration, wodurch Sie über einen längeren Zeitraum sprinten können. + + + Im Deathmatch-Modus verfügen Sie über unendlich viel Munition. + + + Strahlung gehört zu den häufigsten Gefahren in der Zone. Der Kontakt mit starker Strahlung zieht Ihre Gesundheit in Mitleidenschaft und kann sogar zum Tod führen, wenn nichts dagegen unternommen wird. + + + Nehmen Sie Nahrung mit, wenn Sie lange unterwegs sein werden. Bei sehr großem Hunger wird Ihre Ausdauerregeneration in Mitleidenschaft gezogen. + + diff --git a/gamedata/configs/text/ger/ui_st_mm.xml b/gamedata/configs/text/ger/ui_st_mm.xml new file mode 100644 index 0000000..40367dc --- /dev/null +++ b/gamedata/configs/text/ger/ui_st_mm.xml @@ -0,0 +1,936 @@ + + + + Klar + + + Bewölkt + + + Mittel + + + Maximal + + + Hoch + + + Niedrig + + + Minimal + + + Nacht + + + Regen + + + SPIELART + + + Meister + + + Anfänger + + + Veteran + + + SYMBOLE + + + KARTE + + + Zurück durch Aktivierung + + + Abstimmungen zulassen + + + Anomaliezeit (Min.) + + + Artefakteroberung + + + Artefaktverzögerung + + + Anzahl der Artefakte + + + Artefaktzeit + + + Artefakt-Return + + + Automatische Teambalance + + + Automatischer Teamtausch + + + VERFÜGBARE KARTEN + + + Abbrechen + + + CD-Schlüssel + + + CD-Schlüssel prüfen + + + Client + + + Erstellen + + + Unverwundbarkeit (Sek.) + + + Unverwundbarkeitsanzeige + + + Tode + + + Dediziert + + + Demoliste + + + Spielerstatistiken + + + Demo aufzeichnen + + + Demoaufzeichnung + + + Leer + + + Filter + + + Respawn (Sek.) + + + Kill-Limit + + + Kills + + + Delay-Zeit + + + Schaden durch Freunde + + + Freundesanzeige + + + Freundesnamen + + + Voll + + + Modus + + + IP/Host:port + + + Internet + + + Verbinden + + + LAN + + + Abfragen + + + Wiederholen + + + Kartenliste + + + Spielerlimit + + + Netzwerkverbindung + + + Keine Anomalien + + + Optionen + + + Passwort + + + Spielername: + + + Spieler + + + Anzahl der Spieler + + + Internetserver + + + Schnelle Aktual. + + + Wechsel-Koeffizient + + + Alle aktualisieren + + + Verstärkung (Sek.) + + + Respawn-Optionen + + + AUSGEWÄHLTE KARTEN + + + Server + + + Serverliste + + + Servereigenschaften + + + Serverinformation + + + Server + + + Servername + + + Servereinstellungen + + + Zuschauer + + + Erste Person + + + Freie Kamera + + + Dritte Person Rotation + + + Dritte Person + + + Zuschauereinstellungen + + + Nur Team + + + Anfangswetter + + + Punktzahl + + + Zeitlimit (Min.) + + + Aufwärmen (Sek.) + + + Wetteroptionen + + + Ohne Fr.schaden + + + Ohne Passwort + + + Ohne PunkBuster + + + Mit Passwort + + + LAN + + + Internet + + + Agroprom-Fabrik + + + Fahrzeugstation + + + Becken + + + Eindeutiger Name wurde erfolgreich geändert! + + + Dunkles Tal + + + Jantar-Fabrik + + + Fehler bei der Verbindung zum Statistikserver + + + Fehler bei der Verbindung zum Protokollserver + + + Autorisation erfolgreich + + + Verlassenes Dorf + + + Militärlager + + + Falscher Name + + + Becken + + + Eisenbahnstation + + + Rostok-Fabrik + + + Falscher eindeutiger Name + + + Wollen Sie dies wirklich löschen: + + + Verlassene Fabrik + + + PING + + + SPIELER + + + Statische Beleuchtung + + + Dynamische Beleuchtung + + + Erweit. dyn. Beleuchtung + + + Dynamische Objektbeleuchtung + + + Erweiterte dyn. Objektbel. (DX10) + + + SERVERNAME + + + Artefaktjagd + + + Artefakteroberung + + + Jeder gegen Jeden + + + Filter: + + + Hoch + + + Niedrig + + + Mittel + + + aus + + + Erfahren + + + Legendärer Stalker + + + Anfänger + + + Profi + + + Veteran + + + Teamspiel + + + Frequenz 60 Hz + + + Aktion + + + Erweitert + + + Alternative + + + Anisotropes Filtern + + + Übernehmen + + + Zurück + + + Blut + + + Helligkeit + + + Abbrechen + + + Updatesuche + + + Kontrast + + + Steuerung + + + Mitwirkende + + + Zieldistanz einblenden + + + Standard + + + Löschen + + + Wollen Sie diese Datei wirklich löschen? + + + Grasdetaildichte + + + Schwierigkeitsgrad + + + Verbindung trennen + + + Wollen Sie die Verbindung wirklich trennen? + + + Tiefenschärfe + + + Dynamisches Fadenkreuz + + + Dynamische Musik + + + EAX + + + Vollbild + + + Spiel + + + Gamma + + + Objektdetails + + + Maus umkehren + + + Taste + + + Tastatureinstellungen + + + Letzter Spielstand + + + Beleuchtungsdistanz + + + Laden + + + Spiel laden + + + Profil verlassen + + + Meister + + + Effektlautstärke + + + Mausempfindlichkeit + + + Smooth A-test objects + + + Optimize smoothing + + + MEHRSPIELER + + + Mehrspieler + + + Musiklautstärke + + + Die Änderungen werden erst nach einem Neustart des Spiels wirksam. + + + Mehrspieler + + + Neues Spiel + + + Anfänger + + + NSC-Taschenlampen + + + OPTIONEN + + + Optionen + + + Partikeldistanz + + + Qualitätseinstellungen + + + Zurück zu Windows + + + Spiel beenden + + + Wollen Sie das Spiel wirklich beenden? + + + Wollen Sie wirklich zu Windows zurückkehren? + + + Detailliertes Bump + + + Steep Parallax + + + Sonnenschatten + + + Grasschatten + + + Sonnenqualität + + + DX10.1 benutzen + + + Vollbild-Smoothing + + + Nasse Oberflächen + + + Geometriepuffer optimieren + + + Volumetrischer Rauch + + + Render 2 + + + Render-Art + + + Auflösung + + + Zurück zum Spiel + + + Speichern + + + Spiel speichern + + + Fadenkreuz darstellen + + + Waffe darstellen + + + Einfach + + + Soundkarte + + + Weiche Partikel + + + Weiches Wasser + + + Sound + + + Soundqualität + + + Stalker + + + Schattenqualität + + + Sonnenstrahlen + + + Anti-Aliasing + + + KI verwendet Taschenlampen + + + Texturdetails + + + NSC-Identifizierung + + + Veteran + + + Grafik + + + Sichtweite + + + Volumetrisches Licht + + + Vertik. Synchronis. + + + Eindeutigen Namen ändern + + + Diese E-Mail-Adresse wird bereits verwendet. + + + Über das Internet + + + Im LAN + + + In den Rücken getroffen + + + Wegen Blutverlust + + + In einer Explosion + + + Ins Auge getroffen + + + Kopfschuss + + + Spielstandversion stimmt nicht mit der Spielversion überein. + + + Kills hintereinander + + + Messer + + + Letz. Zus.stel. + + + In den Mehrspielermodus wechseln + + + Name + + + Ändern + + + Zus.stell. 1 + + + Zus.stell. 2 + + + Zus.stell. 3 + + + Zurücksetzen + + + Alles verkaufen + + + Version + + + Pripyat + + + Ducken/Stehen + + + Automat. Speicherung + + + Detaillierte Texturen + + + Videos + + + Betreten + + + Verlassen + + + Erstellen + + + E-Mail-Adresse oder Passwort falsch + + + Falsches Profil + + + Verbindungsfehler + + + Server vorübergehend nicht erreichbar + + + Profilanmeldung erforderlich + + + Verbindungsfehler + + + Verbindungsfehler + + + Verbindungsfehler + + + Falscher Profilname + + + Falsches Passwort + + + Falscher eindeutiger Name + + + Eindeutiger Name wird bereits verwendet + + + Bitte zuerst in Ihrem Profil anmelden + + + Bitte zuerst aus Ihrem Profil abmelden + + + Fehler bei der Verbindung zum Profilserver + + + Sie können das Profil nicht mehr löschen, wenn Sie es erstellt haben + + + SSAO-Qualität + + + SSAO-Modus + + + Standard + + + HDAO + + + HBAO + + + Interface anzeigen + + + Nicht registrierter eindeutiger Name. Bitte registrieren Sie ihn. + + + Eindeutiger Name abgelaufen. Bitte registrieren Sie ihn erneut. + + + Stalker + + + maximal + + + Erweiterte dyn. Objektbel. (DX11) + + + Bitte melden Sie sich an, um eine Verbindung mit dem externen Server herzustellen. + + + Diese GameSpy-ID wird bereits verwendet. Bitte verwenden Sie eine andere GameSpy-ID. + + + Falsche E-Mail-Adresse + + + Falsches Passwort + + + Sie können mit einer GameSpy-ID keine Verbindung zu einem lokalen Server aufbauen. Bitte benutzen Sie den Netzwerkspielmodus. + + + Sie wurden vom Server gekickt. + + + Sie wurden gesperrt durch den Administrator: + + + Sie wurden durch den Server gesperrt. + + + Serverinformationen + + + Die E-Mail-Adresse ist zu lang. Sie darf nicht länger als 50 Zeichen sein. + + + Falsche E-Mail-Adresse + + + Dieses Passwort ist zu kurz + + + Dieses Passwort ist zu lang + + + E-Mail-Adresse nicht gefunden + + + Eindeutiger Name nicht festgelegt + + + Der eindeutige Name ist zu lang. Er darf nicht länger als 30 Zeichen sein. + + + Der eindeutige Name darf Ziffern, lateinische Buchstaben und die folgenden Sonderzeichen enthalten: "#$&'()*+-./:;<=>?@[]^_`{|}~ + + + Der eindeutige Name darf keine Leerzeichen enthalten. + + + Der eindeutige Name darf nicht mit einer Ziffer oder einem der folgenden Zeichen beginnen: '@', '+', ':', '#' + + + sehr hoch + + + Tessellation + + + Änderungen übernehmen? Alle Änderungen werden rückgängig gemacht in + + diff --git a/gamedata/configs/text/ger/ui_st_mp.xml b/gamedata/configs/text/ger/ui_st_mp.xml new file mode 100644 index 0000000..b5b85ae --- /dev/null +++ b/gamedata/configs/text/ger/ui_st_mp.xml @@ -0,0 +1,741 @@ + + + + Artefakt + + + Freund + + + Max. Ping + + + Profil + + + Modi + + + Das Artefakt wurde zerstört. + + + Das Artefakt ist aufgetaucht. Bringen Sie es in die Basis, um zu punkten. + + + Das Artefakt wurde verloren. + + + Das Artefakt befindet sich in unserer Basis. + + + Das Artefakt befindet sich in der gegnerischen Basis. + + + Artefakte + + + Artefakte + + + Autom. Auswahl + + + Zurück + + + 4. Sperren + + + Nach Anomalie + + + Abbrechen + + + hat das Artefakt erobert + + + 5. Karte wechseln + + + 6. Wetter ändern + + + Wetter ändern in + + + Chat + + + Verbunden + + + Tode + + + Beschreibung + + + Nicht verbunden + + + Text für Abstimmung eingeben + + + ist dem Spiel beigetreten + + + Feuerwache + + + (Erste-Person-Ansicht) + + + Kills + + + Kills + + + (Freie Kamera) + + + (Dritte-Person-Ansicht) + + + mit + + + 7. Modus + + + Abfall + + + LOS! + + + hat das Artefakt %s fallen gelassen + + + hat das Artefakt fallen gelassen + + + hat das Artefakt % genommen + + + Söldner + + + ist jetzt + + + ist beigetreten + + + 3. Kicken + + + Limansk + + + Lade Auszeichnungen... + + + Lade Rekorde... + + + (Free-Locked) + + + Kartenbeschreibung + + + Die Partie hat begonnen! + + + Altes Dorf + + + Modi + + + Name + + + Weiter + + + Nicht abgestimmt + + + Ping + + + %s hat die Partie gewonnen! + + + Spieler + + + Zum Wechseln in den Zuschauermodus "Feuern" drücken + + + Zum Kaufen eines sofortigen Respawns "Springen" drücken + + + Zum Auswählen eines Skins "Springen" drücken + + + Zum Auswählen der Teams "Springen" drücken + + + Zum Spawnen "Springen" drücken + + + Zum Starten "Springen" drücken + + + Zum Öffnen des Kaufmenüs ($$ACTION_BUY_MENU$$) drücken + + + Sie haben %d$. Für %d$ können Sie respawnen. Klicken Sie auf "Ja", um zu spielen. + + + Bereit... + + + Reparaturbasis + + + 1. Neustart + + + 2. Schneller Neustart + + + hat das Artefakt zurückgebracht + + + hat einen Punkt erzielt + + + Spieler auswählen, der per Abstimmung gesperrt werden soll + + + Abstimmungskategorie auswählen + + + Spieler auswählen, der per Abstimmung gekickt werden soll + + + Spieler auswählen, der per Abstimmung gekickt werden soll + + + Karte auswählen, über die abgestimmt werden soll + + + Rennen mit Artefakt nicht möglich + + + - Count + + + - Stay time + + + - Respawnzeit + + + Anomalien + + + Anomalieperiode + + + Jederzeit + + + Artefakt erobert + + + Artefakte: + + + Automatische Teambalance + + + Automatischer Teamtausch + + + BattlEye + + + Deaktiviert + + + Aktiviert + + + - Erste Person + + + Zwangsrespawn + + + Kill-Limit + + + - Free Fly + + + - Free Look + + + Schaden durch Freunde + + + Freundesanzeige + + + Freundesnamen + + + Unendlich + + + Unsichtbarkeit + + + - Anzeigen + + + - Zeit + + + - Dritte Person + + + Kartenrotation + + + Max. Ping + + + Min. + + + Nein + + + Respawn + + + Spieler zurück in der Basis + + + Sek. + + + Servername: + + + Shielded Bases + + + Zuschauermodi: + + + - Nur Team + + + Zeitlimit + + + Version: + + + Abstimmung + + + Aufwärmen + + + Ja + + + Skin-Auswahl + + + Zuschauer + + + ZUSCHAUER + + + Sportzentrum + + + Status + + + hat gewechselt zu + + + Freiheit + + + Teamauswahl + + + Team %s hat GEWONNEN! + + + Text + + + Zeit bis zum Respawn + + + Zeit bis zum Start: + + + Verbleibende Zeit: %d:%d; Vereinbart: %2.f + + + Trainingslager + + + DAFÜR stimmen - [$$ACTION_VOTE_YES$$]\nDAGEGEN stimmen - [$$ACTION_VOTE_NO$$]\nErgebnis - [$$ACTION_VOTE$$] + + + Nein + + + Ja + + + Abgestimmt + + + Nein + + + Ja + + + Abstimmung von Server abgebrochen! + + + Abstimmung "%s" gestartet durch %s. + + + Die Abstimmung hat begonnen! + + + 1. Klar + + + 2. Bewölkt + + + 3. Nacht + + + 4. Regen + + + Von hinten getroffen! + + + Kopfschuss! + + + Sie haben das gegnerische Artefakt erobert, tragen Sie es jetzt in Ihre Basis! + + + Sie haben das Artefakt. Aktivieren Sie es, um es in Ihre Basis zurückzubringen! + + + Ihr Rang lautet jetzt + + + Das sind Sie + + + Auf diesem Server sind Abstimmungen nicht möglich. + + + Keine laufenden Abstimmungen. + + + Nur eine aktive Abstimmung gestattet. + + + Bereit + + + An alle + + + Ans Team + + + Abstimmung fehlgeschlagen! + + + Abstimmung erfolgreich! + + + Freiheitsbasis + + + Söldnerbasis + + + 2. Artefaktjagd + + + 4. Artefakteroberung + + + 1. Jeder gegen Jeden + + + Neues Profil erstellen + + + Accountprofile werden geladen + + + Hallo + + + Verbindung mit Profil wird hergestellt + + + Profil wurde erfolgreich erstellt. Bitte verbinden Sie sich damit. + + + Eindeutiger Name wird verifiziert... + + + Wollen Sie das folgende vorhandene Profil benutzen: + + + Account gefunden. Registrierte Profile werden geladen... + + + Sie haben bereits ein Profil. Bitte verbinden Sie sich damit. + + + Account wird verifiziert... + + + Dieser eindeutige Name wird bereits verwendet. Bitte wählen Sie aus der Auswahlliste eine Alternative aus oder geben Sie einen neuen Namen ein. + + + Passwörter stimmen nicht überein! + + + 3. Teamspiel + + + Link kopieren + + + Karte laden + + + Beschreibung + + + Karte nicht korrekt oder beschädigt + + + Karte nicht gefunden + + + Auszeichnungen + + + Rekorde + + + Überprüfen + + + Passwort bestätigen + + + E-Mail-Adresse + + + Passw. vergessen? + + + GameSpy-Seite + + + Passwort + + + Speichern + + + Eindeutiger Name + + + Eindeutiger Name wurde erfolgreich geändert in + + + Team + + + Freiheit + + + Söldner + + + Neues Profil + + + GameSpy-Autorisation + + + Abspielen + + + Zurück + + + Neu starten + + + An den Anfang + + + Zum Kill + + + Zum Tod + + + Zur Artefakteroberung + + + Zum Artefaktverlust + + + Zur Artefaktlieferung + + + beliebig + + + Anmelden + + + Screenshot (alle) + + + Konfigurationen für alle + + + Pinglimit: + + + Pinglimit + + + Screens. (ausg. Spieler) + + + Konf. für ausg. Spieler + + + Ausgew. Spieler kicken + + + Ausgew. Spieler sperren + + + Neu starten + + + Schneller Neustart + + + Wetter ändern + + + Geschwindigk. Wetterwechsel + + + Spielart ändern + + + Spieleinstellungen ändern + + + Laufende Abstimmung stoppen + + + Zeitlimit (0, 180) + + + Kill-Limit (0, 1000) + + + Artefaktlimit (0, 100) + + + Aufwärmzeit (0, 3600) + + + Unverwundbarkeit (0, 60 AE) + + + Unverwundbark. (0, 600 T/DM) + + + Respawn-Zeit (-1, 3600) + + + Unbekannter Profilfehler (Code: 4) + + + 10 Minuten + + + 30 Minuten + + + 1 Stunde + + + 6 Stunden + + + 1 Tag + + + 1 Woche + + + 1 Monat + + + 3 Monate + + + Permanent + + + Der Benutzername ist zu kurz + + + Profilfehler + + diff --git a/gamedata/configs/text/ger/ui_st_other.xml b/gamedata/configs/text/ger/ui_st_other.xml new file mode 100644 index 0000000..89dd720 --- /dev/null +++ b/gamedata/configs/text/ger/ui_st_other.xml @@ -0,0 +1,501 @@ + + + + Abbrechen + + + Nein + + + OK + + + Ja + + + Schlecht + + + Feind + + + Hervorragend + + + Erfahren + + + Freund + + + Karte der Zone + + + Gut + + + Gleichgültig + + + Meister + + + PDA-Bonus + + + Nur eine aktive Abstimmung gestattet. + + + Neutral + + + Anfänger + + + Spiel + + + Verwendet + + + Stufe + + + KI-Objekte werden geladen + + + Server: alife-Simulator werden geladen + + + CFORM wird geladen + + + Details werden geladen + + + Geometrie wird geladen + + + Spielstand wird geladen + + + Sektoren & Portale werden geladen + + + Shaders werden geladen + + + Spatial-DB wird geladen + + + Texturen werden geladen + + + Direkte IP + + + Kein aktiver Task + + + Nicht genügend Speicher + + + Der NSC hat nicht genügend Geld + + + Stream wird geöffnet + + + Objekte werden abgerufen + + + Rubel. + + + SERVER: Verbindung wird aufgebaut + + + SERVER: Wird gestartet + + + CD-Schlüssel wird geprüft + + + Grafik + + + Schrecklich + + + Reparieren + + + Render 2 kann auf Ihrem PC nicht ausgeführt werden. + + + Fraktion + + + Verbindungsfehler: Ihr CD-Schlüssel ist deaktiviert. Kontaktieren Sie den Kundenservice. + + + Verbindungsfehler: CD-Schlüssel wird bereits verwendet. + + + Verbindungsfehler: Ungültiger CD-Schlüssel. + + + Verbindungsfehler: Ungültiger Host. + + + Verbindungsfehler: Falsches Passwort. + + + Ein neuer Patch steht zur Verfügung.\nVersion: %s\nQuelle: %s\Wollen Sie den Patch herunterladen? + + + Momentan ist kein neuer Patch verfügbar. + + + Verbindungsfehler: Der Server hat die Verbindung abgelehnt. + + + Verbindungsfehler: Der Server ist voll. + + + Verbindungsfehler: Unterschiedliche Version. + + + Verbindung zum Masterserver wird aufgebaut. + + + Tage + + + Fehler + + + Fehler beim Laden + + + Eine Datei mit diesem Namen existiert bereits. Wollen Sie sie überschreiben? + + + Es wurde kein Dateiname eingegeben + + + Stunden + + + Verbindung wurde durch das BattlEye-Schutzsystem getrennt: + + + Verbindung wurde getrennt. Grund: + + + Verlassen + + + Wenn Sie diesen Spielstand laden, verlieren Sie alle nicht gespeicherten Daten. Fortfahren? + + + Min. + + + Monate + + + Rucksack + + + Parameter + + + Patch kann nicht heruntergeladen werden. + + + Der Patch wurde erfolgreich heruntergeladen. Wollen Sie ihn installieren? + + + Preis + + + Rang + + + Gesinnung + + + Ruf + + + Sek. + + + Wählen Sie bitte mindestens eine Karte aus + + + Alles nehmen + + + Verbleibend + + + Abstimmung fehlgeschlagen + + + Wollen Sie das Spiel wirklich verlassen? + + + Gesamt + + + Sehr schlecht + + + Sehr gut + + + Veteran + + + Reparieren + + + Ausgewählten Gegenstand reparieren + + + ... + + + unterwegs in einem Gebiet + + + unterwegs von Zaton zur Janow-Station + + + unterwegs von Zaton nach Pripyat + + + unterwegs von der Janow-Station nach Zaton + + + unterwegs von der Janow-Station nach Pripyat + + + unterwegs von Pripyat nach Zaton + + + unterwegs von Pripyat zur Janow-Station + + + unterwegs von Pripyat zum Labor X8 + + + unterwegs vom Labor X8 nach Pripyat + + + Emission + + + Anfang des Spiels + + + Ankunft auf der Skadowsk + + + Stingray 1 untersucht + + + Stingray 2 untersucht + + + Stingray 3 untersucht + + + Stingray 4 untersucht + + + Stingray 5 untersucht + + + unterwegs zum Plateau + + + Ankunft in der Janow-Station + + + Weg nach Pripyat gefunden + + + Zulu hat sich dem Trupp angeschlossen + + + Wanos Schulden wurden beglichen + + + Wano hat sich dem Trupp angeschlossen + + + anomale Pflanze eingesammelt + + + Sokolow hat sich dem Trupp angeschlossen + + + Strider hat sich dem Trupp angeschlossen + + + Trupp zusammengestellt + + + Ankunft in der Unterführung + + + Ankunft in Pripyat + + + Militäreinheiten entdeckt + + + unbekannte Waffe sichergestellt + + + Spähtrupp gefunden + + + Verstärkung eingetroffen + + + "Antenne" untersucht + + + Vermisste Wache gefunden + + + Controller bei der Wache ausgeschaltet + + + Testwerkstatt betreten + + + Gaußgewehrdokumente gefunden + + + toten Kämpfer gefunden + + + Eingang zum Kindergarten + + + Armeearzt gerettet + + + Kommunikation mit dem HQ hergestellt + + + Evakuierung von Pripyat eingeleitet + + + Evakuierungshubschrauber erreicht + + + Evakuierung abgeschlossen + + + Mutantendetektor + + + Lösegeld für Geisel gezahlt + + + Geisel befreit + + + Aschehügel-Anomalie-Messungen + + + Plawni-Anomalie-Messungen + + + Blutsaugerlager + + + nach Kopatschi geschickt + + + Zugang zur Kläranlage + + + Stalker getroffen + + + Kiste in Versteck gefunden + + + jagt die Chimäre + + + Oase gefunden + + + Operation "Ein Schuss" eingeleitet + + + Suche nach der Quelle der Psi-Emission + + + Verwaltungsunterlagen + + + Zugang zu den Werkstätten des Umspannwerks + + + Geschäft bei der Forststation + + + Wächterlagerhaus + + + Quelle des seltsamen Leuchtens gefunden + + + Zulu gefunden + + + gefährliche Höhle + + + Reparieren/Modifikationen + + + Kaufen + + + Verkaufen + + + Handeln + + + Fenster schließen ($$ACTION_USE$$) + + + Handelsfenster öffnen ($$ACTION_SPRINT_TOGGLE$$) + + + Reparatur- und Modifikationsfenster öffnen ($$ACTION_SPRINT_TOGGLE$$) + + + Alle Gegenstände in den Rucksack legen ($$ACTION_SPRINT_TOGGLE$$) + + + Ausgewählte Gegenstände kaufen + + + Ausgewählte Gegenstände verkaufen + + + Start des Evakuierungshubschraubers + + diff --git a/gamedata/configs/text/ger/ui_st_pda.xml b/gamedata/configs/text/ger/ui_st_pda.xml new file mode 100644 index 0000000..b91ec88 --- /dev/null +++ b/gamedata/configs/text/ger/ui_st_pda.xml @@ -0,0 +1,279 @@ + + + + Zeit + + + Freier Stalker + + + Militär + + + Bandit + + + Wächter + + + Wissenschaftler + + + Nebenmissionen + + + Verstecke + + + Freiheit + + + Söldner + + + Missionsprotokoll + + + Monolither + + + Mutant + + + April + + + August + + + Dezember + + + Februar + + + Januar + + + Juli + + + Juni + + + März + + + Mai + + + November + + + Oktober + + + September + + + PDA ausschalten + + + Nachrichtenverlauf + + + Nachrichtenverlauf anzeigen + + + Gebietskarte + + + Zonenkarte und Missionsprotokoll anzeigen + + + Statistik + + + Persönliche Statistiken anzeigen + + + Aktuelle Zeit: + + + Datenfilter + + + News anzeigen + + + Dialoge anzeigen + + + Legende + + + Zeit in der Zone + + + Überstandene Emissionen: + + + Abgeschlossene Missionen: + + + Getötete Mutanten: + + + Getötete Stalker: + + + Gefundene Artefakte: + + + Gefundene Verstecke: + + + Bevorzugte Waffe + + + Stärkster getöteter Mutant + + + Position: + + + Missionsziel + + + Nebenmission + + + Feinde + + + Freunde + + + Fraktionsanführer + + + Hauptmission + + + Neutrale + + + Ortskundiger + + + Verstecke + + + Truppkommandeur + + + Händler + + + Freier Stalker + + + Nachrichtenverlauf + + + Auf Spieler zentrieren + + + Nach unten + + + Nach links + + + Legende anzeigen + + + Nach rechts + + + Nach oben + + + Maximal Herauszoomen + + + Hineinzoomen + + + Herauszoomen + + + Erfolge + + + Karte auf Mission zentrieren + + + Karte auf Mission zentrieren + + + Zombie + + + Größe + + + + Größe - + + + Techniker + + + Arzt + + + Aktuelle Missionen + + + Missionen anzeigen/ausblenden + + + Persönliche Kiste + + + Zaton + + + Die Gegend um die Jupiter-Anlage + + + Pripyat + + + Unterführung "Pripyat 1" + + + Labor X8 + + + Gebiete + + + Wichtige Gegenstände + + + Gebiet + + + Die Scanner haben Artefakte registriert: + + + Die Scanner haben keine Artefakte registriert + + + Versteck + + + Schlafbereich + + diff --git a/gamedata/configs/text/ger/ui_st_screen.xml b/gamedata/configs/text/ger/ui_st_screen.xml new file mode 100644 index 0000000..037a6f4 --- /dev/null +++ b/gamedata/configs/text/ger/ui_st_screen.xml @@ -0,0 +1,348 @@ + + + + Persönliche Kiste öffnen ($$ACTION_USE$$) + + + Sie sind zu erschöpft, um weiterzugehen + + + Sie sind zu überladen, um weiterzugehen + + + Tür öffnen ($$ACTION_USE$$) + + + Reden ($$ACTION_USE$$) + + + Leiche durchsuchen ($$ACTION_USE$$) + + + Leiche durchsuchen ($$ACTION_USE$$)\nLeiche aufheben (Umschalt + $$ACTION_USE$$) + + + Mission abgeschlossen: + + + Mission fehlgeschlagen: + + + Gegenstand erhalten: + + + Geld erhalten: + + + Neue Mission: + + + Gegenstand verloren: + + + Geld abgegeben: + + + Mission abgebrochen: + + + Mission aktualisiert: + + + Ihre Waffe klemmt. Bitte nachladen. + + + Behälter durchsuchen ($$ACTION_USE$$) + + + Gegenstand aufheben ($$ACTION_USE$$) + + + Flugobjekt durchsuchen ($$ACTION_USE$$) + + + Tür klemmt + + + Die Tür ist von innen verschlossen + + + Tresor verschlossen + + + Code notwendig + + + Code eingeben ($$ACTION_USE$$) + + + Pflanze nehmen ($$ACTION_USE$$) + + + Scanner aufstellen ($$ACTION_USE$$) + + + Scanner nehmen ($$ACTION_USE$$) + + + Regenbogen Aggressionsunterdrücker\nModell des externen Emissionskomplexes\nMaßstab 1:20 + + + Schalter aktivieren ($$ACTION_USE$$) + + + Gerät untersuchen ($$ACTION_USE$$) + + + Sprengstoff anbringen ($$ACTION_USE$$) + + + Erholen ($$ACTION_USE$$) + + + Aufzug hat keinen Strom + + + Generator aktivieren ($$ACTION_USE$$) + + + Schlafen + + + Sie können nicht schlafen! Sie bluten bedrohlich stark und waren radioaktiver Strahlung ausgesetzt. Nehmen Sie Medikamente ein oder konsultieren Sie einen Arzt. + + + Sie können nicht schlafen! Sie bluten bedrohlich stark. Nehmen Sie Medikamente ein oder konsultieren Sie einen Arzt. + + + Sie können nicht schlafen! Sie waren radioaktiver Strahlung ausgesetzt. Nehmen Sie Medikamente ein oder konsultieren Sie einen Arzt. + + + Schlafen ($$ACTION_USE$$) + + + Sie haben folgenden Erfolg errungen: Mann des Gleichgewichts. + + + Sie haben folgenden Erfolg errungen: Experte für Waffensysteme. + + + Sie haben folgenden Erfolg errungen: Detektiv. + + + Sie haben folgenden Erfolg errungen: Diplomat. + + + Sie haben folgenden Erfolg errungen: Freund der Wächter. + + + Sie haben folgenden Erfolg errungen: Freund der Freiheit. + + + Sie haben folgenden Erfolg errungen: Freund der Stalker. + + + Sie haben folgenden Erfolg errungen: Verfechter der Gerechtigkeit. + + + Sie haben folgenden Erfolg errungen: High-Tech-Experte. + + + Sie haben folgenden Erfolg errungen: Informationsmakler. + + + Sie haben folgenden Erfolg errungen: Bewahrer von Geheimnissen. + + + Sie haben folgenden Erfolg errungen: Boss. + + + Sie haben folgenden Erfolg errungen: Anführer. + + + Sie haben folgenden Erfolg errungen: Mutantenjäger. + + + Sie haben folgenden Erfolg errungen: Einer von uns. + + + Sie haben folgenden Erfolg errungen: Pionier. + + + Sie haben folgenden Erfolg errungen: Wissenschaftlicher Mitarbeiter. + + + Sie haben folgenden Erfolg errungen: Artefaktjäger. + + + Sie haben folgenden Erfolg errungen: Erfahrener Stalker. + + + Sie haben folgenden Erfolg errungen: Reicher Kunde. + + + Automatische Speicherung... + + + Sie können Ihre Waffe jetzt wieder herausnehmen. + + + Code lock ($$ACTION_USE$$) + + + Als Belohnung dafür, dass Sie das Geheimnis der verschwundenen Stalker lüften konnten, wurden medizinische Vorräte in Ihrer persönlichen Kiste auf der Skadowsk hinterlegt. + + + Als Belohnung für die Hilfe, die Sie den Wächtern geleistet haben, wurde ein PS5-M Universalschutzanzug in Ihrer persönlichen Kiste in der Janow-Station hinterlegt. + + + Als Belohnung für die Hilfe, die Sie den Wächtern geleistet haben, wurde eine PSZ-9d Wächterpanzerung in Ihrer persönlichen Kiste in der Janow-Station hinterlegt. + + + Als Belohnung für die Hilfe, die Sie der Freiheit geleistet haben, wurde ein Freiheit-Sturmanzug in Ihrer persönlichen Kiste in der Janow-Station hinterlegt. + + + Als Belohnung für die Hilfe, die Sie der Freiheit geleistet haben, wurde ein Freiheit-Wachanzug in Ihrer persönlichen Kiste in der Janow-Station hinterlegt. + + + Sie haben es nicht bis zum Hubschrauber geschafft und das Evakuierungsteam hat die Zone ohne Sie verlassen. + + + Sind Sie bereit, die Zone zu verlassen? Es gibt keinen Weg zurück. + + + Game Over + + + Drücken Sie ($$ACTION_JUMP$$), um ins Hauptmenü zurückzukehren. + + + Pause + + + Spiel gespeichert + + + Als Belohnung für Ihre Hilfe dabei, Magpie zu überführen, wurde ein Artefakt in Ihrer persönlichen Kiste auf der Skadowsk hinterlegt. + + + Sie müssen warten, bis das Dock luftdicht verschlossen ist + + + Zugang gewährt + + + Aufzug nach oben ($$ACTION_USE$$) + + + Aufzug nach unten ($$ACTION_USE$$) + + + Kritisches Psi-Emissionsniveau. Begeben Sie sich sofort aus der Gefahrenzone. + + + Kritisches Strahlungsniveau. Um weiterzugehen, wird Schutz benötigt. + + + Hubschrauber untersuchen ($$ACTION_USE$$) + + + Versteck durchsuchen ($$ACTION_USE$$) + + + h + + + Nachricht + + + Tür blockiert + + + Tür schließen ($$ACTION_USE$$) + + + Tür verschlossen - das Lager befindet sich im Alarmzustand + + + Tür verschlossen - Sie müssen Ihre Waffe einstecken + + + Tür verschlossen + + + Stromzufuhr der Tür ist unterbrochen + + + Tür öffnen ($$ACTION_USE$$) + + + Tor blockiert + + + Zugangskarte benutzen ($$ACTION_USE$$) + + + Zugangskarte erforderlich + + + Die Tür kann nicht von dieser Seite aus geöffnet werden + + + - + + + Die Kiste ist verschlossen. Es werden zwei Schlüssel benötigt. + + + Schlüssel benutzen ($$ACTION_USE$$) + + + Schlüssel benutzen ($$ACTION_USE$$) + + + Die Kiste ist verschlossen. Sie benötigen den zweiten Schlüssel, um sie zu öffnen. + + + Kiste öffnen ($$ACTION_USE$$) + + + Der Türmechanismus wurde von innen blockiert + + + Gastank verbinden ($$ACTION_USE$$) + + + Achtung! Chemische Gefahr! + + + Ventil drehen ($$ACTION_USE$$) + + + Fahrzeug durchsuchen ($$ACTION_USE$$) + + + Sie können bei Leutnant Rogowez und Leutnant Kirilloff Ihre Vorräte an Medikamenten und Munition auffrischen. + + + Vor kurzem fand eine Emission in der Zone statt. + + + Sie haben folgenden Erfolg errungen: Gezeichnet von der Zone. + + + Als Dank dafür, dass Sie gefährliche Mutanten getötet haben, wurde Munition in Ihrer persönlichen Kiste in der Janow-Station hinterlegt. + + + Koordinaten eines Verstecks erhalten, das schon bekannt ist. + + + Versteck gefunden + + + Versteckkoordinaten erhalten + + + Zum Spielen beliebige Taste drücken + + diff --git a/gamedata/configs/text/ita/st_achievement.xml b/gamedata/configs/text/ita/st_achievement.xml new file mode 100644 index 0000000..ecca491 --- /dev/null +++ b/gamedata/configs/text/ita/st_achievement.xml @@ -0,0 +1,372 @@ + + + + Il tuo nemico si sentirà umiliato, dopo essere stato ucciso per dieci volte di fila senza riuscire a ucciderti neppure una volta! Comunque, la tua non è crudeltà: lo stai semplicemente spronando ad allenarsi. + + + Il mietitore + + + Sei inarrestabile! Hai preso due piccioni con una fava... falciati entrambi con il tuo fucile Gauss. + + + Doppio colpo + + + La tua calma e la tua attenta pianificazione sono letali per il nemico: nel giro di un paio di secondi, sei riuscito ad abbattere due bersagli sparando per due volte con la tua doppietta. + + + Due colpi, due morti + + + Tu sai che cosa significhi essere uno stalker, ed è per questo che sei diventato un'autentica leggenda! + + + Arrampicatore sociale + + + Vuoi sfondare un esoscheletro usando un coltello? Sembra che ti piacciano le imprese difficili, eh? + + + Apriscatole + + + Pensavano di averti fregato, ma gli hai fatto capire chi comanda, ammazzandone cinque nonostante fossi a un passo dalla morte! + + + Duro a morire + + + Che scarica di adrenalina! Hai fatto a pezzi il tuo nemico con una pioggia di proiettili: 5 uccisioni in 5 secondi, incredibile! + + + Furia scatenata + + + Wow, che mira strepitosa! Hai ucciso due nemici con un colpo negli occhi, senza morire nel frattempo. + + + Specialista degli occhi + + + Che si nascondano pure dietro gli angoli per tenderti un'imboscata: non ti fermeranno! Tu sai colpire un bersaglio in movimento, senza neppure mirare! + + + Riflessi fulminei + + + Che scappi più forte che può: tanto alla fine i tuoi proiettili lo raggiungeranno. + + + Ferma il fuggiasco + + + Hai massacrato venti nemici di fila, senza morire! Accidenti, che bagno di sangue! + + + Massacro + + + Erano in tre e avevano dei fucili di precisione, ma alla fine la tua grande abilità ha avuto ragione di loro. + + + Tiratore scelto + + + Lasciando che siano i nemici a comportarsi da barbari, hai mostrato loro che sei in grado di vincere anche senza sparare un solo colpo. + + + Messaggero di pace + + + La distanza non è un problema per un vero cecchino! Sai centrare il bersaglio anche da oltre 120 metri. + + + Precisione letale + + + Il nemico è riuscito ad abbatterti, ma tu gli hai lasciato come ricordino una bella granata! + + + Non ti scordar di me + + + Hanno ucciso i tuoi amici, la tua vendetta è stata più che legittima. Tre cadaveri di nemici per i tuoi tre amici morti: giustizia è fatta. + + + Vendicatore + + + Sei il difensore del tuo amico: lo hai salvato per due volte da un attacco, mentre trasportava il manufatto. + + + Angelo custode + + + Sei riuscito a difendere il tuo onore e quello della tua squadra, mettendo a segno alcuni punti. + + + L'onore è salvo + + + Per caso sapevi dove sarebbe comparso il prossimo manufatto? Beh, fatto sa che sei riuscito a prenderlo, nel giro di pochi secondi! + + + Intuito da stalker + + + Sei stato fortunato: hai ucciso il nemico con l'ultimo proiettile del caricatore! Beh, alla fine quello che conta è il risultato. + + + Lucky Bastard + + + Hai ucciso otto nemici di fila. Bene, hai lanciato la sfida: ora vediamo cosa sapranno fare loro. + + + La sfida + + + Nessuno è riuscito a ucciderti, grazie alla tua grande cautela. Non sei mai morto nel corso della partita e hai ottenuto più di 15 punti. + + + Paranoia + + + Sai come fare il tuo lavoro senza attirare l'attenzione: non scordi mai il silenziatore. Perché far sapere al nemico da che direzione giunge la sua morte? + + + Morte silente + + + Hai annichilito il tuo nemico, vincendo e ottenendo il doppio dei punti del loro miglior rappresentante. + + + Superiorità schiacciante + + + Il tuo piano per catturare all'istante il manufatto ha avuto successo: hai segnato per la tua squadra entro tre minuti dall'inizio della partita. + + + Guerra lampo + + + Non hai lasciato scampo al nemico, dato che non gli hai lasciato mettere le mani su neppure un manufatto. Così impareranno a che cosa serve il lavoro di squadra! + + + Nessuna speranza! + + + Hai ottenuto il massimo dei punti in ogni area: il maggior numero di uccisioni, più manufatti e il minor numero di morti! Continua così! + + + Campione completo + + + Con una lama in mano sai fare meraviglie! Hai sbudellato 3 nemici in 20 secondi, dimostrando di essere una macchina della morte anche senza armi da fuoco. + + + Furia + + + Ogni nemico ha un punto debole, e tu hai trovato quello di questo sventurato colpendo un nemico corazzato nell'occhio, con la tua fida arma. + + + Tallone d'Achille + + + I proiettili nemici non riescono neppure a sfiorarti! Li hai superati senza neppure un graffio e hai risolto il problema! + + + Più veloce di un proiettile + + + Sei disposto a eseguire ricerche sugli ultimi sviluppi della Zona. Ci hai aiutato a comprendere meglio la Zona scoprendo nuove formazioni anomale precedentemente sconosciute alla scienza. + + + Pioniere + + + Ora gli stalker hanno una considerazione molto più alta di te.\nPer ringraziarti dei tuoi sforzi, ti hanno lasciato delle munizioni nel tuo ripostiglio personale della stazione Yanov. + + + Tu non cerchi di evitare i mutanti pericolosi: gli dai la caccia e sei anche molto bravo. I bravi cacciatori sono molto stimati tra gli stalker. + + + Cacciatore di mutanti + + + Ora gli stalker hanno una considerazione molto più alta di te.\nPer ringraziarti dei tuoi sforzi, ti hanno lasciato dei medicinali nel tuo ripostiglio personale sulla Skadovsk. + + + Hai scoperto il segreto dietro le scomparse degli stalker sulla Skadovsk. Il gruppo di colpevoli non era affatto composto da mutanti, ma da un nemico molto più pericoloso: l'uomo. Ora che hai scoperto la verità ti sei guadagnato il rispetto degli stalker. + + + Detective + + + Ora gli stalker hanno una considerazione molto più alta di te.\nGli stalker hanno chiesto a Owl di farti uno sconto.\nOra Beard ti propone i prezzi migliori per i suoi manufatti. + + + Hai dimostrato ai banditi e a Sultan, il loro capo, chi comanda da queste parti. Ora sei famoso tra gli stalker. Sulla Skadovsk sei sempre il benvenuto. + + + Uno dei nostri + + + Ti sei guadagnato il rispetto dei banditi.\nOwl ti ha fatto uno sconto per paura di essere la tua prossima vittima.\nCome d'accordo, ora Beard ti darà una parte dei suoi profitti. + + + Hai aiutato Sultan a sconfiggere gli stalker e hai preso l'attività di Beard sotto il tuo controllo. Ora a Zaton tutti ti temono e ti rispettano. + + + Boss + + + Gli stalker hanno deciso di dare il bottino di Magpie, che lui aveva ottenuto con le menzogne e l'inganno, a qualcuno che lo meritasse di più. Hanno messo la sua roba nel tuo ripostiglio personale a Yanov. + + + Hai consegnato quel sacco di immondizia alla giustizia. Magpie ha ingannato molti stalker, e ora è giunta la sua ora. + + + Corriere della giustizia + + + Ora gli stalker hanno una considerazione più alta di te.\nI banditi ti daranno la caccia non appena ti avventurerai nella Zona. + + + Hai trovato ogni tipo di manufatto conosciuto ai ricercatori della Zona. Questo ti è valso il rispetto degli stalker e l'attenzione dei banditi. + + + Cacciatore di manufatti + + + Cardan può eseguire solo una modifica, che ti permetterà di muoverti più velocemente quando indossi un esoscheletro, installando dei potenziatori idraulici al servomotore. + + + Ora Cardan ha tutti gli strumenti che gli serviranno. Questo gli permetterà di eseguire potenziamenti nuovi e più complessi. + + + Esperto di sistemi d'armi + + + Azot può eseguire una sola modifica all'elmo tattico: uno scanner a infrarossi che permette di individuare gli umani vicini. + + + Azot ha tutti gli strumenti che un tecnico della Zona potrebbe desiderare. Ora può eseguire anche le modifiche tecnologiche più sofisticate. + + + Esperto di tecnologia + + + La tua esperienza ti permette di trovare più spesso manufatti rari. + + + Nei pressi del centro della Zona sei stato praticamente dappertutto. Hai visitato praticamente tutte le anomalie locali. + + + Stalker esperto + + + Le tue qualità di leader migliorano le possibilità di sopravvivenza della tua squadra. + + + Dovevi svolgere un lavoro di squadra, quindi hai radunato grandi uomini e dimostrato che sei un vero leader. + + + Leader + + + La Freedom, la Duty, gli stalker liberi e persino i banditi riconoscono le tue capacità di negoziazione, e hanno una grande considerazione di te. + + + Sai come risolvere un problema in modo pacifico. A che serve la forza bruta quando bastano le parole a risolvere le dispute? Nonostante questo, guardati da quelli che prima sparano poi fanno domande. + + + Diplomatico + + + Hai lavorato con gli scienziati talmente a lungo che non sarebbe fuori luogo definirti un assistente ricercatore. Tutti, nel bunker degli scienziati, ti considerano uno di loro. + + + Assistente ricercatore + + + I tuoi rapporti con la Duty sono migliorati. Se dovessi trovarti nei guai, i combattenti della Duty cercheranno di aiutarti.\nAzot, il tecnico che sostiene la Duty, ti ha offerto uno sconto.\nI tuoi rapporti con la Freedom si sono deteriorati. \nHawaiian, il commerciante che sostiene la Freedom, ti farà pagare di più la sua merce. + + + Hai aiutato molto la Duty, e questo ti è valso il rispetto dei combattenti della Duty e dei loro amici. Ma ricorda che nella Zona non tutti sono dei sostenitori della Duty. + + + Un amico della Duty + + + \nI tuoi rapporti con la Freedom sono migliorati. Se dovessi trovarti nei guai, i combattenti della Freedom cercheranno di aiutarti.\nHawaiian, il commerciante che sostiene la Freedom, ti ha offerto uno sconto.\nI tuoi rapporti con la Duty si sono deteriorati. \nAzot, il tecnico che sostiene la Duty, ti farà pagare di più per i suoi servizi. + + + Hai aiutato molto la Freedom, e questo ti è valso il rispetto dei combattenti della Freedom e dei loro amici. Ma ricorda che nella Zona non tutti sono dei sostenitori della Freedom. + + + Un amico della Freedom + + + Gli stalker di Yanov fanno molta attenzione a che ci sia un equilibrio di forze tra la Duty e la Freedom, ecco perché sia il tecnico che il commerciante ti hanno offerto uno sconto. + + + Non ti sei schierato con nessuna fazione e hai scelto di agire come stalker libero. Non ti sei fatto alcun nemico, ma nemmeno nessun nuovo amico. + + + Un uomo equilibrato + + + I commercianti ti offrono merci più rare e costose. + + + Anche se sai cosa vuol dire "essere al verde", al momento non navighi in cattive acque. Infatti, ci sono volte, quando la tua ricchezza può essere considerevole, che i commercianti ti vedono come un cliente importante. + + + Un ricco cliente + + + Dopo aver ricevuto gli appunti, Strelok ha trovato un nuovo motivo di vita e ha scelto di perseguire i suoi obiettivi, a qualunque costo. + + + La tua previsione ti è stata utile: dopo aver trovato gli appunti nei ripostigli del gruppo di Strelok, li hai tenuti finché non li hai consegnati al legittimo proprietario. + + + Custode di segreti + + + Sei riuscito a sopravvivere a un'emissione senza metterti al riparo grazie alle pillole anabiotiche. Gli effetti sulla tua psiche non sono chiari, e senti uno strano silenzio nella tua mente. A quanto pare non percepisci più un flusso di pensieri costante. + + + Segnato dalla zona + + + Owl il commerciante ti ha offerto uno sconto perché sei il suo socio e informatore migliore. + + + Quando metti le mani su un'informazione trovi sempre l'acquirente giusto. Ovviamente, quando vendi le informazioni hai sempre a mente il tuo profitto personale. + + + Trafficante d'informazioni + + + Il tuo rapporto con gli stalker è migliorato. Se ti trovi nei guai, gli stalker cercheranno di aiutarti.\nI medici degli stalker hanno accettato di venderti i medicinali a prezzo di costo. + + + Hai sempre aiutato gli stalker in difficoltà. Anche se la loro fazione è molto unita e chiusa, ora hai degli alleati nell'ufficiosa fratellanza degli stalker che ti aiuteranno in combattimento e anche dopo. + + + Amico degli stalker + + + Varie nuove informazioni hanno permesso ai professori Hermann e Ozersky di creare una nuova droga, un anabiotico, nella Zona. + + + A patto che tu disponga di sufficiente salute, puoi riuscire a sopravvivere a un'emissione anche senza utilizzare droghe anti-radiazioni. + + + Considerata la tua utilità, il professor Hermann ti offre dei medicinali e degli equipaggiamenti solitamente riservati al peronale del bunker, a prezzo di costo.\nNovikov si è così abituato alla tua presenza che ti chiede solo il pagamento delle parti utilizzate per le modifiche. + + diff --git a/gamedata/configs/text/ita/st_characters.xml b/gamedata/configs/text/ita/st_characters.xml new file mode 100644 index 0000000..d850308 --- /dev/null +++ b/gamedata/configs/text/ita/st_characters.xml @@ -0,0 +1,336 @@ + + + + Jack + + + Vano + + + Ten Col Shulga + + + Loki + + + Hawaiano + + + Conciaossa + + + Senka + + + Zulu + + + Zio Yar + + + Topol + + + Mace + + + Spirit + + + Snake + + + Vulture + + + Nitro + + + Trapper + + + Flint + + + Generale Tachenko + + + Ten Bunchuk + + + Col Kosmach + + + Ten Zakharchuk + + + Black + + + Duplet + + + Surgeon + + + Skull + + + Stake + + + Koshey + + + Corpse + + + Strider + + + Armatura + + + Sickle + + + Walrus + + + Meeker + + + Foma + + + Professor Ozersky + + + Novikov + + + Professor Hermann + + + Serg Shlyachin + + + Ten Sergeev + + + Serg Valiushok + + + Serg Ostrovsky + + + Capitano Klimenko + + + Ten Sokolov + + + Capitano Tarasov + + + Col Kovalsky + + + Ten Podorozhny + + + Ten Skelya + + + Serg Merkulov + + + Ten Stetsenko + + + Serg Yarmoshuk + + + Ten Rogovets + + + Ten Smirnov + + + Strelok + + + Barchuk + + + Maggiore Degtyarev + + + Dwarf + + + Shishak + + + Grizzly + + + Torba + + + Mitay + + + Ten Gavrilenko + + + Kremen + + + Gaiduk + + + Garry + + + Ten Kirillov + + + Serbin + + + Jackal + + + Nimble + + + Crab + + + Garmata + + + Gonta + + + Sledgehammer + + + Crest + + + Owl + + + Grouse + + + Danila + + + Sultan + + + Morgan + + + Knuckles + + + Spartacus + + + Beard + + + Cardan + + + Goblin + + + Oak + + + Pianist + + + Mower + + + Kirzach + + + Tank + + + Mug + + + Hatchet + + + Tuna + + + Noah + + + Pilot + + + Tremor + + + Ten Drapei + + + Sott. Umerov + + + Snag + + + Hook + + + Ridge + + + Mirone + + + Barge + + + Petruha + + + Awl + + + Maggiore Chepurny + + + Sottuff. Valentir + + + Sergente Morozov + + + Tenente Smolyak + + + Scheggia + + + Sergente Gazda + + + Capitano Furtez + + + Serg. Magg. Shveiko + + diff --git a/gamedata/configs/text/ita/st_dialog_manager.xml b/gamedata/configs/text/ita/st_dialog_manager.xml new file mode 100644 index 0000000..b0b1f74 --- /dev/null +++ b/gamedata/configs/text/ita/st_dialog_manager.xml @@ -0,0 +1,993 @@ + + + + A Zaton c'è un punto in cui le anomalie di calore appaiono sott'acqua. Lo chiamano il "boiler" perché c'è molto vapore che fuoriesce dal terreno. Se pensi che il vapore non possa fare danni, allora ti sbagli. Gli stalker più esperti dicono che questa anomalia di vapore ti colpisce con la stessa potenza di un'anomalia di calore, se non peggio. La temperatura è di poco più bassa, ma ti strina ugualmente. E riguardo ai manufatti, hanno trovato i soliti di fuoco. + + + Dicono che alla cava ci sia un bel posticino con tanti manufatti, seppur ricco di anomalie. Sul fondo ci sono talmente tante bolle generate dalle anomalie gassose che fanno male agli occhi, anche se si indossa una maschera antigas. + + + Cumulo di cenere è il vecchio cimitero nei pressi di Kopachy. Vi si trovano un sacco di anomalie di calore e ogni tanto anche degli zombi. La gente cerca di stare alla larga da quel posto, ma ci vanno quando hanno bisogno di manufatti. + + + Dicono che sono stati rinvenuti dei manufatti anche nel parcheggio. Ci sono ancora dei veicoli risalenti al primo disastro di Chernobyl... quei ferri mandano su di giri il contatore di radiazioni. Inoltre, quel posto è anche pieno di anomalie elettriche. + + + Nel Boschetto putrido, dove gli alberi sono deformati per via dell'acido. La gente che c'è stata dice che è pieno di anomalie gassose. C'è talmente tanto gas nell'aria che è impossibile vedere bene, ma con l'esperienza giusta è comunque possibile trovare i manufatti che si stavano cercando. + + + Se vuoi dei manufatti, cerca quelli di tipo acido. Il posto migliore per procurarseli è il Bagno di cemento. Non avrai molta concorrenza: a nessuno piace quel posto perché è troppo vicino all'edificio Jupiter. + + + Non lontano dallo stabilimento Jupiter c'è un tratto di strada sprofondato. Lo chiamano Bitume perché lì l'asfalto si è sciolto. In quel punto ci sono parecchie anomalie, per esempio anomalie di calore mescolate ad anomalie gravitazionali. E poiché sono due tipi di anomalie diversi, anche i manufatti lo saranno. + + + Dietro lo stabilimento di cemento c'è un piccolo porto chiamato Fen. È diventato una fetida palude e l'acqua è piena di anomalie gassose. Non è nemmeno più definibile acqua, quanto più acido. Lì sono stati ritrovati dei manufatti, ma quel posto brulica anche di mostri. + + + Cerca nel vecchio stabilimento di cemento. Ci sono parecchie anomalie, ma ne vale la pena. Certo, ci sono dei punti dove i manufatti sono più facili da raggiungere, ma c'è anche più concorrenza. Qui l'unico intralcio sono i criceti, e li incontrerai solo se vai sottoterra. + + + Ti conviene cercare vicino alla Pinquercia. È quella cosa che cresce tra le colline, sopra le anomalie gassose. Tutti la chiamano così da quando un secchione ha scoperto che la corteccia di quell'albero è sia di pino che di quercia. Se vuoi cercare dei manufatti in quel posto ti servirà una buona protezione dalle sostanze chimiche. Portati anche parecchie munizioni, perché su quelle colline vivono branchi e branchi di cani. + + + A volte non è necessario infilarsi in un'anomalia per trovare un manufatto. Mi è stato detto che qualcuno ne ha trovato uno in mezzo a un campo. Questo stalker aveva un rilevatore che iniziava a fare le bizze, così ha cambiato le batterie. Fatto questo il rilevatore ha subito individuato qualcosa e lui si è ritrovato un manufatto per le mani. Una bella fortuna, vero? Ecco come va la Zona: a volte ti punisce e altre ti ricompensa. + + + Degli stalker esperti hanno detto che a volte i manufatti si spostano all'esterno delle anomalie. Il tuo rilevatore inizia a emettere dei suoni, tu controlli ma non trovi niente. Significa che un manufatto "nomade" ti è passato accanto, ma non ha senso mettersi a inseguirlo. È la Zona a decidere a chi assegnarlo. + + + Per il momento nessuno ha cercato dei manufatti a Pripyat. Tutti quelli che conosco sono arrivati da poco, quindi per il momento sono prudenti. + + + Non so se qualcuno conosce i punti giusti in cui cercare. Finora Pripyat è stata esplorata poco. + + + Io cercherei nelle gallerie sotterranee. Dicono che sotto la città ce ne sono a centinaia. + + + Non si sa molto di quei posti, a parte le storie di Garry. Lui dice che c'è un posto dove un'enorme vite sbuca da un'anomalia acida, alta dieci piani. Forse ci sta solo prendendo in giro, ma fossi in te cercherei dei manufatti in quella vite. + + + Il posto dove andare a colpo sicuro è la palude acida. È piena di anomalie gravitazionali, ma sono semplici da individuare. Tieni d'occhio la superficie dell'acqua e non ti potrai sbagliare. Le anomalie gassose sono più problematiche, perché non ti tolgono tutta l'aria da respirare. Finirci dentro non è affatto divertente, credimi. Quella roba attraversa le tute più rapidamente dell'acido solforico. + + + Ci sono numerose anomalie di calore alla fattoria bruciata, in cima alla collina. Lì sono stati ritrovati dei manufatti di fuoco. Cerca nelle case: quella che contiene il maggior numero di anomalie dopo un'emissione sarà anche quella dove troverai i manufatti. + + + Probabilmente ce ne sono parecchi nelle caverne sotto la fattoria bruciata. Se sali sulla collina con un rilevatore non smetterà più di emettere segnali. Raggiungerle è facile: infilati dall'apertura in alto. La parte difficile è uscire, con tutte le anomalie che ci sono là sotto. Sono per lo più vortici e acidi. Alcuni dicono di aver visto in quel buco qualcosa che ricorda una cometa. Un bell'insieme di pericoli, in effetti, ma probabilmente ci sarà anche una bella varietà di manufatti. + + + Hai mai visto un'anomalia Circo? È un enorme trampolino con due comete che gli girano intorno: un vero spettacolo. Però bisogna guardarlo da lontano, perché il Circo è incandescente come l'inferno, formato da numerose anomalie di calore. Contiene anche numerosi manufatti, ma sono protetti da un feroce poltergeist di fuoco che cercherà di arrostirti non appena ti avvicinerai. + + + Se ti interessano i manufatti gravitazionali, cercali nell'anomalia Zanna. Non è difficile trovarla: le anomalie hanno mutato il terreno, spaccando mezza collina. Si sono create delle caverne riempitesi immediatamente di snork. Fortunatamente escono di rado. + + + Nella Zona, amico, nella Zona. Non arrenderti mai. + + + Ottima domanda. Fammi sapere quando avrai trovato la risposta! + + + Dove, quando, perché... Ricorda, una volta trovato il tuo posto d'oro, tienitelo per te. + + + Dove posso trovarli? + + + Te l'ho già detto. + + + No, non so nient'altro. + + + È tutto quello che so. Chiedi a qualcun altro. + + + Che si dice, fratello? + + + Salve! + + + Salve, stalker. + + + Salve. + + + Che cosa vuoi? + + + Cosa? + + + Comincia a parlare. + + + Buon pomeriggio, maggiore, signore! + + + Buon pomeriggio! + + + Ti ascolto, maggiore, signore! + + + Sì, ciao. + + + Cosa? + + + Ma guarda chi c'è. + + + Ehi, stalker. Perché tanta fretta? + + + Come va? + + + Salve, amico. + + + Ehi, ciao, amico. + + + Salve. + + + Ehi! + + + Aiutami, amico! + + + Salvami, fratello, sto morendo... + + + Mi serve assistenza medica! + + + Un kit di pronto soccorso... presto! + + + Aiutami, amico... Aah, che male! + + + Dammi un kit di pronto soccorso... presto... + + + Amico... argh... ti prego, aiutami! + + + Ehi, mi serve un kit di pronto soccorso... svelto... + + + Aiutami, stalker... un kit di pronto soccorso, ti prego... + + + Sono ferito... aiutami! + + + Mi serve un kit di pronto soccorso! + + + Un kit di pronto soccorso! + + + Hai sentito della stazione di drenaggio a est della Skadovsk? Dicono che di notte si vede luccicare qualcosa di strano... troppo strano anche per la Zona, pensa. Non so se vale la pena di andare a controllare. Potrei scoprire qualcosa di valore, ma non so se è il caso di rischiare le chiappe... Che dilemma... + + + Da queste parti c'è solo vecchia roba arrugginita. Prendi per esempio quell'autocolonna in rovina sul ponte Preobrazhensky... è coperta di ruggine, proprio come il ponte. Molti vorrebbero ispezionare quell'area, se non fosse per gli snork e le anomalie... + + + Hai sentito che Sultan ha intenzione di rilevare l'attività di Beard? La Skadovsk non è abbastanza grande per soddisfare la sua bramosia di denaro, vuole una fetta ancora più grande della torta... Ma noi gli abbiamo detto "Non se ne parla, José!". Beard e i nostri ragazzi gliel'hanno fatta vedere. L'operazione criminale di Sultan non attecchirà in questo posto. + + + Wow, hai sentito la notizia? Quel verme di Sultan ha stretto la sua morsa intorno a Beard... non so di preciso cosa abbia fatto, ma ha messo Beard alle strette! Cosa sta diventando la Zona? Se andiamo avanti così la Skadovsk si trasformerà in men che non si dica in un covo di banditi! + + + Hai sentito parlare dell'Oasi, fratello? Dicono che è un posto difficilissimo da trovare e, anche quando sai dov'è, è ancora più difficile da raggiungere. Dicono che ci sia un lago. Se ci entri guarirai da ogni male e tutte le ferite scompariranno all'istante! Ah, stare a parlare non serve a niente. Hai visto quanti stalker novellini sono venuti qui, al centro della Zona? Alcuni cercano un tesoro di manufatti, altri sono semplicemente curiosi, ma la maggior parte di loro spera di trovare l'Oasi. Si dice che sia nascosta da qualche parte... + + + Dicono che la Zona stia per morire... Qualcuno ha trovato l'Oasi e si è preso il suo manufatto, il Cuore dell'Oasi. Ora la Zona si sposterà in un'altra dimensione e gli stalker non riusciranno mai più a uscirvi... Sto scherzando, amico. Ma hanno trovato davvero un nuovo manufatto. Gli scienziati ci stanno lavorando nel loro bunker in questo preciso istante. + + + Hai sentito di Topol? Ha trovato un nuovo posto in cui inviare i suoi uomini, i quali sono stati ben felici di ubbidire. La loro scappatella si è conclusa con un controllore che gli ha messo a ferro e fuoco il cervello. Sarebbero tutti in un ospedale se non fosse stato per questo stalker che era con loro. Quando Topol ha ripreso i sensi in seguito al processo di zombificazione, quello stalker era accovacciato accanto al controllore e gli stava tagliando le orecchie. + + + Hai sentito del villaggio di Kopachy? Quando il primo disastro colpì la centrale di Chernobyl, quell'area fu colpita al punto che decisero di seppellire tutto il villaggio. Ora non resta altro che piccoli cumuli radioattivi, al posto delle case. Dicono che prima del disastro era un posto da favola. Tremo a pensare cosa ci si potrebbe trovare oggi. Tutti hanno troppa paura per andare a controllare. Ma se si sbagliano... potrebbe essere una miniera d'oro di manufatti! + + + Sai, a Yanov ci sono solo due stalker che possono percepire l'avvicinarsi di un'emissione. Conciaossa, il nostro medico, e Zulu, un ex membro della Duty. Il prefisso ex è un'aggiunta recente... Quando la Duty è arrivata alla stazione Yanov, i combattenti della Freedom si trovavano già lì. Come è prevedibile, la situazione si è scaldata in fretta. Entrambe le fazioni hanno subito gravi perdite, e persino alcuni stalker liberi sono stati colpiti da dei proiettili vaganti. A quel punto Zulu ha annunciato l'avvicinarsi di un'emissione. Senza altra scelta, la Duty e la Freedom hanno dichiarato una tregua e si sono nascoste nella stazione. Terminata l'emissione, Zulu ha lasciato la Duty e si è stabilito nella torre vicino alla stazione. + + + Si raccontano ogni genere di strambe storie... non ti conviene credere a tutto quello che senti. La gente che racconta storie è dappertutto nella Zona. Ma la cosa strana è che alcuni stalker della stazione Yanov hanno segnalato di aver visto un UFO. Dicono che è come un piatto nero di circa cinque metri di diametro. Altri sostengono che abbia l'aspetto di un aeroplano visto da lontano, quindi dicono che non sia nulla di cui preoccuparsi. Uno dei testimoni, però, è un ex pilota e giura di non aver mai visto nulla del genere in tutta la sua vita. + + + Ultimamente arrivano solo brutte notizie. Gli uomini più in gamba spariscono uno dopo l'altro, poi ritroviamo i loro cadaveri completamente prosciugati dal sangue. Devono essere quei maledetti succhiasangue, e chi se no? Oh, quanto vorrei trovare la loro tana e riempirli di piombo! Presto ci toccherà andare in bagno due alla volta. Tanti saluti alla storia dello stalker solitario. + + + Ho una notizia per te. I tizi della Freedom hanno messo le mani sul PDA del leggendario fondatore della Duty. E sai una cosa? Hanno scoperto che lui aveva ingannato i suoi uomini, raccontando loro che il comando dell'esercito li aveva abbandonati nella Zona. Si è inventato tutto in modo da poter fondare la sua fazione! Ma storie del genere non durano nella Zona. Poco dopo il nostro eroe si è trovato in una bolla di spazio ed è uscito di scena. Così va la vita... e pensare che io avevo seriamente pensato di unirmi alla Duty! Bah, che sputino le loro stupidaggini ipocrite senza di me! + + + Hai presente quella nuova squadra della Duty? Sembra siano apparsi dal nulla. Pensaci: un gruppo di combattenti della Duty parte da Yanov e torna tre volte più numeroso. Ma si clonano o cosa? Immagino che una cosa del genere sia tipica della Duty. L'unico modo di distinguerli gli uni dagli altri è il rango! + + + Hai presente quella nuova squadra della Freedom? Sembra siano apparsi dal nulla. Pensaci: un gruppo di combattenti della Duty parte da Yanov e torna tre volte più numeroso. Io mi sono fatto un'idea: germogliano. Non sei d'accordo? Con tutta l'erba che fumano, tra poco metteranno radici e si riprodurranno come le piante! + + + Conosci Gonta e i suoi ragazzi? Per un po' sembrava che la sfortuna li avesse presi di mira, tra la scomparsa di Danila e Crab fuori gioco. Ma ora si sono rimessi in carreggiata. Eseguono delle misurazioni per conto degli scienziati e sembra che si trovino bene. Non male, no? Un lavoro sicuro e un bel passo avanti verso l'ottenimento del permesso. + + + Hai saputo degli stalker Mitay, Torba e Grizzly? Io ho sentito dire che si erano messi a eseguire delle misurazioni per gli scienziati. Ma che razza di storia è? Se vuoi il mio parere, quelle teste d'uovo sono dei buoni a nulla. Ma almeno ora quei ragazzi si sono messi in riga. Forse un giorno potrebbero persino ottenere il permesso ufficiale. + + + Conosci Spartacus e i suoi uomini? Beh, non li vedrai più alla Skadovsk... ora difendono il bunker degli scienziati. Buon per loro, sanno come occuparsi dei mutanti e sanno tenere a bada i banditi. La scienza è una degna causa che necessita di un po' di pace e tranquillità. + + + Hai visto i mercenari rigirarsi i pollici alla sotto-stazione? No, di sicuro non di recente. Sono andati a Jupiter a difendere il bunker degli scienziati. Prima di loro c'erano altri mercenari, ma ho sentito dire che è successo qualcosa a quel gruppo. Se vuoi il mio parere, non è un brutto giro! Alcuni mercenari scompaiono, altri ne prendono il posto e via dicendo... Ancora un po' e a Zaton ci saremo sbarazzati completamente dei mercenari. + + + Si dice che ora il bunker degli scienziati sia protetto dai valorosi combattenti della Duty... Mi chiedo cos'abbiano da guadagnarci. Credono davvero che quegli "scienziati" li ricompenseranno con una pistola al plasma nuova di zecca con cui andare a caccia di criceti? Ma che proteggano le mie chiappe, va'... + + + Dicono che ora il bunker degli scienziati sia protetto dalla Freedom. Gli scienziati non hanno paura che i loro campioni da studio possano andare in fumo... letteralmente? Però c'è un aspetto positivo di questa faccenda: se qualcuno vorrà attaccare il bunker, prima dovrà superare una cortina di fumo! Ah ah! + + + Sei stato a Jupiter, lo stabilimento di componenti elettronici e radio? Un posto da brividi. Nessuno sa con precisione cosa succeda lì dentro. Ci sono anomalie e mutanti come in tutti gli altri posti... ma non ho il coraggio di andarci. Ho la sensazione che quel posto significhi guai. + + + Ehi, tu non sei quello che ha smascherato il medico della Skadovsk? Te ne sono grato, davvero. Avrei potuto essere il suo prossimo paziente, sai... Pensavamo tutti che fosse colpa dei mostri, ma forse certa gente non è molto diversa da loro. È un mondo fatto di cane mangia cane, non trovi? + + + Dovrei essere io a chiedertelo. Dopo che tu sei entrato in quelle gallerie sotto Jupiter, sono iniziate a circolare voci sul fatto che tu fossi arrivato fino al centro della Zona. Hai sollevato un gran polverone. Almeno una dozzina di persone non vedevano l'ora di seguire i tuoi passi. Nitro li ha convinti a darsi una calmata, dicendo che i cancelli delle gallerie si erano chiusi e lui non avrebbe potuto fare nulla per riaprirli. Certo, alcune teste calde vorrebbero farli saltare, ma sono ancora lì a chiedersi dove potersi procurare la dinamite e come faranno a respirare una volta là sotto. + + + Ehi, hai saputo le ultime novità su Garry, lo stalker che lavorava per gli scienziati? Non è più un "trasgressore". Che tu ci creda o no, ha ottenuto un permesso ufficiale per restare nella Zona! A questo punto penseresti che ha raccolto il suo bottino e se n'è andato a casa, no? Invece quel pazzo bastardo è partito per Pripyat. Tutti pensavano che fosse spacciato, come gli altri, e invece si sbagliavano! È arrivato a destinazione, ma i suoi servizi non interessavano granché agli stalker, quindi si è unito a un gruppo di militari. Adesso è felice insieme ai marine, con il suo bel permesso, ma l'accesso a quell'area è ancora proibito agli stalker normali. + + + Beh... la Freedom e la Duty si sono rimesse a combattere, stavolta per via di un grosso deposito. Dicono che contenesse abbastanza equipaggiamento da armare tre divisioni di fanteria. Non so di chi fosse originariamente quel deposito, ma lo spettacolo è stato notevole. Gli stalker di Yanov si sono messi in agitazione, ma per fortuna sono riusciti a farsi da parte in tempo, altrimenti sarebbe stata una bella mischia. Credo che la Duty abbia avuto la peggio, perché ora l'area è protetta da squadre della Freedom. + + + Beh... la Freedom e la Duty si sono rimesse a combattere, stavolta per via di un grosso deposito. Dicono che contenesse abbastanza equipaggiamento da armare tre divisioni di fanteria. Non so di chi fosse originariamente quel deposito, ma lo spettacolo è stato notevole. Gli stalker di Yanov si sono messi in agitazione, ma per fortuna sono riusciti a farsi da parte in tempo, altrimenti sarebbe stata una bella mischia. Credo che la Freedom abbia avuto la peggio, perché ora l'area è protetta da squadre della Duty. + + + Ultimamente è successo qualcosa. Un gruppo di stalker stava esplorando le gallerie sotto Jupiter ed è incappato in qualcosa, cioè in qualcuno. Le pistole gli sono schizzate via dalle mani, poi gli è piombato addosso di tutto. Non hanno idea di che cosa sia successo veramente, ma hanno perso due uomini. + + + Ho sentito che nelle gallerie a nord di Jupiter hanno trovato disgustose tracce di mutanti. Trapper ha inviato uno stalker per indagare, e hanno scoperto che era una tana di seppellitori. Perché "era", mi chiedi? Perché quello stesso stalker ha spazzato via tutti i seppellitori. Da solo... Tu corrisponderesti anche alla sua descrizione, se non fosse che lui è un po' più alto e porta sempre un lanciagranate con sé. + + + Gli stalker sono finiti... stanno arrivando dei mostri da Fen. Gli stalker allo stabilimento di cemento li hanno visti trascinare via uno dei nostri ragazzi. Erano almeno una dozzina, talmente enormi da non riuscire neanche a immaginarli. Sembravano dei succhiasangue, solo che erano grossi il doppio e molto più veloci. Preghiamo che Trapper riesca a capire come eliminare quelle bestie... + + + Hai sentito dei succhiasangue della palude? Quelli a Fen? Beh, non ci sono più. Ci ha pensato Trapper... non personalmente, però, ha assunto degli stalker. Dicono che abbia radunato una squadra di circa dieci uomini e abbia passato più e più volte al pettine la palude: ogni volta che trovavano uno di quei bastardi lo rimandavano al creatore. Non è sopravvissuta nemmeno una rana. + + + Poco dopo il diffondersi di voci riguardo una chimera qualcuno l'ha tolta di mezzo. I mutanti uccidevano stalker a dozzine, ma direi che stiamo invertendo la tendenza. Da altre fonti ho saputo che quel tipo era un esperto cacciatore, che nella sua vita ha ammazzato più mostri di quanto io e te abbiamo ucciso delle mosche. + + + Hai sentito che gente recluta oggigiorno la Freedom? C'era questo Flint che millantava a destra e a manca i suoi successi e i suoi trofei... beh, si è scoperto che è un vero bastardo. Ha lasciato il suo compagno a morire in un'anomalia, ha preso il suo bottino e se l'è data a gambe. In seguito hanno scoperto che a Zaton aveva praticamente dato un gruppo di cacciatori in pasto a una chimera. Avevo una considerazione più alta della Freedom... dannazione, preferirei essere senza una fazione che avere amici del genere. + + + Il gruppo di Gonta e uno stalker sconosciuto hanno eliminato la Chimera di Zaton. Aspetta, quello stalker eri tu, vero? Non è che potresti fornirmi un racconto dettagliato? A proposito, grazie mille... ora avremo un mutante divoratore di uomini in meno di cui preoccuparci! + + + Non so se la cosa ti interessi, ma qui abbiamo un certo Noah, un pazzo ubriacone. Possiede una brutta, vecchia chiatta, sulla quale pare esegua dei traffici illegali. Guardati da lui, è uno che prima spara poi non si prende neanche la briga di chiederti chi sei. Che vada al diavolo. + + + Conosci questo Nimble? Sì, è proprio un verme. Di sicuro però vende le armi migliori in circolazione. Chissà come fa a contrabbandarle. Cioè, come si fa a trasportare un Vintar senza farsi notare? Dove te lo infili? Roba da maghi, credimi. + + + Si dice che Sultan sia nei guai fino al collo. Voleva rilevare l'attività di Beard e toglierlo di mezzo, ma ha fatto il passo più lungo della gamba. Ed è inciampato. Gli aspetta un periodo difficile, ora che tutti i suoi uomini lo guardano di sbieco e che non ha più l'influenza di una volta. + + + Si dice che Sultan tenga in pugno Beard, spremendolo fino all'ultima goccia. È una buona notizia, e Sultan ha una certa importanza adesso, ma la cosa migliore è che finalmente possiamo gestire la Skadovsk in libertà. Sarà bellissimo. Cerchi riparo da un'emissione? Nessun problema, ma prima sgancia il dazio! + + + Ehi, amico, hai sentito parlare dell'Oasi? Immagina, un posto che guarisce all'istante ogni ferita e malattia. Deve esserci un qualche trucco o magia... Però io mi sono fatto un'idea diversa. Si fa un gran parlare dell'Oasi, ma nessuno è più interessato all'Esauditore di desideri come una volta. E se l'Oasi fosse il desiderio di qualcuno diventato realtà? + + + Tra le teste d'uovo si parla di un manufatto arrivato fin qui dall'Oasi. Ma senti questa: dopo che lo avranno studiato useranno i risultati delle ricerche per trovare una cura per il cancro! Mica male! + + + Stessa storia di tutti i giorni... La gente non fa che tirare fuori vecchie storie sul centro della Zona. Come quella sull'Oasi, un posto che ti guarisce all'istante tutte le ferite e ti ripristina l'energia. Sono pure e semplici stronzate, anche se starle ad ascoltare è divertente. Soprattutto quando parlano della sua posizione. Oh, quanto vorrei che esistesse davvero un posto del genere... avremmo salvato tanti dei nostri ragazzi. + + + Voci di corridoio dicono che qualcuno abbia trovato l'Oasi. Non pensavo esistesse davvero, ma davanti ai fatti non si discute. Si dice che abbiano trovato anche un manufatto sul posto. Gli scienziati lo stanno studiando proprio adesso. Forse possono usarlo per costruire un congegno che faccia guarire alla velocità della luce... Ai nostri ragazzi farebbe sicuramente comodo. + + + Kopachy. Niente di nuovo per la Zona, ma nuovo per me. Immagina: un intero villaggio completamente sepolto. La storia risale al 1986: le case emettevano un livello di radiazioni talmente alto che dovettero seppellire le case fino ai tetti. Che spettacolo da brividi... + + + Sai come abbiamo fatto noi e quelli della Duty a finire di stanza insieme a Yanov? È stato merito di Zulu. Al tempo lavorava per la Duty, ed era uno specialista nel percepire l'avvicinarsi di un'emissione... Noi però arrivammo per primi a Yanov, seppur dopo gli stalker. Non abbiamo avuto nemmeno il tempo di accenderci una sigaretta che sono arrivati quei militari, agitando le loro armi contro di noi. L'ultima volta che ho visto un simile massacro è stato alla Discarica più di un anno fa. Decine e decine di morti per entrambe le fazioni, tra cui il nostro specialista di emissioni, possa riposare in pace. Poi Zulu dice, "Arriva un'emissione! Tutti al riparo!", e noi cosa avremmo dovuto fare, buttarli fuori e lasciarli a morire? Della Duty o no, sono pur sempre esseri umani. E ora viviamo così: quando è tutto tranquillo battibecchiamo, ma quando arriva un'emissione lottiamo fianco a fianco. Zulu ha lasciato la Duty e ora vive come un'eremita nei pressi di Yanov. + + + Non è una novità e nemmeno un segreto, ma Cardan il tecnico finirà per ammazzarsi di alcol. Quando è arrivato alla Skadovsk beveva solo nelle occasioni speciali o per liberarsi dalle radiazioni. Solo in seguito ha iniziato a darci dentro, quando la morte dei suoi due amici lo ha sconvolto. Erano molto uniti, scommetto... + + + Ho una storia buffa da raccontarti. C'è un tipo che racconta di aver visto un UFO sopra a Yanov. La Zona può davvero far impazzire la gente, eh? I poltergeist e i controllori non gli bastano, macché, proprio non riescono a fare a meno delle vecchie storie di UFO. Almeno non ci sono ancora dei pazzi che fanno degli esorcismi sulla vodka. Immagina sentirli dire: "Oh, Signore! Allontana gli spiriti malvagi! Trattieni gli spiriti alcolici!". Ah ah! + + + Hai sentito del villaggio di Kopachy? Quando il primo disastro colpì la centrale di Chernobyl, quell'area fu colpita al punto che decisero di seppellire tutto il villaggio. Ora non resta altro che piccoli cumuli radioattivi, al posto delle case. Dicono che prima del disastro era un posto da favola. Tremo a pensare cosa ci si potrebbe trovare oggi. Tutti hanno troppa paura per andare a controllare. + + + Questa storia non è nuova, ma forse tu non l'hai mai sentita. Non abbiamo unito le forze con la Freedom perché ci piace coccolarci. Lo dobbiamo alle circostanze. Quando siamo arrivati qui la Freedom ci ha attaccati... Ci sono state ingenti perdite per entrambi gli schieramenti, anche se noi stavamo conquistando un piccolo vantaggio su quegli anarchici... Proprio mentre la battaglia era al suo apice, Zulu ha percepito l'approssimarsi di un'emissione. Lui non si sbaglia mai, sai... Fummo quindi costretti a sospendere il combattimento. Non capisco però perché, dopo quella volta, Zulu ha lasciato la Duty... + + + Ultimamente i nostri esploratori hanno avvistato un oggetto non identificato volare sopra la stazione Yanov. Un UFO, in altre parole. Prima che tu faccia domande stupide, un UFO non è solo un disco volante con dentro dei marziani. Potrebbe essere un oggetto volante qualunque, da un pezzo di cartone al frammento di una meteora, purché i testimoni non siano riusciti a identificarlo. Capito? + + + Sei stato tu a portare quel PDA a Loki, vero? Cacchio, è il massimo. Il leggendario fondatore della Duty, il Generale Tachenko, ha fregato i suoi stessi soldati. Ha rotto la radio in modo che non potessero essere raggiunti dall'esterno e ha formato il suo seguito di idioti... Solo per fare la fine di un vero idiota in una bolla di spazio! Roba del genere è davvero incredibile, amico! + + + Hai visto la nuova squadra schierata da quelle mezze seghe di soldati? Non possono essere rinforzi provenienti dalla loro base... l'ideologia non ha ancora sostituito il buonsenso. Sono troppo addestrati per essere semplici stalker. Bah, chi lo sa. Forse sono della Monolith? Lo so, sembra incredibile! + + + Hai visto i nostri nuovi combattenti? Oh, sei stato tu a portarli qui, vero? Sei un grande. Sono tipi a posto, anche se un po' nervosi... Ma va bene così, qualche mese in nostra compagnia e si rilasseranno. Inizieranno ad adeguarsi al nostro stile di vita e presto diventeranno come noi. + + + Abbiamo delle nuove reclute niente male: una squadra di ex combattenti della Monolith. E non sono dei novellini, ma combattenti esperti. Certo, dopo aver lasciato la Monolith non sono del tutto a posto, ma non c'è problema. In mezzo a noi si adatteranno in un batter d'occhio. + + + Dicono che la Freedom ha reclutato degli ex combattenti Monolith. Fatico a crederci, ma in effetti hanno una nuova squadra, che di sicuro non proviene dall'esterno della Zona. Immagino siano piuttosto disperati... oppure tutte quelle droghe gli hanno spappolato definitivamente il cervello. Adesso chi recluteranno, un gruppo di zombi? Un battaglione di seppellitori? + + + Presto in quest'area torneranno a esserci legge e ordine. La Duty ha assunto il controllo delle posizioni chiave. Ci siamo assicurati un punto fermo a Yanov e l'incarico di proteggere costantemente il bunker degli scienziati. È ora che la Freedom faccia i bagagli e levi le tende... qui gli anarchici non sono più i benvenuti. + + + Ecco la nuova meraviglia del mondo: un Cardan sobrio. Riesci a credere che sia sul vagone? Quelli alla Skadovsk gli hanno chiesto se ha messo le mani sul numero di un centro per alcolisti anonimi, e lui ha risposto, "L'unico numero che mi serviva era il sessantadue". + + + Sei stato tu ad aiutare i nostri ragazzi a procurarsi il lavoro presso gli scienziati, vero? Te ne sono grato. È stato bello vedere i nostri uomini, anziché quei dannati mercenari, al loro bunker. Bella storia! + + + Vediamo... possiamo attingere a un deposito segreto della Duty. Ora useremo quel deposito per il suo scopo originale: vi terremo prigionieri quegli schifosi della Duty e li costringeremo a rivelare tutti i loro segreti. Eh eh. Ah, grazie per il suggerimento sul sistema di allarme... senza rinforzi non avremmo avuto una sola possibilità. + + + Un'altra vittoria per la Duty! Quegli anarchici hanno davvero esagerato... si sono intrufolati nel nostro magazzino segreto convinti di poterla passare liscia. Col cavolo! Li abbiamo colti di sorpresa e gli abbiamo fatto saltare la testa come fossero criceti rabbiosi. + + + Non è una novità il fatto che la Freedom sia composta da pura feccia, ma abbiamo scoperto qualcosa di nuovo riguardo uno dei loro svitati più noti. Si faceva chiamare Flint nella Freedom, ma prima di unirsi a loro usava il nome Magpie ed era uno stalker. Almeno, Magpie era il suo nome quando arrivò a Zaton e per poco non portò un gruppo di cacciatori dritto nelle fauci dei mutanti. Li fregò e per poco una chimera non li sbranò, e intanto quel bastardo si prese la loro attrezzatura e venne a Yanov. Dopo essersi unito alla Freedom, gettò il suo compagno in un'anomalia per rubargli il suo manufatto. Ecco che cosa riserva la Freedom. + + + Un nuovo progetto di costruzione navale, condotto da Noah. Ecco l'ultima attrazione di Zaton: uno stalker di nome Noah. Con esperienza, motivato e del tutto pazzo. La sua ultima e folle idea era quella di salvare tutti gli stalker dall'Apocalisse. Per riuscirci, sta trasformando una vecchia chiatta in una "arca". Un vero svitato. Se decidi di passare a trovarlo, stai attento a non infastidirlo. Se non lo farai non ti farà alcun male. + + + Hai già incontrato Nimble? Adesso è sulla Skadovsk. È un vero professionista nel suo campo. Può procurarti tutto quello che ti serve. Beh, quasi tutto. Ultimamente si occupa per lo più di armi e tute, ma la sua merce è sempre di ottima qualità! Oggetti speciali, progetti sperimentali, articoli realizzati a mano... Non ha certo prezzi convenienti, ma perché dovrebbe averli? L'esclusività ha un suo prezzo! + + + Sapevi che Pilot sta usando un nuovo percorso per spostarsi tra Zaton e Jupiter? Una volta era una strada molto lunga: bisognava salire le colline, evitare le anomalie e via dicendo. Ora invece è come una passeggiata nel parco, oltre al fatto che è molto più corta. Ma Pilot non è uno da prendersi meriti che non gli spettano: non è stato lui a scoprire quella strada. È stato uno stalker a mostrargli le mappe. Si è fatto pagare, certo, ma non un occhio della testa. + + + Non molto, a essere sincero. + + + Ovunque si guardi, nella Zona c'è sempre qualcosa di nuovo. + + + Beh, adesso sei qui. Questa è già di per sé una novità, direi. + + + Che si dice di nuovo nella Zona? + + + Non so altro che potrebbe interessarti. + + + Te lo direi con piacere, ma non so altro. + + + Ti ho detto tutto quello che so. + + + Mmm... forse ti conviene chiedere a Grouse sulla Skadovsk. Cerca qualcuno che lo aiuti a scoprire come mai gli stalker stiano tutti sparendo senza lasciare traccia. Tutti danno la colpa ai succhiasangue, perché i cadaveri vengono ritrovati completamente prosciugati. Ma qui si esagera... praticamente scompare qualcuno tutti i giorni. E generalmente i succhiasangue non agiscono in questo modo... Grouse ha assunto anche un cacciatore esperto che individui questi succhiasangue. + + + Sai, quando a uno stalker servono dei soldi ha due modi per procurarseli: trovare dei manufatti e portarli ai mercanti per 30 copechi per ogni rublo del loro valore o lavorare per gli scienziati. Quelle teste d'uovo si inventano sempre qualcosa da farti fare, che sia la consegna di un manufatto raro o di una carcassa mutante. Ma, soprattutto, se entri nelle loro simpatie, possono emetterti un permesso di soggiorno permanente nella Zona, del tutto ufficiale e legittimo! Immaginati a superare un blocco militare, con lo zaino pieno di tesori, e ricevere in cambio il saluto militare! Che meraviglia! Comunque, il bunker degli scienziati è a ovest della stazione Yanov. C'è già un altro stalker che lavora per loro, magari assumeranno anche uno come te. + + + Il tuo successo dipende da quello che fai. Se non disdegni dare la caccia ai mutanti, riceverai una valanga di offerte. Fai un salto nel seminterrato della stazione Yanov e chiedi di Trapper: lui paga bene chi uccide i mutanti, ma non sparare al primo psicocane che vedi solo per ricevere una ricompensa. Trapper chiede di uccidere mostri specifici che interferiscono con la raccolta dei manufatti o che bazzicano nei posti usati dagli stalker come nascondiglio dalle emissioni. + + + La gente come te che arriva alla Skadovsk deve andare da Beard. Lui paga bene i manufatti che gli vengono consegnati, ma ti dirò una cosa: ha un pessimo senso degli affari. Non ha voluto dividere i suoi profitti con gente di una certa importanza... e questo gli si ritorcerà presto contro. Intesi? + + + Se ti servono dei contanti, vai da Owl. Lui vende tutto quello che serve a un vero uomo alla Skadovsk: informazioni, armi, di tutto. Se hai roba che scotta o di valore, come dei documenti o il PDA di uno stalker, portalo a Owl e lui ti pagherà. Puoi anche racimolare un po' di grana svolgendo dei lavori per lui. Chiedigli se ha bisogno di qualcosa. + + + Ti conviene chiedere a Gonta. Lui e i suoi uomini hanno una bella storia da raccontare. Una chimera arrivò a Zaton non molto tempo fa, così Gonta e il suo gruppo andarono a cercarla. Si divisero in due squadre per individuarla e inviarono uno dei cacciatori in cerca della tana di succhiasangue. Quando finalmente trovarono la chimera erano un po' a corto di uomini, così presero con loro un altro stalker, Magpie. Non so bene come andò la faccenda, ma si dice che Magpie se la diede a gambe non appena vide la chimera. Gonta si salvò per miracolo, e uno dei suoi uomini fu gravemente ferito. Ma la chimera è ancora in libertà, e loro sono in cerca di persone che gli diano una mano. + + + Semplice: se vuoi fare soldi, Sultan è l'uomo che fa per te. È il capo da queste parti, quindi se entrerai nelle sue simpatie ti troverà senz'altro un lavoro. + + + Se sei un bravo stalker, cioè se sei bravo a recuperare i manufatti, parla con Beard. Qui è molto rispettato. È l'unico sulla Skadovsk che ti pagherà bene i manufatti che gli porti. Ha anche le conoscenze giuste per trasportarli fuori dalla Zona. E poi è un brav'uomo... sa sempre darti il consiglio giusto o trovarti un lavoro adatto alle tue esigenze. + + + Alla Skadovsk c'è un mercante di nome Owl. Non è esattamente una persona gradevole. Si lamenta sempre del fatto che tutti i manufatti finiscono a Beard e mai a lui, ma se ti servono dei soldi puoi chiedergli cos'ha da offrirti. Quel furbastro non traffica solo le munizioni. Lui ti può dire cose, vendere cose, comprare le tue cose e pagarti bene per quello che gli interessa sapere. Vallo a trovare, è sul secondo ponte di poppa. Sono sicuro che troverete modo di collaborare. + + + Puoi chiedere a Vano, bazzica dalle parti del bar di Yanov. Si è inguaiato con i banditi, e sono già tre volte che cerca di ripagare il suo debito. Ha parecchia esperienza e può individuare un'anomalia a occhi chiusi... eppure riesce sempre a ficcarsi nei guai. C'è stato chi gli ha suggerito di filare via. La Zona è troppo grande perché la mala riesca a trovarlo, ma lui è troppo orgoglioso per darsi alla macchia, e non sono in molti disposti ad aiutarlo a risolvere i suoi problemi con i banditi... + + + Dimenticati i lavori, amico... I banditi sono ormai fuori controllo: hanno catturato Mitay e chiedono un riscatto. Mitay è uno dei primi stalker a essere arrivati qui a Yanov, e ha costruito questo posto perché la gente avesse un posto dove rifugiarsi durante le emissioni. Ora che ha bisogno di aiuto, però, tutti gli voltano le spalle. Chiedere alla Freedom o alla Duty sarebbe inutile, quelli sono troppo impegnati ad azzannarsi tra loro... Ma gli altri dovrebbero fare qualcosa! Ah, che senso ha stare qui a parlare... Nemmeno gli uomini di Mitay riescono a escogitare un modo per liberarlo. Se vuoi renderti utile parla con Grizzly, lo troverai al bar della stazione. + + + A Nitro, il tecnico di Yanov, servono dei materiali da lavoro. Nel caso non lo sapessi, ci sa fare sia con le armi che con i congegni elettronici. Ma a volte la sola abilità non basta: gli occorrono i materiali giusti, quindi ha iniziato a chiedere in giro. Il problema è che tutti i posti sicuri sono già stati ripuliti, e gli altri sono troppo pericolosi per la maggior parte della gente. Nitro spera che qualcuno sia disposto a correre questi rischi, e sono certo che pagherà bene un simile disturbo. + + + Ho sentito che Zio Yar alla stazione Yanov stava cercando uno stalker che gli dia una mano per un lavoro. Non so perché non chieda aiuto ai suoi amici della Freedom... Comunque, è un bravo vecchio, quindi forse ti conviene parlargli e vedere se riuscite a trovare un accordo. + + + Mmm... non conosco nessuno del genere. + + + Non sei l'unico che vorrebbe saperlo. + + + E perché dovrei saperlo? + + + Sai se qualcuno ha un lavoro per me? + + + Me l'hai già chiesto. + + + Non ho niente di nuovo da dirti. + + + Ti ho già risposto. + + + OK, lascia perdere. + + + Vorrei chiederti una cosa. + + + Chiedi pure. + + + Sputa il rospo. + + + Spara. + + + Ti ascolto. + + + Aiuto! + + + Prendi questo kit di pronto soccorso. + + + Mi dispiace, non ho nulla. + + + Capisco. + + + Cosa hai in mente? + + + Posso venire con te? + + + Certo. Più siamo meglio è. + + + No, spiacente. Io viaggio da solo. + + + Allora muoviamoci. + + + Devo andare in un posto. Se ti pago saresti disposto a portarmici? + + + Nessun problema. Dove devi andare? Scegli. + + + D'accordo. Andiamo. + + + Ho cambiato idea. + + + No, ho altre cose urgenti di cui occuparmi. + + + Me la sto prendendo comoda. + + + Niente di particolare, me la sto solo spassando un po'. + + + Secondo te cosa sto facendo? Niente di niente. + + + Rintraccio mutanti. + + + Sto pedinando un paio di stronzi. Dannati ritardati... + + + Sto seguendo alcuni mercenari. Quelli sì che sono veri bastardi. + + + Sono alle calcagna di un gruppo di fanatici. Combattenti Monolith, ecco chi... + + + Sono a caccia di zombi. Quei poveri diavoli sono davvero troppi... + + + OK. Ti costerà + + + Sai, ho cambiato idea. + + + Non ho tutti quei contanti. + + + Oh, niente, direi. + + + Sto seguendo dei mutanti. Qualcuno deve pur insegnar loro a stare al posto. + + + Sto dando la caccia ad alcuni criminali del posto. + + + Sono a caccia di scalpi mercenari. Hanno un debito che deve essere saldato. + + + Do la caccia a quei maledetti Monolith. + + + Sto cercando di rintracciare alcuni dei miei debitori. + + + Al momento non sto facendo nulla. + + + Do la caccia ai mutanti, nel tentativo di ripulire quest'area dal loro sudiciume. + + + Sono in missione, devo individuare una squadra di banditi. + + + Il mio bersaglio sono i mercenari. Sto seguendo le tracce della loro squadra. + + + Sto dando la caccia a una squadra di Monolith. + + + Do la caccia a quegli stupidi stronzi. Quelli della Freedom, ecco chi... + + + Sono a caccia di manufatti. + + + Non vado mica a funghi... Diciamo piuttosto a manufatti. + + + Cerco manufatti. + + + Sono diretto verso l'anomalia Boiler, quella accanto a un boschetto. + + + Mi sto per dirigere al lago settentrionale... trascorrerò un po' di tempo sulla penisola. + + + Mi dirigerò oltre il lago settentrionale. Lì c'è un buon punto dove mettere le tende. + + + Mi dirigerò ai boschi oltre il lago settentrionale. + + + Sono diretto a una piccola foresta a ovest della segheria. + + + Sono diretto alla collina a ovest della palude. Lì non potrò essere raggiunto dall'inquinamento della palude. + + + Sono diretto al complesso dell'antenna. A ovest c'è un bel posticino. + + + Sono diretto ai boschi a ovest della Pinquercia... vieni con me, se vuoi. Un po' di compagnia mi farebbe piacere. + + + A un boschetto tra la Foresta d'acciaio e le officine. + + + Verso il grande ponte... Si dice che a est si trovi un punto tranquillo e sicuro. + + + A un parcheggio a sud della vecchia chiatta. + + + Niente di speciale, sono un viaggiatore. Mi accamperò su una collina a est della Skadovsk. + + + A un boschetto tra Izumrudnoye e la stazione di rifornimento. + + + A un incrocio sulla strada nei pressi dell'impianto dei rifiuti. + + + All'anomalia Boiler. + + + Alla stazione dei ranger. C'è un complesso di edifici lì, probabilmente lo avrai anche visto. In uno ci sono persino delle fornaci... chissà cosa combinano laggiù. + + + A un boschetto a ovest della fattoria bruciata. + + + A un boschetto a est dell'anomalia Boiler. + + + A una collinetta poco dopo il lago settentrionale. + + + A un piccolo boschetto a sud della fattoria bruciata. + + + Sono diretto a ovest della Skadovsk... dove spuntano le tubature. + + + Sono diretto a un punto a metà strada tra la Skadovsk e la stazione di drenaggio. + + + A un lago paludoso nei pressi della vecchia chiatta. + + + A una baia nei pressi dell'anomalia Cicatrice. + + + Alla stazione di rifornimento. + + + Alle gole della Pinquercia. + + + Voglio cercare dei manufatti nell'anomalia Artiglio. + + + Sono diretto a una collina a ovest dell'anomalia Boiler. + + + All'anomalia Foresta d'acciaio. + + + Sono diretto all'anomalia Foresta d'acciaio per cercare manufatti. + + + Sono diretto alla palude. Certo, non sarà facile respirare con tutto quel gas, ma i manufatti sono un buon incentivo. + + + Sono diretto alle officine della sotto-stazione. Dicono che sia un buon posto dove nascondersi dalle emissioni, quindi andrò a fare un tentativo. + + + Hai presente la segheria qui vicino? Ecco, è lì che sono diretto. Voglio controllare se c'è qualcosa di valore. + + + Voglio passare un po' di tempo all'albergo Izumrudnoye. Oh, non è niente male... per la carne e i cinghiali! Ah ah! Comunque, sono sicuro che per un po' potrò accamparmici. + + + A un ponte. Credo che sulla mappa sia indicato come Preobrazhensky. + + + Alla stazione di drenaggio. Scommetto che in quell'area c'è ancora qualcosa di valore da trovare. + + + Alla vecchia chiatta. + + + Voglio passare dalla fattoria bruciata, nel caso sia spuntato qualche nuovo manufatto. + + + All'altopiano meridionale. + + + Al crepaccio accanto alla stazione di rifornimento. + + + Sono diretto al complesso dell'antenna Krug. Mi serve un posto sicuro dove nascondermi dalle emissioni. Purtroppo si dice che lì ci siano parecchi mostri. + + + Sono diretto al complesso dell'antenna Krug. Mi serve un posto sicuro dove nascondermi dalle emissioni. Purtroppo si dice che lì ci siano parecchi mostri. + + + Vado a cercare manufatti dalle parti della Pinquercia. Spero che i mutanti se ne staranno buoni. + + + Al pozzo nero... Sai, l'impianto dei rifiuti. Per nascondersi dalle emissioni un posto vale l'altro. + + + Sono diretto al molo delle navi sul lago settentrionale. Una volta lì improvviserò. + + + Sono diretto al porto, dove si trovano le gru. Non è un brutto posto per accamparsi. + + + Voglio cercare manufatti nell'anomalia Boiler. Spero che la mia tuta resista a questo giretto in mezzo alle sorgenti termali. + + + All'anomalia Cicatrice. + + + Voglio vedere se la mia attrezzatura è ignifuga e cercare manufatti... tutto questo nell'anomalia Circo. + + + Alla stazione dei ranger. + + + Mi accamperò a Shevchenko. Lì sarò al sicuro dalle emissioni, e per i mutanti non sarà facile attaccarmi. + + + Mi accamperò a Shevchenko. Lì sarò al sicuro dalle emissioni, e per i mutanti non sarà facile attaccarmi. + + + Sono diretto al porto, dove si trovano le gru. Non è un brutto posto per accamparsi. + + + Voglio scaricare il mio bottino e bermi un paio di drink. La Skadovsk è il posto che fa al caso mio. + + + Sono diretto al checkpoint dell'esercito, accanto allo stabilimento Jupiter. + + + Al magazzino dei contenitori. + + + Sono diretto a un'area niente affatto appariscente tra il magazzino dei contenitori e il tunnel meridionale. + + + Alla stazione Yanov. Finalmente un po' di tempo per riposarmi. + + + Al tunnel a nord di Kopachy. + + + Sono diretto a un posto davvero spaventoso, il villaggio di Kopachy... o quello che ne resta. Sì, ho fatto scorta di munizioni e antiradiazioni... Ne avrò bisogno! + + + Alla fabbrica di cemento. Un buon punto di osservazione e lassù nessuno potrà attaccarmi alle spalle. + + + Alla fabbrica di cemento. Voglio controllare cosa c'è nel seminterrato. + + + Alla sotto-stazione dalle parti di Yanov. + + + Sono diretto a un punto nei pressi del tunnel ferroviario a sud. + + + Sono diretto a uno stagno di raffreddamento nei pressi dello stabilimento Jupiter. + + + Sono diretto al complesso Volkhov AA, dove darò la caccia agli zombi. + + + Al bunker. Sai, quello al complesso Volkhov AA. + + + Al boschetto anomalo nei pressi della cava. Magari troverò un paio di manufatti. + + + Sono diretto alla cava, dove ci sono i furgoni degli operai. + + + C'è un punto tra la cava e la stazione Yanov dove andrò a riposare per un po'. + + + Sono diretto al tunnel orientale, quello che passa sotto lo stabilimento Jupiter. + + + All'anomalia Bitume. Voglio vedere se la mia tuta è davvero ignifuga. + + + Sono diretto all'anomalia Plavni per cercare dei manufatti. Ho antidoti a sufficienza, ma sono i mostri che mi preoccupano. + + + Al complesso di ventilazione, tra la fabbrica e il magazzino dei contenitori. Perché? Ah, magari lo sapessi. + + + Sono diretto alle officine di Jupiter. Forse scoprirò perché quel posto ha una pessima reputazione. + + + Sono diretto al fondo della cava. Gli stalker dicono che da quelle parti si trovano un sacco di manufatti. + + + Al parcheggio, dove si trovano i vecchi veicoli. Andrò a caccia di manufatti nelle anomalie elettriche. + + + C'è un bel posticino tra il complesso Volkhov AA e il magazzino dei contenitori. È lì che sono diretto. + + + Al bunker degli scienziati. + + + Alla torre di raffreddamento a nordovest della stazione Yanov. + + + Verso lo stabilimento Jupiter, ma non ho nessuna intenzione di entrare. Farò un giro per gli edifici dell'amministrazione e cercherò di capire cosa posso fare. + + + Sono diretto all'anomalia Cumulo di cenere, oltre Kopachy. + + + Sono diretto alle officine di Jupiter. Dicono che in quell'area sia precipitato un elicottero, quindi andrò a controllare. + + + Sono diretto al treno in rovina tra il complesso Volkhov AA e il parcheggio. + + + Sono diretto al tunnel meridionale, per non correre rischi in caso di emissione. + + + Sono diretto a un punto tra Yanov e Kopachy. + + + Sono diretto a un punto nei pressi del canale, a sud della fabbrica di cemento. + + + Sono diretto a un punto nei pressi del canale, a nord dello stabilimento Jupiter. + + + Andrò a controllare la cava. + + + Andrò a controllare la cava. + + + Andrò a controllare l'area a nord di Yanov. + + + Verso il complesso Volkhov AA. C'è un buon punto dove accamparsi, tra il complesso e Kopachy. + + + Oh, sono semplicemente in viaggio... Sono diretto al magazzino dei contenitori. + + + Sto controllando l'area. Al momento sto andando a controllare cosa reste del checkpoint dell'esercito. + + + Alla piattaforma di atterraggio degli elicotteri, quella tra la fabbrica e il magazzino dei contenitori. + + + Sono diretto a un punto a sud della stazione Yanov, accanto alla ferrovia. + + + A un punto a nord della stazione Yanov. + + + Al boschetto anomalo. + + + A un punto a sud del complesso AA. + + + Allo stagno di raffreddamento accanto all'anomalia Bagno di cemento. + + + Vado a controllare l'area intorno allo stabilimento. + + + Vado a controllare l'area intorno allo stabilimento. + + + Al cortile dietro la lavanderia. + + + Alla lavanderia, il posto più sicuro da queste parti. + + + All'ospedale. Spero di non incappare in quei pazzi Monolith... + + + Alla libreria... Ho sentito dire che è un buon riparo dalle emissioni. + + + Vado a vedere l'attrazione locale... il simbolo dell'Amicizia tra tutte le genti. Non è lontano dalla libreria. + + + Alla vecchia macelleria. Non troverai certo del pane fresco di questi tempi, ma almeno è un buon posto per nascondersi dalle emissioni. + + + Al negozio di Berezka. + + + Al vecchio asilo. + + + Alla piazza del cinema, nei pressi del monumento di Prometheus. + + + Sono diretto alla scuola. Dicono che sia piena di mostri, ma potrebbe essere un buon riparo da un'emissione. + + + Sono diretto al vecchio centro di servizio. Dovrebbe esserci un'anomalia al primo piano, e forse anche qualche manufatto. + + + Sto esplorando questa parte della città. Al momento sono diretto alla vecchia macelleria. + + + Sto esplorando questa parte della città. Al momento sono diretto alla vecchia macelleria. + + + Sto dando un'occhiata in giro. Voglio controllare quell'edificio dietro il complesso di appartamenti. + + + Voglio ispezionare il centro d'intrattenimento pubblico. Credo si chiamasse Yubileiny. + + + Sto ispezionando quest'area alla ricerca di anomalie. Credo ce ne sia una di fuoco in un cortile, a ovest dell'asilo. + + + Oh, faccio solo un giro per la città. Al momento sono diretto al complesso di appartamenti. + + + Oh, faccio solo un giro per la città. Al momento sono diretto al complesso di appartamenti. + + + Oh, faccio solo un giro per la città. Al momento sono diretto al complesso di appartamenti. + + + Faccio solo un giro. Adesso sono diretto al porto del fiume. Spero di non incappare in qualche fanatico Monolith... + + + Sto cercando un posto a Pripyat con molti manufatti e senza mostri né combattenti Monolith... Eh eh. Andrò a controllare quest'anomalia di cui ho sentito parlare, a sud del porto del fiume. + + + Verso il cinema Prometheus + + + Alla piazza del cinema, nei pressi del monumento di Prometheus. + + + Voglio riposare un po' e riprendere fiato. C'è un bel posticino in un cortile a nord dell'asilo che farebbe proprio al caso mio. + + + A sud del complesso di appartamenti. + + + Sono diretto in questo posto tra l'asilo e il complesso di appartamenti. + + + C'è questo posto chiamato Cicatrice, dove il terreno sembra colpito da una scure. Lì sono stati ritrovati dei manufatti, ma una volta che ci entri comincia a succedere qualcosa di strano. Il tuo cervello subisce una botta tale che quasi ti dimentichi di respirare, quando invece dovresti dartela a gambe. + + + Sai dove si trova la stazione di drenaggio? È stata sottoposta a parecchie anomalie gravitazionali, ma niente che uno stalker esperto non possa affrontare. Continua a lanciare bulloni, come al solito. Ci sono anche delle radiazioni, dentro e fuori. È per via dell'acqua... quel posto sembra un piccolo reattore all'uranio. + + + Qui c'è una vecchia sotto-stazione, anche nota come Foresta d'acciaio. Capirai il perché di questo nome quando la vedrai. Certa gente sostiene di aver trovato numerosi manufatti dopo un'emissione. Non è un posto molto pericoloso, più che altro ci sono anomalie elettriche mescolate a radiazioni. Ci sono anche dei poltergeist. Se non ti nascondi in tempo ti seppelliranno in men che non si dica. + + + Lavorare? A essere onesto non saprei. Ma se hai la possibilità di aiutare la Freedom, parla con il nostro capo a Yanov. Vai all'ala sud e parla con Loki, è lui la persona giusta. Ricorda, se credi nell'evoluzione della specie umana, in una verità superiore e nel significato dei doni della Zona, farai la scelta giusta. + + + Non ne ho idea, ma se trovi qualcosa che ci aiuti a combattere la Zona e quelli che la considerano un dono anziché una maledizione, parla con il comandante dell'unità della Duty, il Tenente Colonnello Shulga. Lui è a capo della stazione Yanov. Lo troverai nell'ala nord. Una cosa è certa: tutti i civili che contribuiranno al successo della Duty riceveranno una generosa ricompensa. + + + Tutti dicono che stanno succedendo cose strane alla vecchia torre di raffreddamento. Se ti sintonizzi sulla frequenza comune potrai sentire frammenti di chiamate... sembra che un povero diavolo stia cercando di uscire da un'anomalia. Quando chiedi delle coordinate, però, nessuno ti sa rispondere. La cosa più strana è il suono. Quel tipo di distorsione non può proprio essere spiegato... + + + Sono diretto a un luogo a metà strada tra la Skadovsk e Shevchenko. + + + A Jupiter. Anche se probabilmente non mi spingerò troppo avanti. + + diff --git a/gamedata/configs/text/ita/st_dialogs.xml b/gamedata/configs/text/ita/st_dialogs.xml new file mode 100644 index 0000000..376f879 --- /dev/null +++ b/gamedata/configs/text/ita/st_dialogs.xml @@ -0,0 +1,978 @@ + + + + Ascolta, ho una domanda per te... + + + Parla, allora. + + + Che cosa ne pensi di Nimble? + + + Nimble? Penso che uno di questi giorni lo beccheremo in un posticino tranquillo, carico di mercanzie, e daremo una ripassata a quel bastardo! + + + Hai sentito qualcosa a proposito dell'Oasi? + + + Beh, una volta ho sentito questa storia... per farla breve, i ragazzi della Discarica avevano messo in giro la voce sulla posizione dell'Oasi, rendendola anche credibile. Poi sono andati là e si sono messi ad aspettare... Sai una cosa? Un sacco di idioti si sono presentati e quelli si sono arricchiti così tanto che poco dopo hanno lasciato la Zona. E perché non farlo, d'altronde? Si erano sistemati per la vita. Solo uno di loro è rimasto qui, un tizio di nome Yoga... + + + Che se riesci a trovarla, trovi anche la cura per tutti i tuoi malanni... non dev'essere male, niente più postumi da sbornia, niente emorroidi... Basta trovarla, aprire un albergo e vivere di rendita. + + + Perché dovrei perdere tempo con storie del genere? Sono solo idiozie per gli imbecilli... i veri uomini non ci credono. Ti ritrovi seduto in un bar, con qualcosa da bere in mano e gli stalker tutti attorno, a discutere di dove si trovi l'Oasi: e tutti quanti quegli idioti giurano di conoscerne la posizione... Chissà perché cambia sempre passando da uno stalker all'altro. + + + Hai mai incontrato uno stalker di nome Magpie? + + + Ma certo... Mi è bastato guardarlo un attimo per inquadrarlo: persino gli altri stalker lo trattano con disprezzo. Però non so dove si trovi... se lo stai cercando, dovrai darti da fare da solo. + + + No. È la prima volta che sento questo nome, amico. + + + Sai chi potrebbe rubare qualcosa da un ripostiglio personale? + + + Un bastardo. Però faresti meglio a chiederlo ai capi, da Yanov. Loro sono famosi per dare la caccia a creature del genere. + + + Chi può darmi una mano a decifrare una cosa? + + + Beh, ho sentito che Nitro, da Yanov, è in gamba. Sembra che quando non lavorasse per la Duty, abbia violato un paio di PDA degli stalker. Ah, i bei vecchi tempi... + + + Non metterti a parlare difficile: per una cosa del genere avrai bisogno di un hacker. Una volta, mentre ero in gattabuia, ne ho conosciuto uno. Però quando io sono uscito a lui restavano ancora cinque anni... + + + Ho il PDA del mercante della Duty: conosci qualcuno a cui potrebbe interessare? + + + Sulla Skadovsk c'è un mercante di nome Owl: paga piuttosto bene e i ragazzi di tanto in tanto gli vendono PDA di alcuni stalker. Non fa neppure troppe domande, il che è un bene. + + + A chiunque, amico. Prova a pensarci: quelli della sua fazione lo stenderanno, per questo, mentre le altre fazioni si scannerebbero per averlo. Però Owl, a Zaton, potrebbe far sparire il PDA in pochi istanti... e soltanto lui saprebbe dove andrebbe a finire. Sta a te scegliere. + + + Dove posso trovare qualche strumento, qua attorno? + + + Beh, se hai bisogno di strumenti chirurgici, io guarderei negli ospedali e nei pronto soccorso. Se invece ti interessano strumenti per lavori pesanti, vai alla cava, da Jupiter. Per gli strumenti di precisione, dai un'occhiata nelle vecchie officine. + + + Come diavolo faccio a saperlo? Io non ho bisogno di strumenti per dare una lezione agli stalker... Ah, calmati, sto scherzando... + + + Chi potrebbe sbloccare un modulo di memoria? + + + Bella domanda! Sai, in fondo è questa la mia specialità, no? Ma sei scemo o cosa? Ti serve un tecnico, oppure uno scienziato... non è che hai creduto davvero che io lo sapessi fare, eh? + + + Voglio essere sincero: l'ultima volta che ho sbloccato un modulo di memoria andavo ancora a scuola, e si trattava di un fottuto floppy disk. Vai a parlare con qualche esperto, che è meglio. + + + Chi potrebbe aprire un contenitore d'acciaio? + + + Conosci Cardan, della Skadovsk? Beh, l'altro giorno lo hanno fregato e ha iniziato a inseguire l'idiota responsabile con una sbarra da scasso. Secondo me potrebbe usarla anche per sfasciarci qualcosa, volendo. + + + Beh, con gli strumenti giusti potrei riuscirci anche io, ma chi cavolo se li è portati nella Zona? Vai a parlare con qualche tecnico, amico, loro avranno quello di cui hai bisogno. + + + Sto cercando uno stalker chiamato Snag: sai dove posso trovarlo? + + + Chissà! Chiedi a Sultan, alla Skadovsk: il capo di solito sa dove sono tutti quanti. + + + Sì, ho sentito parlare di quel verme. Di solito perde il suo tempo a Zaton, per cui qui non lo troverai di certo. + + + Sai qualcosa degli elicotteri che sono precipitati? + + + A chi potrebbero interessare delle informazioni sul fondatore della Duty? + + + Interesserebbero a tutti, poco ma sicuro! Si tratta di notizie che scottano, amico, per cui la cosa migliore credo sia vendere a Owl, alla Skadovsk: in questo modo incasserai qualcosa senza farti dei nemici. + + + No. Prova a pensarci: ho la Duty da una parte, la Freedom dall'altra e gli stalker che mi stanno addosso. Come pensi che potrei trovare il tempo per guardare il cielo? + + + Beh, i ragazzi dicono di averne visto uno appeso ai cavi, nella Foresta d'acciaio, ma là fuori potrai vedere ben altro... Di sicuro finirai dentro un'anomalia, oppure un poltergeist ti farà a pezzi. + + + Sì, dei tizi che conoscono ne hanno visto cadere uno su un altopiano, però non c'è modo di arrivarci... dicono che volava in modo così strano che sembrava il pilota fosse ubriaco. + + + Mi hanno detto che un elicottero ha voluto fare il sottomarino e si è schiantato dritto in una palude. Come puoi immaginare, si è incagliato piuttosto in fretta. Da quelle parti l'acqua non è un granché per la salute, tra i veleni, le sostanze chimiche e tutto il resto. + + + Hai visto dei militari in giro? + + + A chi potrebbero interessare delle mappe della zona tra Zaton e Jupiter? + + + A Pilot, immagino. È lui la guida principale da queste parti. Una mappa gli farebbe comodo, e non dovrebbe affidarsi più alle stelle, come fa adesso...... + + + I ragazzi hanno detto che una squadra dell''esercito ha attraversato l'altopiano meridionale, diretta all'accampamento mercenario. Hanno pensato che le cose stessero per mettersi male, quindi se ne sono andati in fretta e furia. + + + Ho sentito di come quegli scarafaggi dell'esercito stessero cercando di tirare fuori della roba dal loro elicottero schiantatosi nella palude. Immagina, cinque soldati in uniforme che saltellano in una palude cercando di non bagnarsi. Probabilmente ci sono state abbastanza imprecazioni da far impallidire un bandito. + + + Un ragazzo mi ha detto che stava seguendo uno stalker per rubargli una parte del suo bottino, quando ha udito degli spari e roba del genere. Ha poi scoperto che l'esercito stava combattendo contro i mercenari. Si è nascosto e ha atteso il risolversi del conflitto, ma a quel punto lo stalker era già fuggito. Bella sfortuna, eh? + + + Un fratello mi ha raccontato di aver assistito a una scena divertente. Immagina quella chiatta con sopra un mulino e Noah che uggiola lì accanto, tutto eccitato, e intanto dieci ragazzi dell'esercito che cercano di allontanarsi il più possibile dal cane di Noah. Beh, questo mio fratello si è fatto una bella risata e ha abbandonato quel circo. + + + Macché, questo è un posto poco raccomandabile, pieno di gente con armi da fuoco e cose così... Non ho ancora avuto il tempo di controllare quali sono i militari e quali gli uomini della Duty in missione. + + + Sai come arrivare a Pripyat? + + + Chi potrei assumere per proteggere gli scienziati? + + + Ah, ci penseremo io e i ragazzi! Li proteggeremo come fossero dei bambini! Gli stalker e i mutanti avranno una fifa cane e non si avvicineranno nemmeno, fidati di me! Pagaci regolarmente ogni settimana e saremo tutti tuoi. Ah, e non dimenticare la mancia per Natale! + + + A piedi, amico. Cammina verso Jupiter e fai lì le tue domande, perché non ci sono strade dirette tra Zaton a Pripyat. Questo è un fatto scientifico. + + + Ehi, amico, ti sembro una guida turistica? Cioè, ho un tatuaggio con su scritto, "Rispondo a domande stupide" sulla fronte? Vallo a chiedere Pilot, lui è pagato per rispondere a domande del genere. + + + No... Cosa ci farei? Non ci sono degli stalker da fregare lì! + + + Puoi indicami qualcuno che non sia troppo vincolato e che sia disposto ad andare a Pripyat? + + + Pripyat non è un posto per veri uomini come noi. Pensaci, è pieno di mutanti e anomalie... come il resto della Zona... ma lì non ci sono gli stalker e i loro bottini. Quando gli stalker si fanno vedere a Pripyat, facci un fischio e ci andremo subito per mantenere l'ordine naturale delle cose. + + + Non ne ho idea, amico. Mi dispiace. + + + Ho trovato un'arma insolita. Conosci qualcuno che magari se ne intende? + + + Beh, fossi in te chiederei ai tecnici. Cioè, roba del genere è di loro competenza, no? + + + Non saprei, ma gli stalker della Skadovsk credono che Cardan sia una specie di genio della tecnica. Se vuoi puoi parlare con lui... A mio parere è solo un vecchio ubriacone... + + + Chi potrei assumere per eseguire delle misurazioni per conto degli scienziati? + + + Facile: ci penseranno i nostri ragazzi. Cioè, forse non saranno laureati ma eseguiranno tutte le misurazioni che vuoi. Fatto questo avranno solo bisogno di una bella tomba, ma nemmeno quello sarà un problema! + + + Ho trovato uno strano manufatto. Puoi suggerirmi un acquirente? + + + Uno strano manufatto, dici? Vediamo un po'... dammi qui, così posso vederlo meglio. Ah ah, rilassati amico... sto scherzando, ma ti conviene tenere quella roba ben nascosta. Certa gente potrebbe non avere tutto questo senso dello humor. + + + Hai del fegato a far vedere in giro quel manufatto. Ti rispetto. Ecco come stanno le cose: l'uomo a cui far vedere quella roba è Beard, alla Skadovsk. Non sappiamo ancora come faccia a far uscire i manufatti dalla Zona, ma dovresti riuscire a vendere il tuo senza problemi. + + + Ho trovato una tana di succhiasangue. Cosa facciamo? + + + Ehm, cosa c'è da fare? Darsela a gambe levate, ecco cosa! + + + OK, lascia perdere. + + + Ascolta, ho una domanda per te... + + + Chiedi pure. + + + Che cosa ne pensi di Nimble? + + + Nimble? Mai sentito. Forse fa parte di un'altra squadra. + + + Hai sentito qualcosa a proposito dell'Oasi? + + + Favole da stalker. Ecco cosa fanno: si inventano cose che non sono vere, poi formano dei gruppi per cercarle! Fossi in te farei finta di niente. Roba da leggenda: credici e presto crederai anche l'Esauditore di desideri esista veramente. + + + Ah, quel posto dove le ferite guariscono da sole e la tua energia viene magicamente ripristinata? Ho delle notizie per te, amico: non esiste. Gli stalker si inventano quella roba per far sembrare la Zona meno pericolosa di quanto non sia, ma la cruda realtà è che nella Zona non ci sono posti sicuri. E da queste parti bisogna non perdere di vista la realtà. I sognatori non durano a lungo nella Zona. + + + Sì, e tutti i manufatti che vi si trovano valgono tanto oro quanto pesano e ti vengono presentati su un piatto d'argento, mentre magari ti massaggiano anche i piedi. Dai, sto scherzando. Dubito che esista, anche se sarebbe bello. Potremmo anche allestire un ospedale senza avere bisogno dei medici: alla gente basterebbe passare di lì per guarire... Cavolo, che fantasticheria. + + + Hai mai incontrato uno stalker di nome Magpie? + + + Fatico a ricordare tutti gli uomini della Duty e tu mi fai delle domande sugli stalker? Hanno la loro base alla Skadovsk... vai a chiedere lì. + + + No, mai. + + + Sai chi potrebbe rubare qualcosa da un ripostiglio personale? + + + Ecco! Una cosa così non succederebbe mai alla base della Duty, ma questo posto è pieno di teppisti della Freedom. Io inizierei a indagare tra loro. + + + Chi può darmi una mano a decifrare una cosa? + + + C'è un tecnico di nome Nitro alla stazione Yanov. È piuttosto in gamba con l'elettronica. Una volta mi sono dimenticato la password del PDA e lui l'ha recuperata in cinque secondi netti! + + + Devi andare a Yanov... e lì cercare Nitro. Lui è in gamba con questa roba. + + + Ho il PDA del mercante della Duty: conosci qualcuno a cui potrebbe interessare? + + + Un mercante nella Duty? Ma è impossibile! Comunque, se hai delle informazioni ti conviene darle al Tenente Colonnello Shulga. Se ne occuperà lui. + + + Dove posso trovare qualche strumento, qua attorno? + + + Qui vicino c'è un intero stabilimento. Certo, forse a quest'ora è già stato saccheggiato, ma se fossi in te controllerei comunque i magazzini. + + + Fossi in te comincerei la ricerca dalle vecchie officine. Forse troverai qualcosa anche nei negozi. + + + Da queste parti ci sono solo mutanti e anomalie. Ah! Io non mi addentrerei nelle anomalie, e i seppellitori e i controllori non ti saranno di alcuna utilità. + + + In realtà, c'è un treno sotto il ponte da queste parti. Li ho già visti... di solito trasportano personale tecnico, quindi forse lì troverai degli strumenti. + + + Chi potrebbe sbloccare un modulo di memoria? + + + Nitro... lui è l'unico alla stazione Yanov che si intende di questo genere di cose. + + + Devi parlare con un tecnico. E l'unico tecnico bravo è Nitro a Yanov. + + + Chi potrebbe aprire un contenitore d'acciaio? + + + Dicono che c'è un tecnico tra gli stalker. È un ubriacone ma sa il fatto suo. Prova a parlare con lui. + + + Ah, è come se andassi in giro con una cassaforte. Sono sicuro che Nitro non potrà fare niente per te... se avesse una serratura elettronica, allora sarebbe un altro paio di maniche... + + + Sto cercando uno stalker chiamato Snag: sai dove posso trovarlo? + + + Ti conviene chiedere agli stalker, si conoscono tutti tra loro. Io non ho mai sentito parlare di nessuno Snog o come accidenti si chiama. + + + Sai qualcosa degli elicotteri che sono precipitati? + + + A chi potrebbero interessare delle informazioni sul fondatore della Duty? + + + Al nostro comandante, naturalmente. Racconta tutto quello che sai a Shulga e riceverai la gratitudine della Duty. + + + Sì, i nostri esploratori hanno visto un elicottero militare scendere verso le riserve di Jupiter. Dicono di avergli segnalato di cambiare rotta, ma immagino che i piloti avessero altro di cui preoccuparsi. Chissà se i ragazzi dell'esercito sono riusciti a uscire dal campo di mine sani e salvi. + + + Non da queste parti, no. Qui la nostra presenza è limitata... prova a chiederlo ai nostri ragazzi vicino a Yanov. + + + La nostra pattuglia ha individuato un elicottero militare tentare un atterraggio di fortuna nei pressi dello stabilimento di Jupiter. Purtroppo, l'elicottero si è schiantato proprio sul tetto sopra le officine. Probabilmente non ci sono sopravvissuti: dopo lo schianto la pattuglia non ha ricevuto alcuna richiesta di soccorso. + + + Hai visto dei militari in giro? + + + A chi potrebbero interessare delle mappe della zona tra Zaton e Jupiter? + + + Qualcuno saprebbe come usarle. Parlo di Pilot: lui fa da guida sul percorso tra Yanov e Skadovsk, quindi troverebbe sicuramente utili quelle mappe. + + + Militari? Da queste parti non ne ho visti molti, ma non trascorriamo molto tempo in quest'area. + + + Di recente è stato individuato il cadavere di un soldato nel campo minato. Probabilmente faceva parte dell'equipaggio di quell'elicottero. Gli elicotteri trasportano fino a otto persone, oltre all'equipaggio, quindi devono aver trovato un modo per uscire, anche se nessuno sa dove sono finiti. + + + Un militare è stato visto nel bunker degli scienziati, e sicuramente è arrivato da poco. Non conosco i dettagli. + + + L'altro giorno un tizio con indosso un'uniforme militare è stato visto entrare in un edificio accanto al complesso Volkhov AA. È probabile che fosse solo uno zombi scambiato per un soldato. + + + Gli stalker hanno individuato un'unità militare vicino allo stabilimento Jupiter. A giudicare dalla descrizione si trattava di forze speciali. Erano accompagnate da uno stalker non meglio identificato e si dirigevano verso Pripyat. La descrizione sembra affidabile, ma l'esperienza mi insegna che di solito conviene non fidarsi di informazioni del genere. + + + Sai come arrivare a Pripyat? + + + Chi potrei assumere per proteggere gli scienziati? + + + Non puoi trovare una protezione migliore di quella offerta dalla Duty. Vai a parlare con il Tenente Colonnello Shulga a Yanov... sono sicuro che voi due troverete un accordo. + + + Meglio di no. Finché quelli della Freedom lavorano per loro, faremo meglio a tenerci alla larga da quel posto. Ascoltare le stupidaggini di quegli idioti per tutto il giorno è un destino peggiore della morte. + + + Al momento la Duty non ha motivo di cercare una strada per Pripyat, ma stiamo raccogliendo comunque delle informazioni. Ci sono dei rapporti non confermati in cui si parla di gallerie che corrono verso Pripyat sotto lo stabilimento Jupiter. Per verificare quest'informazione dovremmo ispezionare lo stabilimento da cima a fondo. + + + No. Se ti serve un'informazione del genere dovrai parlare con una guida civile... I nostri esploratori sono già abbastanza indaffarati. + + + I nostri esploratori cercano regolarmente dei sentieri sicuri per Pripyat in quella zona, ma non abbiamo ancora scoperto nulla. + + + Puoi indicami qualcuno che non sia troppo vincolato e che sia disposto ad andare a Pripyat? + + + La presenza della Duty in quest'area è limitata. Parla con la nostra gente a Yanov. + + + Si dice che gli scienziati nascondano un militare nel loro bunker. Non ha via d'uscita, però. Vedi, gli scienziati staranno lì dai dodici ai diciotto mesi e lui da solo non è capace di arrivare al confine della Zona. Detto questo, scommetto che sarebbe interessato. + + + Ti suggerisco di cercare tra chi vuole un'avventura. Per esempio, c'è uno stalker di nome Vano alla stazione di Yanov. È un vero imprudente e potrebbe tornarti utile... quel ragazzo potrebbe trovare l'uscita di un'anomalia a occhi chiusi. + + + Beh, potresti dare il via a una campagna di reclutamento in un manicomio. Anche se, in effetti, conosco una valida alternativa: i combattenti Monolith. A proposito, una loro squadra è stata individuata nei pressi del complesso AA. Probabilmente conoscono la strada per Pripyat... Ehi, amico, spero che tu non mi prenda troppo sul serio... + + + Cerca dei volontari nella Duty. Strider, per esempio. Non è ancora stato assegnato a una missione, quindi immagino che il tenente colonnello gli permetterà di venire con te. + + + Sanno tutti che i migliori combattenti stanno con la Duty... ma al momento abbiamo altri obiettivi. + + + Ho trovato un'arma insolita. Conosci qualcuno che magari se ne intende? + + + Beh, io! Che bel cannone! L'hai fatto tu o l'hai davvero trovato? Non avevo mai visto niente del genere... ti conviene chiedere ai tecnici. + + + Chi potrei assumere per eseguire delle misurazioni per conto degli scienziati? + + + Che domanda stupida... La Duty, è ovvio. Abbiamo un sacco di uomini esperti e abbiamo già lavorato con gli scienziati. Vai a parlare con il Tenente Colonnello Shulga... sono sicuro che riuscirà a trovarti una squadra per il lavoro. + + + Chi vorrebbe lavorare in un bunker protetto dalla Freedom? Quei dannati pacifisti sono talmente drogati che hanno le stesse possibilità di spararsi tra loro che ai nemici. + + + Ho trovato uno strano manufatto. Puoi suggerirmi un acquirente? + + + I manufatti sono tutti strani. Ti sconsiglio di portarlo con te. Dallo agli esperti e fine dei giochi. + + + Dovresti farlo vedere agli stalker... sono degli esperti in materia. Ancora meglio, fallo vedere alla persona a cui vendono i loro manufatti. + + + Ho trovato una tana di succhiasangue. Cosa facciamo? + + + Al momento le squadre della Duty non sono impegnate in operazioni di disinfestazione, quindi la tana dovrà aspettare. + + + OK, lascia perdere. + + + Ascolta, ho una domanda per te... + + + Spara. + + + Che cosa ne pensi di Nimble? + + + Non ho sentito molto su di lui... Ti conviene chiedere agli stalker. Lui è uno di loro, no? + + + Hai sentito qualcosa a proposito dell'Oasi? + + + Parecchie cose... È una bella storia, te lo concedo. Un palazzo in mezzo al deserto, un'isola nella nebbia, un castello nel cielo, Shambhala, l'Eden... l'Oasi. Ogni persona è libera di coltivarsi un sogno, e non sta a me biasimare nessuno. + + + Uno stalker una volta mi ha raccontato una storia interessante. Credo sia stato il primo a nominarmi l'Oasi. Diceva che, secondo la leggenda, lì guariscono tutte le ferite e ci si sente subito calmi e rilassati, come se non ci si trovasse affatto nella Zona. Da quella volta non l'ho più visto... Solo più tardi mi sono ricordato che camminava zoppicando, ma quando se ne è andato camminava dritto e sembrava anche parecchio più giovane. + + + Sì, gli stalker liberi mi hanno dato le coordinate... Dieci gruppi di coordinate diversi! Mettendoli insieme si ottiene un'area che va dal Bruciacervella alla centrale di Chernobyl, con il bar di Yanov più o meno al centro. Per quanto ne sappiamo, potremmo trovarci nell'Oasi anche adesso, quindi goditela! + + + Hai mai incontrato uno stalker di nome Magpie? + + + Macché. Da queste parti non conosco molti stalker liberi. + + + Magpie? No, ma è un bel nome. + + + Sai chi potrebbe rubare qualcosa da un ripostiglio personale? + + + No, da queste parti non c'è nessuno che farebbe una cosa simile. Ci sono persone che ti ruberebbero un tozzo di pane o un sorso da bere mentre non guardi, ma non c'è nessun ladro nel vero senso del termine... + + + Chi può darmi una mano a decifrare una cosa? + + + Ho sentito che Nitro alla stazione Yanov è un amante delle combinazioni e degli algoritmi. Non ne sono sicuro, però. Non gli ho mai parlato. Lui lavora per la Duty, quindi non ha molto tempo da dedicare a noi liberi. + + + Non sono un esperto di esperti del luogo... Chiedi ai nostri ragazzi a Yanov la prossima volta che passi da lì. Loro lo sapranno di sicuro. + + + Ho il PDA del mercante della Duty: conosci qualcuno a cui potrebbe interessare? + + + Mi sembra interessante! Lo darei a Loki, il nostro capo alla stazione Yanov. Farà in modo che quegli stalker liberi sappiano che gente recluta la Duty! + + + Dove posso trovare qualche strumento, qua attorno? + + + Allo stabilimento, amico, e dove se no? Non è un posto esattamente vivace, ma i magazzini ti tireranno su il morale. Sono posti un po' più sicuri e lì troverai senz'altro degli strumenti niente male. + + + Buona domanda, amico. Pensiamoci un attimo. Dove si trovano degli strumenti fuori dalla Zona? Dunque, se hai un briciolo di cervello li compri in negozio. Se invece non ce l'hai, cerchi sia gli strumenti che il cervello in un'officina. Giusto? Lo stesso discorso si applica alla Zona: i posti dove cercare sono gli stessi. È semplice, stalker! + + + Strumenti? Ehi, è per caso una parola in codice? Qui non ci sono sbirri, puoi parlare liberamente... Ah, dici sul serio? Allora non ne ho proprio idea. + + + Beh, ho sentito che uno dei nostri ragazzi stava cercando degli strumenti ed è finito nel treno sotto il ponte. A quanto pare lì c'è un tesla di induzione magnetica. Comunque, ha detto che quel posto non gli è piaciuto affatto... Ma perché te lo sto raccontando? Ah, beh, ha detto di aver visto degli strumenti sparsi in giro, ma ha deciso di lasciarli lì perché non si sentiva sicuro. + + + Chi potrebbe sbloccare un modulo di memoria? + + + Beh, sicuramente Novikov nel bunker degli scienziati. È veloce, abile ed educato. C'è anche Nitro a Yanov, il parassita della Duty. È un merdoso taccagno, ma probabilmente è in grado di svolgere il lavoro. + + + Un buon tecnico, direi. Quello del posto si intende più di roba meccanica, quindi a meno che tu non voglia farti distruggere il modulo di memoria, ti conviene chiedere a Jupiter. + + + Chi potrebbe aprire un contenitore d'acciaio? + + + Vediamo, l'altro giorno mi hanno raccomandato Cardan della Skadovsk. Dicono che sappia il fatto suo, anche se per la maggior parte del tempo è sbronzo. Forse lui potrebbe aiutarti ad aprire quel contenitore. + + + Chiunque lo faccia di mestiere. Nitro, il tecnico locale, però, non lo farà. Ho sentito dire che preferisce mettere le mani sugli strumenti elettronici altrui. + + + Sto cercando uno stalker chiamato Snag: sai dove posso trovarlo? + + + Mai sentito nominare... Fossi in te proverei a chiedere agli altri stalker liberi. + + + Sai qualcosa degli elicotteri che sono precipitati? + + + A chi potrebbero interessare delle informazioni sul fondatore della Duty? + + + A Loki, senza dubbio. È il nostro capo qui a Yanov. Probabilmente non saprà che farsene di quelle informazioni, ma l'importante è che non finiscano nelle mani della Duty. Riesci a immaginare quante stronzate di propaganda salterebbero fuori? Mi viene il mal di testa solo a pensarci. + + + Sì, hai sentito la storia di quell'elicottero nel campo minato? Praticamente, i marine sono precipitati sulla piattaforma di atterraggio della riserva, minata sei anni fa dai loro commilitoni. Ora c'è chi dice che l'hanno fatto per stupidità, ma io scommetto che sotto c'è dell'altro. Vedila in questo modo: in quel posto non ci andrà nessuno, quindi dopo che i soldati avranno completato la loro missione potranno tornare all'elicottero, rimetterlo in sesto e levare le tende. Quello che vorrei sapere è in che cosa consiste la loro missione... + + + Io non sono del posto, non so un bel niente. Vieni a trovarci a Yanov, i nostri ragazzi ti diranno tutto quello che vuoi sapere... e anche quello che non vuoi sapere. + + + Sì, dei ragazzi hanno avvistato un elicottero piuttosto malridotto, l'altro giorno. Non è atterrato in un bel posto: dritto su uno dei tetti di Jupiter. Dicono che si è schiantato, ha sfondato il tetto ed è entrato nell'edificio, portandosi dietro di tutto. + + + Hai visto dei militari in giro? + + + A chi potrebbero interessare delle mappe della zona tra Zaton e Jupiter? + + + A Pilot, senza dubbio. Lui è la principale guida degli stalker liberi da queste parti. Se vuoi vendere delle mappe, devi parlare con lui. + + + Calmati, fratello. Da queste parti non ci sono poliziotti, marine e nemmeno la guardia nazionale. Considerato che sei nella Zona, non potresti essere più al sicuro di così. + + + No, ma dei ragazzi mi hanno detto di aver visto un'unità dell'esercito infiltrarsi attraverso il campo minato accanto alle piattaforme di atterraggio degli elicotteri. Volevano aiutarli, ma poi ci hanno ripensato. I marine sono tipi imprevedibili, non sai mai quando potrebbero uscire di senno e spararti alle spalle. + + + Personalmente non l'ho visto, ma si dice che ci sia un marine nel bunker degli scienziati. Ozersky, il biologo, ha detto che era sull'elicottero schiantatosi sullo stabilimento. Noi lo prendiamo in giro dicendo che non aveva mai avuto un soldatino come animaletto domestico. + + + Personalmente no, ma ho sentito delle voci circolare tra gli stalker liberi. Dicono di aver visto un marine nei pressi del complesso Volkhov AA. + + + No, questo ragazzo diceva di aver visto sette soldati seguire uno stalker libero oltre lo stabilimento radio, verso Pripyat. Sono un po' di mesi che nella Zona non circola dell'erba, quindi mi sa che sono solo deliri privi di fondamento. + + + Sai come arrivare a Pripyat? + + + Chi potrei assumere per proteggere gli scienziati? + + + La Freedom. Ovvero noi, in altre parole. Lavoriamo spesso con gli scienziati, quindi proteggerli sarebbe un gioco da ragazzi. Parla con il nostro capo, Loki, a Yanov... accetterà di sicuro. + + + Non ne sono sicuro, amico, perché da quello che ho sentito dire le teste d'uovo hanno già assunto una squadra della Duty... Ci piacerebbe proteggere gli scienziati, ma non ne vale la pena se tutti i giorni ci tocca vedere quelle facce stitiche degli uomini della Duty. + + + Dicono che puoi arrivarci da Jupiter... Parlo dello stabilimento, non del pianeta... Ah ah! Bella battuta, vero? + + + Sai, non ne ho idea. Non trovo mai il tempo per andarci... Perché non chiedi a Pilot all'accampamento? È uno stalker libero e conosce la zona meglio di chiunque altro. + + + Fratello, se lo sapessi ci sarei andato da un pezzo. Lo farei volentieri, pur di allontanarmi dalla Duty, dai marine e da tutto questo combattere... + + + Puoi indicami qualcuno che non sia troppo vincolato e che sia disposto ad andare a Pripyat? + + + Spiacente, amico, a Zaton non conosco nessuno... Segui il mio consiglio, chiedi ai nostri ragazzi a Yanov. + + + Hai presente il bunker degli scienziati? Lì c'è in ballo qualcosa. Prima Garry, lo stalker, ha deciso di andare a Pripyat e ora il marine che si trova lì ha avuto la stessa idea. Garry è un solitario ed è felice di esserlo, ma quel marine fa proprio al caso tuo. + + + Vano a Yanov può fare al caso tuo. È un tipo a posto e si sarebbe potuto persino unire alla Freedom se avesse voluto. Immagino non veda di buon occhio la nostra lotta contro la Duty... o qualunque lotta, per quel che può contare. Questo è il suo punto di vista e noi lo rispettiamo! + + + Certo. Uno dei nostri ragazzi ha individuato una squadra nei pressi del lago prosciugato. Loro conoscono Pripyat come il palmo della loro mano e credo che non lavorino per nessuno. Sicuramente sono anche coraggiosi, perché sono combattenti Monolith! + + + Sì. Strider, il capo delle nostre nuove reclute... sembra che non si senta a suo agio nei nostri ranghi. I suoi ragazzi si sono adattati alla perfezione, ma lui non è affatto felice. Parla con lui, detesto vedere un brav'uomo costretto a stare dove non vuole... + + + No, non ne ho idea. + + + Ho trovato un'arma insolita. Conosci qualcuno che magari se ne intende? + + + Non è che per caso c'era anche un manuale? No? Allora non ne ho idea. + + + Chi potrei assumere per eseguire delle misurazioni per conto degli scienziati? + + + Immagino che i nostri ragazzi potrebbero svolgere questo lavoro. Alla Freedom c'è un sacco di gente sveglia e, se non sappiamo qualcosa, chiederemo al bunker. Sarebbe bello avere l'opportunità di aiutare la scienza! Parla con Loki a Yanov... sono sicuro che la penserà allo stesso modo. + + + Io e i ragazzi lo faremmo molto volentieri, ma ultimamente la Duty controlla il bunker. Entrare di tanto in tanto per parlare con gli scienziati è già di per sé un problema, ma andare lì tutti giorni sarebbe decisamente pericoloso. + + + Ho trovato uno strano manufatto. Puoi suggerirmi un acquirente? + + + Devi trovare un collezionista, amico. A Yanov non ne troverai nessuno, visto che persino alcuni stalker hanno paura di venire qui. Ti conviene chiedere a Zaton, da quelle parti la situazione è più tranquilla. + + + Hai presente Beard, il barista nell'accampamento degli stalker liberi? Lui acquista manufatti e non cerca di fregarti. Non troppo, almeno. Un bravo ragazzo, da tutti i punti di vista. Peccato che non lavori per noi. + + + Ho trovato una tana di succhiasangue. Cosa facciamo? + + + Amico, devi avvisare gli stalker liberi... da queste parti c'è il loro accampamento principale. La fauna della Zona è preziosa, questo è vero, ma mi preoccupa di più la gente che vive qui. + + + OK, lascia perdere. + + + Ascolta, ho una domanda per te... + + + Chiedi pure. + + + Che cosa ne pensi di Nimble? + + + Non ho mai avuto il piacere... Ti conviene chiedere ai soldati di stanza alla Skadovsk. + + + Hai sentito qualcosa a proposito dell'Oasi? + + + Ho sentito tutto a proposito dell'Oasi! È una leggenda, un mito... Da essa ogni stalker si aspetta qualcosa di diverso, e tutti sostengono di conoscerne la posizione esatta. Peccato che l'unica cosa che quelle posizioni hanno in comune tra loro è il fatto di essere difficilissime da raggiungere. + + + Beh, dicono che le ferite guariscono all'istante e che tutta la tua energia ritorna nel giro di pochi minuti... A sentire loro nell'Oasi non esistono malattie, nemmeno l'avvelenamento da radiazioni! L'unica cosa che so per certo, però, è dove si trova. Vuoi saperlo anche tu? È al centro della Zona! Ma devi tenere quest'informazione per te, non spifferarla a nessuno! + + + Ho sentito dire che se lì incontri un mutante, questi cambierà strada senza nemmeno guardarti. Dicono anche che esiste un manufatto chiamato Cuore dell'Oasi... Nessuno sa con precisione cosa faccia, ma una cosa è sicura: non devi toccarlo. Chiunque lo prenda non avrà più posto nella Zona... Dove si trova? Ehi, lo sanno tutti che è a Pripyat, sotto la ruota del Ferris! Cioè, altrimenti dove potrebbe essere? + + + Hai mai incontrato uno stalker di nome Magpie? + + + Certo... Però non ho idea di dove sia adesso. + + + Mmm... mai sentito nominare... + + + Sai chi potrebbe rubare qualcosa da un ripostiglio personale? + + + Ehm, no? Chiedi a quelli più anziani a Yanov, forse loro potranno aiutarti. + + + Chi può darmi una mano a decifrare una cosa? + + + Nitro a Yanov, chi altri? Ama questa roba tecnologica complicata... e soprattutto ama trafficare con le armi. + + + Nessuno che io conosca. Chiedi a Yanov... Credo ci abiti una specie di esperto. + + + Ho il PDA del mercante della Duty: conosci qualcuno a cui potrebbe interessare? + + + Conosci Owl sulla Skadovsk? Scommetto che lui sarebbe felice di metterci sopra le mani. Ama farsi coinvolgere in affari spinosi... + + + Una volta sulla Skadovsk a Zaton c'era un certo Owl. Lui gestisce giri di informazioni... forse il tuo PDA potrebbe interessargli. + + + Dove posso trovare qualche strumento, qua attorno? + + + Uno stalker mi ha detto che il suo vecchio lavorava nelle officine delle sottostazioni prima dell'86. Ha detto che lì c'era ogni sorta di attrezzatura, quindi immagino troverai anche degli strumenti. Probabilmente ormai sarà stato mangiato tutto dalla ruggine, ma forse vale comunque la pena dare un'occhiata. + + + Hai presente la segheria nel bosco sulla collina? Lì dovresti trovare degli strumenti, a meno che non se li sia già presi qualcuno, è ovvio. Comunque ne dubito: più ti avvicini a quel posto e più ti viene voglia di fartela addosso e dartela a gambe. Non sono neanche le radiazioni a fare paura, e non aggiungo altro... + + + Beh, lì si trova lo stabilimento Jupiter, dove sicuramente ci saranno degli strumenti. Personalmente non mi avvicinerei, quel posto mi dà i brividi. Però potresti dare un'occhiata nei magazzini Jupiter, quelli sul lato dello stabilimento. + + + Ho sentito dire che a Pripyat ci sono un paio di posti dove è possibile trovare ogni sorta di spazzatura tecnologica. Uno deve essere un vecchio grande magazzino russo. Era praticamente l'unico posto che a quel tempo vendeva qualcosa di utile. + + + E io cosa ne so? Controlla le vecchie officine o i negozi. Lì potresti trovare qualcosa di utile. + + + A essere onesto, l'ultimo posto dove ho visto degli strumenti decenti è stato nel bunker di Sidorovich al Cordon. Certo, devi pagare per averli, ma sono nuovi e in fondo nemmeno troppo costosi. + + + Sai, amico, non sono mica venuto nella Zona per cercare strumenti o attrezzi. Pensaci un attimo, a cosa serve un martello radioattivo? + + + Ho sentito dire che al vecchio centro di servizio puoi prendere tutto quel che trovi... Forse potresti trovare qualcosa di utile. Ma anche in questo caso vale il solito discorso: per arrivare alla roba buona prima devi raggiungere il posto. + + + Buona domanda. Fossi in te controllerei nel vecchio treno sotto il ponte. Non chiedermi perché, ma ho la sensazione che potresti trovarci qualcosa di buono. + + + Chi potrebbe sbloccare un modulo di memoria? + + + Fammi pensare... Beh, Nitro a Yanov ci riuscirà sicuramente. A parte lui, c'è anche Novikov, il tecnico degli scienziati. Lui è un vero professionista. Pensaci bene, però, perché Nitro è molto più economico. + + + Beh, avrai bisogno di un tecnico, ma da queste parti c'è solo Cardan. Il fatto è che dopo anni e anni di eccessi con l'alcol non è più affidabile come una volta. Fossi in te chiederei dalle parti di Jupiter: lì ci sono gli esperti giusti. + + + Chi potrebbe aprire un contenitore d'acciaio? + + + Cardan alla Skadovsk, credo. Cioè, il modo in cui rompe i lucchetti è una gioia per gli occhi. + + + Un qualche tecnico, credo. Probabilmente Nitro però non è la persona adatta, lui non ama i lavori duri. + + + Ah ah, e lo cerchi a Pripyat? Segui il mio consiglio e allontanati un po' dal centro della Zona. + + + Sto cercando uno stalker chiamato Snag: sai dove posso trovarlo? + + + Ti conviene chiedere a Beard, il barista sulla Skadovsk. Di solito lui sa dove sono gli stalker. + + + Snag? E io perché dovrei saperlo? Ti conviene chiederlo a Zaton, lui passa un sacco di tempo da quelle parti. + + + Sai qualcosa degli elicotteri che sono precipitati? + + + A chi potrebbero interessare delle informazioni sul fondatore della Duty? + + + Io mi farei una chiacchierata con Owl, il commerciante di informazioni alla Skadovsk. Ci scommetto le chiappe che vorrà mettere le mani su delle informazioni credibili riguardo una leggenda come quell'uomo. + + + Ne ho visto uno di persona... Non sembrava stesse precipitando, ma non volava nemmeno troppo bene. Ondeggiava da una parte all'altra, poi è atterrato su un altopiano nella parte meridionale di Zaton... Sarei curioso di sapere se è sopravvissuto qualcuno... Se solo ci fosse un modo di arrivare fin lassù. In realtà, ho sentito che Noah della chiatta degli svitati potrebbe saperlo. + + + Ho sentito dire che alcuni elicotteri militari sono precipitati poco lontano da qui... La gente racconta versioni diverse, ma una la ricordo bene. Hanno detto che in realtà sono atterrati sulle piattaforme della riserva, minate anni fa da altri marine. Una bella ironia della sorte, eh? Il mio vecchio diceva sempre: "Non scavare una buca per qualcun altro, perché sarai tu stesso a finirci dentro". Non aveva tutti i torti, eh? + + + Un mio amico mi ha raccontato questa storia: era andato alla Foresta d'acciaio per procurarsi dei manufatti e appena arrivato ha udito uno schianto dietro di sé. Si è girato e ha visto un elicottero venire verso di lui a tutta velocità, abbattendo tralicci dell'elettricità e tutto il resto. Il mio amico è schizzato via come un fulmine... Anzi, mi sorprende che sia riuscito a non finire su un'anomalia. Non avrai problemi a trovare la Foresta d'acciaio... la si vede da miglia di distanza. È anche piena di poltergeist, quindi tieni gli occhi ben aperti. + + + Ne ho sentito uno atterrare sull'altopiano meridionale, ma arrivare fin lassù non è semplice. Inoltre, a quanto pare, qualcuno ha visto Noah ai confini di quell'altopiano, quindi quel pazzo sa come arrivarci. + + + Io non ho visto niente, ma si dice che un elicottero si sia schiantato dritto sullo stabilimento... Nessuno, però, vuole andare a controllare. Quel posto è troppo pericoloso. + + + Uno stalker mi ha detto di aver visto parecchi elicotteri militari cacciarsi nei guai. Ha visto il motore di uno di questi avvamparsi, e un attimo dopo il mezzo è precipitato in una palude piena di anomalie. Non sarà difficile arrivarci, ma la palude è un vero e proprio incubo. Credimi, non è un posto adatto agli umani. + + + Hai visto dei militari in giro? + + + A chi potrebbero interessare delle mappe della zona tra Zaton e Jupiter? + + + A Pilot, naturalmente. Lui è una guida, sai? Si sposta continuamente tra la Skadovsk e Yanov, quindi saprà sicuramente come fare buon uso delle tue mappe. + + + Qui non siamo né a Zaton né a Jupiter, quindi queste mappe non servono a niente, dico bene? Prova a venderle in quei posti e forse avrai più fortuna! + + + Non l'ho visto di persona, ma ho sentito di alcuni soldati che sono scesi dall'altopiano meridionale alla fognatura. A quanto pare inizialmente hanno cercato di scendere seguendo ogni precauzione, con funi e tutto il resto, ma presto si sono arresi e sono scivolati sulle loro chiappe. Ah! Andare in bob nella Zona... dev'essere uno spasso! + + + Alla Skadovsk ho sentito della gente che parlava di cinque o sei marine che sono stati visti uscire da una galleria di scolo nei pressi delle fogne. Dicono che erano sporchi da far schifo, e uno era identico a un succhiasangue di palude, coperto com'era di melma. + + + Non di persona, ma un mio amico ha visto un'unità militare affrontare un gruppo di mercenari nei pressi della stazione di lavorazione. Proprio quando era riuscito a trovare un bel punto da cui godersi lo spettacolo, la festa era già finita perché i marine si erano ritirati. Nessuna vittima in entrambi gli schieramenti... tipico, no? + + + A quanto pare sono stati individuati una decina di marine nei pressi della chiatta di Noah. Ora, considerato che il pazzo era ancora vivo, probabilmente è riuscito a trovare una sorta di accordo con loro... proprio come fa di solito. Ovviamente nessuno ha voluto chiedere a Noah cosa è successo. Non sai mai cosa aspettarti da quel pazzo bastardo. + + + Una notte ho sentito un'esplosione, poi qualcuno a Yanov mi ha detto di aver visto un marine morto nel vecchio campo minato e un elicottero militare abbandonato dietro di lui. A quanto pare non sono riusciti a vedere dove atterravano e sono finiti dritti nel campo minato. Nessuno sa in quanti siano sopravvissuti, ma dubito che quel marine fosse da solo sull'elicottero. + + + Io non ho visto nessun militare... ma ho sentito dire che con gli scienziati vive un marine. Stando a quanto si dice, Garry, uno stalker, lo ha trovato quando è entrato nel complesso missilistico per cercare i suoi compagni. Ora il complesso brulica di zombi non esattamente amichevoli, quindi è come se Garry lo avesse salvato da morte certa. + + + No, ma ho sentito dire che nei pressi del complesso Volkhov AA è stato individuato un marine. Ma io non ci credo... Magari stanno mentendo o semplicemente non sanno distinguere uno zombi da un soldato. + + + Militari? Ho sentito dire che "un'intera unità militare guidata da uno stalker" era diretta oltre lo stabilimento Jupiter, ma non ho prestato molta attenzione a quelle chiacchiere. + + + Sai come arrivare a Pripyat? + + + Chi potrei assumere per proteggere gli scienziati? + + + Hai presente Spartacus e la sua squadra? Hai presente, gli stalker di Zaton? Sono brave persone e buoni combattenti: sanno il fatto loro, hanno una buona esperienza e hanno vinto pure una maglietta. Ho la sensazione che a loro non dispiacerebbe proteggere gli scienziati. + + + Sei incappato nella squadra di Hatchet alle officine della sottostazione di Zaton? Hanno i loro problemi, come tutti i mercenari, ma almeno prima ti fanno le domande e poi ti sparano. Immagino che, se riuscirai ad assumerli per questo lavoro, gli scienziati saranno soddisfatti e gli stalker potranno rilassarsi un po'. E così saremo tutti contenti, no? + + + Ehm... proprio non saprei... Niente, mi spiace. + + + Quello che so per certo è che non c'è modo di arrivarci da Zaton. Tutti quelli che volevano raggiungere Pripyat si sono diretti verso Jupiter, quindi ti conviene chiedere da quelle parti. + + + Beh, si dice che sotto lo stabilimento Jupiter ci siano delle gallerie segrete che portano fino a Pripyat... Il fatto è che di solito queste voci vengono raccontate dopo il secondo bicchiere, e poi Jupiter è un tale posto da incubo che nessuno osa avvicinarcisi. + + + E io cosa ne so, amico? Non hai una domanda di riserva, magari più facile? Posso solo dirti che ti conviene trovare Pilot e parlare con lui. Se c'è qualcuno che può aiutarti, lui è la persona giusta. + + + Ah! Se sapessi come arrivare a Pripyat non sarei certo qui. Secondo te perché mi sono diretto verso il centro della Zona? Pripyat è piena di manufatti, amico! Il primo che ci mette le mani sopra vivrà da re! + + + Puoi indicami qualcuno che non sia troppo vincolato e che sia disposto ad andare a Pripyat? + + + Penso che da queste parti non ci sia nessuno che soddisfi questi requisiti. Chi voleva avvicinarsi al centro della Zona è partito per Jupiter. Fossi in te andrei a informarmi da quelle parti. + + + Hai sentito del marine che al momento vive con gli scienziati? Scommetto che non ha molto da perdere, quindi potrebbe anche venire con te. Loro non se ne andranno di certo presto, e lui non può raggiungere il Cordon da solo, quindi potrebbe essere abbastanza stupido da venire a Pripyat con te! + + + Conosci Vano alla stazione Yanov? È un tipo a posto, un buon stalker e ingenuo da matti. Ci sa più fare con le anomalie che con le persone... quindi ci sarà sempre qualcuno che si approfitta di lui. + + + Ascolta, amico, ho sentito dire che una squadra è stata avvistata nei pressi del lago prosciugato, a sud del complesso AA... Pare che non siano i soliti stalker della Freedom o della Duty... sono dei Monolith! Quindi se ti serve qualcuno con cui andare a Pripyat, loro faranno al caso tuo. Ah ah, hai capito che sto scherzando, vero? + + + Hai presente Strider, il capo della nuova squadra della Freedom? Se lo hai visto in faccia, saprai anche tu che Yanov non è un posto adatto a quel poveraccio. Ti conviene scambiare due parole con lui, forse riuscirai a convincerlo. + + + Hai presente Strider, il capo della nuova squadra della Freedom? Se lo hai visto in faccia, saprai anche tu che Yanov non è un posto adatto a quel poveraccio. Ti conviene scambiare due parole con lui, forse riuscirai a convincerlo. + + + Mmm... non mi viene in mente nessuno. + + + Ho trovato un'arma insolita. Conosci qualcuno che magari se ne intende? + + + Chi lo sa? Io chiederei agli esperti... cioè, ai tecnici e gente del genere... + + + Scommetto che chiedere a Cardan sulla Skadovsk sarebbe una buona idea, amico. Lui traffica con le armi ed è bravo... E magari, nonostante tutto l'alcol, forse gli rimane comunque un neurone o due... + + + Chi potrei assumere per eseguire delle misurazioni per conto degli scienziati? + + + Conosci Gonta il cacciatore? Credo che a lui e ai suoi ragazzi non dispiacerebbe lavorare per gli scienziati. Cioè, se i mutanti dovessero diventare una scocciatura, quei ragazzi sono proprio quelli che fanno al caso tuo. + + + Hai sentito parlare di Grizzly, Torba e Mitay, gli stalker di Yanov? Lavorano in gruppo e sono veramente tosti! Penso che siano le persone giuste per questo lavoro... purché Mitay sia riuscito a tenersi fuori dai guai una volta tanto. + + + Non ne ho idea, amico. Qui abbiamo già abbastanza cose di cui preoccuparci. + + + Ho trovato uno strano manufatto. Puoi suggerirmi un acquirente? + + + Non penso. Qui la gente diffida degli estranei. Chiedi dalle parti di Zaton: è più vicino al bordo della Zona e potrebbe essere un luogo più adatto a te. + + + Io lo farei vedere a Beard, il barista della Skadovsk. Dicono che lavori con i collezionisti del mondo esterno, gente disposta a pagare bene per queste cose strane. + + + Ho trovato una tana di succhiasangue. Cosa facciamo? + + + Wow, devi dirlo a Beard alla Skadovsk... perché o li sistemiamo o saranno loro a sistemare noi. + + + OK, lascia perdere. + + + Dov'è l'accampamento stalker più vicino? + + + Ma sei stupido? ... Io non so niente di accampamenti di stalker, ma l'accampamento più vicino a qui è la Skadovsk. Ti darò le coordinate e lo farò pure gratis. Sono gentile, eh? + + + Dov'è l'accampamento stalker più vicino? + + + Caricherò le coordinate sul tuo PDA... La Skadovsk è l'unico grande accampamento che si trova da queste parti. + + + Alla prossima. + + + Ho sentito di alcuni schianti, ma non conosco i dettagli. I pettegolezzi non fanno per me. Scusa se non ti sono di grande aiuto. + + + Amico, ho altro di cui preoccuparmi, altro che i tuoi elicotteri... Cioè, scommetto che un elicottero che si schianta fa un bel botto, ma a parte questo non so che dire. + + + Di cosa stai parlando, teppista? Devi aver fumato roba andata a male per vedere un elicottero da queste parti, perché qui non ci azzeccano proprio per niente. + + + Eh? No, amico, non mi impiccio di cose del genere. Non c'entra niente con la mia missione di diffondere la conoscenza, mi capisci? + + + La nostra pattuglia ha visto gli elicotteri precipitare, ma i dettagli sono stati riferiti direttamente al tenente colonnello in persona. Noi comunichiamo le informazioni solo ai diretti interessati, e io non sono tra quelli. + + + Dove posso trovare una tuta provvista di modulo respiratorio a ciclo chiuso? + + + Non so dove cercare, ma con la giusta quantità di denaro si fanno miracoli... se sai come investirla. Fai due chiacchiere con Nimble... Se vi mettete d'accordo sui dettagli, lui si procurerà i tuoi stracci in un modo o nell'altro. Spero che tu ce la faccia, qualche giorno senza di lui qui sulla Skadovsk sarebbe una liberazione. + + + E io cosa ne so? Non è molto che sono qui... Ti conviene chiedere a Zaton, i nostri fratelli da quelle parti hanno i loro contatti. + + + Non ne ho idea. Perché, hai intenzione di infilare il naso in un'anomalia? Ascolta, se ti dovessi imbattere in qualche manufatto, facci un fischio. Arriveremo in men che non si dica... Per congratularci dell'ottimo lavoro! Ah ah ah! + + + Dove posso trovare una tuta provvista di modulo respiratorio a ciclo chiuso? + + + E io come faccio a saperlo? Aspetta... Sulla Skadovsk c'è un tipo che si dice sia in grado di procurarti tutto quello che ti serve. Sta sul ponte superiore e si chiama Nimble. + + + No, nessuno viene fino a qui con una tuta del genere in più... Ti conviene chiedere a Zaton, un passo più vicino alla civiltà. + + + Non so proprio dove ne potresti cercare una... Tute del genere sono rare anche tra i membri della Duty. Le assegnano solo a chi si distingue in battaglia o a chi compie delle operazioni in zone altamente anomale. + + + Dove posso trovare una tuta provvista di modulo respiratorio a ciclo chiuso? + + + Ho sentito parlare di quest'uomo che sembra avere un sacco di conoscenze, tale Nimble, che può procurarti praticamente tutto. Sai, attrezzatura, armi e cose del genere... ma non fumo. Se hai bisogno di lui lo troverai sulla Skadovsk. + + + Ottima domanda, amico... Qui alla Freedom non le indossiamo nemmeno... Fossi in te chiederei agli stalker a Zaton. Forse lì troverai qualcuno che gestisce affari del genere. + + + Eh eh, e a cosa ti serve? In azione non vale niente. Comunque... forse può tornarti utile. Con quella respiri più facilmente, e il sole non ti arriva dritto negli occhi... Magari me ne posso procurare una pure io. Ehi, sai mica dove potrei trovarla? + + + Dove posso trovare una tuta provvista di modulo respiratorio a ciclo chiuso? + + + Beh, fossi in te proverei da Nimble. Terzo ponte sulla Skadovsk. Quel tipo riuscirebbe a procurarti la neve nel deserto. Certo, i suoi servizi non sono adatti a tutte le tasche. + + + Fammi pensare... A Zaton c'era un uomo che avrebbe fatto al caso tuo, si chiamava Nimble. Vai a vedere se è ancora da quelle parti. Ho sentito che è specializzato in oggetti particolari. + + + Amico, ne parli come fosse cancelleria... Nessuno saprebbe risponderti con sicurezza. Pezzi del genere sono scarsi, per non dire rari. Se riesci a procurartene uno puoi ritenerti fortunato. + + + Ciao. + + + Ci si vede. + + + A più tardi. + + diff --git a/gamedata/configs/text/ita/st_dialogs_jupiter.xml b/gamedata/configs/text/ita/st_dialogs_jupiter.xml new file mode 100644 index 0000000..c060ede --- /dev/null +++ b/gamedata/configs/text/ita/st_dialogs_jupiter.xml @@ -0,0 +1,3885 @@ + + + + Che cosa vuoi? + + + Devo parlare con Jack riguardo il debito di Vano. + + + Vai pure, allora. + + + OK. + + + Faccio solo due passi. + + + Questo non è un parco pubblico, amico. Perché non vai da un'altra parte? + + + Sai chi potrebbe rubare qualcosa da un ripostiglio personale? + + + No, ma ho già i miei problemi a cui pensare... Tu hai perso del materiale, ma io potrei rimetterci la pelle... + + + Furti, imbrogli... Cielo, dove andremo a finire? Non ho visto nessuno, ma sono sicuro che chiunque sia stato è già lontano. + + + Vai a trovare Zulu. + + + Certo. Dovremmo passare dall'Hawaiano per ricomprare la mia tuta. + + + Muoviamoci. + + + Ne sarei felice, ma non mi va di farmi beccare da un'emissione mentre ho i pantaloni abbassati. Aspettiamo un po'. + + + Ci servirà una tuta con un modulo respiratorio a ciclo chiuso per arrivare a Pripyat. + + + Ah, ma no! La mia tuta ne ha uno: ti fa respirare tranquillamente anche se infili la testa in un forno, ma l'ho data in pegno all'Hawaiano. Se solo riuscissi a riaverla... ma sono al verde e ci serviranno cinque bigliettoni... + + + Posso darti io i soldi per la tuta. + + + Darmeli e basta? Dici sul serio? + + + Certo. Ecco cinque bigliettoni. + + + Amico, mi stai davvero salvando il culo. Adesso ti seguirò anche in capo al mondo! + + + Te li darei io, ma non ho cinque bigliettoni. + + + Succede anche ai migliori, amico mio... Credimi, lo so bene. + + + Ci penserò. + + + Certo... Dopotutto sono soldi tuoi. + + + Allora, me li dai o no? + + + Sto raccogliendo una squadra per andare a Pripyat. Vuoi unirti a me? + + + Tu hai aiutato me, amico, e ora io aiuterò te. + + + Mi piacerebbe, amico, ma non posso andarmene finché ho questo debito che mi grava sulle spalle. Non sarebbe giusto e poi, se li incontrassimo, mi ucciderebbero come un cane. A quei bastardi non importa chi fanno fuori... + + + Allora, sei pronto per andare a Pripyat? + + + Sono più che pronto! + + + Beh, entra. Cosa vuoi? + + + Hai pagato il tuo debito, ora smamma. + + + Erano dei bastardi arroganti... li ho dovuti eliminare. + + + Ho pagato, quindi non sei più in debito. + + + Ehi, grazie, amico! Non lo dimenticherò. + + + Non benissimo, mi hanno anche fatto pagare gli interessi. + + + Così non va bene... Ma mi farebbero pagare ancora di più, credimi. Grazie dell'aiuto! Non lo dimenticherò. + + + Non sono ancora stato da loro. + + + Sbrigati prima che aumentino gli interessi. + + + Sono andato da loro, ma vogliono degli interessi sul debito. + + + Ma sono pazzi? Già ho faticato a raccogliere quella cifra... Credi di poterli convincere a dimenticare gli interessi? Ti servirà una buona arma. La forza è l'unica cosa che rispettano. + + + Cosa hai detto riguardo il tuo debito? + + + Beh... Avevo una vecchia tuta che iniziava a logorarsi, così ho pensato che fosse il caso di comprarne una nuova. Poco dopo ne ho vista una nuova di zecca in vendita, con tanto di modulo respiratorio a ciclo chiuso e tutto quanto... Ho contato i miei soldi, ma non arrivavo alla cifra richiesta... Poi Jack, il venditore, mi ha detto, "Non ti preoccupare, Vano, il resto me lo potrai pagare con comodo". E io ho pensato, "Che brava persona!"... + + + OK, e dopo? + + + Ho venduto la tuta vecchia, ho raccolto tutti i miei contanti e sono andato da lui. Jack mi ha detto, "Bravo, Vano, ma come la mettiamo con gli interessi?" E io ho pensato, "Sì, ha ragione... devo pagargli gli interessi..." Così ho raccolto altro contante e gliel'ho portato. Al che lui mi ha detto, "Mentre eri fuori l'interesse è cresciuto, Vano”. A quanto pare gli interessi aumentano così in fretta che non riesco a starci dietro... Ho dovuto dare in pegno la tuta nuova e anche le mie armi... + + + E adesso? + + + Lo voglio pagare con i soldi che ho guadagnato. Per Vano nulla è più importante della sua reputazione... Ma ho paura. Potresti andare tu da Jack a pagare il mio debito? + + + OK, nessun problema. + + + Però, quando vai da lui, assicurati di portare con te un'arma bella potente. Fai vedere che non sei uno da prendere alla leggera e ti tratteranno con rispetto... + + + Ci penso io. + + + Adesso ho da fare. + + + Ne ho avuto abbastanza. + + + Allora, puoi andare tu da Jack a pagare il debito al posto mio? + + + OK, OK, non sparare, pagherò il debito... Ehm, scusa, ti avevo scambiato per un altro... + + + Com'è andata con i banditi? + + + Ehi, amico, sono contenuto che tu sia venuto! + + + Ehi. + + + Abbiamo visite... Uno stalker vuole parlare con Shishak... Sei venuto per portargli dei regali o devi parlare di affari? In entrambi i casi sputa il rospo, amico. + + + Non pensavo saresti tornato... Allora, che cos'hai per me? + + + Di cos'altro dobbiamo parlare, stalker? + + + Cosa vuoi? Ti sei forse stancato di trascinare il tuo bottino in giro? Se vuoi possiamo darti una mano noi. + + + Devo parlare con il tuo capo. + + + Ehi, amico, non ho tempo per questa roba. Togliti subito di torno o ti aiuterò a trovare la strada con questo bel fucile. + + + OK, OK... me ne vado. + + + Sono qui per lo stalker prigioniero... voglio parlare con il tuo capo. + + + Mmm... Fai pure, ma vedi di non fare scherzi o ti seppelliremo in men che non si dica... Vai dritto poi entra nel passaggio in mezzo ai container. Tutto chiaro? + + + Sì. + + + Passavo solo di qui, ora smammo. + + + Sono qui per lo stalker prigioniero... voglio parlare con il tuo capo. + + + Cos'altro vuoi? Sparisci! + + + OK... + + + Ascolta, babbeo, stai cercando di insultarmi? Hai portato abbastanza grana per le chiappe del tuo amico, ma non ci hai pagato per lasciarti passare! Un po' ingenuo da parte tua, no? + + + Di quanti soldi stiamo parlando? Ricorda però che devo arrivare alla base. + + + Oh, sei proprio spassoso! Qui non siamo in un bordello, amico, non abbiamo un listino prezzi... Svuota le tasche, stronzo! + + + D'accordo, ecco qui. + + + OK, ora vado. + + + Cosa?!? Vuoi prenderti tutto il mio bottino? Non se ne parla! + + + Ho pagato il riscatto. Non c'è altro di cui discutere. + + + OK, stalker, abbiamo incassato la nostra somma. È ora di andare. + + + Grazie ragazzi, alla prossima. + + + Aspetta. Ci potrebbero essere altri banditi nascosti in giro. + + + Bene, è ora di andare. Il ragazzino non ce l'ha fatta, ma noi abbiamo fatto del nostro meglio... + + + Aspetta, non abbiamo ancora finito! + + + Preso! + + + Vieni a Pripyat con me. + + + Per ora sarà meglio che resti qui e faccia in modo che Mitay si tenga alla larga dai guai. + + + Ehi, stalker! Grazie mille per aver tirato fuori Mitay! Stavamo già iniziando a radunare una squadra... Tieni, consideralo un modo per dimostrarti la nostra gratitudine. + + + Ehi, stalker! Grazie mille per aver tirato fuori Mitay! Sei una vera belva! Affrontare tutti quei banditi da solo... Tieni, consideralo un modo per dimostrarti la nostra gratitudine. + + + Ehi, stalker! Grazie per averci aiutato a tirare fuori Mitay! Personalmente, non pensavo che pagare il riscatto avrebbe dato buoni risultati... Sono sicuro che un po' di contanti ti farebbero comodo, quindi prendi questi. Ti siamo riconoscenti. + + + Ehi, stalker! Grazie per averci aiutato a tirare fuori Mitay! Avevo ragione su tutta la faccenda. Mai cedere ai banditi! Bisogna mettergli un po' di pepe al culo... e tu hai avuto le palle per farlo. Tieni, prendi questo... tutti hanno voluto qualcosa, quindi non è granché, ma ti siamo riconoscenti. + + + Com'è andata con il riscatto? + + + Ci sto ancora lavorando su. + + + Allora, che si dice? Quand'è che metterai un po' di pepe al culo ai banditi? + + + Presto. + + + Hai cambiato idea o stai avendo dei problemi con i banditi? Oh, beh, fai quel che devi fare ma fallo alla svelta... Non vogliamo che perdano la pazienza e uccidano Mitay. + + + Sistemerò tutto. Andrà tutto bene. + + + Sono felice di vedere un professionista come te, stalker! + + + Abbiamo perso un gran bravo ragazzo... Povero Mitay... Non siamo riusciti a salvarlo... begli amici che siamo! + + + Cosa puoi fare? + + + Vieni a Pripyat con me. + + + Sono venuto qui solo per tenere compagnia ai miei amici, quindi resterò qui con loro. + + + Ehi, grazie per Mitay. Stavamo per andare a pagare il riscatto. Le cose si sono risolte per il meglio, non ci sono dubbi... + + + Ehi, grazie per Mitay... Come sei riuscito a convincerli? Cavoli, ho davvero molto da imparare da te... + + + Ehi, grazie per Mitay... Avevo ragione, vero? La negoziazione è la chiave per il successo! + + + Ehi, grazie per Mitay... Continuo ancora a pensare che sia meglio negoziare, ma tutto è bene quel che finisce bene. + + + Stai indietro... Adesso non ho nessuna voglia di parlarti. + + + OK, basta che ti calmi. + + + Salve, signor professionista! + + + Povero Mitay... era solo un ragazzino... aveva ancora tutta la vita davanti... + + + Cosa puoi fare? + + + Bene, siamo tutti qui. Grizzly mi ha parlato di te... Il piano è semplice: i ragazzi si metteranno in posizione per attaccare intorno al perimetro e io, dalla mia posizione, eliminerò la sentinella: quello sarà il segnale di inizio dell'attacco. Prendi nota delle nostre posizioni e di tutto quello che pensi ti possa servire. Sono sicuro che sai già cosa fare... Sei pronto? + + + Lo terrò a mente. Andiamo. + + + Aspetta, dammi un po' di tempo per pensarci su. + + + Te la senti di fare un viaggetto fino a Pripyat con me, Mitay? + + + Gli scienziati stanno assumendo gente. Che ne diresti di lavorare per loro? + + + Qual è il lavoro? + + + Difendere il loro bunker. + + + No, amico, la mia avventura tra i banditi mi è bastata. Me ne starò seduto qui e cercherò di rilassarmi. + + + Eseguire delle misurazioni nelle anomalie. + + + Mmm, interessante. Ho già lavorato per gli scienziati e, visto che sei tu a chiedermelo, accetto. Io, Grizzly e Torba andremo al bunker. + + + Dimmi come mai sei stato catturato. + + + Amico, non toccare questo tasto! È stata tutta colpa mia. I banditi mi avevano avvertito, però poi... Hanno iniziato a prendere una fetta del mio bottino, ma la Zona non appartiene mica a nessuno! Perché avrei dovuto pagarli? + + + Io e i ragazzi li abbiamo mandati al diavolo e per un po' tutto è filato liscio. Ma i banditi si sono rivelati tipi piuttosto furbi: mi hanno teso un'imboscata: una volta sono stato così stupido da andare a cercare manufatti da solo, loro mi sono saltati addosso e mi hanno legato le mani ancora prima che potessi estrarre l'arma... Ecco com'è andata. + + + Grazie per aver pagato il mio riscatto! Non lo dimenticherò! + + + Grazie per avermi liberato, stalker! Non lo dimenticherò! + + + Grazie per aver pagato il mio riscatto! + + + Grazie per aver contribuito alla mia liberazione, stalker! + + + Grazie dell'aiuto, stalker... I miei amici ti ricompenseranno sicuramente... Torniamo alla base insieme, ci metteremo meno. + + + Muoviamoci. + + + Tu vai, io passerò più tardi. Ho ancora delle questioni da sbrigare, qui. + + + Cavoli, credevo che ci avrei rimesso la pelle in questo posto... Wow, Grizzly e Torba hanno assunto tutte queste persone?!? Santo cielo! Non avevo mai assistito a una sparatoria simile in vita mia! Adesso possiamo andarcene? + + + Aspetta, potrebbero esserci ancora dei banditi in giro. + + + Sì, andiamo. + + + Cavoli, credevo fosse giunta la mia ora... Grandioso, hai eliminato tutti questi banditi da solo! Sei un vero osso duro! Quando racconterò questa storia non mi crederà nessuno... Adesso possiamo andarcene da qui? + + + Aspetta, potrebbe esserci ancora qualcuno in giro. + + + Sì. Andiamocene da questo posto. + + + Grazie, stalker! Sbrighiamoci, prima che i banditi cambino idea. + + + Muoviamoci. + + + Dobbiamo andarcene da qui alla svelta! + + + Non possiamo cedere alle richieste dei banditi. Questo problema va risolto con la forza. + + + Esatto! Conosco un po' di gente che sarebbe ben felice di aiutarci... Pagheremo anche te, se non ti dispiace agire in squadra. + + + Sono pronto. + + + Bene! Conosco un gruppo di stalker che operava in un'unità di polizia speciale. Dovrai incontrarli in un punto prestabilito dopo l'una del mattino. Ti aspetteranno. + + + OK. + + + Torba ha ragione. Non ha senso scatenare un bagno di sangue mentre hanno un ostaggio. Dobbiamo negoziare. + + + Mmm, forse voi due avete ragione... Il fatto è che se io e Torba andiamo dai banditi, loro non ci lasceranno più uscire, visto che ci siamo rifiutati di seguire le loro regole. Hanno detto che ci avrebbero seppelliti vivi. Ora, se tu potessi fare da negoziatore... + + + Certo, ci penso io. Dammi il manufatto. + + + Sii prudente. + + + Andrà tutto bene. + + + Possiamo stare a discutere fino alle calende greche... Il nostro successo è in mano a chi guiderà la baracca. Mi occuperò di persona di quei bastardi. + + + Cavoli, proprio non me l'aspettavo... Buona fortuna. + + + Tornerò presto. + + + Concordo, ma mi serve del tempo per prepararmi. + + + Stalker, aiuta il nostro amico Mitay a uscire dai guai, ti spiace? + + + Cosa è successo? + + + Mitay è in un mare di guai... I banditi hanno iniziato a pretendere una parte dei manufatti trovati dagli stalker. Noi gli abbiamo detto di farsi un giro, perché abbiamo pensato che gli stalker non devono niente a nessuno, e sembrava che la storia fosse finita lì... Loro invece hanno teso un'imboscata a quel povero diavolo una volta che era andato a caccia di tesori da solo, e ora chiedono un riscatto. + + + Che cosa farete? + + + Torba propone di cedere un manufatto come pagamento del riscatto... Io dico che non gli dobbiamo dare un bel niente. Se lo faremo, sarà come se gli stalker lavorassero per i banditi... Meglio vendere il manufatto, assumere un bel gruppo di uomini e attaccare la base dei banditi. + + + Ce ne occuperemo più tardi. + + + Allora, ci aiuterai a salvare Mitay? Torba continua a sostenere di voler pagare il riscatto con un manufatto. E io insisto nel dire che dobbiamo attaccare la base dei banditi. Meglio vendere il manufatto e con i soldi acquistare i servizi di un gruppo di combattenti... Non abbiamo ancora deciso il da farsi. + + + Sei pronto? Ti daremo il manufatto con cui pagare la libertà di Mitay e ti aspetteremo al bar. + + + Sei già stato dai banditi? + + + No, mi sto ancora preparando. + + + Sì, ma per il momento non è successo ancora nulla. Vi farò sapere non appena la situazione sarà più chiara. + + + Ultimamente sono stato all'Oasi, dove ho trovato un manufatto. Ti interessa? + + + Ah, non ti aspetterai mica che ti creda, vero? Ho sentito parlare spesso dell'Oasi, ma non ho MAI sentito qualcuno dire di esserci stato davvero. Senza offesa, ma non ti credo sulla parola. + + + Ho dei documenti dello stabilimento Jupiter. + + + Sì, prendili tutti. + + + Sì, prendi l'ordine di evacuazione. + + + Sì, prendi l'ordine del giorno delle riunioni. + + + Sì, prendi il programma delle consegne. + + + Sì, prendi l'appunto delle officine di riparazione. + + + Magari la prossima volta. + + + Chi avrebbe potuto rubare qualcosa da un ripostiglio personale? + + + Di sicuro non i miei uomini. Forse qualcuno della Freedom. Se avessimo il controllo completo di Yanov cose del genere non succederebbero mai. + + + Parlami della Duty. + + + Cosa vuoi sapere, di preciso? + + + Cosa fate in questo posto? + + + La stessa cosa che facciamo da sempre. Proteggiamo gli stalker da ogni genere di parassita. Hai visto quanti mutanti ci sono da queste parti, e non sono come i bei cucciolotti che si trovano al Cordon. Per esempio, ieri sera ho visto una chimera con i miei stessi occhi. Iniziava a fare buio, quindi non l'abbiamo inseguita... E i mutanti non sono l'unico problema da queste parti. Dobbiamo anche indagare e raccogliere prove dai laboratori abbandonati prima che quegli idioti della Freedom ci mettano su le mani. + + + Come mai sei finito nel centro della Zona? + + + Vuoi scherzare? E tu come mai ci sei finito? Tirerò a indovinare e dirò che siamo qui per lo stesso motivo. Il centro della Zona è sempre stato un obiettivo irraggiungibile, un luogo dove speriamo di trovare le risposte a tutte le nostre domande. Volevamo scoprire in che modo la Zona era stata creata e come può essere distrutta. Ecco perché non appena abbiamo sentito dire che il Bruciacervella era stato disabilitato, ci siamo diretti verso il centro. + + + E cosa avete scoperto? + + + Un sacco di roba, ma sono informazioni riservate. Posso solo dire che nella Zona c'è molto più di quanto salti all'occhio. Alcuni dei nostri credono che la Zona sia un tumore da rimuovere a ogni costo. Considerato quello che ho visto, sono più incline a credere che la Zona sia un organismo vivente e che noi non siamo altro che batteri che vivono al suo interno. Anche se unissimo le forze militari di tutte le nazioni del pianeta, non riusciremmo comunque a distruggere la Zona. Ecco perché dobbiamo farci furbi: dobbiamo scoprire il motivo dell'esistenza della Zona ed eliminarlo. + + + E se non fosse possibile eliminare tale motivo? + + + Beh, allora dovremo escogitare qualcos'altro, ma c'è comunque una speranza. Dobbiamo compiere il nostro dovere e mantenere un atteggiamento positivo. + + + Come sei finito nella Duty? + + + È una storia noiosa, oltretutto priva di gesta eroiche. Subito dopo la comparsa della Zona io e Lenya, una mia amica, abbiamo deciso di venire qui a dare un'occhiata. Al tempo lavoravo come ufficiale di campo e Lenya era nel servizio di intelligence. Non eravamo degli sprovveduti, ma ci siamo cacciati comunque in un bel casino. Abbiamo strisciato per ore, feriti e sanguinanti, finché alla fine la Duty ci ha raccattato. Io ce l'ho fatta, Lenya no. Non avevo nessun amico nella Zona, così ho deciso di restare con la Duty. Da allora, ho avuto un motivo valido per odiare la Zona. + + + In che rapporti siete con la Freedom? + + + Ufficialmente siamo in guerra, ma al centro della Zona vigono regole molto particolari. C'è ancora qualche posto sicuro sparso qua e là, ma né la Duty né la Freedom possono contare su una grande disponibilità di uomini. Quindi che senso ha uccidersi a vicenda? Ecco perché la tacita regola è di non intralciarsi a vicenda. Questa regola non si applica fuori da Yanov, però: lì siamo ancora in guerra, e facciamo sul serio. + + + OK, lascia perdere. + + + Oh... OK. + + + Volevo parlare di un membro della Freedom di nome Flint. + + + Non mi interessa la gente della Freedom purché stia alla larga da noi. + + + Flint, altrimenti noto come Magpie, si è messo in affari con dei cacciatori stalker a Zaton, poi ha rubato tutto il loro bottino ed è fuggito. + + + E allora? La cosa non mi sorprende. La Freedom è piena di feccia del genere. + + + C'è dell'altro: ho incontrato uno stalker alla cava. Prima di morire, mi ha detto che Flint lo aveva lasciato in un'anomalia, si era preso il bottino e se n'era andato. + + + Ah, vedi, questo è il genere di cose che gli stalker non dimenticano... nemmeno alla Freedom. Grazie per tutte le informazioni... faremo in modo di sfruttarle al meglio. + + + Non lo sopporto. Cioè, quel bastardo ha perfino le palle per vantarsi di cose che ho fatto io! + + + Sarà un brutto colpo per la reputazione della Freedom. Grazie per l'informazione. Faremo in modo di sfruttarla al meglio. + + + Lascia perdere. + + + OK, come ti pare. + + + Ho il PDA del vostro ufficiale delle scorte, Morgan. + + + D'accordo. + + + Ci penserò. + + + D'accordo. + + + OK. + + + Diamo un'occhiata... Quindi quel bastardo faceva degli affari di nascosto e usava il nostro nome come copertura... Se questa storia dovesse saltare fuori, la nostra reputazione andrà giù per il cesso. E se ti comprassi questo PDA? Ti pagherò 4000. + + + Questa è un'accusa seria. Fammi vedere il PDA. + + + Ecco qui. + + + È giusto dire che avevo i miei sospetti su di lui... E ora avremo modo di portarli allo scoperto. Grazie, stalker! Spero che nessuno verrà mai a sapere di questa conversazione. Ho una piccola ricompensa per te... Dopotutto hai salvato la reputazione della Duty! + + + Per il momento lo terrò io. + + + Un altro... Molto interessante... Lo aggiungerò al file del caso. + + + Ecco qui. + + + Grazie! Ecco una piccola ricompensa per i tuoi sforzi... + + + Permettimi di tenerlo come pegno. + + + Ho incontrato un gruppo di combattenti che vuole unirsi alla Duty. + + + Noi cerchiamo sempre uomini che sappiano il fatto loro. Di' loro che mi vengano a trovare e scambieremo due parole. + + + C'è una cosa, però... Sono ex-combattenti Monolith. + + + Cosa intendi dire con "ex" combattenti Monolith? Per quanto ne so i combattenti Monolith appartengono a due categorie: quelli ancora in attività e quelli morti. Non ho mai incontrato nessun "ex". + + + A quanto pare erano sotto il controllo di qualcuno, perché non ricordano cosa sia successo loro dopo essere partiti per Chernobyl. Non che siano aggressive o altro, comunque: semplicemente non sanno cosa fare. + + + Beh, se non sono aggressivi è un bene... Cioè, troverei subito un modo per tenerli occupati e li farei rigare dritto. È che al momento non sono sicuro al cento per cento. Puoi garantire per loro? + + + Sì, mi fido di loro. + + + Mmm... il problema è che io non posso fidarmi neanche di te. Spiacente. + + + OK, ma ricorda che se succede un casino sarai tu a doverne rispondere. Il fatto è che da soli non saprebbero come arrivare a Yanov. Tu dovrai prendere i miei ragazzi e condurli fino alla squadra dei Monolith. Si parleranno e, se tutto andrà bene, verranno accettati nella Duty. Dimmi quando sei pronto per partire. + + + No, non mi fido granché di loro. + + + Nella nostra fazione non accettiamo i primi venuti. + + + Sono pronto a portare i tuoi uomini alla squadra dei Monolith. + + + Bene. Manderò due uomini con te. + + + Bene. + + + Facciamolo dopo, sta per succedere qualcosa. + + + Aspetta! Tu fai quel che vuoi, ma non permetterò ai miei ragazzi di farsi colpire da un'emissione. + + + Ho trovato il PDA del fondatore della Duty. Ti interessa? + + + Vediamo un po'... Allora è così che è andata... Non penso che gli altri debbano saperlo. Sarebbe meglio se nessuno mettesse mai le mani su questo PDA. La leggenda della creazione della Duty deve restare tale. Sei disposto a vendermi questo PDA? + + + Prendilo. + + + Grazie! Ecco la tua ricompensa. + + + Prenderò in considerazione la tua offerta. + + + Prendi il PDA del fondatore della Duty. + + + Grazie! Mi hai fatto un grande favore. Ecco la tua ricompensa. + + + Mi occorrono dei combattenti che lavorino per gli scienziati. Puoi aiutarmi? + + + Siamo sempre felici di aiutare gli scienziati. Cosa dobbiamo fare? + + + Cercano delle persone che proteggano il loro bunker. + + + Certamente. Invierò alcuni dei miei ragazzi. + + + Certamente. Invierò alcuni dei miei ragazzi. + + + Lo farei volentieri, ma lavorano già con la Freedom. Inviare anche una nostra squadra non farebbe che rendere più tesa una situazione che lo è già. + + + Voglio partire per Pripyat. Sei disposto a concedermi alcuni combattenti per questa missione? + + + Siamo già a corto di personale! Parla con Strider... a quanto pare lui non si sente a suo agio nella Duty, quindi forse potrà trovare la sua strada insieme a te. + + + Siamo già a corto di personale! Non invierò nessuno in una missione senza speranza. + + + Parla in fretta, e vattene ancora più in fretta. Cosa vuoi? + + + Ti ascolto. + + + Sono felice di vedere che sei ancora vivo. + + + Ho dei documenti dello stabilimento Jupiter. + + + Dubito che contengano nulla di interessante. Quando sono arrivati gli stalker, qualcuno aveva già saccheggiato lo stabilimento. Però... mmm, vedo che qualche informazione decente c'è. Vorrei farli vedere a una persona. Sei disposto a vendermeli? + + + Sì, prendili tutti. + + + Sì, prendi l'ordine di evacuazione. + + + Sì, prendi l'ordine del giorno delle riunioni. + + + Sì, prendi il programma delle consegne. + + + Sì, prendi l'appunto delle officine di riparazione. + + + Magari la prossima volta. + + + Chi avrebbe potuto rubare qualcosa da un ripostiglio personale? + + + Io non sono una guardia, e non tocca a me sorvegliare il tuo ripostiglio! Di sicuro non sono stati i miei ragazzi... loro sanno bene che certe cose non si fanno. + + + Parlami della Freedom. + + + È una storia lunga. Cosa vuoi sapere? + + + Cosa fate in questo posto? + + + Ci assicuriamo che i vari ufficiali non nascondano niente alla gente comune. Sai come funziona: non appena trovano un nuovo laboratorio o dei documenti che gettano una nuova luce sui segreti della Zona, organizzano subito un'operazione militare e ripuliscono tutto al volo, meglio di un dannato aspirapolvere. L'unico modo di scoprire qualcosa è arrivare per primi sul posto. + + + Come mai sei finito nel centro della Zona? + + + Sai, i ragazzi avevano voglia di fare una passeggiata in un posto nuovo. Sto scherzando. Qui hai l'opportunità di trovare cose mai viste prima. Qui non ci sono mai stati né l'esercito né gli stalker prima d'ora, quindi c'è qualcosa di nuovo dietro ogni angolo. + + + Hai trovato qualcosa? + + + Un paio di porte chiuse a chiave e alcuni nuovi, strambi manufatti. + + + Come sei finito nella Freedom? + + + Quando la Zona non esisteva ancora ero amico dei capi della Freedom. Bada però, a quei tempi non erano affatto capi, ma semplici hippy. Così quando sono entrato nella Zona a cercare manufatti e facce conosciute, ho pensato che tanto valeva restare con gente che conoscevo già. + + + Che cosa ne pensi della Duty? + + + Sono degli idioti, ecco che cosa penso. Cioè, perché cavolo vorrebbero distruggere la Zona? Non consuma mica preziose fonti energetiche né diventa più grande col passare dei giorni. Potrebbero starsene seduti e studiarla: pensa a quante scoperte scientifiche si potrebbero fare... Cioè, in tutta la storia dell'umanità non si è mai riusciti a comprendere l'assenza di gravità, giusto? E nella Zona si trovano dei congegni anti-gravità bell'e pronti sparsi dappertutto. Non mi dispiacerebbe cacciarli da qui a calci in culo, ma è una scocciatura eccessiva. A proposito, non farti confondere dai rapporti che vedi qui a Yanov. Siamo in guerra, ma Yanov è stata dichiarata zona neutra, se mi capisci. + + + OK, lascia perdere. + + + Nessun problema. + + + Volevo parlarti di uno dei tuoi stalker. + + + Davvero? Dimmi pure. Spero che tu non sia qui per fare una soffiata su qualcuno. + + + Il tuo stalker Flint è conosciuto a Zaton con il nome di Magpie. I cacciatori locali lo stanno cercando perché lui li ha fregati e se l'è data a gambe con il loro bottino. + + + E ti aspetti che ti creda? + + + Ascolta le storie che racconta al bar. Prima ha fregato quegli stalker e ora mente anche a te. + + + OK, calmati. Contatterò Beard e andrò a fondo della questione. Se quanto dici corrisponde al vero, ci occuperemo dell'atteggiamento di Flint così tipico degli uomini della Freedom. + + + Mmm... Mi stavo proprio chiedendo come era riuscito a procurarsi quel manufatto così alla svelta. Immagino che metà della sua storia fossero tutte balle. Parlerò con i miei ragazzi. Se quanto dici corrisponde al vero, ci occuperemo di questo atteggiamento così tipico degli uomini della Freedom. + + + Lascia perdere. + + + OK. + + + D'accordo. + + + Ci penserò. + + + Prendilo. + + + OK. + + + Ho incontrato un gruppo di combattenti che vuole unirsi alla Freedom. + + + Bene, accogliamo sempre gli uomini di valore. Se sono all'altezza dell'incarico sono i benvenuti. + + + C'è un piccolo problema, però... Sono ex-combattenti Monolith. + + + Un "piccolo" problema? I combattenti Monolith preferisco vederli da dietro un mirino. Tutto il resto è fuori questione. + + + Questi sono pacifici. Sembra che fossero sotto il controllo di qualcuno, perché non ricordano cosa sia successo loro dopo la partenza per Chernobyl. Ora non sanno proprio cosa fare. + + + Spiacente, ma continuo a essere scettico. E se mi stessi mentendo di proposito? + + + Mmm... Magari potrei scambiare due parole con loro e scoprire di cosa si tratta. Invierò un paio dei miei uomini con te. Parleranno con loro e se tutto andrà bene li accetteremo nella Freedom. + + + Ma perché non te ne vai? Non riesco a credere che tu stia davvero proponendo di accettare una simile feccia nella Freedom. + + + Sono qui per l'ammissione di quella squadra dei Monolith nella Freedom. + + + I miei uomini sono pronti per partire. + + + OK, di' loro di seguirmi. + + + Tra un po'. + + + Aspettiamo un attimo, le emissioni non fanno bene alla salute. + + + Ho trovato il PDA del fondatore della Duty. Ti interessa? + + + Sì, purché contenga qualcosa di utile... Wow, davvero interessante! Loro continuano a diffondere le loro stronzate di propaganda per tutta la Zona, ma a quanto pare la loro storia è piena di stronzate. Mi piacerebbe leggermi questa roba con attenzione. Ascolta, sono disposto a pagarti bene per questo PDA. + + + Prendilo. + + + Grazie! Ecco i tuoi contanti. + + + Ci penserò. + + + Prendi il PDA del fondatore della Duty. + + + Grazie! Ecco i tuoi contanti. + + + Gli scienziati stanno cercando gente da assumere. Hai qualcuno da inviare? + + + Beh, dipende dal lavoro che deve essere svolto. + + + Agli scienziati serve qualcuno che protegga il loro bunker. + + + Certamente. Invierò alcuni dei miei ragazzi. + + + Certamente. Invierò alcuni dei miei ragazzi. + + + Mi piacerebbe aiutarti, ma la Duty è già sul posto. Trascorriamo già abbastanza tempo con quei bastardi a Yanov, quindi credo che lasceremo perdere. Grazie comunque. + + + Puoi darmi una squadra con cui andare a Pripyat? + + + Parla con la nostra nuova recluta, Strider. Qui non si sente felice, quindi forse tu potrai dargli quel che cerca. + + + Se avessi qualche uomo disponibile probabilmente lo farei, ma purtroppo non è così. Abbiamo già abbastanza guai da queste parti. + + + Allora, cos'hai da dire? + + + Che cosa ci fai qui? + + + Sono felice di vederti, amico! Nella Freedom ho sentito parlare bene di te. Allora, come posso aiutarti? + + + Ho trovato uno strano oggetto in una galleria della ferrovia. Ti interessa? + + + Mmm, no. È spazzatura. Sembra un manufatto ma non ha alcun effetto. Normalmente regalo questa robaccia agli scienziati. + + + Ho trovato uno strano oggetto a Zaton. Ti interessa? + + + E cosa dovrei farci? Non mi interessano nemmeno i manufatti normali, quindi capirai... Fallo vedere agli scienziati, loro pagano bene per questo tipo di spazzatura. + + + Sto cercando uomini per proteggere il bunker degli scienziati. Conosci nessuno adatto al lavoro? + + + Non troverai nessuno migliore della Freedom. Potresti anche cercare di trovare un accordo con gli stalker, ma non sempre sono degni di fiducia. Se ti abbandonano a metà del lavoro, poi come farai a ritrovarli? Ti suggerisco di non parlare della cosa con la Duty. Quei fanatici sono bravi solo a disinfestare i mutanti e nient'altro. + + + Sto cercando uomini per raccogliere dei campioni per gli scienziati. Conosci nessuno adatto al lavoro? + + + Certo. Vai da Loki... lui sarà felice di aiutarti. Potresti anche cercare di trovare un accordo con gli stalker, ma alcuni di loro non sono particolarmente degni di fiducia. + + + Qualcuno ha rubato qualcosa dal mio ripostiglio. Sai chi potrebbe essere stato? + + + Cosa sta diventando questo posto, amico? Dubito che sia stato qualcuno della Duty. Loro seguono severe regole di disciplina, anche troppo rigide per i miei gusti. A quelli della Freedom non serve la tua spazzatura, quindi è stato sicuramente uno stalker. + + + Di recente ho incontrato una squadra dei Monolith. + + + Wow, io non ne ho mai incontrati! Anche se i ragazzi mi hanno raccontato delle storie da far gelare il sangue. Tipo che i Monolith sono dei veri pazzi. Dev'essere stata una dura lotta, vero? + + + Non c'è stata nessuna lotta. Sono persone pacifiche. Mi hanno detto che è come se un velo fosse stato sollevato dai loro occhi e grazie a questo hanno ripreso il controllo di loro stessi. Ora però non sanno che fare, quindi sto cercando di inserirli in una fazione per aiutarli. + + + Wow, interessante. Beh, degli stalker non se ne parla perché probabilmente gli sparerebbero a vista a causa dei loro precedenti incontri e via dicendo... Prova a parlare con Loki. Nessuno li toccherà se indossano uniformi della Freedom. + + + A chi potrebbe interessare la verità riguardo il fondatore della Duty? + + + Proprio non saprei. Dipende da quanto questa verità è diversa dalla storia ufficiale. Parlane con Loki, lui saprà consigliarti. + + + Ho il PDA dell'ufficiale delle scorte della Duty. Ti interessa? + + + Neanche per sogno. So dove comprare a un prezzo migliore tutta la merce che vende. Non c'è altro che potrebbe interessarmi. + + + Chi potrebbe venire a Pripyat con me? + + + Pripyat? Wow! Cavolo, mi piacerebbe mollare tutto e partire, ma al momento ho davvero molto da fare... + + + Pripyat? Wow! Dovresti chiedere a Loki se sa consigliarti qualcuno di adatto. Scommetto che non rifiuterà di aiutare un brav'uomo come te. + + + Sei venuto per rilassarti? I miei drink non sono niente di speciale, ma questo è un posto accogliente e dall'atmosfera amichevole. + + + Ho tutto quello di cui avrai bisogno. Cosa vuoi? Preferisci un boccone, un drink o vuoi sparare due colpi? + + + Sto cercando uomini per proteggere il bunker degli scienziati. Conosci nessuno adatto al lavoro? + + + Parla con gli stalker. Immagino che sarebbero felici di lavorare per le teste d'uovo... Dopotutto, questo gli darebbe un permesso ufficiale per entrare nella Zona. + + + Sto cercando uomini per raccogliere campioni per gli scienziati. Conosci nessuno adatto al lavoro? + + + Meglio lasciar stare gli stalker inesperti. Non troverebbero niente, anzi, potrebbero anche perdere qualcosa, se mi capisci. + + + Ultimamente ho incontrato una squadra dei Monolith e ti volevo chiedere una cosa. + + + Sai, per quanto ne so chi incontra dei combattenti Monolith si ritrova con qualche buco in più in corpo e resta senza battito cardiaco. Tu, invece, mi sembri piuttosto in forma. Allora, cosa volevi chiedermi? + + + Questa squadra non è affatto così. Ho parlato con loro, non ho dovuto affrontarli. + + + Ma non mi dire! + + + Sì, invece. Mi hanno detto che è come se un velo fosse stato sollevato dai loro occhi. Ora non sanno che fare, così hanno chiesto il mio consiglio. + + + Beh, il mio consiglio è di stare alla larga dagli stalker. Hanno una memoria troppo buona per lasciarli in vita. Potresti aiutarli a entrare in una fazione, ma non so se la Duty o la Freedom accetterebbero di farsi coinvolgere in questa storia. + + + Ho un PDA contenente la verità sul fondatore della Duty. Ti interessa? + + + Ricorda che a me non interessano i pettegolezzi. Se vuoi vendere delle informazioni, vai da Owl. Adora questo genere di cose. È anche vero che, considerato il tipo di informazioni, anche Loki o Shulga potrebbero essere interessati. + + + Ho il PDA dell'ufficiale delle scorte della Duty. Ti interessa? + + + Ho la sensazione che questo PDA mi procurerebbe dei problemi con la Duty, e questa è l'ultima cosa che voglio. Perché non provi a parlare con Loki? + + + Mi serve assistenza medica. + + + Diamo un'occhiata... + + + Così va meglio. + + + Chi potrebbe venire a Pripyat con me? + + + Parla con Vano, è uno stalker. È un gran bravo ragazzo, al punto che spesso questo gli procura un sacco di guai. + + + Da queste parti non ci sono molti pazzoidi, amico, quindi dovrai cercare altrove. + + + Cerchi dei medicinali o sei qui solo per chiacchierare? + + + Qualcuno ha rubato qualcosa dal mio ripostiglio. Sai chi potrebbe essere stato? + + + Sai come si chiama quello stalker? + + + Ho sentito dire che è qui non da tanto... Com'è che si chiama... Snob? Snap... No, no. Qualcosa tipo snack... Snag, ecco! Si chiama Snag. + + + Che si dice, fratello? + + + Ehi. Ho importanti questioni di lavoro da discutere con te. + + + Bene, prima facciamoci una bevuta per prendere questi affari davvero sul serio! + + + OK, beviamo. + + + No, adesso non ho nessuna voglia di bere. + + + Allora, di quali affari parlavi? + + + Ho intenzione di andare a Pripyat attraverso il passaggio sotterraneo che corre sotto lo stabilimento di Jupiter. Nitro mi farà entrare. + + + Mmm... andare a Pripyat passando sottoterra... Questa sì che è una buona idea... che richiede un'altra bevuta. + + + Salute. + + + Ehi, questa roba è buona. Spero che tu non voglia avventurarti in questa missione da solo, vero? No... non è il caso. Verrò io con te... e ti serviranno anche altri uomini. Un paio di persone fidate fanno comodo, in queste situazioni... + + + Nitro mi ha suggerito di mettere insieme una squadra... + + + Sì, è una buona idea... Facciamoci un'altra bevuta, al successo di questa missione... + + + Alla goccia! + + + Posso farcela anche da solo, sai... Cioè, a Zaton ho massacrato una tana di succhiasangue tutto da solo... Un paio di taniche di gas e inizia la festa! + + + Wow, hai il mio rispetto, amico. Beviamo all'importanza di avere sempre una tanica di gas a portata di mano! + + + Amen! + + + Uomini fidati, hai detto? Beh, questo posto è un covo di feccia... Ho incontrato un mercante a Zaton ma ho scoperto che faceva parte della Duty... + + + Wow, quindi la Duty cova delle serpi in seno... Cosa sta succedendo al mondo? Bah, smettiamola di preoccuparci e facciamoci una bevuta. + + + Mi inchino alla tua saggezza. Salute. + + + Mmm... Mica male, vero? Una squadra è una buona idea, ci serviranno almeno tre persone. Hai già in mente qualcuno? + + + Troverò qualcuno... Ci serviranno anche delle tute con dei moduli respiratori a ciclo chiuso... + + + Sì. La sicurezza innanzitutto e via dicendo... A proposito: non ti preoccupare per me, la mia tuta è a posto, ma ce ne serviranno per gli altri e forse dovremo faticare un po' per trovarle: quelle tute non sono molto comuni da queste parti. A una ricerca proficua! + + + Salute. + + + Conosci quello strano tipo di nome Noah? Vive tutto solo su una chiatta con ogni genere di merce... Anziché salutarti ha la tendenza a scaricarti addosso un paio di colpi di fucile. + + + Sì, è un po' che non lo vedo. Avevamo lavorato insieme tempo fa. Era un bravo combattente... peccato si sia ridotto così. Beviamo a lui e alla sua sanità mentale! + + + A Noah! + + + Ho incontrato Vano a Yanov un po' di tempo fa. Mi aveva detto che non riusciva a pagare il suo debito ai banditi. Comunque, ho aiutato quel povero bastardo... + + + Bene, con lui il viaggio sarà sicuramente più divertente, e poi faremo trasportare a lui tutte le provviste. A Vano! + + + Puoi dirlo forte, fratello! + + + Nel bunker degli scienziati vive un militare... Non ha niente da fare, quindi forse accetterà di venire con noi... + + + Sì, uno dell'esercito ci farebbe comodo... Beviamo alla speranza che si unisca a noi! + + + Beviamo! + + + Non ci crederai, ma l'altro giorno ho aiutato una squadra dei Monolith... A quanto pare avevano recuperato tutte le rotelle che gli mancavano e non sapevano cosa fare. Li ho aiutati e adesso sono a Yanov. + + + Mmm... A quanto pare la vodka ti ha dato alla testa! Oh, beh, di certe cose non se ne ha mai abbastanza! + + + Questo è vero. + + + OK, sembra che non ci sia altro... La cosa più importante è fare in modo di non perderci sottoterra... + + + Non ti preoccupare... ho le mappe. + + + Bene. Beviamo al successo della nostra missione! + + + Questo sì che è un brindisi! + + + Ah, amico, rilassati... L'altro giorno ho trovato l'Oasi... Proprio quella a cui nessuno riesce ad arrivare... + + + Wow, sei un vero esploratore! Con il tuo aiuto troveremo la strada per Pripyat in un batter d'occhio. Salute! + + + Salute. + + + Salve! + + + Credo di avere uomini a sufficienza. Possiamo partire. + + + Sei sicuro? Un altro paio di mani farebbero comodo. + + + Sono sicuro. Andiamo. + + + Hai ragione. Cercherò di trovare altri uomini. + + + Bene. Diamoci dentro, gente! + + + Muoviamoci. + + + I combattenti sono fondamentali, ma sei sicuro di avere abbastanza protezioni per te stesso? Prima di partire dovrai procurarti una tuta con modulo respiratorio a ciclo chiuso... Non ho intenzione di trascinare da nessuna parte il tuo culo morto... Ho già abbastanza roba da trascinare: il mio cannone e le munizioni pesanti. + + + Sì, ho capito. + + + Aspettiamo che passi questa emissione. In genere non sono molto salutari! + + + Dove posso trovare dei combattenti per formare la nostra squadra? + + + Chiedi alla gente dalle parti di Jupiter... Quelli che stavano a Zaton di sicuro non vorranno venire a Pripyat. Ci serve qualcun che non abbia motivo di restare... Devono essere disposti a unirsi a quella che, di fatto, è una missione disperata. Ricordi qualcuno così? Forse ci sono persone che sono in debito con te o magari conosci qualcuno che non si è ancora stabilito. + + + Adesso abbiamo uomini a sufficienza. Non ha senso radunare un'intera divisione. Useremo piccole squadre tattiche. + + + Che cosa ne pensi di Strider? + + + I Monolith sono generalmente combattenti fanatici e feroci... Non so nulla degli ex-membri, però. All'apparenza Strider sembra calmo, ma l'aspetto inganna, si sa. + + + Wow! Un'armatura Monolith. Dove te la sei procurata? + + + Faceva parte di un carico. Lui è Strider, un ex-combattente Monolith. + + + Non mi ero reso conto che ci fossero "ex" combattenti Monolith. Oh, beh, vedremo come se la caverà quando il gioco si farà duro. + + + Cosa ne pensi di Sokolov? + + + Quel tipo ha una bella tuta, molto scientifica. Erano un paio d'anni che non ne vedevo una così. + + + Quello è Sokolov, il copilota dell'elicottero militare che si è schiantato. + + + Beh, da come si comporta è evidente che non è uno scienziato. Un buon soldato fa sempre comodo. + + + Da quanto tempo conosci Vano? + + + Ci siamo incontrati un paio di volte al 100 Rads. Dicono sia un tipo onesto, ottimista e anche un bravo stalker... ma è troppo ingenuo, e questo è un difetto fatale nella Zona. + + + E così Vano è dei nostri? Bene, abbiamo qualcuno che trasporterà le provviste... Ah ah, rilassati, amico. Sto scherzando. + + + Chi avrebbe potuto rubare qualcosa da un ripostiglio personale? + + + Ti hanno derubato? Che peccato. Non so cosa dire. Non ho visto niente di sospetto da queste parti... Se scopro qualcosa te lo farò sapere, stanne certo. Non vogliamo spie alla base. + + + Ho sentito che da queste parti ci sono state delle sparatorie... + + + Ah, ero io. Degli idioti si sono messi a discutere vicino alla torre e hanno iniziato a gridare. Io ho sparato un paio di colpi del vecchio MG e loro sono scappati verso la sottostazione. Era proprio una riunione di idioti, eh eh. + + + Ho deciso di cedere il manufatto dell'Oasi. + + + Una saggia decisione. Dallo a me, per favore. + + + Tieni. + + + Splendido, questo miracolo deve essere studiato immediatamente. Oh, a proposito, grazie per i tuoi servizi: ecco quanto pattuito. + + + Ti serve aiuto? + + + Grazie, abbiamo già una squadra di stalker che lavora per noi. Anche se... sarebbe una teoria, di fatto è più una leggenda... Hai mai sentito parlare dell'Oasi? + + + Cercherò di trovare l'Oasi. + + + Scusa, al momento ho troppo da fare. + + + No, non ne ho mai sentito parlare. + + + Allora ascolta. Ne parlano in molti, ma a quanto pare nessuno l'ha mai vista. È come la fonte dell'eterna giovinezza. Se passi da lì, le tue ferite guariscono all'istante e la tua energia viene ripristinata. Ci sono molte voci, una più incredibile delle altre... Alcuni sostengono di averla vista in sogno, ma in quanto scienziato sono tenuto a domandare, "Come facevi a sapere che era proprio l'Oasi?" Se accetti di cercarla... Beh, non posso prometterti un fiume d'oro, ma se l'Oasi esiste davvero, la sua scoperta sarebbe un passo da gigante nella nostra ricerca. + + + Ho trovato l'Oasi. + + + Davvero?!? Quindi esiste? Non voglio fare lo scettico, ma hai riportato qualche prova? + + + Sì, ho portato una specie di manufatto. + + + Dammelo, presto! + + + Prendilo. + + + Splendido, questo miracolo deve essere studiato immediatamente. Oh, a proposito, grazie per i tuoi servizi: ecco quanto pattuito. + + + Non ci penso proprio. Potrebbe tornarmi utile. + + + Sei un vero egoista. E anche pericoloso. Le proprietà di questo manufatto sono sconosciute. Cosa farai se domani dovessi svegliarti con le gambe paralizzate? O con la pelle verde? Ti assicuro che è meglio lasciare che siano gli scienziati a maneggiare oggetti del genere... almeno noi facciamo di tutto per proteggerci dai loro effetti. + + + Cercare di spaventarmi non servirà a nulla. Mi terrò il manufatto. + + + OK, va bene. Prendilo. + + + No, non l'ho fatto. + + + No? Allora cosa dovrei studiare, secondo te? Sai cosa differisce gli scienziati dagli altri? Il fatto che per noi ogni teoria deve essere supportata dai fatti! Mi servono delle prove! + + + OK, allora ci tornerò. + + + Ci ho già trascorso fin troppo tempo. Adesso non posso tornarci. + + + Se non ti interessa essere pagato, almeno pensa alle possibilità che l'Oasi aprirebbe per la medicina! Se non mi sbaglio, l'Oasi possiede una natura anomala, tipica della Zona. Se è davvero così, è la prima anomalia in grado di guarire! + + + Come mai da queste parti? + + + Hai visto i mercenari che ci facevano da guardie? + + + È splendido vedere un'altra persona intelligente. Come posso aiutarti? + + + Riesci a crederci? I mercenari che ci facevano da guardie sono stati uccisi fuori dal bunker! + + + Hermann, tu sai niente dell'Oasi? + + + L'Oasi? Ah! È una menzogna, pura e semplice. Alla gente piace credere in una panacea in grado di curare ogni male, così si inventano queste favole. Credimi, l'Oasi non è altro che il frutto della fervida immaginazione di qualcuno. + + + Sono in molti a parlarne. + + + Anche troppi. Ma nessuno c'è mai stato. Io mi attengo a un punto di vista scientifico: ciò di cui non è stata dimostrata l'esistenza, non esiste. + + + OK, capisco. Grazie. + + + OK, andiamo. + + + Bene... Torneremo prima che tu possa dire "succhiasangue"... Ah! + + + Vedremo. + + + Bene. Ma prima di andare aspettiamo che finisca l'emissione. + + + Buona giornata a te, stalker. Sono lo Zio Yar... immagino che tu sia stanco per il viaggio. Mangia un boccone, già che sei qui. Hai scelto un bel momento per arrivare: mi serve aiuto. Alla mia età ci sono cose che non posso più fare da solo. Ai vecchi tempi, però... + + + Allora, ti senti fresco? Hai voglia di fare due passi? Potresti aiutare un povero vecchio... + + + Come va la vita? Tra l'altro, ti trovo meglio... + + + Qual è il lavoro? + + + Un gioco da ragazzi... Noi due andiamo fino a Kopachy. Non è lontano e il resto lo vedrai con i tuoi occhi arrivati sul posto... + + + I tuoi amici della Freedom non vogliono aiutarti? + + + Non voglio seccarli con questa roba... Noi due saremo più che sufficienti. + + + Verresti a Pripyat con me? + + + No... Se solo fossi più giovane... Mi ricordo che facevo avanti e indietro fino alla Siberia a piedi, ma ultimamente cerco di fare solo viaggi brevi... Probabilmente sto invecchiando. + + + Fai attenzione. + + + Aspetta. Se vai a Yanov che ne dici di fare il viaggio insieme? È sempre piacevole avere qualcuno con cui scambiare due chiacchiere... + + + Grazie, ma preferisco andare da solo. + + + Andiamo a Yanov. + + + Grazie per aver aiutato un povero vecchio... Prendi questo. Se hai delle domande chiedi pure. Ti risponderò come meglio posso... + + + Perché non hai chiesto aiuto ai membri della Freedom? + + + Che senso avrebbe far incavolare i mercenari con la Freedom? Abbiamo già fatto una guerra, e ci è bastata. Questa è una faccenda personale... Non ha senso coinvolgerli, capisci? + + + Ma si può sapere cos'è successo qui? + + + Sono venuti dei tizi per uccidermi... Sai, ero nascosto nei cespugli a farmi i fatti miei quando dal nulla è sbucata una squadra di mercenari. Il loro capo cianciava qualcosa nel suo PDA riguardo un laboratorio centrale a Pripyat, un ordine urgente e via dicendo... A quel punto ho calpestato un dannato ramo, rivelando la mia presenza. Allora ho impugnato il fucile e ho tentato la fuga, ma sapevo che sarebbero venuti a prendermi. Ecco il prezzo che si paga a origliare, oggigiorno. + + + Non devi stupirti di niente, questo è l'importante. Seguimi in silenzio... Se non faremo rumore filerà tutto liscio. + + + OK. + + + Dobbiamo andarcene da qui. Parleremo dopo. + + + OK. + + + Sto raccogliendo una squadra per andare a Pripyat. Vuoi unirti a me? + + + Invitante... ma no, grazie. Gli scienziati mi hanno promesso un permesso per restare nella Zona e mi pagano pure bene. Spiacente, ma credo che rimarrò qui. + + + Sei pronto per fare delle misurazioni nelle anomalie? + + + Siamo sempre pronti, purché tu ci copra. Di quale anomalia vogliamo occuparci? + + + Andiamo a Fen. + + + Superiamo il villaggio di Kopachy, fino al Cumulo di cenere. + + + Aspetta, non voglio più partire subito. + + + OK, siamo pronti, ma probabilmente conviene aspettare che passi l'emissione... + + + OK. + + + Abbiamo terminato le misurazioni, andiamocene. + + + Neanche a me piace stare qui a perdere tempo. Adesso dove andiamo? + + + Andiamo a Fen. + + + Superiamo il villaggio di Kopachy, fino al Cumulo di cenere. + + + Al bunker degli scienziati. + + + Aspetta, fammi pensare. + + + Sei pronto per tornare al bunker? + + + Siamo più che pronti... + + + Beh, in tal caso, andiamo. + + + OK, aspettami solo un istante... + + + Ho un paio di domande. + + + Chiedi pure e farò del mio meglio per risponderti. + + + Credo non ci sia altro. + + + Voglio chiederti alcune cose sulla missione degli scienziati. + + + Ah, la galleria... In quel posto c'è qualcosa, uno strano manufatto o qualcosa del genere. Comunque il posto è troppo misterioso. Inizialmente tutto era tranquillo, poi ho iniziato a sentire qualcosa dentro alla testa... Brulicava di criceti, ma di loro non devi preoccuparti... li elimineremo alla svelta. + + + Ci sei già stato? + + + Sì. Non ci siamo addentrati molto, stavamo facendo delle misurazioni per Hermann quando sono usciti i criceti. Quando siamo tornati, gli scienziati erano così eccitati per i risultati che pensavo se ne sarebbero andati. Invece, volevano che esplorassimo tutta la galleria da cima a fondo, ma io lì non ci entro più! Adesso che hanno assunto te, noi serviamo solo per fornire copertura. + + + Capisco. + + + Beh, abbiamo già fatto delle misurazioni, quindi sapremo cavarcela. + + + Dove avete già eseguito le misurazioni? + + + Beh, misurazioni è un parolone per un semplice lavoretto. In realtà lo abbiamo fatto solo una volta, nello psico-campo di quel maledetto tunnel. Anche allora, non appena abbiamo acceso i dispositivi, i criceti sono sbucati da ogni dove. Mace è riuscito a malapena a uscire tutto intero da lì. + + + Non trovi che sia strano? + + + No, perché dovrei? Alla Zona non piacciono gli impiccioni, quindi è normale. Ecco cosa mi ha detto una volta Ozersky, quindi si può dire che le sue parole si sono rivelate esatte. Chiedi pure a lui, se vuoi, forse sa qualcosa che non vuole condividere con noi. + + + Capisco. + + + Capisco. + + + Cosa puoi dirmi delle persone che vivono nel bunker? + + + Quello sì che è un bel gruppetto... Due scienziati, Hermann, il capo da queste parti, e Ozersky. Novikov si occupa della parte tecnica e Garry è la guida. Poi ci siamo noi, reclutati da poco per eseguire le misurazioni e altre cose scientifiche. Ah, l'altro giorno Garry ha portato nel bunker un tizio dell'esercito. Questo è tutto. + + + Puoi dirmi di più su Hermann? + + + Hermann è il capo da queste parti. È un professore, probabilmente in un qualche istituto segreto. Ha organizzato la spedizione, quindi hanno abbandonato questo bunker subito dopo la disattivazione del Bruciacervella. Inoltre, è stato lui ad assumere noi e Garry. Ci paga bene e ci ha persino promesso un permesso ufficiale per entrare nella Zona. + + + Parliamo d'altro. + + + Puoi dirmi di più su Ozersky? + + + È un bravo ragazzo, amichevole, ed è il numero due da queste parti. Hermann ogni tanto ascolta i suoi consigli. Non so molto altro su di lui, sai, per lo più abbiamo a che fare con Hermann. + + + Puoi dirmi di più su Novikov? + + + È una specie di Einstein, amico. Sa davvero il fatto suo quando si tratta di installare roba tecnica. È il migliore che c'è sul campo. Non so come sia finito qui, ma appare subito ovvio che conosce bene la Zona, meglio di noi. + + + Puoi dirmi di più su Garry? + + + Garry è un ragazzo in gamba, ed è stato uno dei primi ad arrivare qui. Mi ha raccontato che gli scienziati sono arrivati poco dopo di lui, e si è unito subito a loro. Ultimamente però si annoia, perché non ha più nessuno con cui chiacchierare, ma non può andarsene prima dello scadere del suo contratto con gli scienziati. Se vuoi sapere altro, chiedi direttamente a lui. + + + Parlami del tizio dell'esercito. + + + Ah ah. Garry lo ha incontrato mentre fuggiva dagli zombi. È stato fortunato a incontrare proprio Garry, perché molti altri lo avrebbero sicuramente tolto di mezzo. Non esce mai dal bunker e non lo biasimo. + + + Cosa ci fanno qui i mercenari? + + + Quei dannati tagliagole difendono il bunker. Sono arrivati un po' di tempo fa, hanno parlato con Hermann e non se ne sono più andati. Ho l'impressione che nemmeno a Hermann piaccia la loro presenza... Il loro capo si chiama Black e ha un vero caratteraccio. + + + Cosa puoi dirmi su quest'area? + + + Vediamo, non lontano da qui c'è una vecchia base militare. A nord della base c'è il villaggio e a est una stazione ferroviaria, dove si riuniscono gli stalker. Ah, e c'è anche un treno sulla ferrovia lì vicino... Non è un bel posto, credimi. + + + Parlami della vecchia base militare. + + + Beh, non c'è molto da dire... Qualunque cosa di valore è già stata saccheggiata da un pezzo, quindi al momento non restano altro che mutanti e zombi. C'è anche un piccolo bunker, sufficiente per proteggere da un'emissione. + + + Parlami del villaggio. + + + Beh, non è esattamente un villaggio, quanto più una serie di collinette. È stato sepolto nell'86 per impedire il diffondersi delle radiazioni. Oggi la gente non ci va più perché non è un posto salutare e non vi si trova niente di valore. + + + Parlami della stazione ferroviaria. + + + Cosa puoi dirmi del treno? + + + Beh... se non sei mai andato alla stazione Yanov vale la pena farci un salto. È un bel posto per bere qualcosa e incontrare altri stalker. Inoltre è l'unico posto sicuro, oltre il bunker, da queste parti. + + + Vedo che hai nuovi strumenti. + + + Sì, tesoro. Ora siamo ufficialmente noti come la squadra investigativa e di ricerca Iskra! Non credere che ci siamo dimenticati di te, ora che siamo scienziati! Io e i miei "colleghi" abbiamo discusso la questione in modo approfondito e la nostra conclusione è che... te lo sei guadagnato, amico! Se dovessi mai trovarti in un'anomalia o in un'emissione, che Dio te ne scampi, prenditi un momento per mandarci un biglietto di ringraziamento. Riceveremo il messaggio, fidati di me! + + + Ehi. + + + Salve. + + + Allora, sei pronto per partire o vogliamo aspettare un po'? + + + Pensavo che sarei rimasto in quel tunnel, trasformato in uno zombi senza cervello! Come posso aiutare l'uomo che mi ha salvato? + + + Ti va di sgranchirti un po' le gambe? + + + Ehi, fratello. + + + Siamo in debito con te, e non lo dimenticheremo. + + + Ho la sensazione che qui non ci sia più niente da fare. Andiamocene da questo posto... + + + Allora, che mi dici di questo tunnel? + + + Qui non c'è polvere, nemmeno un granello. Hermann attribuisce la colpa all'induzione magnetica, ma io fatico a crederci. + + + Chiedi al capo, io non so cosa dovrei e cosa non dovrei dirti. + + + Dimmi cosa hai scoperto mentre stavi eseguendo le misurazioni nello psico-campo. + + + Ho visto delle impronte sul terreno. Sembravano lasciate da un umano, ma chi potrebbe essere così pazzo da camminare scalzo in un posto del genere? + + + La mente ti si annebbia e tutto inizia ad assumere strane forme. È colpa di quel dannato psico-campo, sai cosa voglio dire? + + + E cosa hai scoperto sottoterra? + + + Non molto, solo un paio di criceti morti. + + + Eh eh... Nient'altro che non si trovi dappertutto nella Zona. + + + Stai bene? + + + Sto bene, grazie a te! Ti darò delle coordinate come segno della mia gratitudine. Potrai tenere tutto quello che troverai. Non è molto, ma te lo dono con il cuore... + + + Come ti senti? + + + Amico, grazie mille! Grazie... Sono senza parole. Ecco le coordinate del nostro deposito: un segno della nostra gratitudine. + + + Sei ancora vivo? + + + Grazie, non me lo dimenticherò. Ecco, prendi le coordinate del nostro deposito... te le meriti! + + + Il tuo cervello funziona ancora? + + + Cavolo, quello che ho visto quando ero... Non lo dimenticherò per tutta la vita. + + + Allora, si torna al bunker? + + + Puoi scommetterci! + + + Allora muoviamoci. + + + Tu vai avanti, ci vediamo lì. + + + La tua squadra è pronta per dirigersi al tunnel? + + + Dimmi solo quando. + + + Quando. Ci Muoviamo. + + + Aspetta ancora un po'. + + + Andrò da solo. Ci vediamo lì. + + + Andrò da solo. Ci vediamo lì. + + + No, non ci fidiamo di te e il tempo è denaro. Quindi o vieni con noi o non si va da nessuna parte. + + + In tal caso, andiamo subito insieme. + + + In tal caso dovrai attendere. + + + Non se ne parla... Non ha senso correre rischi durante un'emissione. + + + Allora, eccoci qui. + + + Allora... andiamo? + + + Sì, certamente! + + + Dammi un secondo per orientarmi. + + + Cosa diavolo vuoi? + + + Passavo solo di qui. + + + Allora continua per la tua strada. + + + OK. + + + Rilassati, idiota. + + + Non sono affari tuoi! + + + Oh... ciao... + + + Nimble mi ha detto che sei un bastardo traditore. Immagino tu abbia ingannato parecchi stalker. + + + Di cosa stai parlando? Non ho mai fatto niente del genere in vita mia! Nimble è fuori di testa! + + + Cos'hai raccontato ai banditi sul mio conto? Perché mi stavano aspettando vicino alle gru del porto? + + + Devi avermi scambiato per qualcun altro, io non ho niente a che fare con i banditi! + + + Nimble mi ha parlato di te... Ti suggerisco di darmi l'arma e rendere tutto più semplice per entrambi. + + + Cosa ti ha detto? Tutto quello che ho è roba mia! + + + Fatti un giro, amico... + + + Aiutami, fratello... Mi serve un kit di pronto soccorso! + + + Prima dimmi dove hai nascosto la mia roba! + + + Mi spiace, amico, ma avevo un gran bisogno di soldi... Ti dirò tutto, ma aiutami! Davvero, ho chiuso con quella roba, mi sono redento! + + + OK, tieni. + + + Grazie, amico! La roba è nel mio nascondiglio nelle fogne dietro la sotto-stazione. + + + Capisco. + + + Non ti credo. Niente kit di pronto soccorso. + + + Prendi. + + + Non te lo darò. + + + Grazie. Non pensavo che mi avresti aiutato... + + + Chi potrei assumere per proteggere gli scienziati? + + + La Duty, naturalmente. Chi altri, se no? Dopotutto sono i migliori combattenti nella Zona! Guardie d'assalto pesanti, che ne dici? + + + Al momento lavorano con la Freedom? In tal caso proprio non saprei. Volevo suggerirti la Duty, ma so che non vanno tanto d'accordo. + + + Chi potrei assumere per eseguire delle misurazioni per conto degli scienziati? + + + Prova a parlare con Shulga. I suoi uomini non sono tutti scienziati nucleari, e alcuni sono piuttosto svegli e potrebbero fare al caso tuo. + + + Pagano ancora la Freedom per proteggerli? In tal caso eviterei di assumere la Duty... è il miglior consiglio che posso darti al riguardo. + + + Quando siamo entrati nel sottopasso l'ascensore ha smesso di funzionare... + + + Ah, sei sceso usando l'unico generatore funzionante... Che è pure quello di scorta. Già è stata una fatica riuscire a farlo funzionare, mi sa che ha fatto il suo lavoro poi si è spento definitivamente. Dovresti essere contento che non si è fermato a metà strada... Quell'ascensore non ha un'uscita di emergenza! + + + Chi avrebbe potuto rubare qualcosa da un ripostiglio personale? + + + Dannazione! Proprio non saprei. Posso solo dirti che se Shulga fosse il capo a Yanov, cose del genere non succederebbero. + + + Chi potrebbe aprire un contenitore d'acciaio? + + + Non sono mica uno scassinatore, amico! Il metallo non fa per me... Se invece hai dei problemi di elettronica fammi un fischio. + + + Un gruppo di pacifici combattenti Monolith cerca un rifugio. Chi potrebbe aiutarli? + + + Dici sul serio? Ho sentito dire che sono come degli animali... Beh, di sicuro gli stalker non gli hanno reso la vita facile. Probabilmente dovresti parlare con Shulga. Se il tenente colonnello permette loro di unirsi alla Duty saranno al sicuro. Forse potrebbero persino trovare qualcosa di utile da fare. + + + Sai come decifrare una scatola nera? + + + Vediamo un po'... Non sarà un lavoro facile. Ci vorranno almeno tre ore e non ti costerà poco. Farò il lavoro poi parleremo... Intanto tu fatti una passeggiata, io ho bisogno di concentrarmi. + + + Vediamo un po'... Non sarà un lavoro facile. Ci vorranno almeno tre ore e non ti costerà poco. Farò il lavoro poi parleremo... Intanto perché non vai a cercare i pezzi che mi servono? Guadagnerai qualcosa e ti ridurrò il costo del lavoro. + + + Cosa? Ci sto ancora lavorando su. Dannazione, questa scatola è un vero incubo. + + + Finalmente ho finito con la tua scatola nera... È stata una vera scocciatura... + + + Quanto ti devo? + + + Almeno 3.000. + + + Prendi. + + + Non ho tutti quei contanti. + + + Beh, ti farò uno sconto quando mi porterai i componenti. + + + Fai come se fossi a casa tua. + + + Troppo caro per le mie tasche... Ci penserò su. + + + Ti farò uno sconto. Solo 2850. + + + Ti farò uno sconto. Solo 2.700. + + + Ti farò uno sconto. Solo 2.550. + + + Ti farò uno sconto. Solo 2.400. + + + Ti farò uno sconto. Solo 2.250. + + + Ti farò uno sconto vantaggioso. Solo 2.100. + + + Ti farò uno sconto vantaggioso. Solo 1.950. + + + Ti farò uno sconto vantaggioso. Solo 1.800. + + + Ti farò un prezzo di favore per un lavoro del genere. Solo 1650. + + + Eh eh, naturalmente non so a cosa ti serve la registrazione, ma visto quanto l'hai pagata spero bene che ti sia utile. + + + Vedremo. + + + Sono ancora al lavoro sulla scatola nera... Perché non ti rendi utile e mi vai a cercare i componenti? + + + Parli di Senka? L'ho incontrato la prima volta che passavo attraverso Zaton e da allora è rimasto sempre con me... È un ubriacone professionista con anni e anni di esperienza sulle spalle... Ah ah! Lo sfrutto per svolgere dei lavoretti qua e là... + + + A chi potrebbero interessare delle informazioni sul fondatore della Duty? + + + A Shulga, naturalmente... La Duty tiene molto alle proprie origini. Sai come si dice: se non studiamo la storia, siamo destinati a ripeterne gli errori. L'importante è che la Freedom non metta le mani su queste informazioni. Non farebbero che distorcerle, non ci sono dubbi. Mica per malignità, ma semplicemente perché hanno una pessima memoria. + + + Ti ho portato gli strumenti. + + + Perfetto... Quali sono per me? + + + Quelli per il lavoro di base. + + + Grandioso! Adesso mi servono gli strumenti per la calibrazione e il lavoro di precisione... + + + Quelli per il lavoro di precisione. + + + Grandioso! Adesso mi servono gli strumenti per la calibrazione e il lavoro di base... + + + Quelli per la calibrazione. + + + Grandioso! Adesso mi servono strumenti per il lavoro di base e quelli per il lavoro di precisione... + + + Nessuno, per adesso. + + + Bene! Ora mancano solo degli strumenti per la calibrazione e sarò a posto. + + + Bene! Ora mancano solo degli strumenti per il lavoro di precisione e sarò a posto. + + + Bene! Ora mancano solo degli strumenti per il lavoro di base e sarò a posto. + + + Wow! Ma come sei riuscito a trovarli? + + + Se ti servono degli strumenti posso procurarteli io. + + + Sarebbe grandioso. Adesso mi sembra di lavorare nell'età della pietra. L'unica differenza è che al posto della bacchetta dello sciamano ho il ferro da saldatura... Se avessi gli strumenti adatti potrei eseguire notevoli potenziamenti, e stai pur certo che ne verrebbe in tasca qualcosa anche a te... + + + OK. Vado a cercarli. + + + Ho cambiato idea. + + + Buona idea. Io potrò eseguire i potenziamenti e tu guadagnerai qualcosa... + + + Ho il PDA del mercante della Duty: conosci qualcuno a cui potrebbe interessare? + + + Un mercante nella Duty? Ma non mi dire... Dai il PDA a Shulga, saprà lui cosa farne. Ma non devi dire nulla alla Freedom, mi hai capito bene? Ricorrerebbero a ogni meschinità pur di sabotare la reputazione di tutta la fazione... + + + Ho trovato dei documenti. Descrivono un modo per arrivare a Pripyat. + + + Diamo un'occhiata... Bene, bene, bene... Quindi, per riassumere, c'è un passaggio sotterraneo chiamato Pripyat 1 che corre sotto la città di Pripyat, con una sezione che finisce nella zona di trasporto dello stabilimento Jupiter. Notevole! A giudicare dagli appunti, è stato sigillato, riempito di gas e privato della corrente elettrica. Immagino che potremmo cercare di ripristinare il generatore e aprire la serratura. Solo che... + + + ...Solo che io non ho intenzione di entrare a Jupiter senza protezione, e ti inviterei caldamente a non andare sottoterra da solo. Dovrai portare con te almeno un paio di uomini. Avrete tutti bisogno di tute con moduli respiratori a ciclo chiuso, altrimenti non durereste nemmeno un minuto là sotto. Ascolta, Zulu vive in una torre non lontano da qui, prova a parlare con lui. Se gli farai una buona impressione ti dirà come radunare una squadra. + + + Hai parlato di materiali... + + + Giusto, da queste parti è pressoché impossibile trovare dei materiali da usare con un'attrezzatura radio funzionante. Ho sfruttato tutto quello che sono riuscito a trovare, ma nessuno fornisce i materiali adatti perché si guadagna di più a vendere pistole... Ho sentito dire che potrebbe essere rimasto qualcosa alla fabbrica di cemento, però... + + + Ecco, ho trovato i materiali. Ho esplorato la fabbrica di cemento da cima a fondo! + + + Wow, fratello... Sono senza parole! Mi scrivo subito un promemoria: mano d'opera gratuita su tutte le riparazioni e i potenziamenti per il mio stalker preferito! + + + Sono riuscito a trovare alcuni dei materiali che volevi. Ecco qui. + + + Wow! Avrai sconti a profusione, amico mio! + + + Posso procurarti io i materiali. + + + Sarebbe splendido! Se riesci a trovare della colofonia o dei condensatori, portameli... Diamine, ti sarei grato perfino se mi portassi della textolite. Non posso prometterti contanti a palate, ma di sicuro avrai un ottimo sconto. + + + Per cosa ti servono i materiali? + + + Io lavoro con le armi e le attrezzature... Insomma, bisogna pur fare qualcosa per campare... Ma la mia vera passione sono le radio. Sai cosa si prova a costruire qualcosa e vedere che funziona? Ricordo che una volta ho costruito un'emittente di disturbo... Mi è tornata molto utile: l'accendevo quando gli annunci del 100 Rads non mi lasciavano dormire. + + + Perché dovrebbero esserci dei componenti radio alla fabbrica di cemento? + + + Fabbrica di cemento è ormai solo un nome... Aveva smesso di produrre cemento fin da prima del disastro di Chernobyl. Hanno smantellato il possibile e hanno iniziato a sfruttare l'edificio per costruire applicazioni elettriche. + + + A Jupiter ho trovato dei documenti. Vuoi dare un'occhiata? + + + Allora... Qui non c'è niente di interessante... solo scartoffie amministrative... + + + Mmm... di tanto in tanto c'è qualcosa di interessante, ma niente di certo... Ci occorrono informazioni complete. Prova a controllare nei posti menzionati nei documenti. + + + Mi servono dei materiali, dannazione! Come faccio a lavorare in queste condizioni?... Ah, salve. Come va? + + + Salve! Ti occorre qualche lavoretto tecnico? Naturalmente non dispongo dei materiali, ma posso sempre riparare il tuo kit ed eseguire piccoli potenziamenti. + + + Ah, salve. Ascolta, ho pensato... A quanto pare tutti i materiali che mi servono stanno prendendo polvere alla fabbrica di cemento... Il solo pensiero mi dà sui nervi... + + + Ehi! Ti si è rotto qualcosa o hai racimolato i soldi per un potenziamento? Ricorda che hai uno sconto a vita! + + + Ciao, fratello, come posso aiutarti? Ricorda, per te solo prezzi di favore! + + + Puoi sbloccare un modulo di memoria? + + + Penso di sì... Non l'ho mai fatto prima d'ora, quindi mi ci vorranno almeno tre ore. Comunque sarò felice di provarci. Tutto considerato, ti farò un buon prezzo: solo 1.000. + + + Non ho fretta, quindi direi affare fatto! + + + Grandioso! Mi metto subito al lavoro... Tu intanto fai pure quello che vuoi, ti farò sapere quando avrò finito. + + + Non ho tutti quei contanti. + + + Torna pure quando vuoi e ti farò il lavoro. Tanto non troverai un prezzo migliore. + + + Ci penserò. + + + Ti ho detto che ci riuscirò in tre ore. Inoltre, 1.000 è un ottimo prezzo, quindi fossi in te accetterei. + + + Allora, hai sbloccato il modulo di memoria? + + + No, ci sto ancora lavorando... Non ti preoccupare, appena avrò finito te lo farò sapere. + + + Come? Non hai ricevuto il modulo? Allora non hai incrociato Senka. Te lo avevo mandato incontro perché ti consegnasse il modulo... Beh, fa lo stesso. Oltre ai dati sui livelli di densità del terreno e della vegetazione conteneva anche le coordinate di tre radiofari. Caricherò tutto sul tuo PDA... + + + Hai rintracciato le chimere? + + + Quella ferita è andata a Zaton. Il gruppo di Gonta la sta seguendo... Ma ho sentito che a loro manca un cacciatore esperto. Se li aiuti ti ricompenserò lautamente... L'altra, quella che ha ucciso Fox... quella l'ho persa. È come se fosse svanita... Povero Fox... era un brav'uomo, ma l'età esige il suo dazio... + + + Beh, tu ti sei occupato di una, quella ferita... L'altra, invece, quella che ha ucciso Fox... l'ho persa. È come se fosse svanita... Povero Fox... era un brav'uomo, ma l'età esige il suo dazio... + + + Tu che cosa fai? + + + Beh, sono Trapper e fino a poco tempo fa cacciavo i mutanti che costituivano un pericolo per gli stalker. Oggi prendo ordini e li impartisco ai cacciatori più giovani. Li addestro e insegno loro tattiche di caccia... + + + Parlami della caccia ai mutanti... + + + Beh, i mutanti richiedono approcci diversi... Per i seppellitori e i poltergeist ne serve uno, mentre per gli pseudogiganti e i controllori un altro... e le chimere sono casi tutti speciali. + + + Parlami dei seppellitori. + + + I seppellitori usano attacchi gravitazionali... Quando sono lontani cercano di lanciarti qualcosa contro, mentre quando sono vicini lanciano direttamente te. La cosa migliore da fare è tenersi a una distanza media e non smettere mai di muoversi, a meno che non ti piaccia farti colpire da qualcosa di grosso e pesante... Ma non dimenticare di conservare la tua energia! I seppellitori possono usare degli impulsi gravitazionali per strapparti le armi dalle mani, e se sei stanco potrebbero riuscirci senza fatica. + + + Parlami dei poltergeist. + + + Ci sono due tipi di poltergeist. Il primo lancia degli oggetti contro il nemico usando campi gravitazionali, mentre il secondo, detto poltergeist del fuoco, usa le fiamme per ardere le proprie vittime. I cacciatori inesperti gli girano intorno per evitare i loro attacchi... Ma il trucco sta nel sapere che i poltergeist non vedono né sentono nel senso tradizionale del termine: sfrutta quindi questo fatto a tuo vantaggio. Loro percepiscono gli oggetti all'interno del campo gravitazionale... Quindi un cacciatore più esperto si ferma non appena vede un poltergeist, spara e si ferma di nuovo, e avanti così. + + + Parlami dei controllori. + + + Usano la tua stessa mente contro di te. Quando cacci un controllore, è importante mettersi al riparo, perché per influenzare la tua mente deve vederti. Inoltre, sono piuttosto lenti, quindi se sei in pericolo di vita usa pure le granate. + + + Parlami delle chimere. + + + Sono predatori notturni alquanto pericolosi. Sfruttano le tenebre per aggirarti e balzarti addosso da dietro. Se sai che c'è una chimera nei dintorni, non smettere mai di guardarti le spalle tue e quelle dei tuoi amici... + + + Parlami degli pseudogiganti. + + + La cosa più difficile della caccia agli pseudogiganti è ucciderli. Possono subire ingenti danni senza battere ciglio... Posso solo dirti che probabilmente la cosa più utile è usare un fucile a distanza ravvicinata. Ricorda che gli attacchi degli pseudogiganti possono sradicare tutto ciò che non è ben piantato. Attaccali dall'alto... e assicurati che il tuo punto d'appoggio possa subire dei danni senza crollare. + + + OK, lascia perdere. + + + Perché non vai più a caccia? + + + Amico mio, sto invecchiando. Ecco perché Fox è morto... Lui era il mio amico e il mio compagno di caccia. Insieme, spalla a spalla, abbiamo ucciso dozzine di bestie. Poi, nei pressi di Zaton, ci siamo imbattuti in due chimere che non venivano avvistate nella Zona da diciotto mesi... Una ha buttato Fox a terra ancor prima che riuscissi a estrarre il fucile. Ho ferito l'altra e sono scappate... Spero possano ardere per sempre all'inferno! + + + Chi avrebbe potuto rubare qualcosa da un ripostiglio personale? + + + Mmm... non saprei. Cose del genere non succedono tra i cacciatori. Piuttosto, se fai incazzare qualcuno puoi fare la scoperta che le persone sanno essere piuttosto avare di proiettili quando hai un succhiasangue attaccato alle chiappe. + + + A mali estremi, estremi rimedi... Considerato quello che so dei succhiasangue, direi che almeno un paio erano usciti a caccia... Ma ora che non hanno più una tana dove tornare non costituiscono più una minaccia per gli stalker. + + + Hai del lavoro per me? + + + Certo. L'altro giorno una squadra di stalker si è addentrata nelle gallerie a nord dello stabilimento e si è imbattuta in una tana di mutanti. I ragazzi erano tutti così sconvolti che nessuno ha saputo spiegare di quale tipo di mutanti si trattasse, ma due stalker non sono riusciti a uscirne vivi. Dopo questo episodio la gente di Yanov si è spaventata a morte e ha istituito una ricompensa di 5.000 per chi è disposto a occuparsi di questa tana. È un lavoro pericoloso, quindi sta a te decidere... Cosa vuoi fare? + + + Ci sto. + + + Sei un uomo coraggioso. Buona fortuna, ne avrai bisogno. + + + Non adesso. + + + Non ti biasimo... Dubito che qualcuno avrà mai il fegato per occuparsi di un'intera tana di mutanti. + + + Stessa storia. Mutanti non identificati nelle gallerie a nord dello stabilimento Jupiter. Ricompensa di 5.000... Ti va di accettare l'incarico? + + + Al momento gli stalker sono preoccupati per i mutanti nelle gallerie... + + + I mutanti nelle gallerie erano nani mutati. Ora sono nani mutati morti. + + + Direi che si trattava di seppellitori. Questo spiega perché la gente di Yanov si era tanto agitata... Beh, ora che sono morti la ricompensa è tutta tua! + + + Direi che si trattava di seppellitori... Quelli che di recente hanno ammazzato due stalker. Questo spiega perché la gente di Yanov aveva fissato una ricompensa per la loro uccisione. Beh, ora che sono morti, la ricompensa è tutta tua! + + + Sono pronto per occuparmi della chimera. + + + Grandioso. Il cacciatore che ha trovato quella bastarda l'ha vista proprio mentre faceva buio. Era diretta verso il complesso di ventilazione. Le chimere sono animali notturni e territoriali, quindi probabilmente stava andando nella sua zona di caccia... Penso che sia il caso di cercarla lì, una volta calate le tenebre. È anche vero che quando fa buio è più attiva... Sii prudente e buona caccia. + + + La chimera è morta. + + + Grazie... grazie! Hai vendicato Fox, che ora può riposare in pace. Ecco il tuo denaro, te lo sei guadagnato. Non è tutto, prendi anche il mio fucile. Mi hai portato qualcosa di più importante: dopo tanto tempo, finalmente un po' di pace... + + + Sono Trapper... non c'è bisogno che ti presenti. + + + Come mai da queste parti? + + + Grazie per essere venuto... Mi serviva un cacciatore esperto e affidabile, e tu sei quanto di meglio Yanov ha da offrire. Dopo tutto quello che è successo, non posso permettere alla chimera di fuggire di nuovo. Investirò tutti i miei risparmi in questa missione: 10.000. Voglio assicurarmi che il lavoro venga svolto bene... Fox deve essere vendicato! + + + Ti supplico di uccidere la chimera. Se non vuoi farlo per liberare Yanov da questo mutante omicida, allora fallo per i soldi: 10.000 sono un bel po' di contanti. + + + Ci sono aggiornamenti sulla chimera? Il tempismo è essenziale, poiché potrebbe dirigersi verso nuove zone di caccia. + + + Che bello vederti! Che si dice di nuovo? + + + Hai del lavoro per me? + + + Certo... A Fen è stato individuato un gruppo di succhiasangue della palude, dietro la fabbrica di cemento. Sembra che per il momento non si muovano dalla loro palude... Ma gli stalker del posto vogliono assicurarsi che ci restino per sempre, se capisci cosa voglio dire. Il pagamento per tutto il gruppo è 3.000. Che ne dici? + + + Ci sto. + + + Bene. Buona caccia, allora... + + + Non adesso. + + + A te la scelta. Hai ancora tempo per cambiare idea prima che altri cacciatori accettino il lavoro. + + + Stesso discorso di prima... Il gruppo di succhiasangue della palude a Fen, dietro la fabbrica di cemento. La ricompensa è 3.000... ci stai? + + + Al momento a Fen ci sono solo i succhiasangue... + + + Ho ucciso i succhiasangue della palude. + + + Ora gli stalker potranno finalmente rilassarsi. Ecco la tua ricompensa, come pattuito. + + + Sì, gli stalker del posto saranno felici di essersi sbarazzati di questi scomodi vicini. Hanno anche messo insieme i soldi della ricompensa, 3.000 per essere precisi. Ecco, prendili. + + + Io e Gonta abbiamo ucciso la chimera a Zaton. + + + Grazie mille. Meno bestie di quella risma ci sono in giro, meglio per tutti. Ora, se potessi individuare anche l'altra... + + + Grazie per esserti occupato anche della seconda bestia. È bello sapere che quelle chimere non si prenderanno più le vite degli stalker... + + + Dimmi come hai ucciso il controllore. + + + Ascolta e impara, amico, ascolta e impara... Sono andato al mio nascondiglio per recuperare il bottino e, una volta arrivato, ho visto un controller seduto sopra di esso. Così ho preso una grata di metallo da terra e l'ho usata come scudo mentre mi avvicinavo. Quando quello stronzo si è reso conto di cosa stava succedendo, gli avevo già scaricato mezzo caricatore in testa. Proprio mentre iniziava a cercare di controllarmi, gli ho dato un'ultima botta con il calcio del fucile. Fine della storia. + + + Parlami dei manufatti alla cava. + + + Ah! Non c'è molto da dire, perché ormai alla cava non c'è rimasto più un cazzo! Non ha senso ispezionare le anomalie già esplorate da Flint, questo lo sanno tutti. + + + Allora sei stato tu a lasciare il tuo amico a morire nella cava! + + + Cosa?!? + + + Non puoi dimostrare nulla. Sono tutte balle. È la tua parola contro quella di un membro della Freedom... tanti auguri. + + + Vedremo. + + + Niente. + + + Grazie, ciao. + + + Raccontami la storia dei succhiasangue di Zaton. + + + Quando ero a Zaton, i succhiasangue rendevano un inferno la vita degli stalker. Questi li combattevano giorno e notte, ma i succhiasangue tornavano sempre. Io decisi di aiutarli, presi il fucile e andai dritto alla tana dei succhiasangue. Mi bastò passare un po' di tempo con i nostri cari affezionati e il problema a Zaton fu del tutto risolto. + + + Probabilmente non sai neanche dov'è la tana. + + + Sparisci. + + + Cosa vuoi? Vai a sparare le tue fregnacce da un'altra parte! + + + Fatti un giro, amico... È la tua parola contro quella di un membro della Freedom... tanti auguri. + + + Vedremo. + + + Grazie, ciao. + + + Raccontami la storia della scorciatoia per Jupiter. + + + La guida faceva sempre delle lunghe deviazioni dalla strada di Zaton. Io, invece, volevo andare dritto... e l'ho fatto. Ho provato alcune strade e sono riuscito a districarmi abbastanza velocemente tra le anomalie. Poi ho venduto le indicazioni alla guida, che ora prende sempre quella strada. + + + E se chiedessimo a Pilot chi gli ha procurato le mappe? + + + Sparisci. + + + Cosa vuoi? Vai a sparare le tue fregnacce da un'altra parte! + + + Non puoi dimostrare un bel niente... È la tua parola contro quella di un membro della Freedom... tanti auguri. + + + Vedremo. + + + Grazie, ciao. + + + Raccontami del tuo viaggio all'Oasi. + + + Sono stato il primo a raggiungere l' Oasi. È un posto privo di mutanti e anomalie: ci sono solo pace e quiete dappertutto. E di manufatti se ne trovano in abbondanza, puoi scegliere quello che più ti piace e portarlo a casa. + + + Stronzate. Sono stato all'Oasi e non è affatto così. + + + Sparisci. + + + Cosa vuoi? Vai a sparare le tue fregnacce da un'altra parte! + + + Fottiti. È la tua parola contro quella di un membro della Freedom... tanti auguri. + + + Vedremo. + + + Grazie, ciao. + + + Raccontami del tuo lavoro con gli scienziati. + + + L'altro giorno sono stato al loro bunker. Erano molto contenti e mi hanno detto, "sei proprio quello di cui abbiamo bisogno, Flint!" Insomma, volevano qualcuno che piazzasse i loro congegni sotto le anomalie. Allora io ho detto, "ma è un gioco da ragazzi!" e in quattro e quattr'otto ho fatto quello che volevano. La parte difficile è stata far sganciare i soldi della ricompensa a quei secchioni. + + + Piantala di prenderti il merito per il successo altrui. Quello l'ho fatto io, non tu! + + + Sparisci. + + + Cosa vuoi? Vai a sparare le tue fregnacce da un'altra parte! + + + Balle... non puoi dimostrare un bel niente. È la tua parola contro quella di un membro della Freedom... tanti auguri. + + + Vedremo. + + + Grazie, ciao. + + + Ehi, vuoi stare a sentire anche le mie storie? + + + Vuoi chiedermi qualcosa? + + + Che cosa vuoi? + + + Amico... merda... sto morendo... + + + Prendi questo kit di pronto soccorso. + + + Grazie, amico... ma non servirà... Ascolta... sono venuto qui con un membro della Freedom... abbiamo trovato un manufatto... tornando indietro sono incappato in un'anomalia gassosa... se mi avesse aiutato me la sarei potuta cavare... invece... ha preso il manufatto e mi ha abbandonato qui. Diceva che sarebbe andato a chiedere aiuto... Devi trovarlo. Voglio che tutti sappiano che non ci si può fidare di lui... + + + Lo troverò. + + + Dubito che riuscirò a dimostrare qualcosa. + + + Aggrappati alle mie spalle, ti porto da un medico. + + + Sono cose che capitano. Stammi bene. + + + Ho qualcosa per te... + + + Un Pezzo di carne. Ecco, prendilo. + + + Grazie. Gli scienziati pagano bene, ma a me interessa di più il permesso. + + + Grazie mille, amico! Finalmente ora posso andare a Pripyat... devo solo trovare il modo di arrivarci. + + + Un Kolobok. Ecco, prendilo. + + + Grazie. Gli scienziati pagano bene, ma a me interessa di più il permesso. + + + Grazie mille, amico! Finalmente ora posso andare a Pripyat... devo solo trovare il modo di arrivarci. + + + Un Pezzo di carne e un Kolobok. Ecco, prendili. + + + Grazie mille, amico! Finalmente ora posso andare a Pripyat... devo solo trovare il modo di arrivarci. + + + Nessuno. + + + Da queste parti ci si annoia parecchio? + + + Parlavi del tuo contratto... + + + Beh, ho firmato per lavorare per gli scienziati, pensando che sarebbe stata una passeggiata. Peccato che non mi fossi accorto che il contratto è valido solo al termine di tutto il lavoro, alla fine del quale gli scienziati mi hanno promesso un permesso per restare nella Zona. + + + Ho rispettato ogni dannata clausola del contratto, tranne un maledetto dettaglio. Devo trovare tutti i manufatti chimici esistenti. Chi poteva sapere che da queste parti non si trovano né Pezzi di carne né Kolobok? Se ne avessi trovati, me ne sarei già andato a Pripyat da un pezzo, ma non posso! + + + Forse potrei aiutarti io a procurarti quei manufatti. + + + Che peccato. + + + Sì... Un Pezzo di carne e un Kolobok e potrò partire per Pripyat! + + + Cosa c'è di tanto speciale a Pripyat? + + + Nessuno sa come arrivarci... Siamo nella Zona, dopotutto, quindi non è che ci si può andare tranquillamente a piedi. Dicono che è un vero tesoro di manufatti. E poi, intorno a Pripyat circolano talmente tante leggende che sono semplicemente curioso. + + + Sto raccogliendo una squadra per andare a Pripyat. Vuoi unirti a me? + + + In realtà anche io stavo pensando di andarci... Ma preferirei farlo da solo. Niente di personale, è che sono abituato a lavorare così... + + + Ah, anche io presto partirò per Pripyat... ma viaggerò da solo. Niente di personale, è che sono abituato a lavorare così... + + + Benvenuto nel regno della noia. + + + Cavoli, quanto vorrei andare a Pripyat! + + + Devo solo escogitare un modo per arrivare a Pripyat e ci sarò in un batter d'occhio. + + + Qui si sta bene! È così che la vita deve essere vissuta! + + + È bello sentirsi al sicuro, certo. Solo che vorrei fosse meno noioso! + + + Forse potrei aiutarti io a procurarti quei manufatti. + + + Sai davvero come arrivare a Pripyat? + + + No, ma se quel posto è pieno di manufatti come si dice in giro, allora sono pronto a scoprire subito una strada. Sono un apripista di prima qualità, sono stato uno dei primi a trovare la strada per Jupiter. Ma lavoro sempre da solo, non ho tempo di guardare le spalle anche a qualcun altro. + + + Mi porterai a Jupiter? + + + Certo. Sei pronto per partire? + + + Sì. + + + Non ancora. + + + Non durante un'emissione. + + + Mi porterai a Pripyat? + + + Ci sto per 5.000. Mi piace quel posto! + + + Affare fatto. + + + No, grazie. + + + OK, come ti pare. + + + Non penso di avere abbastanza denaro. + + + Ci sto per 5.000... Però aspettiamo che l'emissione finisca. + + + Puoi portarmi a Zaton? + + + No, amico... lì ci si annoia a morte. Parla con Pilot, lui è lo specialista dei lavori sicuri ma noiosi. + + + Beh, posso portarti fino a Yanov e per 3.000 posso convincere Pilot a portarti fino a Zaton. Che ne dici? + + + D'accordo. + + + No. + + + Come vuoi. + + + Non ho tutti quei contanti. + + + Beh, posso portarti fino a Yanov e per 1.000 posso convincere Pilot a portarti fino a Zaton. Che ne dici? + + + No, amico... lì ci si annoia a morte. Parla con Pilot, lui è lo specialista dei lavori sicuri ma noiosi. Parla con lui una volta terminata l'emissione. + + + Beh, posso portarti fino a Yanov e per 3.000 posso convincere Pilot a portarti fino a Zaton... Una volta finita l'emissione, ovvio. + + + Beh, posso portarti fino a Yanov e per 1.000 posso convincere Pilot a portarti fino a Zaton... Una volta finita l'emissione, ovvio. + + + Dicono che sei passato dalle gallerie, è vero? Anche io sono arrivato da Jupiter, attraverso un passaggio sotterraneo. Posso riportarti indietro gratis, se ti serve... Sai, sono felice di fornire qualunque tipo di assistenza alle autorità. + + + È un pezzo che non ci si vede! Dicono che sei passato dalle gallerie, è vero? Io ho trovato un passaggio sotterraneo. Posso riportarti indietro gratis, se ti serve... Sai, sono felice di fornire qualunque tipo di assistenza alle autorità. + + + È un pezzo che non ci si vede! Dicono che sei passato dalle gallerie, è vero? Non ci crederai, ma sono riuscito a liberarmi del mio contratto e a ottenere comunque il permesso... Non appena l'ho ricevuto mi sono diretto qui e ho trovato un passaggio sotterraneo. Posso riportarti indietro gratis, se ti serve... Sai, sono felice di fornire qualunque tipo di assistenza alle autorità. + + + È un pezzo che non ci si vede! Dicono che sei passato dalle gallerie, è vero? Io ho trovato un passaggio sotterraneo. Posso riportarti indietro gratis, se ti serve... Sai, sono felice di fornire qualunque tipo di assistenza alle autorità. A proposito, grazie per avermi aiutato a portare a termine il contratto con gli scienziati... Ho dato un'occhiata in giro e ho trovato questo. Prendilo, sono sicuro che ne farai buon uso. + + + Topol, perché non proteggi il bunker degli scienziati? + + + Siamo assunti per eseguire delle misurazioni e raccogliere campioni. Praticamente siamo scienziati anche noi. E poi, anche se non ho niente contro quel tipo di lavoro, non so se sarei in grado di gestire i nuovi nemici delle teste d'uovo. Non ho voglia di morire per colpa del proiettile di un mercenario. + + + Sei nel posto sbagliato, amico! E ti conviene andartene prima che diventi anche il momento sbagliato! + + + Cerchi forse dei guai? Vattene prima che siano loro a trovare te! + + + Sparisci, amico. Fallo in fretta e rimarremo in buoni rapporti. + + + Adesso cosa farete? + + + Presto andremo alla stazione di Yanov. Vieni con noi, se vuoi. + + + Sì, è sulla mia strada. Verrò con voi. + + + No, non è sulla mia strada. + + + È una fortuna che tu li abbia portati da noi... Da soli non sarebbero durati a lungo. + + + Grazie per aver fatto da tramite con la Duty. + + + Adesso cosa farete? + + + Presto andremo alla stazione di Yanov. Vieni con noi, se vuoi. + + + Sì, è sulla mia strada. Verrò con voi. + + + No, non è sulla mia strada. + + + Hai fatto la cosa giusta, amico. Hai aiutato quegli uomini e ci hai portato dei rinforzi. Hai il mio rispetto. + + + Grazie per aver fatto da tramite con la Freedom. + + + Sai chi potrebbe rubare qualcosa da un ripostiglio personale? + + + Non lo so. Da queste parti c'è gente di ogni tipo... Puoi chiedere a Conciaossa, lui conosce praticamente tutti in questo posto... + + + Vai a trovare Zulu. + + + OK. Spero che non mi spari al vedere la mia vecchia armatura! Dobbiamo prenderla lungo la strada... e restituire quella che indosso. + + + Muoviamoci. + + + Aspettiamo un attimo, le emissioni non fanno bene alla salute. + + + Cosa è successo? + + + Non ci ricordiamo come siamo arrivati qui. Ricordo che facevamo parte di una squadra dei Monolith, e avevamo questo grande desiderio di raggiungere il centro della Zona. È lì che si trova il Monolite: è una meteora che ha portato germogli di una nuova vita da altri pianeti... Ricordo che avevamo raggiunto insieme la centrale di Chernobyl... Poi ho immagini frammentate. Ricordo una luce intensa... un gelo cosmico... una voce... Tutto era... perfetto. Non ricordo cosa mi aveva ordinato di fare quella voce. Così tanti anni della mia vita... andati. E ai ragazzi è successa la stessa cosa. Non sappiamo cosa fare. Ci serve un posto dove rifugiarci dalle emissioni... e dai mutanti, dico bene? Non è che conosci un posto del genere? + + + Non lontano da qui si trova una base Staller, posso indicarvela sulla mappa. + + + Non sono certo sia un posto sicuro... Mentre andavamo alla centrale di Chernobyl, eravamo trattati con sospetto... Forse abbiamo anche ucciso degli stalker. Sai come la gente tratta la nostra fazione? Probabilmente ci sparerebbero addosso... Puoi aiutarci? Potresti dire a quelli dell'accampamento degli stalker che non siamo più assassini? Potresti convincerli ad accettarci? + + + Nessun problema, parlerò loro la prossima volta che andrò alla base. + + + Spiacente, non posso esservi d'aiuto. + + + Che genere di aiuto vi occorre? + + + Ci serve un posto dove ripararci dalle emissioni... e dai mutanti, dico bene? Puoi trovarci un rifugio dove stare al sicuro? + + + OK. Chiederò a quelli di Yanov. + + + Spiacente, non posso esservi d'aiuto. + + + Ti servirà una tuta con un modulo respiratorio a ciclo chiuso per arrivare a Pripyat. + + + Nessun problema, ho ancora la mia armatura Monolith, dotata proprio di un modulo di quel tipo. Il problema è che non posso indossarla a Yanov. + + + Sto raccogliendo una squadra per andare a Pripyat. Vuoi unirti a me? + + + Verrei... Cioè, sono molto curioso di scoprire cosa ci sia successo in quel luogo, ma adesso non posso. Non posso lasciare i miei ragazzi qui, e loro non mi seguirebbero. Ne hanno già passate abbastanza così. + + + Sì, verrò con te. Voglio sapere cosa ci è successo. Spero di trovare la risposta a questa domanda a Pripyat. Devo solo avvisare Loki, ma dubito che avrà da obiettare. + + + Sì, verrò con te. Voglio sapere cosa ci è successo. Spero di trovare la risposta a questa domanda a Pripyat. Devo solo avvisare Shulga, ma dubito che avrà da obiettare. + + + Sei pronto per partire? + + + Sì. + + + Salve, stalker. Puoi aiutarci? + + + Salve. Hai scoperto se possiamo andare alla base degli stalker? + + + No, ci sto ancora lavorando... + + + Sbrigati. Non si sa mai cosa potrebbe succedere in questo posto. + + + Salve. Grazie per il tuo aiuto. + + + Salve. + + + Come va? + + + Bene, la squadra è in ordine, ma voglio scoprire cosa ci è successo. + + + Cosa ci fanno qui i mercenari? + + + Di questo devi parlarne con Hermann. Lui si occupa di tutti gli aspetti amministrativi del laboratorio. Per quanto ne so, i mercenari hanno raggiunto un accordo con Hermann riguardante la protezione del nostro laboratorio. Non conosco i dettagli dell'accordo, però. Devo comunque ammettere che in numerose occasioni si sono rivelati combattenti affidabili. + + + Cosa ci fate qui? + + + Una domanda alquanto retorica, non trovi? Conduciamo delle ricerche. Ti interessa qualcosa in particolare? + + + Qual è lo scopo della vostra ricerca? + + + Non abbiamo un obiettivo specifico in mente. Puoi chiamarci scienziati esploratori. Cerchiamo di identificare elementi che colleghino tra loro determinati fenomeni, sviluppare teorie per poi dimostrarle o confutarle. Alcune delle nostre teorie non hanno alcuno scopo pratico, per quanto ne sappiamo. + + + Cosa sai della Zona? + + + A questo punto posso solo fare delle ipotesi... Credo che la Zona si sia formata come conseguenza di un nuovo tipo di forza. Dei campi elettromagnetici, una forza fisica o delle radiazioni non avrebbero potuto modificare la biosfera a una simile velocità. Naturalmente, alcune delle mutazioni possono essere attribuite alle radiazioni... Tu che dici! Un maiale impiegherebbe centinaia, se non migliaia di anni per mutare la propria carne! Nella Zona, invece, le mutazioni hanno avuto luogo nel giro di due anni. È come se qualcuno avesse alterato direttamente le informazioni genetiche dei singoli animali! Basta questo pensiero per farmi venire i brividi. + + + Da quanto sei nella Zona? + + + Da non più di una settimana. Ci sono voluti terribili sforzi per superare tutte le pratiche burocratiche e organizzare questa spedizione. Se non fosse stato per Hermann, forse saremmo ancora al confine della Zona ad aspettare, mentre gli stalker si appropriavano di oggetti di valore inestimabile. + + + Non mi occorre sapere altro. + + + Ozersky, perché Hermann mi ha assunto per proteggere la squadra mentre loro eseguono le misurazioni? + + + È stata una mia idea. Lui non ne vedeva l'utilità, ma sono riuscito a convincerlo. La mia ricerca indica che gli effetti della nostra strumentazione a onde potenziate sui campi di anomalie provoca uno stato aggressivo nelle specie mutate che si trovano nelle vicinanze, oltre ad aumentare i loro livelli di attività. Detta in parole semplici, si mettono alla ricerca di qualcosa da uccidere. + + + Ozersky, ho delle novità. + + + Davvero? Ti ascolto. + + + Avevi ragione. I mutanti non ci hanno lasciato in pace nemmeno per un secondo mentre eseguivamo le misurazioni, ma non appena abbiamo spento i dispositivi si sono calmati. + + + Cosa?!? Se... se le mie ipotesi si sono rivelate corrette, è probabile che gli animali mutati acquistano la capacità di accedere ai campi informazioni e possono ricevere segnali telepatici dall'esterno... segnali artificiali... In tal caso... l'innaturale somiglianza nelle mutazioni e questi cambiamenti tipici nella struttura cellulare... non avvengono per caso... + + + Puoi essere più specifico? O magari dire qualcosa che abbia senso? + + + No! Queste sono solo le mie congetture. Oh, ma quanto sono maleducato! Grazie per il tuo aiuto nella nostra ricerca. + + + Cosa deve succedere perché tu parli a Hermann di una tuta? + + + Nei pressi della cava è comparsa un'area piena di una pianta anomala precedentemente sconosciuta. Voglio un campione di questa pianta, ma gli stalker si rifiutano di avvicinarsi a quel luogo. Se avessi una di quelle piante, potrei convincere Hermann a ricompensarci con una delle tute di scorta. + + + Ti procurerò io la pianta. + + + OK, caricherò le coordinate dell'anomalia al tuo PDA. + + + Magari la prossima volta. + + + Fammi sapere se cambi idea. + + + Ecco, ti ho portato la pianta che ti serviva. Allora, per quella tuta? + + + Grandioso. Ah, Sokolov si è lasciato sfuggire che la tuta serve a lui. Beh, non importa. Mostrerò la pianta a Hermann e lui accetterà sicuramente di darmi la tuta. Di' a Sokolov di passare a prenderla. + + + Posso trovarti nuove guardie. + + + Sarebbe molto gentile da parte tua. Per favore, parla di questa faccenda con Hermann... rientra nelle sue responsabilità. + + + Vorrei controllare la mia resistenza allo psico-campo. + + + Ah, e così Hermann ti ha mandato da me? Va bene, cercherò di essere il più chiaro possibile. Per poter analizzare correttamente la tua resistenza alle psico-emissioni, mi occorrerebbero un complesso di ricerca scientifica e anni di studio. E io dispongo solo di un kit da campo con un paio di vecchie provette. + + + Quindi è impossibile? + + + Non correre. Non si parla di un'analisi completa. Per i nostri scopi dobbiamo solo valutare la resistenza dei tuoi neuroni alle psico-emissioni. Un esame di base andrà benissimo. Allora... Sembra che la tua testa sia a posto. Questo significa che puoi essere colpito da livelli piuttosto alti di psico-emissioni senza perdere conoscenza. + + + E che mi dici dell'ipotesi riguardo l'aumento dell'aggressività nei mutanti? + + + Ho due teorie al riguardo. La prima è che l'aggressività dei mutanti sia provocata dall'intrusione di numerose persone nel loro territorio, nel cui caso è un comportamento normale anche per le specie non mutate, compresi gli umani. L'altra teoria è che i mutanti sono in qualche modo in grado di ricevere le emissioni attive dei nostri congegni di misurazione. Chiaramente, quest'ultima teoria è molto più affascinante. + + + Com'è possibile eseguire dei test? + + + Il congegno di misurazione deve essere attivato in un'area dove non si sono mai verificate attività mutanti. Inoltre, per poter minimizzare gli effetti dell'intrusione umana, l'esperimento deve essere condotto da una persona al massimo. + + + Ho portato lo scanner. + + + Che risultati hai ottenuto? + + + Non so cosa mostrerà il tuo congegno, ma credo che l'ipotesi sia corretta. Cinque minuti dopo aver attivato lo scanner gli pseudo cani mi hanno attaccato. + + + Proprio come pensavo. Per un qualche motivo, sono sempre le teorie più sgradevoli a rivelarsi corrette. In ogni caso, è un bene che tu abbia fatto questa prova. Ora dobbiamo assicurarci che ogni squadra che inviamo a eseguire le misurazioni sappia cosa l'aspetta. + + + Sono pronto per cercare di confermare o confutare l'ipotesi. + + + Mi fa piacere che al mondo ci sia ancora qualcuno disposto a compiere un sacrificio per un bene scientifico superiore. Il posto migliore per condurre l'esperimento è lo smottamento al confine meridionale della cava: quell'area è piena di anomalie gravitazionali che i mutanti cercano solitamente di evitare. Il congegno che ti darò integra un sensore di rilevazione dei mutanti. Quando mi riporterai il congegno dopo aver completato l'esperimento potrò rintracciare gli effetti dell'emissione sull'aggressività mutante. Sei pronto per questa missione? + + + Sì, ci sto. + + + Adesso no. + + + C'è un modo per procurarmi una tuta scientifica? + + + Questo va contro il protocollo. Dobbiamo rendere conto di ogni equipaggiamento di cui disponiamo. Comunque, conoscendo Hermann, probabilmente ne ha ordinate più di quante ce ne servano. Credo che, in determinate circostanze, potrebbe accettare di dartene una. + + + Hai bisogno che recuperi dei manufatti? + + + No, mi dispiace. Non mandiamo più gente sconosciuta a caccia di manufatti. Abbiamo firmato un contratto con un esperto cacciatore di manufatti, ed è lui a procurarci tutto quello che ci serve. + + + Posso trovarti nuove guardie. + + + Sarebbe ottimo. La Zona non è mai tranquilla... Parlane con Hermann, è lui il capo da queste parti. + + + Dovresti darmi degli scanner per le ricerche delle anomalie. + + + Prendi questi. Sono tre, come stabilito da Hermann. + + + Prendi questi. Sono altri due, come stabilito da Hermann. + + + Come posso procurarmi una tuta scientifica? + + + Hermann è il responsabile dell'inventario. Ma ti risparmierò il disturbo di chiederglielo, tanto da lui non otterresti nulla. Prova piuttosto a parlare con Ozersky. Da una parte è più accomodante e dall'altra ha anche una certa influenza su Hermann. + + + Come mai da queste parti? + + + Ascolta, dove sono andati quei mercenari? Quelli che ti proteggevano? + + + Come va la vita? + + + Ascolta... Qualcuno ha freddato i mercenari che ti proteggevano. Nemmeno a me piacevano granché, ma qui si esagera... + + + CS-3a... fico! È un'armatura niente male... Mi ricorda i bei tempi andati... + + + Puoi sbloccare un modulo di memoria? + + + Vediamo un po'... nessun problema. L'ho già fatto parecchie volte, mi basterà un'ora. Te lo farò per... mmm, 2.000. Affare fatto? + + + Affare fatto. + + + Bene. Ti farò sapere appena l'avrò sbloccato. + + + Non ho tutti quei soldi. + + + Mmm. Beh, sai sempre dove trovarmi. Dubito che qualcuno riuscirebbe a fare questo lavoro meglio di me. + + + Ci penserò. + + + Come ho detto, lo farò in un'ora per 2.000. + + + Allora, hai sbloccato il modulo di memoria? + + + L'ora non è mica passata. Ti ho detto che ti avrei contattato io a lavoro terminato. + + + Sì, ecco. Ora puoi accedere alle informazioni + + + Ho trovato uno strano semi-manufatto. Ti interessa? + + + Certamente. Dove l'hai trovato? + + + A Zaton, nella stazione di drenaggio abbandonata. + + + Affare fatto. + + + No, grazie! Cercherò un altro acquirente. + + + Cosa ci fanno qui i mercenari? + + + Abbiamo un contratto con loro per la protezione del laboratorio mobile. Anticipando la tua domanda, ti dirò subito che sono stato costretto a reclutarli. A causa di una qualche operazione militare segreta, non ci è stata fornita la protezione adeguata all'allestimento del laboratorio. A questo aggiungi il fatto che gli stalker sono improvvisamente impazziti per la caccia ai manufatti, quindi volendo tenere al sicuro il laboratorio, ho dovuto per forza ricorrere ai mercenari. + + + Cosa fate qua? + + + Eseguiamo delle ricerche su vari fenomeni. + + + Qual è lo scopo della vostra ricerca? + + + Conduciamo ricerche di fondamentale importanza. In altre parole, non siamo qui per fare test sulle tute, per inventare nuove droghe o cose del genere. Cerchiamo di trovare una spiegazione logica a quanto accade nella Zona. Se riuscissimo a svelare i segreti che si celano dietro almeno il dieci per cento dei fenomeni che osserviamo, potremmo compiere dei passi da gigante nello sviluppo tecnologico globale. + + + Cosa sai della Zona? + + + Non molto, a essere sincero. Abbiamo appena iniziato a comprendere i meccanismi che sovrintendono alcuni dei fenomeni che osserviamo, e purtroppo siamo ancora lontani dal capire la Zona nel suo insieme, cosa resa ancora più complicata dal fatto che essa muta costantemente. Non mi riferisco alla comparsa di nuove anomalie o cosucce del genere. Parlo di mutamenti più notevoli, mutamenti spesso invisibili a occhio nudo. L'indebolimento del campo magnetico ne è un esempio. La cosa più triste è che non sappiamo dove tutto questo ci porterà. Non ci resta che sedere e aspettare. + + + Da quanto sei nella Zona? + + + Non molto, circa una settimana. Comunque, ho già visitato varie volte il laboratorio di Sakharov. Ancora mi pento di non essere riuscito a far decollare questa spedizione più velocemente. Ho detto un sacco di volte a quelli del Ministero dell'Educazione che avremmo avuto bisogno di due laboratori mobili pronti da un momento all'altro, ma loro si limitavano ad annuire con le loro testone grasse. A causa loro abbiamo rischiato di perdere la più grande occasione mai fornitaci dalla Zona! + + + Capisco. + + + Sono arrivate delle informazioni dagli scanner che ho collocato nelle anomalie? + + + A quale anomalia ti riferisci, nello specifico? + + + A quella accanto al parcheggio. + + + Sì, i nostri congegni indicano la presenza di manufatti in quell'anomalia! + + + Purtroppo, non ci sono tracce di manufatti in quell'anomalia. + + + Anomalia Bagno di cemento + + + Anomalia Bitume + + + Anomalia Fen + + + Anomalia Cumulo di cenere + + + Per ora è tutto. + + + Sono tutto orecchie. + + + Gli ultimi eventi hanno dimostrato chiaramente che la nostra squadra di ricerca non è pronta a condurre un adeguato lavoro sul campo. Tu, d'altro canto, ti sei occupato del controllore tutto da solo! Davvero notevole! + + + Dove vuoi arrivare? + + + Voglio arrivare a dire che per noi sarebbe quanto meno logico cercare di reclutare esperti come te. Il nostro gruppo di scienziati ha un grande bisogno del tuo aiuto. Dobbiamo eseguire delle misurazioni, collocare gli scanner... + + + Continua... + + + Sto cercando di trovare il collegamento tra le emissioni e la comparsa dei manufatti nelle anomalie. Ho una teoria secondo la quale è possibile prevedere la prossima emissione usando il numero e il tipo di manufatti che compaiono. Per poter eseguire calcoli scientifici precisi, però, devo formulare delle statistiche. Dobbiamo solo collocare alcuni scanner al centro di anomalie di vario tipo. + + + Spiacente, non mi interessa. + + + Che peccato. Avresti reso un grande servizio alla scienza. + + + OK, ti aiuterò. + + + Eccellente! Fatti dare gli scanner da Novikov e collocali nelle anomalie indicate sul tuo PDA. Quando hai fatto torna da me... Dobbiamo discutere di un altro lavoro riguardante gli scanner e le misurazioni. + + + Ci penserò su e tornerò più tardi. + + + Ho collocato gli scanner nelle anomalie. + + + Eccellente! Ho già i primi risultati. Non vedo l'ora che arrivi un'emissione... ci fornirà tutti i campioni statistici che ci servono. + + + Sono tutto orecchie! + + + Quando mi ci sono avvicinato e ho estratto il rilevatore scientifico, tutto intorno a me ha iniziato a distorcersi, come se fosse compresso. Poi, dopo un po', cadaveri di stalker sono comparsi dal nulla. Poi tutto si è fermato. + + + Ma è incredibile! Naturalmente, è un'informazione terribilmente limitata da cui non è possibile dedurre nulla di certo, ma inseriremo questa descrizione nel nostro database. Chiameremo quell'anomalia Bolla spaziale! + + + Vedo che hai delle nuove guardie. + + + Sì, sono piuttosto in gamba. Ci sentiamo molto più sicuri con loro a proteggerci. Grazie per i tuoi sforzi, ecco la tua ricompensa. + + + Guarda un po' questi documenti. + + + Vediamo... Non ti chiederò come te li sei procurati, ma sono semplicemente incredibili! Lascia che faccia una copia... Oh, a proposito, ecco la tua piccola ricompensa. + + + Cosa è successo alle tue guardie? + + + Non lo so, sono scomparse! + + + Ho delle conoscenze nella Zona. Potrei procurarti nuove guardie. + + + Sarebbe splendido! Gli forniremmo un sostegno scientifico completo e le ultime novità tecnologiche in cambio del loro lavoro! E anche tu riceveresti una ricompensa! + + + Affare fatto! + + + Non vedo l'ora! + + + Ho cambiato idea. + + + Che peccato. + + + Capita. + + + Nient'altro? + + + Le nostre guardie sono state assassinate! Freddate sulla soglia del bunker! + + + Allo stabilimento Jupiter ho trovato dei documenti. Vuoi dare un'occhiata? + + + Interessanti, ma non molto utili. Grazie comunque per lo sforzo. Se trovi altro portalo pure qui. + + + Mentre cercavo i documenti sono stato attaccato dai mercenari. Ecco il PDA del loro capo. + + + Wow, e io che pensavo fossero qui per proteggerci. A quanto pare dovrò riferirlo ai miei superiori... Grazie mille, giovanotto. + + + Purtroppo non contiene alcuna informazione utile. + + + Ecco qualcosa: dobbiamo saperne di più sugli ultimi sviluppi fatti allo stabilimento Jupiter. Mi servono i documenti tecnici riguardanti questi sviluppi. Probabilmente ti conviene cercarli nell'ala amministrativa dello stabilimento. + + + Li cercherò e ti riporterò tutto quello che riuscirò a trovare. + + + No, in questo caso non posso aiutarti. + + + Ho riportato i documenti da Jupiter. + + + Interessanti, ma non molto utili. Grazie comunque per lo sforzo. Se trovi altro portalo pure qui. + + + Mentre cercavo i documenti sono stato attaccato dai mercenari. Ecco il PDA del loro capo. + + + Wow, e io che pensavo fossero qui per proteggerci. A quanto pare dovrò riferirlo ai miei superiori... Grazie mille, giovanotto. + + + Cercherò di trovare l'anomalia. + + + Non ho tempo. + + + Voglio parlare con te del mio coinvolgimento nella tua ricerca. + + + So di parlare per tutta la squadra quando dico che ci farebbe molto piacere se tu accettassi di servire ancora una volta la scienza. Cosa ti interesserebbe fare? + + + Vorrei aiutarvi a eseguire le misurazioni. + + + Sei davvero disposto ad assisterci durante una scansione esterna completa? + + + Sì, vi aiuterò. Dimmi cosa devo fare. + + + No, devo riordinare i miei pensieri. + + + Hai parlato di posizionare degli scanner. + + + Sto cercando di trovare il collegamento tra le emissioni e la comparsa dei manufatti nelle anomalie. Ho una teoria secondo la quale è possibile prevedere la prossima emissione usando il numero e il tipo di manufatti che compaiono. Per poter eseguire calcoli scientifici precisi, però, devo formulare delle statistiche. Dobbiamo solo collocare alcuni scanner al centro di anomalie di vario tipo. + + + OK, ti aiuterò. + + + Eccellente! Fatti dare gli scanner da Novikov e collocali nelle anomalie indicate sul tuo PDA. + + + Ci penserò su e tornerò più tardi. + + + Gli scanner nelle anomalie stanno trasmettendo le informazioni. Ora non dobbiamo fare altro che attendere i risultati. Se vuoi puoi collocare altri scanner nelle anomalie, le informazioni extra ci fanno sempre comodo. Riguardo la tua ricompensa, ti faremo sapere quando i manufatti compaiono nelle anomalie. + + + D'accordo. + + + Eccellente! Fatti dare gli scanner da Novikov e collocali nelle anomalie indicate sul tuo PDA. + + + Ci penserò su e tornerò più tardi. + + + Purtroppo, abbiamo una ferrea regola che ci vieta di assegnare più di un incarico alla volta alla stessa persona. Mi dispiace ma dobbiamo rispettarla. + + + La squadra che ho protetto ti ha consegnato i risultati delle misurazioni delle anomalie eseguite sul campo? + + + Volevo aggiungere che le tue misurazioni hanno attirato l'attenzione di zombi e mutanti. Abbiamo dovuto faticare parecchio per respingerli. + + + Mmm, quindi credi che abbiano reagito alle scansioni? Interessante. Beh, a quanto pare anche tu hai confermato le ipotesi di Ozersky: i mutanti possono accedere telepaticamente a vari campi. Credo che valga la pena di discuterne con lui. Ecco il pagamento per il lavoro svolto. Te lo sei guadagnato! + + + Mmm, quindi credi che abbiano reagito alle scansioni? Interessante. Beh, a quanto pare anche tu hai confermato le ipotesi di Ozersky: i mutanti possono accedere telepaticamente a vari campi. Credo che valga la pena di discuterne con lui. Peccato per gli stalker. Una parte dei nostri modesti fondi verrà usata per ripagare le loro famiglie. Il resto è il tuo pagamento per il lavoro svolto. Grazie! + + + C'è un modo per procurarmi una tuta scientifica? + + + No! Il numero di tute è limitato e non posso proprio permettermi di distribuirle in giro! + + + Cosa volevi dirmi? + + + Non è che per caso hai visto quelli che dovrebbero difendere il nostro bunker? + + + Continua. + + + Non ci crederai, ma qualcuno ha ucciso le nostre guardie, proprio accanto al bunker! + + + Ti serve aiuto? + + + Al momento stiamo raccogliendo un nuovo tipo di campioni. Non possiedono alcun effetto anomalo, ma gli esperimenti che conduciamo su di essi danno risultati da non credere! + + + Vai avanti... + + + Taglia corto e dimmi cosa c'è da fare. + + + OK... Gli stalker che hanno trovato lo psico-campo dicono che contenga una tana mutante. Io non gli credo... Cioè, in uno psico-campo intermittente potrebbe sopravvivere solo un controllore! Non ti preoccupare, i nostri ragazzi si occuperanno dei mutanti. Abbiamo bisogno di te solo perché il contatto costante con gli psico-campi ha ridotto la resistenza dei nostri stalker ai loro effetti. + + + Vediamo di capirci: vuoi che entri in uno psico-campo sconosciuto e ti procuri dei campioni di qualcosa che forse non c'è neanche, e anche se c'è nessuno sa com'è fatta? + + + Esatto! Questa missione è essenziale per la scienza in generale e per la nostra squadra nello specifico. Il tuo aiuto sarebbe inestimabile. Se hai dei dubbi, vai da Ozersky. Lui condurrà le analisi necessarie, con cui valuterà la tua attuale resistenza alle psico-emissioni. Se vuoi parla anche con i nostri stalker, loro ti spiegheranno tutto quello che c'è da sapere. Allora, sei disposto ad aiutare la scienza? + + + Sì. + + + Non lo sai? La nostra squadra di stalker è morta. + + + Considerato che l'ultima volta non ti sei presentato al tunnel, sarà molto difficile convincere la squadra a lavorare con te. + + + È stato un incidente. + + + Ti credo, ma la nostra squadra di raccolta dei campioni è composta da gente strana... non ti conviene fregarli. Parlerò di nuovo con loro e forse riuscirò a convincerli a cambiare idea. Ma stavolta vedi di non deludermi. Aspetto il campione. + + + Perdonami, ma devo rifiutare. Il tuo equipaggiamento è semplicemente inadatto a uno psico-campo intermittente... Incontreresti una morte rapida e dolorosa, e non voglio averti sulla coscienza. + + + Ti ho procurato il campione. + + + Davvero? Dammelo, non vedo l'ora! + + + Ti ho procurato il campione e ho trovato un controllore nel tunnel. Ha cercato di sopraffare la tua squadra e per poco non ci è riuscito. L'ho ammazzato appena in tempo. + + + Sei straordinario! Hai ucciso un controllore e salvato gli stalker da uno psico-attacco... Se non sapessi che è tutto vero non ci crederei mai! È un'ottima esperienza e un campione fantastico. Il tuo contributo alla scienza è senz'altro degno di nota! Ti ringrazio personalmente, a nome della mia squadra e di tutti gli scienziati del mondo! + + + Purtroppo la squadra è stata attaccata da un controllore. Mi sono dovuto difendere. Il controllore è morto, ma anche gli stalker. + + + Un controllore, dici? Ma è terribile! Non c'era modo di saperlo, e piango la perdita di quegli uomini coraggiosi... Erano fedeli servitori della scienza. Anche se tecnicamente non erano scienziati, hanno contribuito più loro alla scienza che molti professori! Ti ringrazio e ti prego di accettare questa modesta ricompensa... + + + Purtroppo la squadra è stata attaccata da un controllore. Io me la sono cavata per un pelo. + + + Cosa ci fanno qui i mercenari? + + + Si mettono tra i piedi. Ma questa è solo la mia opinione personale. All'inizio non facevano che chiedermi come riparare questo o come sistemare quello... Poi ieri hanno abbandonato qualunque pudore e hanno iniziato a chiedermi come funziona la nostra attrezzatura. Proprio non riesco a capire come questo possa aiutarli a proteggere il bunker. + + + Quali modifiche all'equipaggiamento puoi eseguire? + + + Come puoi vedere, questo è un complesso scientifico... Non abbiamo kevlar né parti di ricambio delle armi. Al massimo posso riparare un'armatura o modificarla usando uno dei miei ritrovati. Come puoi immaginare, dispongo di abbondanti attrezzature di prima qualità! + + + Grazie a te e al campione che hai riportato dallo psico-campo, Ozersky è riuscito a escogitare qualcosa che protegga le persone dalle psico-emissioni. Io ho convertito la sua idea in qualcosa di concreto... Che se vuoi posso installare nella tua tuta. + + + Beh, a parte i soliti potenziamenti, posso offrirti un sistema di filtraggio e di psico-protezione. Dopotutto, è anche grazie a te che sono possibili... Ozersky e Hermann erano contenti come delle Pasque! + + + Beh, a parte i soliti potenziamenti, posso offrirti un sistema di isolamento e di psico-protezione. Dopotutto, è anche grazie a te che sono possibili... Ozersky e Hermann erano contenti come delle Pasque! + + + Dispongo di tutte le modifiche: isolamento, filtraggio e psico-protezione. Una tuta che le installi tutte e tre ti permetterà di entrare in qualunque anomalia... E forse riuscirai anche a uscirne vivo. A proposito, grazie per aver partecipato alla ricerca di Hermann. Senza di te non potrei offrirti tutte queste possibilità. + + + Parlami del vostro bunker. + + + Cosa vuoi sapere, di preciso? + + + Cosa fate nel laboratorio? + + + Dubito che Hermann e Ozersky siano in grado di rispondere a questa domanda. Ovviamente conducono ogni genere di ricerca... ma il risultato è misero, nella migliore delle ipotesi. Comunque, potresti scambiare due parole con Ozersky... Basandomi sulle sue teorie sono riuscito a ottenere un paio di modifiche niente male per la tuta. + + + Cosa sai della Zona? + + + Nulla, in senso scientifico, ma ho fatto molta esperienza pratica nella Zona. Qui l'unica cosa di valore è ciò che aumenta le tue possibilità di sopravvivenza. Alla Zona non interessa se sei un bandito o uno stalker che raccoglie manufatti per dar da mangiare alla propria famiglia. Qui nella Zona sopravvivono solo i più forti. + + + Da quanto sei nella Zona? + + + Ormai da un po'. Inizialmente cercavo manufatti come tutti gli altri, ma la mia salute è peggiorata al punto che ho dovuto smettere. Fortunatamente i neuroni non mi mancano, quindi non ho faticato a trovare un lavoro. Ho trascorso quasi un anno in una formazione composta da ex scienziati. Erano brave persone... peccato che siano morti nell'inseguimento di una vana meta. Poi ho vagato nella Zona per un po', dopodiché ho iniziato a lavorare per gli scienziati. Finora il bilancio è in positivo. + + + Non mi occorre sapere altro. + + + Ho intenzione di andare nello psico-campo intermittente. Hai qualche consiglio per me? + + + Cosa posso dire? Dubito che tu abbia familiarità con la teoria del campo di energia a impulsi... Puoi stare certo che una breve esposizione allo psico-campo non è pericolosa... a lungo termine, almeno. Ma non rilassarti troppo quando sei lì dentro. Chi sottovaluta gli psico-campi finisce trasformato in zombi. + + + Chi potrebbe aprire un contenitore d'acciaio? + + + Non io. Non ho l'equipaggiamento adatto... e va contro le nostre regole di salute e sicurezza. + + + Sai come decifrare una scatola nera? + + + Sì, ma non lo farò. Una volta era il mio pane quotidiano... e non mi piaceva. Troppe seccature... gli scienziati mi procurano lavoro a sufficienza. + + + Cos'ha di tanto speciale la CS-3a? + + + Oltre al fatto che l'ho progettata io? È una delle tute migliori della Zona. Ecco perché la indossi, no? È leggera, trasportabile ed è resistente come un'armatura militare. Ho aggiunto le protezioni alle anomalie di persona... Peccato che a quei tempi ci fosse penuria di materiali... Ma, dopotutto, cosa puoi pretendere quando si lavora in mezzo a una palude? Comunque, un paio di rattoppi e sarà come avere una bella tuta moderna... Ho attrezzature di qualità in abbondanza, quindi non c'è nessun problema. + + + Lavori per Owl? + + + No. L'altro giorno mi ha aiutato a procurarmi qualcosa... Un favore in cambio di un favore. + + + Owl mi ha chiesto di portarti dei rilevatori. Eccoli qui. + + + Bene. Li userò poi chiederò alle guide di restituirli a Owl... Qualunque altra cosa sono faccende personali tra te e lui. + + + Oh! Quindi eri tu a vendere armi ai banditi di Zaton! + + + Shh... Sei pazzo a dire cose simili qui? Noi non ci conosciamo, intesi? + + + Capito. + + + E se raccontassi al comandante che hai un secondo lavoro? + + + E cosa gli dirai? Non hai niente contro di me. Cioè, sei stato tu a contribuire all'eliminazione dei testimoni. Non hai prove e accusandomi farai solo la figura dell'idiota. + + + Ho trovato un PDA addosso a dei mercenari morti. Contiene un incarico per assassinarmi. E tu sei il committente. + + + Ne ho avuto abbastanza di te... Ascolta, dammi il PDA e ti darò un'eccellente arma usata esclusivamente dalle truppe elite della Duty. Allora, che ne dici? + + + OK, prenderò l'arma. + + + Tienila. Non mi serve la carità di un serpente traditore! + + + Ho un altro PDA contenente l'incarico di assassinarmi. E tu sei di nuovo il committente. + + + Dannazione... dannati mercenari... non ci si può proprio fidare di loro. Senti, facciamola finita. Ecco cosa faremo: i mercenari smetteranno di cercarti e tu mi lascerai in pace. Per compensare le tue perdite, ti condurrò al magazzino segreto della Duty dove potrai prendere tutte le armi che riuscirai a trasportare. + + + OK, ci sto. + + + Bene, incontriamoci lì. Il deposito è accanto alla cava. + + + Non andrò da nessuna parte. Dovrai portarmi tutto qui. + + + Qui non ho niente! Non sono così stupido! O ci incontriamo al deposito o non avrai niente. + + + No, grazie. + + + Non mi serve la carità di un serpente traditore! + + + Voglio andarmene dalla Zona. + + + Sicuro? Poi non potrai più tornare. + + + Sono sicuro. Andiamo. + + + In effetti... per ora resterò. + + + Diamo un'occhiata... Beh, il tuo fegato è più grosso di quanto pensassi, ma è uno dei rischi del mestiere, no? A parte questo, sei sano come un pesce. + + + Sarebbe normale se solo non fosse fluorescente. Così com'è fa paura. Vai a controllare tu stesso... anche se dubito che ti piacerà. + + + OK, come ti pare. + + + Ex combattenti Monolith? Beh, come ti pare... Garantirai per loro? + + + Ex combattenti Monolith? No, grazie. L'ultima cosa di cui ho bisogno è un branco di fanatici morbosi. + + + Ah. Bravo ragazzo. Sai badare a te stesso, e questo significa che non mi deluderai. Allora, cosa mi hai portato? Un manufatto o i 15.000? + + + Ho portato un manufatto. + + + Bene. Quale? + + + Non ho un manufatto che valga tanto. + + + Fiamma. + + + Pesce rosso. + + + Lucciola. + + + Fiocco di neve. + + + Nessuno, per adesso. + + + Beh, ho detto quel che dovevo dire. Ora tocca a te parlare. + + + Ci si vede. + + + Ma certo! Lo psico-campo intermittente deve essere ancora studiato e prima lo facciamo meglio è. Lascia che ti faccia una domanda, però. Come sai che questa avventura è sicura, almeno per quanto possibile? Ci serve quasi sicuramente la tua assistenza per ottenere un campione sperimentale. Allora, sei disposto ad aiutare la scienza? + + + Potrei riuscire a trovare dei bravi uomini per formare il vostro nuovo gruppo di ricerca. + + + Davvero? Un aiuto del genere sarebbe molto apprezzato e, immagino, degno di una ricompensa. + + + Va bene. Assumerò le persone giuste. + + + Ci penserò ancora un po'. + + + Eccolo qui. In quel tunnel ho trovato un controllore. Poi l'ho ammazzato. + + + Sei fantastico! Hai ucciso un controllore e ti sei procurato quel che ci serviva... Se non ne avessi le prove, non ti avrei mai creduto! Un'eccellente esperienza e un campione fantastico. Il tuo contributo alla scienza è davvero degno di nota. A nome mio e di tutti gli scienziati, ti prego di accettare la mia più sincera gratitudine! + + + Eccolo qui. In quel tunnel ho trovato un controllore. Mi sono salvato per miracolo. + + + Un controllore, hai detto? Davvero terribile, ma chi avrebbe potuto immaginarlo? L'importante è che tu ci abbia portato il campione, contribuendo così in modo significativo alla scienza. Grazie, ti prego di accettare questa modesta ricompensa. + + + Che ne dici del nostro nuovo gruppo di ricercatori? + + + Oh, è perfetto. Devo ammettere che sono giovani competenti. Ti prego di accettare questo. Ti siamo grati per la tua, ehm, abilità nel campo delle risorse umane. + + + Come va, fratello? Ovviamente sono felice di vederti, ma ogni tanto non mi dispiacerebbe nemmeno stare per i fatti miei. + + + Sono qui per comprare lo stalker prigioniero. + + + Esigo rispetto per i banditi e le nostre regole, amico, ma non cerco nemmeno guai inutili... Per il momento andranno bene quindicimila bigliettoni o un buon manufatto... Sono un uomo onesto, e non ti chiederò più di quanto devo avere. + + + Ecco il contante. + + + OK... rispetto quel che fai. Prendi questo perdente e di' agli stalker che la prossima volta gli interessi saranno più alti. + + + Non ho tutti quei contanti. + + + OK, non hai un bel niente. Che altro c'è di nuovo? + + + Al momento non ho nulla di adatto... Tornerò più tardi. + + + Vediamo un po'... Beh, qui non c'è nulla di importanza strategica, ma potrebbe tornare utile. Ti compro tutto a 500 ogni documento. Affare fatto? + + + Diamo un po' un'occhiata. Santo cielo... Queste informazioni danneggerebbero la reputazione della Duty... e di parecchio! Te le pagherò quattro bigliettoni. + + + Interessante. Beh, sono disposto a pagartele due bigliettoni. + + + Sì, ma il prezzo non cambia: duemila. + + + OK, allora, ci vediamo. + + + Ma è terribile! Cosa mai potrebbe essergli successo? Mmm... i mutanti sono una buona ipotesi. Dovrò chiedere a Ozersky di che tipo di mostro potrebbe trattarsi... Mmm, comunque, è necessario studiare lo psico-campo. Questa missione è essenziale per la scienza e soprattutto per la nostra squadra. Per acquisire un campione abbiamo un tremendo bisogno del tuo aiuto. Se hai dei dubbi, vai da Ozersky. Lui condurrà le analisi necessarie, con cui valuterà la tua attuale resistenza alle psico-emissioni. Allora, sei disposto ad aiutare la scienza? + + + Ci penserò. + + + La nostra squadra di ricerca, composta da stalker del posto, ha da poco trovato uno psico-campo alquanto insolito. Stando alle nostre teorie e alle misurazioni eseguite, la natura del campo genera psico-effetti intermittenti, anziché emetterli in modo permanente. + + + Purtroppo, la squadra di spedizione è morta è finché non troveremo dei sostituti non potremo eseguire nessuna misurazione. + + + Aspetta... Saresti così gentile da concedermi un momento di attenzione? + + + Quali sono i risultati della scansione dell'anomalia? + + + Hai del lavoro per me? + + + Ne ho sentito parlare. + + + Purtroppo, non sono ancora riuscito a convincere Hermann a radunare una squadra di ricerca... Lo ammetto, le voci su questo fenomeno sono troppo contraddittorie, ma qualcosa mi dice che l'Oasi esiste. Raramente il mio intuito sbaglia, quindi se riesci a trovare la prova della sua esistenza e a riportarmela te ne sarei profondamente grato. + + + La cercherei, ma sono già stato nell'Oasi. + + + Mmm... ehm... forse ho capito male. Cos'hai detto? + + + Sono qui per pagare il debito di Vano. + + + Sì, mi ricordo di lui. Il suo debito non è poco e con gli interessi si arriva fino a sette bigliettoni. + + + OK, tieni. + + + Di' a Vano che non ci deve più niente. + + + OK. + + + Non ho tutti quei contanti. + + + Allora torna quando li avrai. + + + Gli interessi non facevano parte dell'accordo. + + + Di cosa stai parlando? Mi prendi per scemo? Credi che presti dei soldi senza applicare un interesse? Sette bigliettoni e non si discute. + + + Ora ascoltami bene. Ho un'arma e non mi preoccupo di usarla. Dimmi, cosa se ne farà il tuo cadavere di tutti quegli interessi? + + + OK, OK, calmati, capo! Sicuramente possiamo raggiungere un accordo. Pagami cinque bigliettoni e considereremo il debito risolto. + + + Ah! Infilati quel giocattolo dove dico io, idiota! Sette bigliettoni, compresi gli interessi. Fine della storia. + + + Ti sei dimenticato di me? Sono ancora armato. + + + Preferisco ammazzarti gratis. + + + Ci penserò. + + + Sette bigliettoni, compresi gli interessi. + + + Al momento non mi va di accettare lavori impegnativi. Voglio riordinare le idee... Sai, forse me ne tornerò persino a casa... Mi troverò un vero lavoro e mi lascerò alle spalle questi maledetti manufatti... Solo che non so come farei a lasciare Grizzly... e Torba... Ormai siamo molto uniti, e ci aiutiamo sempre a vicenda... Non so, forse ho solo bisogno di riposare e riordinare i pensieri... + + + Al momento non mi va di accettare lavori impegnativi. Per un po' lavorerò per gli scienziati... Sai, forse me ne tornerò persino a casa... Mi troverò un lavoro all'esterno... Non so, forse ho solo bisogno di riposare e riordinare i pensieri... + + + Allora, sei pronto a salvare Mitay? Spero non ti dispiaccia lavorare con alcuni uomini che ho assunto. + + + Ho il PDA del mercante della Duty, Morgan. Ti interessa? + + + Ho un PDA che dimostra che Morgan ha dei collegamenti con i mercenari. + + + In realtà... lo terrò io. + + + Sapevo che alla fine in te avrebbe prevalso il desiderio di far avanzare la scienza e fare del bene nel mondo! E va bene, ecco il piano. Un gruppo di ricerca di stalker eseguirà tutte le misurazioni. Tu dovrai scortarli, proteggerli e guidarli nelle zone impervie. Buona fortuna. Gli stalker ti aspettano qui fuori. + + + Salve, stalker. Sorpreso di vedere un vecchio da queste parti? Eh eh. Sono venuto con i ragazzi per cambiare un po' aria. Posso rimettere in sesto gli equipaggiamenti e a volte anche le persone... + + + Ora che sei qui, cosa posso fare per te? + + + Come sei arrivato a Pripyat? + + + Garry mi ha mostrato la strada. Quegli stalker è un pezzo che pianificano di venire qui, ma non volevano avere niente a che fare con i militari. Non appena Garry ha detto che l'esercito aveva levato le tende, non ci ho pensato su due volte! Non temere, lo Zio Yar è qui! Ah ah! + + + Mi serve assistenza medica. + + + Lascia che questo vecchio ti dia un'occhiata... + + + Ecco qui, sopravvivrai. Se si dovesse gonfiare, facci un goccio di pipì sopra... ho sentito dire che serve. + + + A me sembri in perfetta salute! Vuoi prendere in giro questo vecchio? + + + Benvenuto nel mio piccolo regno del piacere e della gioia. Vuoi la gioia, il piacere o entrambe le cose in egual misura? + + + I ragazzi dicono sempre che sono troppo buono, come una specie di fata madrina, quindi ti conviene esserne contento... La prossima volta non sarò altrettanto gentile. Ora fuori da qui, perdente! + + + Ci sono già stato. I banditi sono morti. + + + Ehi, sei un osso duro! Grazie mille! Ecco, prendi questo denaro... sarebbe servito per pagare il debito, ma ora andrà a qualcuno che se lo merita davvero. + + + Ehi, sei un osso duro! Grazie mille! Ecco, prendi il denaro che sarebbe servito per pagare il debito. Ora andrà a qualcuno che se lo merita davvero. + + + I nostri scanner hanno registrato un'attività insolita a nord... A giudicare dai dati ricevuti, mi aspetto che la formazione anomala sia instabile. Purtroppo da qui non riesco a stabilire altro. Dobbiamo condurre delle ricerche sul campo... Posso solo dire che i rilevatori stalker standard non riusciranno a individuare l'anomalia. Avrai bisogno di uno Svarog, uno dei nostri gioiellini. + + + Gli scanner continuano a registrare un'attività anomala instabile a nord. Se hai di meglio di un normale rilevatore stalker, come per esempio uno Svarog, potresti cercare di condurre una ricerca sul campo. + + + Finora solo dalla palude anomala. Nonostante questo, Novikov ha già trovato un'applicazione pratica. Grazie per il lavoro svolto e aspettiamo con ansia il secondo gruppo di risultati. + + + Finora solo dall'area anomala oltre Kopachy. Nonostante questo, Novikov ha già trovato un'applicazione pratica. Grazie per il lavoro svolto e aspettiamo con ansia il secondo gruppo di risultati. + + + Certo. Ho ricevuto i risultati completi. A essere sincero, la quantità dei dati prodotti è tale che occorreranno settimane se non mesi per elaborarla. Nonostante questo, Novikov ha già trovato ottime applicazioni pratiche. Grazie mille per il tuo aiuto. + + + No, qui non è successo nulla del genere. Mmm... In effetti ho visto un tipo sospetto di recente. Ero andato a fare una passeggiata e al ritorno ho individuato uno stalker che se ne andava da Yanov. Non appena mi ha visto, ha iniziato a comportarsi da maleducato e ha detto qualcosa come?"so dove abiti" o cose di questo tipo. Io l'ho ignorato, perché pensavo fosse sbronzo o drogato, ma ora che ci penso è piuttosto strano. + + + Dov'è andato? + + + A nordest. Ho sentito degli spari provenire da quella direzione, ma da queste parti è normale. Chiedi a Zulu... passa giorno e notte nella sua torre, quindi forse ha visto qualcosa. + + + A nordest. Probabilmente è andato alla sotto-stazione. + + + Capisco. + + + Che si dice, amico? + + + Come butta? + + + Me la passo bene. Cioè, non è facile ma ce la caveremo. Insieme possiamo tutto! + + + Come butta? + + + Non so come risponderti... Qui non mi sento molto a mio agio. Ho la sensazione di dover cambiare aria. Presto potrei andarmene... non volermene. + + + Ho spazzato via la tana di succhiasangue a Zaton. Completamente. + + + [continua...] + + + [continua...] + + + [continua...] + + + [continua...] + + + Ho bisogno di persone per eseguire misurazioni nelle anomalie. + + + Ho bisogno di misurazioni eseguite nelle anomalie. + + + Chi è la bella addormentata? + + + Hai trovato il manufatto? + + + Puoi scommetterci! Non abbiamo niente da fare, e l'unico passatempo sono le partite a backgammon. Qui non siamo a Pripyat... Dannazione, se solo riuscissi a portare a termine questo dannato contratto ci andrei di corsa! + + + [continua...] + + + Puoi andare alla cava, è là che è morto Scheggia. Prima di morire, è riuscito a dirmi che Flint gli ha rubato il manufatto e lo ha lasciato a crepare in un'anomalia... + + + Si chiamava Scheggia. È finito in una anomalia gassosa e tu sei fuggito con il manufatto. Come puoi vedere, è riuscito a dirmi tutto, prima di morire. + + + Non ti chiederò dove hai preso questa roba. Facciamola semplice: ti comprerò questo PDA per 4.000. Sono davvero curioso di scoprire che cosa combina il nostro ufficiale delle scorte, quando non è in servizio... + + + Vediamo un po'... Accidenti, che bastardo! Non solo vendeva le nostre armi, ha addirittura consegnato il magazzino alla Freedom! Dannazione... metto subito insieme una squadra per andare a porgere i nostri saluti. + + + Vediamo un po'... Dannazione, non ci credo! Sapevamo del magazzino e avevamo intenzione di farci un gro, ma non avevamo idea dell'allarme, visto che quel bastardo non ce ne ha parlato. Aspetta un secondo, avviso i ragazzi. + + + Guarda, te ne darò 4.000, giusto perché sono curioso. + + + Beh, non è un soldato d'assalto, ma con la pistola se la cava bene. Però ha sempre un'aria piuttosto depressa, è sempre imbronciato, come se mangiasse soltanto limoni. + + + Ho trovato una strana anomalia, vicino alla vecchia torre di raffreddamento. + + diff --git a/gamedata/configs/text/ita/st_dialogs_pripyat.xml b/gamedata/configs/text/ita/st_dialogs_pripyat.xml new file mode 100644 index 0000000..cbc3eed --- /dev/null +++ b/gamedata/configs/text/ita/st_dialogs_pripyat.xml @@ -0,0 +1,906 @@ + + + + Ah! Gliel'hai fatta vedere! Grazie dell'aiuto! Se non fosse stato per te, quei bastardi mi avrebbero fatto la festa. Sai, in fondo sei un bravo stalker... Scusa per prima, ma anche tu avresti potuto dirlo subito che sei un soldato americano. + + + Nessun problema. Ora dirigiamoci all'accampamento militare... lì è più sicuro. + + + Sì, sicuramente sarà meglio che vagare per Pripyat da solo. + + + Allora muoviamoci. + + + Ho delle cose da finire qui, tu vai pure avanti. L'accampamento è nella lavanderia. + + + È ora che io vada. + + + Aspetta... Prendi questo... È il mitra più affidabile di tutta la Zona. + + + Aspetta, a te non serve più? + + + Un paio di armi per respingere i mutanti non mi mancheranno mai. E poi ho deciso di tornare indietro... Garry mi porterà a Jupiter. Quindi tu ne avrai più bisogno. Prendilo e usalo bene. + + + Buona fortuna a te. + + + Grazie, è un'ottima arma. + + + Ah! Non è solo ottima, è la migliore di tutta la Zona! È modificata, quindi è un po' più pesante del solito, ma tanto con questo cannone non avrai certo bisogno di correre... lascia che sia il nemico a fuggire! + + + Ciao. + + + Bene! + + + Sai dov'è andato Zulu? + + + Se n'è andato... Mi ha chiesto di portarlo a Jupiter e ci siamo separati non lontano dallo stabilimento. Non mi ha detto dove si sarebbe diretto. + + + Aspetta... Ho avuto una brutta esperienza che voglio raccontarti. Dei mercenari mi hanno chiesto di portarli a Pripyat. All'inizio mi avevano fatto gola con un pagamento generoso, ma mi sono presto accorto di esserci dentro fino al collo, se capisci a cosa mi riferisco... Non mi perdevano di vista nemmeno per un secondo e mi tenevano costantemente sotto tiro. Sono riuscito a fuggire nei pressi di Pripyat, ma loro saranno sicuramente arrivati in città, quindi sii prudente. + + + Per caso hai sentito di cosa stavano parlando i mercenari? + + + In parte sì. Non avevano nessuna intenzione di lasciarmi in vita, quindi non si sforzavano per nascondere i loro piani. Discutevano principalmente di incontrare gli uomini del cliente, i quali avrebbero dovuto spiegare loro lo scopo della missione. + + + Dove si sarebbe tenuto l'incontro? + + + Qui vicino, nel cortile del complesso di appartamenti. + + + Grazie delle informazioni. + + + Hai parlato dei mercenari... Hai sentito di cosa stavano parlando? + + + In parte sì. Non avevano nessuna intenzione di lasciarmi in vita, quindi non si sforzavano per nascondere i loro piani. Discutevano principalmente di incontrare gli uomini del cliente, i quali avrebbero dovuto spiegare loro lo scopo della missione. + + + Dove si sarebbe tenuto l'incontro? + + + Qui vicino, nel cortile del complesso di appartamenti. + + + Ho raggiunto un accordo con gli scienziati per una tuta. Vai a parlarne con Hermann. + + + OK... dov'è il punto d'incontro? + + + Vicino alla stazione di Yanov, a casa di Zulu. + + + È pieno di stalker! Perché non mi ci porti tu? Se ci vado da solo saranno guai. Se invece ci sarai anche tu non spareranno perché ti conoscono. + + + A quale punto d'evacuazione sei andato? + + + Spiacente, non posso parlarne... è segreto. + + + Vai a trovare Zulu. + + + OK. Ma prima dobbiamo andare da Hermann per procurarci la tuta scientifica. + + + Muoviamoci. + + + Verrei... Ma c'è un'emissione in corso. E se aspettassimo un po'? + + + Come sei finito qui? + + + Il mio elicottero si è schiantato su un'officina di Jupiter e ha attraversato il tetto. Io sono l'unico sopravvissuto. Sono riuscito a uscire dallo stabilimento e mi sono diretto al punto di evacuazione più vicino ma era deserto. Poi ho incontrato Garry che mi ha portato al bunker degli scienziati. + + + Ti servirà una tuta con un modulo respiratorio a ciclo chiuso per arrivare a Pripyat. + + + Cosa fate qua? + + + I miei ordini sono di procedere fino al punto di evacuazione, ma la Zona è troppo pericolosa. Sono un pilota, non un soldato d'assalto. Ecco perché aspetto qui con la speranza che mi vengano a prendere una volta terminata l'operazione. + + + Sto raccogliendo una squadra per andare a Pripyat. Vuoi unirti a me? + + + Pripyat? Sai, credo proprio che verrò... Forse qualcuno dei nostri ragazzi è sopravvissuto ed è andato lì... C'è un punto d'evacuazione a Pripyat, quindi di fatto è proprio quella la mia destinazione. Non ce la farei mai da solo, ma insieme a te sono disposto a fare un tentativo. + + + Sei pronto per partire? + + + Immagino di sì. + + + Salve, stalker. + + + Ehi. + + + Salve. + + + Salve, maggiore. + + + Dove ti sei procurato un'uniforme militare? + + + Eh eh... Immagino che ormai lo sappiano tutti che gli elicotteri militari si sono schiantati... Sono il tenente Sokolov, copilota di uno degli elicotteri. + + + Riguardo quella sentinella... + + + Il suo segnale proviene dalla vecchia macelleria, ma non risponde... Forse ha perso la radio... A questo punto è difficile saperlo con certezza. Dobbiamo trovarlo. + + + Grazie, colonnello! Credo che ce la farò. + + + Riguardo quella sentinella... + + + Beh... è tutto per colpa di quel controllore. Probabilmente alla squadra di ricognizione è successa la stessa cosa. Si sono sparati a vicenda... Quelle creature sono tra le peggiori della Zona, inoltre non siamo stati addestrati per combatterle. Il controllore ci ha colti di sorpresa e abbiamo perso altri uomini. + + + Almeno spero che questo controllore sia stato tolto di mezzo. + + + Spero che ora le cose si calmeranno un po'... Ti sono grato per l'aiuto, maggiore. Immagino che tu abbia consumato un bel po' di munizioni nel corso di questa missione... Vai dal Tenente Kirillov e chiedigli di fornirti il kit necessario. + + + Grazie, colonnello! + + + Non ti preoccupare, colonnello... Penserò io a quel mutante. + + + Puoi darmi altri dettagli su questa missione? + + + Lui chi è? + + + Se non ci sbrighiamo a trovare la fonte dell'interferenza, non ci resterà altro da fare che aspettare di morire. Il primo attacco di massa della Monolith farà a pezzi l'esercito... e l'operazione sarà un fallimento totale. + + + Cercherò di trovare la fonte il prima possibile. + + + Allora, maggiore? Hai trovato la fonte dell'interferenza radio? + + + No, ci sto ancora lavorando... + + + Garry mi ha parlato dell'incidente con i mercenari... + + + Sì, ne ha parlato anche a me... Non appena Garry è fuggito è venuto qui per paura di essere inseguito. Fortunatamente per noi e per lui, i mercenari non sono riusciti a seguirlo. Ora sorvegliamo il luogo dove dovrebbero incontrarsi i mercenari e gli uomini del cliente, ma è tutto tranquillo... Vorrei proprio sapere perché i mercenari vogliono questo posto... + + + Secondo le mie informazioni i mercenari stanno cercando un laboratorio segreto a Pripyat. + + + Un laboratorio segreto qui a Pripyat? Ma dove ti sei procurato questa informazione? + + + Dal notebook di un mercenario a Zaton. Poi uno stalker chiamato Zio Yar mi ha raccontato una storia che l'ha confermata. + + + Mmm... sai altro? + + + Stanno cercando il laboratorio centrale. Sono riuscito a trovare le coordinate durante la mia indagine. + + + Se questo è vero, significa che abbiamo un nuovo nemico, oltre agli zombi e ai fanatici... Dobbiamo stabilire un piano d'azione. + + + Dobbiamo osservare l'incontro ed eliminare il rappresentante del cliente, se possibile... Così ci assicureremo che nessuno vada al laboratorio X8 per un po'. + + + È una buona soluzione, anche se così non scopriremo chi altri è a conoscenza del laboratorio. Almeno, però, avremo la certezza che i mercenari non lo raggiungeranno. Allo stesso tempo, i mercenari reagiranno rapidamente e diventeranno una minaccia. Se puoi cerca di uccidere entrambi i bersagli. Io ordinerò al Tenente Kirillov di venire con te. + + + OK. + + + Aspetta, forse dovremmo scegliere l'altro bersaglio. + + + Decidi quale bersaglio ha la priorità. + + + Dobbiamo eliminare il capo dei mercenari... Fatto questo la squadra di mercenari sarà priva di una guida e non costituirà più un grosso problema. + + + È una buona soluzione, ma il messaggero probabilmente riuscirà a scappare e diffonderà altrove le informazioni sui laboratori. Prima o poi i mercenari ci arriverebbero comunque. Se puoi cerca di eliminare entrambi i bersagli. Ordinerò al Tenente Kirillov di venire con te. + + + Non ho tempo per queste cose. + + + Dal notebook di un mercenario a Zaton. + + + Una storia che mi ha raccontato Zio Yar, uno stalker della stazione Yanov. + + + Riguardo i mercenari... + + + Ottimo lavoro, entrambi i bersagli sono stati assassinati. Ora i mercenari non ci staranno più tra i piedi ed eviteranno di interessarsi inutilmente al laboratorio. Tieni pure il fucile. Ecco un altro po' di munizioni. + + + Bene, ora che il capo è morto i mercenari non costituiranno più un problema. Ma, considerato che gli uomini del cliente se la sono cavata, potrebbero arrivare al laboratorio. Stai all'erta... e tieni pure il fucile. Ecco un altro po' di munizioni. + + + Bene, ora che la persona che conosceva l'ubicazione del laboratorio è morta, i mercenari non lo troveranno. Comunque, dubito che se ne andranno da Pripyat, il che significa che continueranno a minacciarci. Stai all'erta... e tieni pure il fucile. Ecco un altro po' di munizioni. + + + Hai cambiato bersaglio all'ultimo secondo? Beh, credo tu abbia fatto bene. Ora che il capo è morto, i mercenari non costituiranno più un problema. Ma, considerato che gli uomini del cliente se la sono cavata, potrebbero arrivare al laboratorio. Stai all'erta... e tieni pure il fucile. Ecco un altro po' di munizioni. + + + Hai cambiato bersaglio all'ultimo secondo? Beh, credo tu abbia fatto bene. Ora che la persona che conosceva l'ubicazione del laboratorio è morta, i mercenari non lo troveranno. Comunque, dubito che se ne andranno da Pripyat, il che significa che continueranno a minacciarci. Stai all'erta... e tieni pure il fucile. Ecco un altro po' di munizioni. + + + Non è andata granché bene. Il capo dei mercenari e l'uomo del cliente sono ancora vivi. Ora i mercenari sanno di noi e costituiranno una minaccia tanto quanto le forze della Monolith. Inoltre, ora conoscono anche l'ubicazione del laboratorio, quindi è solo una questione di tempo prima che ci arrivino. Stai all'erta... e tieni pure il fucile. Ecco un altro po' di munizioni. + + + Prepara i tuoi soldati, colonnello. Sono pronto per partire. + + + OK. Maggiore, tu copri Strelok. Noi sapremo badare a noi stessi. + + + Quindi... Tra noi tu e Strelok siete quelli con la maggiore esperienza nella Zona. La differenza è che mentre l'esperienza di Strelok è solo una diceria, il fatto che tu sia un professionista è ovvio. Quello che sto cercando di dire è che conto su di te, maggiore. Tieni d'occhio Strelok, non siamo rimasti in molti. + + + La squadra è pronta per partire. Aspettiamo te, maggiore. + + + A quanto pare tutti i pazzi sono morti. Prendi quel fucile e andiamocene da qui finché possiamo. + + + Mi sembra giusto. + + + Sono pronto, andiamo. + + + OK. La squadra è pronta. + + + Muoversi. + + + Dovremo aspettare. Non voglio perdere degli uomini nell'emissione. + + + Sono il Capitano Tarasov. Tu sarai anche un maggiore, ma qui comando io e questo significa che i miei ordini non si discutono. Da essi dipendono le vite di tutti gli uomini della squadra. Ecco il piano: ci metteremo in posizione nella sezione occidentale dell'ospedale e aspetteremo l'arrivo delle forze dei Monolith. Dobbiamo agire in fretta per non attirare attenzioni indesiderate. + + + Ricevuto, andiamo. + + + OK. La squadra è pronta. + + + Muoversi. + + + Dovremo aspettare. Non voglio perdere degli uomini nell'emissione. + + + Aspetta, capitano, non sono ancora pronto. + + + Niente di nuovo sul fronte interferenza? + + + Ho identificato molte fonti, una delle quali qui vicino. Se venisse distrutta, probabilmente riusciremmo a comunicare con il quartier generale. + + + Ho trovato le coordinate della fonte dell'interferenza. Deve essere una sorta di frequenza alta e specializzata o forse una trasmittente a microonde. + + + Il congegno che hai distrutto era la fonte dell'interferenza... probabilmente ce ne sono a tonnellate, ma siamo già riusciti a contattare il quartier generale. + + + Parlami del segnale. + + + Il segnale continua a comparire e scomparire, ma ogni volta è sempre più vicino alla base. + + + Tutto qui? + + + Non proprio... il fatto è che il segnale viene trasmesso su frequenze raramente usate per le comunicazioni radio. + + + Capisco. + + + Prendi quest'arma e queste munizioni... Per il momento puoi rilassarti. Io sorveglierò la posizione dall'altra parte e ti contatterò non appena arriveranno. + + + OK. + + + Salve. Sono il Tenente Kirillov. Sono il responsabile della manutenzione delle armi e del deposito munizioni. + + + Hai delle munizioni? + + + Sì, l'altro giorno abbiamo trovato un magazzino dei Monolith pieno di munizioni per ogni tipo di arma presente nella Zona... Chissà come fanno a procurarsi tutti quegli armamenti... Immagino che glieli venda una delle guardie del perimetro... + + + Quindi puoi riparare anche le mie armi? + + + Certo. Siamo stati addestrati per riparare ogni tipo di arma. + + + Capisco. + + + Salve! + + + Ma da dove arriva questo mal di testa... + + + Ecco il momento della verità... chissà se ce la faremo o no... + + + Mi servono delle munizioni. + + + Nessun problema... Di quale tipo? + + + Munizioni per pistola 9x18... + + + Ecco... Nient'altro? + + + Tieni... + + + Munizioni per pistola 9x19... + + + Munizioni per pistola 11.43x23... + + + Munizioni per il fucile... + + + Munizioni per il fucile d'assalto 5.45x39... + + + Munizioni per il fucile d'assalto 5.56x45... + + + Munizioni per il fucile d'assalto 9x39... + + + Munizioni per il fucile da cecchino... + + + Munizioni per il mitra... + + + Non posso dartene altre, maggiore... Il colonnello ha ordinato di limitare l'uso delle munizioni. + + + OK, lascia perdere. + + + Mi servono delle granate. + + + Nessun problema... Di che tipo? + + + Granate a mano. + + + Tieni... + + + Munizioni per il lanciagranate VOG-25. + + + Munizioni per il lanciagranate M209. + + + Anzi, lascia perdere. + + + Non posso dartene altre, maggiore... Il colonnello ha ordinato di limitare l'uso delle munizioni. + + + Mi serve assistenza medica. + + + Sono sempre felice di rendermi utile. Diamo un'occhiata... + + + Ecco qui, pronto all’azione. + + + Come ti senti, dopo quello che è successo? + + + Ora sto bene... Dopo l'asilo ero sotto shock, ma non appena è cominciata l'emissione mi sono ripreso immediatamente... + + + Salve! + + + La cosa più importante è raggiungere gli elicotteri. + + + Mi servono dei medicinali. + + + Vediamo che cosa ho. Tieni, prendi questo... + + + Mi spiace, non me ne sono rimasti molti. Non te ne posso dare più di così. + + + Abbiamo intercettato il tuo segnale radio. + + + Sì. Ho contattato uno stalker chiamato Guide. Mi ha spiegato lui come raggiungere questo posto passando dalle gallerie sotterranee. + + + Chi è Guide? + + + Uno stalker leggendario. Dicono che ti possa accompagnare ovunque, nella Zona... Quelli dell'esercito sono stati fortunati ad averlo incontrato. Senza di lui non sarebbero durati a lungo. + + + Come facevi a sapere che qui ci sono i militari? + + + Me l'ha detto Guide... è stato lui a portare qui Kovalski e la sua squadra. + + + Capisco. + + + Che informazioni vuoi da consegnare al governo? + + + Parecchie cose... Sono sicuro che le mie informazioni possono essere usate per distruggere la Zona. Pensavo di poterlo fare da solo, ma ho scoperto che la cosa è molto più complicata. Le persone che hanno dato via a tutto quanto non sono più in grado di controllare quanto sta succedendo... Ti spiegherò tutto quando saremo fuori da qui. + + + Cosa hai visto nel sarcofago? + + + È tutta una farsa... Il Monolite, l'Esauditore di desideri... Sono solo balle che obnubilano la tua mente. E le persone che ci stanno dietro sono spariti dalla circolazione chissà dove... + + + E tu sai chi c'è dietro tutto questo? + + + Forse sì, forse no... Non so più a cosa credere... Nonostante questo, ho scoperto più cose di quante loro avrebbero voluto. + + + OK, basta così. + + + Ti dirò tutto quello che so, purché queste informazioni raggiungano le persone giuste. + + + Mentre venivo qui ho trovato i nascondigli del tuo gruppo... + + + Mi chiedo come tu sia riuscito a trovarli... lì dentro avrebbero dovuto esserci dei dossier. Li hai trovati? + + + Sì, ho trovato questi tre appunti. + + + Grazie... Ghost e Fang erano miei amici... Insieme siamo riusciti a superare il Bruciacervella e raggiungere la centrale di Chernobyl. Purtroppo sono morti entrambi. Dopo essere tornati ci siamo separati... io ero ferito e sono rimasto con Doctor alle paludi. Non li ho più rivisti... Solo più tardi ho scoperto che Fang era stato ucciso dai mercenari e Ghost era morto perché si era fidato degli scienziati... Comunque, ormai è acqua passata... Ora so cosa va fatto perché i miei amici non siano morti invano. + + + Sì, ecco il tuo messaggio per Ghost. + + + Grazie... Ghost era mio amico... Insieme a lui e a Fang siamo riusciti a superare il Bruciacervella e raggiungere la centrale di Chernobyl. Dopo essere tornati al centro ci siamo separati... io ero ferito e sono rimasto con Doctor alle paludi. Non li ho più rivisti... Solo più tardi ho scoperto che Fang era stato ucciso dai mercenari e Ghost era morto perché si era fidato degli scienziati... + + + Ecco il biglietto di Fang per te. + + + Grazie... Fang era mio amico... Insieme a lui e a Ghost siamo riusciti a superare il Bruciacervella e raggiungere la centrale di Chernobyl. Dopo essere tornati al centro ci siamo separati... io ero ferito e sono rimasto con Doctor alle paludi. Non li ho più rivisti... Solo più tardi ho scoperto che Fang era stato ucciso dai mercenari e Ghost era morto perché si era fidato degli scienziati... + + + Sì, ecco il tuo messaggio per Fang. + + + Grazie... Fang era mio amico... Insieme a lui e a Ghost siamo riusciti a superare il Bruciacervella e raggiungere la centrale di Chernobyl. Dopo essere tornati al centro ci siamo separati... io ero ferito e sono rimasto con Doctor alle paludi. Non li ho più rivisti... Solo più tardi ho scoperto che Fang era stato ucciso dai mercenari e Ghost era morto perché si era fidato degli scienziati... + + + Ecco il tuo biglietto a Ghost e il biglietto di Fang per te. + + + Grazie... Ghost e Fang erano miei amici... Insieme siamo riusciti a superare il Bruciacervella e raggiungere la centrale di Chernobyl. Purtroppo sono morti entrambi. Dopo essere tornati ci siamo separati... io ero ferito e sono rimasto con Doctor alle paludi. Non li ho più rivisti... Solo più tardi ho scoperto che Fang era stato ucciso dai mercenari e Ghost era morto perché si era fidato degli scienziati... + + + Ecco il tuo biglietto a Ghost e il biglietto di Fang per te. + + + Grazie... Ghost e Fang erano miei amici... Insieme siamo riusciti a superare il Bruciacervella e raggiungere la centrale di Chernobyl. Purtroppo sono morti entrambi. Dopo essere tornati ci siamo separati... io ero ferito e sono rimasto con Doctor alle paludi. Non li ho più rivisti... Solo più tardi ho scoperto che Fang era stato ucciso dai mercenari e Ghost era morto perché si era fidato degli scienziati... + + + Ecco il tuo biglietto per Fang e il suo per te. + + + Grazie... Fang era mio amico... Insieme a lui e a Ghost siamo riusciti a superare il Bruciacervella e raggiungere la centrale di Chernobyl. Dopo essere tornati al centro ci siamo separati... io ero ferito e sono rimasto con Doctor alle paludi. Non li ho più rivisti... Solo più tardi ho scoperto che Fang era stato ucciso dai mercenari e Ghost era morto perché si era fidato degli scienziati... + + + Sì. Purtroppo non li ho con me. + + + Diamo un'occhiata... Maggiore, sei nei guai... Cioè, probabilmente supereresti l'esame medico per l'ammissione al programma spaziale, ma a parte questo sei in pessima forma! Ah! + + + Andiamo, maggiore. I Monolith non aspetteranno. + + + Maggiore, manca una sentinella: ha lasciato la sua postazione. Il suo segnale radar proviene dalla macelleria, ma non risponde. Chissà cosa è successo laggiù. Forse si è spaventato... lo schianto dell'elicottero lo ha spaventato per bene. Puoi controllare il suo segnale? + + + Lo farò. + + + Non posso promettere nulla. + + + Maggiore, dobbiamo trovare l'unità di ricognizione. + + + Tu e la squadra di assalto dovete procedere verso l'oggetto A17. Il Capitano Tarasov vi indicherà i dettagli. Il bersaglio sono due ali d'ospedale collegate da un passaggio. I combattenti Monolith sono al momento nell'ala ovest. Dovete allestire un'imboscata nell'altra ala. Dovrebbero essere armati di fucile, probabilmente portato dal più pazzo tra loro. + + + Probabilmente è il capo della squadra. I ragazzi l'hanno visto impartire un sermone ai combattenti. Letteralmente! Sii prudente... non sappiamo cosa aspettarci da uno come lui. + + + Ricevuto, colonnello. + + + Salve. Sono il Colonnello Kovalski, comandante di quest'unità. + + + Sono il Maggiore Degtyarev, dell'esercito americano. Sono autorizzato a indagare sul fallimento dell'Operazione Fairway. + + + Capisco. Allora ascoltami bene, maggiore. L'Operazione Fairway è precipitata insieme ai nostri elicotteri. Metà dei miei ragazzi ci hanno lasciato le penne e non abbiamo più ricevuto comunicazioni dal quartier generale. Voglio sapere perché la missione è fallita almeno quanto te. + + + Qualche idea? + + + La mia unica idea è che gli elicotteri siano stati abbattuti. Abbattuti da un'arma molto potente su cui non sappiamo molto. I combattenti Monolith ne hanno usata una contro di noi durante il primo assalto alla centrale di Chernobyl. Voglio rubare una di quelle armi e indagare. Se vuoi prendere parte all'azione, abbiamo localizzato la squadra di Monolith e la squadra di assalto aspetta il mio segnale per dare il via all'operazione. Che ne dici? + + + Accetto a condizione che tu mi fornisca tutte le informazioni che possiedi e che mi conceda completa libertà di azione. + + + Ho delle informazioni sull'arma non identificata, il fucile Gauss. + + + Wow! Come funziona? Può essere usato per abbattere un elicottero? + + + Tecnicamente sì, ma il proiettile accelerato avrebbe lasciato dei buchi nell'elicottero, mentre non ne sono stati rinvenuti. + + + Dannazione... allora siamo in un vicolo cieco. Non ho altre idee. Ora possiamo solo starcene ad aspettare nel bel mezzo della Zona e sperare che ci vengano a prendere... OK, basta frignare. Preoccupiamoci piuttosto di cosa possiamo fare qui. Grazie a te sappiamo che stare al riparo non ci proteggerà da quei proiettili accelerati, e questo è già qualcosa. Quindi grazie, maggiore. Ti contatterò se scopriremo qualcosa di nuovo. + + + Tecnicamente sì, ma gli Stingray 4 e 5 si sono schiantati per via di malfunzionamenti elettronici. I proiettili accelerati non avrebbero avuto quell'effetto. + + + Come procede l'operazione? + + + Il Sergente Morozov è stato ucciso. I combattenti Monolith ci hanno attirato in una trappola sacrificando la propria gente. + + + Bastardi! Non potevano sapere del nostro piano... Quindi abbiamo perso il cecchino. Che mi dici dello scopo dell'operazione? + + + Abbiamo subito alcune perdite. I combattenti Monolith ci hanno attirato in una trappola sacrificando la propria gente. + + + Bastardi! Non potevano sapere del nostro piano... Quindi abbiamo perso alcuni uomini. Che mi dici dello scopo dell'operazione? + + + La squadra è morta. I combattenti Monolith ci hanno attirato in una trappola sacrificando la propria gente. + + + Bastardi! Non potevano sapere del nostro piano... Quindi abbiamo perso Tarasov e i suoi uomini. Che mi dici dello scopo dell'operazione? + + + Ho preso l'arma. Durante lo scontro è rimasta danneggiata. + + + Quindi non possiamo determinare se è stata usata per abbattere gli elicotteri. Ascolta, maggiore: tu hai delle conoscenze tra gli stalker. Forse loro si sono già imbattuti in quest'arma. Tra di loro dovrebbero esserci dei tecnici. Puoi cercare di parlare con loro? + + + OK. + + + Bene... Ah, a proposito, è arrivato un altro stalker da Jupiter... Prima parla con lui, se ti va. + + + Ci sto ancora lavorando. + + + Capisco. Maggiore, ci serve quell'arma. Sono sicuro che tu capisca quanto sia importante. + + + D'accordo. + + + Ho trovato il tuo biglietto al complesso Volkhov AA. Prendilo. + + + Ascolta... Oh, lascia stare. Tanto non credo che qualcuno dei nostri si farà vedere nel punto stabilito. Se vedi dei militari da queste parti fammi un fischio, d'accordo? Grazie fin d'ora... + + + Maggiore... grazie al cielo! Sono salvo! + + + Come sei finito qui? + + + Ehm... non ricordo molto... Avevo talmente tanta paura da non riuscire quasi a pensare e non so nemmeno cosa mi abbia spaventato. Avevo la sensazione di dovermi nascondere, così sono scappato... Ricordo strade, curve... Sono finito in questo buco. La porta era chiusa dall'esterno... Credevo che sarei morto. Come hai fatto a trovarmi? Anzi, andiamocene da qui e torniamo alla base. Questo posto mi dà i brividi... + + + Andiamo. + + + Salve. Ti serve assistenza medica? Non sono un medico, ma se serve posso rimuovere i proiettili e ricucire le ferite. + + + Mi servono delle informazioni. + + + Chiedi pure. + + + Riguardo l'Operazione Fairway... + + + Cosa vuoi sapere? + + + È successo qualcosa di strano mentre gli elicotteri erano in volo? + + + Solo da quando gli elicotteri hanno iniziato a schiantarsi. Noi ci siamo attenuti al piano dell'operazione: siamo partiti 90 secondi prima dell'emissione, abbiamo attivato il nostro sistema di protezione e impostato il pilota automatico. Stavamo seguendo la rotta più breve e sicura, calcolata usando la mappa della anomalia. Il fatto che non avessimo alcuna visibilità non avrebbe dovuto influenzare l'esito della missione, perché il corridoio era ampio a sufficienza. Secondo il piano, avremmo dovuto raggiungere la centrale energetica in dodici minuti e mezzo. Dopo nove minuti abbiamo perso le comunicazioni con lo Stingray 4, poi gli altri hanno iniziato a cadere come mosche. + + + Ho altre domande sull'operazione. + + + Sai cosa è successo agli elicotteri? + + + Non molto. Gli Stingray 2 e 4 sono un vero mistero. Non so dove si siano schiantati o cosa sia successo agli uomini a bordo. Le informazioni sugli altri elicotteri provengono da quelli che sono sopravvissuti, quindi non aspettarti un quadro dettagliato. Avevamo altre cose di cui preoccuparci. + + + Parlami dello Stingray 1. + + + Come sei arrivato qui? + + + Incontrammo uno stalker non lontano dal campo minato. Credo che abbia sentito la mina esplodere. Un tipo strano... si faceva chiamare Guide. Non ha fatto domande e si è offerto di portarci fino a Pripyat. La cosa rientrava nel nostro piano, quindi ho accettato. L'abbiamo tenuto d'occhio perché la prudenza non è mai troppa, ma tutto è andato per il meglio... Non ha detto una parola finché non abbiamo raggiunto la città, e a quel punto è sparito all'improvviso. Ho ordinato ai miei uomini di lasciarlo in pace. + + + Parlami dello Stingray 3. + + + Il Capitano Tarasov dice che entrambi i motori sono andati in avaria. Sono stati costretti ad atterrare sulla collina intorno alla posizione B2. Per loro fortuna hanno fatto un atterraggio morbido, ma il tecnico non ha avuto tempo di risalire alle cause del malfunzionamento perché sono stati attaccati dagli snork e hanno perso tre uomini. Gli altri hanno deciso di levare le tende... Hanno contattato quelli dello Stingray 5 e si sono diretti verso di loro. Durante il percorso hanno dovuto affrontare una squadra di uomini ben armati, ma sono riusciti a cavarsela senza subire perdite. + + + Come sei arrivato a Pripyat? + + + Gli equipaggi degli Stingray 3 e 5 sono riusciti a riunirsi non lontano dai punti di schianto, nei pressi di una specie di chiatta. Mi è stato comunicato che l'uomo che ci viveva era pazzo da legare: quando i miei uomini hanno cercato di arrestarlo, lui ha cercato di arrestare loro! Cioè, quel povero diavolo era da solo contro undici! Comunque, l'esserci imbattuti in questo stalker è stata una fortuna, perché le due parti sono riuscite a trovare un accordo e lui ha condotto tutta la squadra a Pripyat praticamente illesa. L'unico a subire danni è stato il Tenente Stetsenko, che ha perso due dita di un piede in un'anomalia gravitazionale mentre veniva qui. + + + Parlami dello Stingray 5. + + + I sistemi elettronici sono andati in avaria e lo Stingray 5 è precipitato in una palude. Cinque uomini sono sopravvissuti allo scontro. Sono stati contattati dallo Stingray 3 mentre tiravano fuori l'attrezzatura dall'elicottero. Il comandante della squadra, il Maggiore Neborsky, è morto durante il tragitto al punto d'incontro. Quel povero diavolo è stato ammazzato da un succhiasangue nei pressi della stazione di scansione... Gli altri ce l'hanno fatta senza problemi. Hanno perso un altro uomo, il Sergente Batyai, uno dei cecchini, quando hanno raggiunto Pripyat e hanno dovuto affrontare le forze della Monolith. + + + Come sei arrivato a Pripyat? + + + Gli equipaggi degli Stingray 3 e 5 sono riusciti a riunirsi non lontano dai punti di schianto, nei pressi di una specie di chiatta. Mi è stato comunicato che l'uomo che ci viveva era pazzo da legare: quando i miei uomini hanno cercato di arrestarlo, lui ha cercato di arrestare loro! Cioè, quel povero diavolo era da solo contro undici! Comunque, l'esserci imbattuti in questo stalker è stata una fortuna, perché le due parti sono riuscite a trovare un accordo e lui ha condotto tutta la squadra a Pripyat praticamente illesa. L'unico a subire danni è stato il Tenente Stetsenko, che ha perso due dita di un piede in un'anomalia gravitazionale mentre veniva qui. + + + Non molto. Lo Stingray 2 è un vero mistero. Non so dove si siano schiantati o cosa sia successo agli uomini a bordo. Dello Stingray 4 dovresti saperne più tu di me. Il Tenente Sokolov, quello che è venuto qui con te, è l'unico sopravvissuto di quell'elicottero. Le informazioni sugli altri elicotteri provengono da quelli che sono sopravvissuti, quindi non aspettarti un quadro dettagliato. Avevamo altre cose di cui preoccuparci. + + + Non molto. Lo Stingray 2 è un vero mistero. Non so dove si siano schiantati o cosa sia successo agli uomini a bordo. Dello Stingray 4 puoi chiedere direttamente al Tenente Sokolov, l'unico sopravvissuto di quell'elicottero che è arrivato fino a Pripyat. Le informazioni sugli altri elicotteri provengono da quelli che sono sopravvissuti, quindi non aspettarti un quadro dettagliato. Avevamo altre cose di cui preoccuparci. + + + Mi servono altre informazioni. + + + Non ho altre domande. + + + Qual è la situazione a Pripyat? + + + Più schifosa di così si muore. Pripyat brulica di un misto di fanatici Monolith e di zombi. Le emissioni arrivano una dopo l'altra, e ci sono sempre dei mutanti e delle anomalie da cui scappare... Benvenuto all'inferno. + + + Come siete messi ad attrezzature e scorte? + + + Parlami dei Monolith. + + + Sono puri e semplici fanatici. Non so cosa gli prenda, ma sono sempre in cerca di uno scontro. Non si ritirano nemmeno quando sono in svantaggio numerico o il nemico ha maggiore potenza di fuoco... E questo è piuttosto raro da queste parti. Sembra che ricevano rinforzi regolari dalla centrale di Chernobyl. Che vadano al diavolo, a causa dei loro attacchi abbiamo già perso cinque uomini. + + + Avete cercato di interrogarne uno? + + + Non serve a niente. Innanzitutto, combattono fino alla morte. I nostri ragazzi sono riusciti a prenderne uno vivo, stordito da una granata, ma è stato inutile. Ci siamo distratti un secondo e lui ha picchiato la testa contro il muro con talmente tanta forza da spappolarsi il cranio come fosse un uovo. + + + Adesso cosa farete? + + + Non credo sia possibile proseguire l'Operazione Fairway. La tua presenza lo conferma. Il mio piano è difendere la base fino all'arrivo degli elicotteri. Ho numerose date di evacuazione possibili. + + + Non arriverà nessun elicottero finché non avremo scoperto le cause dello schianto degli Stingray. + + + Allora è così che stanno le cose... Beh, non potremo certo andarcene a piedi! Solo il cielo sa quante miglia di questo schifo abbiamo davanti, e la Zona è piena di stalker che non sono esattamente i nostri migliori amici. Questo significa che la nostra sola possibilità di salvezza è di procedere con l'indagine cercando di non lasciarci la pelle. Maggiore, qui lavoriamo per lo stesso scopo. + + + Non adesso. + + + Ti ascolto, maggiore. + + + L'unico equipaggiamento di cui disponiamo è quello che abbiamo portato noi. Oh, siamo anche riusciti a rubare qualcosa ai Monolith, soprattutto munizioni. Questo significa che siamo molto attenti nel dare via quanto abbiamo. Lo stesso vale per il cibo... abbiamo solo razioni e della sbobba proveniente dal magazzino dei Monolith. + + + L'unico equipaggiamento di cui disponiamo è quello che abbiamo portato noi. Oh, siamo anche riusciti a rubare qualcosa ai Monolith, soprattutto munizioni. Questo significa che siamo molto attenti nel dare via quanto abbiamo. Riguardo le scorte il discorso è più o meno uguale, a parte che ho fatto un accordo con Garry. Lui ci porta del cibo in scatola e noi lo lasciamo stare alla base e chiudiamo un occhio quando esce a cercare manufatti. Non è che abbiamo molta scelta. + + + Abbiamo vendicato i nostri ragazzi. Fai quel che devi fare e torniamo indietro. Non mi va di restare qui. + + + Non perdiamo tempo qui, OK??Voglio tornare alla base il prima possibile... + + + OK. + + + Laggiù c'è quella strana cosa!?Secondo te a cosa serve??Ah, non fa niente. Forza, amico, fai quel che devi fare e torna alla base. + + + Hai finito??Io voto per tornare alla base e mangiare un boccone... + + + OK. + + + Come butta? + + + Merda. È bello essere con la propria gente, ma non trovo grande conforto nello stare insieme in una topaia come questa. + + + Non ti avevo mai visto qui prima d'ora. Sei arrivato da poco? + + + Sì. Sono il Tenente Sokolov, copilota dello Stingray 4. + + + Come sei arrivato qui? + + + Sono venuto con uno stalker di nome Garry. Gli ho chiesto di portarmi con lui quando fosse andato a cercare una strada per Pripyat. Che viaggio è stato, credimi!?Meno male che abbiamo incontrato il nostro gruppo di ricognizione appena arrivati a Pripyat. + + + Cosa è successo allo Stingray 4? + + + E chi lo sa??Io ho sempre avuto una brutta sensazione al riguardo... Stavamo volando con il pilota automatico, gli strumenti funzionavano bene e all'improvviso ci siamo ritrovati a volare in un pezzo di metallo con tutti gli strumenti in corto. Io e il pilota abbiamo cercato di atterrare ma non ha funzionato. Siamo caduti dritti nelle officine dello stabilimento Jupiter, passando dal tetto. Io sono stato l'unico a salvarsi. + + + Mi serve un'armatura. + + + OK. Tanto per cominciare ecco l'elmo. Ora passiamo all'armatura... spero sia della tua taglia perché comunque è l'unica che abbiamo. L'ho sistemata, quindi dovrebbe starti. + + + Certo, maggiore. Considerate le circostanze, non ho molta scelta. A proposito, vai dal Tenente Kirillov. Lui ti fornirà un po' di equipaggiamento. + + + Riguardo gli elicotteri... + + + Ti ascolto. + + + Cavoli, roba da pazzi... Già vedo Kirillov che mi chiederà dell'aspirina. + + + La parte peggiore è l'attesa. + + + OK, maggiore, i ragazzi sono pronti per partire. Fai scorte da Rogovets e da Kirillov se ne hai bisogno. Fammi sapere quando sei pronto. + + + OK. + + + Muoversi. + + + Mmm, in tal caso ce ne serve una resistente come la roccia, come quelle che hanno gli scienziati. Comunque, convincere Hermann a cederla non sarà facile. Ho la sensazione che preferirebbe mandarmi con le chiappe scoperte fino ai confini della Zona piuttosto che vedermi occupare dello spazio nel loro prezioso bunker... Prova a chiedere a Ozersky. È più gentile e forse accetterà di darmi una tuta. + + + Allora, maggiore? + + + [continua...] + + + [continua...] + + + Io ero a bordo. Non appena le comunicazioni con Stingray 4 sono cessate, ho informato gli altri del punto di evacuazione designato, a Pripyat: credevo che avremmo potuto raggiungere la centrale a piedi. Subito dopo l'elicottero è stato colpito e ho sentito odore di bruciato: il motore aveva preso fuoco. I piloti sono riusciti a farci posare sull'eliporto vicino allo stabilimento Jupiter, ma sono morti entrambi nell'impatto. Poi abbiamo perso il Sergente Shlyachin, dato che il tragitto di avvicinamento agli eliporti era minato... Un altro soldato, un tenente, è morto a Pripyat, combattendo contro forze Monolith per conquistare quest'edificio. + + diff --git a/gamedata/configs/text/ita/st_dialogs_zaton.xml b/gamedata/configs/text/ita/st_dialogs_zaton.xml new file mode 100644 index 0000000..6524cd3 --- /dev/null +++ b/gamedata/configs/text/ita/st_dialogs_zaton.xml @@ -0,0 +1,3117 @@ + + + + C'era uno strano manufatto alla stazione di drenaggio. Tieni. + + + Interessante, un semi-manufatto... Ecco quanto pattuito. Per un lavoro svolto bene pago bene... A quanto pare sai il fatto tuo. Vieni da me quando ti serve un lavoro. Spesso ricevo ordinazioni per determinati manufatti, e la paga è più che discreta. + + + Hai un lavoro per me? + + + Qualcosa... Ieri notte gli stalker hanno visto uno strano bagliore alla stazione di drenaggio... Troppo strano anche per queste parti. Perché non vai a controllare? + + + Lo farò. + + + Non dimenticare di essere prudente. Ti avverto, quel posto è pieno di radiazioni. Non ti dimenticare le medicine, più tardi mi ringrazierai. + + + Non adesso. + + + Ho già assegnato tutti i lavori di cui disponevo per oggi. + + + Prendi questo semi-manufatto. + + + Ecco la tua fetta di torta. Per un lavoro svolto bene pago bene... A quanto pare sai il fatto tuo. Vieni da me quando ti serve un lavoro. Spesso ricevo ordinazioni per determinati manufatti, e la paga è più che discreta. + + + Alla stazione di drenaggio ho trovato uno strano manufatto. Vuoi dare un'occhiata? + + + Interessante... un semi-manufatto. Lascia che te lo compri: 3.000 mi sembra un prezzo adeguato. + + + Ho visto che qualcuno ti ha portato un manufatto che ho trovato io. + + + Spiacente, ma non mi farò trascinare in questa storia. Le mie regole sono molto semplici: tu consegni e io ti pago. Sai come funziona la Zona. Tieni gli occhi aperti, sii veloce e non fidarti di nessuno più dello stretto necessario. Ma se ti serve un lavoro fisso, conta su di me. Spesso ricevo ordinazioni per determinati manufatti, e la paga è più che discreta. + + + Quali manufatti ti servono? + + + Ti procurerò un Gravi. + + + Eccellente! Sei stato veloce. Ecco il tuo compenso. + + + Ti procurerò un Occhio. + + + Ti procurerò una Bolla. + + + Ti procurerò una Conchiglia. + + + Ti procurerò un Pesce rosso. + + + Ti procurerò una Fiamma. + + + Ti procurerò una Lucciola. + + + Ti procurerò un Fiocco di neve. + + + Posso venderti un Gravi. + + + C'è qualcosa che non mi quadra. I ragazzi accettano le ordinazioni poi scompaiono... ho una brutta sensazione. Meglio chiudere bottega. + + + Posso venderti un Occhio. + + + Posso venderti una Bolla. + + + Posso venderti una Conchiglia. + + + Posso venderti un Pesce rosso. + + + Posso venderti una Fiamma. + + + Posso venderti una Lucciola. + + + Posso venderti un Fiocco di neve. + + + Capisco. Tornerò più tardi. + + + Entrambe le squadre che lavoravano per me sono scomparse... Ho deciso che d'ora in poi non accetterò altri ordini. + + + Il lavoro è svolto. + + + Fantastico! Ecco la tua ricompensa. + + + Ecco. Forse non è molto, ma è pur sempre qualcosa. + + + Parlami degli ordini di manufatti. + + + Chi potrei assumere per proteggere gli scienziati? + + + I miei ragazzi, Spartacus e il suo gruppo. Sono gente che sa il fatto suo. Alcuni erano nel campo della sicurezza, prima di venire nella Zona, altri erano addirittura nelle forze speciali della polizia. Sanno come si usano le armi... sarebbero la soluzione migliore per avere le spalle coperte. + + + Avrei potuto darti un consiglio, ma dopo gli ultimi eventi... Spartacus e il suo gruppo non ci sono più... Che riposino in pace. + + + Chi potrei assumere per eseguire delle misurazioni per conto degli scienziati? + + + Conosci Gonta e i suoi ragazzi? Quando non vanno a caccia sono... ehm... felici di accettare altri lavoretti. Soprattutto se non c'è bisogno di sparare. Il loro motto è "Se mi devo far venire i calli per colpa del grilletto, meglio farlo quando vado a caccia". + + + Proprio non saprei. Ti consiglierei gli uomini di Gonta, ma è un pezzo che non ho loro notizie. + + + Raccontami com'è la vita da queste parti. + + + Non è un argomento che si esaurisce in due parole. Prova a farmi delle domande specifiche e farò del mio meglio per risponderti. + + + Cosa fanno qui gli stalker? + + + Prova a indovinare, amico. Partono dalla Skadovsk per esplorare il territorio e cercare manufatti, mettendosi a sparare a tutto e a tutti quelli che si mettono sulla loro strada. Poi tornano alla Skadovsk per ubriacarsi... e spassarsela un po' prima della missione successiva. Però quando c'è un'emissione le cose cambiano: ce ne stiamo tutti buoni buoni e ricordiamo quelli che non sono riusciti a mettersi in salvo in tempo... + + + Cosa ha portato gli stalker nel centro della Zona? + + + Domanda buffa. Alcuni sono partiti per cercare una nuova miniera di manufatti. Altri sono venuti per scoprire la verità sulle voci riguardo l'Oasi. Altri cercavano l'Esauditore di desideri. Poi ci sono le più semplici pulsioni umane: la curiosità e la bramosia... Hanno tutti le loro ragioni. Sono sicuro che anche tu hai le tue, no? + + + Come sei finito qui? + + + Sono venuto qui con Grouse dopo che il Bruciacervella è stato disabilitato. Ma sono sicuro che non è questo che vuoi sapere, dico bene? Mi occupo principalmente di manufatti. I gingilli sono dappertutto, quindi i clienti vogliono la roba rara. Ecco perché ho deciso di allestire un accampamento per gli stalker, dove trovare gli articoli di valore. Cioè, quando uno stalker torna indietro con il suo bottino, cos'è che gli serve veramente? Un bicchiere e un po' di calore umano, ecco cosa. Ed è questo che trova sulla Skadovsk. + + + Che cosa ne pensi dei banditi? + + + Beh, è piuttosto semplice. Non ho niente contro la loro presenza sulla Skadovsk, purché si comportino con decenza. Dopotutto, non si incontrano spesso simili idioti. Alcuni di loro un tempo erano stalker. Chi lo sa, uno di quei poveri bastardi potrebbe ancora abbandonare quel tipo di vita prima di beccarsi una pallottola... La vita è piena di sorprese. + + + No, va bene. Lascia perdere. + + + Se lo dici tu. + + + Dimmi, hai visto dei militari da queste parti? + + + Pensaci un attimo. Perché i marine dovrebbero venire nel nostro accampamento? Credimi quando ti dico che preferiscono stare alla larga da questo posto. Qui in molti ricordano ancora com'era strisciare nel fango al Cordon, sotto il fuoco dei loro maledetti mitra... + + + Parlami della Bussola. + + + Intorno a quel manufatto ci sono un sacco di leggende. Dicono che la Bussola non abbia effetti collaterali dannosi e che, se usata nel modo giusto, può condurti fuori da qualunque anomalia. Ora capisci anche tu perché i clienti farebbero la fila pur di accaparrarsene una. Proprio l'altro giorno qualcuno mi ha detto che Noah ne sa di più al riguardo. È uno stalker che vive più a sud. + + + OK, lo andrò a trovare. + + + Ci penserò. + + + Come ti ho già detto, è un manufatto leggendario. Dicono che uno stalker di nome Noah ne sappia di più al riguardo. Vive più a sud. + + + Non lontano da Yanov ho trovato uno strano manufatto. Ti interessa? + + + Fammi dare un'occhiata... È sicuramente un oggetto strano, ma non credo che riuscirei a trovare un acquirente. Ti consiglio di tornare a Yanov e mostrarlo agli scienziati. Roba bizzarra come questa li manda sempre in brodo di giuggiole. + + + Owl dice che non mantieni la tua parte dell'accordo. + + + Il nostro accordo era molto chiaro: io prendo i rilevatori e li attivo sul campo, e lui si prende una fetta dei guadagni. L'ho già pagato per due rilevatori, quindi l'accordo lo sto rispettando eccome. Nel mio accordo con Owl non c'è altro. Se lavori per lui puoi riprendere il terzo rilevatore... ma io non ci casco. + + + Quindi cosa dovrei dire a Owl? + + + Immagino di sì. + + + Fossi in te non mi immischierei con Owl. Se vuoi fare un po' di soldi posso darti un vantaggio nella ricerca dei manufatti. Due o tre ore, sufficienti a battere tutti gli altri. E poi, se ti interessa, ho un'ordinazione speciale. Vedi, ho urgente bisogno di un manufatto chiamato Bussola. + + + Sultan è riuscito a intercettare la Bussola. + + + Quel bastardo è una vera scocciatura... Va bene, stiamo calmi. Cerca di parlare di nuovo con Noah. Stando alle ultime voci di corridoio, potrebbe risultare... utile. + + + Ho trovato una Bussola. Ecco. + + + Mi hai salvato la vita, amico! Adesso posso dire con sicurezza di essermi accaparrato un importante cliente. Voci di corridoio dicevano che Sultan voleva rubarmi il mercato. Mi sa che si beccherà una bella delusione. Tieni, prendi questo... te lo sei guadagnato. + + + Mi rifiuto di cercarti una Bussola. + + + Peccato. Oh, pazienza. + + + Sultan ti manda i suoi saluti. A proposito, tutti i tuoi fornitori ti sono stati preclusi. + + + Ora è ovvio chi c'è dietro tutto questo... Beh, non me ne andrò dalla Skadovsk. A quanto pare non ho altra scelta se non lavorare per te e Sultan. Lui avrà la sua parte delle vendite e tu passerai ogni giorno a prenderti la tua. I soldi possono aspettare. + + + Dammi la mia parte. + + + Eccola qui. + + + Sei in anticipo. Non ho ancora i contanti. + + + Pensi che Nimble traffichi merce rubata? + + + Ne dubito... da quello che so su di lui, preferisce lasciare gli affari loschi ad altri. Un bravo uomo d'affari tiene molto alla propria reputazione. Tutto sommato, non ho mai sentito nessuno parlare male di Nimble. + + + Sto cercando Snag: sai dove posso trovarlo? + + + L'ultima volta che l'ho visto stava uscendo da un bar. Se ricordo bene, era diretto alle gru del porto. Forse ti conviene cercarlo lì. + + + Qualcuno vuole incastrare un gruppo di stalker. Sono anche ragazzi nostri. + + + Ehi, amico. Ci sono banditi che si moltiplicano peggio di conigli e adesso ci mettiamo anche a litigare tra di noi? + + + Mi è stato offerto di attaccare l'accampamento nei pressi di Shevchenko di notte. + + + Stronzi... Sarebbe stato bello se avessi accettato davvero la loro offerta. Capisci dove voglio arrivare? Così posso avvisare i miei ragazzi e allestire un caloroso benvenuto ai nostri ospiti. + + + D'accordo. + + + OK, vai a vedere quegli sfigati e io avviso i ragazzi. + + + Spiacente, ma dovrai fare da solo. + + + Ho un manufatto proveniente dall'Oasi. Ti interessa? + + + Il Cuore dell'Oasi? No, grazie. La gente dice cose diverse... potrebbe trattarsi semplicemente di superstizione, ma preferirei tenermi a distanza. Credo che faresti bene a darlo agli scienziati. Che lo studino e ci dicano con maggiore sicurezza che effetto ha sulle persone. + + + Sei nuovo da queste parti? Non ti preoccupare, ti abituerai in fretta... Sai, la Zona è una severa maestra. Io sono Beard, il barista del posto. Se hai delle domande vieni pure da me, capito? + + + Continua. + + + Che ne diresti di tirare su due soldi cercando dei manufatti? + + + Come va la mia ordinazione? Ricorda, più uno stalker è veloce, più guadagna... + + + Sei in ritardo, il manufatto l'ha già consegnato qualcun altro. Ma se hai completato l'ordinazione posso pagarti comunque, anche se meno. + + + È appena arrivata una notizia. Si dice che i banditi vogliano acquistare un carico di armi. I nostri ragazzi vogliono seguirli e mandare all'aria la transazione. Accetteremo volentieri ogni tipo di aiuto. + + + Allora? + + + Cosa ci fanno i mercenari all'impianto dei rifiuti? + + + Dovresti stare alla larga da quel posto. Non sono affari tuoi. + + + Ti piace lavorare per gli scienziati? + + + Abbastanza. Sono felice che, tra tutti, sia venuto proprio tu. Sei la miglior protezione in cui gli scienziati potevano sperare. + + + Sto raccogliendo una squadra per andare a Pripyat. Vuoi unirti a me? + + + No. Devo tenere d'occhio gli scienziati... Prova a chiedere a Sokolov, se non ricordo male lui voleva andare a Pripyat. + + + No. Devo tenere d'occhio gli scienziati... Dopotutto, siamo qui per proteggerli. + + + Ehm... No, per ora il mio posto è qui. + + + Ti piacerebbe lavorare per gli scienziati? + + + Dipende... di che lavoro si tratta? + + + Difendere il loro bunker. + + + Certo. Grazie per l'offerta! + + + Eseguire delle misurazioni nelle anomalie. + + + Quel tipo di lavoro non fa per noi. Ti conviene chiedere agli stalker. + + + Ascolta, stalker. Ho già dei lancinanti crampi allo stomaco per la fame e il tuo ronzarmi intorno non mi è d'aiuto... + + + Potrei portarti del cibo. + + + Ah ah! OK, ci sto. Della carne in scatola, delle salsicce e del pane... Sei di ciascun tipo. E ricordati di portarne un po' in giro, perché abbiamo una fame fottuta. + + + Ho sentito che da queste parti potrebbero esserci degli strumenti. + + + E chi lo sa? Ma vorrei che la piantassi di correre in giro come una trottola. Abbiamo già abbastanza lavoro così... tanto che non riesco a mandare nessuno a procurarsi del cibo. + + + E chi lo sa? Comunque sentiti pure libero di scavare in mezzo a queste cianfrusaglie. Forse potresti trovare proprio quello che ti serve. + + + Ecco il cibo. + + + Wow, avevo perso ogni speranza... Grazie. I ragazzi apprezzeranno questo pranzetto. Allora, cosa volevi? Scavare in mezzo alle cianfrusaglie? Prego, serviti pure. Forse potresti trovare quello che ti serve. Ma piantala di agitare quell'arma in giro! + + + Wow, avevo perso ogni speranza... Grazie. I ragazzi apprezzeranno questo pranzetto. Ascolta, se volevi scavare in mezzo alle cianfrusaglie, serviti pure. Ma piantala di agitare quell'arma in giro! + + + Qui non sei il benvenuto. Questo è il nostro accampamento e tu non hai il diritto di gironzolare liberamente. I miei ragazzi stanno morendo di fame e sono già abbastanza tesi... + + + Fila via. I miei ragazzi hanno talmente tanta fame che le loro dita potrebbero scivolare facilmente su quei grilletti... + + + Oh, stalker... è una faccenda importante? Altrimenti devo proprio tornare al lavoro. + + + Sono pronto per andare a caccia. + + + OK, andiamo. + + + Muoviamoci. + + + Non è ancora ora. Torna alle tre, di notte. + + + Capisco. + + + Siamo pronti... tranne che per l'emissione... sicuramente la chimera non sta dormendo adesso. Credo che dovremo tentare la sorte un'altra notte... + + + Gonta è morto. Com'è successo? Non è che per caso stai andando a Yanov? Trapper, l'amico di Gonta, si trova lì. Potresti dirgli che la chimera è morta? Probabilmente io me ne tornerò a casa adesso. + + + Fai attenzione. + + + Devo andarmene da qui. Gonta è morto anche a causa tua... Cosa faremo adesso? + + + Fai attenzione. + + + Parlami di te. + + + Sono Gonta, il capo del gruppo di caccia. Uccidiamo mutanti per denaro. Possiamo anche catturarli vivi, per fare esperimenti scientifici o nel caso qualcuno voglia un animale domestico esotico... Come diceva Trapper, "A ciascun animale il suo proiettile". + + + Parlami della caccia ai mutanti. + + + Beh, non sono il più esperto dei cacciatori, ma posso parlarti degli animali che si muovono in branco. Mostri carnivori, cinghiali, cani ciechi, pseudo cani, snork, criceti... So anche un paio di cose sui succhiasangue. + + + Parlami dei cinghiali e dei mostri carnivori. + + + OK, i mostri carnivori sono i mutanti più innocui. Cercano di stare alla larga dagli stalker, ma non si fanno problemi a reagire se vengono attaccati. Se invece dovesse esserci un cinghiale in mezzo a quei mostri carnivori, la cosa potrebbe creare problemi. Trecento chili di rabbia non sono qualcosa da prendere alla leggera. Cerca di non stare sulla sua strada quando ti carica... Usa la sua spinta a tuo vantaggio. Un bestione del genere non riuscirà mica a curvare all'ultimo secondo, no? Schiva di lato, poi riempilo di piombo. + + + Parlami dei cani ciechi e degli pseudo cani. + + + Presi da soli non sono pericolosi, ma in branco sono una vera scocciatura. Ti attaccano solo se hanno fame, peccato che ce l'abbiano quasi sempre. Se ti ritrovi a dover affrontare un branco, cerca di attaccarli dall'alto o ti caricheranno. Soprattutto se in mezzo a loro ci sono degli pseudo cani adulti. Non sono molto più forti di quelli ciechi, ma molto più scaltri e pericolosi... Se uno si trasforma in un branco ricorda che in realtà sei attaccato da fantasmi. Lo pseudo cane vero resterà indietro e cercherà solo di morderti di tanto in tanto... Cerca di riconoscerlo. Non appena il cane reale è morto, i fantasmi scompariranno. + + + Parlami degli snork. + + + Resti di esseri umani... Uno snork solitario non è un gran problema per un cacciatore esperto. Basta aspettare che ti salti addosso e riempirlo di piombo. Invece, quando sono in tanti... devi sparargli addosso il più velocemente possibile mentre eviti i loro salti. Lo sanno e di solito cercano di attaccare insieme. + + + Parlami dei criceti. + + + L'incubo di ogni cacciatore... La cosa peggiore che puoi fare è sottovalutarli per via della loro stazza ridotta. Sono incredibilmente veloci, agili e si muovono sempre in branco. Quando senti dozzine di piccole fauci sbranarti la carne allora è il caso di smettere di sottovalutarli e iniziare a sparare... E questa è la parte più difficile: sono incredibilmente difficili da colpire. Ecco perché dico sempre agli stalker di portare con sé una doppietta carica. + + + Parlami dei succhiasangue. + + + Sono esperti cacciatori, molto abili nel nascondersi. Quando sono mimetizzati si fatica a vederli. Se dai la caccia a un succhiasangue, prova a spaventarlo. Potrai vederlo meglio se si muove... Ricorda, un succhiasangue cercherà di arrivarti alle spalle per avvolgerti i tentacoli intorno al collo. Roba da paura, amico... Se hai la sfortuna di imbatterti in un gruppo di succhiasangue, guardati sempre le spalle! + + + OK, lascia perdere. + + + Se vedo Magpie te lo dirò sicuramente. + + + Gliela farò vedere... lo concerò per le feste! + + + Che male ti ha fatto Magpie? + + + OK, una volta è venuto da me che non riusciva a recuperare il suo bottino per colpa di un controllore. Al tempo al mio equipaggio mancava un uomo. Il nostro esploratore era partito per seguire dei succhiasangue fino alla loro tana. Così abbiamo deciso di aiutare Magpie a recuperare il bottino e l'abbiamo preso a caccia con noi. Lui doveva solo fare da vedetta nel caso si fosse avvicinata la chimera... + + + Poi cosa è successo? + + + È successo che quel bastardo se l'è data a gambe, prendendosi il suo bottino e rubando anche il nostro. Ci siamo rimasti di sasso quando la chimera è arrivata. Garmata, per esempio, non ha neanche avuto il tempo di reagire. Cioè, chi l'avrebbe avuto? Anziché cacciare la nostra preda mi sono ritrovato a difendere il mio gruppo. Ho ferito la chimera, ma lei è riuscita a conciare Crab per le feste prima di scappare. Abbiamo perso una settimana intera di preparativi. + + + Hai la caccia nel sangue, amico! Ecco un trofeo da parte mia! Come diceva Trapper, "L'abilità è la tua arma principale". A proposito, sei diretto a Yanov? Sarebbe bello dire a Trapper che la chimera è morta. Io resterò qui alla Skadovsk per il momento, ad aspettare che Crab guarisca. Verrai con noi? + + + Sì, andiamo. + + + No. Gironzolerò ancora un po'. + + + Ce l'abbiamo fatta. Questo piccolo trofeo è da parte mia... Sarebbe potuta andare meglio, ma va bene così. Come diceva Trapper, "Con l'esperienza, a cosa servono le trappole?". A proposito, sei diretto a Yanov? Sarebbe bello dire a Trapper che la chimera è morta. Io resterò qui alla Skadovsk per il momento, ad aspettare che Crab guarisca. Tu sarai dei nostri? + + + Garmata è morto... Quella chimera ci è costata parecchio. Non è che per caso sei diretto a Yanov? Dovremmo dire a Trapper che la chimera è morta. Io resterò qui alla Skadovsk per il momento, ad aspettare che Crab guarisca. Vieni con noi? + + + Ho trovato Danila. È morto. Ucciso dal fu Tremor. + + + Oh, cavolo! Perché sono sempre i migliori ad andarsene per primi... E quel figlio di cagna di Tremor! Ha ucciso Danila... era un brav'uomo! + + + Pensi che Nimble traffichi merce rubata? + + + Merce rubata? Cosa te lo fa pensare? Conosco Nimble da un bel pezzo, gli ordino le armi con frequenza regolare. Ottima roba a prezzi buoni. È la prima volta che sento un'accusa del genere. A quanto pare ha nuovi concorrenti un po' disperati, che spargono in giro voci false e via dicendo... + + + Sto raccogliendo una squadra per andare a Pripyat. Vuoi unirti a me? + + + Devo rispettare il mio accordo con gli scienziati. E poi non mi va di partire. Ti conviene parlare con Sokolov. Va avanti da un pezzo a dire che vuole andare a Pripyat ma non ha le palle per andarci da solo. Quello sì che è un vero soldato. + + + Devo rispettare l'accordo con gli scienziati. E poi non mi va di andare. Mi spiace, amico. + + + No, non mi va. La caccia è concentrata qui. Sai bene che molti mutanti vagano ancora da queste parti... abbastanza da tenere occupato a vita un buon cacciatore. + + + Ti piacerebbe lavorare per gli scienziati? + + + Qual è il lavoro? + + + Difendere il loro bunker. + + + No, grazie. Sono un cacciatore, e il mio lavoro è occuparmi dei mutanti. E i mutanti non costituiscono una minaccia per il bunker. La gente, sì, quella è un'altra storia. + + + Eseguire delle misurazioni nelle anomalie. + + + Perché no? Possiamo farlo. Dichiaro ufficialmente chiusa la stagione di caccia! Sarà un diversivo gradevole rispetto alla routine, sai, avere un po' di quei brividi che si provano quando si esce... + + + No, adesso no. Vedi, è per via della caccia. Devo regolare i conti con questa chimera. Non possiamo permettere che quel mutante assetato di sangue vaghi per la Zona e uccida stalker a destra e a manca. + + + Adesso voglio solo mettere le mani intorno alla gola di Magpie. Poi sarò perfettamente calmo e pronto per discutere di lavoro con te. + + + Più tardi. Adesso abbiamo già abbastanza cose per le mani. Dobbiamo ammazzare una chimera e trovare Magpie. Non abbiamo tempo per altri lavori. + + + Ho trovato Magpie. È alla stazione Yanov, e si fa chiamare Flint. + + + Quel figlio di cagna è ancora vivo? Beh, non lo rimarrà a lungo. Prendi questo, per ringraziarti della dritta. Non vedo l'ora di incontrare quella testa di cazzo. Flint, hai detto... + + + Sì. Grazie. + + + Amico, hai visto questo Magpie? Lo conosci? No? Beh, se dovessi incrociare quel sacco di immondizia, sentiti pure libero di piantargli un proiettile in fronte. Oppure dimmi dove posso trovarlo e ci penserò io. + + + Beh, salve. + + + Aspetta! Abbiamo individuato la chimera, quindi non possiamo perdere altro tempo! Crab è ancora impossibilitato a combattere, Danila non è ancora tornato e inseguire quella bestia solo in due è pura follia. Ci serve un terzo uomo. Tu sei in gamba, hai trovato Magpie. Che ne dici di cacciare quella fetida chimera insieme? + + + Aspetta! Abbiamo individuato la chimera, quindi non possiamo perdere altro tempo! Crab è ancora impossibilitato a combattere, e Danila... beh... inseguire quella bestia solo in due è pura follia. Ci serve un terzo uomo. Tu sei in gamba, che ne dici di cacciare quella fetida chimera insieme? + + + Con piacere. + + + Come diceva Trapper, "Quando cacci, il cacciare è solo metà del lavoro". Comunque, guarda, dopo una notte di caccia, la chimera torna alla sua tana intorno alle tre del mattino, sfinita. È in quel momento che dobbiamo colpire... Quando sei pronto, vieni qui alle tre del mattino e faremo un tentativo. Ci troverai al bar. + + + Ci penserò. + + + Beh, se cambi idea passa al bar verso le tre del mattino. È a quell'ora che la chimera torna nella sua tana per dormire. + + + Salve. Come butta? Mi sembri riposato. + + + Ah, bene. Com'è piccolo il mondo, eh. + + + Allora? È ora di andare ad ammazzare la chimera... + + + Prima della caccia hai i crampi allo stomaco per l'emozione? + + + Trapper mi ha chiesto di aiutarti a cacciare la chimera. + + + Vedi, il suo sesto senso funziona ancora. Abbiamo finalmente individuato la chimera. Purtroppo Crab è ancora in convalescenza, e Danila non è ancora tornato... Quindi siamo solo noi tre. Ma se sei stato scelto da Trapper, allora devi essere per forza in gamba. Ascolta, dopo una notte di caccia, verso le tre del mattino la chimera torna alla sua tana, sfinita. È in quel momento che dobbiamo colpire... Quando sei pronto, vieni qui alle tre del mattino e faremo un tentativo. Ci troverai al bar. + + + Mi prendi per uno sciocco? + + + È quello che sei. E gli sciocchi vanno educati. + + + Non importa. Il mondo è piccolo e la Zona lo è ancora di più. Ci incroceremo di nuovo. + + + Vai... vai via da qui. Niente risse sulla Skadovsk. + + + Sì, certo. + + + Lo ammetto, ho fatto un errore. Ma tu hai infranto le regole. + + + Questa è la Zona per te. E va bene, ora piantala con le chiacchiere. + + + Se si è lasciato sfuggire il manufatto deve essere un vero idiota. + + + OK, adesso non metterti a frignare. Una lezione imparata non la si dimentica più. E perché ti rimanga in mente, ti offro una birra... ti tirerà su di morale. + + + Prendo quello che mi viene dato. + + + No, grazie, l'alcol me lo posso ancora permettere. + + + Ti credi il migliore, eh?!? Ora chiudi il becco e stai al tuo posto! Dammi il manufatto, nullità! + + + Stronzo. Tieniti pure il manufatto... spero che ti ci strozzi. + + + Fottiti. + + + Fratello! Ascolta, c'è un manufatto in grado di guarire le persone... ne ho un disperato bisogno. Un mio amico sta per tirare le cuoia per via di una malattia che le nostre medicine non scalfiscono nemmeno... Ho cercato di recuperare il manufatto ma sono finito in un'anomalia gassosa. Non è che per caso tu l'hai trovato? + + + Se è così importante, eccolo qui. + + + Ehi, grazie, amico! Non lo dimenticherò. + + + Fai attenzione. + + + Ne ho trovato uno, ma serve a me. + + + Oh, andiamo! Il mio amico... è davvero in punto di morte! + + + Nella Zona ciascuno deve badare a se stesso. Stammi bene. + + + No, non l'ho visto. Stammi bene. + + + Quel manufatto non ti servirà comunque a niente. Credimi sulla parola. + + + Se ti serve tanto... eccolo, prendilo. + + + Ehi, grazie, amico! Non lo dimenticherò. + + + Fai attenzione. + + + Vedremo. + + + Non ho niente da discutere con te. + + + Perché vivi in questo immondezzaio? + + + È un'arca! Ricordatelo... Lo farai, se vuoi vivere! Quando parte un'Ondata, resta qui vicino e avrai una possibilità di sopravvivere. Nessun mutante riuscirà mai a entrare qui dentro. + + + Hai parlato di un'Ondata... + + + Sì, l'ondata di mutanti che schiaccerà e scaccerà tutti quanti dalla Zona! E i pochi bastardi che sopravvivranno verranno spazzati via da un'enorme emissione! Decimerà ogni essere vivente nella Zona... tranne quelli che saranno preparati. + + + Dove hai preso questo cane? + + + Questa è Lassie, un'adorabile stronzetta... Se non fosse stato per lei, mi avrebbero già divorato nel sonno da un pezzo... Dannati mutanti, li odio! Non appena chiudi gli occhi cercano subito di ammazzarti con i loro maledetti artigli, le fauci e i tentacoli... + + + Mi serve un manufatto Bussola. Sai dove potrei trovarlo? + + + Questa merda non servirà a niente, quando i mutanti strisceranno allo scoperto... Ecco: prendi, e sparisci dalla mia vista. + + + Grazie. + + + Sai qualcosa degli elicotteri che sono precipitati? + + + So che ce n'è uno sull'altopiano e l'area intorno a esso brulica di snork. Vado a sparargli piuttosto spesso... Che hai da guardare così? Non è mica possibile sterminare tutta la tana in un giorno solo! + + + Come faccio ad arrivare all'altopiano? + + + Anche tu hai voglia di ammazzare un po' di snork, eh? Tranquillo... ti ci porto io. + + + Muoviamoci. + + + Un'altra volta. + + + Uno stalker. + + + Capisco. E cosa vuoi? + + + Non sono affari tuoi. + + + Ti ci porterò io. Per il momento aspetta qui. C'è un'emissione... hai capito? Un'emissione!!! + + + Sono stato alla tana. + + + Ah, sì? Non c'è modo di calmarli... I mutanti diventeranno sempre più numerosi. E un bel giorno attaccheranno! La loro furia spazzerà via dalla Zona chiunque non sia pronto... + + + Ascolta, non è che per caso hai una Bussola? + + + Credi che basterebbe a proteggerti da un'emissione? Eh eh, prendila e sparisci! + + + Grazie. + + + Chi sei? + + + Uno stalker. Ci siamo già incontrati. + + + Non ricordo... Comunque, cosa ti serve? + + + Uno stalker. Uno stalker qualunque. + + + Capisco. Cerchi rifugio nell'Arca? Fai come se fossi a casa tua. + + + Non sono affari tuoi. + + + Ah, sei tu. Cosa vuoi? + + + E se ti dicessi che mi avanza una Bussola? + + + Parlami delle anomalie. + + + Quando ti avvicini a un'anomalia, non dimenticare mai che sarà molto calda o che l'aria sarà piena di gas tossici oppure di radiazioni. Puoi incappare anche nelle psico-distorsioni, ma per il momento non parliamone. Dipende tutto dalla natura dell'anomalia, che può essere di calore, gassosa o elettrica... o anche gravitazionale, ma spero che tu non debba mai avere a che fare con una di quelle. Esistono anche anomalie semoventi, ma quello è un altro paio di maniche. + + + Parlami delle anomalie di calore. + + + Se vedi una specie di baluginio, come l'aria su una strada asfaltata d'estate, allora avrai trovato un'anomalia di calore. Quando qualcosa vi entra, in quel punto esplode una fiamma estremamente calda. Inizialmente si pensavano fossero scariche di gas naturali, ma da allora questa teoria è finita nel dimenticatoio. + + + Parlami delle anomalie gassose. + + + Questa anomalia prende il suo nome dai suoi bizzarri e infiniti procedimenti chimici. Essi producono un acido che ti divora la pelle in pochi secondi, oltre a gas tossici che ti distruggono i polmoni con altrettanta velocità. Fortunatamente quando si è all'aperto è facile individuare le anomalie gassose... quando invece ti trovi in una galleria buia, ecco, lì è più problematico. + + + Parlami delle anomalie elettriche. + + + Un tipo di anomalia molto interessante che accumula una notevole quantità di elettricità statica. Gli stalker di solito sfruttano il fatto che un'anomalia elettrica può essere scaricata con qualsiasi oggetto metallico. Ci buttano dentro un bullone e l'attraversano prima che si ricarichi. Io preferisco girarci intorno... la fase di ricarica è troppo veloce. + + + Parlami delle anomalie gravitazionali. + + + Di solito sono stazionarie. Quando guardi un punto con attenzione e ti accorgi che gli oggetti dietro di esso appaiono distorti, allora ne hai trovata una. E ti conviene tenerti alla larga. Tutte le tre varietà conosciute reagiscono all'istante, non appena qualcosa le tocca. Trampolino scaglia ogni cosa che si trova sotto di sé, e spesso molto lontano. Gorgo fa l'esatto contrario: risucchia un oggetto e lo schiaccia con la sua terribile pressione per poi spargerne in giro i brandelli. Mulinello solleva la vittima in aria, la fa vorticare e la riduce in pezzi... Sono tutte morti piuttosto cruente. + + + Parlami delle anomalie semoventi. + + + Personalmente mi sono imbattuto solo in una Cometa e in una Tesla. La prima è una palla di fuoco di poco meno di un metro di diametro. Ma ti assicuro che il calore lo si percepisce da molto più lontano. La seconda è, per così dire, una sfera di fulmini. È senza dubbio una sfera e sicuramente è di natura elettrica. Entrambe le anomalie sono in continuo movimento, ma di solito seguono percorsi predefiniti. Uno stalker attento dovrebbe riuscire ad aggirarle facilmente... ma non perdere la concentrazione. + + + OK, lascia perdere. + + + Parlami di te. + + + Mi chiamo Pilot per una ragione. Io percorro solo strade sicure. Non ho le palle per raccogliere manufatti o combattere contro i banditi, quindi... Tutti usano le proprie abilità o fanno in modo che gli altri ne traggano giovamento. Ogni abilità ha il suo prezzo, questo è ovvio. + + + Parlami delle emissioni. + + + Ho alcune mappe dell'area tra Zaton e Jupiter. Vuoi dare un'occhiata? + + + Vediamo... Bene, sono molto dettagliate. Nel nostro lavoro i dettagli possono fare la differenza tra la vita e la morte. E va bene! Queste mappe indicano la presenza di una strada tra la Skadovsk e Yanov. Copierò i dati sul mio PDA, se non ti dispiace. Ora posso offrirti uno sconto sostanzioso. + + + Ti serve per caso una guida che ti faccia attraversare le anomalie e ti protegga dalle emissioni? Pilot è qui per servirti. + + + Ti serve l'aiuto di una guida? + + + È bello vederti. Cosa può fare per te il caro vecchio Pilot? + + + Ti rimetti in viaggio? + + + Buona giornata. Non riesci proprio a stare nello stesso posto troppo a lungo, eh? Considerami al tuo servizio. + + + Salve. Se ti serve una guida, io sono la persona giusta per te. Non appena sarà terminata l'emissione. Intanto possiamo parlare delle anomalie per ammazzare il tempo... + + + Al momento credo di non poterti essere molto utile come guida... L'emissione è al suo apice. + + + Quanto costa arrivare alla stazione Yanov? + + + Purtroppo è molto lontana da qui. Il prezzo è 3.000. + + + Va bene, andiamo. + + + Non ho tutti quei contanti. + + + Non sono pronto per partire. + + + Con le tue mappe solo 1.000. + + + Va bene, andiamo. + + + Non ho tutti quei contanti. + + + Non sono pronto per partire. + + + È molto lontana da qui, ti costerà 3.000. Sarò pronto per partire non appena terminerà l'emissione. + + + Con le tue mappe solo 1.000. Dobbiamo solo aspettare che l'emissione si calmi. + + + Puoi portarmi a Pripyat? + + + No. Tutti hanno una specialità. Vedi Garry, quello laggiù? Credo che lui sarà in grado di aiutarti. + + + Personalmente no. Ma per 6.000 posso portarti alla stazione Yanov e da lì prendere accordi con Garry, che ti porterà fino a Pripyat. Che ne dici? + + + OK, andiamo. + + + Non ho tutti quei contanti. + + + Non sono pronto per partire. + + + Personalmente no. Ma per 4.000 posso portarti alla stazione Yanov e da lì prendere accordi con Garry, che ti porterà fino a Pripyat. Che ne dici? + + + OK, andiamo. + + + Non ho tutti quei contanti. + + + Non sono pronto per partire. + + + No. Tutti hanno una propria specialità. Vedi Garry, quello laggiù? Credo che lui sarà in grado di aiutarti. + + + Personalmente no. Ma per 6.000 posso portarti alla stazione Yanov e da lì prendere accordi con Garry, che ti porterà fino a Pripyat. Che ne dici? + + + Personalmente no. Ma per 4.000 posso portarti alla stazione Yanov e da lì prendere accordi con Garry, che ti porterà fino a Pripyat. Che ne dici? + + + Puoi portarmi a Pripyat? + + + Pripyat? No. Ho già sufficienti richieste per il percorso che batto di solito senza doverne cercare un altro. Ma un mio buon amico lavorava allo stabilimento Jupiter. Mi ha detto che ci sono delle gallerie sotto lo stabilimento che portano fino a Pripyat. Non mi ha saputo fornire altri dettagli, ma ha detto che avrebbe iniziato le ricerche dalla sezione amministrativa dello stabilimento. + + + No. Se vuoi arrivarci devi trovare le gallerie sotto lo stabilimento Jupiter. + + + Quanto costa arrivare alla Skadovsk? + + + Visto che dovremo fare una deviazione, il prezzo è di 3.000. + + + Va bene, andiamo. + + + Al momento sono un po' a corto di denaro. + + + Non sono pronto per partire. + + + Con il nuovo percorso il prezzo è solo 1.000. + + + Va bene, andiamo. + + + Al momento sono un po' a corto di denaro. + + + Non sono pronto per partire. + + + Visto che dovremo fare una deviazione, ti costerà 3.000. Sarò pronto per partire non appena terminerà l'emissione. + + + Con il nuovo percorso ti costerà solo 1.000. Però dobbiamo aspettare che l'emissione si calmi. + + + Dove puoi portarmi? + + + Alla stazione Yanov, non lontano dallo stabilimento Jupiter. E poi da lì alla Skadovsk. Preferisco conoscere bene un percorso che sostenere di conoscerne molti. + + + Ho mandato a monte la transazione di armi dei banditi. + + + Grazie per l'aiuto. Ripenso agli anni Novanta, ai criminali con i lanciagranate e rabbrividisco... Ecco, prendi questo. I contanti fanno sempre comodo. + + + Sto cercando Grouse. Dovevamo incontrarci qui. + + + Grouse ha lasciato un messaggio per te. Ha detto che si sarebbe diretto alle gru del porto. E che aveva scoperto qualcosa di nuovo sugli stalker scomparsi. + + + Grouse è morto. L'ha ucciso Tremor, proprio come ha fatto con gli altri stalker... Ed è morto anche Tremor. + + + Tremor? Dannazione. Avevamo quel verme proprio sotto il naso. Poteva essere chiunque di noi... Cioè, se Grouse, tra tutti... Grazie, amico. Hai salvato il nostro accampamento. Ecco. + + + Tremor?!? Mi spiace, amico, ma non me la bevo. Se avessi qualche prova, allora forse... Povero Grouse. + + + Ecco il PDA di Tremor. Contiene le prove del suo coinvolgimento. + + + Tremor? Dannazione. Avevamo quel verme proprio sotto il naso. Poteva essere chiunque di noi... Cioè, se Grouse, tra tutti... Grazie, amico. Hai salvato il nostro accampamento. Ecco. + + + Ti aiuterò a occuparti dei banditi. + + + Perfetto. Vai alla stazione dei ranger, è lì che si trovano i nostri ragazzi. Ti forniranno tutti i dettagli. + + + Cosa sai di Nimble? È possibile che trafficasse in armi rubate? + + + Non lo conosco bene. Dubito che sia coinvolto in traffici del genere. Se hai per le mani roba che scotta, non prendere mai ordinazioni da loro in anticipo... + + + Sapevo che prima o poi mi sarei esposto. Era solo una questione di tempo... + + + Tremor?!? Ti spiacerebbe spiegarmi cosa sta succedendo? + + + Non sto nascondendo più nulla. Tanto è inutile. Ormai sai che sono stato io a uccidere Grouse... E lo stesso vale per Danila e gli altri stalker scomparsi. + + + OK, ho capito. Basta parlare. + + + Non hai capito niente, nessuno mi capirà mai... + + + Perché l'hai fatto? + + + Dipendenza all'emoglobina... non la auguro a nessuno... è impossibile liberarsene. A volte mi sento in grado di tirare avanti un mese intero senza bere una goccia di sangue, poi però... Mi sento esplodere dentro e ho questo disperato bisogno di sangue... + + + Come sei riuscito a tenere la cosa segreta? + + + Quando lavoravo alla clinica era semplice da tenere nascosta. C'era sempre del sangue donato in abbondanza. Ma la Zona è un'altra cosa... credevo che questo ambiente così inospitale avrebbe messo alle corde la mia patologia, ma mi sbagliavo. Qui ho avuto la crisi peggiore della mia vita, e non riuscivo a pensare ad altro. Ho deciso di camuffare gli omicidi da attacchi di succhiasangue. Generalmente sceglievo bersagli che erano già feriti. + + + E che mi dici di Danila e Grouse? + + + Danila è venuto a chiedermi aiuto dopo la missione contro i succhiasangue. Era ferito. Quando io e Grouse abbiamo deciso di tornare a caccia di succhiasangue mi sono reso conto che non sarei riuscito a durare ancora a lungo. Ho cercato di proteggere comunque il mio segreto, ma la mia determinazione andava calando... Poi è arrivato Grouse. Ha capito la situazione e ha cercato di uccidermi. E ora eccoci qui. Mi dispiace per tutte queste persone, ma il mio dispiacere non le riporterà indietro. + + + OK, ho capito. Basta parlare. + + + Non hai capito niente, nessuno mi capirà mai... + + + Ti ascolto. + + + Ti serve aiuto? + + + Salve. + + + Mi serve assistenza medica. + + + Diamo un'occhiata... + + + Beh, direi che è tutto. Puoi andare. + + + Salve! Anche tu in cerca di manufatti? + + + Ehi! Andiamo a caccia di manufatti? Beh, ce ne dovrebbero essere per tutti. + + + Ehi, salve! Anche tu cerchi di accaparrarti dei manufatti, eh? + + + Salve. Porti quel manufatto a Beard? + + + Forse sì, forse no. A te che importa? + + + Mi serve. + + + Anche a me... Ma te lo darò in cambio di un'arma nuova, di qualità. + + + Ho un'arma niente male. Facciamo lo scambio... + + + Bene. + + + No, non ci sto. + + + Allora togliti subito di torno. + + + OK. + + + Beh, a dire il vero niente. + + + Che cosa sai di Nimble? + + + Oh, non molto... Non lavoriamo insieme. Mentre lui passa al pettine la Zona in cerca di una super-arma, io riesco a venderne un centinaio di modelli semplici. È anche piuttosto presuntuoso, e si rifiuta di fare affari con i criminali del posto. Quindi di fatto è un pessimo trafficante, cosa che naturalmente gioca a mio favore. + + + Beard mi ha detto che avevate un accordo diverso. + + + Diverso un accidenti! Quel maiale barbuto vuole fare il passo più lungo della gamba! Dovrò ricordargli chi è che comanda da queste parti... Ascolta, a Zaton c'è un tipo piuttosto importante, si fa chiamare Sultan. Vallo a trovare... ti dirà lui cosa fare. + + + Andrò a parlare con Sultan. + + + Niente sultani. Voglio la mia parte adesso! + + + Uhm... d'accordo. Ecco i contanti... Ma ricorda, Beard ti sta foderando gli occhi di prosciutto. + + + Mi servono delle informazioni. + + + Che cosa vuoi sapere? + + + Mi serve del gas velenoso e mi è stato detto che tu sei l'uomo giusto a cui chiedere. + + + È così. Te lo dirò per 2.000. + + + Tieni. + + + Ascolta. Una volta c'era un'autocolonna militare che portava il gas fino a qui, ma che non ce l'ha fatta. Nessuno sa cosa sia successo, ma le taniche di gas dovrebbero essere ancora al loro posto. Tutto chiaro? Sì, forse troverai anche dei documenti. In tal caso, riportameli e potresti rientrare del tuo investimento. + + + Troppo caro per le mie tasche. + + + Come vuoi. + + + Dove posso trovare uno stalker chiamato Magpie? + + + Posso darti un indizio... per 1.000. + + + Tieni. + + + Qui non lo troverai di sicuro, ma un uccellino mi ha detto che potrebbe essere dalle parti di Jupiter, magari nei pressi della stazione Yanov. Ricorda che chi combina guai in un posto cambia nome quando si sposta in un altro... Probabilmente ha mutato anche il suo aspetto, pensando che la gente l'avrebbe cercato in mezzo agli stalker. + + + Sto cercando Snag: sai dove posso trovarlo? + + + Te lo dirò per 1.000. + + + Tieni. + + + Snag è uno sciocco avido e si è immischiato con gente poco raccomandabile. Ha tagliato tutti i ponti con il suo passato, quindi ti conviene cercarlo dalle parti di Jupiter. Non ha altro posto dove andare, e tu non sei l'unico a cercarlo. + + + Cosa sai degli elicotteri che si sono schiantati? + + + Mmm... da queste parti sappiamo tutti che sono precipitati. Uno è caduto sull'altopiano meridionale, il secondo è atterrato nella palude e il terzo è finito dritto sui tralicci della sotto-stazione. Quale posto ti interessa? + + + L'altopiano meridionale. + + + La sotto-stazione. + + + La palude. + + + Per ora è tutto. + + + Pagami subito, mi devi 200. + + + Tieni. + + + Dunque, questo elicottero è caduto accanto a una tana di snork. Per quanto ne so, i militari sono riusciti a mettersi in salvo... non tutti ma una buona parte. Hanno spazzato via i mutanti e sono scesi. A proposito, se hai intenzione di salire da quelle parti, posso proporti una bella doppietta e un po' di munizioni per sistemare quelle bestiacce. L'unico problema è che nessuno tranne Noah, quel pazzo bastardo, sa come salire sull'altopiano. + + + Troppo caro per le mie tasche. + + + Come vuoi. + + + Te lo dirò per 200. + + + Tieni. + + + Te lo dirò per 200. + + + Tieni. + + + Adesso no. + + + Hai un lavoro per me? + + + Innanzitutto, c'è un lavoretto per gli scienziati. Poi, dobbiamo procurarci delle informazioni dall'accampamento dei militari e, infine, il mercante ha bisogno di protezione. Come vedi le possibilità sono numerose, scegli quella che più preferisci. + + + Raccontami del tuo lavoro con gli scienziati. + + + Devi trovare tre rilevatori Veles e portarli al bunker degli scienziati, vicino a Jupiter. Una volta lì parla con Novikov, che li riparerà... Quando i rilevatori cominceranno a fruttare, divideremo equamente. Tutto chiaro? Allora vai. È un gioco da ragazzi. + + + Affare fatto. + + + Magari la prossima volta. + + + Parlami dell'accampamento dei mercenari. + + + Dei mercenari sono arrivati all'impianto dei rifiuti e non vedo l'ora di sapere cosa bolle in pentola... Infiltrati nel loro accampamento e recupera quante più informazioni possibile sui loro piani. PDA, documenti, portami tutto quello che riesci a trovare. Hai capito? Ora vai. Se farai piano sarà come rubare le caramelle a un bambino. + + + D'accordo. + + + Non adesso. + + + Parlami del mercante da proteggere. + + + Al mercante servono delle guardie che lo proteggano durante uno scambio d'affari. Praticamente non dovrai fare nulla, basterà che tu te ne stia lì e dia alla faccenda un'aria di legittimità... Intesi? Il mercante ti aspetta alla stazione dei ranger. Ti fornirà lui tutti i dettagli. + + + OK. + + + Aspetta. + + + Un'altra volta. + + + C'è un piccolo lavoro da svolgere per gli scienziati e inoltre mi serve qualcuno che mi procuri le informazioni dall'accampamento dei mercenari. A te la scelta... + + + C'è un piccolo lavoro da svolgere per gli scienziati e al mercante serve una guardia. Andiamo, a te la scelta. + + + Mi occorre qualcuno che recuperi delle informazioni dall'accampamento dei mercenari e al mercante serve una guardia. Andiamo, a te la scelta. + + + Un lavoretto per gli scienziati. È un vero gioco da ragazzi... prendi questo, porta quello... + + + Al mercante serve una guardia per una transazione di lavoro. Una vera passeggiata. + + + Basta lavori. + + + Credo che la cosa potrebbe interessarti. + + + Che cosa hai? + + + Il PDA di Noah. + + + Quel pazzo della chiatta? Ti darò 1.000. + + + Affare fatto. + + + No, grazie. Per il momento lo terrò io. + + + Attento che non ti faccia un buco in tasca. + + + Il PDA di un mercenario di nome Hook. L'ho trovato all'impianto dei rifiuti. + + + Ti darò 1.000. + + + Affare fatto. + + + Molto interessante... Ottimo lavoro, stalker. + + + Il PDA di un mercenario di nome Ridge. L'ho trovato all'impianto dei rifiuti. + + + Ti darò 1.000. + + + Affare fatto. + + + Un PDA contenente le informazioni sui nascondigli dei Monolith. + + + Ti darò 5.000. + + + Affare fatto. + + + Il PDA di un uomo collegato al cliente dei mercenari. + + + Ti darò 4.000. + + + Affare fatto. + + + Il PDA di uno dei fondatori della Duty, il Generale Tachenko. + + + Per quello ti pagherò bene: 2.500. + + + Affare fatto. + + + Il PDA di un mercenario. + + + Ti darò 1.000. + + + Affare fatto. + + + Il PDA di Morgan. + + + Informazioni sul mercante della Duty che vende armi a destra e a manca. Serviranno pure a qualcosa. Ti pagherò 4.000. + + + Affare fatto. + + + Un biglietto proveniente dal nascondiglio del gruppo di Strelok. Indirizzato a Ghost. + + + Ti darò 500. + + + Affare fatto. + + + Un biglietto proveniente dal nascondiglio del gruppo di Strelok. Indirizzato a Strelok. + + + Ti darò 500. + + + Affare fatto. + + + Un biglietto proveniente dal nascondiglio del gruppo di Strelok. Indirizzato a Fang. + + + Ti darò 500. + + + Affare fatto. + + + Documenti provenienti dallo stabilimento Jupiter, una cartella contenente l'ordine di evacuazione generale. + + + Ti darò 750. + + + Affare fatto. + + + Documenti provenienti dallo stabilimento Jupiter, un appunto da taccuino. + + + Ti darò 750. + + + Affare fatto. + + + Documenti provenienti dallo stabilimento Jupiter, un programma di consegne. + + + Ti darò 750. + + + Affare fatto. + + + Documenti provenienti dallo stabilimento Jupiter, una lettera con l'ordine di trasportare l'oggetto 62 solo attraverso il sottopassaggio. + + + Ti darò 750. + + + Affare fatto. + + + No, se c'è di mezzo Sultan io preferisco restarne fuori. + + + Vediamo... Sì, questa è roba buona. Posso comprartela? + + + Certo, tanto io non so che farmene. + + + Un taccuino proveniente dall'accampamento dei mercenari all'impianto dei rifiuti. + + + Ti offro 2.000. + + + Affare fatto. + + + Eh eh... Portalo da Beard o agli scienziati. A me non piace la mercanzia di dubbia provenienza... Non voglio stare male per colpa di intossicazione da radiazioni. + + + E lì dovrebbe rimanere. Non mi piace correre rischi superflui. Chi lo sa, magari a mezzanotte quell'affare formerà intorno a sé un campo di anomalie... Perché non lo porti agli scienziati? Che se lo studino loro. + + + E io ho una testata nucleare in cucina! Però forse gli scienziati si faranno una risata... loro vanno matti per questa roba. + + + Il PDA di Snag. + + + Vediamo un po'. Mmm... niente di speciale. Probabilmente hai già ripulito quel nascondiglio, quindi il mio prezzo è 200. + + + D'accordo. + + + Il PDA di uno degli uomini di Sultan. + + + Interessante... Potrebbe tornarmi utile. Ti offro 1.000. + + + D'accordo. + + + Il modulo di memoria di un veicolo aereo senza equipaggio. + + + Un ritrovamento molto interessante... Ma non ti renderà ricco. Come faccio a sapere che sono io il primo a leggere le informazioni che contiene? Ti pagherò 500. + + + Affare fatto. + + + Adesso no. + + + Riguardo quei rilevatori... + + + Sì? + + + Dove posso trovarli? + + + Non lo so, arrangiati! + + + Ho i rilevatori. + + + Allora cosa ci fai ancora qui? Portali a Novikov, al bunker degli scienziati vicino a Jupiter. + + + Ho portato i rilevatori a Novikov. + + + Ottimo. Ora aspettiamo che ci mettano sopra le mani. Novikov ha promesso che me li avrebbe fatti recapitare da una persona di fiducia. + + + Abbiamo dei problemi. La nostra piccola attività è a rischio. Novikov ha fatto un ottimo lavoro su quei rilevatori: ha espanso il raggio di funzionamento, ha migliorato la sensibilità e cose varie... Quei rilevatori ti danno un vantaggio straordinario su tutti gli altri cacciatori di manufatti. Ho fatto un accordo con Beard perché gli stalker che assume usino questi nuovi rilevatori... + + + E? + + + Il nostro accordo era di dividere equamente il bottino, ma gli stalker si rifiutano di consegnare la nostra metà. Devi andare da Beard e convincerlo a rispettare la sua parte di accordo... Forza, anche tu vuoi quel che ti spetta, no? + + + Mi serve il tuo nuovo rilevatore. + + + Ah ah. E a me serve un'arma ad alta potenza. Se hai un'arma costosa e di qualità possiamo fare uno scambio. + + + Affare fatto. + + + No, grazie. + + + Mi serve il tuo nuovo rilevatore. + + + È forse una minaccia? Serve anche a me, ovvio. + + + Non mi segui, vero? Il tuo è l'ultimo. Non ho faticato troppo a sistemare gli altri proprietari... + + + Cos'hai fatto? Li hai tolti di mezzo? Allora prendilo e lasciami in pace. + + + Ehi, perché non vai a prenderlo in quel posto? + + + Magari un'altra volta. Ora quello che ti chiedo è di darmi il rilevatore senza fare storie. + + + E io ti chiedo di andare a prenderlo in quel posto senza fare storie. + + + Stalker, che ne diresti di un po' di soldi? + + + Qual è il lavoro? + + + Ho nascosto un bottino in questa vecchia Zaporozhets. Però c'è stato un terremoto e l'auto è sprofondata sottoterra. Ho controllato e sembra sia possibile raggiungerla... Solo che, ehm, ci sono dei mutanti, sai, degli snork. Che tu ci creda o no, io non ho paura neanche dei controllori, ma quei maledetti snork sono talmente disgustosi che mi mettono i brividi. Se riuscirai a mettere le mani sul contenitore con la serratura di sicurezza, ci divideremo il bottino a metà. + + + Affare fatto. + + + Grazie. + + + È questo il tuo contenitore? + + + Sì! Wow, sei un grande! + + + Un'altra volta. + + + Peccato. + + + No, adesso ho da fare. + + + OK, come ti pare. + + + Allora? Novità? + + + Cosa vuoi? Non vedi che ho da fare? + + + Ehi, quella è la mia arma! Dove l'hai presa, brutto ladro? Me l'hanno rubata proprio l'altro giorno. + + + Di cosa stai parlando? L'ho appena comprata. + + + Non so dove o come ci hai messo le mani sopra, ma è la stessa che mi hanno rubato. Quindi, se non vuoi farmi arrabbiare, restituiscimi la pistola e ce ne andremo per la nostra strada. + + + OK, ecco qui. Non voglio guai. + + + Dammela. + + + Quest'arma è mia. + + + Ah, sì?!? Ti avverto, io ho conoscenze importanti! Tutti sanno chi sono! Credi che dureresti molto nella Zona con una brutta reputazione, stalker? Eh, cosa rispondi? Non aspettarti che qualcuno ti aiuti da queste parti, perché nessuno vorrà saperne di te! + + + Fottiti. + + + Sei sicuro che sia la tua arma? + + + Certo che sono sicuro. Non è molto comune nella Zona, trovi? E quella è senza dubbio la mia. + + + Hai commesso un errore. Ora fatti indietro e non ci sarà bisogno di agitarsi. + + + Cosa? Io avrei commesso un errore?!? Prova a pensare prima di aprire bocca, stronzo! Se combini qualche casino si metteranno tutti dalla mia parte. Restituiscimi quell'arma e ce ne andremo per la nostra strada. Sarò anche così gentile da non raccontare a nessuno di questa faccenda. + + + Cosa? Hai mai pensato che con quest'arma potrei aprirti un buco in testa seduta stante? + + + OK, calmati, amico. Ci eravamo scaldati, ma adesso sono tranquillo. Rilassati anche tu. Devo aver commesso uno sbaglio. + + + Riguardo quel contenitore... + + + L'hai trovato? + + + No, ci sto ancora lavorando. + + + Ho deciso di interrompere la ricerca. + + + Peccato. + + + OK, vediamo un po'... + + + Certo. Solo un attimo... + + + Ho deciso di tenere il contenitore. + + + Ah, tu, piccolo insignificante... Non pensare che me ne dimenticherò! + + + Ecco il contenitore. + + + OK, dividiamoci subito il bottino, d'accordo? + + + Beviamo! + + + Vediamo cosa abbiamo qui... la cara, vecchia, letale Fora. Molto tempo fa mio zio l'ha modificata con le sue stesse mani. È quasi un cimelio di famiglia... quindi la terrò io. + + + No, dalla a me! + + + Oh, beh, d'accordo... + + + Vediamo che altro c'è. + + + No, hai già preso abbastanza. + + + Vediamo che altro c'è. + + + E va bene, prendila. Cos'altro c'è? + + + OK... vediamo. Un eccellente kit di pronto soccorso. Sufficiente per affrontare un orso o anche un controllore. Lo prendo io... + + + In realtà a me farebbe proprio comodo un kit di pronto soccorso! + + + Mmm... OK. + + + Vediamo che altro c'è. + + + No, hai già preso abbastanza. + + + Vediamo che altro c'è. + + + Tienilo pure. Cos'altro c'è? + + + OK... wow. Dubito che tu abbia mai avuto un'arma del genere. Un AKM-74/2U migliorato. Ho dato una tonnellata di kit di pronto soccorso a uno della Duty per poter mettere le mani su questo gioiellino. È stato quando la Freedom gliele aveva suonate al punto da fargli esaurire i kit di pronto soccorso. Da allora questa bellezza mi ha salvato la vita tre volte... Me la tengo io. + + + E se la prendessi io? + + + Mi spezza il cuore, ma un patto è un patto. Prendila. + + + Vediamo che altro c'è. + + + No, hai già preso abbastanza. + + + Vediamo che altro c'è. + + + OK, tienila tu. Che altro c'è? + + + Oooh... un bellissimo oggetto di grande valore. Questo manufatto vale una montagna d'oro! L'ho preso in un'anomalia, bada, e me la sono fatta addosso più di una volta. È il mio trofeo, ottenuto con il sangue e le lacrime. + + + Credo che a me serva più che a te. + + + Amico, così mi uccidi... Prendilo, sono sicuro che non dimenticherai facilmente la mia generosità. + + + Vediamo che altro c'è. + + + No, hai già preso abbastanza. + + + Vediamo che altro c'è. + + + Tienilo. Che altro c'è? + + + E infine... un ottimo elmo, fatto a mano. Un po' di tempo fa al Cordon era arrivato un nuovo stalker, un vero tuttofare. Prima di morire ha realizzato un sacco di oggetti niente male, tra cui questo elmo. Non ne troverai uno uguale da nessuna parte! Lo terrò io. + + + Ascolta, sono io che ho rischiato la vita contro un'orda di snork... Merito di tenere l'elmo. + + + Beh... OK. Goditelo. + + + Vediamo che altro c'è. + + + Hai già preso abbastanza. Devo pur tenere qualcosa anche per me! + + + Vediamo che altro c'è. + + + E va bene, tienilo. + + + Non c'è altro, amico. Il mio tesoro è tutto lì. + + + OK, allora, ci vediamo. + + + Non c'è altro. Ma non posso lasciarti andare via a mani vuote... Ecco, prendi la mia pistola! + + + Buona fortuna. + + + Tu che cosa fai? + + + Servo e proteggo. Una volta ero un detective della polizia, e qui sono una specie di sceriffo. Sono arrivato insieme a Beard, poi lui ha deciso di accamparsi. Perché addentrarsi ulteriormente se nessuno conosce la strada per Pripyat? Qui ci sono un sacco di manufatti ugualmente, e così siamo rimasti. + + + Chi potrei assumere per proteggere gli scienziati? + + + Posso consigliarti della gente in gamba. Il gruppo di Spartacus, tanto per cominciare. Persone fidate, veri professionisti, con grande esperienza alle spalle. Se sono disponibili, non troverai una protezione migliore di quella che possono fornirti loro. + + + Un po' di tempo fa avrei potuto consigliarti dei nomi, ma ora non più. Nessuno degli stalker del posto accetterà un lavoro simile. + + + Chi potrei assumere per eseguire delle misurazioni per conto degli scienziati? + + + C'è un gruppo di stalker, comandati da Gonta. Parla con lui, forse accetterà... Sono sicuro che non gli dispiacerà fare qualcosa di diverso dal massacrare mutanti. + + + Se Gonta fosse qui con il suo gruppo ti indirizzerei da lui... ma visto che non c'è... non saprei proprio chi consigliarti. + + + Hai comprato delle armi da Nimble? Sai se traffica anche in armi rubate? + + + Credi che sia così vile da fare una cosa del genere alle mie spalle? No. È impossibile. Ho la netta sensazione che Nimble non sia un trafficante. + + + Sto cercando Snag: sai dove posso trovarlo? + + + Snag... certo, lo conosco. Un vero incapace. Alcuni dei miei ragazzi l'hanno visto alle gru del porto l'altro giorno. Probabilmente ora bazzica da quelle parti. Prova a cercarlo lì. + + + Salve, stalker. Che ne diresti di guadagnare due soldi e intanto aiutare anche il nostro accampamento? + + + Salve, stalker. Ancora qui? Se vai avanti di questo passo i succhiasangue ci spazzeranno via tutti. + + + Parleremo più tardi. Ho delle cose da controllare. + + + Che tipo di lavoro puoi offrirmi? + + + Ecco come stanno le cose. Di recente sono scomparsi parecchi stalker. Nessuno ha avuto loro notizie, ma proprio l'altro giorno è stato ritrovato un corpo. Non c'erano tracce di violenza, ma era completamente prosciugato. Tremor ha ispezionato il corpo, lui ti saprà dare più dettagli... Comunque, devono essere stati per forza i succhiasangue! Ho parlato con Danila, il cacciatore, e lui è partito in cerca della loro tana. Da allora non ho più avuto sue notizie. + + + E io cosa devo fare? + + + Devi trovare la tana e, possibilmente, anche Danila. Non è un bel lavoro, ma te lo pagherò bene. Ci stai? + + + D'accordo. + + + OK, OK. Ho individuato due posti da controllare. Ho caricato le coordinate del primo sul tuo PDA. Ora andrò a svolgere alcune commissioni poi controllerò l'altro. Ti farò sapere se scopro qualcosa. + + + Affare fatto. + + + Credo che lascerò perdere. + + + Fammi sapere se cambi idea. + + + Non mi interessa. + + + Come al solito... Non appena si parla di una tana di succhiasangue, tutti se la danno a gambe. E non abbiamo ancora ricevuto notizie di Danila il cacciatore. Ci daresti una mano a cercarlo? + + + Grouse mi ha detto che hai ispezionato il cadavere di uno degli stalker scomparsi. Credi sia stato un succhiasangue a ucciderlo? + + + Sì, esatto... proprio come ho fatto con tutti gli altri cadaveri... Non esistono altre creature capaci di prosciugare il sangue di un uomo fino all'ultima goccia. Tutte le prove indicano l'attacco di un succhiasangue... Quali altre conclusioni potrei trarre? + + + Parlami di te. + + + Sono un medico. Un chirurgo del cervello. Cos'altro vuoi sapere? Posso asportare un ipotalamo con precisione millimetrica, ma finora non ho ricevuto richieste del genere nella Zona. Qui sono solo un medico qualunque, uno dei tanti, che sa il fatto suo. + + + Ti ascolto. + + + Sai come decifrare una scatola nera? + + + Beh, non è esattamente la mia specialità. Tutte quelle tabelle e algoritmi... Non fa per me. Portami qualcosa che si basi sulla semplice fisica e proverò a darci un'occhiata... Una sistematina qui, un'aggiustatina lì e tutto funziona alla grande. + + + Pensi che Nimble traffichi merce rubata? + + + Ehi, ehi... Nimble con la merce rubata? Sono due cose che non vanno d'accordo. Mentre costruivo la mia officina è stato proprio Nimble ad aiutarmi. E non mi ha fatto pagare un solo centesimo... Non importa cosa dice la gente, io so per certo che Nimble è un brav'uomo. + + + Hai del lavoro per me? + + + Oh, certo. Mi servono degli strumenti ma non ho tempo per cercarli. La ferramenta ti porta via un sacco di tempo. Se mi porti dei gingilli utili ti farò vedere come si fanno i veri potenziamenti. E guadagnerai anche qualche soldo. + + + OK, terrò gli occhi aperti. + + + No, magari più tardi + + + Oh, certo. Mi servono degli strumenti, ricordi? Un aiuto per me e un po' di soldi per te. + + + Puoi sbloccare un modulo di memoria? + + + No, amico, proprio non posso aiutarti. Tutta questa roba elettronica moderna, i computer... non fanno per me. Ti conviene cercare qualcuno di più giovane... quei ragazzi sono cresciuti a pane ed elettronica, credimi. + + + Chi potrebbe aprire un contenitore d'acciaio? + + + È un'inezia. Ti costerà solo 500. + + + Tieni. + + + OK, fammi dare un'occhiata... Sposta questo, tira quello... E voilà! Ecco fatto! Non hanno ancora inventato qualcosa che io non possa aprire con un martello e un piede di porco. + + + Non ho tutti quei contanti. + + + Allora torna quando li avrai, tanto io non vado da nessuna parte! + + + Ci penserò. + + + Ho dell'alcol. Vuoi un cicchetto? + + + No, ho smesso con la bottiglia, amico. Quando ho visto l'oggetto 62 ho pensato, "Ecco, sto avendo le allucinazioni"... Vedi, l'alcol ti fa solo del male. E non è nemmeno inseribile in una dieta salutare. Se dovessi morire, chi ti fornirà le munizioni per il tuo fucile Gauss? + + + Eccoti un'altra bottiglia. + + + Ne ho anche una terza, se ne vuoi dell'altro. + + + Ti ho portato gli strumenti. + + + Bene. Quali? + + + Quelli per il lavoro di base. + + + Grandioso! Adesso mi servono gli strumenti per la calibrazione e il lavoro di precisione. + + + Quelli per il lavoro di precisione. + + + Grandioso! Adesso mi servono gli strumenti per la calibrazione e il lavoro di base. + + + Quelli per la calibrazione. + + + Grandioso! Adesso mi servono gli strumenti per il lavoro di base e quello di precisione. + + + Nessuno, per adesso. + + + Grandioso. Procurami degli strumenti per la calibrazione e sarò a posto. + + + Grandioso. Procurami degli strumenti per il lavoro di precisione e sarò a posto. + + + Grandioso. Procurami degli strumenti per il lavoro di base e sarò a posto. + + + Splendido! Così si fa! Qual è il tuo segreto, amico? Ora ho la gamma completa di attrezzi! Ammirami mentre ti trasformo un accendino in un mitra! + + + Ho portato degli schemi e la documentazione per l'oggetto 62. + + + Ce l'hai fatta! Grandioso! Sapevo che quei bastardi non avrebbero avuto il tempo di distruggere tutto. Fammi dare un'occhiata... mmm... ecco cos'hanno in mente quei figli di cagna. Bene! Mi basteranno un paio d'ore per mettere in fila tutta la questione. Lasciami il fucile Gauss, cercherò di sistemartelo. Aspetta qui, mi serve un minuto per rimettere in sesto questa bellezza! + + + Mi servono delle batterie per il mio fucile Gauss. + + + Ti farò un prezzo di favore: 2.000. + + + Ecco qui. + + + Ci penserò. + + + Al momento sono proprio al verde. + + + Hai finito con il fucile Gauss? + + + Un gioco da ragazzi. Il sistema di alimentazione è come nuovo. Se dovesse fare di nuovo le bizze, riportamelo e te lo sistemerò. + + + Ci sto ancora lavorando. Quanto mi piace darmi da fare... + + + Ho un modello di arma sconosciuto. + + + Come sarebbe a dire sconosciuto? Dammi qui, fammi dare un'occhiata... + + + Guarda pure... Hai mai visto niente del genere prima d'ora? + + + Ah, sei tu... Ce la siamo proprio spassata. Ho sognato che mi portavi qualcosa dal passato... Che bella bevuta... + + + Nel tuo sogno non c'era quest'arma, vero? + + + Ehi, amico... Forse dopotutto non era un sogno. Questo è un fucile Gauss o, per usare il nome ufficiale, oggetto 62. Al tempo lavoravo a un progetto per lo stabilimento Jupiter. Progettavo armi che, se la memoria non mi inganna, "Erano basate sul principio dell'accelerazione del proiettile attraverso un campo magnetico". Vedi questi mulinelli? Li ho realizzati io... Peccato che abbiano chiuso il progetto nel 2004. Non siamo riusciti a trovare una fonte energetica sufficientemente compatta. + + + Questo fucile ha già sparato. Cosa potrebbe essere cambiato? + + + E chi lo sa? A essere sincero, non toccherei quella batteria nemmeno con un cacciavite. Anche il sistema di alimentazione è danneggiato. Gli schemi mi farebbero molto comodo, adesso. Nell'officina in cui lavoravo avevamo tutta la documentazione del prodotto a nostra disposizione. Forse gli schemi e la documentazione di supporto per questo fucile si trovano ancora lì... Buffo, io ho ancora la tessera magnetica per accedere all'officina... + + + Mi daresti la tessera magnetica? + + + Sì, beh... credo di sì. Però vedi di non perderla. Con quei documenti potrei provare ad aggiustare la pistola. + + + Ecco la tua carta d'accesso, come nuova. + + + Grazie. Tutto questo mi ricorda i bei tempi andati. + + + Allora? Tu, ehm... portami pure tutte le tue armi rotte, le tute piene di buchi e quant'altro... Da sobrio non sono bravo neanche la metà, ma ci proverò comunque... + + + Dove sei stato? Iniziavo a preoccuparmi e ti ho cercato dappertutto. Ma dov'è quello stalker, mi chiedevo... Salute! + + + Salve. Gentile da parte tua passare da qui. Fai come se fossi a casa tua... Mi hai portato qualcosa da aggiustare o da bere? + + + Whew! Grandioso! Le mie mani non tremano, ma una vocina nella mia testa dice, "Ne voglio ancora"... versamene un altro, giovanotto! + + + Perché tanta lentezza? Forza, apri un'altra bottiglia! Beviamo alla nostra causa comune! Sì, la vodka tira fuori il genio della meccanica che è in me, credimi. + + + Vorrei che Joker fosse qui, faremmo un brindisi alla salute di Barge... Beh, che possa riposare in pace. Era un brav'uomo, un vero osso duro. Duro come la roccia. + + + Vorrei che Joker fosse qui, faremmo un brindisi alla salute di Barge... Beh, che possa riposare in pace. Era sempre pronto ad aiutarti, e non si rimangiava mai la parola data. + + + Ooh... Barge... Joker... Come siamo arrivati a questo... Beh, da una cosa nasce l'altra... + + + Mmm? Cosa abbiamo qui di bello? Mi occuperò domani dei mitragliatori corazzati... Non ti preoccupare, è una cosa da nulla. Ho del buon liquore che mi aspetta... + + + Quel numero sessantadue... Mi piacerebbe dare un'occhiata agli schemi dei circuiti. + + + Saggia scelta, amico mio. Devi tenere la pistola in condizioni impeccabili. E se ti avanzano un paio di bottiglie posso potenziartela alla grande. Vuoi attaccare un paracadute alla tua doppietta? Io posso farlo. + + + Ma guarda! Hanno inserito un manufatto elettrostatico nella batteria! Ah ah! Sapevo che era una roba davvero strana! Il principio è una bazzecola... ora posso sistemare anche io queste cellule. + + + Ti serve qualche lavoretto tecnico? + + + Mi sembra scritto in arabo. Mi sa che sono un po' fuori allenamento nella lettura dei documenti tecnici... + + + Sono venuto a Zaton con due miei amici, Barge e Joker... Ragazzi giovani, pieni di entusiasmo e vitalità! Gli prudevano le mani... volevano accaparrarsi una montagna di manufatti, essere i primi e i più veloci... Sapevo che quegli sguardi pieni di speranze non gli avrebbero portato alcun bene. Certo, è bello accumulare bottini, ma non se per farlo bisogno buttarsi a capofitto nelle fauci di un mutante. + + + Allora, cos'è successo? + + + Beh... Una sera eravamo fuori a bere e ci siamo messi a discutere sul da farsi: se andare o restare e, nel caso, dove andare. Eravamo tutti inamovibili sulle rispettive posizioni. Così le cose si sono scaldate e, finita la discussione, siamo andati ciascuno per la propria strada. Dissi loro che non sapevano niente della vita... e altre cose sgradevoli. Cavolo... se solo potessi rivederli, gli direi quanto mi dispiace per quelle parole... Ci rimetteremmo a bere e a ricordare i vecchi tempi... + + + Se vuoi posso portare le tue scuse a Barge, dovessi incontrarlo... + + + Sarebbe gentile da parte tua. + + + Se vuoi posso portare le tue scuse ai tuoi amici, dovessi incontrarli... + + + Sarebbe gentile da parte tua. + + + Se vuoi posso portare le tue scuse a Joker, dovessi incontrarlo... + + + Sarebbe gentile da parte tua. + + + Ho trovato questo PDA... vuoi dare un'occhiata? + + + E cosa me ne faccio di un PDA? Di chi è? + + + Barge è morto?!? Non posso crederci... Oh, dannazione! Era un tipo così in gamba... Povero Barge, riposa in pace. Spero che almeno Joker stia bene. + + + Barge è morto?!? Non posso crederci... Oh, dannazione! Era un tipo così in gamba... Povero Barge... e anche Joker... ragazzi, riposate in pace. Come siamo potuti arrivare a tanto... + + + Sono morti?!? Non posso crederci... Oh, dannazione! Barge era un tipo così in gamba... E Joker... Oh, Joker, non rideremo più alle tue battute. Ragazzi, riposate in pace. Come siamo potuti arrivare a tanto... + + + Ti va di rispondere a un paio di domande? + + + Certo. + + + Quanto ci vorrà perché la mia ordinazione sia pronta? + + + Dipende da quanto è complicata. Generalmente mi ci vuole un giorno, a volte meno. + + + Parlami di te. + + + Non ho molto da dire. Ho avuto periodi belli e periodi brutti, come succede a chiunque. Sono finito in qualche anomalia, sono stato preso in ostaggio dai banditi... Sono arrivato nella Zona che ero solo un ragazzino, un sacco di tempo fa. Poi ho lavorato per Sidorovich... per ringraziarlo di avermi salvato il culo. Mentre gli toglievo le castagne dal fuoco, ho conosciuto persone interessanti e mi sono messo in proprio non appena ho avuto i mezzi per soddisfare le ordinazioni dei miei clienti. Finora sono riuscito a evitare tutto lo schifo che la vita mi ha tirato addosso, ma ho la sensazione che la mia fortuna stia per esaurirsi. Allo stesso tempo, non ho più voglia di rischiare le chiappe per due spiccioli. + + + Ho capito, grazie. + + + Mi fa piacere esserti stato d'aiuto. + + + Mi hai venduto un'arma rubata! + + + Di cosa stai parlando? Io non traffico merci rubate. I miei affari sono tutti puliti. Se non mi credi, parla con chi vuoi alla base e ti diranno che sono un onesto mercante che non ha mai deluso nessuno. + + + Ho incontrato uno stalker che sosteneva che quest'arma era sua. + + + E come si chiama? + + + Snag. + + + Cosa ti importa? + + + Importa eccone. Qualcuno ti sta prendendo in giro, stalker. + + + Vedremo. + + + Qualcuno ti sta prendendo in giro, stalker. + + + Sono qui per ritirare la mia ordinazione. + + + Ecco la tua Aquila delle steppe. È stato più difficile del previsto. Un patito di pistole si era mostrato parecchio interessato, ma sono riuscito ad accaparrarmela appena in tempo. Guarda pure: una pistola fatta a mano, con i componenti montati con precisione millimetrica. Se ti sei mai chiesto che aspetto avrebbe la pistola da cecchino perfetta, ecco la risposta. Mi devi 2.800 in più. + + + OK, ecco qui. + + + Ecco qui. È bello fare affari con te. + + + Non ho tutti quei contanti. + + + OK, ti terrò la pistola da parte per un po'. Spero che troverai presto i soldi. + + + Non voglio comprarla. + + + Se rifiuti di ritirare l'ordinazione, non potrò più fidarmi di te. Dovrò includere il rischio nel costo e chiederti un anticipo più sostanzioso. + + + Come ti pare, ma non ritirerò l'ordinazione. + + + Va bene, come ti pare. + + + Ci penserò. + + + Certo, come vuoi. Ti terrò la pistola da parte per un po'. + + + Ecco la tua Aquila delle steppe, ultra-precisa. Mi devi 2.800 in più. + + + Ecco a te l'Alpina: una vera bellezza. Credimi, questa pistola è unica nel suo genere nella Zona. Un modello inimitabile, prodotto in modo limitato per una singola unità speciale. Non è stato facile procurarmela, ho anche dovuto coinvolgere uno dei miei soci d'oltreoceano. Caricatore ampliato, canna d'acciaio extra temperato, telaio in polimero extra resistente. Aggiungi i 2.800 mancanti e questo gioiellino sarà tuo. + + + Ecco la tua pistola Alpina con caricatore ampliato. Aggiungi i 2.800 mancanti e questo gioiellino sarà tuo. + + + Ecco la Marcia. Questa pistola apparteneva a un mercenario di nome Wolfhound. Un'arma compatta d'alto calibro con un rinculo ridotto e un otturatore alleggerito. Wolfhound era pura feccia, ma di armi se ne intendeva, bisogna concederglielo. Dicono che gli piacesse far saltare i quattro arti delle sue vittime, e infine la testa... prima che toccasse terra. Comunque, fanno 2.800. + + + Ecco la tua pistola Marcia a fuoco rapido. Mi devi 2.800 in più. + + + Ecco qui il mitragliatore Cutter. Lascia che te lo dica subito: non badare alle apparenze. È un modello nuovo di zecca, che ancora non viene prodotto in serie. È un prototipo, arrivato dritto dall'armeria. I progettisti volevano creare un'arma a distanza ravvicinata di nuova generazione: una combinazione di alto calibro, fuoco rapido e precisione. Ti costerà 8.000 in più. + + + Sì, questo è il Cutter, un mitragliatore a fuoco rapido. Ti costerà 8.000 in più. + + + Ecco un bell'esemplare: il Fuciliere. Una vera doppietta dell'esercito. In grado di fare fuoco automatico pur mantenendo un rinculo ridotto grazie a un sistema equilibrato anti-shock. Aggiungi 8.000 e sarà tuo. + + + Ecco il Fuciliere, una doppietta automatica. Aggiungi 8.000 e sarà tua. + + + Scommetto che questo è proprio quello che ti serve. L'Eliminatore, l'ultima novità in fatto di armi. In teoria il carico doveva essere spedito in Africa centrale, ma sono riuscito a ottenere un 'campione' grazie all'aiuto di alcuni amici. Una doppietta automatica con caricatore ampliato e un'eccellente velocità di fuoco. Tua per solo 8.000. + + + Certo. La doppietta automatica Eliminatore, con caricatore ampliato, per 8.000. + + + Certo. Ti presento Tempesta: mitragliatore e lanciagranate in un'unica arma. Questo prototipo è la versione modificata di un'arma convenzionale progettata per le unità speciali attive nella Zona. Il massimo dell'innovazione tecnica offerta dai nostri fratelli slavi. Aggiungi 16.000 ed è tua. + + + Certo. Ecco Tempesta: mitragliatore e lanciagranate con un caricatore ampliato, per 16.000 in più. + + + Ecco qui GP37, un fucile d'assalto di ultima generazione. Preciso, affidabile e dotato di un mirino ottico. Il suo ultimo proprietario era un osservatore delle Nazioni Unite, il cui gruppo era stato inviato nella Zona per investigare. Poi la situazione si è messa male, e... Beh, 16.000 e il fucile è tuo. + + + Ecco qui il GP37, un fucile d'assalto di ultima generazione. Il prezzo è 16.000. + + + Aspetta un attimo. Ecco un fucile modulare FT-200M, frutto dell'ingegno degli armieri belgi. Preciso, adatto a tutte le situazioni, perfetto anche per i mancini e dotato di un mirino ottico e di un lanciagranate. L'ho ottenuto da uno sfortunato osservatore delle Nazioni Unite... Ti costerà 16.000 in più. + + + Ecco il fucile modulare FT-200M. Ti costerà 16.000 in più. + + + Ecco Marea. Basata su un fucile da cecchino silenziato, è stata progettata specificamente per le unità militari che dovevano affrontare gli zombi. Marea rinuncia alla velocità di fuoco in favore di una maggiore capacità di arresto del bersaglio, permettendo al cecchino di uccidere gli zombi uno a uno senza rivelare la propria posizione. In seguito si è capito che per eliminare gli zombi alla Barriera sarebbero bastati gli stalker, quindi il fucile non è mai stato prodotto in serie. Può essere tuo per 16.000 in più. + + + Ecco Marea, un fucile da cecchino silenziato con capacità d'arresto del bersaglio migliorata. Aggiungi 16.000 in più e goditelo. + + + Questo è un SVU2-A, un fucile da cecchino compatto con elevata velocità di fuoco. L'ho comprato da Mac, la leggendaria guardia della Freedom. Mi ha giurato che in tutta la Zona non ne esistono altri uguali. È un oggetto esclusivo, almeno da queste parti. Ti costerà 16.000 in più. + + + Sì. SVU2-A, un fucile da cecchino compatto con elevata velocità di fuoco. Ti costerà 16.000 in più. + + + Certo, guarda questa Lince, fatta a mano da un esperto del luogo. Ora è morto, quindi non verranno mai più fabbricate altre copie. È come qualunque altro fucile, ma prova a usarlo e noterai subito la differenza. Combina alla perfezione precisione e potenza d'arresto. Aggiungi altri 16.000 ed è tuo. + + + Sì, Lince: un fucile da cecchino con potenza e precisione migliorate. Aggiungi altri 16.000 ed è tuo. + + + Guarda. Sono riuscito a procurarmi anche qualcosa che non era sulla lista: una CS-3a dotata di elmetto. L'elmo non è niente di speciale da solo, ma permette di installare un'unità tattica mobile, che comprende un sistema per la visione notturna d'alta qualità e un sensore a infrarossi. L'armatura CS-3a è una vera bellezza. Ti protegge alla grande dai proiettili e dalle anomalie ed è raro trovare un'armatura leggera e comoda come questa. Tutto il pacchetto ti costerà 32.000. + + + Sì, un'armatura CS-3a e un elmetto tattico. 32.000 in tutto. + + + Solo per te, una tuta SEVA. Tutto come avevi ordinato: modulo respiratorio a ciclo chiuso, termo-resistente, circuito elettrico protettivo e materiali anticorrosione per la superficie esterna. Oltre a numerosi contenitori per manufatti già integrati. Un oggetto imprescindibile per qualunque stalker. Sgancia 24.000 come avevamo concordato e sarà tutta tua. + + + Ecco qui. Una tuta SEVA. Il prezzo è 24.000, come concordato. + + + Ecco qui, un fantastico esoscheletro da combattimento. Nella Zona non esiste protezione migliore da proiettili, artigli o frammenti di granata... tutto tranne i veicoli corazzati, insomma. Ma in un certo senso somiglia anche a un veicolo corazzato, perché alleggerisce il carico che porti... fino a un certo punto. 48.000 ed è tutta tua, verruche e... cioè, volevo dire, batterie e servomotori. + + + Ecco qui, un fantastico esoscheletro da combattimento. 48.000 ed è tutto tuo. + + + Vorrei comprare qualcosa. + + + Non c'è problema. Di cosa hai bisogno? + + + Una pistola. + + + Ma certo. Te ne basteranno 3.500, però ne voglio 700 come anticipo. + + + OK, ecco qui. + + + Mi farò vivo io non appena l'ordine sarà pronto. + + + Non ho i soldi con me. + + + Beh, allora torna quando li avrai. + + + Sai, ho cambiato idea. + + + Va bene. Quando ti sarai deciso a comprare qualcosa, sarò qui ad aspettarti. + + + Non sei un cliente affidabile, per cui la pistola ti costerà 4.200. E di questi, 1.400 me li dovrai dare in anticipo. + + + Purtroppo ho già venduto le pistole migliori... se ti accontenti di merce normale, vai pure da Owl. + + + Un'arma a corto raggio. + + + Ma certo. Il costo è 10.000 e di questi 2.000 in pagamento anticipato. + + + Non hai ritirato il tuo ultimo ordine... per questo, stavolta ne voglio 12.000. E 4.000 come pagamento anticipato. + + + Mh... sai, penso proprio di non poterti aiutare. Ho troppe richieste. + + + Un'arma d'assalto. + + + Qualcosa di grosso calibro e con un rateo di fuoco elevato, OK... il prezzo normale è 20.000, con 4.000 versati in anticipo. Che ne dici? + + + Sei un cliente difficile. Dovrò farti pagare 24.000, e chiederne 8.000 come anticipo. Ci stai? + + + Questo è un momentaccio... l'esercito tiene il Cordon sotto pressione. Qualcuno ha attaccato il loro avamposto, l'altro giorno, e questo ha complicato ulteriormente le cose. + + + Un'arma di precisione. + + + Posso fornirti qualcosa di bello a 20.000. Però dovrai darmene 4.000 come anticipo. + + + A lavorare con te si corrono dei rischi... posso cercare di arrangiare la cosa per 24.000, però me ne serviranno 8.000 in anticipo. + + + In questo momento non è facile trovare un'arma del genere, il mio contatto per i fucili di precisione è stato... beh... messo a riposo. + + + Una tuta corazzata. + + + Sì, potrei trovare qualcosa che fa al caso tuo. Ti costerà 40.000 però, e me ne serviranno 8.000 come caparra. + + + Sì, credo di poter trovare qualcosa per te. Però non hai ritirato l’ultimo ordine, per cui il prezzo non sarà più basso di 48.000. E ne voglio 16.000 in anticipo. + + + Non riuscirò a trovare nulla di meglio dell'ultima tuta che ti ho procurato. Quella era già il massimo, che vuoi di più? + + + Una tuta con modulo respiratorio a ciclo chiuso. + + + Un ordine difficile... non sarà facile metterci le mani sopra, per niente! Potrei riuscire a procurarti questa bellezza per 30.000, ma solo se ne sganci 6.000 in anticipo. + + + L'ultima volta non hai mantenuto i patti, devo pensarci bene. Posso provare a procurarti quello che chiedi per 36.000, però avrò bisogno di un pagamento in anticipo da 12.000. + + + L'ultima volta ho fatto un autentico miracolo. Beh, amico, Paganini non ripete. + + + Un esoscheletro. + + + Certo che hai delle belle pretese. Posso procurartene uno da combattimento, ma il costo è di 60.000. Piuttosto caro, lo so, ma li vale fino all'ultimo. Tieni presente che 12.000 vanno versati sull'unghia subito. + + + Con l'ultimo ordine non sei stato per niente corretto: stavolta dovrai scucirne 72.000. E ne voglio 24.000 subito. + + + Impossibile. Da quando hanno chiuso la fabbrica, gli unici esoscheletri rimasti si trovano addosso a qualche cadavere. E quello non è il mio stile. + + + Adesso no. + + + Scusami, ma adesso sono chiuso. Ho alcune difficoltà con la spedizione degli ordini... + + + Ciao, io sono Nimble. La gente viene da me, quando cerca un'arma particolare: modelli rari, prototipi, pezzi unici, roba del genere. E poi offro equipaggiamenti perfetti, gli ultimi modelli di tute protettive e da combattimento. Controllo tutto di persona: qualità garantita! + + + Salve. Vuoi fare un'ordinazione? + + + Salve. + + + Il tuo ordine sarà consegnato molto presto. + + + L'ordine è disponibile: vieni pure a ritirarlo. + + + Ehi! Sei amico di Snag? + + + Sì, lo conosco. + + + Mi ha detto che ci stai portando qualcosa... + + + Non mi ricordo nulla del genere. + + + Bene, bravo. Guarda che a noi non piace aspettare i comodi di Snag. + + + Ciao. + + + Non posso! + + + Pensaci bene... se hai anche solo metà cervello, capirai che ti conviene fare il bravo, in una situazione come questa. + + + Ti ho detto di no! + + + No. Non lo conosco. + + + Aaah... dannazione... sono messo male. Aiutami, amico, mi serve un kit di pronto soccorso... o morirò presto. + + + Prendi questo kit di pronto soccorso. + + + Phew! Grazie, ancora un po’ ed ero bello che fregato. Ma di sicuro avrei venduto cara la pellaccia... Ecco, prendi il mio rilevatore, vedrai, prima o poi ti tornerà utile... Grazie per avermi salvato la vita! Ora penso che andrò a riposare un po' alla base. + + + Buona fortuna. + + + Phew! Grazie, ancora un po’ ed ero bello che fregato. Ma di sicuro avrei venduto cara la pellaccia... Ecco, prendi questo manufatto, vedrai, prima o poi ti tornerà utile... Grazie per avermi salvato la vita! Ora penso che andrò a riposare un po' alla base. + + + Non posso, mi serve. + + + Non ho un kit di pronto soccorso. + + + Grazie ancora! Senza di te, adesso starei due metri sotto terra... + + + Stalker! Presto, vieni ad aiutare Petrukha! Guarda là, al margine della fenditura! È rimasto colpito da un’anomalia! Neppure la tuta è servita a qualcosa! Per quanto riguarda me, io non ce l’ho... io e Petrukha abbiamo messo insieme i soldi, per comprare quella... se faccio un altro passo, sono morto! Aiutaci, ti prego! + + + OK, tu resta qui: ci provo. + + + Cavatevela da soli. + + + Grazie per aver salvato Petrukha. Accidenti, dovevamo risparmiare di più e comprare una tuta migliore! + + + Sparisci. Hai lasciato morire Petrukha... lui si che era un uomo, al contrario di te! + + + Alla prossima. + + + Ho ripulito la tana di succhiasangue. + + + Bene. Hai vendicato i nostri fratelli morti, pace all'anima loro... ti sei guadagnato questa ricompensa. + + + Ho trovato un'intera tana di succhiasangue sotto il complesso dell'antenna. + + + OK, bisogna spazzare via la tana. Lasciami pensare... chissà quanti dannati succhiasangue ci sono, in quei budelli. Magari potremmo gassarli... mi ricordo che Owl aveva parlato di alcune taniche piene di gas. Vai a parlare con lui, noi non siamo in buoni rapporti... Se riuscirai a trovare una tanica, collegala al sistema di ventilazione del complesso dell’antenna e sarà tutto finito nel giro di pochi minuti. + + + OK, va bene. + + + Ci penserò. + + + Ho già una tanica di gas. + + + Wow. Sei in gamba, amico. + + + Ah, ecco il nostro stalker. Ti stavamo aspettando. + + + Qual è il piano? + + + Stiamo andando a un incontro. Tu non dovrai fare molto, almeno spero... solo restare lì, con i nervi saldi. + + + OK. + + + Ah, gli abbiamo dato una bella lezione. Ci sai fare con il grilletto, stalker. Tieni. + + + Buona fortuna. + + + Dannato dilettante, hai mandato in fumo un'operazione sicura. Sparisci! + + + Ciao. + + + Che fretta hai? + + + Niente. + + + Ti manda Owl? + + + Sì, mi ha detto che ti serviva aiuto. + + + Ah, poco ma sicuro. Vedrai, te la caverai benissimo. + + + OK, cosa devo fare? + + + Fornire protezione durante un incontro d'affari. Tutto qui. + + + Non c'è problema. + + + Stammi vicino e coprimi. + + + Capito. + + + Parlerò solo con il capo. + + + Come vuoi. + + + Grazie, stalker, mi sei stato molto utile. Sapevo che quegli stronzi avrebbero provato a giocarmi qualche scherzetto. Li ho sempre tenuti sotto controllo! Ecco, per il tuo disturbo. + + + Buona fortuna. + + + Sei un bello scansafatiche, altro che guardia del corpo. Ma ti pagherò: io mantengo la parola. + + + Buona fortuna. + + + Sei un bello scansafatiche, altro che guardia del corpo. Ma ti pagherò: io mantengo la parola. + + + Buona fortuna. + + + Che cosa vuoi? Ti aspetti anche che ti ringrazi? Sono vivo per miracolo...! Sparisci. + + + Buona fortuna. + + + Ecco il mio ragazzo: bravo. Vogliamo avvicinarci di nascosto ai banditi, per sentire cosa dicono. Poi vedremo cosa fare. + + + Capisco. + + + Grazie, stalker. Ecco, prendi questo... Il barista si è preso la tua ricompensa più grossa. + + + Capisco. + + + Parlami della tua vita qui. + + + Non è certo una passeggiata... che cosa vuoi sapere di preciso? + + + Cosa fate in questo posto? + + + Controlliamo gli stalker. Sai, devi riconoscere che una buona parte di voialtri è solo un branco di ragazzini: venite nella Zona inseguendo qualche stupido sogno, o per fare gli eroi, o perché la vita vi ha giocato qualche brutto tiro. Non capite che qui c'è soltanto la morte, ad attendervi. Ecco, questi sono quelli che ci interessano: ne troviamo uno nella Discarica, prendiamo la sua roba e la rivendiamo al Cordon. Certo, ci sono anche quelli furbi, che se ne vanno. Quelli che riescono a tornare qui finiscono sotto la nostra protezione, a pagamento. Nel nostro territorio comandiamo noi, nessuno osa entrarci: né l'esercito, né i mercenari, né i mutanti. + + + Come mai sei finito nel centro della Zona? + + + Le nostre gambe. Siamo venuti qui per gli stalker, cosa credi? Senza noialtri a tenere un po’ d’ordine, qui regnerebbe il caos. Chi cerca trova, certo, ma... a pagare le tasse chi pensa? Sai, le tasse per la pace e la sicurezza. Mentre voialtri vi divertite con le anomalie, noi stiamo qui a tenere a bada i mutanti: se lo stalker ritorna, ci prendiamo una fetta dei suoi guadagni... perché lo abbiamo protetto, capisci? + + + Come hai fatto a diventare il capo? + + + Vediamo, da dove comincio... Dai tempi dei liceo, mi sa: avevo un buon amico, il mio migliore amico. Eravamo un bel duo : si usciva, si fumava, si beveva, cose così. Solo che a lui le emozioni non bastavano mai e così ha cominciato a drogarsi, iniziando dall’erba e passando poi a cose più pesanti, non appena ha avuto i soldi per farlo. Io gli ho detto: “Tolyan, tirati fuori da questa merda, prima che sia tardi”, ma lui non mi ha ascoltato. Un giorno ha preso una dose tagliata male... ed è finita lì. Ho dato la caccia ai suoi spacciatori, per pareggiare il conto... e ho dato inizio alla guerra. I massacri, gli scontri, quella sensazione in fondo alla pancia. Me ne sono tirato fuori, ho avviato un'attività, mi hanno fregato di nuovo. Quando sono uscito, mi sono lasciato alle spalle quello schifo e sono venuto nella Zona, dove dopo un paio di mesi di gavetta sono stato promosso. E così eccomi qui, incaricato di far rispettare la legge del posto. + + + Che cosa ne pensi degli stalker? + + + Beh, sono tutti diversi fra loro: alcuni sono dei teppisti che non durano una settimana, altri sono qui per fare soldi... e altri ancora sono gente per bene presa a calci dalla vita, su entrambi i lati del Cordon. Noi schiacciamo i primi e tassiamo i secondi: per quanto riguarda il terzo tipo, cerchiamo di non pestarci i piedi a vicenda. Peccato che a volte sia difficile capire chi si ha di fronte... + + + Oh, non fa niente. Lascia perdere. + + + Come vuoi. + + + Ora Beard lavorerà per noi. + + + Sai come si dice, "Hai voluto la bicicletta, ora pedala". Vai a trovarlo di tanto in tanto e ricordagli che deve pagare i suoi debiti. + + + A Beard è stato richiesto un importante manufatto chiamato Bussola. + + + Dobbiamo individuare il manufatto. Beard non si agiterebbe tanto se la cosa non fosse importante. Ho la sensazione che gli serva per salvarsi le chiappe... per restare in affari, diciamo. Portami questa Bussola non appena l'avrai trovata. + + + Ho trovato la Bussola. Ecco. + + + Mi rifiuto di cercarti la Bussola. + + + Ehi, stronzetto, vediamo di capirci. Se dici che farai un lavoro per me e poi invece mi lasci a piedi, beh, diciamo che dopo non mi starai molto simpatico. E quelli che non mi stanno simpatici tendono a non avere una bella vita. Ci siamo capiti? + + + Lo terrò a mente. + + + Andrò a prendere quei rilevatori dagli stalker. + + + Bene. Io intanto mi occuperò degli altri canali del nostro cliente. + + + Un uccellino mi ha detto che hai consegnato una Bussola a Beard. Ora ascoltami bene, mezza sega. Se dici che farai un lavoro per me e poi invece mi lasci a piedi, beh, diciamo che dopo non mi starai molto simpatico. E quelli che non mi stanno simpatici tendono a non avere una bella vita. Ci siamo capiti? + + + Lo terrò a mente. + + + Ora Beard è senza rilevatori avanzati. + + + Benissimo. Mentre eri via mi sono dato da fare per tagliare gli altri canali di Beard. Ora il cliente è tutto nostro. Vai da Beard e digli che Sultan gli porta i suoi saluti. + + + Beard mi deve dei soldi. Owl ha detto che mi avresti potuto aiutare. + + + Immagino di sì... Ecco il mio piano: mandiamo in rovina Beard e prendiamo il suo posto nel giro degli affari, tu ricevi il denaro pattuito e una fetta della torta. Affare fatto? + + + Affare fatto. + + + Allora adesso devi scoprire cos'è che tiene Beard occupato. Dopodiché basterà tagliare i canali con i suoi fornitori. + + + Ci penserò. + + + Ricorda che pensare troppo fa male alla salute. + + + Pensi che Nimble traffichi merce rubata? + + + Nimble? No, non ha le palle per farlo. Owl è il nostro trafficante locale per la roba che scotta. Qualunque cosa tu venda lui te la comprerà, e senza fare domande. + + + Sto cercando Snag: sai dove posso trovarlo? + + + Sì. I miei ragazzi l'hanno visto alle gru del porto un paio di giorni fa. Dovrei dargli una lezioncina per dei soldi che mi deve, ma continuo a dimenticarmene. + + + Ho io un lavoro per te. I miei ragazzi devono incontrarsi con un mercante... sai, questioni di affari. Ultimamente nella Zona la situazione è un po' tesa, quindi ho pensato che un altro uomo armato potrebbe fare comodo. Assicurati che tutto fili liscio come l'olio. + + + OK. + + + Bene. I miei uomini ti aspetteranno nei pressi della stazione dei ranger. Troverai le coordinate caricate sul tuo PDA. + + + Capisco. + + + Non mi interessa. + + + Cosa diavolo ci fai ancora qui? Porta le tue chiappe alla stazione dei ranger. + + + D'accordo. + + + Allora, ti sei deciso? Sei dei nostri o no? + + + Sono dei vostri. + + + Preferisco restare per i fatti miei. + + + Ricorda, io sono Sultan. Tutto quello che passa da qui è sotto il mio controllo, o comunque lo sarà presto. Se vuoi vivere una bella vita, devi lavorare per me. Se non lo farai vivrai una vita di merda. È così che va la vita, fratello. + + + Cosa ti serve? + + + Come mai da queste parti? + + + Allora? + + + Ho ucciso io tutti gli stalker. + + + Ehi, amico... merda, sei un vero osso duro. Arrivi qui e li ammazzi come se niente fosse, merda. Cosa diavolo ti ho assunto a fare? Non ci hai procurato dei contanti, ma solo un sacco di guai. Devi calmarti, amico, hai capito? + + + Ti piace lavorare per gli scienziati? + + + Non è male. Per il momento sembra tutto tranquillo, non ci sono stati problemi. Gli scienziati ci hanno fornito un po' di attrezzature, quindi ce la caviamo bene. + + + Eccellente! Il lavoro è semplice e ben pagato. Nessuno, neanche i mostri, verrà a cercare gli scienziati finché ci saremo noi! + + + Sto raccogliendo una squadra per andare a Pripyat. Vuoi unirti a me? + + + No... A differenza degli altri, Pripyat non mi attira... E poi abbiamo già un lavoro, dobbiamo proteggere gli scienziati... Perché non porti con te quel soldato? Così potrebbe rivedere i suoi amici dell'esercito e noi potremmo rilassarci un po'. Quel tipo è a posto, ma questo non è di certo il posto più adatto a lui... + + + No... A differenza degli altri, Pripyat non mi attira... E poi abbiamo già un lavoro, dobbiamo proteggere gli scienziati... + + + Ti piacerebbe lavorare per gli scienziati? + + + Qual è il lavoro? + + + Difendere il loro bunker. + + + Beh, difenderlo... eh eh... non sarebbe la prima volta. Ci sto. Partiremo per il bunker non appena saremo pronti. + + + Eseguire delle misurazioni nelle anomalie. + + + Delle misurazioni, Eh? Ti sembro un tecnico di laboratorio? Non fa proprio per me. + + + Ne parleremo più tardi. Ci sono troppi farabutti nuovi in giro. Devo rimetterli in riga, poi magari potremo pensare al lavoro. + + + Va bene, facciamo saltare questa baracca. Gliela faremo vedere noi! + + + Bene. + + + Sarà meglio trovare subito un riparo. È una dannata emissione! + + + Facciamo saltare questa baracca. Gliela faremo vedere! Basta mantenere la calma e andrà tutto bene. + + + Gliel'abbiamo fatta vedere, eh? Ecco il grano, amico. Ti farò un fischio se avremo bisogno di una mano per altri "affari". + + + Ehi, amico... merda, sei un vero osso duro. Arrivi qui e li ammazzi come se niente fosse, merda. Cosa diavolo ti ho assunto a fare? Non ci hai procurato dei contanti, ma solo un sacco di guai. Devi calmarti, amico, hai capito? + + + Non sei pulito?!? Che razza di stronzate sono queste? Hai fatto la spia, vero? Non avrebbe potuto essere nessun altro! I miei fratelli mi sono rimasti sempre accanto... Ora il tuo stupido culo si beccherà il trattamento che sarebbe dovuto toccare agli stalker! Cosa cavolo guardi... vuota subito le tasche, stronzo! + + + Meglio andare... alla chiatta. + + + Ehilà, capo. Scusa, ma adesso non ho voglia di parlare. + + + Ti aiuterò io. + + + Ottimo. Noi prepareremo il comitato di benvenuto e tu ti allontanerai. Quando arriveranno li attaccheremo da tutte le parti. Assicurati di stare a distanza debita, o verrai colpito dal fuoco amico. + + + OK. + + + No. Non ci sto. + + + Salve, stalker. Adesso ho da fare. Possiamo parlare più tardi? + + + Grazie dell'avvertimento. Vuoi aderire al nostro piano? È una bella occasione per colpire quei bastardi alle spalle, per così dire. + + + Tenderemo loro un'imboscata. Quando lo faremo, tu sparerai a quei bastardi da dietro. + + + Quei bastardi sono già morti. Grazie dell'avvertimento. + + + Grazie per il tuo aiuto. + + + Salve. Ascolta, se non è una cosa urgente, possiamo parlarne dopo? + + + Salve. + + + Ho trovato Magpie. Era alla stazione Yanov, dove si faceva chiamare 'Flint'. L'ho già sistemato. + + + Sistemato? Che peccato. Mi sarebbe piaciuto dare una lezione a quello scarafaggio... Oh, beh, è comunque una buona notizia. Ecco, prendi questo. Io sono un uomo di parola. + + + Grazie. + + + Voglio andarmene dalla Zona. + + + Sicuro? Poi non potrai più tornare. + + + Sono sicuro. Andiamo. + + + In effetti... per ora resterò. + + + OK, prendi i soldi. Non voglio combattere. + + + Eh? Dammi tutto quello che hai, stronzo! Poi sparisci e non farti più vedere! + + + Me ne vado. + + + Non posso! + + + Diamo un'occhiata... Con il tuo stato di salute? Beh, se tu te la passi male, io devo essere morto o qualcosa del genere... + + + Ascolta, c'è una faccenda urgente. Un commerciante di mia conoscenza vuole chiudere un affare. Il problema è che i suoi clienti sono di quelli difficlii, quindi vuole assumere una guardia del corpo per stare più tranquillo. Ti interessa? + + + Sì. + + + Bene. Il commerciante ti aspetterà alla stazione dei ranger e ti spiegherà tutti i dettagli. + + + Non direi. + + + Come vuoi. Se cambi idea, forse farai ancora in tempo ad avere il lavoro. + + + Che tipo di lavoro puoi offrirmi? + + + Un genere di lavoro di quelli ben pagati. Pensaci un attimo: perché mi rivolgo a te? Tu sei uno nuovo, senza nessuna conoscenza, ma se giochi bene le tue carte potresti ottenere alla svelta il rispetto della gente del posto. Vuoi sapere cosa sto pensando? + + + Certo, spara. + + + E va bene, allora scolta. Vogliamo dare una lezione agli stalker di Beard. Una passeggiata. A notte fonda tu e i nostri ragazzi andrete a Shevchenko e ancora prima che quei turisti capiscano cosa sta succedendo, li portate a fare un giro. Noi ci becchiamo i quattrini e tu la fama... Afferrato il discorso? Bene, allora. Vedi Knuckles laggiù? Lui ti spiegherà tutti i dettagli. + + + Non direi. + + + Peccato. Prenditi un po' di tempo per pensarci... Se sei uno che sa cosa gli conviene tornerai da me. + + + Un lavoro di quelli adatti a chi ama viaggiare... Vuoi sapere cosa sto pensando? + + + Il PDA di Barge. Ho trovato il suo cadavere nelle grotte sotto la fattoria bruciata. + + + L'ho trovato vicino a delle ossa non lontano dalla Pinquercia. È il PDA di Joker. + + + Di Joker? Ma è impossibile! Ehi, che tragedia... Oh, Joker, non rideremo più delle tue battute... riposa in pace... Spero che almeno Barge stia bene... + + + Di Joker? Ma è impossibile! Ehi, che tragedia... Oh, Joker, non rideremo più delle tue battute... riposa in pace... E anche tu, Barge... Come siamo potuti arrivare a questo? + + + Di Barge e di Joker. Ne ho trovato uno accanto a uno scheletro nei pressi della Pinquercia, e un altro addosso a un cadavere nelle caverne sotto la fattoria bruciata. + + + A essere sincero, non c'è molto da dire. Le emissioni sono molto pericolose e quasi sempre letali. Puoi percepire gradualmente l'avvicinarsi di un'emissione a causa dei cambiamenti climatici, ma dopo aver raggiunto il suo picco passa piuttosto in fretta. Non appena ne percepisci l'arrivo, corri al rifugio più vicino: una caverna, qualcosa fatto di cemento, mattoni o acciaio... Alcune persone, me compreso, sentono arrivare un'emissione quando gli fa male la schiena. Riguardo la natura delle emissioni, non ho niente di utile da dirti... perché non so niente. + + + Ti serve della merce? Delle informazioni? O forse hai tu delle informazioni da vendere? + + + Sultan dice che stai pianificando di derubare gli stalker. Considerami dei tuoi. + + + Grandioso. Porta le chiappe a Shevchenko dopo mezzanotte. Ti aspetteremo. Ma non farci aspettare fino al mattino. + + + Oh, sei tu, fratello. Allora, cosa hai concordato con Sultan? + + + Allora... Vai alla chiatta dopo mezzanotte ma prima dell'alba. Ti aspetteremo. + + + Forse farò meglio a stare con te. Aspetteremo la mezzanotte, poi potrai mostrarmi la strada per Shevchenko. + + + Nessun problema, tu resta da queste parti. Portarti alla chiatta non è un problema. + + + In realtà... Voglio sistemare alcune cose. + + + All'interno della Zona lavoro con importanti clienti che regolarmente mi richiedono specifici manufatti che devono essere consegnati con puntualità. Tu portami quello che ti chiedo e ti pagherò bene. Ricorda che questi ordini sono importanti per me, ecco perché cerco di commissionarli a più agenti alla volta... Verrai pagato interamente solo se mi consegni il manufatto per primo. + + + Attraverso la fattoria bruciata. Mmm... ma tu chi sei? + + + Chiamano quel posto Foresta d'acciaio. L'elicottero si è schiantato contro i tralicci della corrente elettrica. I marine sono morti tutti... E anche se qualcuno fosse sopravvissuto, sarebbe impossibile uscire vivi da lì. Quei poltergeist hanno la fissa di spingere la gente nelle anomalie elettriche... Come sicuramente saprai anche tu, quei sacchi d'immondizia reagiscono al minimo movimento. + + + Ascolta, dopo che l'elicottero è precipitato, solo cinque militari sono stati visti uscire da quella palude. Raggiungere quel posto non è difficile, basta stare lontano dall'acqua e restare sulla terraferma. E ti occorrerà anche una protezione dalle sostanze chimiche. Se hai intenzione di metterti in viaggio, compra degli antidoti dal medico. + + + Peccato che Barge e Joker non siano qui... ce la spasseremmo alla grande. Siamo come fratelli e ci proteggiamo sempre a vicenda... Come siamo arrivati a questo punto? Io sono ancora qui e loro se ne sono andati chissà dove... + + + Parlami di Joker e Barge. + + + Mi sono già procurato qualcosa. + + + Comincia a parlare... Hai qualcosa per me? + + + Beh, questo spiega tutto. Lo conosco. È sempre stato un imbroglione, ma ultimamente sta davvero esagerando, a imbrogliare gli stalker a quel modo... Deve essere rimesso in riga. + + + Mi servono informazioni sull'accampamento dei mercenari. Non è difficile come sembra. + + + OK, aspetterò... Ma ricorda che il lavoro è urgente, deve essere portato a termine entro due giorni. + + + PDA del messaggero di Sultan. + + + Non è particolarmente interessante. Te lo pagherò 500. + + + OK. + + + Prototipi di rilevatori. Ti interessa comprarli? + + + Documenti segreti. Li ho trovati sul ponte accanto alla colonna motore. Vuoi dare un'occhiata. + + + Uno strano manufatto. L'ho trovato alla stazione di drenaggio. + + + Uno strano manufatto. L'ho trovato alla stazione Yanov. + + + Manufatto Cuore dell'Oasi + + + Diamoci dentro. + + + Aspetta. + + + Un gruppo di stalker vuole fregarti. Stai all'erta. + + + Maledetti bastardi... E va bene, gli daremo un caloroso benvenuto... Ascolta, fagli credere di essere dalla loro parte. Se ci riuscirai ci darai un grande aiuto nel respingerli... Sapremo come ricompensarti... + + + Non mi interessa cosa hai concordato. Dammi qui, e subito! + + + OK, ecco qui. + + + Ah, no? Me ne frego. Dammi qui, idiota! + + + Calma, calma... tieni. + + + Maledetti bastardi... E va bene, gli daremo un caloroso benvenuto... Ascolta, aiutaci a respingerli, se puoi. Sapremo come ricompensarti... + + + Li abbiamo conciati per le feste, eh!?Tu non hai voluto partecipare, quindi non avrai nulla. Se avremo altri "affari" ti farò un fischio. + + + Sei inutile... Non aspettarti una ricompensa. Beh, almeno sei venuto per fare due chiacchiere. È già qualcosa. + + + Ci si vede. + + + Bravo ragazzo. Ora abbiamo il coltello dalla parte del manico. Ho sentito dire che Beard ha dotato i suoi stalker di potenti rilevatori programmati per trovare manufatti rari. Devi unirti a quegli stalker e fare in modo che quei rilevatori non vedano quello che hai in tasca. Ci siamo capiti? + + + Con la forza non ce la possiamo fare. Ho provato a bloccare le sue linee di rifornimento, ma quel dannato bastardo barbuto è riuscito a trovare una Bussola. Se la sta cavando senza problemi... per ora. + + + [continua...] + + + [continua...] + + + [continua...] + + + Grouse è morto. Sembra che sia stato Tremor a ucciderlo... ma è morto anche lui. + + diff --git a/gamedata/configs/text/ita/st_generate_fnames.xml b/gamedata/configs/text/ita/st_generate_fnames.xml new file mode 100644 index 0000000..0ea67ed --- /dev/null +++ b/gamedata/configs/text/ita/st_generate_fnames.xml @@ -0,0 +1,492 @@ + + + + Sanek + + + Shurik + + + Vadya + + + Vasyan + + + Vasek + + + Vityukha + + + Vetal + + + Vovan + + + Zhorka + + + Grishka + + + Grishko + + + Dimon + + + Lekha + + + Dimukha + + + Zheka + + + Fimka + + + Ilyukha + + + Kostyan + + + Mitka + + + Mikhal + + + Mikha + + + Mikhas + + + Kolyan + + + Tolyan + + + Pavlukha + + + Sashok + + + Stepka + + + Stepukha + + + Timokha + + + Felka + + + Yuras + + + Yashka + + + Andryukha + + + Tokha + + + Arkasha + + + Temka + + + Boryan + + + Bodya + + + Capitano + + + Tenente + + + Soldato + + + Andrey + + + Anton + + + Oleg + + + Roman + + + Aleksandr + + + Sergey + + + Anatoly + + + Yuri + + + Bohdan + + + Veniamin + + + Vitaly + + + Vladimir + + + Dmitry + + + Ivan + + + Konstantin + + + Alexey + + + Sanya + + + Sanek + + + Arthur + + + Yashka + + + Yarik + + + Yara + + + Slava + + + Borya + + + Borka + + + Bohdan + + + Slavik + + + Vadim + + + Vadya + + + Vadik + + + Valik + + + Valera + + + Shurik + + + Vasya + + + Vaska + + + Vasko + + + Venya + + + Vitya + + + Vitka + + + Vitalik + + + Vlad + + + Vova + + + Vovka + + + Lenya + + + Seva + + + Sevka + + + Gena + + + Genka + + + George + + + Gosha + + + Zhora + + + Mark + + + Gleb + + + Grisha + + + Alex + + + Grishka + + + Grishko + + + Danya + + + Kiryukha + + + Danko + + + Dennis + + + Dima + + + Dimka + + + Dmitro + + + Zhenya + + + Leshka + + + Zhenka + + + Egor + + + Egorka + + + Fima + + + Vanya + + + Vanka + + + Igorek + + + Ilya + + + Kostya + + + Kostik + + + Tolik + + + Leva + + + Lenya + + + Lyonka + + + Max + + + Matvei + + + Mitya + + + Misha + + + Mishka + + + Nikita + + + Nik + + + Anton + + + Kolya + + + Oleg + + + Pasha + + + Pashka + + + Petro + + + Petya + + + Petka + + + Roma + + + Romka + + + Rostik + + + Toshka + + + Rus + + + Savva + + + Semyon + + + Sema + + + Serega + + + Rusik + + + Stepan + + + Stepa + + + Tima + + + Timka + + + Artem + + + Fedor + + + Fedya + + + Fedka + + + Filya + + + Filka + + + Edik + + + Yurka + + + Yurik + + + Yurko + + + Yasha + + + Sergente maggiore + + + Sergente + + diff --git a/gamedata/configs/text/ita/st_generate_snames.xml b/gamedata/configs/text/ita/st_generate_snames.xml new file mode 100644 index 0000000..b99a0ff --- /dev/null +++ b/gamedata/configs/text/ita/st_generate_snames.xml @@ -0,0 +1,4836 @@ + + + + Gray + + + Berserk + + + Rotten + + + Patty + + + Spy + + + Bison + + + Beaver + + + Bulldog + + + Ox + + + Sparrow + + + Woodpecker + + + Beast + + + Warlock + + + Humpback + + + Boar + + + Crucian + + + Canary + + + Bedbug + + + Nark + + + Moose + + + Rat + + + Boa + + + Loaf + + + Broken + + + Long John + + + Mayhem + + + Bolt + + + Razor + + + Drum + + + Junk + + + Screw + + + Dynamite + + + Trump + + + Shovel + + + Joint + + + Dead Duck + + + Cross + + + Tar + + + Sock + + + Crowbar + + + Panadol + + + Shiv + + + Piston + + + Nickel + + + Tails + + + Lethal + + + Percher + + + Grindstone + + + Ace + + + Chisel + + + Jackstraw + + + Shortstop + + + Crosstie + + + Stud + + + Jiggers + + + Pugno + + + Bruise + + + Tadpole + + + Hacker + + + Khan + + + Koschei + + + Rambo + + + Tour Guide + + + Terminator + + + Chapai + + + Genghis + + + Banana + + + Loaf + + + Butterfingers + + + Papa + + + Spike + + + Homeboy + + + Gangrene + + + Glitch + + + Degree + + + Antelope + + + Fubar + + + Pariah + + + Aspic + + + Charcoal + + + Trump + + + Joint + + + Sock + + + Goblin + + + Moro + + + Reefer + + + Flop + + + Ravioli + + + Chili + + + Grater + + + Fatso + + + Biscuit + + + Ghoul + + + Miser + + + Broken + + + Tightwad + + + Squint + + + Fiend + + + Cripple + + + Kicker + + + Skew + + + Crooked + + + Shifter + + + Toupee + + + Fierce + + + Crony + + + Local + + + Slime + + + Champ + + + Monocle + + + Rascal + + + Deadbeat + + + Hotshot + + + Turd + + + Defunct + + + Psycho + + + Loudmouth + + + Torn + + + Grabber + + + Blind + + + Snot + + + Hipster + + + Met + + + Corpse + + + Slasher + + + Ears + + + Jester + + + Greyhound + + + Lame + + + Sturdy + + + Cranky + + + Connoisseur + + + Robust + + + Squire + + + Leech + + + Artist + + + Conman + + + Banker + + + Hobo + + + Baron + + + Peddler + + + Unorthodox + + + Tramp + + + Bosun + + + Pigmy + + + Bourbon + + + Bourgeois + + + Chauffeur + + + Thief + + + Shaven + + + Gangster + + + Messenger + + + Count + + + Tyrant + + + Savage + + + Strangler + + + Counselor + + + Player + + + Cheat + + + Godfather + + + Veterano + + + Coach + + + Bling-bling + + + Maniac + + + Undertaker + + + Butcher + + + Ninja + + + Executioner + + + Punk + + + Guerilla + + + Pacifist + + + Boulder + + + Pirate + + + Arsonist + + + Prince + + + Brigand + + + Kamikaze + + + Pimp + + + Tyrant + + + Hitman + + + Trombone + + + Chemist + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchitsky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiljev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiljev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiljev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Sinaev + + + Feigelman + + + Ledentsov + + + Alferov + + + Antipin + + + Blinov + + + Bogomolov + + + Vasilevich + + + Geshkenbein + + + Dyakonov + + + Erokhin + + + Zaikin + + + Zakharov + + + Ivchenko + + + Kabanov + + + Larin + + + Manko + + + Mironov + + + Stepanenko + + + Oganesyan + + + Chernodub + + + Shilov + + + Chirikov + + + Belyavin + + + Fadeev + + + Steklov + + + Andreev + + + Spirin + + + Balitsky + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiljev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + White + + + Green + + + Immortal + + + Rusty + + + Romantic + + + Atrocious + + + Brawny + + + Storyteller + + + Blind + + + Brave + + + Snot + + + Debater + + + Oldtimer + + + Berserk + + + Hipster + + + Met + + + Grim + + + Slouch + + + Dry + + + Lucky Bastard + + + Flecked + + + Fatso + + + Belly + + + Corpse + + + Broken + + + Smart Aleck + + + Slasher + + + Ears + + + Mummer + + + Jester + + + Lame + + + Sturdy + + + Bone + + + Cynic + + + Dude + + + Blithe + + + Cranky + + + Alert + + + Connoisseur + + + Robust + + + Sophomore + + + Native + + + Aviator + + + Agent + + + Squire + + + Leech + + + Crony + + + Disciple + + + Artist + + + Ascetic + + + Conman + + + Banker + + + Bard + + + Baron + + + Peddler + + + Unorthodox + + + Jogger + + + Athlete + + + Fighter + + + Tramp + + + Bosun + + + Pigmy + + + Bourbon + + + Bourgeois + + + Bureaucrat + + + Vandal + + + Barbarian + + + Janitor + + + Zinger + + + Witcher + + + Visitor + + + Viking + + + Chauffeur + + + Diver + + + Chief + + + Thief + + + Voyager + + + Shrink + + + Horseman + + + Loudmouth + + + Gangster + + + Geologist + + + Gladiator + + + Messenger + + + Guest + + + Count + + + Porter + + + Grandpa + + + Defector + + + Salesman + + + Greyhound + + + Dandy + + + Deputato + + + Tyrant + + + Savage + + + Diplomatico + + + Doc + + + Dottore + + + Professore + + + Strangler + + + Warden + + + Hobo + + + Counselor + + + Ack-ack + + + Ciarlatano + + + Player + + + Indiano + + + Iroquois + + + Capitano + + + Cheat + + + Clown + + + Duke + + + Rosso + + + Shaven + + + Cosacco + + + Cook + + + Warlock + + + Comanche + + + Re + + + Godfather + + + Merchant + + + Smoker + + + Courier + + + Coach + + + Veterano + + + Legionnaire + + + Healer + + + Forester + + + Lord + + + Tycoon + + + Bling-bling + + + Maniac + + + Marziano + + + Muratore + + + Meccanico + + + Bigtime + + + Undertaker + + + Moderatore + + + Lattaio + + + Butcher + + + Merc + + + Accordatore + + + Boss + + + Ninja + + + Operatore + + + Gunsmith + + + Lucky + + + Shah + + + Executioner + + + Polkan + + + Punk + + + Daddy + + + Guerilla + + + Pastore + + + Pecoraio + + + Elder + + + Aratore + + + Fortunate + + + Pacifist + + + Trasportatore + + + Whistle + + + Pilot + + + Apripista + + + Pirate + + + Falegname + + + Arsonist + + + Firefighter + + + Slipper + + + Beanpole + + + Subzero + + + Ambasciatore + + + Postino + + + Poeta + + + Prince + + + Profeta + + + Professore + + + Saltatore + + + Apicoltore + + + Workhorse + + + Leale + + + Rabby + + + Sparks + + + Brigand + + + Rasta + + + Warden + + + Rockettaro + + + Minatore + + + Samurai + + + Minesweeper + + + Orderly + + + Bugeyed + + + Prete + + + Segretario + + + Gigolo + + + Sham + + + Scythian + + + Pathfinder + + + Machinist + + + Kamikaze + + + Breeder + + + Lifesaver + + + Boulder + + + Sportsman + + + Straniero + + + Studente + + + Giudice + + + Toadstool + + + Pimp + + + Beancounter + + + Trooper + + + Danzatore + + + Tyrant + + + Rotten + + + Mercanteggiatore + + + Mopper-up + + + Sweeper + + + Ethnic + + + Turista + + + Hitman + + + Trombone + + + Quarterback + + + Fucili da cecchino + + + Chemist + + + Rusty + + + Verbal + + + Patty + + + Pittore + + + Sheep Herder + + + Sciamano + + + Cavatore + + + Coalminer + + + Sceriffo + + + Chief + + + Studioso + + + Cabby + + + Humpback + + + Spy + + + Elettricista + + + Cadet + + + Heathen + + + Alligatore + + + Anaconda + + + Babbuino + + + Bison + + + Beaver + + + Mantis + + + Orgoglioso + + + Bulldog + + + Chipmunk + + + Ox + + + Grice + + + Sparrow + + + Corvo + + + Topo muschiato + + + Plantain + + + Scavenger + + + Cornacchia + + + Aspro + + + Manul + + + Oca + + + Delfino + + + Dinosauro + + + Tordo + + + Woodpecker + + + Porcospino + + + Maggiolino + + + Lepre + + + Beast + + + Thunder + + + Warlock + + + Aurochs + + + Tacchino + + + Boar + + + Crucian + + + Canary + + + Bedbug + + + Cobra + + + Zanzara + + + Stallion + + + Bully + + + Gatto + + + Croc + + + Cavalletta + + + Nark + + + Moose + + + Mammut + + + Elephant + + + Germ + + + Moscerino + + + Formica + + + Long John + + + Tafano + + + Ragno + + + Rat + + + Pellegrino + + + Piranha + + + Python + + + Lepre + + + Owl + + + Falcone + + + Marmotta + + + Softie + + + Roditore + + + Minnow + + + Scarafaggio + + + Tarantola + + + Hamster + + + Boa + + + Owl + + + Furetto + + + Verme + + + Cavatore + + + Dead Duck + + + Assoluto + + + Anomalia + + + Paraurti + + + Loaf + + + Broken + + + Mayhem + + + Ardente + + + Bolt + + + Razor + + + Drum + + + Percher + + + Ciambella + + + Vuoto + + + Junk + + + Pebble + + + Fan + + + Elicottero + + + Vento + + + Screw + + + Colletto + + + Chiodo + + + Redhead + + + Tadpole + + + Cartridge + + + Globo + + + Boulder + + + Granata + + + Nebbia + + + Bara + + + Summertime + + + Engine + + + Dynamite + + + Crivellato + + + Butterfingers + + + Legal + + + Serratura + + + Breech + + + Isotopo + + + Rock + + + Trappola + + + Stregone + + + Karma + + + Mattone + + + Colla + + + Meany + + + Chiave + + + Frusta + + + Trump + + + Cap + + + Log Splitter + + + Whiskey + + + Radice + + + Falce + + + Space + + + Shovel + + + Scrub + + + Joint + + + Cross + + + Tar + + + Grilletto + + + Sock + + + Crowbar + + + Macchina + + + Bersaglio + + + Motore + + + Pump + + + Ferro + + + Notturno + + + Doppietta + + + Panadol + + + Paracadute + + + Round + + + Five + + + Shiv + + + Piston + + + Putty + + + Polvere da sparo + + + Hardware + + + Nickel + + + Razzo + + + Rack + + + Reattore + + + Hatchet + + + Setaccio + + + Tails + + + Robot + + + Stag + + + Spade + + + Charcoal + + + Moonshine + + + Stivale + + + Sidro + + + Lethal + + + Booze + + + Gouge + + + Barile + + + Forziere + + + Ascia + + + Botte + + + Swifty + + + Grindstone + + + Ace + + + Knot + + + Fattore + + + Lamp + + + Chisel + + + Giugno + + + Aglio + + + Jackstraw + + + Fortuito + + + Fatso + + + Shortstop + + + Spina + + + Cripto + + + Crosstie + + + Roach + + + Beccuccio + + + Rod + + + Stud + + + Screw + + + Jiggers + + + Miser + + + Brainiac + + + Zanna + + + Artiglio + + + Bone + + + Pugno + + + Nervo + + + Scheletro + + + Coda + + + Crest + + + Bruise + + + Gray + + + Tightwad + + + Hacker + + + Khan + + + Athlete + + + Pinocchio + + + Witcher + + + Voldemort + + + Omero + + + Dragon + + + Thunder + + + Gioconda + + + Squint + + + Noodle + + + Tin Man + + + Icaro + + + Casanova + + + Koschei + + + Cesare + + + Kolobok + + + Kutuzov + + + Peewee + + + Bonaparte + + + Thinker + + + Nelson + + + Nettuno + + + Oscar + + + Prometeo + + + Pushkin + + + Venerdì + + + Rambo + + + Roquefort + + + Tour Guide + + + Terminator + + + Dork + + + Ink + + + Cesare + + + Chapaev + + + Chapai + + + Chebur + + + Cheburashka + + + Chingachgook + + + Genghis + + + Shtirlitz + + + Banana + + + Hawk + + + Brownie + + + Loaf + + + Papa + + + Spike + + + Homeboy + + + Bulkin + + + Bulldozer + + + Tampone + + + Bombolo + + + Silenzioso + + + Saber + + + Gangrene + + + Ibrido + + + Glitch + + + Drummer + + + Highlander + + + Degree + + + Gremlin + + + Antelope + + + Uncle + + + Fubar + + + Gelido + + + Pariah + + + Kagor + + + Cavolo + + + Carburo + + + Aspic + + + Trump + + + Commodoro + + + Re + + + Joint + + + Sock + + + Fiend + + + Ghiaccio + + + Goblin + + + Moro + + + Madera + + + Spaghetti + + + Maestro + + + Mutante + + + Reefer + + + Flop + + + Pond + + + Cripple + + + P.I. + + + Ravioli + + + Chili + + + Strap + + + Doughboy + + + Bolla + + + Grater + + + Zeppola + + + Ryazansky + + + Moonshine + + + Cripple + + + Morel + + + Biscuit + + + Tabacco + + + Cartellino + + + Ace + + + Zucchini + + + Ghoul + + + Trombone + + + Spettro + + + Stunt + + + Gray + + + Kicker + + + Coma + + + Skew + + + Maldestro + + + Spine + + + Crooked + + + Rainbow + + + Shifter + + + Bush + + + Toupee + + + Siniy + + + Brown Nose + + + Fierce + + + Peewee + + + Stiff + + + Necro + + + Local + + + Grave + + + Slime + + + Champ + + + Narciso + + + Black + + + Fiacco + + + Perdente + + + Goofy + + + Nuisance + + + Crybaby + + + Monocle + + + Rascal + + + Deadbeat + + + Paranoia + + + Hotshot + + + Teflon + + + Carogna + + + Turd + + + Defunct + + + Virtuoso + + + Simpleton + + + Psycho + + + Workhorse + + + Torn + + + Grabber + + + Harsh + + diff --git a/gamedata/configs/text/ita/st_items_artefacts.xml b/gamedata/configs/text/ita/st_items_artefacts.xml new file mode 100644 index 0000000..8c9f7bd --- /dev/null +++ b/gamedata/configs/text/ita/st_items_artefacts.xml @@ -0,0 +1,153 @@ + + + + Un composto di numerose formazioni organiche cave, questo manufatto emette una sostanza gassosa che può neutralizzare le particelle radioattive nel corpo senza danneggiarlo. Questa sua efficacia lo rende uno dei manufatti più ricercati. + + + Bolla + + + Una formazione rossastra di residui animali, geologici e vegetali, compressi e fossilizzati. Neutralizza parzialmente i veleni chimici. Emette radiazioni. + + + Sangue di pietra + + + Questo manufatto si forma in zone anomale dove l'attività termica è intensa. Consuma attivamente il calore in eccesso, restando sempre fresco al tatto. Emette radiazioni. + + + Questo manufatto è composto da un tipo di pietra simile al granito deformata da un'intensa forza gravitazionale, che dà origine a una formazione cristallina che la scienza non ha ancora saputo spiegare. Può fornire una protezione limitata contro le psico-emissioni. Emette radiazioni. + + + Fiore di pietra + + + Cristallo + + + Questo manufatto è composto da elementi elettrostatici, ma gli scienziati devono ancora stabilire le precise condizioni fisiche richieste per la sua formazione. Molto popolare nella Zona e apprezzato da residenti e visitatori per le sue proprietà energizzanti, l'uso prolungato può tuttavia affaticare il corpo. Emette radiazioni. + + + Batteria + + + Un tempo questo manufatto era considerata spazzatura priva di qualsiasi utilità. Tuttavia, di recente gli scienziati hanno scoperto che, se tenuto a costante contatto con il corpo, ha un eccellente effetto stimolante sul sistema nervoso. Emette radiazioni. + + + Conchiglia + + + La natura di questo manufatto è ancora un enigma per gli scienziati, però è noto che le emissioni prodotte dagli impulsi delle sezioni più spesse accelerano la coagulazione del sangue nelle ferite aperte, formando una sorta di crosta protettiva. Uno degli effetti più importanti di questo manufatto è l'aumento della velocità di guarigione delle ferite. Emette radiazioni. + + + Spirale di perle + + + Questo manufatto elettrostatico è in grado di assorbire, e successivamente scaricare, grandi quantità di elettricità. È in grado di proteggere l'utilizzatore da scariche elettriche fino a 5.000 volt. Emette radiazioni. + + + Lampo + + + Questo straordinario manufatto elettrostatico può risuonare sotto l'influsso di psico-onde. Gli stalker hanno imparato a perfezionarlo in modo da farlo risuonare nella fase opposta a quella della principale fonte di emissioni, riducendone o annullandone completamente gli effetti. Emette radiazioni. + + + Chiaro di luna + + + Un "brillante" rappresentante della famiglia dei manufatti elettrostatici, in grado di ridurre le fluttuazioni nella densità dei campi elettrici. Emette radiazioni. + + + Scintilla + + + Questo manufatto, che ricorda la forma di un occhio umano, aumenta in modo considerevole il metabolismo del corpo, accelerando la guarigione delle ferite. Gli stalker più esperti sostengono che porti anche fortuna. Emette radiazioni. + + + Occhio + + + Questo manufatto si forma in zone con intensa attività termica. Emette potenti emissioni a infrarossi che intensificano i processi metabolici e accelerano la guarigione delle ferite. È un manufatto estremamente raro e quindi altrettanto prezioso. Emette radiazioni. + + + Fiamma + + + Pur essendo un manufatto termico, lo si può tenere in mano senza rischiare di bruciarsi. È tenuto in grande considerazione per la sua capacità di mantenere la temperatura di 75° F in una zona circoscritta, indipendentemente dall'ambiente circostante. Emette radiazioni. + + + Ardente + + + Un manufatto relativamente raro che si forma nelle zone contaminate da sostanze chimiche e considerato molto utile per la sua capacità di guarire rapidamente ogni tipo di ferita. Per motivi ignoti, gli scienziati hanno diffuso delle voci tra gli stalker secondo cui il manufatto può interagire con il codice genetico dell'utilizzatore. Emette radiazioni. + + + Kolobok + + + Lucciola + + + Risultato di un'interazione tra numerosi campi gravitazionali, il Pesce rosso produce a sua volta un potente campo gravitazionale che rende gli oggetti nel raggio d'azione leggeri come una piuma. Si dimostra particolarmente utile per ridurre il peso dell'equipaggiamento trasportato, e questo spiega la sua grande popolarità. Emette radiazioni. + + + Pesce rosso + + + Manufatto formato da sostanze metalliche esposte a campi gravitazionali prolungati. Ciò lo rende in grado di generare un campo antigravitazionale che può ridurre il peso dello zaino degli stalker. Emette radiazioni. + + + Gravi + + + A prima vista, questo manufatto somiglia al Kolobok. Alcuni sostengono che si tratti in effetti del Kolobok, ma con le proprietà di base amplificate dall'esposizione a un potente campo elettrico. Grazie alle sue caratteristiche uniche, questo manufatto può aumentare sensibilmente il tono muscolare dell'utilizzatore. Emette radiazioni. + + + Fiocco di neve + + + Questo manufatto gravitazionale attrae e assorbe le particelle radioattive, riducendo gli effetti delle radiazioni sul corpo. Molto comune nella Zona e usato altrove in modo "non ufficiale" per curare le contaminazioni più gravi, ma solo in casi di estrema necessità. + + + Medusa + + + Questo manufatto organico è formato da tessuti animali mutati e deformati. Se posizionato in un'area contaminata da sostanze chimiche, può trasformare le particelle chimiche aeree in una sorta di fluido mucoso. Emette radiazioni. + + + Pezzo di carne + + + Questo manufatto luminoso può generare un piccolo campo localizzato a gravità ridotta. Molto usato dagli stalker insieme al Gravi, un manufatto con proprietà simili, per aumentare il carico massimo trasportabile. Emette radiazioni. + + + Stella della notte + + + Un manufatto organico unico, dalle proprietà altrettanto uniche. Riesce ad aumentare la velocità di guarigione del corpo da ogni tipo di danno, senza accelerare l'accumulo di tossine. Grazie ai suoi effetti e all'aspetto accattivante, questo manufatto è un prezioso oggetto da collezione. Emette radiazioni. + + + Anima + + + Questo manufatto dalla forma bizzarra compare in luoghi dove l'attività gravitazionale è più intensa. Funziona come una spugna che assorbe elementi radioattivi, proteggendo sia dalle radiazioni esterne sia dalle particelle radioattive che hanno già raggiunto il corpo. + + + Contorto + + + Bussola + + + Un manufatto raro. Sono anni che non se ne trovava una. Può individuare degli spazi sicuri tra i campi di anomalie. Si ritiene che consenta di farci uscire del tutto illesi anche dai campi di anomalie più complessi. A ogni modo, pochi sanno come usarla correttamente. + + + Cuore dell'Oasi + + + Questo manufatto, rinvenuto al centro della leggendaria Oasi, sembra essere una pianta cristallizzata che ha acquisito le proprietà curative dell'Oasi stessa. A differenza di quest'ultima, tuttavia, emette intense radiazioni. + + + Questo manufatto interagisce con campi di natura sconosciuta, accelerando notevolmente la rigenerazione di tessuti e organi e normalizzando i processi metabolici. Può rimettere in piedi in pochi secondi uno stalker ferito gravemente, ma è un manufatto estremamente raro. Emette radiazioni. + + diff --git a/gamedata/configs/text/ita/st_items_equipment.xml b/gamedata/configs/text/ita/st_items_equipment.xml new file mode 100644 index 0000000..c1afea6 --- /dev/null +++ b/gamedata/configs/text/ita/st_items_equipment.xml @@ -0,0 +1,156 @@ + + + + Droghe anti-radiazioni + + + Le Droghe anti-radiazioni a base di mexamin sono comuni nella Zona. Causano la contrazione dei vasi sanguigni periferici e la riduzione dei livelli di ossigeno, in modo da curare e prevenire l'esposizione alle radiazioni. Non hanno gravi effetti collaterali, anche se in alcuni casi possono provocare nausea, vertigini, crampi e dolori addominali. + + + Fasciatura + + + Una normale fascia elastica usata per bloccare le emorragie e prevenire l'infezione delle ferite. Nei casi meno gravi, basta applicare la fasciatura sulla ferita; in caso di emorragie arteriose, è necessario fasciare accuratamente l'area interessata. + + + Binocolo militare standard con un fattore di ingrandimento massimo x7.5. Particolarmente utile nella Zona per osservare gli oggetti più distanti. + + + Binocolo + + + Pane + + + Nella Zona non sono mai stati trovati dei fornai, ma questo pane non è contaminato né radioattivo. Anzi, sembra fresco e commestibile. Finora non sono state segnalate lamentele. + + + Barattolo "Colazione del turista" + + + Pare che questo cibo in scatola sia stato rubato dagli stalker in un deposito di razioni militari. Senza alcun tipo di etichetta, però, è difficile stabilirlo con certezza. Se ci si attiene alla data di scadenza, dovrebbe essere ancora commestibile. + + + Rilevatore "Eco" + + + Questo rilevatore di attività anomale piuttosto antiquato emette un segnale d'allarme quando particelle anomale entrano in una camera speciale, nei pressi di un'anomalia. Inoltre è in grado di rilevare la presenza di manufatti e misurare la distanza dal più vicino, indicata dalla frequenza dei segnali acustici emessi dallo strumento. Per attivare la modalità di ricerca dei manufatti basta sollevare il coperchio anteriore. Il rilevatore "Eco" è un dispositivo rudimentale, quindi può rilevare la presenza solo dei manufatti più comuni. + + + Rilevatore "Orso" + + + Rilevatore "Veles" + + + Uno scanner scientifico di nuova generazione. Grazie alle sue tre camere di rilevazione, la posizione dei manufatti viene indicata su uno schermo speciale. In posizione chiusa, lo strumento registra solo radiazioni e anomalie. Per attivare la modalità di ricerca dei manufatti basta aprire il display LED anteriore. In questa modalità, il rilevatore può individuare tutti i manufatti noti alla scienza. + + + Rilevatore sperimentale "Svarog" + + + Prototipo di uno scanner di anomalie potenziato. Possiede un programma integrato in grado identificare aree statiche che presentano attività anomale registrate nel database, mantenendo la capacità di individuare i manufatti. La posizione delle aree anomale e dei manufatti viene indicata su uno schermo speciale. La modalità di ricerca dei manufatti, attivabile aprendo il display LED anteriore, è stata modificata per rilevare anche le formazioni anomale attualmente sconosciute alla scienza. + + + Una torcia standard da applicare in testa. Utile per gli stalker rimasti bloccati all'esterno dopo il tramonto, ma potrebbe attirare guai se usata con scarsa prudenza. + + + Torcia + + + Anabiotico + + + Antidoto + + + L'antitossina IP2 è una sostanza complessa che include numerosi antidoti, come la metoclopramide, la piridossina, la tiamina, la ribossina e altri composti farmaceutici. Viene utilizzata per iniettare nel flusso sanguigno una vasta gamma di antibiotici che neutralizzano i veleni naturali, insieme a diversi assorbitori di veleni sintetici. L'antitossina IP2 non è molto comune nella Zona, dato che gli stalker preferiscono usare maschere antigas e tute protettive, ma alcuni conservano gelosamente scorte di questo antidoto. Gli effetti durano molto a lungo. + + + Ercole + + + Vinca + + + Vikasol di fabbricazione ucraina, equivalente artificiale della vitamina K. La funzione principale di questa sostanza è accelerare la coagulazione del sangue. Molto richiesto dagli stalker per rimarginare in fretta le ferite più gravi e le lacerazioni inflitte dai mutanti. Gli effetti durano molto a lungo. + + + Psico-bloccante + + + Una sostanza che blocca gli impulsi nervosi "a valanga". La somministrazione provoca l'annullamento temporaneo di qualsiasi sensazione. Utilizzato esclusivamente nella Zona per contrastare gli effetti degli psico-campi anomali. Gli effetti durano molto a lungo. + + + Radioprotettore + + + Bevanda energetica + + + Usata spesso dagli stalker durante i lunghi viaggi in cui non ci si può concedere delle soste. La bevanda contiene carboidrati facilmente digeribili e sostanze che stimolano il rilascio di adrenalina nel flusso sanguigno. + + + Una semplice chitarra. + + + Chitarra + + + Salsiccia dietetica + + + Nel bene o nel male, spesso questa salsiccia (un misto di pollo e surrogato di soia) costituisce la colazione, il pranzo e la cena degli stalker. Praticamente non ha una data di scadenza, per via dell'alto contenuto di conservanti. + + + Kit di pronto soccorso + + + Kit di pronto soccorso militare + + + Un kit di pronto soccorso speciale per fornire assistenza medica ai feriti di guerra. Include coagulanti a base di menadione, antidolorifici, antibiotici e immunostimolanti, oltre a un kit per rimuovere proiettili e frammenti dal corpo. Questo kit di pronto soccorso è fornito come standard al personale militare e talvolta viene utilizzato dalle forze della Duty. + + + Un kit di pronto soccorso generico e monouso. Utile per trattare vari tipi di ferite, ustioni termiche, ustioni chimiche e i più comuni sintomi da avvelenamento. È molto popolare tra gli stalker. + + + Kit di pronto soccorso scientifico + + + Un kit di pronto soccorso progettato specificamente per la Zona. Contiene prodotti per curare le ferite, prevenire gli sviluppi della contaminazione da radiazioni e ridurre l'accumulo di radiazioni nel corpo. A differenza degli altri kit di pronto soccorso, include anche vikasol, batilol e nafazolina. + + + Nessun dato presente. + + + PDA + + + Vodka "Cosacchi" + + + Prodotta dalla GSC. Si beve volentieri e riduce in modo significativo gli effetti delle radiazioni. Da consumare con moderazione. + + + Questo rilevatore di anomalie di ultima generazione può localizzare formazioni anomale e ha un pannello a diodi a colori, che non solo ti indica la direzione in cui si trovano i manufatti, ma calcola anche la distanza. Per passare alla modalità ricerca manufatti, apri il pannello frontale del dispositivo. Purtroppo, è programmato con una lista di manufatti piuttosto datata. + + + Una sostanza sperimentale sviluppata dal professor Ozersky per le squadre di ricerca scientifica che lavorano nella Zona. L'ingrediente principale è la tetradotossina, nota anche come "polvere zombi", che provoca il blocco totale del sistema nervoso centrale per consentire di sopravvivere all'esposizione diretta alle emissioni. La sostanza non è stata ancora sperimentata clinicamente o sul campo, e ciò solleva qualche dubbio sulla sua efficacia e sui possibili effetti collaterali. + + + Bolt + + + Il componente principale di questo prodotto è un androgeno anabolico, uno steroide artificiale, la cui composizione chimica ricorda il testosterone. Viene spesso usato dagli stalker durante i lunghi attacchi per ridurre l'affaticamento muscolare. Aumenta notevolmente la capacità di trasportare pesi. Gli effetti della droga sono di lunga durata. + + + L'indralina B190 è un radioprotettore incluso nei kit medici forniti al personale degli impianti nucleari. Viene utilizzata nella Zona al posto del cloridato di cistamina PC1, eccessivamente tossico e potenzialmente letale se usato troppo spesso. Riduce gli effetti delle radiazioni gamma sui tessuti viventi. Va assunta prima dell'esposizione, dato che non agisce immediatamente. Gli effetti durano molto a lungo. + + + Armonica + + + Per gli amanti del blues. + + diff --git a/gamedata/configs/text/ita/st_items_outfit.xml b/gamedata/configs/text/ita/st_items_outfit.xml new file mode 100644 index 0000000..07a89ec --- /dev/null +++ b/gamedata/configs/text/ita/st_items_outfit.xml @@ -0,0 +1,117 @@ + + + + Armatura CS-3a + + + Armatura Duty PSZ-9d + + + Protezione universale PS5-M + + + Esoscheletro + + + Tuta corazzata Bulat + + + Questo esoscheletro fornisce un'eccellente protezione contro i proiettili e i danni da frammentazione, limitando però la mobilità. Vulnerabile ai proiettili perforanti. + + + Esoscheletro + + + Una tuta corazzata militare progettata per le operazioni d'assalto. Fornisce una protezione straordinaria contro i proiettili blindati e i danni da frammentazione, senza ridurre la mobilità. Vulnerabile ai proiettili perforanti. + + + Tuta corazzata militare + + + Un normale impermeabile nero. Non ha funzioni particolari, a parte quelle di scaldare il corpo dell'utilizzatore di notte e di proteggerlo dai morsi dei cani ciechi. Pur non essendo particolarmente comodo, spesso viene utilizzato dai banditi della Zona per le sue capacità di mimetizzazione al buio o, semplicemente, per il suo aspetto "da duri". + + + Impermeabile in pelle + + + Tuta SEVA + + + Tuta corazzata Berill-5M + + + Casco Sphere M12 + + + Un casco in alluminio/titanio con un rivestimento in tessuto fornito di tasche per parti di armatura aggiuntive e una maschera corazzata. Di norma viene usato insieme all'armatura Spetsnaz PSZ. Molto popolare nella Zona grazie al suo respiratore e al dispositivo di prima generazione per la visione notturna, garantisce il livello di protezione massimo per la zona della testa. Include degli scomparti elettronici. + + + Casco d'acciaio + + + Un casco d'acciaio terribilmente obsoleto e privo di qualsiasi miglioria. Non fornisce alcuna protezione contro le radiazioni o le anomalie, ma può deviare i proiettili. Non è mai stato particolarmente popolare nella Zona, se non durante i brevi conflitti armati tra le fazioni. + + + Casco schermato + + + Un casco leggero con un visore ermetico per proteggersi dalle anomalie. A giudicare dal suo aspetto, è stato prodotto dagli stessi istituti di ricerca responsabili della tuta SEVA. Il suo utilizzo ideale è in combinazione con le tute militari per le operazioni in aree altamente anomale. + + + Maschera antigas + + + Una normale maschera antigas in plastica e gomma, utilizzata per filtrare l'aria da sostanze tossiche e particelle radioattive. Utilizzata comunemente da reclute e veterani di tutte le fazioni, per via della sua funzionalità universale. Non fornisce alcuna protezione fisica. + + + Casco tattico + + + Modello di produzione occidentale del tutto privo di camuffamento, arrivato inspiegabilmente nella Zona. I sistemi di comunicazione satellitare e i diversi scanner di questo casco, non installati nella versione della Zona, forniscono al leader della squadra un notevole vantaggio strategico sulle forze nemiche. È composto da varie piastre in kevlar e alcuni elementi corazzati che proteggono i componenti elettronici. Include un respiratore e un dispositivo di prima generazione per la visione notturna. + + + Tuta "Alba" + + + Tuta "Guardia della Freedom" + + + Una tuta da stalker leggera realizzata dagli artigiani della Freedom. Il tessuto è trattato con una soluzione speciale chiamata "Orizzonte", sviluppata dalla fazione con esperimenti più o meno casuali per aumentare la resistenza alle anomalie. Come la tuta "Alba", la tuta "Vento della Freedom" include un'armatura integrata e un contenitore di manufatti. + + + Tuta "Vento della Freedom" + + + Questa versione moderna della tuta della Duty è particolarmente adatta alle reclute, abituate alle protezioni leggere. A differenza del modello PSZ, questa tuta fornisce una buona protezione contro le anomalie. Non può essere modificata con un contenitore di manufatti, ma è possibile potenziarla con un sistema di supporto da battaglia. + + + Questa tuta corazzata militare è stata progettata per gli assalti nelle aree anomale. Comprende una tuta corazzata pesante PSZ-12p, una tuta di compensazione e un rivestimento protettivo contro le anomalie. Fornisce una protezione eccellente contro i proiettili e i danni da frammentazione, senza ridurre eccessivamente la mobilità. Non include un contenitore di manufatti. + + + Questa tuta, progettata per condurre ricerche nella Zona, combina un modulo respiratorio a ciclo chiuso e un rivestimento isolante esterno, in modo da offrire una protezione eccellente. Per via della sua scarsa resistenza agli impatti fisici, la tuta non offre una difesa efficace contro i proiettili e i danni da frammentazione. Include un contenitore di manufatti. + + + Questa tuta, prodotta da uno degli istituti di ricerca di Kiev, è un'ottima alternativa alle altre tute da stalker "fatte in casa". L'armatura può resistere solo ai colpi di pistola, ma il sistema di protezione contro anomalie e radiazioni non ha rivali. Può essere migliorata e vanta due contenitori di manufatti. Ciò la rende una delle tute più ricercate dagli stalker. + + + Questo comprende la tuta militare serie PS5 con uno sputter al berillio modificato per essere usato nella Zona. Pensata per le operazioni d'assalto nelle aree altamente radioattive, è inefficace in aree particolarmente anomale. La tuta viene fornita agli stalker dai militari in cambio di bottini. Non include un contenitore di manufatti. + + + Una tuta da stalker "fai-da-te" che unisce un doppio strato di tessuto gommato rivestito in plexiglas a un'armatura integrata. Pur non essendo in grado di proteggere l'utilizzatore nemmeno dai colpi di pistola, la tuta è molto popolare grazie al suo prezzo contenuto e alle potenziali modifiche apportabili. Include un contenitore di manufatti. + + + Questa tuta da stalker dispone di un'armatura migliorata, creata dagli artigiani della Freedom: è un buon compromesso tra combattimento e protezione dalle anomalie. L'armatura integrata resiste ai colpi di pistola e comprende un rivestimento corazzato e piastre in kevlar. La tuta usa un composto denominato "Sovrano" contro le anomalie. Include un contenitore di manufatti. + + + Il modello originario della tuta Duty è la Spetsnaz PSZ-9, modificata per la Zona. La tuta resiste ai colpi di pistola, ma questo livello di protezione si paga con scarsa manovrabilità e protezione dalle anomalie pressoché inesistente. La tuta non può essere modificata con un contenitore per manufatti, ma può essere potenziata con un sistema di supporto da battaglia. + + + Un tempo usata dalle squadre d'assalto Clear Sky, dopo l'eliminazione della fazione questa armatura serve a ricordare che persino un'eccellente tuta non può garantire la tua sicurezza in questa parte di mondo. L'armatura è in grado di resistere ai colpi di pistola e fornire una buona protezione dalle anomalie. Dotata di un contenitore di manufatti. + + + Un campione sperimentale di esoscheletro militare, mai entrato in produzione in serie per via dei costi e di alcuni difetti. Nonostante questo, è ancora richiesto per la sua capacità di reggere tutta l'attrezzatura trasportata, e perciò ne vengono realizzati dei piccoli quantitativi negli stabilimenti all'esterno dei confini ucraini. Dotato di un contenitore per manufatti. + + + Tuta SEVA + + diff --git a/gamedata/configs/text/ita/st_items_quest.xml b/gamedata/configs/text/ita/st_items_quest.xml new file mode 100644 index 0000000..18212bd --- /dev/null +++ b/gamedata/configs/text/ita/st_items_quest.xml @@ -0,0 +1,369 @@ + + + + Documenti con annotazioni + + + I documenti affermano che in base a un ordine del Dipartimento 1, in seguito alla chiusura del blocco di trasporto, il sottopasso di Pripyat 1 è stato riempito di anidride carbonica mista a un certo additivo chimico. Di conseguenza, a tutto il personale è stato ordinato di indossare tute per la protezione chimica con moduli respiratori a ciclo chiuso. + + + Lettera sulla consegna dell'oggetto 62 + + + A causa delle attività anomale, il trasporto dell'oggetto 62 in campo aperto non è possibile. Usare il sottopasso di Pripyat 1 per la consegna. Il piano per la consegna e la successiva chiusura del sottopasso è stato inoltrato al Dipartimento 1. + + + Cartella con l'ordine + + + I documenti riguardano l'evacuazione del complesso di produzione dallo stabilimento Jupiter ai laboratori sotterranei. La questione deve essere stata discussa nella sezione dei laboratori. + + + Programma delle consegne + + + Programma delle consegne dell'oggetto 62: 14/07 – 20 unità (1 danneggiata); 21/07 – 32 unità (2 danneggiate); 28/07 – 26 unità (1 danneggiata). La nota di consegna riguardante le perdite è stata inviata all'amministrazione dello stabilimento, e in copia all'officina riparazioni. + + + File notebook + + + Durante la riunione è stata presa la seguente decisione: il reparto consegne deve concentrarsi sull'evacuazione del complesso di produzione dell'oggetto 62. + + + Registro del turno + + + ...18:30 – Chiusura ermetica di tutte le sezioni del sottopasso P-1 completata. 19:00 – Chiusura ermetica delle porte del blocco ferroviario completata. È stato necessario saldare le porte. 19:45 – Porte del blocco di trasporto chiuse. L'utilizzo del meccanismo della porta ha richiesto l'attivazione del generatore ausiliario, poiché era già stata tagliata la corrente al sottopasso. 20:00 – L'officina chimica ha avviato la diffusione del gas nel sottopasso. 22:00 – Chiusura del sottopasso completata. Tutti i documenti inviati al Dipartimento 1. + + + Schemi tecnici del sottopasso + + + Schemi tecnici del sottopasso di Pripyat 1. Mostrano che il sottopasso è sotto la città di Pripyat. Il documento presenta varie annotazioni: 1. Chiudere porte blocco di trasporto. 2. Usare gas officina chimica per chiudere sottopasso. + + + Isolante modificato + + + Questo era un isolante, ma ora sembra più un manufatto instabile. Deve essere la fonte delle psico-emissioni intermittenti. + + + Barattolo di colofonia + + + Un barattolo di colofonia usato per le saldature. Piuttosto raro nella Zona, e questo spiega perché i tecnici locali usano spesso il nastro adesivo per riparare le attrezzature. + + + Gruppo di condensatori + + + I condensatori sono dei componenti elettrici di base. Non sono molto rari nella Zona, essendo utilizzati per migliorare i dispositivi più sofisticati, ma in genere questo potenziale non è richiesto. + + + Base di textolite + + + La textolite è uno dei componenti di base dei circuiti stampati. Le sensazioni provate da un tecnico radioamatore che tocca una base di textolite ancora "vergine" sono simili a quelle di uno scrittore davanti a una pagina bianca. + + + Scatola di transistor + + + Semiconduttori che generano, trasformano e amplificano le oscillazioni elettriche. I transistor sono il sogno di ogni tecnico radio della Zona. + + + Rocchetto di filo di rame + + + Il filo di rame è un eccellente conduttore e allo stesso tempo una preziosa fonte di metallo. Ecco perché è molto raro nella Zona. Tutte le scorte di filo di rame sono state fuse e consegnate ai centri di riciclaggio negli anni '90. + + + Scanner per la rilevazione di mutanti + + + Basato su un normale scanner di attività anomale, questo dispositivo include un rilevatore di mutanti a corto raggio e uno strumento per la memorizzazione dei risultati. È equipaggiato con un sistema di disattivazione automatica che entra in azione quando è stata raccolta una certa quantità di dati. + + + Documenti amministrativi + + + Una cartella di documenti che contengono informazioni puramente amministrative. Affermano che tutte le documentazioni tecniche relative all'oggetto 62 sono state trasferite all'officina collaudi in seguito a un ordine del laboratorio centrale. + + + PDA di Black + + + C'è un messaggio particolarmente interessante. Il mittente è un certo Jackal e il testo del messaggio è il seguente: "Il mio uomo all'istituto di ricerca farà in modo che sia tu a guidare la spedizione. Dovrà ingaggiare i tuoi ragazzi per difendere il bunker. Questo dovrebbe facilitarti le cose. Ricorda che il cliente esige che QUALSIASI informazione sull'operazione degli oggetti con designazione X non raggiunga gli scienziati. In caso contrario, non potremo lasciare la Zona. Non deludermi, Black". + + + Scatola nera + + + La scatola nera di Stingray 1 sopravvissuta allo schianto. Dovrebbe contenere dettagli sugli ultimi istanti di volo, anche se in formato criptato. + + + Esplosivi al plastico militari con un timer di 5 secondi. + + + Esplosivi con timer + + + Ruota modificata + + + PDA di Snag + + + Il PDA contiene una mappa con un segno vicino alla sotto-stazione, sicuramente un nascondiglio, e un paio di foto erotiche. Niente di speciale. + + + PDA del bandito + + + L'ultimo messaggio sul PDA è il seguente: "Cattura quel bastardo di Snag e portalo qui da me. Faremo una bella chiacchierata. Non mi interessa sapere dov'è. Trovalo e basta. Se si oppone, dagli una lezione. Sultan". + + + Questo PDA contiene dettagli sui clienti di Morgan, oltre alle coordinate del magazzino segreto della Duty da cui ha preso le armi. In seguito Morgan ha venduto le armi ai mercenari ed è entrato in contatto con un certo Sultan. Per confondere le acque, Morgan ha poi deciso di comunicare la posizione del magazzino alla Freedom. Vulture, il suo complice, avrebbe dovuto portare queste informazioni. Il PDA accenna anche a un sensore che solo Morgan può disattivare e che allerterà la Duty se il nascondiglio viene aperto. Queste informazioni dovrebbero interessare molto sia alla Duty sia alla Freedom. + + + PDA di Morgan + + + C'è un messaggio sul retro di un vecchio documento: "Prendo le mie cose, Ghost. Grazie per il fucile d'assalto, ne avrò bisogno. In cambio ti lascio un po' di medicinali del dottore. Sono riuscito a liberarmi del mercenario che avevo alle costole, quindi non mi serviranno... spero. Ora devo incontrarmi con Fang. È riuscito a montare il decodificatore. Troviamoci al solito posto, se puoi. Strelok". + + + Messaggio per Ghost + + + C'è un messaggio su un foglio a quadretti: "Strelok, ho lasciato l'altro decodificatore nel nostro nascondiglio di Pripyat, per sicurezza. Io e Ghost andremo all'Agroprom, quindi lasceremo qui le munizioni extra. Prendile pure. Buona caccia! Fang". + + + Messaggio per Strelok + + + C'è un messaggio sul retro di un vecchio documento: "Fang, non posso più aspettarti. Ho un'intera squadra alle calcagna. Raggiungerò il sarcofago da solo. Lascerò qui la mia arma fortunata, tanto è rimasta senza colpi. Se non dovessi tornare, dalla a Ghost. Ha bisogno di mille cure, ma è un'arma che non tradisce mai. Stammi bene. Strelok". + + + Messaggio per Fang + + + Un modulo di memoria dell'UAV. Novikov è riuscito a sbloccarlo, consentendoti di accedere alle informazioni raccolte dall'UAV. Tra le altre cose, contiene le coordinate di tre radiofari. + + + Modulo di memoria (sbloccato) + + + Un modulo di memoria dell'UAV. Nonostante lo schianto, il modulo è ancora pienamente operativo. Peccato sia bloccato. + + + Modulo di memoria (bloccato) + + + Un vecchio foglio con i turni di guardia e i numeri 1421 nella parte inferiore. Sopra i vecchi testi è stato scritto il seguente messaggio con un pennarello: "Tenente V.I. Sokolov. Dopo lo schianto dell'elicottero ho raggiunto il punto di evacuazione B205. Dopo due giorni di inutile attesa, ritengo che restare in questa posizione sia rischioso. Perciò ho deciso di lasciare B205 per procedere verso il laboratorio mobile della spedizione scientifica. Il laboratorio è situato a nordest del punto di evacuazione". + + + Messaggio di Sokolov + + + Una pianta che faceva parte di un boschetto, parzialmente trasformato da un'attività anomala. Il boschetto ha reagito aggressivamente all'intrusione, ma per ora la pianta non sembra pericolosa. + + + Pianta anomala + + + L'ultimo messaggio ricevuto sul PDA è da parte di Morgan. In pratica è un contratto per l'assassinio di uno stalker chiamato Degtyarev. Il messaggio ha diverse fotografie allegate. Le istruzioni finali di Morgan chiedono di eliminare il messaggio, una volta letto. + + + PDA del mercenario + + + Questo strumento include un rilevatore di manufatti, una batteria e una potente trasmittente. Può analizzare le anomalie per determinare il numero e il tipo di manufatti che compaiono. Tutte queste informazioni vengono poi inviate automaticamente al bunker degli scienziati. + + + Scanner di anomalie + + + I dati più recenti sul PDA riguardano una registrazione audio:\n"...Da qualsiasi parte andiamo, finiamo sempre nello stesso punto. Non riesco ad abituarmi a questa nebbia... È strano che Chepurny sia scomparso senza lasciare tracce: che abbia trovato un'uscita?\n...Sesto giorno... Abbiamo finito l'acqua. Il colonnello è impazzito: ha ucciso due persone a sangue freddo e poi si è suicidato... così sono rimasto solo, in questa dannata anomalia... se non avessi fatto in modo che i contatti con il quartier generale si interrompessero, avrebbero potuto salvarci... e la Duty non sarebbe mai esistita. Chissà come sarebbero andate le cose... Ah, al diavolo. Quel Capitano Tachenko è morto molto tempo fa... e il Generale Tachenko della Duty lo seguirà presto... è giusto che sia così... credo...".\nLa registrazione termina con un colpo d'arma da fuoco. + + + PDA del Generale Tachenko + + + Un manuale che spiega come usare l'oggetto 62. Le istruzioni sottolineano che non sono necessarie regolazioni per la traiettoria del proiettile o il vento, non essendo rilevanti all'interno del raggio d'azione dell'arma.\nQuesti documenti non devono finire in altre mani, poiché sarebbero di grande interesse per gli analisti dell'USS. + + + Manuale per l'oggetto 62 + + + Il notebook contiene la descrizione dettagliata di un esperimento sull'effetto di uno psico-campo su un oggetto in un altro emisfero. Un gruppo di scienziati ai Caraibi ha ricevuto il segnale, anche se distorto. Il segnale risultava alterato in modo anomalo, come se fosse stato corretto da qualcuno. Una possibile spiegazione potrebbe essere che la teoria della noosfera è corretta, e che le modifiche siano state effettuate dalla noosfera stessa.\nQuesti documenti non devono finire in altre mani, poiché sarebbero di grande interesse per gli analisti dell'USS. + + + Notebook con la descrizione di un esperimento + + + I documenti descrivono le caratteristiche tecniche dell'antenna e la loro variazione rispetto ai valori previsti. Un'annotazione sul retro indica che questi documenti sono stati preparati nel laboratorio X10.\nQuesti documenti non devono finire in altre mani, poiché sarebbero di grande interesse per gli analisti dell'USS. + + + Emettitore "Arcobaleno" – Dati tecnici principali + + + I documenti riguardano una delle scoperte collaterali della ricerca, cioè la capacità delle creature viventi di generare psico-emissioni. Nell'ambito della ricerca condotta nel laboratorio X16 è stato creato un emettitore biologico, essenzialmente un cervello gigante.\nQuesti documenti non devono finire in altre mani, poiché sarebbero di grande interesse per gli analisti dell'USS. + + + Documenti sulla ricerca + + + Il rapporto descrive lo studio dei campioni biologici inviati dal laboratorio X18, sottoposti agli effetti di campi informazionali di varia intensità. Il rapporto espone meticolosamente la mutazione degli esseri viventi in seguito all'esposizione alle emissioni.\nQuesti documenti non devono finire in altre mani, poiché sarebbero di grande interesse per gli analisti dell'USS. + + + Rapporto sullo studio dei campioni + + + Il documento riguarda il trasferimento di una squadra scientifica e di tutti i materiali in un altro laboratorio denominato X7, che verrà usato per effettuare ricerche sull'influenza della noosfera. La squadra scientifica include: N.A. Lebedev, E.F. Kalancha e V.I. Suslov.\nQuesti documenti non devono finire in altre mani, poiché sarebbero di grande interesse per gli analisti dell'USS. + + + Ordine di trasferimento + + + L'ultima annotazione sul PDA è la seguente: "Ho trovato il generatore di emergenza al sesto piano, il piano tecnico. Ci sono volute due ore per rimetterlo in funzione. Io vorrei accenderlo, ma Serbin mi ha ordinato di attendere finché non manderà qualcuno". + + + PDA di Barchuk + + + Una tessera magnetica rossa con la sigla "X8". + + + Tessera X8 rossa + + + Il PDA contiene molte annotazioni prive di senso, ma una sembra interessante: "Il Monolite sta comunicando con il destinatario del messaggio, ordinandogli di raccogliere munizioni extra e conservarle in luoghi ignoti ai miscredenti. Queste località devono essere contrassegnate con il simbolo del Monolite. In caso di necessità, coloro che sentono il Monolite potranno beneficiare della sua saggezza... Ho comunicato la volontà del Monolite ai miei fratelli, dicendo loro dove mettere le munizioni...". + + + PDA di un combattente Monolith + + + Kit di attrezzi giocattolo. Sono inutili per i lavori più complessi, ma considerata la mancanza di attrezzi nella Zona, un tecnico esperto potrebbe inventarsi qualcosa. + + + Attrezzi di base + + + Un kit di attrezzi di qualità. Pare sia stato creato e utilizzato da un tecnico esperto. Gli attrezzi sono piuttosto vecchi, ma ancora in buone condizioni. + + + Attrezzi avanzati + + + Un kit di attrezzi professionali per la calibrazione dei macchinari. La nota sul contenitore indica che il kit è stato fabbricato in Germania. Contiene tutti gli strumenti necessari per qualsiasi lavoro di perfezionamento o calibrazione. + + + Attrezzi di precisione + + + Vecchia tessera magnetica + + + Tessera magnetica di Cardan. Veniva usata per accedere all'officina collaudi dell'oggetto 62. + + + Documenti sull'oggetto 62 + + + Documenti che descrivono il meccanismo operativo e le principali caratteristiche tecniche del dispositivo elettromagnetico.\nAll'interno dei documenti c'è la seguente annotazione: "I documenti vanno restituiti a X8, il laboratorio centrale. Io ho da fare, quindi consegnali tu. Usa la tessera magnetica al centro servizi Yubileiny di Pripyat per scendere al secondo piano interrato. Poi riuscirai a cavartela da solo. Allego la tessera d'accesso.\nN. Lebedev".\nQuesti documenti non devono finire in altre mani, poiché sarebbero di grande interesse per gli analisti dell'USS. + + + Tessera X8 gialla + + + Ordine n°562 + + + Ordine interno n°423 + + + Chiave A + + + Una chiave normale contrassegnata con la lettera "A". + + + Chiave B + + + Una chiave normale contrassegnata con la lettera "B". + + + Una delle registrazioni audio sembra particolarmente bizzarra: "Allora ecco dove sono quei dannati mutanti...! Si sono arrampicati sull'altopiano pensando che Noah non li avrebbe trovati... Evidentemente non sanno che conosco un sentiero che arriva fin là, dalla fattoria a nord... Presto vi farò ballare, maledetti bastardi!". + + + PDA di Noah + + + Il notebook contiene un messaggio contrassegnato come importante tra una marea di spam:\n"Crea un campo vicino all'impianto dei rifiuti e tutti coloro che parteciperanno al lavoro si uniranno a te. Non aspettare Black, perché sarà a Jupiter con i suoi uomini per un'altra missione. L'esercito ha sospeso ogni volo nella Zona, quindi loro non ci daranno fastidio. Non appena gli stalker troveranno un accesso a Pripyat, manderemo una guida e aspetteremo gli uomini del cliente. Così ci mostreranno dove si trova il laboratorio.\nJackal". + + + Notebook mercenari + + + Questo è l'ultimo messaggio in arrivo:\n"Siamo in attesa presso alcune vecchie officine. Ho mandato avanti due ragazzi a perlustrare la strada per te. Aspetteremo finché non arriverà il corriere del cliente. Qui l'aria è molto più fresca.\nTesak". + + + PDA del mercenario Hook + + + PDA del mercenario Ridge + + + Contiene un pericoloso agente chimico. + + + Contenitore di gas perin B3 + + + La scatola è chiusa con un meccanismo piuttosto ingegnoso. A giudicare dal peso e dal rumore che fa se viene scossa, deve contenere qualcosa. + + + Scatola di metallo + + + Nota nel PDA: "Credo proprio che il manufatto si trovi sull'albero. Da qui si capisce benissimo che potrei salirci, dalla collina. Spero solo che là non ci siano mutanti. Peccato che sia dovuto venire qui da solo, dopo il litigio con Cardan e Barge, però quando tornerò con il manufatto dovranno riconoscere che avevo ragione...". + + + PDA di Joker + + + L'ultima annotazione sul PDA fa capire che il suo autore era fuori di sé per la rabbia: "Cardan, quel vecchio ubriacone. Non solo è un bastardo, ma dopo aver bevuto... 'Qui le cose vanno meglio, stiamo tranquilli', dice, e poi parte con una tirata contro me e Joker, dicendo che siamo giovani e non sappiamo un cavolo... Eh... Anche Joker è un bel tipo: si incazza, prende le sue cose e sparisce. Se n'è andato mentre cercavo di calmare Cardan, non so proprio dove sia finito. E io che cosa dovrei fare adesso? Stare qui a bere con quel vecchio scemo? Ah, no, grazie! La sua vodka fa schifo... Eeew...". + + + PDA di Barge + + + Tremor teneva un diario sul suo PDA, e le ultime registrazioni sono le più interessanti: "Registrazione 12. Presto la mia ricerca si concluderà... Gli uomini all'accampamento cominciano a sospettare qualcosa. Grouse e Danila vogliono andare a caccia di succhiasangue... Chissà quando lo capiranno... Devo sistemare i contenitori di sangue per scoprire quali sono stati contaminati, poi nascondere gli altri... [rapidamente:] Arriva qualcuno. [si sente il congegno che viene spento, poi riacceso]. Registrazione 13... forse sarà l'ultima. Non la passerò liscia. Verranno a prendermi, lo so. Ma non mi importa... tanto questa dipendenza dalla emoglobina mi avrebbe ucciso comunque. E preferisco morire per un proiettile che per una malattia..." + + + PDA di Tremor + + + Top secret.\nOrdine n°562 del comandante del quartier generale responsabile della sicurezza dell'oggetto n°1, R.Yu. Didenko.\nL'unità di protezione chimica n°423 deve trasferirsi dal settore B103 al settore A19. Motivo: test sul campo della soluzione chimica "Perin B3" in condizioni di battaglia.\nIl Colonnello P.P. Slavin, comandante dell'unità, è responsabile dell'esecuzione dei test.\nIl Tenente Colonnello K.S. Valov, vice comandante dell'unità, è responsabile del trasporto e della sicurezza. + + + Top secret.\nOrdine del Colonnello P.P. Slavin.\nIn base al presente ordine, i membri dell'unità di protezione chimica n°423 devono essere al corrente delle seguenti informazioni:\n1. Le chiavi dei contenitori con la soluzione chimica "Perin B3" sono in custodia al Colonnello P.P. Slavin (chiave A) e al Tenente Colonnello K.S. Vlasov (chiave B).\n2. Ordine di marcia a partire dalla testa del convoglio: veicolo del vice comandante dell'unità, veicolo di scorta n°8, trasporto blindato n°1, veicolo da trasporto n°1, trasporto blindato n°3, veicolo di scorta n°2, veicolo del comandante dell'unità (P.P. Slavin).\nCopie dell'ordine da consegnare al Tenente Colonnello K.S. Vlasov e al Tenente R.B. Nazarenku. + + + Una tessera magnetica denominata X8\nLa tessera non deve cadere nelle mani di nessun altro, perché può essere usata per accedere al laboratorio segreto. + + + PDA del messaggero di Sultan + + + L'ultimo messaggio inviato da questo PDA è un messaggio audio: "Sultan, ho sistemato per bene quel perdente! Questo gli insegnerà a non immischiarsi con noi!" + + + Quella che un tempo era la ruota di una stazione di drenaggio, ora è una sorta di strano manufatto. Oltre alla sua luminescenza e all'assenza di radioattività, non sembra avere particolari proprietà. + + + C'è il seguente messaggio:\n"Sono riuscito a organizzare qualcosa per le armi. Quell'avido bastardo ci venderà la scorta della sua fazione. Non sarà costoso, ma dovremo andare fino a Jupiter.\nVulture". + + diff --git a/gamedata/configs/text/ita/st_items_weapons.xml b/gamedata/configs/text/ita/st_items_weapons.xml new file mode 100644 index 0000000..1b3a34b --- /dev/null +++ b/gamedata/configs/text/ita/st_items_weapons.xml @@ -0,0 +1,567 @@ + + + + Munizioni .45 ACP + + + Avendo una massa molto pesante e una carica propellente relativamente piccola, i proiettili blindati calibro .45 sono stati ampiamente utilizzati per più di un secolo. I colpi sono relativamente lenti ma altamente precisi, oltre che dotati di una notevole capacità d'arresto. + + + .45 ACP + + + Munizioni .45 ACP hydro-shock + + + Questi insoliti proiettili calibro .45 ACP hanno una punta soffice blindata con una cavità di espansione e un nucleo d'acciaio. Essendo un incrocio tra i proiettili a punta soffice blindati e i proiettili perforanti, presentano gli stessi pro e contro di questi due tipi di munizioni. + + + .45 hydro-shock + + + Munizioni a pallettoni 12x70 + + + Munizioni standard calibro 12 riempite con pallettoni da 6 mm. Micidiali a distanza ravvicinata. Da usare solo con le armi ad anima liscia. + + + Munizioni 12x70 + + + Munizioni slug 12x76 + + + Munizioni slug pesanti calibro 12 usate di norma per la caccia grossa, ma efficaci anche in altre circostanze. Invece di perforare il bersaglio, i proiettili pesanti esercitano un'azione di sfondamento. + + + Slug 12x76 + + + Munizioni 5.45x39 mm AP + + + Munizioni perforanti militari calibro 5.45x39 7H22 per i fucili automatici dei paesi del Patto di Varsavia. Il proiettile contiene un elemento perforante blindato in lega pesante. Efficaci contro le armature. + + + 5.45x39 AP + + + Munizioni 5.45x39 mm + + + Munizioni perforanti militari potenziate calibro 5.45x39 7H10 per i fucili automatici dei paesi del Patto di Varsavia. Garantiscono una maggiore precisione rispetto ai colpi calibro 7.62, per via del rinculo ridotto e ai 100 metri di gittata in più. + + + 5.45x39 + + + Munizioni 5.56x45 mm AP + + + Munizioni perforanti calibro 5.56x45 in dotazione standard alla NATO, con la denominazione SS190/M855, ampiamente utilizzate dai servizi speciali e dalle agenzie di sicurezza occidentali. Efficaci contro le armature. + + + 5.56x45 mm AP + + + Munizioni 5.56x45 mm + + + Munizioni standard della NATO calibro 5.56x45 progettate specificamente per il fuoco automatico di precisione. Presentano ottime caratteristiche balistiche, avendo origine da un tipo di munizioni da caccia. Meglio note con la denominazione SS109. + + + 5.56x45 + + + Munizioni 7.62x54 mm 7H1 + + + Munizioni di precisione calibro 7.62 con un elemento penetrante in acciaio progettate specificamente per gli SVD. A differenza delle munizioni da mitragliatore, le 7H1 sono efficaci nei colpi multipli e presentano eccellenti capacità di penetrazione. + + + 7.62x54 7H1 + + + Munizioni 7.62x54 mm PP + + + Munizioni da mitragliatore calibro 7.62, poco costose. La forma le rende inadatte al fucile da cecchino, quindi sono utilizzabili solo con il mitragliatore RP-74. + + + 7.62x54 PP + + + Munizioni 9x18 mm + + + Munizioni blindate con elemento penetrante in acciaio e un nucleo di piombo rivestito. Forniscono una buona capacità d'arresto, ma risultano inefficaci contro le armature. + + + 9x18 + + + Munizioni 9x18 mm +P+ + + + Questo tipo di proiettile dispone di una maggiore capacità d'arresto. La designazione europea "+P+" significa "munizioni in sovrappressione" con un aumento del 30% della velocità di volata. Inefficaci contro le armature. + + + 9x18 +P+ + + + Munizioni 9x19 mm FMJ + + + Munizioni blindate di base calibro 9x19 con buone caratteristiche e semplici da produrre. Sono diventate popolari dopo che le convenzioni internazionali hanno vietato l'uso di munizioni a espansione in battaglia. Inefficaci contro le armature. + + + 9x19 FMJ + + + Munizioni 9x19 mm JHP + + + Questi proiettili calibro 9x19 a punta cava con cavità di espansione garantiscono un'elevata capacità d'arresto a fronte di una ridotta probabilità di rimbalzo. Sono usati dalle forze di polizia e dai singoli individui a scopo di autodifesa. Inefficaci contro le armature per via del potenziale penetrante ridotto. + + + 9x19 JHP + + + Munizioni 9x39 mm SP-6 + + + Le munizioni subsoniche SP-6 per fucili d'assalto presentano una punta soffice blindata e un nucleo d'acciaio rinforzato che sporge dall'involucro. Richiede un silenziatore per l'uso furtivo. Utilizzate dai servizi speciali dei paesi del Patto di Varsavia. Efficaci contro le armature. + + + 9x39 SP-6 + + + Munizioni 9x39 mm SP-5 + + + Le munizioni subsoniche SP-5 per fucili da cecchino dispongono di un involucro bimetallico e di un nucleo in acciaio con una cavità sul retro riempita di piombo. Richiedono un silenziatore per l'uso furtivo. Utilizzate dai servizi speciali dei paesi del Patto di Varsavia. + + + 9x39 mm SP-5 + + + Batterie + + + Granata M203 + + + Granata da 40 mm per il lanciagranate sottocanna M203 con un raggio di esplosione di 5 metri. Utilizzabile anche con il lanciagranate integrato dell'FT-200M. + + + M203 + + + Testata OG-7V + + + Testata a frammentazione anti-uomo per il lanciagranate RPG-7u. La funzione principale della testata, in combinazione con il lanciagranate RPG-7u, è l'eliminazione dei nemici al riparo e fuori dalla portata delle granate a mano. + + + OG-7V + + + Granata VOG-25 + + + Granata a frammentazione standard per il lanciagranate sottocanna GP-25 Koster con un raggio di esplosione di 5 metri. La granata VOG-25 può essere utilizzata anche con il Tunder S14 e il lanciagranate a revolver Bulldog 6. + + + VOG-25 + + + Mirino PSO-1m + + + Un mirino ottico fisso 5.0x di fabbricazione sovietica con tacche di mira. Si collega all'arma tramite un incastro a coda di rondine, uno standard nei paesi del Patto di Varsavia. + + + Mirino PSS-2x + + + Un mirino ottico fisso 5.0x con un visore termico integrato per identificare le fonti di calore emesse dal corpo umano. Progettato per le forze speciali. Si collega all'arma tramite un incastro a coda di rondine. + + + Mirino NSPU-3 + + + Un mirino notturno fisso 5.0x a immagini intensificate che consente di combattere in assenza di luce. Si collega all'arma tramite un incastro a coda di rondine. + + + Mirino SUSAT 4x + + + Un mirino regolabile a lungo raggio con ingrandimento 1.6-4x che può usare la regolazione automatica per aumentare l'efficacia di fuoco. Si collega all'arma tramite l'incastro Picatinny, standard per la NATO. + + + Un mirino fisso 4.0x prodotto principalmente nei paesi occidentali. Si collega all'arma tramite l'incastro Picatinny, standard per la NATO. Utilizzato spesso nelle armi leggere per eseguire colpi di precisione a medio-lungo raggio. + + + Mirino SUSAT x1.6 "Tramonto" + + + Un mirino ottico SUSAT 1.6x a contrasto elevato per combattere in condizioni di luminosità ridotta. Si collega all'arma tramite l'incastro Picatinny, standard per la NATO. + + + Mirino SUSAT x4 "Notte" + + + Un mirino fisso 4.0x con un visore notturno per gli scontri a fuoco a lungo raggio in assenza di luce. Si collega all'arma tramite l'incastro Picatinny, standard per la NATO. + + + Mirino SUSAT 1.6x + + + Un mirino ottico SUSAT 1.6x per gli scontri a fuoco a corto-medio raggio. Si collega all'arma tramite l'incastro Picatinny, standard per la NATO. + + + Mirino PSU-1 + + + Un mirino ottico 2.7x per i combattimenti urbani a medio raggio. Si collega all'arma tramite un incastro a coda di rondine. + + + Silenziatore + + + Un efficace silenziatore che può essere modificato in azione in base alle attuali necessità. Il corpo del silenziatore intorno alla canna contiene una bobina di fine maglia d'ottone, mentre la parte anteriore comprende una serie di diaframmi metallici con una cavità al centro. Il kit completo include adattatori e sigillanti per gran parte delle armi. Di norma, il silenziatore viene usato per colpire il nemico senza attirare troppa attenzione. + + + Granata F1 + + + Una granata a mano difensiva, con frammenti in grado di perforare le armature di livello intermedio e un raggio di esplosione di 7 metri. Gli stalker si procurano le granate F1 dal personale militare, che si giustifica dicendo di averle usate per combattere i mutanti. + + + GP-25 Koster + + + Un lanciagranate scanalato sottocanna, a carica frontale e a colpo singolo per i fucili d'assalto costruiti nei paesi del Patto di Varsavia. Il meccanismo di fuoco è semi-automatico, con una sicura manuale e un sistema automatico per evitare i colpi accidentali, se il lanciagranate non è installato correttamente. Utilizza le granate VOG-25. + + + M203 + + + Un lanciagranate M203 modificato che è stato accorciato di circa 8 centimetri, collegato all'arma tramite un incastro Picatinny. Grazie a questa modifica, oggi viene ampiamente utilizzato in ogni parte del mondo. + + + Granata RGD-5 + + + Una granata a mano offensiva con un raggio di esplosione di soli 5 metri. Avendo un costo relativamente ridotto, spesso gli stalker la utilizzano per "stanare" i mutanti. + + + Granata fumogena + + + Una granata a mano fumogena, utile per creare coperture di fumo. Dopo il lancio, impiega circa 10 secondi per creare la coltre di fumo. + + + Coltello + + + AC-96/2 + + + AKM-74/2 + + + AKM-74/2U + + + Martha + + + Doppietta a canne mozze + + + Una doppietta da caccia a canne mozze con due canne affiancate, più leggera e compatta della doppietta standard. È una delle armi più utilizzate dai banditi, essendo facile da nascondere ed estremamente efficace a distanza ravvicinata. + + + Kora-919 + + + Aquila delle steppe + + + Una pistola artigianale basata sul modello dell'Aquilone nero. I vari componenti sono perfettamente calibrati per garantire una precisione eccezionale per un'arma di questo tipo. + + + Aquilone nero + + + FT-200M + + + Fora-12 + + + GP37 + + + Fucile Gauss + + + Tunder S14 + + + Un fucile d'assalto con lanciagranate, simile alla serie AKM, progettato specificamente per le unità a intervento rapido. Le differenze principali sono le munizioni calibro 9x39, la configurazione "bullpup" e le opzioni di modifica. È molto ricercato dagli stalker militari per via della sua efficacia contro i nemici con armatura mentre si è nascosti dietro coperture negli scenari urbani, ma anche per la sua eccezionale capacità d'arresto. + + + Tempesta + + + Versione sperimentale russa di un sistema integrato fucile d'assalto/lanciagranate, basata sul Tunder S14 standard, progettata per le unità operanti nella Zona. Da notare la maggiore capienza del caricatore. + + + HPSS-1m + + + Modello modificato di una pistola della prima metà del 20° secolo, affidabile, potente e preciso come l'originale. Le pistole di questa serie, giustamente considerate tra le migliori del 20° secolo, sono molto richieste nella Zona. + + + IL 86 + + + TRs 301 + + + Viper 5 + + + Questo mitragliatore è apprezzato a livello mondiale per la facilità d'uso, l'affidabilità e la precisione. Negli ultimi decenni il Viper 5 è stato utilizzato dalle forze armate speciali e dalle unità di polizia di tutto il mondo. Per questo motivo ha letteralmente invaso i mercati neri, arrivando in seguito anche nella Zona. + + + Frasier + + + Un mitragliatore sperimentale basato sull'eccellente modello Viper 5. Progettato per essere un'arma da battaglia a corto raggio di nuova generazione, si distingue per il grosso calibro, la cadenza di fuoco e la precisione. + + + PB-1s + + + RP-74 di Zulu + + + Quest'arma apparteneva a Zulu. Presenta diverse caratteristiche speciali, come il caricatore più capiente e un meccanismo di estrazione particolarmente affidabile. Le varie modifiche hanno aumentato il peso dell'arma, ma questo non era un problema per il precedente proprietario. + + + PMm + + + PMm onoraria + + + Un'antica PMm ricevuta da Degtyarev come ricompensa per la "perfetta esecuzione di ordini di stato estremamente rischiosi, e per il valore e il coraggio dimostrati in servizio". + + + Eliminatore + + + Bulldog-6 + + + Questo lanciagranate a revolver utilizza sei canne scanalate a carica frontale, identiche a quelle montate sotto la canna dei fucili. Anche il tamburo è a carica frontale. Il Bulldog-6 viene usato per neutralizzare rapidamente le postazioni nemiche e, in campo aperto, per attaccare bersagli fissi ben difesi o combattere mostri particolarmente forti. + + + RP-74 + + + Questo mitragliatore a nastro è una versione portatile con un complesso sistema di ricarica a due fasi. Nonostante il peso e la scarsa precisione, può vantare molti estimatori nella Zona. Viene usato prevalentemente per respingere folti gruppi di nemici durante i conflitti tra fazioni e per ripulire le tane dei mutanti. + + + RPG-7u + + + SIP-t M200 + + + Alpina + + + Un modello unico della pistola SIP-t M200, parte di un'edizione limitata progettata per un'unità speciale non meglio identificata. Questo modello offre un caricatore più capiente, una canna d'acciaio ad alta durabilità e un corpo polimerico ultradurevole. + + + SGI-5k + + + Un fucile d'assalto relativamente recente che si è conquistato molti ammiratori in tutto il mondo, malgrado il suo aspetto un po' anonimo. Le armi di questa serie sono tra le migliori della loro classe, celebri per l'affidabilità, la precisione e la facilità d'uso. Nonostante sia piuttosto difficile da reperire nella Zona, spesso questo fucile d'assalto viene ordinato dagli stalker più esperti a prezzi molto elevati. + + + SGI-5k di Strelok + + + Un fucile d'assalto SGI-5k di fabbricazione svizzera. Pur essendo tutt'altro che nuovo, è evidente che il precedente proprietario l'ha curato con la massima attenzione. L'arma è stata smontata e rimontata, calibrando ogni singolo componente e aumentando di conseguenza la capacità d'arresto. Nel calcio dell'arma è stata incisa la lettera "S", e si possono notare anche 16 piccole tacche. + + + SPSA-14 + + + SPSA-AUT + + + La doppietta SPSA-AUT semi-automatica viene prodotta solo nelle officine della Duty, ed è l'ideale per combattere gruppi numerosi di mutanti. Il suo meccanismo di ricarica migliorato assicura un'elevata cadenza di fuoco, mentre la capienza del caricatore è stata aumentata a 10 colpi. Utilizza munizioni calibro 12x70. + + + Fuciliere + + + Una doppietta militare progettata specificamente per le unità d'assalto. Possiede una modalità di fuoco automatico come la doppietta SPSA-AUT, il suo diretto predecessore, ma fornisce una migliore compensazione del rinculo grazie a un sofisticato sistema anti-urto. + + + SVDm-2 + + + Un fucile da cecchino militare sul mercato da oltre 50 anni e noto per l'eccezionale affidabilità e facilità d'uso. In genere l'SVDm-2 viene impiegato dai militari per aumentare la gittata effettiva delle unità in campo. Gli stalker, tuttavia, apprezzano quest'arma soprattutto per le sue capacità perforanti, che consentono di penetrare la pelle dei mutanti e le armature militari. + + + Lince + + + Una versione artigianale del fucile da cecchino SVDm-2. Apparentemente identico all'originale, fornisce la stessa combinazione ideale tra precisione e capacità d'arresto. + + + SVUmk-2 + + + SVU2-A + + + Un fucile da cecchino accorciato e dalla notevole cadenza di fuoco, evoluzione del fucile SVUmk-2. Quest'arma apparteneva a Max, il leggendario guardiano della Freedom. + + + Doppietta da caccia + + + Una normalissima doppietta da caccia che può dimostrarsi più efficace contro i mutanti rispetto a una pistola, grazie ai suoi valori di precisione e capacità d'arresto. Utilizzata soprattutto dai principianti ai margini della Zona. + + + Arma non identificata + + + Un'arma sconosciuta con un meccanismo di fuoco non identificato. Potrebbe essere rotta, visto che la pressione del grilletto non produce alcun risultato. + + + UDP Compact + + + I valori impeccabili di affidabilità e durabilità, oltre all'eccellente precisione, sono le caratteristiche principali di quest'arma. Presenta tuttavia alcuni difetti minori, come le dimensioni considerevoli, il baricentro relativamente alto e l'otturatore enorme, difetti che rendono l'arma difficile da nascondere ma che non riescono a oscurare i suoi tanti pregi. L'UDP Compact è molto popolare soprattutto tra i veterani della Zona. + + + Marcia + + + Una pistola compatta a grosso calibro con l'otturatore a movimento breve e un meccanismo di scatto leggero. Apparteneva a un mercenario chiamato Wolfhound. Sembra una pistola UDP Compact modificata. + + + SA "Valanga" + + + Vintar BC + + + Un fucile da cecchino speciale progettato per garantire la massima furtività durante le operazioni in cui la posizione delle forze in campo non deve essere rivelata al nemico. Il Vintar BC garantisce un'elevata capacità d'arresto e di perforazione, ed è equipaggiato con un mirino ottico integrato. Apprezzato da moltissimi stalker, nonostante il caricatore poco capiente. + + + Marea + + + Un'arma progettata per le unità militari sulla base del fucile da cecchino silenzioso. La sua capacità d'arresto è superiore a quella del Vintar BC, il diretto predecessore, a scapito però della cadenza di fuoco. Consente di eliminare le forze nemiche, un'unità alla volta, senza rivelare la posizione dell'utilizzatore. + + + Walker P9m + + + Chaser 13 + + + Una doppietta occidentale ad anima liscia, estremamente popolare in tutto il mondo per l'eccellente affidabilità e l'ottima velocità di ricarica. La sua funzionalità è particolarmente apprezzata dai cacciatori della Zona. Tutti i suoi componenti sono trattati con un composto anti-corrosione. + + + Predatore + + + Una doppietta a pompa personalizzata che apparteneva a Trapper, un cacciatore che aveva solo bisogno di un'arma in grado di uccidere i predatori con un singolo colpo. Secondo lui, infatti, anche gli animali considerati più feroci e pericolosi hanno il diritto di morire senza soffrire. + + + Batterie fatte in casa. + + + Mirino SUSAT tipo Mera + + + Un fucile d'assalto moderno sviluppato per sostituire l'AKM 74/2. La differenza principale è la modalità di fuoco rapido a 2 colpi, che consente di sparare due proiettili verso la stessa zona del bersaglio a una distanza di 100 metri. Ciò aumenta nettamente la probabilità di colpire il bersaglio rispetto alla modalità a colpo singolo, incrementando di conseguenza la letalità dell'arma, la capacità d'arresto e il potenziale di perforamento. + + + Quest'arma, progettata nel 1974, introdusse le munizioni a piccolo calibro e impulso ridotto nei paesi del Patto di Varsavia. Successore del fucile più famoso al mondo, l'AKM-74/2, possiede un freno di bocca più grande, che riduce un rinculo già relativamente gestibile. Ciò aumenta precisione e facilità dei colpi multipli, specialmente con raffiche o colpi singoli rapidi. Questo fucile è semplice e affidabile come il suo predecessore. + + + Pur simile ai mitragliatori per peso e dimensioni, nonché per l'uso tattico, quest'arma è un fucile d'assalto per via del suo meccanismo, uguale a quello dell'AKM-74/2. Viene apprezzato per la mobilità nei combattimenti ravvicinati e la capacità penetrante. I suoi difetti, invece, sono il raggio d'effetto ridotto (anche se la gittata è relativamente lunga), la tendenza a surriscaldarsi durante le raffiche e l'elevata probabilità di rimbalzo. + + + Una versione migliorata dell'arma automatica che ha superato con successo i maggiori conflitti armati del 20° secolo ed è entrata con decisione nel nuovo millennio. Centinaia di aziende di tutto il mondo continuano a produrre l'arma originale e le sue varie modifiche. L'unico difetto, vale a dire la scarsa capienza del caricatore, è ampiamente compensato dall'estrema potenza delle munizioni utilizzate. + + + La pistola definitiva: grossa, pesante e incredibilmente letale. È stata progettata come arma speciale per la caccia di prede medio-grandi e per le gare di tiro con bersagli d'acciaio posizionati a più di 50 metri di distanza. La sua scarsa diffusione nella Zona può essere dovuta al prezzo elevato, alle sue dimensioni e al peso eccessivo rispetto alle altre pistole disponibili. È un'arma che non passa certo inosservata. + + + Quest'arma di tipo "bullpup" e dall'aspetto futuristico è in realtà un sistema modulare prodotto in massa. Include un fucile, un sistema di controllo del fuoco computerizzato e un lanciagranate 40 mm. Nonostante il suo aspetto ingombrante, è un'arma molto ergonomica, facile da usare e con ottime caratteristiche tattiche. Nella Zona non ha ancora raggiunto la popolarità che merita per via del prezzo elevato e la scarsa reperibilità. + + + Una pistola di fabbricazione ucraina utilizzata dalle forze di sicurezza. Presenta una maggiore precisione, una migliore ergonomia e un caricatore più capiente rispetto alla PMm. È molto diffusa nella Zona in seguito alla vendita di numerose partite di armi difettose, che presentano gli stessi errori tecnici dei primi modelli sviluppati. Ciononostante, la pistola è apprezzata dagli stalker per via delle sue buone prestazioni in battaglia. + + + Una nuova aggiunta alla famiglia dei fucili d'assalto occidentali. È sensibilmente diverso dai precedenti modelli della serie, fondamentalmente automatici e con un meccanismo di scatto semi-aperto, somigliante da vicino ai fucili d'assalto automatici a recupero di gas di fabbricazione americana con pistoni a corsa breve. Queste modifiche rendono il GP37 un perfetto esempio di arma moderna: leggera, affidabile ed ergonomica. + + + Il numero considerevole di difetti di questo fucile ha richiesto la modernizzazione dell'arma, mentre le serie ritirate dal mercato sono finite sul mercato nero della Zona. I principali vantaggi del fucile sono il mirino integrato 4.0x, l'elevata precisione a colpo singolo e la possibilità di modifica. Durante le raffiche prolungate, la precisione cala sensibilmente e i principali meccanismi interni diventano piuttosto inaffidabili. + + + Un nuovo passo in avanti in questa celebre famiglia di armi americane. Sono state apportate modifiche alla metà superiore della struttura in acciaio che comprende la canna, la camera del gas e il meccanismo di scatto, in modo da ridurre il peso dell'arma e migliorare sia l'ergonomia sia il sistema a gas. È un'arma molto precisa, anche se la sua propensione a sporcarsi non la rende ideale alle condizioni difficili della Zona. + + + Pistola sviluppata nella seconda metà del 20° secolo sulla base del modello PMm per l'uso da parte di forze speciali e unità da ricognizione. La parte anteriore della canna è coperta dal silenziatore, mentre il meccanismo di scatto è troppo corto perché vi sia spazio per la molla di ritorno, che è posizionata nell'impugnatura della pistola. Ormai obsoleta, la PB-1s rimane efficace nelle mani giuste. + + + Questo cimelio sovietico è la pistola più comune nella Zona e una delle migliori armi compatte in assoluto. È piccola, molto affidabile e facile da usare e mantenere. Presenta tuttavia numerosi difetti come la gittata limitata, la scarsa precisione dei colpi e la ridotta capacità d'arresto. Inoltre, rispetto ai suoi equivalenti moderni, è piuttosto pesante e possiede un caricatore poco capiente. + + + Una doppietta da battaglia a revolver con anima liscia, progettata per fornire alle unità militari un'eccellente potenza di fuoco unita a un'elevata cadenza di tiro e una grande capienza del caricatore. Il suo ingombro e il peso considerevole, tuttavia, oltre al lungo tempo di ricarica, sono difetti da tenere in considerazione. Non molto diffusa nella Zona, viene usata principalmente per neutralizzare i mutanti negli spazi chiusi. + + + Lanciagranate degli anni '60, giunto nella Zona dai depositi di armi. L'arma è un sistema di lancio privo di rinculo, a colpo singolo e con un tubo di lancio aperto sul retro. Include un mirino PGO-7 2.7x. Le dimensioni e il peso notevoli costituiscono un difetto, ma nella Zona molti apprezzano il suo potenziale distruttivo, la semplicità della sua struttura e la relativa facilità d'uso. + + + Unico modello ancora prodotto di una pistola conosciuta ovunque, è nota per l'eccellente ergonomia e la precisione. Nonostante il caricatore sia poco capiente, il meccanismo dell'arma è infallibile. Un altro vantaggio è la potenza delle munizioni utilizzate. Secondo alcuni, il SIP-t M200 è il miglior modello di pistola calibro .45 ACP prodotto in massa, e anche gli stalker e i mercenari più esperti sembrano apprezzare le sue caratteristiche. + + + Una doppietta automatica speciale ad anima liscia progettata nella seconda metà del 20° secolo, con un meccanismo di fuoco a pompa semi-automatico. Viene utilizzata come arma multiuso dai corpi di polizia e dalle truppe d'assalto. Pur essendo molto affidabile e versatile, è anche un'arma pesante, complessa e costosa, ma questo non ha impedito la sua diffusione nella Zona grazie alla sua efficacia contro i mutanti. + + + Una versione aggiornata del fucile da cecchino SVDm-2 con un design "bullpup" più compatto, progettata per le forze di intervento rapido. È un fucile da cecchino che consente di sparare più rapidamente e notevolmente più leggero, mentre la precisione in modalità colpo singolo a medio-lungo raggio è simile a quella del suo predecessore. Grazie a queste qualità, si è conquistato l'ammirazione di moltissimi stalker. + + + Versione modificata del fucile da cecchino Vintar BC, questo fucile d'assalto è un'arma per le forze speciali. La sua funzione primaria è l'eliminazione di nemici che utilizzano equipaggiamento protettivo avanzato senza rivelare la posizione di chi sta sparando. Grazie alle sue munizioni pesanti subsoniche calibro 9x39 e al silenziatore integrato, il rumore e la fiammata emessa dalla bocca dell'arma sono stati ridotti al minimo. + + + Un'arma tecnologica conosciuta come oggetto 62, questo fucile fu sviluppato nei laboratori segreti all'interno della Zona. L'arma, molto precisa, accelera i proiettili ad altissime velocità tramite un sistema di elettromagneti che forniscono un'incredibile potenza di arresto senza pressoché alcun rinculo. L'arma è potenziata dall'uso di frammenti di manufatti incapsulati nelle batterie. + + + Le pistole Martha sono famose per essere relativamente affidabili, anche se ingombranti. Sono in dotazione alle forze armate e di polizia d'oltreoceano e vengono usate anche da eserciti e organizzazioni di sicurezza in tutto il mondo. La pistola Martha è diffusa anche nella criminalità, grazie a potenza e capienza del caricatore. Di solito le Martha della Zona sono molto datate, forse perché provenienti da serie ritirate dal mercato. + + + Un'eccellente pistola occidentale nota per l'affidabilità, la grande capienza del caricatore e l'ottima precisione. Inoltre, è considerata la pistola più ergonomica della sua classe. La Walker P9m è una delle pistole più diffuse nella Zona, ma solo tra i principianti o i professionisti che possono permettersela. + + + Batterie che utilizzano un frammento capsulato del manufatto Lampo come fonte d'alimentazione. Prodotte utilizzando attrezzature a elevata tecnologia. + + + Queste cellule a bassa capacità usano frammenti capsulati del manufatto Lampo come fonte energetica. La loro bassa capacità è dovuta alle condizioni improvvisate in cui sono state realizzate e alla mancanza di attrezzatura specialistica. + + diff --git a/gamedata/configs/text/ita/st_items_weapons_upgrades.xml b/gamedata/configs/text/ita/st_items_weapons_upgrades.xml new file mode 100644 index 0000000..917ffc6 --- /dev/null +++ b/gamedata/configs/text/ita/st_items_weapons_upgrades.xml @@ -0,0 +1,2022 @@ + + + + Stabilità + + + Calibro + + + Rinculo + + + Affidabilità + + + Ottica reflex 1.6x + + + Mirino ottico 4.0x + + + Silenziatore + + + incastro sottocanna + + + Peso + + + La filettatura esterna consente l'installazione di un silenziatore. + + + Filettatura esterna della canna + + + Installazione di un incastro per il collegamento di un mirino ottico. + + + Incastro per ottica + + + Installazione di un incastro per il collegamento di un lanciagranate sottocanna. + + + Incastro per lanciagranate sottocanna + + + Sostituzione del caricatore standard con uno più capiente. + + + Capienza caricatore aumentata + + + Una modifica complessa e integrata delle parti meccaniche e automatiche dell'arma, in modo da cambiare il calibro a scapito dell'affidabilità. + + + Passaggio al calibro 5x45 + + + Una modifica complessa e integrata delle parti meccaniche e automatiche dell'arma, in modo da cambiare il calibro a scapito dell'affidabilità. + + + Passaggio al calibro 5x56 + + + Una modifica complessa e integrata delle parti meccaniche e automatiche dell'arma, in modo da cambiare il calibro a scapito dell'affidabilità. + + + Passaggio al calibro 9x18 + + + Una modifica complessa e integrata delle parti meccaniche e automatiche dell'arma, in modo da cambiare il calibro a scapito dell'affidabilità. + + + Passaggio al calibro 9x19 + + + Capienza del caricatore aumentata senza incrementare la lunghezza dell'arma. + + + Aumento capienza caricatore + + + Un caricatore in policarbonato più leggero ma più capiente, in modo da compensare parzialmente l'inevitabile aumento di peso. + + + Capienza caricatore aumentata + + + Numero di piastre in titanio aumentato per migliorare notevolmente la durabilità dell'armatura. + + + Piastre in alluminio/titanio aggiuntive + + + Piastre rinforzate decisamente più resistenti, pur non essendo molto più durevoli. + + + Piastre in kevlar + + + Una lega di alluminio e titanio consente di ridurre il peso del titanio per l'uso nell'equipaggiamento di difesa personale. + + + Piastre in alluminio e titanio + + + Di norma il titanio è troppo pesante per l'uso nell'equipaggiamento di difesa personale, ma talvolta viene utilizzato negli esoscheletri. + + + Componenti in titanio massiccio + + + La sostituzione del metallo con la fibra di carbonio consente di ridurre il peso dell'armatura senza sacrificare l'affidabilità. + + + Sostituzione componenti metallici dell'armatura con fibra di carbonio + + + Il kevlar è uno dei materiali più comuni usati per costruire le armature. + + + Piastre in kevlar + + + Il policarbonato può resistere ai colpi di pistola ed è leggero come la plastica. + + + Piastre in policarbonato + + + Le piastre in ceramica non durano a lungo ma sono più affidabili di quelle in kevlar, essendo in grado di assorbire meglio la forza d'urto dei proiettili. + + + Installazione di piastre in ceramica + + + Semplici piastre in acciaio cucite in un impermeabile. + + + Piastre in acciaio + + + Uno strato esterno in ceramica può deviare i proiettili perforanti che colpiscono di taglio e disintegrare quelli che effettuano un impatto diretto. + + + Strato esterno in ceramica per armatura + + + Uno strato corazzato interno aggiuntivo, in caso di danneggiamento dello strato esterno. + + + Strato corazzato protettivo di riserva + + + Armatura con uno strato interno che distribuisce la forza d'urto in un'area più ampia. + + + Aggiunta di un elemento di compensazione + + + Il telaio può resistere ai colpi di pistola, se l'armatura principale viene danneggiata. + + + Telaio corazzato aggiuntivo + + + Strati corazzati più sottili che aumentano la resistenza all'usura dell'armatura. + + + Protezione segmentata + + + L'aggiunta di piastre non migliora la protezione, ma garantisce una maggiore durabilità. + + + Strato di riserva aggiuntivo + + + Piastre mobili che proteggono le articolazioni dalle ferite d'arma da fuoco. + + + Installazione di piastre protettive mobili per le articolazioni + + + Un telaio in alluminio più leggero per le piastre che sostituisce il telaio in acciaio. + + + Telaio in alluminio più leggero + + + Inserti ispessiti che riducono la forza d'urto del proiettile percepita sotto l'armatura. + + + Inserti in pelle ispessiti + + + Strato in ceramica aggiuntivo con silicone ammortizzante. + + + Piastre in ceramica rinforzate + + + Utilizzo di materiali più leggeri per ridurre il peso dell'armatura. + + + Installazione di componenti in plastica e sintetici più leggeri + + + Mentre le piastre in titanio massiccio sono troppo pesanti per un soldato di fanteria, i potenti servomotori di un esoscheletro sono perfettamente in grado di gestire il peso. + + + Armatura in titanio corazzata + + + SBK-RKhZ.m.II – Una tuta da battaglia speciale per la protezione radiochimica, seconda versione. + + + Tuta protettiva ermetica anti-radiazioni SBK-RKhZ.m.II + + + Questo potenziamento laborioso e lungo da eseguire non è molto popolare, ma in passato ha salvato molte vite. + + + Maglia corazzata + + + Comprende delle piastre in ceramica sovrapposte per fare in modo che l'utilizzatore non venga colpito nello stesso punto. + + + Rivestimento in ceramica deflettente "Scaglia" + + + Una volta trattata con il composto "Sovrano", la tuta diventa praticamente invulnerabile ai danni meccanici e alle lacerazioni del tessuto. + + + Trattamento con composto rinforzante "Sovrano" + + + La ceramica attutisce notevolmente l'impatto dei proiettili, che vengono deviati e ridotti in frammenti. + + + Applicazione di uno strato di ceramica sulle piastre + + + La matrice rinforzata che usa il berillio al posto dell'alluminio è uno dei sistemi più affidabili per proteggere i soldati di fanteria. + + + La ceramica attutisce notevolmente l'impatto dei proiettili, che vengono deviati e ridotti in frammenti. + + + Strato di ceramica sulle piastre + + + La fibra di carbonio è uno dei materiali più durevoli e resistenti all'usura, tanto che viene usata anche in campo aeronautico. + + + Rivestimento combinato multi-strato in ceramica e polimeri. + + + Rivestimento schermante combinato + + + Uno degli ultimi sviluppi nel campo della protezione personale: la crescita "artigianale" di zaffiri sintetici. + + + La regolazione dei componenti consente all'arma di durare più a lungo senza incepparsi. + + + Regolazione componenti + + + L'inserimento di componenti in plastica è uno dei potenziamenti più utili e richiesti. + + + Componenti poli-materiali + + + Un meccanismo di fuoco a impulso ridotto che riduce il rinculo rispetto alle versioni precedenti. + + + Meccanismo di fuoco a impulso ridotto + + + L'efficace posizionamento del proiettile al momento dello sparo consente di mantenere la traiettoria di tiro e di colpire il bersaglio con maggiore precisione. + + + Installazione di un'unità di posizionamento del proiettile + + + Un sistema di bloccaggio a rulli che riduce il rinculo e migliora i colpi multipli. + + + Otturatore semi-libero con sistema a rulli + + + L'installazione di un cilindro a gas aggiuntivo riduce il tempo di caricamento dell'arma, in modo da aumentare sensibilmente la cadenza di fuoco. + + + Installazione di un cilindro a gas aggiuntivo + + + Un motore a gas utilizzato nelle doppiette semi-automatiche per alzare automaticamente il cane. + + + Installazione motore a gas + + + Uno sputter protettivo che rende impossibili i colpi accidentali dovuti a un guasto meccanico. + + + Sputter protettivo + + + Quando il proiettile viene sparato, un componente apre un varco nella canna e torna in posizione chiusa tramite un movimento scarrellante dell'impugnatura anteriore lungo l'asse dell'arma. + + + Sistema di chiusura della canna + + + Un sistema automatico inerziale che consente di trasformare le normali doppiette a pompa in armi semi-automatiche. + + + Installazione di un sistema automatico inerziale + + + Un modulo di massa battente unificato è un'ottima soluzione tecnologica per ridurre il rinculo. + + + Modulo di massa battente unificato + + + La bacchetta automatica migliora la precisione dell'arma. + + + Installazione di una bacchetta automatica + + + Un contrappeso attivo si sposta dal blocco dell'otturatore, compensando parzialmente il rinculo. + + + Aggiunta di un contrappeso attivo + + + L'installazione di rulli aggiuntivi riduce il rinculo. + + + Installazione di un sistema di compensazione a rulli + + + La sostituzione del meccanismo di scatto dell'arma con un otturatore più efficace migliora la cadenza di fuoco. + + + Meccanismo di fuoco a otturatore aperto + + + Quando il proiettile viene sparato, il contrappeso del blocco dell'otturatore si muove nella direzione opposta dell'otturatore, in modo da aumentare la facilità d'uso del mitragliatore. + + + Installazione di un contrappeso autoregolante + + + Un contrappeso viene inserito come componente aggiuntivo nel castello per ridurre il rinculo applicando una forza contraria. + + + Aggiunta di un contrappeso mobile + + + L'inserimento di componenti polimerici è uno dei potenziamenti più utili e richiesti. + + + Componenti polimerici resistenti all'impatto per elementi automatici + + + Viene installato un meccanismo speciale che protegge l'arma dalla sporcizia. + + + Regolatore automatico a gas e a due posizioni + + + Un componente speciale chiude ermeticamente la canna per aumentare la pressione quando il proiettile viene sparato. + + + Installazione di un meccanismo di chiusura ermetica della canna + + + La sincronizzazione viene garantita da una ruota dentata, in modo da raddrizzare la traiettoria di tiro. + + + Sincronizzazione movimento bacchetta + + + Un componente installato nella parte posteriore del castello riduce la velocità dell'otturatore per migliorare l'efficacia del fuoco di precisione. + + + Meccanismo ritardante inerziale + + + Un componente speciale installato nel meccanismo di scatto per rendere più fluido il movimento dell'otturatore e ridurre il rinculo. + + + Aggiunta di un dispositivo di rallentamento della massa battente + + + Un miglioramento integrato che in genere viene applicato nei fucili da cecchino per compensare il notevole peso dell'arma. + + + Ammortizzatore integrato del rinculo + + + L'installazione di un meccanismo con componenti mobili aumenta la velocità di ricarica. + + + Ricarica automatica + + + Miglioramento dei componenti automatici dell'arma che richiede la sostituzione di molte parti. Aumenta la precisione. + + + Sistema bilanciato anti-impatto + + + Un componente sintetico posizionato davanti alla zona di movimento dell'otturatore, che viene notevolmente ridotta per migliorare la precisione dell'arma. + + + Aggiunta di un dispositivo bloccante + + + Un ponte regola la posizione della canna e, se questa si muove, vengono aperti dei fori di compensazione aggiuntivi. + + + Installazione di un componente di "compensazione intelligente" + + + Una miglioria che rende più fluido il meccanismo del grilletto, molto importante per i cecchini. + + + Installazione di un meccanismo di regolazione del grilletto + + + Questo componente consente di avvertire meglio il momento in cui il colpo viene sparato, migliorando la precisione del tiro. + + + Installazione di un grilletto più sensibile + + + Un sistema di bloccaggio a rulli, inserito spesso nelle armi occidentali, che riduce il rinculo e migliora i colpi multipli. + + + Otturatore semi-libero con sistema a rulli + + + Un meccanismo speciale assorbe parte della forza d'urto generata dal colpo, aumentando la facilità d'uso e la comodità dell'arma. + + + Sistema di ammortizzazione del colpo + + + Dato che i fucili da cecchino sono più difficili da mantenere rispetto agli altri tipi di armi, possono essere migliorati con dispositivi di regolazione a gas a tre posizioni. + + + Installazione di un dispositivo di regolazione automatica a gas a tre posizioni + + + Lo sputter previene la dispersione dell'energia cinetica, aumentando l'impulso del proiettile. + + + Perfezionamento delle parti automatiche con uno sputter + + + L'installazione di una bacchetta più lunga consente di usare i fucili da cecchino in modalità automatica. + + + Meccanismo di fuoco con bacchetta lunga + + + Un dispositivo frenante applicato al meccanismo della massa bloccante, per migliorare la precisione. + + + Installazione di un dispositivo frenante + + + La sostituzione della canna normale con una canna più lunga migliora la precisione e la stabilità della traiettoria di tiro. + + + Canna più lunga + + + L'assenza di grosse camere a gas e di incastri sull'impugnatura anteriore contribuisce a migliorare la precisione. + + + Installazione di una canna "libera" + + + Questa modifica riduce i danni causati dalle modifiche "estreme" che aumentano la cadenza di fuoco. + + + Installazione di una canna con alette di raffreddamento + + + Un componente obsoleto viene sostituito con un modello più moderno per ridurre il rinculo. + + + Freno di bocca con compensazione ottimizzata + + + L'installazione di una canna con scanalature aggiuntive migliora la velocità del proiettile e la precisione dell'arma, aumentando tuttavia il rinculo. + + + Canna con scanalature aggiuntive + + + Questa canna aumenta il raggio d'azione nei combattimenti ravvicinati, quindi non è adatta al fuoco di precisione. Migliora la cadenza di fuoco grazie alla semplificazione della parte scanalata della canna. + + + Installazione di una canna con la sezione scanalata semplificata + + + La scanalatura poligonale serve ad aumentare la precisione. + + + Installazione di una canna con la sezione scanalata poligonale + + + Riduce il surriscaldamento della canna aumentando al tempo stesso la cadenza di fuoco. + + + Scanalatura sinusoidale della canna + + + Una canna speciale per le armi con un'ottima stabilità della traiettoria di tiro. Migliora la precisione. + + + Canna scanalata per fucili da cecchino + + + I materiali ad alta durabilità riducono l'usura della canna dell'arma. + + + Canna in lega ad alta durabilità + + + Un trattamento della superficie interna della canna per proteggerla dai danni meccanici. + + + Trattamento della canna + + + Un addensamento sintetico della cavità della canna che migliora sensibilmente i colpi multipli. + + + Addensante sintetico per la canna + + + La sostituzione della canna normale con una canna più lunga migliora la stabilità della traiettoria. + + + Sezioni della canna più lunghe + + + L'introduzione di canali di ventilazione del gas nella canna previene l'accumulo di sporcizia e trasmette parzialmente il rinculo alla canna stessa. + + + Canali di ventilazione longitudinali + + + La sostituzione della canna normale con una canna più lunga migliora la stabilità della traiettoria. + + + Sezione della canna più lunga + + + Questo sputter previene il surriscaldamento dell'arma, elimina i difetti di fabbricazione e aumenta notevolmente la durabilità della canna. + + + Applicazione di uno sputter protettivo nella parte interna della canna + + + Il sistema di bilanciamento della canna include diversi pistoni mobili che rendono l'arma più stabile. + + + Sistema di bilanciamento della canna + + + La parte scanalata della canna impedisce di sparare pallettoni, ma garantisce una precisione eccezionale. + + + Canne scanalate + + + L'addensamento con poli-materiali consente di incrementare la pressione nella canna, aumentando la velocità del proiettile. + + + Addensante dinamico per la canna + + + La foratura cilindrica della canna migliora la cadenza di fuoco senza ridurre la precisione. + + + Foratura cilindrica della canna + + + Quando il proiettile viene sparato, un contrappeso attivo si sposta verso la parte anteriore della canna, compensando parzialmente il rinculo. + + + Aggiunta di un contrappeso attivo all'involucro della canna + + + La sostituzione della canna normale con una canna più lunga migliora la precisione e la stabilità della traiettoria, ma riduce la cadenza di fuoco. + + + Sezione della canna più lunga + + + La foratura della canna riduce il rinculo facendo fuoriuscire il gas attraverso delle cavità speciali. + + + Sezione della canna forata + + + Una canna accorciata migliora la cadenza di fuoco dell'arma senza sacrificare la precisione e la stabilità della traiettoria. + + + Sezione della canna accorciata + + + Il rivestimento in cromo aumenta la durabilità dell'arma. + + + Rivestimento in cromo della parte interna della canna + + + I separatori assorbono parte del rinculo. + + + Aggiunta di separatori in gomma + + + La parte scanalata semplificata è utile nei combattimenti ravvicinati, dove la cadenza di fuoco è più importante della precisione. + + + Installazione di una canna con la sezione scanalata semplificata + + + L'installazione di una canna con scanalature aggiuntive migliora la velocità del proiettile e la precisione dell'arma, aumentando tuttavia il rinculo. + + + Canna con scanalature aggiuntive + + + L'alleggerimento della canna consente di ridurre sensibilmente il rinculo. + + + Trasferimento del compensatore/riduttore di fiammata dalla canna al telaio + + + Riduce il calore prodotto dalla canna aumentando al tempo stesso la cadenza di fuoco, senza sacrificare la stabilità della traiettoria. + + + Scanalatura sinusoidale della canna + + + La scanalatura poligonale serve ad aumentare la precisione dei fucili da cecchino. + + + Installazione di una canna con la sezione scanalata poligonale + + + Il potenziatore pneumatico consente di convertire parte del rinculo aumentando la pressione nella canna e accelerando la velocità di volata. + + + Installazione di un potenziatore pneumatico + + + I dispositivi di movimento aggiuntivi aumentano la capacità di carico. + + + Servomotori aggiuntivi + + + Un'invenzione dei tecnici della Freedom, che sono stati i primi a sostituire il metallo con la fibra di carbonio per ridurre il peso degli esoscheletri. + + + Sostituzione dei componenti metallici con fibra di carbonio + + + La blindatura evita che i componenti vitali dell'esoscheletro vengano danneggiati dai colpi di precisione nemici. + + + Blindatura dispositivi di guida + + + Questo sistema di movimento facilitato utilizza giunture e ammortizzatori rinforzati, consentendo di sfruttare il peso dell'esoscheletro per ottimizzare le funzioni di guida. + + + Sistema di movimento facilitato Shagohod + + + L'installazione dei potenziamenti idraulici è una modifica che distingue gli esoscheletri di terza generazione da quelli di quarta. Consente di eseguire movimenti scattanti con l'esoscheletro. + + + Aggiunta di potenziatori idraulici nei dispositivi di movimento + + + L'inserto in tessuto riduce l'entità del danno subito in caso di impatto contro la piastra. + + + Strato di tessuto ammortizzante + + + Più efficaci degli equivalenti in gomma, gli addensanti in silicone assorbono l'impatto riducendo i danni subiti. + + + Addensanti in silicone ammortizzanti + + + Il tessuto, le chiusure e gli addensanti vengono sostituiti con materiali sintetici per ridurre il peso dell'armatura. + + + Materiali polimerici sintetici e più leggeri + + + Lo strato in gomma riduce l'entità del danno subito in caso di impatto contro la piastra. + + + Strato in gomma ammortizzante + + + Lo strato inferiore è utile in caso di lacerazione del tessuto principale. + + + Uno strato in policarbonato, silicone e fibra di carbonio utile in caso di penetrazione dell'armatura principale. + + + Inserti polimerici protettivi + + + La tuta ermetica "Espansione" della Freedom serve a individuare i manufatti nelle aree anomale. + + + Tuta protettiva anti-anomalie "Espansione" + + + Strato ermetico in materiali sintetici, utile in caso di danneggiamento dello strato esterno. + + + Strato sintetico + + + Varie modifiche ergonomiche che usano componenti in gomma, per conservare la mobilità anche indossando le armature più pesanti. + + + Tuta in gomma per aumentare la mobilità + + + La constantana è un ottimo isolante elettrico e ha un punto di fusione molto elevato. + + + Inserti in constantana per isolamento termico + + + Il piombo è un'ottima difesa contro le radiazioni, essendo in grado di assorbirne tutte e tre le tipologie. + + + Aggiunta di piombo nella tuta + + + Protezione di base contro la pioggia e le sostanze corrosive che entrano in contatto con la pelle. + + + Tuta in tessuto + + + Tessuto trattato con una sostanza ignifuga, molto apprezzato dagli stalker che cercano manufatti di fuoco. + + + Tessuto trattato con sostanza ignifuga + + + Gli inserti in magnesio offrono una buona protezione dai picchi di calore. + + + Inserti in magnesio + + + Anche un semplice strato interno in plastica può proteggere l'indossatore dai pericoli chimici ed elettrici. + + + Strato interno ermetico in plastica + + + Il tessuto, le chiusure e gli addensanti vengono sostituiti con materiali sintetici per ridurre il peso dell'armatura. + + + Sostituzione del tessuto con materiali sintetici + + + Il plexiglas assorbe solo due tipi di radiazioni, ma è molto più leggero del piombo. + + + Strato interno in plexiglas anti-radiazioni + + + Una buona protezione dai pericoli chimici ed elettrici. + + + Strato interno in plastica, ermetico ed elastico + + + Un sottile strato in constantana per garantire un ottimo isolamento elettrico. + + + Strato interno in constantana per isolamento elettrico + + + La lana di vetro viene utilizzata nelle tute indossate dalle squadre di intervento nei luoghi colpiti da disastri naturali. + + + Protezione termica in lana di vetro + + + Il tessuto impregnato previene la contaminazione chimica. + + + Tessuto della tuta impregnato + + + La gomma è il materiale di base per proteggersi dalle brevi esposizioni alle radiazioni. + + + Tessuto della tuta in gomma + + + Utilizzato dagli stalker per aumentare la durabilità. + + + Telaio protettivo schermante ad alta durabilità + + + Il nichel è un materiale sufficientemente ignifugo per essere utilizzato negli inserti delle armature. + + + Tuta ignifuga con inserti in nichel + + + Questa lega di nichel e magnesio viene usata nelle armature per prevenire le scosse elettriche. + + + Tuta isolante con inserti in manganina + + + Tuta ermetica con uno strato anti-corrosione e blindatura in kevlar. + + + Tuta blindata integrata "Seconda pelle" + + + Una tuta creata usando i polimeri innovativi precedentemente impiegati dall'istituto di ricerca di Kiev per sviluppare la tuta "Ecologista", con le cavità riempite di bismuto. + + + Tuta polimerica "Ecologista" con inserti in bismuto + + + La maglia in piombo crea una protezione impenetrabile contro le radiazioni e le contaminazioni chimiche, senza sacrificare la mobilità. + + + Tuta in plexiglas "Salvavita" con maglia piombata flessibile + + + Una tuta artigianale sviluppata dopo il disastro di Chernobyl. Utilizzata negli esoscheletri per prevenire i guasti elettronici. + + + Tuta "Evacuatore" con inserti in piombo + + + Installazione di un mirino d'assalto per i combattimenti ravvicinati. + + + Ottica reflex 1.6x + + + Installazione di un mirino ottico per i combattimenti a medio-lungo raggio. + + + Mirino ottico 4.0x + + + Installazione di un mirino ottico per i combattimenti a lungo raggio. + + + Mirino ottico 5.0x + + + Installazione di un mirino ottico per i combattimenti a lungo raggio. + + + Mirino ottico 6.0x + + + Una modifica effettuata nelle armi d'assalto con ottica reflex migliorando semplicemente il livello di contrasto nella scala del giallo. Essenziale in condizioni di luce crepuscolare o all'interno di edifici poco illuminati. + + + Livello di contrasto dell'ottica migliorato + + + Il visore termico consente di rilevare e identificare le fonti di calore. + + + Acquisizione ottica automatica del bersaglio + + + I dispositivi di visione notturna hanno salvato la vita a molti cecchini. + + + Installazione dispositivo visione notturna + + + Questa modifica consente di regolare facilmente l'ottica in base alla distanza di tiro. + + + Ottica regolabile con indicatore di distanza + + + Un calcio pneumatico che riduce il rinculo durante le raffiche. + + + Calcio pneumatico + + + Il poggiaspalla mobile riduce notevolmente l'impatto del rinculo sul corpo. + + + Installazione di un poggiaspalla ammortizzante + + + Un calcio più moderno sviluppato in seguito a studi approfonditi sull'anatomia umana. + + + Calcio ergonomico + + + Quando il proiettile viene sparato, parte dei gas di scarico vengono spostati dalla canna alla cavità dietro l'otturatore, in modo da rendere più fluido il suo arresto mentre torna in posizione. + + + Installazione di un tampone per i gas nel blocco dell'otturatore + + + L'allungamento del telaio dell'otturatore nel calcio migliora la stabilità della traiettoria, aumentando però il rinculo. + + + Allungamento del telaio dell'otturatore nel calcio + + + L'installazione di un componente mobile nel calcio genera un contro-effetto quando il colpo viene sparato. + + + Contrappeso mobile + + + Un supporto più ampio aumenta la precisione. + + + Supporto più ampio + + + Il tampone ammortizzante a molla riduce parzialmente il fastidioso rinculo prodotto dai mitragliatori portatili. + + + Tampone ammortizzante a molla integrato + + + L'inserimento di un tampone per l'otturatore nel calcio riduce e assorbe gran parte del rinculo. + + + Tampone a gas aggiuntivo per l'otturatore + + + Una parte ammortizzante in gomma viene spesso inserita nei calci di produzione industriale dei fucili da cecchino più grandi. + + + Componente ammortizzante per il calcio + + + Il calcio regolabile con cuscinetto integrato è utile per sparare anche nelle posizioni meno confortevoli. + + + Calcio regolabile con cuscinetto + + + Un componente installato nel calcio delle armi a grosso calibro con un potente rinculo. + + + Ammortizzatore idraulico per calcio + + + I filtri attivi possono resistere anche alle sostanze chimiche corrosive. + + + Filtri attivi + + + È stato dimostrato che la fascia chiusa fornisce una protezione parziale contro le psico-emissioni dirette. + + + Fascia psico-protettiva con griglie d'acciaio sovrapposte + + + Una maschera utilizzata in presenza di aria contaminata o temperature critiche che non consentono di respirare normalmente. + + + Applicazione di un rivestimento schermante + + + Applicazione di un rivestimento schermante + + + Un filtro con un rivestimento rinforzato anti-corrosione e uno strato aggiuntivo precauzionale per la rimozione dei veleni. + + + Filtro per operazioni in aree contaminate + + + Una maschera in plexiglas che protegge parzialmente dalle radiazioni. + + + Rivestimento in plexiglas + + + Una maschera in plexiglas che protegge parzialmente dalle radiazioni. + + + Maschera respiratoria in plexiglas + + + Un respiratore in grado di filtrare qualsiasi tipo di veleno. + + + Maschera respiratoria impregnata + + + Questa matrice in berillio e alluminio fornisce un'eccellente protezione senza aumentare troppo il peso del casco. + + + Piastre in berillio e alluminio + + + Una matrice in berillio e titanio che assicura una protezione più efficace senza aumentare troppo il peso. + + + Piastre in berillio e titanio + + + Filtri migliorati che mantengono il livello di ossigeno anche nelle aree più contaminate. + + + Installazione di filtri migliorati per operazioni scientifiche + + + Una sofisticata psico-protezione che pare sia stata inventata da uno scienziato di nome Sakharov. + + + Installazione della fascia "Psico-difensore" + + + Un telaio in lega protettiva che previene i danni termici ed elettrici. + + + Protezione facciale in constantana "Uccello di fuoco" + + + Blindatura aggiuntiva che aumenta la durabilità del casco. + + + Blindatura casco aggiuntiva + + + Un filtro con un rivestimento purificatore aggiuntivo e un sistema per la rimozione dei veleni. + + + Respiratore rinforzato per condizioni estreme + + + Installazione di un dispositivo di visione notturna per le operazioni notturne o in condizioni di scarsa illuminazione. + + + Dispositivo di prima generazione per la visione notturna + + + Un sistema che attiva la respirazione a ciclo chiuso in caso di grave contaminazione dell'aria a causa di particelle radioattive o chimiche. + + + Sistema di prevenzione per minacce radioattive e chimiche + + + Maschera di respirazione e purificazione + + + Installazione di un dispositivo per la visione notturna più avanzato che consente di operare anche in totale assenza di luce. + + + Dispositivo di seconda generazione per la visione notturna + + + Il visore termico consente di rilevare e identificare le fonti di calore. + + + Sistema di acquisizione automatica del bersaglio + + + Un dispositivo scientifico a onde sviluppato per le operazioni in aree anomale con psico-emissioni. + + + Psico-stimolatore "Oracolo" + + + Installazione di un dispositivo per la visione notturna più avanzato che consente di operare anche in totale assenza di luce. + + + Dispositivo di terza generazione per la visione notturna + + + Le particelle d'aria ionizzate si muovono tra gli elettrodi del sistema in senso inverso rispetto agli elettroni, creando un vento ionico. + + + Sistema di raffreddamento a vento ionico + + + Uno scanner a infrarossi che consente di rilevare gli umani nelle vicinanze. + + + Scanner a infrarossi + + + L'SPB – VPZ.m.IV è la quarta versione di un sistema psico-protettivo di sicurezza psicologica. + + + Sistema da battaglia SPB – VPZ.m.IV + + + La molla rinforzata serve ad aumentare la velocità del proiettile. + + + Molla di ritorno rinforzata + + + L'applicazione di addensanti sulle parti mobili del meccanismo riduce la deviazione della canna dalla traiettoria di tiro durante il fuoco. + + + Meccanismo di ritorno ammortizzato + + + L'installazione di una molla aggiuntiva a spirale inversa riduce il rinculo senza sacrificare la stabilità della traiettoria di tiro. + + + Molla di ritorno aggiuntiva + + + Lo sputter protettivo aumenta l'affidabilità e, soprattutto, assicura l'ermeticità, in modo da prevenire la dissipazione di energia. + + + Sputter protettivo per meccanismo di ritorno + + + Le bacchette in titanio possono sopportare cadenze di fuoco più intense rispetto a quelle normali. + + + Bacchette meccanismo di ritorno in titanio + + + Un elemento sintetico installato sulle bacchette le fa muovere nel modo più efficace, aumentando la precisione. + + + Aggiunta di un elemento di bilanciamento + + + L'ispessimento dell'involucro consente di aumentare la pressione nella canna e la velocità del proiettile. + + + Addensante involucro meccanismo di ritorno + + + Un ponte che viene aperto dai gas e chiuso dal meccanismo di ritorno, in modo da usare parte dell'energia del gas per azionare lo stesso meccanismo di ritorno. + + + Installazione di un ponte di distribuzione + + + Sostituzione del meccanismo di ritorno con una versione più potente con due bacchette di guida e molle di ritorno. Aumenta la cadenza di fuoco dell'arma. + + + Conversione al sistema a due bacchette + + + I canali di uscita speciali per il gas vicino al tamburo dell'arma consentono di ridurre il rinculo. + + + Utilizzo dell'energia del gas + + + Le camere diagonali aggiunte al tamburo accelerano la rotazione del meccanismo che usa l'energia del gas. + + + Aggiunta di camere diagonali al tamburo + + + Questa modifica standard europea consente di ridurre il peso senza rinunciare all'affidabilità. + + + Calcio polimerico anti-impatto + + + Un castello altamente durevole che consente l'uso frequente dei fucili d'assalto in battaglia. + + + Castello in lega ad alta durabilità + + + Un semplice aumento di peso nella parte anteriore del castello per ridurre il rinculo. + + + Aggiunta di un contrappeso al castello + + + L'installazione di questi involucri aiuta a ridurre il surriscaldamento prodotto quando la cadenza di tiro dell'arma è particolarmente elevata. + + + Involucri raffreddanti aggiuntivi + + + Una maniglia più ergonomica consente di impugnare meglio l'arma quando si spara in movimento. + + + Castello ergonomico + + + Una modifica utilizzata esclusivamente per le canne con castello "bullpup", per semplificare la manutenzione dell'arma. + + + Castello modulare + + + Questo sputter previene il surriscaldamento dell'arma, elimina i difetti di fabbricazione e aumenta notevolmente la durabilità della canna. + + + Sputter dentellato con solco liscio + + + Un componente mobile leggero viene installato sulla maniglia inclinata per stabilizzare l'arma e compensare il rinculo. + + + Maniglia inclinata + + + La cavità all'interno della maniglia consente di ridurre il peso dell'arma. + + + Maniglia inclinata + + + Versione più leggera del calcio standard. + + + Calcio più leggero + + + Un materiale polimerico più leggero che consente di ridurre il peso dell'arma. + + + Calcio polimerico anti-impatto + + + L'aggiunta di un contrappeso all'arma aiuta a ridurre il rinculo. + + + Aggiunta di un contrappeso + + + Una maniglia più moderna e confortevole che aumenta l'ergonomia dell'arma. + + + Maniglia ergonomica + + + Una maniglia ammortizzante che riduce il rinculo. + + + Maniglia ammortizzante + + + Un calcio più moderno e confortevole che aumenta l'ergonomia dell'arma. + + + Calcio ergonomico + + + Un rivestimento speciale che protegge l'arma dalle intemperie. + + + Rivestimento anti-corrosione + + + Un assorbitore in mercurio posizionato nel calcio dell'arma che elimina parzialmente il rinculo. + + + Assorbitore in mercurio + + + Un contrappeso mobile che si sposta dall'otturatore quando il proiettile viene sparato e assorbe parte del rinculo. + + + Aggiunta di un contrappeso di impulso + + + La sostituzione dei materiali serve a ridurre il danno subito dalla canna dovuto al surriscaldamento, aumentando di conseguenza la cadenza di fuoco. + + + Leghe a resistenza termica e alta durabilità + + + Una modifica importante che protegge l'arma dagli effetti della temperatura dell'aria durante l'uso. + + + Aggiunta di involucri di regolazione termica + + + L'alettatura è una miglioria tecnica che richiede la massima precisione per evitare la formazione di punti di surriscaldamento sulla canna. + + + Alettatura esterna della canna + + + La sostituzione della canna con una versione più moderna consente di aumentare notevolmente la precisione. + + + Modifica della geometria della canna + + + Un telaio costoso che aumenta enormemente la durabilità dell'arma. + + + Telaio in titanio + + + Questo telaio è più affidabile di quello composito. + + + Telaio in acciaio massiccio + + + Una sostituzione tecnica del telaio della pistola con una versione più leggera che non riduce l'affidabilità dell'arma. + + + Telaio polimerico per pistola + + + Una maniglia più moderna e confortevole che aumenta l'ergonomia dell'arma. + + + Maniglia ergonomica + + + Una maniglia ammortizzante che riduce il rinculo. + + + Maniglia ammortizzante + + + Flap addensanti che proteggono l'arma dalla sporcizia e dagli impatti. + + + Addensanti protettivi per il corpo dell'arma + + + Una modifica nella sezione posteriore per aumentare l'ergonomia della maniglia. + + + Maniglia con sezione posteriore dritta + + + La possibilità di regolare la lunghezza della maniglia aumenta l'ergonomia dell'arma. + + + Maniglia regolabile + + + Questa modifica è possibile solo se nella maniglia è stata installata una molla di ritorno. + + + Installazione di un componente ammortizzante per la molla di ritorno + + + La possibilità di scegliere la piastra più adatta aumenta l'ergonomia dell'arma. + + + Maniglia modificata con piastre sostituibili + + + Questo involucro protegge le armi dall'usura, soprattutto se vengono usate spesso. + + + Installazione di un involucro in acciaio perforato + + + Un componente più sofisticato e più efficace nello smorzamento del rinculo rispetto a quelli utilizzati nelle armi automatiche standard. + + + Freno di bocca con compensazione migliorata + + + Una canna più adatta e moderna per i colpi di precisione a lunghissimo raggio. + + + Installazione di una canna pesante con scanalatura poligonale + + + I fuller longitudinali sulla canna prevengono il surriscaldamento e l'accumulo di sporcizia. + + + Fuller longitudinali sulla canna + + + Silenziatore e soppressore della fiammata integrati, essenziali per il fuoco furtivo. + + + Installazione di un silenziatore integrato + + + In genere la scanalatura sinusoidale della canna viene eseguita nelle armi d'assalto per aumentare la cadenza di fuoco. + + + Scanalatura sinusoidale della canna + + + L'iniettore "Generazione A", sviluppato da un istituto di ricerca di Kiev, inietta regolarmente nel flusso sanguigno piccole dosi di adrenalina. Decisamente pericoloso, ma in casi di emergenza può salvare la vita. + + + Iniettore di adrenalina "Furia" + + + Un sistema per la rimozione di particelle tossiche dal filtro di purificazione. + + + Sistema per rimuovere sostanze tossiche + + + Se viene portato costantemente sulla schiena, questo piccolo emettitore di onde sviluppato dalla Clear Sky può aumentare la velocità di coagulazione del sangue. + + + Emostimolatore "Raggio" + + + Un sistema che carica elettricamente l'esterno della tuta, respingendo le particelle radioattive e chimiche. + + + Sistema anti-particelle integrato + + + Un iniettore "Generazione B" che introduce periodicamente nel flusso sanguigno un agente coagulante quando la pressione cala notevolmente. + + + Iniettore di emoglobina "Idra" + + + Questo sistema previene l'affaticamento mantenendo la temperatura corporea ottimale. + + + Installazione di un sistema di regolazione termica + + + Questo emettitore di onde da portare costantemente sul petto aumenta notevolmente la velocità di guarigione delle ferite, la risposta del sistema immunitario e la soglia del dolore dell'utilizzatore. + + + Biostimolatore "Sole" + + + Un dispositivo scientifico a onde sviluppato per le operazioni in aree anomale con psico-emissioni. + + + Psico-stimolatore "Oracolo" + + + Un iniettore "Generazione C" che introduce un insieme di sostanze non meglio identificate nel flusso sanguigno, accelerando la rigenerazione dei tessuti e lenendo il dolore. + + + Sistema di recupero "Fenice" + + + Un sistema integrato che controlla le condizioni di salute dell'utilizzatore, somministrando vitamine, adrenalina e sostanze anaboliche in caso di necessità. + + + Installazione di un sistema di supporto vitale + + + Questo emettitore di onde va posizionato sul collo. Nonostante il suo funzionamento sia poco chiaro, esercita un potente effetto calmante. + + + Neurostimolatore "Riflesso" + + + Lo scopo del compensatore del cane è quello di assorbire parte del rinculo, migliorando l'efficacia dei colpi multipli durante le raffiche. + + + Compensatore per il cane dell'otturatore + + + Una delle modifiche più facili e popolari che consente di ridurre la resistenza del grilletto. Semplice e utile. + + + Grilletto morbido + + + Una selezione speciale di componenti fatti con i vari materiali presenti nell'arma. Non sono affatto economici, ma aumentano la durabilità dell'arma. + + + Componenti misti per il meccanismo di fuoco + + + Consente di aumentare la cadenza di fuoco, a scapito di precisione e affidabilità. + + + Dispositivo ritardante per il grilletto + + + La rimozione della molla da battaglia consente di sparare il primo colpo mezzo secondo prima. Non è molto, ma può salvare la vita. + + + Rilascio senza molla + + + Uno sputter protettivo che rende impossibili i colpi accidentali dovuti a un guasto del meccanismo di fuoco. + + + Sputter protettivo meccanismo di fuoco + + + La rimozione dell'otturatore consente di migliorare la carica automatica, aumentando di conseguenza la cadenza di fuoco dell'arma. + + + Rimozione dell'otturatore dal meccanismo di fuoco + + + Questo sistema privo di impatto perfora il proiettile con un cane speciale invece di colpirlo, rendendo meno violento l'intero processo di fuoco. + + + Installazione di un meccanismo di fuoco privo di impatto + + + Il grilletto viene armato dal primo colpo, mentre tutti quelli successivi avvengono durante l'innesco automatico del grilletto. + + + Meccanismo di fuoco a doppio grilletto + + + Una delle modifiche più facili e popolari che consente di ridurre la resistenza del grilletto. Semplice e utile. + + + Grilletto morbido + + + L'innesco parziale consente di aumentare la precisione. + + + Meccanismo di fuoco a innesco parziale + + + Consente di applicare la stessa pressione al grilletto dal primo all'ultimo colpo, migliorando la facilità d'uso. + + + Dispositivo di rilascio sicuro + + + Una modifica moderna che previene il distacco della sezione dell'otturatore. + + + Testa dell'otturatore migliorata + + + Un meccanismo di fuoco modulare che semplifica la manutenzione e la sostituzione delle parti, migliorando al tempo stesso la facilità d'uso. + + + Meccanismo di fuoco modulare + + + Il componente di innesco riduce sensibilmente la quantità di pressione da applicare sul grilletto, migliorando la precisione. + + + Installazione di un componente di innesco + + + Un nuovo ritrovato tecnologico che consente di modificare la modalità del meccanismo di fuoco con una semplice modifica. Un altro passo in avanti per migliorare l'ergonomia e la facilità d'uso. + + + Modalità di fuoco doppia + + + Dopo il primo colpo, basta premere il grilletto a metà per sparare i colpi successivi. + + + Meccanismo di fuoco a corsa breve + + + I dispositivi di movimento aggiuntivi aumentano la capacità di carico. + + + Servomotori aggiuntivi + + + Il sistema somministra sostanze anti-tetaniche, anti-infiammatorie e antibiotiche. + + + Sistema integrato "Dottore da campo" + + + Un sistema di ventilazione per la tuta con un filtro precauzionale per le operazioni in aree contaminate. + + + Sistema interno di regolazione termica + + + Un miglioramento dell'ergonomia: gli agganci speciali collegati alla tuta riducono il peso percepito dell'equipaggiamento trasportato. + + + Corpetto per la distribuzione del peso + + + Le bombole d'ossigeno sono necessarie nelle zone con l'aria contaminata da particelle chimiche o radioattive. + + + Installazione di una bombola d'ossigeno + + + Installazione di un contenitore di manufatti aggiuntivo. + + + Contenitore di manufatti aggiuntivo + + + Un sistema di agganci che consente di distribuire il peso su tutto il corpo in modo uniforme. + + + Sistema per la distribuzione del peso + + + Un supporto posteriore riduce la concentrazione del peso sulle spalle, distribuendolo in tutto il corpo e aumentando di conseguenza il carico massimo. + + + Supporto posteriore per la distribuzione del peso + + + Un sistema che somministra sostanze antisettiche, anti-tetaniche e stimolanti. Pur essendo artigianale, non sembra avere effetti negativi sull'organismo. + + + Sistema integrato "Cura" + + + Questo sistema carica una griglia speciale con la stessa carica dell'anomalia, riducendone la pericolosità. + + + Sistema di contromisura elettrostatica "Trigone" + + + Lo strato interno impregnato previene la contaminazione chimica. + + + Strato interno impregnato per protezione chimica + + + Modello sperimentale di un sistema di corsa per maratone, non impiegato fuori dalla Zona per via del costo eccessivo e la dubbia utilità. + + + Sistema integrato "Atleta" + + + Questo sistema rimuove le sostanze tossiche dalle cavità respiratorie. + + + Sistema di rimozione sostanze tossiche "Antidoto" + + + Installazione di un contenitore di manufatti aggiuntivo. + + + Contenitore di manufatti a due compartimenti aggiuntivo + + + Un sistema di supporto da battaglia integrato nell'intera tuta. Usato raramente, soprattutto dagli Spetsnaz. Include dei sistemi per la somministrazione di adrenalina e la coagulazione del sangue. + + + Sistema di supporto da campo "Varyag" + + + Con questo sistema di supporto da battaglia sperimentale, i progettisti hanno eliminato le pericolose iniezioni di adrenalina, preferendo includere delle sostanze curative nel sistema dedicato alla coagulazione del sangue. + + + Sistema di supporto da campo "Skif" + + + Questa modifica piuttosto costosa è in realtà molto comune nelle armi di nuova generazione. + + + Installazione di un otturatore massiccio + + + L'ispessimento dell'otturatore previene la dissipazione di energia e migliora la stabilità della traiettoria di tiro. + + + Ispessimento dell'otturatore con inserti sintetici + + + Nonostante il nome, la parte sostituita è quella dell'otturatore, che deve sopportare l'aumento della cadenza di fuoco. + + + Rilascio automatico rapido + + + Oltre allo sfiatatoio per il gas, viene inserito un blocco che si muove alla stessa velocità, assorbendo parte del rinculo. + + + Installazione di uno sfiatatoio con blocco mobile + + + Un secondo pistone muove il contrappeso per compensare l'impulso generato dal movimento dell'otturatore. + + + Installazione di un pistone a gas aggiuntivo + + + Lo sputter protettivo aumenta l'affidabilità e, soprattutto, assicura l'ermeticità, in modo da prevenire un'eccessiva dissipazione di energia. + + + Sputter protettivo per l'otturatore + + + La funzione dei solchi sul castello è quella di ridurre la frizione e raccogliere le particelle più piccole, prevenendo la contaminazione della sezione dell'otturatore. + + + Aggiunta di solchi longitudinali + + + La riduzione del diametro della camera del gas mediante addensanti sintetici aumenta notevolmente la velocità dei proiettili. + + + Energia del gas concentrata + + + Tornando nella posizione iniziale, l'otturatore ridireziona il flusso d'aria attraverso la canna, raffreddandola. + + + Raffreddamento forzato + + + L'otturatore dell'arma scivola lungo la canna, impedendo alla parte anteriore di muoversi verso l'alto. + + + Installazione di un otturatore scarrellante + + + L'installazione di un pistone a gas impedisce ai gas di entrare nella sezione dell'otturatore, migliorando notevolmente la pulizia dell'arma. + + + Installazione di un pistone a gas + + + Questo sistema raccoglie parte dei gas usando la sezione dell'otturatore per migliorarne il movimento. + + + Sistema di raccolta dell'energia del gas + + + Una sostituzione delle parti automatiche che è più un'ottimizzazione che un miglioramento del pistone a gas. Aumenta notevolmente la cadenza di fuoco dell'arma. + + + Pistone a gas a corsa breve + + + Un sistema di bloccaggio a rulli che riduce il rinculo e migliora i colpi multipli, usato spesso nelle armi moderne. + + + Passaggio a un sistema a rulli con otturatore semi-libero + + + Assorbendo parte del calore, questi componenti riducono il surriscaldamento dell'arma. + + + Componenti ad assorbimento termico + + + Il movimento più lungo del pistone a gas aumenta leggermente la lunghezza dell'arma, migliorando molto la stabilità della traiettoria di tiro. + + + Movimento lungo del pistone a gas + + + Un tampone per le parti mobili che distribuisce uniformemente il rinculo in tutta l'arma, riducendone gli effetti. + + + Installazione di un tampone speciale per le parti mobili + + + Il raffreddamento forzato simmetrico di una parte della canna avviene grazie a un espulsore, prevenendo il surriscaldamento dell'arma. + + + Sistema di raffreddamento forzato simmetrico + + + Aumenta la cadenza di fuoco senza sovraccaricare le altre parti con un maggiore rinculo. + + + Otturatore mobile + + + Aumenta la stabilità della traiettoria di tiro migliorando il trasferimento dell'impulso al proiettile. + + + Sistema di chiusura della canna nella sezione dell'otturatore + + + Riduce il rinculo rallentando il movimento dell'otturatore. + + + Sistema di rallentamento dell'otturatore + + + Lo sputter previene l'usura dell'arma. + + + Sputter protettivo per l'otturatore + + + Aumenta la stabilità della traiettoria di tiro migliorando il trasferimento dell'impulso al proiettile. + + + Sistema di chiusura obliqua della canna + + + Un otturatore chiuso e più pesante che garantisce il corretto funzionamento dell'intera sezione. + + + Otturatore chiuso e rinforzato + + + Un piccolo tampone che assorbe parte del rinculo. + + + Tampone anti-rinculo polimerico + + + L'installazione di un inserto in acciaio aiuta a ridurre il rinculo. + + + Installazione di un inserto di chiusura con solco a spirale + + + Aumentando il movimento dell'otturatore e rinforzando correttamente il meccanismo di ritorno è possibile migliorare la stabilità della traiettoria di tiro. + + + Aumento del movimento dell'otturatore + + + Il movimento ridotto migliora notevolmente la cadenza di fuoco senza ridurre la stabilità della traiettoria di tiro. + + + Installazione di un limitatore di movimento per l'otturatore + + + Il movimento più lungo dell'otturatore applica al proiettile una maggiore energia. + + + Installazione di un amplificatore di movimento per l'otturatore + + + Una sostituzione delle parti automatiche che è più un'ottimizzazione che un miglioramento del pistone a gas. Aumenta notevolmente la cadenza di fuoco dell'arma. + + + Installazione di un dispositivo a corsa breve per il recupero dell'energia + + + L'installazione di questo modulo migliora notevolmente i colpi multipli senza sacrificare la velocità di fuoco. + + + Modulo di ritorno a due molle combinate + + + L'inserimento di fori di compensazione aggiuntivi riduce sensibilmente il rinculo. + + + Compensatore di sollevamento della canna integrato + + + Una modernizzazione delle parti automatiche della pistola per il fuoco automatico. + + + Modalità di fuoco totalmente automatica + + + Una modernizzazione delle parti automatiche della pistola per sparare raffiche di tre colpi. + + + Modalità di fuoco con raffica a tre colpi + + + Costo + + + Installazione impossibile + + + Installato + + + Sei sicuro di voler installare: + + + Sist. acq. aut. bersaglio + + + Sist. acq. aut. bersaglio + + + Mirino ottico 5.0x + + + Mirino ottico 6.0x + + + Scanner a infrarossi + + + Peso dell'armatura + + + Visore notturno 2a gen. + + + Visore notturno 3a gen. + + + Aggancio mirino ottico + + + Silenziatore integrato + + + Lanciagranate sottocanna + + + Guarigione ferite + + + Ripristino salute + + + Visore notturno 1a gen. + + + Ottica regolabile + + + Ottica ad alto contrasto + + + Potenziatori servomotore + + + Durabilità della tuta + + + Non è chiaro come funzioni quest'arma. Non può essere riparata senza maggiori informazioni sulla sua progettazione. + + + Il tecnico non può eseguire questa modifica + + + Questa parte è già stata modificata + + + Denaro insufficiente + + + Non usa i colpi + + + Modalità fuoco automatico + + + Mod. fuoco raff. 3 colpi + + + Numero di contenitori + + + al tecnico serve della vodka + + + al tecnico servono gli strumenti per il lavoro di base + + + al tecnico servono gli strumenti per il lavoro di precisione + + + al tecnico servono gli strumenti per la calibrazione + + + al tecnico servono maggiori informazioni + + + sono necessarie modifiche precedenti + + + Rivestimento protettivo "Armadillo", basato su zaffiri + + + Matrice rinforzata in titanio e berillio + + + Rivestimento extra in fibra di carbonio + + + Strato inferiore in tessuto gommato + + diff --git a/gamedata/configs/text/ita/st_land_names.xml b/gamedata/configs/text/ita/st_land_names.xml new file mode 100644 index 0000000..18dfac5 --- /dev/null +++ b/gamedata/configs/text/ita/st_land_names.xml @@ -0,0 +1,171 @@ + + + + Anomalia Artiglio + + + Anomalia Foresta d'acciaio + + + Segheria + + + Complesso dell'antenna Krug + + + Impianto dei rifiuti + + + Anomalia Circo + + + Stazione dei ranger + + + Skadovsk + + + Fattoria bruciata + + + Anomalia Boiler + + + Palude + + + Izumrudnoye + + + Shevchenko + + + Stazione di drenaggio + + + Gru del porto + + + Anomalia Pinquercia + + + Stazione di rifornimento + + + Vecchia chiatta + + + Anomalia Cicatrice + + + Ponte di Preobrazhensky + + + Altopiano meridionale + + + Officine delle sotto-stazioni + + + Anomalia Cumulo di cenere + + + Torre di raffreddamento + + + Sotto-stazione + + + Anomalia Plavni + + + Fabbrica di cemento + + + Kopachy + + + Yanov + + + Cava + + + Bunker degli scienziati + + + Complesso Volkhov AA + + + Boschetto anomalo + + + Parcheggio + + + Checkpoint + + + Anomalia Bitume + + + Tunnel orientale + + + Magazzino dei contenitori + + + Complesso di ventilazione + + + Piattaforme di atterraggio degli elicotteri + + + Anomalia Bagno di cemento + + + Stabilimento Jupiter + + + Cinema Prometheus + + + Porto del fiume + + + Vecchio centro servizio + + + Scuola + + + Ospedale + + + Centro servizi Yubileiny + + + Lavanderia + + + Asilo + + + Complesso di appartamenti + + + Macelleria + + + Grande magazzino + + + Libreria + + + Anomalia Vulcano + + + Anomalia Vite + + diff --git a/gamedata/configs/text/ita/st_mp_mapdesc.xml b/gamedata/configs/text/ita/st_mp_mapdesc.xml new file mode 100644 index 0000000..cd6a171 --- /dev/null +++ b/gamedata/configs/text/ita/st_mp_mapdesc.xml @@ -0,0 +1,126 @@ + + + + Stazione dei veicoli + + + Uno strano posto. Questo edificio tranquillo nasconde numerosi segreti, ma gli stalker sono attratti qui per un altro motivo... in quest'area ad alto rischio, ma anche ad alto profitto, si trova un'abbondante scorta di manufatti. Pensa alla svelta e agisci altrettanto alla svelta e la fortuna sarà sicuramente dalla tua parte. + + + Uno strano posto. Questo edificio tranquillo nasconde numerosi segreti, ma gli stalker sono attratti qui per un altro motivo... un'abbondante scorta di manufatti. + + + Un deposito all'ingresso della Zona. I trattori, gli autobus e i camion che vi si trovano hanno già percorso il loro ultimo chilometro... Finora non sono stati individuati manufatti in questo luogo, ma è famoso per i predoni che danno la caccia ai principianti e li uccidono per rubare il loro bottino. Cerca riparo negli edifici e dietro i veicoli, e attento ai nemici sui tetti! + + + Un deposito all'ingresso della Zona. I trattori, gli autobus e i camion che vi si trovano hanno già percorso il loro ultimo chilometro. + + + Un deposito deserto e il territorio adiacente. Qui è possibile trovare alcune scorte e dell'equipaggiamento, se si cerca con impegno. Attento alle potenti anomalie e ai cecchini sul tetto del deposito... è un ottimo punto di osservazione dal quale si può controllare chiunque si avvicini all'area. + + + Un deposito deserto e il territorio adiacente. Fai attenzione ai cecchini nemici e alle anomalie potenti. + + + Un luogo enigmatico e affascinante. Questa piscina è stata costruita per condurre esperimenti su qualcuno o qualcosa, ma il suo scopo preciso rimarrà per sempre un mistero. Qui non ci sono manufatti, quindi gli stalker sono stati attirati qui per quel che resta di bizzarri congegni e assemblati. Attento ai tetti e ricorda che nell'area i livelli di radiazione sono elevatissimi. + + + Un luogo enigmatico e affascinante. Questa piscina è stata costruita per condurre esperimenti su qualcuno o qualcosa, ma il suo scopo preciso rimarrà per sempre un mistero. + + + Questa pericolosa frazione della Valle Oscura è formata da una lunga strada e da un istituto abbandonato. Solo il cielo sa cosa si insegnava all'istituto. L'unica cosa che si può imparare in questi giorni è la sopravvivenza! Oh, e tieni d'occhio i tetti... + + + Questa pericolosa frazione della Valle Oscura è formata da una lunga strada e da un istituto abbandonato... + + + Questa fabbrica desolata è il luogo di riposo di innumerevoli stalker. Una schiera di anomalie attende i visitatori a ogni passo, ma questi continuano ad arrivare a frotte attirati dai suoi preziosi manufatti. Attento alle radiazioni! + + + Questa fabbrica desolata è il luogo di riposo di innumerevoli stalker. + + + La stazione dei pompieri i cui uomini furono inviati a salvare la centrale di Chernobyl nel 1986. La torre è un eccellente punto di osservazione, dal quale si possono tenere d'occhio le aree vicine e lontane. Sono in pochi ad avventurarsi ai piani alti degli edifici o nei seminterrati, anche se forse è meglio così. Da un po' di tempo in quest'area le fazioni della Zona si azzannano a vicenda, nel tentativo di conquistare questa posizione strategica. + + + La stazione dei pompieri i cui uomini furono inviati a salvare la centrale di Chernobyl nel 1986. La stazione è un eccellente punto strategico. + + + Parte di un immenso immondezzaio, dove cumuli di rifiuti radioattivi vennero scaricati dopo il disastro del 1986, pieno di gru decrepite e varie attrezzature. Le altre attrazioni del luogo comprendono vecchi edifici in rovina e un enorme hangar. La vicinanza al Cordon e una relativa abbondanza di manufatti attirano gli stalker che cercano missioni poco impegnative. + + + Parte di un immenso immondezzaio, dove cumuli di rifiuti radioattivi vennero scaricati dopo il disastro del 1986. + + + Un piccolo quartiere nell'enigmatica città di Limansk: condomini abbandonati e un edificio lasciato a metà tra di loro. Quando in questo luogo vennero rinvenuti numerosi manufatti di valore, la notizia si diffuse molto rapidamente in tutta la Zona. Furono aperte alcune strade per Limansk e da allora le sparatorie non si sono fermate nemmeno per un minuto. + + + Un piccolo quartiere nell'enigmatica città di Limansk: condomini abbandonati e un edificio lasciato a metà tra di loro. + + + Un villaggio abbandonato e dimenticato da tutti nelle profondità della Zona. Un piccolo e cupo lago, poco profondo, che ospita rottami di veicoli e ti infonde fino al tuo subconscio tutto il terrore della Zona. Attento ai cecchini, ma ricorda: la Zona favorisce i coraggiosi. + + + Un villaggio abbandonato e dimenticato da tutti nelle profondità della Zona. Un piccolo e cupo lago, poco profondo, che ospita rottami di veicoli e ti infonde fino al tuo subconscio tutto il terrore della Zona. + + + Una base militare abbandonata piena di camion e veicoli militari in disuso, caserme e quartieri generali in rovina. L'aspetto desolato, però, è ingannevole: questa è una vera e propria miniera di manufatti, il che significa che il nemico potrebbe essere nascosto dietro ogni angolo. + + + Una base militare abbandonata piena di camion e veicoli militari in disuso, caserme e quartieri generali in rovina. + + + Questo vecchio villaggio è un luogo alquanto sinistro. Se sei abbastanza coraggioso da spingerti fin qui, tieniti pronto a evitare un benvenuto sotto forma di proiettile alla testa. Qui non esistono posti sicuri, quindi che il mirino e il silenziatore siano con te! + + + Questo vecchio villaggio è un luogo alquanto sinistro. Forse sei riuscito ad arrivare fino a qui, ma ora non pensare di rilassarti. + + + Questa non è una piscina, ma più un bagno di sangue. Echi di proiettili, esplosioni e strilli dei moribondi vagano per i corridoi piastrellati... Sono pochi gli stalker che sanno come arrivare qui, ma ancora meno sono quelli che sanno come uscire. + + + Questa non è una piscina, ma più un bagno di sangue. Echi di proiettili ed esplosioni vagano per i corridoi piastrellati. + + + Una piccola stazione ferroviaria nei pressi della fabbrica Rostok. + + + Una piccola stazione ferroviaria nei pressi della fabbrica Rostok, piena di locomotive e vagoni arrugginiti, per sempre immobili sui binari. Un'abbondanza di manufatti attira gli impavidi stalker da ogni angolo della Zona. + + + Un centro riparazioni nei pressi di un piccolo villaggio. Tutti i veicoli ancora agibili sono stati sistemati per gestire le conseguenze di Chernobyl. Col tempo, il resto dell'attrezzatura è stata saccheggiata per ottenere pezzi di ricambio. L'area è piena di pericoli, come paludi insidiose e canneti contaminati nei quali, se hai fortuna, potresti trovare qualcosa di valore. + + + Un centro riparazioni nei pressi di un piccolo villaggio. L'area è piena di pericoli, come paludi insidiose e canneti contaminati. + + + Cataste di metallo arrugginiscono dietro mura di cemento. Prima della fine del secolo, lo stabilimento era operativo accompagnato da slogan socialisti emessi dagli altoparlanti, ma l'edificio venne abbandonato molto tempo fa. + + + Un vecchio stabilimento deserto: silenziose cataste di metallo dietro mura di cemento sono tutto quello che rimane. + + + Un centro sportivo di Pripyat, non lontano dalla scuola deserta. I tipi di sport qui praticati sono cambiati radicalmente dal 1986, così come il numero dei partecipanti. Gli stalker sono attratti dalla gloria facile, dai bottini, dai manufatti... e a volte restano qui per sempre. + + + Un centro sportivo di Pripyat, non lontano dalla scuola deserta. + + + Un luogo alquanto insolito. Molti ridono degli stalker che sostengono di averlo visto, eppure esiste. Le anomalie gravitazionali hanno deturpato il terreno e creato un panorama che pare alieno. L'area è dominata da tre enormi torri, resti di attrezzature militari e zolle di terra fluttuanti, strappate dal terreno. + + + Un luogo alquanto insolito. Le anomalie gravitazionali hanno deturpato il terreno e creato un panorama che pare alieno. + + + Prima che la Duty si stabilisse qui, questi erano i settori periferici della fabbrica Rostok. Un luogo misterioso, ma ricco di manufatti. Ogni hangar deserto del magazzino è colmo di pericoli letali. Sii prudente e tieni d'occhio la torre bianca... + + + Prima che la Duty si stabilisse qui, questi erano i settori periferici della fabbrica Rostok. Un luogo misterioso, ma ricco di manufatti. + + + Pochi osano avventurarsi nella città deserta di Pripyat, un tempo casa degli impiegati alla centrale di Chernobyl. Nonostante questo, le strade della città fantasma sono state recentemente teatro di violenti scontri a fuoco in un quartiere tra il cinema Prometheus, il molo e le case di Kurchatova Street. + + + Una piccola zona di Pripyat, tra il cinema Prometheus, il molo e le case di Kurchatova Street è stata teatro di violenti scontri a fuoco tra i pochi che sono riusciti ad arrivare in città. + + diff --git a/gamedata/configs/text/ita/st_mp_speechmenu.xml b/gamedata/configs/text/ita/st_mp_speechmenu.xml new file mode 100644 index 0000000..ec984b1 --- /dev/null +++ b/gamedata/configs/text/ita/st_mp_speechmenu.xml @@ -0,0 +1,57 @@ + + + + Gente, attaccare! + + + Vado a prendere il manufatto! Coprimi! + + + Seguimi! + + + Per ora proteggi il manufatto. Aspetta a prenderlo! + + + Mantengo la posizione! + + + Mantenete la posizione! + + + Prendi il manufatto! Ti copro io! + + + Mi serve aiuto! + + + Non ho soldi... comprami dell'equipaggiamento! + + + No. + + + Nessuno in vista! + + + Rapporto, subito! + + + Ritirata! + + + Restituisci il manufatto! + + + Ricevuto. + + + Taci! + + + Restiamo uniti. + + + Prendi il manufatto! + + diff --git a/gamedata/configs/text/ita/st_mp_teamdesc.xml b/gamedata/configs/text/ita/st_mp_teamdesc.xml new file mode 100644 index 0000000..0f9f33e --- /dev/null +++ b/gamedata/configs/text/ita/st_mp_teamdesc.xml @@ -0,0 +1,15 @@ + + + + Gli anarchici della Zona. Sostengono che la Zona sia un santuario di libertà e credono che qui tutte le leggi, le regole e le convenzioni del mondo esterno non siano valide. Il loro motto è "Fai quel che vuoi e pensa ai fatti tuoi". La Freedom combatte i tentativi del governo di controllare la Zona ed è in guerra con i mercenari. I suoi membri sono equipaggiati principalmente con armi da fuoco russe e sovietiche. + + + Fazione della Freedom (stalker liberi) + + + Questi tagliagole in cerca di avventura provengono da tutto il mondo e accettano persino i lavori più sporchi. Il loro motto è, prevedibilmente, "Pecunia non olet". Continueranno a combattere per avere il controllo completo dei campi di manufatti, finché ce ne sarà richiesta. I mercenari sono equipaggiati principalmente con armi da fuoco occidentali. + + + Fazione dei mercenari (tagliagole) + + diff --git a/gamedata/configs/text/ita/st_quests_general.xml b/gamedata/configs/text/ita/st_quests_general.xml new file mode 100644 index 0000000..6165a9f --- /dev/null +++ b/gamedata/configs/text/ita/st_quests_general.xml @@ -0,0 +1,18 @@ + + + + Attenzione! Inizio emissione tra: + + + Devi raggiungere subito la copertura più vicina per ripararti dall'emissione. + + + Non devi mai uscire allo scoperto durante un'emissione. + + + Emissione: trova un riparo + + + Emissione: attendi al riparo + + diff --git a/gamedata/configs/text/ita/st_quests_jupiter.xml b/gamedata/configs/text/ita/st_quests_jupiter.xml new file mode 100644 index 0000000..6090dc9 --- /dev/null +++ b/gamedata/configs/text/ita/st_quests_jupiter.xml @@ -0,0 +1,687 @@ + + + + Debiti: consegna il denaro ai banditi + + + Vano deve dei soldi ai banditi per una tuta, ma non può saldare il debito perché gli interessi aumentano troppo in fretta. Ti ha chiesto di risolvere questo problema. + + + Debiti: torna da Vano + + + Riferisci a Vano come hai risolto il problema del suo debito. + + + Debiti: affronta i banditi + + + La questione del debito di Vano si è complicata troppo. Elimina i banditi. + + + Ostaggio: ricevi la tua ricompensa dagli amici di Mitay + + + Mitay è stato liberato. Parla con i suoi amici al bar per incassare la ricompensa. + + + Ostaggio: libera Mitay + + + Ostaggio: parla con Grizzly per assicurarti che sia pronto + + + Devi parlare con Grizzly prima di provare a liberare l'ostaggio. + + + Ostaggio: libera Mitay con la forza + + + Devi eliminare i banditi per liberare uno stalker chiamato Mitay. + + + Ostaggio: raggiungi gli stalker + + + Gli stalker ti aiuteranno a liberare l'ostaggio. Devi incontrarti con loro di notte per attaccare insieme i banditi. + + + Ostaggio: organizza un riscatto per la liberazione di Mitay + + + Organizza un riscatto con il leader dei banditi per liberare uno stalker chiamato Mitay. + + + Libera uno stalker chiamato Mitay, preso in ostaggio dai banditi. + + + Ostaggio: conduci Mitay fuori dal campo dei banditi + + + Il campo dei banditi è troppo pericoloso. Devi scortare Mitay all'esterno del campo. + + + Ostaggio: parla con Mitay + + + Mitay è relativamente al sicuro. Parla con lui per decidere come procedere. + + + Verso Pripyat: parla con il tecnico riguardo al sottopasso + + + I documenti che hai trovato indicano chiaramente l'esistenza di un sottopasso che conduce a Pripyat, sotto lo stabilimento Jupiter. Il sottopasso è privo di energia e pieno di gas, e l'ingresso è stato bloccato. Devi trovare un tecnico che possa attivare il generatore e aprire il blocco del sottopasso. + + + Il modulo di memoria è in buone mani. Ora devi attendere che venga sbloccato. + + + UAV: sblocca il modulo di memoria + + + UAV: ottieni il modulo di memoria da Nitro + + + UAV: ottieni il modulo di memoria da Novikov + + + Nitro ha sbloccato il modulo di memoria. Ottieni il modulo per scoprire cosa contiene. + + + Novikov ha sbloccato il modulo di memoria. Ottieni il modulo per scoprire cosa contiene. + + + Sei riuscito a recuperare un modulo di memoria dall'UAV. È necessario sbloccarlo per accedere alle informazioni che contiene. + + + UAV: attendi che il modulo di memoria venga sbloccato + + + Oasi: trova delle prove + + + L'Oasi è stata trovata, e in effetti possiede davvero delle proprietà curative. Raccogli delle prove da portare agli scienziati. + + + Oasi: porta la prova agli scienziati + + + L'Oasi è stata trovata, e in effetti possiede davvero delle proprietà curative. Consegna agli scienziati il manufatto che hai trovato, come prova. + + + Oasi: scopri se la leggenda è vera + + + Ozersky, lo scienziato del bunker, ti ha chiesto di cercare un luogo leggendario della Zona chiamato "l'Oasi". Pare che contenga una specie di fonte curativa, ma nessuno è mai riuscito a dimostrarne l'esistenza. + + + Kopachy: parti con Zio Yar + + + Zio Yar ha bisogno d'aiuto. Vai a Kopachy insieme a lui. + + + Kopachy: elimina i mercenari + + + Pare che Zio Yar abbia anticipato l'arrivo dei mercenari. Devi eliminarli. + + + Kopachy: resta vicino a Zio Yar + + + Zio Yar ti ha chiesto di stargli vicino senza fare rumore. + + + Kopachy: parla con Zio Yar + + + I mercenari sono morti. Parla con Zio Yar e fatti spiegare cosa è successo. + + + Psico-emissioni intermittenti: porta la formazione anomala agli scienziati + + + Porta a Hermann il campione che hai trovato, come concordato. Pare che la fonte delle psico-emissioni intermittenti sia proprio questo oggetto, parzialmente trasformato dall'esposizione alle anomalie. + + + Psico-emissioni intermittenti: indaga sulla fonte + + + Perlustra la galleria in cerca di formazioni anomale. Gli scienziati ritengono che lo psico-campo intermittente abbia una fonte precisa, probabilmente un manufatto. + + + Psico-emissioni intermittenti: incontra la squadra di Topol + + + Devi incontrare la squadra di Topol nella galleria con le psico-emissioni intermittenti. + + + Psico-emissioni intermittenti: parla con Topol + + + Unisciti alla squadra di Topol per esplorare la galleria con le psico-emissioni intermittenti. Gli stalker sorveglieranno la galleria mentre tu andrai in cerca di ciò che ti hanno chiesto gli scienziati. + + + Devi portare a Nitro tutti i dispositivi radio che riesci a trovare. + + + A Nitro servono dei dispositivi radio. Puoi dargli quelli che possiedi o cercarne degli altri. + + + Equipaggiamento radio: trova materiali per Nitro + + + A Nitro servono dei dispositivi radio. Ha detto che dovresti cercarli nella fabbrica di cemento. + + + Furto: scopri chi è il responsabile del furto + + + Chiedi agli stalker di Yanov se hanno visto una persona sospetta che potrebbe aver derubato un ripostiglio personale. + + + Furto: controlla la sotto-stazione + + + Devi controllare la sotto-stazione, il luogo in cui si è diretto lo stalker che potrebbe aver commesso il furto. + + + Furto: prendi le tue cose + + + Tutti gli oggetti rubati da Snag dovrebbero essere nel suo nascondiglio, nelle fogne dietro la sotto-stazione. + + + Pianta anomala: ottieni un campione della pianta + + + Un'area piena di vegetazione anomala è comparsa vicino al margine della cava. Ozersky ti ha chiesto di portargli un campione di pianta per le sue ricerche. + + + Pianta anomala: consegna il campione a Ozersky + + + Devi portare il campione di pianta a Ozersky, che in cambio convincerà Hermann a darti una tuta scientifica. + + + Caccia: elimina i mutanti non identificati + + + Un gruppo di stalker ha incontrato dei mutanti non identificati nelle gallerie a nord dello stabilimento Jupiter. Perlustra l'area ed elimina i mutanti. + + + Caccia: ottieni da Trapper la tua ricompensa per aver ucciso i mutanti nella galleria + + + I mutanti nelle gallerie a nord dello stabilimento Jupiter sono stati eliminati. Informa Trapper o ottieni la tua ricompensa. + + + Teoria: posiziona lo scanner al centro della frana + + + Posiziona lo scanner al centro della frana per verificare la teoria di Ozersky. + + + Teoria: attendi la fine dell'esperimento + + + Ora lo scanner è in modalità attiva e ha iniziato a registrare la presenza di mutanti. Attendi che vengano raccolti abbastanza dati per confermare o smentire la teoria. + + + Teoria: prendi lo scanner + + + Sono stati raccolti dati a sufficienza per confermare la teoria di Ozersky. Prendi lo scanner. + + + Teoria: consegna lo scanner a Ozersky + + + Devi dare lo scanner a Ozersky. I dati raccolti dovrebbero bastare per confermare la sua teoria. + + + Caccia: uccidi i succhiasangue delle paludi + + + Un gruppo di succhiasangue delle paludi è stato avvistato a Fen, dietro la fabbrica di cemento. Gli stalker locali ti hanno chiesto di eliminarli. + + + Caccia: ottieni da Trapper la tua ricompensa per aver ucciso i succhiasangue delle paludi + + + I succhiasangue delle paludi sono morti. Vai da Trapper per incassare la ricompensa offerta dagli stalker locali. + + + Caccia notturna: uccidi la chimera + + + Le chimere sono predatrici notturne, ma nessuno sa dove si trova la tana diurna di questo esemplare. Devi ucciderla di notte, quando esce dalla tana per cacciare vicino al complesso di ventilazione. + + + Caccia notturna: riferisci a Trapper che la chimera è morta + + + La chimera assassina è morta e Fox, il cacciatore, è stato vendicato. Informa Trapper. + + + Attrezzi: porta gli attrezzi a Nitro + + + Nitro ti ha chiesto di portargli due kit di attrezzi: uno per i lavori di base e uno per quelli avanzati. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Nitro + + + Nitro ti ha chiesto di portargli due kit di attrezzi: uno per i lavori di base e uno per quelli di precisione. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Nitro + + + Nitro ti ha chiesto di portargli un kit di attrezzi per i lavori di base. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Nitro + + + Nitro ti ha chiesto di portargli due kit di attrezzi: uno per i lavori avanzati e uno per quelli di precisione. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Nitro + + + Nitro ti ha chiesto di portargli un kit di attrezzi per i lavori avanzati. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Nitro + + + Nitro ti ha chiesto di portargli un kit di attrezzi per i lavori di precisione. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Nitro + + + Nitro ti ha chiesto di portargli tre kit di attrezzi: uno per i lavori di base, uno per quelli avanzati e uno per quelli di precisione. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Pripyat 1: trova una tuta provvista di modulo respiratorio a ciclo chiuso + + + Ti servirà una tuta con un modulo respiratorio a ciclo chiuso per attraversare il sottopasso di Pripyat 1, essendo stato riempito con anidride carbonica mista a una sostanza sconosciuta. + + + Pripyat 1: accompagna Strider da Zulu + + + Devi accompagnare Strider da Zulu e presentarlo come un nuovo membro della squadra. Se un combattente Monolith come lui si presentasse da solo, Zulu non lo accoglierebbe certo a braccia aperte. + + + Pripyat 1: parla con Strider riguardo a una tuta protettiva + + + Il sottopasso di Pripyat 1 è stato riempito con anidride carbonica mista a una sostanza sconosciuta. Devi dire a Strider che è necessario indossare una tuta con un modulo respiratorio a ciclo chiuso per attraversare il sottopasso. + + + Pripyat 1: forma una squadra per raggiungere Pripyat + + + Nitro potrebbe aprire il blocco del sottopasso di Pripyat 1, ma si rifiuta di entrare nello stabilimento Jupiter senza una protezione adeguata. Inoltre, ti sconsiglia di attraversare il sottopasso da solo. Potresti chiedere aiuto a Zulu, e Nitro ti ha suggerito di inviargli nuove reclute. + + + Pripyat 1: parla con Zulu riguardo alla spedizione verso Pripyat + + + Nitro potrebbe aprire il blocco del sottopasso di Pripyat 1, ma si rifiuta di entrare nello stabilimento Jupiter senza una protezione adeguata. Inoltre, ti sconsiglia di attraversare il sottopasso da solo. Secondo Nitro, Zulu potrebbe aiutarti a formare una squadra. Vai a parlare con lui. + + + Pripyat 1: accompagna Sokolov da Zulu + + + Sokolov ha accettato di andare a Pripyat, e potrebbe prendere una tuta scientifica prima di lasciare il bunker. Accompagnalo da Zulu e presentalo come un nuovo membro della squadra. + + + Pripyat 1: parla con Sokolov riguardo a una tuta protettiva + + + Pripyat 1: parla con Ozersky riguardo a una tuta per Sokolov + + + Sokolov vuole indossare una tuta scientifica per proteggersi, ma Hermann non vuole dargli una di quelle conservate nel bunker. Parla con Ozersky, sicuramente più aperto e ragionevole. + + + Pripyat 1: informa Sokolov riguardo alla tuta scientifica + + + Ozersky è molto soddisfatto del campione di pianta. Ti ha chiesto di dire a Sokolov che può prendere la sua tuta scientifica da Hermann. + + + Il sottopasso di Pripyat 1 è stato riempito con anidride carbonica mista a una sostanza sconosciuta. Devi dire a Sokolov che è necessario indossare una tuta con un modulo respiratorio a ciclo chiuso per attraversare il sottopasso. + + + Pripyat 1: porta a Vano il denaro per la tuta + + + La tuta per la quale Vano aveva contratto un debito con i banditi include un modulo respiratorio a ciclo chiuso. Vano ha dovuto impegnarla per saldare il debito. Ora ha bisogno di 3.000 rubli per riaverla indietro. + + + Pripyat 1: accompagna Vano da Zulu + + + Vano è disposto ad andare a Pripyat. Devi accompagnarlo da Zulu e presentarlo come un nuovo membro della squadra. Così Vano avrà anche occasione di ricomprare la sua tuta. + + + Pripyat 1: parla con Vano riguardo a una tuta protettiva + + + Il sottopasso di Pripyat 1 è stato riempito con anidride carbonica mista a una sostanza sconosciuta. Devi dire a Vano che è necessario indossare una tuta con un modulo respiratorio a ciclo chiuso per attraversare il sottopasso. + + + Flint, noto anche come Magpie, è un vile bastardo. Devi mettere in guardia gli stalker di Zaton o le altre fazioni, così avrà la lezione che si merita. + + + Flint è solo un pallone gonfiato che parla di cose che non ha mai visto. Qualcuno dovrebbe smascherarlo pubblicamente. + + + Menzogne: sistema Flint + + + Flint si assume il merito di imprese che non ha mai compiuto. Deve imparare a tenere la bocca chiusa. + + + Flint è uno spaccone di prima categoria. Parla con lui e cerca di farlo ragionare. + + + Flint, noto anche come Magpie, è un vile bastardo. Devi mettere in guardia gli stalker di Zaton o le altre fazioni. Sarebbe una vendetta con i fiocchi. + + + Ricerca sulle anomalie: ottieni gli scanner dal tecnico + + + Ottieni gli scanner da Novikov. Hermann vuole raccogliere dati sulla formazione dei manufatti, e per questo è necessario posizionare gli scanner al centro di varie anomalie. + + + Ricerca sulle anomalie: posiziona lo scanner nell'anomalia + + + Ricerca sulle anomalie: ottieni la tua ricompensa + + + Ottieni la ricompensa che ti spetta per aver posizionato gli scanner nelle anomalie. Ora che gli scanner sono in posizione, Hermann può iniziare a raccogliere dati sulla formazione dei manufatti. + + + Posiziona lo scanner al centro dell'anomalia. Hermann vuole raccogliere dati sulla formazione dei manufatti, e per questo è necessario posizionare gli scanner al centro di varie anomalie. + + + Un contratto con gli scienziati: porta il manufatto Kolobok a Garry + + + Garry ha bisogno del manufatto Kolobok per onorare il suo contratto con gli scienziati. Portagli questo manufatto. + + + Un contratto con gli scienziati: porta il manufatto Pezzo di carne a Garry + + + Garry ha bisogno del manufatto Pezzo di carne per onorare il suo contratto con gli scienziati. Portagli questo manufatto. + + + Un contratto con gli scienziati: porta i manufatti Kolobok e Pezzo di carne a Garry + + + Garry ha bisogno dei manufatti Kolobok e Pezzo di carne per onorare il suo contratto con gli scienziati. Portagli questi manufatti. + + + Un contratto con gli scienziati: manufatti consegnati + + + Garry ha ottenuto entrambi i manufatti, onorando il suo contratto. + + + Storia della Duty: consegna il PDA del fondatore della Duty a un potenziale interessato + + + Hai trovato il PDA personale del fondatore della Duty, morto in un'anomalia. Consegnalo a qualcuno che potrebbe essere interessato agli ultimi istanti di vita del leader della fazione. + + + Attività anomala: perlustra l'area usando un rilevatore migliorato + + + Gli scanner degli scienziati hanno registrato un'insolita attività a nord del bunker. Perlustra l'area usando un rilevatore migliorato. + + + Proteggere gli scienziati: trova persone affidabili + + + Il bunker degli scienziati è indifeso. Trova delle persone affidabili che possano sorvegliarlo. + + + Proteggere gli scienziati: torna da Hermann per ricevere la tua ricompensa + + + Hai trovato delle guardie per il bunker degli scienziati. Torna da Hermann per ricevere la ricompensa che ti spetta. + + + Ultimi sviluppi: cerca documenti allo stabilimento Jupiter + + + Hermann è interessato agli ultimi sviluppi riguardanti lo stabilimento Jupiter. Cerca dei documenti nella sezione amministrativa dello stabilimento. + + + Ultimi sviluppi: porta i documenti a Hermann + + + I documenti che hai trovato indicano che l'intera documentazione tecnica è stata trasferita fuori dallo stabilimento. Non è molto, ma è meglio riferire tutto a Hermann. + + + Ultimi sviluppi: porta i documenti e il PDA di Black a Hermann + + + Mentre cercavi i documenti, i mercenari hanno sferrato un attacco. Secondo il PDA che hai trovato addosso a Black, il loro leader, sono stati inviati per impedire agli scienziati di cercare i documenti. Allo stesso tempo, i documenti che hai trovato indicano che l'intera documentazione tecnica è stata trasferita fuori dallo stabilimento. Riferisci tutto a Hermann e mostragli il PDA di Black. + + + Superstiti Monolith: parla con gli abitanti di Yanov riguardo al riparo + + + Una squadra di combattenti Monolith si è liberata dal condizionamento mentale. Ora cercano un riparo dalle emissioni e dai mutanti. Chiedi agli abitanti della stazione Yanov se sono disposti ad accogliere la squadra Monolith. + + + Accompagna gli ufficiali di reclutamento della Duty dalla ex squadra Monolith. Se i combattenti Monolith si uniranno alla Duty, potranno ripararsi dalle emissioni e dai mutanti alla stazione Yanov. + + + Accompagna gli ufficiali di reclutamento della Freedom dalla ex squadra Monolith. Se i combattenti Monolith si uniranno alla Freedom, potranno ripararsi dalle emissioni e dai mutanti alla stazione Yanov. + + + Superstiti Monolith: accompagna gli ufficiali di reclutamento dalla ex squadra Monolith + + + Ricerca sulle anomalie: copri gli stalker + + + Pare che le operazioni nell'anomalia abbiano attirato dei mutanti. Devi coprire gli stalker finché non avranno raccolto tutti i dati richiesti. + + + Ricerca sulle anomalie: copri gli stalker + + + Pare che le operazioni nell'anomalia abbiano attirato degli zombi da Kopachy. Devi coprire gli stalker finché non avranno raccolto tutti i dati richiesti. + + + Ricerca sulle anomalie: parla con Hermann + + + Le misurazioni nelle anomalie sono state completate. Informa gli scienziati e ottieni la tua ricompensa. + + + Ricerca sulle anomalie: parla con gli stalker + + + Parla con la squadra di stalker responsabile delle misurazioni. Bisogna scegliere quale anomalia analizzare. + + + Ricerca sulle anomalie: parla con gli stalker + + + Sono state eseguite tutte le misurazioni necessarie. Ora puoi tornare al bunker degli scienziati insieme alla squadra. + + + Ricerca sulle anomalie: parla con gli stalker + + + Le misurazioni nell'anomalia sono state completate. Parla con la squadra per decidere la prossima destinazione. + + + Ricerca sulle anomalie: copri gli stalker + + + Hermann ti chiesto di difendere gli stalker mentre eseguono delle misurazioni nelle anomalie. + + + Stingray 4: perlustra il luogo dello schianto + + + Stingray 4: scopri il motivo del guasto elettronico + + + Perlustra il luogo dello schianto di Stingray 4. + + + Devi trovare la fonte della potente scarica elettrica che ha colpito l'elicottero Stingray 4. + + + Stingray 1: consegna la scatola nera a un tecnico per farla decriptare + + + La scatola nera di Stingray 1 è sopravvissuta allo schianto. Se vuoi accedere alle informazioni che contiene, devi consegnarla a un tecnico per farla decriptare. + + + Stingray 1: attendi che la scatola nera venga decriptata + + + Nitro ha accettato di decriptare la scatola nera. Ha detto che ci vogliono circa tre ore. Non ti resta che attendere che finisca. + + + Stingray 1: torna da Nitro per accedere alle informazioni nella scatola nera + + + Nitro deve aver completato il processo di decriptazione. Vai da lui per accedere alle informazioni contenute nella scatola nera. + + + Stingray 1: perlustra il luogo dello schianto + + + Perlustra il luogo dello schianto di Stingray 1. + + + Pripyat 1: raggiungi Pripyat + + + Devi attraversare il sottopasso di Pripyat 1 e raggiungere il punto di evacuazione dei militari a Pripyat. + + + Verso Pripyat: perlustra l'officina composti chimici allo stabilimento Jupiter + + + L'officina composti chimici dovrebbe contenere informazioni utili sulla diffusione di un gas nel sottopasso di Pripyat 1. + + + Verso Pripyat: perlustra la sezione amministrativa dello stabilimento Jupiter + + + La guida non conosce un passaggio sicuro per Pripyat, ma ti ha detto dove potresti trovare informazioni sulle gallerie sotterranee che collegano lo stabilimento Jupiter alla città. Dovresti iniziare dalla sezione amministrativa. + + + Verso Pripyat: perlustra la sezione dei laboratori dello stabilimento Jupiter + + + I documenti trovati nella sezione amministrativa accennano all'evacuazione del complesso di produzione dallo stabilimento Jupiter. Le informazioni che riguardano questo trasferimento dovrebbero essere nella sezione dei laboratori. + + + Verso Pripyat: controlla il blocco di trasporto del sottopasso di Pripyat 1 + + + L'ingresso del sottopasso è dietro il blocco di trasporto. Perlustra l'area e cerca informazioni riguardanti il sottopasso. + + + Verso Pripyat: perlustra il Dipartimento 1 dello stabilimento Jupiter + + + Nel Dipartimento 1 dovrebbero esserci informazioni sul sottopasso di Pripyat 1. Potrebbero rivelarsi molto utili, quindi vai a perlustrare l'area. + + + Verso Pripyat: perlustra il reparto consegne dello stabilimento Jupiter + + + Stando al messaggio trovato nell'officina sperimentale, l'evacuazione è stata organizzata dal reparto consegne. Controlla anche questa zona. + + + Verso Pripyat: perlustra l'officina riparazioni dello stabilimento Jupiter + + + Il reparto consegne possedeva informazioni sulla perdita di un certo quantitativo di "oggetto 62" durante il trasporto. Secondo i registri, l'officina riparazioni doveva occuparsi del problema. Vai a controllare. + + + Verso Pripyat: parla con la guida + + + Secondo la registrazione nella scatola nera di un elicottero, le unità militari dovevano convergere verso il punto di evacuazione B28. Le mappe trovate nell'altro elicottero che ha partecipato alla missione indicano che questo punto di evacuazione si trova a Pripyat. Dovrai trovare un modo per arrivarci. Parlane con la guida. + + + Magazzino della Duty: prendi ciò che ti spetta + + + Magazzino della Duty: incontra Morgan + + + Morgan il mercante ti ha proposto di accedere al magazzino della Duty in cambio del tuo silenzio sull'intera questione. Devi incontrarlo vicino alla cava, come stabilito. + + + Per procedere devi aprire il cancello. + + + Per procedere devi aprire la porta. + + + Devi attivare il sistema di alimentazione del cancello per procedere. + + + Per procedere devi sbloccare il cancello. Probabilmente puoi farlo dalla sala di controllo. + + + Gruppo di ricerca: assumi le persone giuste + + + Tutti i membri di un gruppo di ricerca che lavorava per gli scienziati sono morti. Devi formare un nuovo gruppo perché la ricerca possa proseguire. + + + Gruppo di ricerca: torna da Hermann per ricevere la ricompensa + + + Hai trovato le persone giuste per formare la nuova squadra di ricercatori. Ora torna da Hermann per ricevere la tua ricompensa. + + + Pripyat 1: completa la missione di Ozersky + + + Devi completare la missione di Ozersky riguardante lo stabilimento anomalo per ottenere una tuta protettiva per Sokolov. + + + A Nitro servono dei dispositivi radio. Dovresti cercarli nella fabbrica di cemento. + + + Flint ha lasciato morire Scheggia nell'anomalia. Parla con lui e cerca di scoprirne il motivo. + + + Castigo: vendica Scheggia + + + Scopri chi ha lasciato morire Scheggia, scappando dopo aver preso il manufatto. Purtroppo, Scheggia è morto prima di poter dire il suo nome, l'unica cosa che si sa è che era un membro della Freedom. + + + Il Tenente Colonnello Shulga ti ha permetto di prelevare tutti gli equipaggiamenti che vorrai dal magazzino della Duty, se riuscirai a conquistarlo. + + + Loki ti ha permetto di prelevare tutti gli equipaggiamenti che vorrai dal magazzino della Duty, a patto che non siano di proprietà dei combattenti della Freedom. + + diff --git a/gamedata/configs/text/ita/st_quests_pripyat.xml b/gamedata/configs/text/ita/st_quests_pripyat.xml new file mode 100644 index 0000000..4e90d97 --- /dev/null +++ b/gamedata/configs/text/ita/st_quests_pripyat.xml @@ -0,0 +1,345 @@ + + + + Oggetto 62: cerca documenti nell'officina collaudi + + + Devi cercare dei documenti riguardanti l'oggetto 62. Dovrebbero spiegare se l'arma può essere stata utilizzata per abbattere gli elicotteri. + + + Arma non identificata: riparati nell'edificio + + + Devi ripararti nell'edificio e respingere l'attacco dei Monolith. + + + Arma non identificata: cerca informazioni + + + L'arma non è operativa, e il suo funzionamento non è chiaro. Trova un tecnico che possa identificarla. + + + Arma non identificata: uccidi il leader della squadra Monolith + + + Devi uccidere il leader della squadra Monolith, quello che utilizza l'arma non identificata. + + + Arma non identificata: perquisisci i cadaveri dei combattenti Monolith + + + I combattenti Monolith devono avere con sé l'arma non identificata. Trovala. + + + Arma non identificata: parla con Cardan + + + Cardan dovrebbe aver smaltito la sbornia. Parla con lui riguardo all'arma non identificata. + + + Arma non identificata: attendi che Cardan si riprenda + + + Cardan potrebbe sapere qualcosa sull'arma, ma prima dovrai aspettare che si svegli. + + + Fucile Gauss: informa Kovalsky riguardo all'arma + + + Devi riferire a Kovalsky tutto ciò che hai scoperto sull'oggetto 62. + + + Arma non identificata: unisciti alla squadra + + + Devi unirti alla squadra speciale e andare insieme a prendere l'arma. + + + Arma non identificata: ottieni l'arma + + + Devi ottenere l'arma del leader della squadra Monolith. + + + Arma non identificata: porta l'arma a Kovalsky + + + Hai ottenuto l'arma. Ora devi mostrarla a Kovalsky e scoprire se potrebbe aver causato lo schianto degli elicotteri. + + + Arma non identificata: partecipa all'imboscata contro i Monolith + + + L'unità di ricognizione militare sta preparando un'imboscata alla squadra Monolith. Partecipa all'operazione. + + + Forze Monolith: incontra i rinforzi + + + Kovalsky ha inviato dei rinforzi per aiutarti a eliminare la squadra Monolith trincerata nella libreria. + + + Forze Monolith: ripulisci la libreria + + + Devi eliminare tutte le forze Monolith nell'edificio. Le unità Monolith così numerose sono un pericolo per il campo militare. + + + Forze Monolith: indaga sullo strano dispositivo + + + Nell'edificio c'era uno strano dispositivo. Indaga su di esso. + + + Laboratorio X8: cerca documenti che riguardano gli esperimenti + + + Le informazioni che hai trovato fanno riferimento a un laboratorio centrale denominato "X8". Questo luogo potrebbe custodire delle informazioni sugli esperimenti segreti condotti nella Zona. + + + Unità di ricognizione scomparsa: trova la squadra + + + L'unità di ricognizione inviata da Kovalsky è scomparsa dopo uno strano scambio di comunicazioni. Devi trovarla e scoprire cosa è successo. + + + Sentinella scomparsa: perlustra l'area in cui la sentinella è morta + + + La sentinella si comportava in modo piuttosto strano. Cerca di scoprirne il motivo. + + + Sentinella scomparsa: trova la sentinella + + + Uno dei soldati è scomparso dalla propria postazione. Devi trovarlo e scoprire il motivo della sparizione. + + + Sentinella scomparsa: uccidi il controllore + + + C'era un controllore vicino alla sentinella scomparsa. Deve essere eliminato. + + + Interferenza radio: trova la squadra dispersa + + + La squadra che stava cercando la fonte dell'interferenza radio è scomparsa. Devi trovarla. + + + Interferenza radio: perquisisci i cadaveri + + + Perquisisci i cadaveri per indagare sul motivo del decesso. + + + Interferenza radio: perquisisci il cadavere + + + Perquisisci il cadavere per indagare sul motivo del decesso. + + + Interferenza radio: fai saltare la porta + + + Dovrai far saltare la porta con degli esplosivi per poter accedere all'edificio. + + + Interferenza radio: indaga sul rumore + + + Il frigorifero emette un rumore sospetto, come se qualcuno fosse chiuso al suo interno. Controlla. + + + Interferenza radio: elimina la fonte dell'interferenza + + + Hai individuato la fonte dell'interferenza radio. Devi eliminarla. + + + Interferenza radio: trova la fonte dell'interferenza + + + Nell'edificio c'è una fonte di interferenza radio. Trovala. + + + Interferenza radio: trova gli esplosivi + + + La squadra inviata a cercare la fonte dell'interferenza aveva degli esplosivi. Usali per liberare l'ingresso dell'edificio. + + + Interferenza radio: entra nell'asilo + + + La fonte del segnale si trova nell'asilo. Entra nell'edificio. + + + Evacuazione: copri i militari + + + Anche se Strelok può essere morto, devi comunque aiutare i militari a raggiungere gli elicotteri. + + + Evacuazione: copri Strelok + + + Il quartier generale è interessato alle informazioni di Strelok. Devi scortarlo fino agli elicotteri. + + + Evacuazione: raggiungi gli elicotteri + + + Sono tutti morti. Dovrai raggiungere gli elicotteri da solo. + + + Evacuazione: parla con Kovalsky + + + Devi parlare con Kovalsky prima che l'evacuazione abbia inizio. + + + Evacuazione: di' a Kovalsky che sei pronto + + + Informa Kovalsky che sei pronto a iniziare l'evacuazione. + + + Evacuazione: attendi la fine dell'emissione + + + Devi attendere la fine dell'emissione. + + + Mistero: indaga sulla fonte del segnale + + + Kirillov ha identificato uno strano segnale non lontano dalla base. Devi indagare sulla fonte del segnale. + + + Mistero: segui il segnale + + + Le coordinate del segnale sono tornate disponibili. Seguile. + + + Mistero: indaga sull'ultima posizione conosciuta del segnale + + + Il segnale è scomparso nello spiazzo dell'edificio. Indaga sull'ultima posizione conosciuta del segnale. + + + Mistero: preparati a un attacco contro la base + + + Torna alla base militare e preparati a un eventuale attacco. + + + Interferenza radio: parla con Kovalsky + + + Il Colonnello Kovalsky vuole parlare con te. + + + Laboratorio X8: entra nel pozzo dell'ascensore + + + L'ingresso del laboratorio sotterraneo si trova sotto il centro servizi Yubileiny. L'unico modo per accedervi è dal pozzo dell'ascensore. + + + Laboratorio X8: trova il generatore + + + Le porte del pozzo dell'ascensore sono senza energia. Trova e attiva il generatore di emergenza per aprirle. + + + Laboratorio X8: scendi fino al laboratorio + + + Usa l'ascensore per arrivare al laboratorio X8, che si trova sotto il centro servizi Yubileiny. + + + Occasione unica: elimina il messaggero + + + Devi eliminare il messaggero, così i mercenari non potranno trovare il laboratorio. + + + Occasione unica: attendi gli uomini del cliente + + + Attendi gli uomini del cliente e uccidi il loro leader, così i mercenari non potranno trovare il laboratorio. + + + Occasione unica: uccidi il leader della squadra dei mercenari + + + Devi uccidere il leader della squadra dei mercenari, così i mercenari saranno allo sbando e molto meno pericolosi. + + + Occasione unica: attendi l'arrivo dei mercenari + + + Attendi i mercenari e uccidi il loro leader, così i mercenari saranno allo sbando e molto meno pericolosi. + + + Occasione unica: parla con Kovalsky + + + Aggiorna Kovalsky sull'esito della missione. + + + Laboratorio X8: esci dal complesso sotterraneo o continua a cercare i documenti. + + + Hai trovato i documenti. Ora puoi lasciare il laboratorio, anche se forse ce ne sono altri all'interno del complesso. + + + Laboratorio X8: esci dal complesso sotterraneo o continua a cercare i documenti. + + + Hai trovato i documenti. Ora puoi lasciare il laboratorio, anche se forse ce ne sono altri all'interno del complesso. + + + Laboratorio X8: esci dal complesso sotterraneo + + + A quanto pare hai raccolto tutti i documenti nel laboratorio. Ora puoi uscire dal complesso sotterraneo. + + + Forze Monolith: aspetta i rinforzi + + + Dovrai aspettare i rinforzi inviati da Kovalsky per eliminare le forze Monolith nella libreria. + + + Una conversazione tranquilla: parla con Kovalsky + + + Devi parlare con Kovalsky: a quanto pare ha qualcosa di importante da dire. + + + Evacuazione: resisti vicino agli elicotteri + + + Devi proteggere gli elicotteri dagli attacchi nemici, finché non saranno pronti al decollo. + + + Evacuazione: rianima il medico + + + Sembra che il medico sia stato nuovamente colpito da delle forze non identificate. Rianimalo il più rapidamente possibile. + + + Evacuazione: torna agli elicotteri + + + Devi tornare agli elicotteri, ormai saranno pronti al decollo da un momento all'altro. + + + Evacuazione: torna subito agli elicotteri + + + Gli elicotteri sono pronti al decollo, devi salire immediatamente a bordo, i piloti non potranno aspettare a lungo. + + diff --git a/gamedata/configs/text/ita/st_quests_zaton.xml b/gamedata/configs/text/ita/st_quests_zaton.xml new file mode 100644 index 0000000..1a0aa1c --- /dev/null +++ b/gamedata/configs/text/ita/st_quests_zaton.xml @@ -0,0 +1,780 @@ + + + + Rifugio sicuro: raggiungi la Skadovsk + + + Gli unici luoghi relativamente sicuri della Zona sono i campi più grandi. Quello più vicino si trova sulla Skadovsk, e sarà la tua prossima meta. + + + Mappe dell'area: trova qualcuno interessato alle mappe + + + Mappe dell'area: offri le mappe a Pilot + + + Pilot, la guida locale, potrebbe essere interessato alle mappe dell'area tra Zaton e Jupiter. + + + Stingray 2: perlustra il luogo dello schianto + + + Perlustra il luogo dello schianto di Stingray 2. + + + Stingray 5: perlustra il luogo dello schianto + + + Stingray 5: scopri il motivo del guasto elettronico + + + Squadra Stingray: trova la fonte delle scariche che hanno colpito i due elicotteri + + + Perlustra il luogo dello schianto di Stingray 5. + + + Devi trovare la fonte della potente scarica elettrica che ha colpito l'elicottero Stingray 5. + + + Devi scoprire cosa ha provocato il guasto elettronico di Stingray 4 e 5. Pare siano stati colpiti da potenti scariche elettriche. + + + Cibo: ottieni del cibo per i mercenari + + + La squadra dei mercenari nelle officine della sotto-stazione ti ha chiesto di portare sei scatole di carne, pezzi di salsiccia o del pane. + + + Cibo: porta il cibo ai mercenari + + + Devi portare ai mercenari nelle officine della sotto-stazione il cibo che hai trovato. + + + Attrezzi: perlustra le officine della sotto-stazione + + + Pare ci siano degli attrezzi nelle officine della sotto-stazione. Forse lì troverai quelli richiesti dal tecnico. + + + A caccia della chimera: sorprendi il mutante mentre dorme + + + Devi trovare la chimera prima che si svegli. + + + In cerca di Magpie: informa Gonta + + + Pare che Magpie, lo stalker che ha imbrogliato la squadra di Gonta, sia stato trovato. Si è unito alla Freedom e ora si fa chiamare Flint. + + + A caccia della chimera: uccidi il mutante + + + La chimera è sveglia. Uccidila prima che sia troppo tardi. + + + A caccia della chimera: incontrati con Gonta al bar alle 3 del mattino + + + Devi incontrare Gonta prima dell'alba per andare a cacciare la chimera insieme alla sua squadra. + + + A caccia della chimera: informa Trapper + + + Devi riferire a uno stalker chiamato Trapper che la caccia alla chimera è riuscita. Lui dovrebbe darti una ricompensa. + + + In cerca di Magpie: trova lo stalker + + + Uno stalker chiamato Magpie ha imbrogliato la squadra di Gonta, facendola attaccare da una chimera. Ti hanno chiesto di trovare quel bastardo. + + + Punti di evacuazione: controlla il punto B205 + + + La mappa che hai trovato in uno degli elicotteri indicava vari punti di evacuazione. Controlla se i soldati hanno raggiunto il punto B205. + + + Punti di evacuazione: controlla il punto B28 + + + La mappa che hai trovato in uno degli elicotteri indicava vari punti di evacuazione. Controlla se i soldati hanno raggiunto il punto B28. + + + Punto di evacuazione: trova le coordinate del punto B28 + + + La scatola nera di uno degli elicotteri Stingray conteneva una registrazione in cui il comandante della squadra indicava un punto di evacuazione verso cui convergere. Trova le coordinate di questo punto, designato "B28". + + + Punto di evacuazione: raggiungi il punto B28 + + + Il punto verso cui i soldati dovevano convergere si trova a Pripyat. Cerca di raggiungerlo. + + + Punti di evacuazione: controlla il punto B2 + + + La mappa che hai trovato in uno degli elicotteri indicava vari punti di evacuazione. Controlla se i soldati hanno raggiunto il punto B2. + + + Strano fenomeno: porta il manufatto a Beard + + + La fonte dello strano bagliore era un manufatto altrettanto insolito. Dovrebbe interessare a Beard. + + + Strano fenomeno: chiedi informazioni sul manufatto agli stalker + + + Gli stalker potrebbero avere informazioni sullo strano manufatto, o indicarti qualcuno che ne sappia qualcosa. Vai a parlare con loro. + + + Strano fenomeno: trova la fonte del bagliore alla stazione di drenaggio + + + Dalla stazione di drenaggio proviene uno strano bagliore. Beard ti ha chiesto di trovare la fonte. + + + Strano fenomeno: prendi il manufatto + + + La fonte dello strano bagliore era un manufatto altrettanto insolito. Prendilo. + + + Strano fenomeno: parla con Beard riguardo al manufatto + + + La fonte dello strano bagliore era un manufatto altrettanto insolito. Anche se non l'hai ottenuto, devi riferire tutto a Beard. + + + Verso l'altopiano: salta nell'anomalia + + + Pare che l'unico modo per raggiungere l'altopiano sia attraverso l'anomalia. Devi saltarci dentro. + + + Verso l'altopiano: trova il sentiero segreto di Noah + + + Il PDA di Noah parlava di un "sentiero segreto" per raggiungere l'altopiano. Devi trovarlo. + + + Verso l'altopiano: chiedi a Noah come raggiungerlo + + + Pare che uno stalker chiamato Noah conosca un sentiero per l'altopiano. Devi scoprire come raggiungerlo. + + + Stalker scomparsi: consegna la prova del coinvolgimento di Tremor + + + Devi portare alla Skadovsk il PDA con le registrazioni di Tremor e mostrarlo a Beard. Le registrazioni dimostrano chiaramente il coinvolgimento del medico nelle sparizioni degli stalker. + + + Stalker scomparsi: trova una prova del coinvolgimento di Tremor + + + Devi scoprire se Tremor ha lasciato qualche prova del suo coinvolgimento nelle sparizioni degli stalker. + + + Stingray 3: perlustra il luogo dello schianto + + + Perlustra il luogo dello schianto di Stingray 3. + + + Devi portare il manufatto a Beard, ma non hai più un vantaggio sui tuoi avversari. Ora anche loro stanno cercando il manufatto. + + + Devi portare il manufatto a Beard. Ricorda che anche i tuoi avversari lo stanno cercando. + + + Devi portare il manufatto a Beard, ma pare che un gruppo ne abbia già trovato uno. Segui il segnale e cerca di completare l'incarico prima dei tuoi avversari. + + + Devi portare il manufatto a Beard, ma un altro gruppo ti ha già preceduto. Ora avrai solo metà della ricompensa che ti spetta per il manufatto. + + + Devi portare il manufatto a Beard. + + + Recupero manufatti: consegna un Gravi + + + Recupero manufatti: consegna un Occhio + + + Recupero manufatti: consegna una Bolla + + + Recupero manufatti: consegna una Conchiglia + + + Recupero manufatti: consegna un Pesce rosso + + + Recupero manufatti: consegna una Fiamma + + + Recupero manufatti: consegna una Lucciola + + + Recupero manufatti: consegna un Fiocco di neve + + + Devi trovare il manufatto per Beard, ma non hai più un vantaggio sui tuoi avversari. Ora anche loro stanno cercando il manufatto. + + + Devi trovare il manufatto per Beard. Ricorda che anche i tuoi avversari lo stanno cercando. + + + Devi trovare il manufatto per Beard, ma pare che un gruppo ne abbia già trovato uno. Segui il segnale e cerca di completare l'incarico prima dei tuoi avversari. + + + Devi trovare il manufatto per Beard, ma un altro gruppo ti ha già preceduto. Ora avrai solo metà della ricompensa che ti spetta per il manufatto. + + + Devi trovare il manufatto per Beard. + + + Recupero manufatti: trova un Gravi + + + Recupero manufatti: trova un Occhio + + + Recupero manufatti: trova una Bolla + + + Recupero manufatti: trova una Conchiglia + + + Recupero manufatti: trova un Pesce rosso + + + Recupero manufatti: trova una Fiamma + + + Recupero manufatti: trova una Lucciola + + + Recupero manufatti: trova un Fiocco di neve + + + Bussola: trova Noah e scopri dove puoi ottenere il manufatto raro + + + Devi trovare Noah al vecchio barcone e scoprire dove puoi ottenere il raro manufatto Bussola. Beard lo sta cercando da molto tempo, ed è disposto a pagare bene per averlo. + + + Bussola: porta il manufatto a Beard + + + Bussola: chiedi a Noah dove puoi trovare il manufatto raro + + + Sultan vuole mettere le mani sul manufatto che Beard sta cercando. Devi trovare Noah al vecchio barcone e scoprire dove puoi ottenere il manufatto. + + + Bussola: porta il manufatto a Sultan + + + Il manufatto che hai ricevuto da Noah è la Bussola che Sultan sta cercando. + + + Affare losco: ottieni la tua parte da Beard + + + Vai a ottenere la tua parte dei profitti di Beard. + + + Affare interessante: parla con Sultan + + + Owl il commerciante crede che Beard non stia rispettando l'accordo. Ti consiglia di chiedere aiuto a Sultan, il boss criminale dell'area. + + + Affare losco: ottieni i rilevatori dagli stalker + + + Devi fare il possibile per prendere i rilevatori sperimentali agli stalker che stanno cercando manufatti per Beard. Senza rilevatori, Beard dovrà sottostare alle richieste di Sultan. + + + Affare losco: parla con Sultan + + + Beard non ha i rilevatori, quindi devi parlare con Sultan per scoprire se ha risolto il problema degli altri fornitori di Beard. + + + Affare losco: costringi Beard a lavorare per Sultan + + + Ora che Beard è rimasto senza fornitori e rilevatori, non può più lavorare da solo. Costringilo a lavorare per Sultan. + + + Affare losco: indaga sull'attuale attività di Beard + + + Devi scoprire in che genere di attività è coinvolto Beard, in modo da tagliare i suoi canali di rifornimento. + + + Affare losco: porta via il secondo rilevatore agli stalker + + + Devi fare il possibile per prendere i rilevatori sperimentali agli stalker che stanno cercando manufatti per Beard. Senza rilevatori, Beard dovrà sottostare alle richieste di Sultan. + + + Affare interessante: porta a Novikov tre rilevatori Veles + + + Owl il commerciante ti ha offerto di partecipare a un affare molto redditizio. Devi trovare tre rivelatori Veles e consegnarli a Novikov, al bunker degli scienziati. + + + Affare interessante: attendi che Owl riceva i rilevatori + + + Novikov ha accettato i rilevatori, promettendo di rimandarli a Owl. Devi attendere che finisca di lavorare sui rilevatori e poi tornare da Owl per scoprire i risultati. + + + Affare interessante: parla con Owl + + + Owl il commerciante ti ha contattato via radio per dirti che ha qualche problema. Vuole vederti subito. + + + Affare interessante: convinci Beard a rispettare l'accordo + + + Owl il commerciante crede che Beard non stia rispettando l'accordo. Devi parlare con lui e convincerlo a rigare dritto. + + + Affare interessante: chiedi una percentuale a Owl + + + Beard è convinto di non dovere niente a Owl. Scopri chi ha ragione e chiedi una percentuale. + + + Snag ti ha chiesto di portargli il suo contenitore. L'ha nascosto in una vecchia automobile ZAZ, precipitata in un crepaccio durante un terremoto. Snag ha paura di scendere laggiù, essendo pieno di pseudo cani. + + + Hai ottenuto il contenitore di Snag. Portalo al suo legittimo proprietario per dividere equamente il suo contenuto. + + + Tana dei succhiasangue: informa gli stalker + + + Devi informare gli stalker riguardo alla tana dei succhiasangue sotto il complesso dell'antenna Krug. + + + Tana dei succhiasangue: informa Beard + + + Devi informare Beard riguardo alla tana dei succhiasangue sotto il complesso dell'antenna Krug, così potrà decidere come proteggere gli stalker. + + + Stalker scomparsi: segui Grouse + + + Grouse ti ha chiesto di perlustrare insieme a lui il complesso dell'antenna abbandonato. Ha visto dei succhiasangue e vuole controllare se il cacciatore si trova lì. + + + Stalker scomparsi: scopri cosa è successo + + + Pare che Tremor non sia innocente come sembrava. Devi scoprire cosa è successo. + + + Stalker scomparsi: trova Grouse + + + Grouse si è diretto verso le gru del porto. Forse ha scoperto qualcosa sugli stalker scomparsi, quindi dovresti raggiungerlo. + + + Stalker scomparsi: scopri dove si trova Grouse + + + Grouse non è al solito posto. Chiedi a Beard dove è andato. + + + Stalker scomparsi: trova il cacciatore disperso + + + Grouse ti ha chiesto di cercare il cacciatore disperso, che aveva il compito di trovare la tana dei succhiasangue. In base alle attuali informazioni, si tratta degli stessi succhiasangue responsabili delle recenti sparizioni degli stalker. + + + Stalker scomparsi: esci dalla tana dei succhiasangue + + + Hai scoperto una tana di succhiasangue nel seminterrato, ma le creature sono come stordite. Esci dalla tana senza farti notare. + + + Stalker scomparsi: incontra Grouse + + + Vai da Grouse per parlare della ricerca del cacciatore disperso. + + + Stalker scomparsi: torna da Grouse in seguito + + + Nel complesso dell'antenna non c'era traccia di Danila il cacciatore. Tuttavia, Grouse sembra turbato da quello che hai trovato all'interno dell'edificio e ti ha chiesto di tornare in seguito per discutere la faccenda nel dettaglio. + + + Stalker scomparsi: incontra Grouse + + + Nel luogo indicato da Grouse c'era solo un succhiasangue morto, ma nessuna traccia di Danila il cacciatore. Tuttavia, Grouse ha trovato qualcosa di interessante e ti ha chiesto di unirti a lui. + + + I succhiasangue non c'entravano nulla con gli stalker scomparsi. È stato Tremor, il medico della Skadovsk. + + + Attrezzi: porta gli attrezzi a Cardan + + + Cardan ti ha chiesto di portargli due kit di attrezzi: uno per i lavori di base e uno per quelli avanzati. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Cardan + + + Cardan ti ha chiesto di portargli due kit di attrezzi: uno per i lavori di base e uno per quelli di precisione. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Cardan + + + Cardan ti ha chiesto di portargli un kit di attrezzi per i lavori di base. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Cardan + + + Cardan ti ha chiesto di portargli due kit di attrezzi: uno per i lavori avanzati e uno per quelli di precisione. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Cardan + + + Cardan ti ha chiesto di portargli un kit di attrezzi per i lavori avanzati. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Cardan + + + Cardan ti ha chiesto di portargli un kit di attrezzi per i lavori di precisione. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Attrezzi: porta gli attrezzi a Cardan + + + Cardan ti ha chiesto di portargli tre kit di attrezzi: uno per i lavori di base, uno per quelli avanzati e uno per quelli di precisione. In cambio, il tecnico ti pagherà e potrà eseguire modifiche più complesse per armi e armature. + + + Campo dei mercenari: ottieni tutte le informazioni che trovi + + + Owl il commerciante ti ha promesso un'ottima ricompensa per qualsiasi tipo di informazioni che riuscirai a trovare nel campo dei mercenari, all'impianto dei rifiuti. È interessato ai loro piani. + + + Campo dei mercenari: ottieni tutte le informazioni che trovi + + + Owl il commerciante ti ha promesso un'ottima ricompensa per qualsiasi tipo di informazioni che riuscirai a trovare nel campo dei mercenari, all'impianto dei rifiuti. È interessato ai loro piani. + + + Tre compagni: indaga sulla sorte di Barge + + + Cardan ti ha chiesto di portare le sue scuse a uno stalker chiamato Barge, un suo vecchio compagno. Dopo un'accesa discussione, Barge è partito per una località ignota. + + + Tre compagni: indaga sulla sorte di Barge e Joker + + + Cardan ti ha chiesto di portare le sue scuse a due stalker chiamati Barge e Joker, suoi vecchi compagni. Dopo un'accesa discussione, Barge e Joker sono partiti per una località ignota. + + + Tre compagni: indaga sulla sorte di Joker + + + Cardan ti ha chiesto di portare le sue scuse a uno stalker chiamato Joker, un suo vecchio compagno. Dopo un'accesa discussione, Joker è partito per una località ignota. + + + Ordine speciale: ottieni la merce + + + La merce è stata consegnata. Ora è il momento di ottenerla da Nimble. + + + Ordine speciale: attendi la consegna + + + L'ordine è stato eseguito. Ora devi attendere che Nimble riceva la merce. + + + Reputazione: trova Snag + + + Devi trovare Snag e costringerlo a tenere la bocca chiusa. Nimble non si è mai occupato di merce rubata, mentre Snag non è certo un santo. L'ultima volta è stato visto alle gru del porto. Potrebbe essere ancora lì. + + + Devi trovare Snag e costringerlo a tenere la bocca chiusa. Non si trova alle gru del porto, ma forse i banditi potrebbero sapere dov'è. + + + Devi trovare Snag e costringerlo a tenere la bocca chiusa. Pare che i banditi siano coinvolti nella faccenda, quindi dovrebbero sapere dove si trova. + + + Devi trovare Snag e costringerlo a tenere la bocca chiusa. Al momento non c'è alcun indizio sulla sua attuale posizione. + + + Devi trovare Snag e costringerlo a tenere la bocca chiusa. A giudicare dal PDA di un bandito, gli uomini di Sultan gli stanno alle costole. Al momento, però, non ci sono indizi sulla sua attuale posizione. + + + Reputazione: scopri dove si è nascosto Snag + + + Snag non è al suo solito posto. Scopri se qualche locale ha visto dove si è diretto. + + + Devi trovare Snag e costringerlo a tenere la bocca chiusa. Non è al suo solito posto, ma forse Sultan sa dove si trova. + + + Devi trovare Snag e costringerlo a tenere la bocca chiusa. Non è al suo solito posto, ma forse Beard sa dove si trova. + + + Reputazione: parla con Snag + + + Devi trovare Snag e costringerlo a tenere la bocca chiusa. Nimble non si è mai occupato di merce rubata, mentre Snag non è certo un santo. + + + Tana dei succhiasangue: trova il condotto di ventilazione + + + Trova il condotto di ventilazione per riempire la tana dei succhiasangue con del gas velenoso. + + + Tana dei succhiasangue: trova il gas velenoso + + + Ti serve del gas velenoso per distruggere la tana dei succhiasangue. Owl dovrebbe sapere dove recuperarne un po'. + + + Ti serve del gas velenoso per distruggere la tana dei succhiasangue. Owl ha detto che puoi trovarne un po' al convoglio militare abbandonato. + + + Tana dei succhiasangue: trova le chiavi del contenitore + + + I documenti che hai trovato accennano a delle chiavi per il contenitore del gas. Devi trovarle. + + + Tana dei succhiasangue: trova un modo per aprire il contenitore del gas + + + Il contenitore del gas è chiuso. Devi trovare un modo per aprirlo. + + + Tana dei succhiasangue: posiziona il gas + + + Posiziona il gas nel sistema di ventilazione del seminterrato del complesso dell'antenna. Il gas dovrebbe riempire il seminterrato passando attraverso il condotto di ventilazione, uccidendo tutti i succhiasangue. + + + Tana dei succhiasangue: riferisci a Beard che la tana è stata distrutta + + + Riferisci a Beard che hai distrutto la tana dei succhiasangue. Ora gli stalker della Skadovsk sono al sicuro. + + + Tana dei succhiasangue: gira la valvola + + + Gira la valvola per riempire di gas velenoso il seminterrato con la tana dei succhiasangue, sfruttando il condotto di ventilazione. + + + Tana dei succhiasangue: attendi che il gas faccia effetto + + + Devi assicurarti che il gas abbia riempito la tana uccidendo tutti i succhiasangue. + + + Transazione: incontra i banditi alla stazione dei ranger + + + Sultan ti ha chiesto di partecipare a una transazione con un mercante. Accompagna i suoi uomini e proteggili in caso di necessità. + + + Transazione: incontra il mercante + + + Owl ti ha chiesto di proteggere un mercante durante una transazione. L'intera faccenda è un po' losca, e qualcosa potrebbe andare storto. + + + Transazione: incontra gli stalker alla stazione dei ranger + + + Incontra gli stalker alla stazione dei ranger e aiutali a bloccare la transazione tra i banditi e il mercante di armi. + + + Transazione: proteggi il mercante + + + Il mercante ti ha chiesto di proteggerlo durante la transazione. + + + Transazione: origlia la conversazione + + + Gli stalker vogliono origliare la conversazione tra i banditi e il mercante di armi. + + + Transazione: blocca la vendita delle armi + + + Fai il possibile per bloccare la transazione tra i banditi e il mercante. + + + Transazione: elimina i testimoni + + + La transazione del mercante non è andata a buon fine, quindi devi eliminare tutti i testimoni. + + + Transazione: proteggi il mercante + + + Devi proteggere il mercante. Inoltre ti ha chiesto di eliminare tutti i testimoni della transazione, inclusi i suoi clienti. + + + Transazione: perquisisci il mercante + + + Il mercante potrebbe avere con sé delle informazioni utili. Perquisiscilo. + + + Transazione: proteggi i banditi durante la transazione + + + Tieni gli occhi aperti e proteggi i banditi durante la trattativa con il mercante. + + + Transazione: parla con il mercante + + + La transazione con i banditi è finita, quindi puoi ottenere la tua ricompensa. + + + Transazione: ottieni la tua ricompensa da Beard + + + Beard ti aveva promesso una ricompensa se fossi riuscito a bloccare la transazione tra i banditi e il mercante. Così è stato, quindi ora puoi incassare ciò che ti spetta. + + + Transazione: parla con il leader dei banditi + + + Riferisci al leader dei banditi che sei pronto a partecipare alla transazione. + + + Il colpo: decidi cosa fare + + + Il colpo: attacca gli stalker + + + Il colpo: prendi la tua ricompensa + + + L'attacco contro il campo è stato respinto, quindi puoi ottenere la tua ricompensa dagli stalker. Se non fossero stati avvertiti dell'assalto, probabilmente non ce l'avrebbero fatta. + + + Degli stalker hanno deciso di cambiare vita, diventando dei banditi a tutti gli effetti. Devi decidere se partecipare al loro assalto, avvisare gli stalker o restarne fuori. + + + Il colpo: aspetta l'ora concordata + + + Il colpo: aspetta il momento giusto. + + + Nascondiglio irraggiungibile: porta il contenitore a Snag + + + Transazione: parla con il capo della squadra di stalker + + + La transazione è stata sabotata e il mercante di armi è morto. Parla con il capo della squadra di stalker. + + + Stalker scomparsi: spiega alla gente della Skadovsk cosa è successo + + + Devi aprire il contenitore usando le chiavi che hai trovato ed estrarre la tanica di gas velenoso. + + + Tana dei succhiasangue: estrai la tanica di gas dal contenitore. + + + Il colpo: attacca i rapinatori + + + Attaccando i rapinatori alle spalle aiuterai gli stalker a respingere il loro assalto. + + + Il colpo: incontra i rapinatori + + + Unisciti ai rapinatori nell'attacco all'accampamento degli stalker. + + + Il colpo: unisciti i rapinatori + + + Gli stalker ti hanno chiesto di aiutarli a respingere l'attacco dei rapinatori. Unisciti ai rapinatori, così potrai attaccarli alle spalle di sorpresa non appena sferrano l'attacco. + + + I rapinatori dovrebbero essere in attesa a Shevchenko. Devi raggiungerli per partecipare al loro assalto contro gli stalker. + + + Aspetta di incontrare i rapinatori. Vogliono attaccare l'accampamento degli stalker dopo la mezzanotte, ma prima dell'alba. Il luogo d'incontro è Shevchenko. + + + Il colpo: ottieni la tua parte. + + + L'attacco contro gli stalker è riuscito. Ora puoi ottenere la tua parte del bottino. + + + Aspetta il momento giusto, quando i rapinatori sono distratti dall'attacco. A quel punto puoi colpirli alle spalle per aiutare gli stalker di Shevchenko. + + + Affare losco: inizia a lavorare per Beard + + + Per prendere i prototipi di rilevatori dagli stalker che lavorano per Beard dovrai mescolarti a loro. In questo modo potrai scoprire chi sono i tuoi rivali in affari. + + + Devi prendere il contenitore e consegnarlo al proprietario. + + + Il computer di bordo di Stingray 2 conteneva delle mappe dell'area tra Zaton e Jupiter. Trova qualcuno a cui potrebbero interessare. + + + Verso l'altopiano: parla con gli stalker + + + Sembra che non ci sia modo di raggiungere direttamente l'altopiano. Chiedi agli stalker del posto come puoi fare per arrivarci. + + + Il manufatto che hai ricevuto da Noah è la Bussola che Beard sta cercando. + + diff --git a/gamedata/configs/text/ita/st_subtitles.xml b/gamedata/configs/text/ita/st_subtitles.xml new file mode 100644 index 0000000..bdd4ba0 --- /dev/null +++ b/gamedata/configs/text/ita/st_subtitles.xml @@ -0,0 +1,156 @@ + + + + La mattina del 26 aprile 1986, il reattore del blocco energetico 4 della centrale nucleare di Chernobyl viene distrutto da una massiccia esplosione termica. La polvere radioattiva trasportata dal vento si posa sull'USSR, si diffonde parzialmente sull'Europa e raggiunge persino l'America. + + + Le conseguenze del disastro sono gravi al punto che il governo dell'Unione Sovietica si vede costretto a evacuare d'urgenza i residenti delle città e dei villaggi vicini. + + + Le aree contaminate entro un raggio di 30 chilometri dalla centrale sono poste in una rigida Zona d'Esclusione. + + + Le operazioni della centrale di Chernobyl riprendono in seguito alla costruzione di un sarcofago di cemento armato sopra il blocco energetico distrutto. L'esistenza di un'enorme fonte energetica, unita al fatto che l'area non è più abitata, porta alla creazione di una rete di laboratori segreti. + + + 10 giugno 2006. La Zona si illumina con un flash accecante. Questa esplosione di luce è seguita da un momento di silenzio totale e da nuvole che evaporano nel cielo. Uno scroscio di tuoni scuote il terreno. La maggior parte dei soldati a guardia del perimetro sono uccisi all'istante. + + + 2007. Gli scienziati non riescono a spiegare l'accaduto. Le rare spedizioni nella Zona si concludono generalmente in tragedia, e i pochi sopravvissuti narrano storie di animali mutati dotati di incredibili capacità. + + + 2009. Secondo varie stime, la Zona ospita tra i cento e i trecento individui non identificati. Queste persone si fanno chiamare stalker e vivono raccogliendo le formazioni anomale note come manufatti, rivendibili per ingenti somme di denaro. + + + 2010. Nonostante i militari sorveglino il perimetro della Zona, il fenomeno degli stalker è in crescita. A ogni modo, solo le aree intorno ai confini della Zona sono state esplorate: ogni tentativo di addentrarsi verso il suo centro si è concluso con il fallimento. + + + 2012. Uno stalker di nome Strelok risolve il segreto del Bruciacervella, una potente emittente in grado di distruggere le menti umane, e lo disattiva. Dopo questo evento, gli stalker si affrettano numerosi verso il centro della Zona: alcuni sperano di trovare un tesoro di manufatti, altri cercano il leggendario Esauditore di desideri. + + + In queste circostanze in continuo cambiamento, la Sicurezza Nazionale e il Consiglio per la difesa dell'Ucraina decidono di lanciare un'operazione speciale, definita Operazione Fairway. Dozzine di elicotteri militari, carichi di truppe, si dirigono alla centrale di Chernobyl, usando una mappa delle anomalie per volare in cielo. Nonostante la preparazione meticolosa, l'operazione è un fallimento e nessuno degli elicotteri fa ritorno. + + + Il Maggiore Degtyarev, un agente speciale dell'esercito americano ed ex-stalker d'esperienza, viene inviato nella Zona per investigare sui motivi del fallimento dell'operazione. + + + Armato di fucile d'assalto, scorte per sopravvivere due settimane e una radio per comunicare con il quartier generale, il maggiore inizia il suo viaggio verso il centro della Zona. + + + Parlare con gli stalker non porta ad alcun risultato... O non possiedono le informazioni o non sono disposti a condividerle... + + + La Zona coglie ogni occasione per ricordare al maggiore che non è un luogo di vacanze. Non passa giorno senza un attacco da parte dei mutanti o, ancora peggio, della gente. + + + Anche le comunicazioni con il quartier generale non servono a nulla: le uniche informazioni affidabili riguardano le coordinate dei cinque elicotteri schiantatisi. Nel raggio di molti chilometri dalla centrale di Chernobyl, la radio è inutilizzabile. + + + Degtyarev è solo. + + + Per aver completato con successo la sua indagine, Degtyarev venne ricompensato con una promozione a colonnello. Rifiutò l'offerta di un comodo posto in ufficio e chiese invece di essere inviato nella Zona come osservatore di sicurezza permanente. + + + Le informazioni sugli psico-congegni ottenute da Degtyarev allertarono i suoi superiori. Tutte le informazioni su un determinato numero di laboratori vennero rimosse dagli archivi militari e catalogate come top secret. Al personale americano al lavoro nella Zona fu ordinato di impedire a ogni costo la fuga di informazioni sul lavoro svolto in questi laboratori. + + + Sulla base dei documenti tecnici riguardanti l'oggetto 62 vennero creati numerosi campioni da esperimento. In seguito a una serie di prove, si decise di non proseguire lo sviluppo su larga scala dell'arma a causa dell'alto costo delle munizioni. Nonostante questo, prove dimostrano che uno sviluppo segreto del fucile Gauss è ancora in corso. + + + Sultan e la sua banda lasciarono la Skadovsk dopo che i loro tentativi di conquistare la nave fallirono. La conseguente sensazione di relativa sicurezza fra gli stalker portò a un vertiginoso aumento nel numero dei manufatti venduti a Beard. Questo provocò un'impennata nelle sue vendite, mentre la Skadovsk divenne famosa quasi quanto il bar 100 Rads. + + + L'ordine sociale voluto da Sultan si impose sulla Skadovsk, e la nave divenne una base militare. Riluttante a continuare a pagare il pizzo in cambio di protezione, Beard partì insieme a un gruppo di stalker per esplorare le aree ancora sconosciute della Zona. I tentativi degli stalker di riprendere il controllo della nave si sono interrotti rapidamente, allorché, perché servisse da esempio, alcuni elementi indisciplinati furono gettati fuori bordo a morire nelle emissioni. + + + La Skadovsk è rimasta una casa per tutti quelli abbastanza fortunati da raggiungerla. I banditi hanno cercato di stabilire il loro cosiddetto "ordine" sulla nave, ma gli stalker li hanno tenuti a bada. Sulla nave si è quindi stabilita una fragile pace. + + + Purtroppo, non è durata a lungo. I succhiasangue della tana vicina alla Skadovsk hanno raggiunto la nave. Quando i loro attacchi iniziarono ad avvenire anche in pieno giorno, fu istituita una missione per gestire il problema. Purtroppo, l'operazione non riuscì a ripulire i tunnel, e poco dopo un'ondata di predatori massacrò gli abitanti della nave. + + + In seguito alla distruzione della tana dei succhiasangue, i mutanti smisero di disturbare in modo significativo la vita della Skadovsk. Per un po', la vecchia nave divenne un centro relativamente tranquillo nel mondo in continuo cambiamento che è la Zona. + + + La Freedom riuscì a guadagnarsi la fiducia degli stalker alla stazione Yanov. La Duty organizzò un assalto nel tentativo di recuperare il terreno perduto, ma il Tenente Colonnello Shulga fu ucciso nel conseguente scontro a fuoco. La squadra della Duty non resistette a lungo senza il suo comandante. + + + Nuove reclute e una popolarità crescente tra gli stalker consentirono alla Duty di scacciare la Freedom dalla stazione Yanov. Loki e la sua squadra della Freedom furono uccisi dopo una feroce battaglia. + + + Alla stazione Yanov si raggiunse un delicato equilibrio tra le fazioni Freedom e Duty. Stanchi di una lotta senza senso, i combattenti di entrambe le parti cominciarono a lasciare le rispettive squadre e a unirsi agli stalker liberi. + + + La spedizione di ricerca scientifica organizzata dai professori Hermann e Ozersky fu un successo. I dati raccolti facilitarono lo sviluppo di numerosi congegni unici nel loro genere e di molte droghe. Alla luce di questi eventi, i fondi per i programmi di ricerca nella Zona ricevettero un'impennata. + + + La spedizione di ricerca scientifica organizzata dai professori Hermann e Ozersky non raccolse dati a sufficienza e fu sospesa. Tornati nel mondo esterno, i due scienziati proseguirono a lavorare ognuno per conto proprio. + + + Le storie di Garry sulle lotte dell'esercito contro i pericoli di Pripyat suscitarono grande interesse, e vari gruppi presero a esplorare la città fantasma. Nonostante i continui attacchi dei Monolith, gli stalker riuscirono a stabilirsi nel vecchio accampamento dell'esercito, che usarono come base da cui partire per le esplorazioni nel cuore della città, dove fecero notevoli progressi. + + + Le storie di Garry sul destino dell'esercito scoraggiarono i tentativi degli stalker di entrare a Pripyat. I pochi che osarono avventurarsi in città incapparono in fenomeni terribili e inspiegabili, che non fecero che gettare ulteriore mistero sul già cupo ritratto della città. + + + L'Oasi non costituiva più una leggenda. L'identità di coloro che erano riusciti a raggiungere l'anomalia segreta divenne un argomento di discussione sempre più regolare tra gli stalker. Il numero degli avventurieri che cercarono di seguire i loro passi rimase alto, una cosa di cui i banditi continuarono ad approfittarsi. I principianti sono ingannati dalle loro offerte di accompagnarli fino all'Oasi, che generalmente si concludono con rapine da parte di altri stalker. + + + Le squadre di mercenari continuano a essere attive nella Zona. Il loro interesse per i laboratori segreti è cresciuto e ha attirato l'attenzione dell'esercito americano. Nonostante questo, i tentativi di stabilire l'identità del committente dietro le azioni dei mercenari non hanno dato frutti. + + + L'area intorno alla stazione Yanov continua ad attirare un numero sempre crescente di stalker. La mancanza di mutanti pericolosi e l'abbondanza di aree anomale hanno fatto sì che quell'area venisse definita dagli stalker un "covo di tesori". + + + L'area intorno alla stazione Yanov si è fatta la reputazione di essere uno dei posti più pericolosi della Zona. Erano sempre meno gli stalker che riuscivano a tornare dagli attacchi, e molti morivano per mano dei mutanti nei pressi degli accampamenti. Uno degli stalker scomparsi è Zveroboi, partito per cacciare una chimera. + + + Zulu tornò alla base principale della Duty, allo stabilimento Rostok. Nessuno sa di cosa abbia discusso con il capo della Duty, il Generale Voronin, ma molti giorni dopo fu avvistato a capo di una squadra numerosa diretta al centro della Zona. + + + Voci sul destino di Zulu arrivarono alle orecchie del capo della Duty, il Generale Voronin. Con grande sorpresa di tutti, Voronin decise di conferire a Zulu, in modo postumo, lo Scudo d'argento, la massima riconoscenza della Duty. + + + Vano si è diretto ai magazzini della Freedom controllati dai militari, e qui la sua personalità allegra e il suo ottimismo gli sono valsi rapidamente la popolarità che meritava. Infine, si è messo a capo di un piccolo gruppo di ricercatori coinvolti nelle indagini delle aree anomale. + + + Gli stalker della stazione Yanov ogni tanto ricordano ancora l'allegro Vano, e non hanno dimenticato la sua personalità bonaria e le sue capacità di stalker. Sono tutti d'accordo nel sostenere che, considerata la sua fine, Vano abbia commesso un grosso errore a decidere di cercare una strada per Pripyat. + + + Nella Zona è comparso un nuovo gruppo di stalker. Sono ben addestrati ma i loro obiettivi restano ignoti. Voci non confermate indicano che un tempo erano combattenti Monolith, la cui squadra era guidata da un certo Strider. + + + In pochi si sono accorti della scomparsa di Strider, l'unico che sapeva cosa accadeva a chi rimaneva affascinato dai Monolith e li aiutava. + + + Il Tenente Sokolov continuò a sorvolare la Zona e fu abbattuto da dei mercenari sopra Limansk. Due settimane dopo fu recuperato da una pattuglia nei pressi del Cordon. La sua sopravvivenza fu considerata un piccolo miracolo. Sokolov lasciò le forze aeree poco dopo e si unì a una compagnia di linea civile. + + + Alla lista delle vittime subite nel corso dell'Operazione Fairway fu aggiunto un altro nome: "Tenente O.N. Sokolov. Morto nell'adempimento del suo dovere." + + + Owl riuscì a stabilire buoni contatti con clienti esterni alla Zona. Trafficava informazioni e, se le voci sono vere, uno dei suoi clienti più importanti sono gli Stati Uniti. + + + Un gruppo di stalker fu costretto a rifugiarsi sulla vecchia chiatta di Noah durante un'emissione particolarmente intensa. La chiatta fu attaccata da un'orda di snork poco dopo e gli stalker capirono subito che si trovavano in una piccola ma efficace fortezza. La cosa ancora più stupefacente fu il gruppo di cuccioli di pseudocani che Noah guidò in battaglia contro gli snork. + + + Scoperte le sorti dei suoi amici, Cardan rinunciò ai sogni di una carriera come stalker. Superato il problema della dipendenza da alcol, si trasferì a Yanov, dove si unì a Nitro per gestire un centro riparazioni. Nel tempo libero entrambi i tecnici si dedicarono con passione allo sviluppo di un veicolo adatto all'ambiente inospitale della Zona. + + + Superata la propria dipendenza dall'alcol, Cardan lasciò la Skadovsk. Gli stalker dicono che partì alla ricerca dei suoi amici scomparsi. Tornò molti giorni dopo, ferito e contaminato dalle radiazioni. Le sue ferite guarirono e lui lasciò la Zona per sempre. + + + Strelok passò le informazioni ottenute alla centrale di Chernobyl ai comandanti dell'esercito americano. Questo spinse il Governo alla creazione di un Istituto scientifico per la ricerca dell'area anomala di Chernobyl. Strelok assunse la posizione di Consulente scientifico capo dell'Istituto. + + + La conoscenza di Strelok si perse insieme a lui. Le informazioni che trovò alla centrale di Chernobyl si sarebbero potute sfruttare per risolvere gli enigmi della Zona, ma non raggiunsero mai il mondo esterno. A quanto pare la Zona sa come mantenere i propri segreti. + + + Quando il Colonnello Kovalsky, comandante del gruppo degli Stingray, tornò dalla Zona, fece rapporto ai suoi comandanti sulle ragioni del fallimento dell'Operazione Fairway. In seguito a un'indagine e ai tentativi falliti di addossare a lui la colpa, il colonnello fu infine congedato con onore. + + + Il Colonnello Kovalsky, comandante del gruppo degli Stingray, trovò il suo luogo di riposo non lontano dalla sua squadra. I loro corpi furono presi dalla Zona, e a ricordare il loro sacrificio non rimase che qualche foto sbiadita in un museo militare specializzato. + + diff --git a/gamedata/configs/text/ita/ui_st_credits.xml b/gamedata/configs/text/ita/ui_st_credits.xml new file mode 100644 index 0000000..69d0ae3 --- /dev/null +++ b/gamedata/configs/text/ita/ui_st_credits.xml @@ -0,0 +1,684 @@ + + + + Sergey Chechin + + + Maciej Abramowicz + + + Armen Abroyan + + + Attori + + + Tester + + + AMD/ATI + + + Roman Androshiuk + + + Animatore + + + Dipartimento grafico + + + Direttore artistico + + + Nikita Atroshenko + + + Damian Bajorek + + + Mikhail Bastrykin + + + Kamil Bilinski + + + Krzysztof Binkowski + + + Arkadiusz Bochenek + + + Justin Boggs + + + Anatoly Bogush + + + Wojciech Borowy + + + Stanislaw Burtsau + + + Modelli personaggi + + + Aleksey Cherevatenko + + + Jerzy Chrul + + + Wojciech Ciemny + + + Compositore + + + Dmitry "Abe" Davidyan + + + Aaron Davies + + + Alexander Demidenko + + + Dipartimento + + + programmazione + + + Lukasz Derewonko + + + Ruslan Didenko + + + Yuri Doroshenko + + + Elena Dovgaliuk + + + Rafal Durajczyk + + + Petr Dushinsky + + + Maciej Dziarnowski + + + Sergey Eremenko + + + Yuri "Dark" Falchenko + + + Jakub Gabryel + + + Cezary Galach + + + Dipartimento progettazione + + + Programmazione azione di gioco + + + CQ CENEGA + + + Ringraziamenti speciali + + + Filip Gerasimov + + + Grigory Hermann + + + Angelica Girich + + + Pawel Golubinski + + + Marcin Gorniak + + + Tomasz Goscicki + + + Programmatori grafica + + + Holger Grun + + + Pawel Grzywaczewski + + + Sergiy Grygorovich + + + Marcin Gutowski + + + Dmitry Yasenev + + + Intel + + + Sergey Ivantsov + + + Norbert Jankowski + + + Alexander Kachaniuk + + + Dmitry Kalita + + + Aleksander Keska + + + Andrey "Darin" Kirienko + + + Lukasz Kobylanski + + + Andrey Kolomiets + + + Artur Komorek + + + Yuri Konstantinov + + + Maria Kotolovskaya + + + Alexander Kovach + + + Kirill Koval + + + Irina Krivchikova + + + Dmitry Krivets + + + Eugene Kuchma + + + Svetlana Kudrya + + + Sergey Kurbatov + + + Olga Kuzhel + + + Dmitry Kuzmenko + + + Aleksey Kuznetsov + + + Oleg Kuznetsov + + + Szymon Lazarski + + + Animatore capo + + + Grafico capo + + + Capo progettista di gioco + + + Capo programmatore + + + Capi tester + + + Esperti di riferimento + + + Progettazione livelli + + + Correzione dei testi + + + Vladimir Litvinenko + + + Eric Lundgren + + + Sergey Maistrenko + + + Dmitry Macedon + + + Roman Malinkin + + + Responabili di progetto + + + Alexander Maniliuk + + + Daniel Mankowski + + + Denis Matveenko + + + Maciej Mazurek + + + Piotr Mazurkiewicz + + + Darren McPhee + + + Igor Melnikov + + + Victor Merkulov + + + Damian Mielnik + + + Pavel Mikhailov + + + Konstantin Mironov + + + Un sentito ringraziamento a Oleg Fomenko + + + e BuntarMedia + + + per i consigli relativi al MOCAP + + + Vladimir Morev + + + Andrey Moroz + + + Dawid Mrozowski + + + Yuri Negrobov + + + Programmazione multigiocatore + + + nVidia + + + Aleksey Omelchuk + + + Lukasz Osinski + + + Mikhail Parfeniuk + + + Eugene Pashin + + + Igor Pasichnyi + + + Bartosz Peas + + + Programmazione fisica + + + Jacek Piotrowski + + + Alexander Plichko + + + Dipartimento PR + + + Direttore PR + + + Responsabili PR + + + Sergey Prishepa + + + Produttore + + + Responsabile di progetto + + + Testing + + + Anton Ravin + + + Sebastian Rejent + + + Mateusz Rekorajski + + + Filip Resiak + + + Peter Ross + + + Ivan Rozin + + + Lukasz Ruminski + + + Denis Rutkovsky + + + Lukasz Rynkowski + + + Responsabile sviluppo relazioni commerciali + + + Piotr Samborowski + + + Maria Shapunova + + + Sergey Shelest + + + Igor Sidorenko + + + Mikolaj Sitkiewicz + + + Yuri Skripal + + + Konstantin Slipchenko + + + Tomasz Sobotka + + + Produttore audio + + + Ringraziamenti + + + speciali a + + + Oleg Stalchuk + + + Liudmila Starodub + + + Vladimir Stavitsky + + + Pawel Stempien + + + Pawel Strzelczyk + + + Riconoscimenti + + + Konstantin Stupivtsev + + + Servizio + + + clienti + + + Rafal Szekalski + + + Maciej Szumowski + + + Marcin Szwargolinski + + + Vladimir Tereshiuk + + + Sergey Terliuk + + + Texture + + + E a tutti coloro che ci hanno aiutato a + + + creare un gioco migliore dei precedenti: + + + Konstantin Morozkov + + + Yaroslav "Uncle Yar" Alexandrov + + + Dmitry "Comandor" Ivanov + + + Oleg Chernov + + + Ig. Valerian (Golovchenko) aka oVal + + + M. Bystrykhin + + + Eugene "Mulder" Khaletskiy + + + Pavel "Goon" Bolotov + + + Alexander "Leks" Abramov + + + Alexander Novikov + + + Alexander Poshtaruk, Andrey Oleshk + + + Eugene "KRANZ" Goncharenko + + + Sergey Dvuzhilny + + + Aleksey "Don Reba" Badalov + + + Sergey Dvuzhilny, Tolusha + + + Artem Zuev, aka BAC9-FLCL + + + Glot, Patriot, Mers + + + Tiger, Demesis, Kharon, Moby + + + Alexander Oleinik + + + Konstantin "Inquisitor" Kriuchkov + + + Alexander Shakhovsky, Igor Dolzhenko + + + Sergey "Tur" Leshenko + + + Dmitry "Hill" Gorban + + + Mikhail Kliuev + + + Sergey "Termite" Volchanov + + + Sergey Tikhomirov + + + Ilya Tolmachev + + + Jakub Trudzik + + + Progettazione interfaccia + + + Yuri Uralsky + + + Denis "Tetri$Zs" Yusupov + + + RandyJ VanderHeyden + + + Vladimir Vazhinsky + + + Andrey Verpakhovsky + + + Alexander Vilkov + + + Anastassia Voskolovich + + + Andrzej Wardziak + + + Programmazione web + + + Dominik Wojcik + + + Lukasz Watroba + + + Eugene Yablon + + + Yuri Yatsenko + + + Eugene Yatsiuk + + + Oleg Yavorsky + + + Valentin Yeltyshev + + + Eugene Zaitsev + + + Andrey Zakoliukin + + + Marek Zdziarski + + + Michal Zegarski + + + Albert Zmudzki + + + Aleksey Zorin + + + Bartosz Zukowski + + + Victoria "Morrant" Yukhno + + + Sergey "ion" Kalintsev + + + Roman "RVCool" Kulikov + + + Maxim Smirnov + + + Omar Al-Shekhly + + + Roman =Marauder= Arhipov + + diff --git a/gamedata/configs/text/ita/ui_st_inventory.xml b/gamedata/configs/text/ita/ui_st_inventory.xml new file mode 100644 index 0000000..11942d0 --- /dev/null +++ b/gamedata/configs/text/ita/ui_st_inventory.xml @@ -0,0 +1,303 @@ + + + + Denaro insufficiente + + + Il personaggio non ha denaro a sufficienza + + + $$ACTION_QUICK_USE_1$$ + + + $$ACTION_QUICK_USE_2$$ + + + $$ACTION_QUICK_USE_3$$ + + + $$ACTION_QUICK_USE_4$$ + + + attiva manufatto + + + aggancia lanciagranate a + + + attacca mirino a + + + attacca silenziatore a + + + Prezzo + + + Gruppo: + + + Condizione + + + stacca lanciagranate + + + stacca mirino + + + stacca silenziatore + + + indossa tuta + + + lascia + + + lascia tutto + + + mangia + + + kg + + + attacca alla cintura + + + sposta nello zaino + + + sposta nello slot + + + Al mercante non interessano oggetti come questi. + + + L'oggetto è troppo danneggiato per essere scambiato. + + + gioca + + + vendi oggetto + + + Condizione dell'armatura + + + Contaminazione radioattiva + + + rimuovi tuta + + + scarica + + + usa + + + Peso + + + Dim. caric. + + + Precisione + + + Acquista munizioni di base per la pistola.(Q) + + + Acquista munizioni per il fucile (W) + + + Guarig. ferite + + + Annulla + + + Impossibile acquistare l'arma + + + Restrizioni alla quantità + + + Danno + + + Predefinito (F5) + + + Indietro + + + Acquista il lanciagranate sottocanna per il fucile (D) + + + Acquista le granate per il lanciagranate sottocanna (E) + + + Ergonomia + + + Ora + + + Riprist. salute + + + Pesante + + + Compra l'ultima configurazione acquistata + + + Precedente (F4) + + + Denaro + + + Richiesto + + + Denaro insufficiente + + + OK + + + Peso trasportato + + + Prot. term. + + + Prot. chim. + + + Armatura + + + Prot. rad. + + + Prot. el. + + + Prot. psic. + + + Ass. imp. + + + Rec. energetico + + + Configurazione 1 (F1) + + + Configurazione 2 (F2) + + + Configurazione 3 (F3) + + + Radiazione + + + Restrizione del rango + + + Cad. fuoco + + + Cancella (C) + + + Fuc. d'assalto + + + Eliminaz. fame + + + Acquista il mirino ottico per il fucile (S) + + + Vendi tutti gli oggetti nello zaino (X) + + + Fucili + + + Acquista il silenziatore per la pistola (A) + + + Acquista il silenziatore per il fucile (F) + + + Fuc. di prec. + + + Tempo + + + Ne hai già uno + + + I servizi online di S.T.A.L.K.E.R. non sono accessibili. + + + Impossibile connettersi con il server principale. + + + Protezione: + + + Predefinito + + + Configurazione acquistata salvata come + + + Peso totale + + + drink + + + Recupero energetico + + + Emorragia + + + Peso massimo + + + Salute + + + Munizioni + + + Durata + + + sec + + + Consente di sopravvivere a un'emissione + + + indossa il casco + + + rimuovi il casco + + diff --git a/gamedata/configs/text/ita/ui_st_ixray.xml b/gamedata/configs/text/ita/ui_st_ixray.xml new file mode 100644 index 0000000..469ff50 --- /dev/null +++ b/gamedata/configs/text/ita/ui_st_ixray.xml @@ -0,0 +1,62 @@ + + + + S.T.A.L.K.E.R.: Chiamata di Pripyat + + + Menu principale + + + Livello: + + + Salvataggio rapido + + + Salvataggio automatico + + + + m + + + Distanza di colpo + + + + Apri il bagagliaio ($$ACTION_USE$$) + + + Usa ($$ACTION_USE$$) + + + + Libero + + + + Ricarica automatica + + + + Caricamento texture multithread + + + Mappa delle ombre + + + 1024x1024 + + + 2048x2048 + + + 3072x3072 + + + 4096x4096 + + + Sempre attivo + + diff --git a/gamedata/configs/text/ita/ui_st_keybinding.xml b/gamedata/configs/text/ita/ui_st_keybinding.xml new file mode 100644 index 0000000..7d36e4b --- /dev/null +++ b/gamedata/configs/text/ita/ui_st_keybinding.xml @@ -0,0 +1,225 @@ + + + + PDA + + + Ordina di attaccare + + + Cammina + + + Manufatto + + + Indietro + + + Binocolo + + + Menu di acquisto + + + Chat + + + Chat a squadre + + + Console + + + Contatti nel PDA + + + Accovacciati + + + Attiva/Disattiva accovacciati + + + Rilevatore + + + Giù + + + Lascia + + + Fuoco + + + Modalità di fuoco successiva + + + Modalità di fuoco precedente + + + Avanti + + + Lanciagranate sottocanna + + + Generale + + + Direzione + + + Zaino + + + Movimento + + + Multigiocatore + + + Arma + + + Zaino + + + Salto + + + Sinistra + + + Inclina a sinistra + + + Spostamento a sinistra + + + Mappa nel PDA + + + Arma nello slot successivo + + + Dispositivo visione notturna + + + Pausa + + + PDA + + + Arma nello slot precedente + + + Indietro + + + Ricarica + + + Ripara + + + Destra + + + Inclina a destra + + + Spostamento a destra + + + Punti + + + Schermata + + + Menu di selezione del modello + + + Corri + + + Menu di selezione della squadra + + + Torcia + + + Attiva + + + Su + + + Usa + + + Fasciatura veloce + + + Kit di pronto soccorso veloce + + + Avvia votazione + + + Vota + + + Vota "No" + + + Vota "Sì" + + + Arma 1 + + + Arma 2 + + + Arma 3 + + + Arma 4 + + + Arma 5 + + + Arma 6 + + + Modifica tipo di munizioni + + + Precedente arma di questo tipo + + + Avvicina visuale + + + Messaggi vocali (1) + + + Messaggi vocali (2) + + + Slot rapido 1 + + + Slot rapido 2 + + + Slot rapido 3 + + + Slot rapido 4 + + diff --git a/gamedata/configs/text/ita/ui_st_loadscreen.xml b/gamedata/configs/text/ita/ui_st_loadscreen.xml new file mode 100644 index 0000000..1b504d5 --- /dev/null +++ b/gamedata/configs/text/ita/ui_st_loadscreen.xml @@ -0,0 +1,474 @@ + + + + 100 CONSIGLI PER SOPRAVVIVERE NELLA ZONA + + + Colpisci il nemico all'occhio per ucciderlo all'istante, a prescindere dal livello della sua armatura. + + + L'AC-96/2 dispone di una modalità di fuoco a due colpi molto particolare. In questa modalità, entrambi i proiettili della raffica colpiranno il bersaglio nello stesso punto. + + + Le doppiette a canna doppia possono sparare due colpi quasi simultaneamente. + + + Non sottovalutare le pistole. Forniscono una notevole capacità d'arresto e possono essere molto efficaci contro i bersagli scarsamente corazzati. + + + I fucili da cecchino, stabili e precisi, sono l'ideale per eliminare i nemici da lontano. A corto raggio, tuttavia, sono meno efficaci. + + + I colpi sparati in movimento sono molto meno precisi rispetto a quelli da posizione fissa in piedi o abbassata. + + + Le armi e le tute protettive si usurano in fretta nelle condizioni proibitive della Zona. Le armi usurate sono meno precise e tendono a incepparsi, mentre le tute ti proteggeranno con minore efficacia. + + + Premi "$$ACTION_SCREENSHOT$$" per catturare un'immagine. + + + La posizione del manufatto o del giocatore che lo possiede viene indicata sulla minimappa. Se il manufatto è lontano, sulla minimappa compare una freccia che ne indica la direzione. + + + L'AC-96/2 dispone di una modalità di fuoco a due colpi molto particolare. In questa modalità, entrambi i proiettili della raffica colpiranno il bersaglio nello stesso punto. + + + Le doppiette a canna doppia possono sparare due colpi quasi simultaneamente. + + + Non sottovalutare le pistole. Forniscono una notevole capacità d'arresto e possono essere molto efficaci contro i bersagli scarsamente corazzati. + + + I fucili da cecchino, stabili e precisi, sono l'ideale per eliminare i nemici da lontano. A corto raggio, tuttavia, sono meno efficaci. + + + Le armi e le tute protettive si usurano in fretta nelle condizioni proibitive della Zona. Le armi usurate sono meno precise e tendono a incepparsi, mentre le tute ti proteggeranno con minore efficacia. + + + Alcuni medicinali hanno caratteristiche uniche. Le pillole Ercole, per esempio, aumentano temporaneamente la capacità di carico, mentre le sostanze psico-bloccanti migliorano la tua resistenza alle psico-emissioni. + + + Premi "$$ACTION_SCREENSHOT$$" per catturare un'immagine. + + + Consiglio n° + + + La vodka, un'alternativa economica alle medicine antiradiazioni, è il modo più semplice per ridurre gli effetti delle radiazioni sul corpo. + + + Puoi accedere alle informazioni dettagliate della missione in corso tenendo premuto "$$ACTION_SCORES$$". + + + Per cercare i manufatti ti occorre un rilevatore. I rilevatori migliori semplificano le ricerche e potrebbero rilevare manufatti ancora più preziosi. + + + Gli stalker non fanno entrare nei loro accampamenti gente con le armi in bella vista. Per nascondere le tue armi premi il tasto appropriato ("$$ACTION_WPN_1$$", "$$ACTION_WPN_2$$", "$$ACTION_WPN_3$$", "$$ACTION_WPN_4$$"). + + + Puoi identificare i confini di un'anomalia lanciando dei bulloni. Per tirare fuori i tuoi bulloni, premi "$$ACTION_WPN_6$$". + + + Oltre a placare la fame, il cibo ripristinerà parte della tua salute. + + + Le bevande energetiche migliorano temporaneamente il tuo recupero di resistenza, che aumenta il tuo potenziale di mobilità. + + + Una resistenza ridotta può renderti immobile e vulnerabile agli attacchi nemici in momenti cruciali. + + + Puoi controllare quanto sei nascosto usando gli indicatori di rumore e di rilevamento dei nemici che si trovano nell'angolo in alto a sinistra dello schermo. + + + Impugnare un rilevatore non ti impedisce di usare un coltello, una pistola o un otturatore con l'altra. + + + Alcuni prodotti medici aumentano la resistenza del fisico agli effetti dannosi. Usare questi prodotti può salvarti la vita durante le emissioni nelle aree anomale. + + + Puoi richiamare il menu contestuale degli oggetti nel tuo zaino collocando il puntatore del mouse sull'oggetto desiderato e premendo il pulsante destro. + + + Oltre ai loro soliti effetti, molti manufatti sono anche radioattivi. Puoi annullare questo effetto usando manufatti che assorbono le radiazioni. + + + Il tuo coltello è inutile contro nemici dotati di armi da fuoco. Usalo nei combattimenti corpo a corpo o per un'uccisione furtiva. + + + Il peso che trasporti riduce la tua resistenza. Un peso eccessivo limiterà la tua mobilità, mentre se sarai troppo sovraccarico non potrai muoverti affatto. + + + Un rilevatore è l'unico modo affidabile per controllare se nelle aree anomale sono presenti manufatti. + + + La maggior parte dei manufatti restano invisibili mentre si spostano nell'area anomala, finché non vengono localizzati dal tuo rilevatore. + + + I mutanti sono più attivi di notte, il che spiega perché gli stalker preferiscono attendere la luce del sole prima di avventurarsi nella Zona. + + + Se sei stato esposto alle radiazioni, usa le droghe anti-radiazioni. Se non ne hai, usa i kit di pronto soccorso per gestire i sintomi iniziali finché non potrai andare da un medico. + + + La maggior parte degli stalker possono portarti in un luogo vicino, ma una guida esperta può condurti velocemente e in tutta sicurezza ad aree lontane. Però, ti faranno pagare i loro servizi un occhio della testa. + + + Vendere manufatti non è l'unico modo per fare contanti. Anche liberarti dell'attrezzatura inutile può essere proficuo. Ricorda che di solito ai mercanti non interessano gli oggetti gravemente danneggiati. + + + Per staccare un silenziatore, un mirino o un lanciagranate sottocanna dalla tua arma, clicca con il pulsante destro del mouse sull'arma nel tuo zaino e seleziona l'azione desiderata dal menu contestuale. + + + Se vuoi muoverti facendo il minimo rumore, premi "$$ACTION_ACCEL$$" per camminare o "$$ACTION_CROUCH$$" per accovacciarti. + + + Le doppiette sono armi per i combattimenti ravvicinati. Più lontano è il nemico, minore sarà il loro effetto. + + + Quando ti metti al riparo dalle piccole armi da fuoco, assicurati di ripararti dietro qualcosa di solido. A differenza dei muri di cemento, le assi di legno e le lastre di metallo non sono un gran riparo. + + + I colpi alla testa infliggono ingenti danni e sono letali per gran parte dei nemici. + + + Ciascun tipo di mutante nella Zona ha il suo stile di combattimento. Tienilo a mente e avrai molte più possibilità di sopravvivere. + + + Puoi regolare la distanza di lancio di una granata tenendo premuto "$$ACTION_WPN_ZOOM$$". + + + I nemici possono usare le granate e non si risparmieranno dal farlo. Quando vedi l'indicatore di granata, allontanati immediatamente dal raggio di esplosione. + + + Se acceleri prima di saltare riuscirai a superare crepacci e fenditure più grandi. + + + Gli indicatori chiave che indicano i tuoi livelli di salute e resistenza si trovano nell'angolo in basso a destra dello schermo. + + + La Zona vive di vita propria, il che significa che c'è sempre la possibilità di incappare in mutanti o in stalker nemici nelle zone che hai già ripulito. + + + Tieni sempre gli occhi aperti nella Zona e non fare affidamento alle vecchie informazioni. Quando torni in un'area anomala già esplorata, potresti scoprire che il vecchio sentiero già battuto non esiste più. + + + Parla con gli stalker locali per ricevere informazioni utili sulle nuove aree o sugli eventi recenti. + + + Puoi usare qualunque arma presente in entrambi gli spazi per le armi. In questo modo potrai creare combinazioni flessibili di armi, per esempio fucile d'assalto/doppietta o pistola/fucile da cecchino. + + + Ciascun mercante che incontri nei vari campi di stalker ti offrirà la sua merce caratteristica. Per esempio, i medici avranno le migliori selezioni di prodotti medicinali. + + + Se arrivi in un campo di stalker ferito o avvelenato dalle radiazioni, puoi sfruttare gratuitamente l'assistenza del medico locale. + + + Puoi lasciare le tue cose in un ripostiglio personale all'accampamento per evitare di portarti in giro roba inutile. + + + Se devi aspettare una determinata ora, puoi fare un sonnellino all'accampamento per far passere il tempo. Per farlo, trova l'area dormitorio, premi "$$ACTION_USE$$" e scegli per quanto tempo vuoi dormire. + + + Il dispositivo di visione notturna nel tuo elmo può essere potenziato alla versione di nuova generazione. In questo modo amplierai notevolmente il suo raggio d'azione. + + + Quando sei nella Zona, portati sempre un paio di caricatori di riserva... ti torneranno sicuramente utili. + + + Ricorda di salvare la partita regolarmente. In questo modo non dovrai giocare più e più volte la stessa parte. + + + Per usare le droghe nel modo giusto ti conviene conoscere bene i loro effetti. Consulta la descrizione delle droghe per scoprire quali sono gli utilizzi più adeguati. + + + Usa le granate per attaccare i nemici al riparo. Ricorda il raggio d'azione delle granate per non colpire combattenti amici. + + + Per scartare un oggetto dallo zaino clicca su di esso con il pulsante destro del mouse e seleziona l'azione dal menu contestuale. + + + Nel menu opzioni è possibile impostare il gioco affinché salvi i tuoi progressi in punti determinati. + + + Quando torni all'accampamento ti conviene riparare la tua attrezzatura, vendi il bottino di cui non hai bisogno e fai rifornimento di munizioni e medicinali. + + + Per ridurre gli effetti dannosi delle aree anomale durante gli attacchi nella Zona, usa una tuta protettiva, i manufatti e assumi le droghe adeguate. + + + Oltre alle armi e alle munizioni, sui corpi dei cadaveri potresti trovare oggetti preziosi come i PDA contenenti informazioni. + + + I manufatti non sono solo un bottino prezioso: oltre a essere leggeri e costosi, spesso possiedono effetti estremamente utili. + + + A causa dell'ambiente della Zona, molti mutanti sono radioattivi. Avvicinarli senza un'adeguata protezione è estremamente pericoloso. + + + Per fermare l'emorragia puoi usare una fasciatura, un kit di pronto soccorso militare o le droghe Vinca. Se non te ne occupi in fretta, un'emorragia potrebbe danneggiare seriamente la tua salute. + + + Alcune armi ti permettono di montare un mirino a lungo raggio. Per regolare la distanza, premi "$$ACTION_NEXT_SLOT$$" or "$$ACTION_PREV_SLOT$$". + + + Passare attraverso alcuni posti è impossibile, anche quando sei accovacciato. Per accovacciarti il più in basso possibile, tieni premuti "$$ACTION_CROUCH$$" e "$$ACTION_ACCEL$$" contemporaneamente. + + + Per ridurre il rischio di essere colpito dal fuoco nemico, rispondi al fuoco nascondendoti dietro gli angoli. Per farlo, tieni premuto "$$ACTION_LLOOKOUT$$" or "$$ACTION_RLOOKOUT$$". + + + Grazie a un meccanismo di individuazione del bersaglio integrato, il tuo binocolo ti permette di vedere bene gli oggetti lontani e di individuare i nemici. Per estrarre il binocolo, premi "$$ACTION_WPN_5$$". + + + Per accendere e spegnere la torcia, premi "$$ACTION_TORCH$$". + + + Per tirare fuori l'otturatore, premi "$$ACTION_WPN_6$$". + + + Se hai un congegno di visione notturna integrato nel tuo elmo, puoi attivarlo e disattivarlo premendo "$$ACTION_NIGHT_VISION$$". + + + Premi "$$ACTION_QUICK_USE_1$$", "$$ACTION_QUICK_USE_2$$", "$$ACTION_QUICK_USE_3$$", "$$ACTION_QUICK_USE_4$$" per usare l'oggetto appropriato nel pannello d'accesso rapido. + + + Le droghe non fanno effetto immediatamente e alcune hanno una durata notevole. + + + Il tuo PDA contiene una mappa, delle informazioni sulla missione in corso, le tue statistiche personali e un diario. Per aprire il PDA, premi "$$ACTION_ACTIVE_JOBS$$". + + + Devi estrarre il tuo rilevatore per cercare i manufatti. Per farlo, premi "$$ACTION_SHOW_DETECTOR$$". + + + Per mettere in pausa il gioco, premi "$$ACTION_PAUSE$$". + + + Per eseguire un salvataggio veloce, premi "$$ACTION_QUICK_SAVE$$". Premi "$$ACTION_QUICK_LOAD$$" per caricarlo. + + + Correre è il modo più veloce per muoversi, ma anche il più stancante. Premi "$$ACTION_SPRINT_TOGGLE$$" per correre. + + + Sparare mirando ti garantisce una precisione maggiore che sparando con la pistola al fianco. Per mirare, premi "$$ACTION_WPN_ZOOM$$". + + + Se possiedi un lanciagranate sottocanna, puoi passare dal fuoco normale alle granate premendo "$$ACTION_WPN_FUNC$$". + + + Se possiedi diversi tipi di munizione per l'arma equipaggiata, puoi passare da un tipo all'altro premendo "$$ACTION_WPN_NEXT$$". + + + Per ricaricare la tua arma prima che il caricatore si svuoti, premi "$$ACTION_WPN_RELOAD$$". + + + Per scartare l'arma equipaggiata, premi "$$ACTION_DROP$$". + + + Per aspettare che passi un'emissione, nasconditi in un edificio sicuro o sottoterra. Quando si avvicina un'emissione, sul tuo PDA sarà indicato il nascondiglio più vicino. + + + Per usare un oggetto attraverso lo slot rapido, trascinalo dal tuo zaino a uno dei quattro slot sopra il contenitore di manufatti. + + + Il simbolo a forma di goccia di sangue nell'angolo in basso a destra dello schermo ti avvisa di un'emorragia e della necessità di fermarla. Il colore del simbolo indica la gravità dell'emorragia. + + + Un simbolo di pericolo radiazioni nell'angolo in basso a destra del tuo schermo ti avviserà che sei stato esposto alle radiazioni. Quando questo succede, devi usare le medicine anti-radiazioni. Il colore del simbolo indica la gravità dell'esposizione. + + + Puoi nascondere e mostrare diversi indicatori sul tuo PDA usando i filtri. I pulsanti dei filtri si trovano sopra la mappa, sotto la riga della missione in corso. + + + Normalmente i manufatti non sono statici: tendono infatti a muoversi all'interno di un'area anomala. Tentativi sconsiderati di recuperarli ti faranno finire senza dubbio in un'anomalia. + + + Alcuni stalker potrebbero venderti servizi come informazioni, merci esclusive o darti ordini per recuperare specifici manufatti. + + + I nuovi manufatti potrebbero apparire in aree anomale che hai già esplorato dopo un'emissione. + + + Puoi variare la difficoltà del gioco in qualunque momento attraverso il menu opzioni di gioco. + + + I tecnici negli accampamenti degli stalker possono potenziare le armi, le tute e gli elmi. + + + Se vuoi sopravvivere, controlla sempre il crepitio emesso dal contatore Geiger, che ti avvisa delle radiazioni, e il segnale di pericolo anomalia che ti avvisa quando sei nei pressi di un'anomalia. + + + Il tuo rapporto con le persone influenza il prezzo delle merci e dei servizi che puoi comprare. Se i rapporti non sono buoni, non avrai sconti. Se invece vai d'accordo con un mercante, questi potrebbe anche essere disposto a offrirti qualcosa di speciale. + + + Puoi scaricare le armi che trovi per ottenere altre munizioni. Per farlo, clicca con il pulsante destro del mouse sull'arma nello zaino e seleziona l'azione adeguata dal menu contestuale. + + + Uccidi i nemici e acquisisci nuovi manufatti per ottenere i punti necessari ad aumentare il tuo rango, che ti permetterà di accedere a nuove armi, attrezzature e armature. + + + Le granate fumogene sono usate per rubare manufatti o per creare una copertura. + + + La parte sinistra del menu di acquisto contiene cinque schede, che dall'alto in basso sono: pistole, armi principali, equipaggiamento, munizioni e medicinali. Seleziona la scheda desiderata e ti verranno mostrati gli oggetti disponibili per il tuo rango. + + + Il menu di acquisto sulla destra dello schermo contiene quattro slot di acquisto veloce. Premi l'icona disco per salvare la configurazione, mentre con il numero caricherai la configurazione. Il quarto slot è usato per salvare l'ultima configurazione. + + + Se possiedi più di un'arma, puoi passare da una all'altra premendo "$$ACTION_WPN_3$$". + + + Un manufatto può essere attivato per creare un'anomalia. Per farlo prendi il manufatto premendo "$$ACTION_ARTEFACT$$" e tenendo premuto "$$ACTION_WPN_FIRE$$". L'anomalia che compare è pericolosa tanto per il nemico quanto per il giocatore che l'ha creata. + + + Una tuta scientifica ti aiuterà a sopravvivere nelle anomalie e nelle aree radioattive. + + + CACCIA AI MANUFATTI: per vincere devi riportare alla tua base un determinato numero di manufatti. + + + Per staccare un silenziatore, un mirino o un lanciagranate sottocanna dalla tua arma, clicca con il pulsante destro del mouse sull'arma nel tuo zaino e seleziona l'azione desiderata dal menu contestuale. + + + Se vuoi muoverti facendo il minimo rumore, premi "$$ACTION_ACCEL$$" per camminare o "$$ACTION_CROUCH$$" per accovacciarti. + + + Le doppiette sono armi per i combattimenti ravvicinati. Più lontano è il nemico, minore sarà il loro effetto. + + + Quando ti metti al riparo dalle piccole armi da fuoco, assicurati di ripararti dietro qualcosa di solido. A differenza dei muri di cemento, le assi di legno e le lastre di metallo non sono un gran riparo. + + + I colpi alla testa infliggono ingenti danni e sono letali per gran parte dei nemici. + + + I movimenti rapidi, i salti e le ferite riducono significativamente la tua resistenza. + + + Puoi regolare la distanza di lancio di una granata tenendo premuto "$$ACTION_WPN_ZOOM$$". + + + I nemici possono usare le granate e non si risparmieranno dal farlo. Quando vedi l'indicatore di granata, allontanati immediatamente dal raggio di esplosione. + + + SCONTRO MORTALE: totalizza il massimo punteggio per vincere. + + + Se acceleri prima di saltare riuscirai a superare crepacci e fenditure più grandi. + + + Gli indicatori chiave che indicano i tuoi livelli di salute e resistenza si trovano nell'angolo in basso a destra dello schermo. + + + La minimappa ti mostra la direzione in cui si trova il manufatto. Se la freccia è rivolta verso l'alto, il manufatto è sopra la tua posizione attuale. Se è rivolta verso il basso, è sotto di te. + + + Per ottenere contanti extra puoi raccogliere gli zaini dei nemici. L'equipaggiamento in eccesso può essere venduto alla base. + + + Proteggi a ogni costo il membro della tua squadra che trasporta i manufatti. + + + Usa le granate per attaccare i nemici al riparo. Ricorda il raggio d'azione delle granate per non colpire combattenti amici. + + + Puoi comunicare con la tua squadra tramite messaggi vocali. Per accedere al menu dei messaggi vocali, premi "$$ACTION_SPEECH_MENU_0$$" or "$$ACTION_SPEECH_MENU_1$$". + + + SCONTRO MORTALE A SQUADRE: per poter vincere, la tua squadra deve totalizzare più punti uccisione del nemico. + + + È possibile dare il via a una votazione premendo "$$ACTION_VOTE_BEGIN$$". + + + Per visualizzare i punteggi di gioco, premi "$$ACTION_SCORES$$". + + + Per rigenerarti, premi "$$ACTION_JUMP$$" una volta terminato il periodo di attesa. + + + Per aprire il menu di acquisto, premi "$$ACTION_BUY_MENU$$" quando sei nella tua base. + + + Apri la chat generica premendo "$$ACTION_CHAT$$". Per comunicare solo con i membri della tua squadra attraverso la chat testuale, premi "$$ACTION_CHAT_TEAM$$". + + + Correre è il modo più veloce per muoversi, ma anche il più stancante. Premi "$$ACTION_SPRINT_TOGGLE$$" per correre. + + + Sparare mirando ti garantisce una precisione maggiore che sparando con la pistola al fianco. Per mirare, premi "$$ACTION_WPN_ZOOM$$". + + + Se possiedi un lanciagranate sottocanna, puoi passare dal fuoco normale alle granate premendo "$$ACTION_WPN_FUNC$$". + + + Se possiedi diversi tipi di munizione per l'arma equipaggiata, puoi passare da un tipo all'altro premendo "$$ACTION_WPN_NEXT$$". + + + Per ricaricare la tua arma prima che il caricatore si svuoti, premi "$$ACTION_WPN_RELOAD$$". + + + CATTURA IL MANUFATTO: per vincere devi riportare alla tua base un determinato numero di manufatti. + + + Per scartare l'arma equipaggiata, premi "$$ACTION_DROP$$". + + + Per guardare nel tuo zaino, premi "$$ACTION_INVENTORY$$". + + + La maggior parte delle armi dispongono di varie modalità di fuoco. Per passare da una modalità all'altra, premi "$$ACTION_WPN_FIREMODE_NEXT$$" o "$$ACTION_WPN_FIREMODE_PREV$$". + + + Passare attraverso alcuni posti è impossibile, anche quando sei accovacciato. Per accovacciarti il più in basso possibile, tieni premuti "$$ACTION_CROUCH$$" e "$$ACTION_ACCEL$$" contemporaneamente. + + + Per guardare dietro un angolo, premi "$$ACTION_LLOOKOUT$$" o "$$ACTION_RLOOKOUT$$". Mentre guardi dietro un angolo non puoi sparare. + + + CATTURA IL MANUFATTO: per riportare un manufatto rubato alla tua base, devi uccidere il nemico che lo trasporta e raccogliere il manufatto premendo "$$ACTION_USE$$". + + + CACCIA AI MANUFATTI: puoi distruggere il manufatto attivandolo. Per farlo, estrai il manufatto premendo "$$ACTION_ARTEFACT$$" e tieni premuto "$$ACTION_WPN_FIRE$$". + + + Mentre trasporti il manufatto non puoi correre. + + + Per guardare nel tuo zaino, premi "$$ACTION_INVENTORY$$". + + + Per riparare un oggetto, una tuta o un casco, dovrai trovare un tecnico e cliccare sul pulsante di riparazione, dopo averlo selezionato nella schermata di modifica. + + + La maggior parte delle armi dispone di varie modalità di fuoco ed è possibile acquistare modifiche per aggiungerne altre in seguito. Per passare da una modalità di fuoco all'altra, premi "$$ACTION_WPN_FIREMODE_NEXT$$" o "$$ACTION_WPN_FIREMODE_PREV$$". + + + La stabilità di un'arma influisce sulla traiettoria del proiettile, mentre l'ergonomia determina il tempo che il mirino impiega a tornare nella posizione originale dopo aver sparato. + + + Alcune tute sono dotate di elmi. Non è possibile usare altri elmi con queste tute. + + + Ciascuna arma ha una sua precisione, ergonomia, cadenza di fuoco e quantità di danni inflitti, quindi potrai selezionare quella più adatta a te in un'ampia gamma di scelte. + + + La precisione nel tiro cala notevolmente, se spari mentre ti muovi. Resta fermo, oppure accovacciati, per aumentarla. + + + Questa bevanda energetica aumenta temporaneamente la velocità di recupero, consentendoti di correre più a lungo. + + + Quando giochi in modalità Scontro mortale, disponi di munizioni illimitate. + + + Una delle minacce maggiori nella Zona è costituita dalle radiazioni. L'esposizione eccesiva riduce la tua salute e può portarti alla morte, se non viene curata adeguatamente. + + + Quando intraprendi una lunga missione porta sempre del cibo con te. Quando sei affamato, la velocità di recupero della resistenza calerà notevolmente. + + diff --git a/gamedata/configs/text/ita/ui_st_mm.xml b/gamedata/configs/text/ita/ui_st_mm.xml new file mode 100644 index 0000000..6047029 --- /dev/null +++ b/gamedata/configs/text/ita/ui_st_mm.xml @@ -0,0 +1,936 @@ + + + + Cancella + + + Nuvoloso + + + medio + + + massimo + + + alto + + + basso + + + minimo + + + Notte + + + Pioggia + + + TIPO DI PARTITA + + + maestro + + + principiante + + + veterano + + + ICONE + + + MAPPA + + + Restituisci tramite attivazione + + + Consenti votazione + + + Tempo dell'anomalia (min) + + + Cattura manufatto + + + Ritardo del manufatto + + + Numero di manufatti + + + Tempo del manufatto + + + Restituisci il manufatto + + + Bilanciamento automatico della squadra + + + Cambiamento automatico della squadra + + + MAPPE DISPONIBILI + + + Annulla + + + Chiave CD + + + controlla chiave CD + + + Client + + + Crea + + + Invulnerabilità (sec) + + + Indicatore di invulnerabilità + + + Morti + + + Dedicato + + + Lista demo + + + statistiche del giocatore + + + Registra la demo + + + Registrazione della demo + + + Vuoto + + + Filtri + + + Rigenerazione forzata (sec) + + + Limite alle uccisioni + + + Uccisioni + + + Tempo di ritardo + + + Danno amico + + + Indicatori amici + + + Nomi amici + + + Pieno + + + Modalità + + + IP/host:porta + + + Internet + + + Connetti + + + LAN + + + Ascolta + + + Ripeti + + + Lista delle mappe + + + Limite giocatori + + + Connessione alla rete + + + Nessuna anomalia + + + Opzioni + + + Password + + + Nome del giocatore: + + + Giocatori + + + numero di giocatori + + + Server Internet + + + Aggiorn. veloce + + + Modifica coefficiente + + + Aggiorna tutto + + + Rinforzi (sec) + + + Opzioni rigenerazione + + + MAPPE SELEZIONATE + + + Server + + + Lista dei server + + + Proprietà del server + + + Info sul server + + + Server + + + Nome del server + + + Impostazioni + + + Spettatore + + + Prima persona + + + Visuale libera + + + Libera-bloccata + + + Terza persona + + + Impostazioni spettatore + + + Solo squadra + + + Clima iniziale + + + punteggio + + + Tempo limite (min) + + + Riscaldamento (sec) + + + Opzioni clima + + + No fuoco amico + + + Nessuna password + + + Nessun PunkBuster + + + Con password + + + LAN + + + Internet + + + Fabbrica Agroprom + + + Stazione dei veicoli + + + Piscina + + + Modifica del nome unico avvenuta con successo! + + + Valle Oscura + + + Fabbrica Yantar + + + errore nella connessione al server delle statistiche + + + errore nella connessione al server d'accesso + + + Autorizzazione riuscita + + + Villaggio deserto + + + Magazzini militari + + + nome errato + + + Piscina + + + Stazione ferroviaria + + + Fabbrica Rostok + + + nome unico errato + + + Sei sicuro di voler rimuovere + + + Fabbrica deserta + + + PING + + + GIOCATORI + + + Illuminazione statica + + + Illuminazione dinamica completa + + + Illum. dinam. completa potenziata + + + Illuminaz. dinamica degli oggetti + + + Ill. din. completa potenz. (DX10) + + + NOME DEL SERVER + + + Caccia ai manufatti + + + Cattura manufatto + + + Tutti contro tutti + + + Filtro: + + + alto + + + basso + + + medio + + + spento + + + esperto + + + stalker leggendario + + + principiante + + + professionista + + + veterano + + + Gioco a squadre + + + Frequenza 60Hz + + + Azione + + + Avanzato + + + Alternativo + + + Filtro anisotropico + + + Applica + + + Indietro + + + Sangue + + + Luminosità + + + Annulla + + + Agg. gioco + + + Contrasto + + + Comandi + + + Riconoscimenti + + + Dist. bers. dal mirino + + + Predefinito + + + Cancella + + + Vuoi davvero cancellare questo file? + + + Densità dettaglio dell'erba + + + Difficoltà + + + Disconnetti + + + Sei sicuro di volerti disconnettere? + + + Profondità di campo + + + Mirino dinamico + + + Musica dinamica + + + EAX + + + Schermo intero + + + Partita + + + Gamma + + + Dettaglio oggetti + + + Inverti pulsanti del mouse + + + Pulsante + + + Impostazioni della tastiera + + + Ultimo salvataggio + + + Distanza illuminazione + + + Carica + + + Carica partita + + + Esci dal profilo + + + Maestro + + + Volume effetti + + + Sensibilità del mouse + + + Fluidità oggetti test-A + + + Ottimizza fluidità + + + MULTIGIOCATORE + + + Multigiocatore + + + Volume musica + + + Le modifiche avranno effetto dopo che il sistema verrà riavviato + + + Multigiocatore + + + Nuova partita + + + Principiante + + + Torce PNG + + + OPZIONI + + + Opzioni + + + Distanza delle particelle + + + Impostazioni qualità + + + Torna a Windows + + + Esci dalla partita + + + Sei sicuro di voler interrompere la partita? + + + Sei sicuro di voler tornare a Windows? + + + Dettaglio degli scontri + + + Parallasse ripida + + + Ombra sole + + + Ombra erba + + + Qualità sole + + + Usa DX10.1 + + + Fluidità schermo intero + + + Superfici umide + + + Ottimizza buffer geometrico + + + Fumo volumetrico + + + Render 2 + + + Tipo di render + + + Risoluzione + + + Torna alla partita + + + Salva + + + Salva partita + + + Disegna mirino + + + Mostra arma + + + Base + + + Dispositivo audio + + + Particelle morbide + + + Acqua morbida + + + Suono + + + Qualità suono + + + Stalker + + + Qualità ombra + + + Raggi del sole + + + Antialiasing + + + IA usa le torce + + + Dettaglio delle texture + + + Identificazione dei PNG + + + Veterano + + + Video + + + Distanza visuale + + + Luce volumetrica + + + Sincronia verticale + + + Modifica nome unico + + + Questa e-mail è già in uso + + + Attraverso Internet + + + Attraverso LAN + + + pugnalato alla schiena + + + di perdita di sangue + + + in un'esplosione + + + in un occhio + + + alla testa + + + La versione del file di salvataggio non corrisponde alla versione di gioco. + + + fila di uccisioni + + + coltello + + + Ultima config. + + + Entra in multigiocatore + + + Nome + + + Modifica + + + Config. 1 (F1) + + + Config. 2 (F1) + + + Config. 3 (F1) + + + Ripristina + + + Vendi tutto + + + Versione + + + Pripyat + + + Mod. accov./in piedi + + + Autosalv. in corso + + + Texture dettagliate + + + Filmati + + + Entra + + + Esci + + + Crea + + + E-mail o password errata + + + Profilo errato + + + Errore di connessione + + + Il server non è attualmente disponibile + + + È necessario connettersi al profilo + + + Errore di connessione + + + Errore di connessione + + + Errore di connessione + + + Nome profilo errato + + + Password errata + + + Soprannome errato + + + Il soprannome è già in uso + + + Collegati prima al tuo profilo + + + Esegui prima la disconnessione dal profilo + + + Errore nella connessione al server del profilo + + + Dopo aver creato il profilo non sarai in grado di cancellarlo + + + Qualità SSAO + + + Modalità SSAO + + + predefinito + + + HDAO + + + HBAO + + + Mostra interfaccia + + + Soprannome non registrato. Registralo. + + + Soprannome scaduto. Registralo di nuovo. + + + stalker + + + massimo + + + Ill. din. completa potenz. (DX11) + + + Collegati per accedere al server esterno. + + + Questo ID GameSpy è in uso. Utilizza un altro ID GameSpy. + + + E-mail errata + + + Password errata + + + Non puoi uare un ID GameSpy per collegarti a un server locale. Utilizza la modalità LAN. + + + Sei stato espulso dal server. + + + Sei stato bandito dall'amministratore. + + + Sei stato bandito dal server. + + + Informazioni sul server + + + L'indirizzo e-mail è troppo lungo, non può superare i 50 caratteri. + + + E-mail errata + + + La password è troppo breve + + + La password è troppo lunga + + + E-mail non trovata + + + Soprannome non impostato + + + Il soprannome è troppo lungo, non può superare i 30 caratteri. + + + Il soprannome può contenere solo numeri, lettere dell'alfabeto latino e i seguenti caratteri speciali: "#$&'()*+-./:;<=>?@[]^_`{|}~ + + + Il soprannome non può contenere degli spazi. + + + Il soprannome non può cominciare con un numero, né con un dei seguenti simboli: @, +, : e #. + + + molto elevata + + + Mosaico + + + Vuoi applicare le modifiche? Le impostazioni precedenti saranno ripristinate in + + diff --git a/gamedata/configs/text/ita/ui_st_mp.xml b/gamedata/configs/text/ita/ui_st_mp.xml new file mode 100644 index 0000000..8689201 --- /dev/null +++ b/gamedata/configs/text/ita/ui_st_mp.xml @@ -0,0 +1,741 @@ + + + + Manufatto + + + Amichevole + + + Ping massimo + + + Profilo + + + Modalità + + + Il manufatto è stato distrutto. + + + Il manufatto si è generato. Portalo alla base per ottenere i punti. + + + Il manufatto è andato perduto. + + + Il manufatto è alla nostra base. + + + Il manufatto è alla base nemica. + + + Manufatti + + + Manufatti + + + Selez. automat. + + + Indietro + + + 4. Bandisci + + + Per anomalia + + + Annulla + + + manufatto catturato + + + 5. Modifica mappa + + + 6. Modifica clima + + + Modifica clima in + + + Chat + + + Connesso + + + Morti + + + Descrizione + + + Disconnesso + + + Inserisci il testo per la votazione + + + unito alla partita + + + Stazione dei pompieri + + + (visuale in prima persona) + + + uccisioni + + + Uccisioni + + + (visuale libera) + + + (visuale in terza persona) + + + con + + + 7. Modalità + + + Spazzatura + + + AVANTI! + + + lost%s il manufatto + + + perso il manufatto + + + got%s il manufatto + + + Mercenari + + + è adesso + + + si è unito + + + 3. Lascia + + + Limansk + + + Caricamento dei tuoi premi... + + + Caricamento dei tuoi record... + + + (Libera-bloccata) + + + Descrizione della mappa + + + Scontro iniziato + + + Vecchio villaggio + + + Modalità + + + Nome + + + Successivo + + + Non hai votato + + + Ping + + + %s ha vinto la partita! + + + Giocatori + + + Premi il pulsante di fuoco per passare alla modalità Spettatore + + + Premi il pulsante di salto per acquistare una rigenerazione istantanea + + + Premi il pulsante di salto per selezionare una skin + + + Premi il pulsante di salto per selezionare le squadre + + + Premi il pulsante di salto per generarti + + + Premi il pulsante di salto per iniziare + + + Premi ($$ACTION_BUY_MENU$$) per accedere al menu di acquisto + + + Hai %d$. Puoi rigenerarti per %d$. Clicca su Sì per pagare. + + + Pronto... + + + Centro riparazioni + + + 1. Ricomincia + + + 2. Riavvio rapido + + + restituito il manufatto + + + messo a segno un punto + + + Seleziona il giocatore da bandire tramite votazione + + + Seleziona categoria di voto + + + Seleziona il giocatore da espellere tramite votazione + + + Seleziona il giocatore da espellere tramite votazione + + + Seleziona la mappa per cui votare + + + Nessuna corsa con il manufatto + + + - Conteggio + + + - Tempo di permanenza + + + - Tempo di rigenerazione + + + Anomalie + + + Periodo dell'anomalia + + + Qualunque momento + + + Manufatto catturato + + + Manufatti: + + + Bilanciamento automatico della squadra + + + Cambiamento automatico della squadra + + + BattlEye + + + Disabilitato + + + Abilitato + + + - Prima persona + + + Rigenerazione forzata + + + Limite alle uccisioni + + + - Volo libero + + + - Visuale libera + + + Fuoco amico + + + Indicatori amici + + + Nomi amici + + + Infinito + + + Invisibilità: + + + - Indicatori + + + - Tempo + + + - Terza persona + + + Rotazione della mappa + + + Ping massimo + + + min + + + No + + + Rigenerazione + + + Giocatori tornati alla base + + + sec + + + Nome del server: + + + Basi protette + + + Modalità spettatore: + + + - Solo squadra + + + Tempo limite + + + Versione: + + + Votazione + + + Riscaldamento + + + + + + Selezione della skin + + + Spettatore + + + SPETTATORI + + + Centro sportivo + + + Status + + + è passato a + + + Freedom + + + Selezione della squadra + + + La squadra %s HA VINTO! + + + Testo + + + Tempo prima della rigenerazione + + + Tempo prima dell'inizio: + + + Tempo restante: %d:%d; Accettato: %.2f + + + Campo d'addestramento + + + Vota PER-[$$ACTION_VOTE_YES$$]\nVota CONTRO-[$$ACTION_VOTE_NO$$]\nRisultati-[$$ACTION_VOTE$$] + + + No + + + + + + Votato + + + No + + + + + + Voto cancellato dal server + + + Votazione '%s' iniziata da %s. + + + La votazione è iniziata! + + + 1. Cancella + + + 4. Nuvoloso + + + 3. Notte + + + 2. Pioggia + + + Pugnalato alle spalle! + + + Colpito alla testa! + + + Hai catturato il manufatto nemico, ora portalo alla tua base! + + + Hai preso il manufatto!?Attivalo per riportarlo alla tua base! + + + Ora il tuo rango è + + + Sei tu + + + La votazione non è disponibile su questo server. + + + Nessun voto attivo. + + + È permesso solo un voto attivo. + + + Pronto + + + A tutti + + + Alla squadra + + + Voto fallito! + + + Voto riuscito! + + + Base della Freedom + + + Base dei mercenari + + + 2. Caccia ai manufatti + + + 4. Cattura il manufatto + + + 1. Tutti contro tutti + + + Crea un nuovo profilo + + + Acquisizione profili account + + + Salve + + + Connessione al profilo + + + Profilo creato con successo. Connettiti a esso. + + + Verifica del nome unico in corso... + + + Vuoi usare il profilo esistente con il nome + + + Account trovato. Acquisizione profili registrati... + + + Hai già un profilo. Connettiti a esso. + + + Verifica dell'account... + + + Questo nome unico è già in uso. Scegline uno dalla lista a tendina sottostante o inseriscine un altro. + + + Le password non corrispondono! + + + 3. Gioco a squadre + + + Copia link + + + Carica mappa + + + Descrizione + + + Mappa non corretta o corrotta + + + Mappa non trovata + + + Premi + + + Record + + + Controlla + + + Conferma password + + + E-mail + + + Dimentic. la pw? + + + Pagina di creazione ID GameSpy + + + Password + + + Ricorda + + + Nome unico + + + Nome unico modificato con successo + + + Squadra + + + Freedom + + + Mercenari + + + Nuovo profilo + + + Autorizzazione ID GameSpy + + + gioca + + + riavvolgi + + + ricomincia + + + all'inizio + + + all'uccisione + + + alla morte + + + alla conquista del manufatto + + + alla perdita del manufatto + + + alla consegna del manufatto + + + qualsiasi + + + Login + + + Immagine generale + + + Configurazioni generali + + + Limite ping: + + + Limite ping + + + Imm. gioc. selezionato + + + Conf. gioc. selezionato + + + Espelli gioc. selez. + + + Bandisci gioc. selez. + + + Ricomincia + + + Riavvio rapido + + + Modifica clima + + + Velocità variazione meteo + + + Cambia tipo di partita + + + Cambia impostazioni gioco + + + Interrompi il voto attuale + + + Tempo limite (0, 180) + + + Limite uccisioni (0, 1000) + + + Limite ai manufatti (0, 100) + + + Tempo di prep. (0, 3600) + + + Tempo prot. gen. (0, 60 CTA) + + + Protez. gen. (0, 600 T/DM) + + + Tempo rigenera. (-1, 3600) + + + Errore ignoto profilo (codice: 4) + + + 10 minuti + + + 30 minuti + + + 1 ora + + + 6 ore + + + 1 giorno + + + 1 settimana + + + 1 mese + + + 3 mesi + + + Permanente + + + Il soprannome è troppo breve + + + Errore profilo + + diff --git a/gamedata/configs/text/ita/ui_st_other.xml b/gamedata/configs/text/ita/ui_st_other.xml new file mode 100644 index 0000000..526fb25 --- /dev/null +++ b/gamedata/configs/text/ita/ui_st_other.xml @@ -0,0 +1,501 @@ + + + + Annulla + + + No + + + OK + + + + + + Male + + + Nemico + + + Eccellente + + + Esperto + + + Amico + + + Mappa della Zona + + + Bene + + + Indifferente + + + Maestro + + + Bonus PDA + + + È permesso solo un voto attivo. + + + Neutrale + + + Principiante + + + Partita + + + Usato + + + Livello + + + Caricamento degli oggetti di IA + + + Server: caricamento del simulatore alife + + + Caricamento CFORM + + + Caricamento dei dettagli + + + Caricamento della geometria + + + Caricamento della partita salvata + + + Caricamento dei settori e dei portali + + + Caricamento degli shader + + + Caricamento dei DB-spaziali + + + Caricamento delle texture + + + IP diretto + + + Nessuna attività in corso + + + Denaro insufficiente + + + Il PNG?non ha denaro a sufficienza + + + Flusso di apertura + + + Pre-cattura oggetti + + + rubli. + + + SERVER: connessione in corso + + + SERVER: avvio in corso + + + Validazione chiave CD + + + Video + + + Terribile + + + Ripara + + + Non puoi eseguire Render 2 sul tuo PC + + + Fazione + + + Errore di connessione: la tua chiave CD è disabilitata. Contatta il servizio clienti. + + + Errore di connessione: chiave CD già in uso + + + Errore di connessione: chiave CD non valida. + + + Errore di connessione: host non valido + + + Errore di connessione: password non valida + + + È disponibile una nuova patch.\n Versione: %s\n Posizione: %s\nVuoi scaricarla adesso? + + + Non ci sono nuove patch disponibili + + + Errore di connessione: connessione rifiutata dal server + + + Errore di connessione: server pieno + + + Errore di connessione: versione diversa + + + Connessione al server principale + + + Giorni + + + Errore + + + Carica errore + + + Un file con questo nome esiste già. Vuoi sovrascriverlo? + + + Il nome file è vuoto + + + Ore + + + È stato disconnesso dal sistema di protezione BattleEye: + + + Disconnesso. Motivo: + + + Abbandona + + + Caricando questa partita tutti i dati non salvati andranno persi. Vuoi procedere? + + + min + + + mesi + + + Zaino + + + Parametri + + + Impossibile scaricare la patch. + + + Patch caricata con successo. Vuoi installarla? + + + Prezzo + + + Rango + + + Attitudine + + + Reputazione + + + sec + + + Seleziona almeno una mappa + + + Prendi tutto + + + Restante + + + Voto fallito + + + Vuoi davvero abbandonare la partita? + + + Totale + + + molto male + + + molto bene + + + Veterano + + + Ripara + + + Ripara l'oggetto selezionato + + + ... + + + in movimento all'interno di un'area + + + in movimento da Zaton a Yanov + + + in movimento da Zaton a Pripyat + + + in movimento da Yanov a Zaton + + + in movimento da Yanov a Pripyat + + + in movimento da Pripyat a Zaton + + + in movimento da Pripyat a Yanov + + + in movimento da Pripyat a X8 + + + in movimento da X8 a Pripyat + + + emissione + + + inizio del gioco + + + arrivo alla Skadovsk + + + Stingray 1 esaminato + + + Stingray 2 esaminato + + + Stingray 3 esaminato + + + Stingray 4 esaminato + + + Stingray 5 esaminato + + + verso l'altopiano + + + arrivo a Yanov + + + strada per Pripyat scoperta + + + Zulu si unisce alla squadra + + + debito di Vano ripagato + + + Vano si unisce alla squadra + + + pianta anomala recuperata + + + Sokolov si unisce alla squadra + + + Strider si unisce alla squadra + + + squadra assemblata + + + arrivo nel sottopasso + + + arrivo a Pripyat + + + unità militari individuate + + + arma non identificata recuperata + + + squadra di ricognizione individuata + + + rinforzi arrivati + + + "antenna" esaminata + + + sentinella scomparsa individuata + + + controllore vicino alla sentinella ucciso + + + ingresso nell'officina collaudi + + + documenti sul fucile Gauss recuperati + + + combattente morto individuato + + + ingresso nell'asilo + + + medico militare salvato + + + comunizazioni con il QG stabilite + + + evacuazione di Pripyat iniziata + + + elicotteri per l'evacuazione raggiunti + + + evacuazione completata + + + rilevatore di mutanti + + + riscatto per l'ostaggio pagato + + + ostaggio liberato + + + misurazioni anomalia Cumulo di cenere + + + misurazioni anomalia Plavni + + + tana dei succhiasangue + + + in viaggio verso Kopachy + + + avvicinamento all'impianto dei rifiuti + + + attacco stalker + + + contenitore trovato nel ripostiglio + + + a caccia della chimera + + + Oasi trovata + + + operazione Occasione unica avviata + + + ricerca della fonte della psico-emissione + + + documenti amministrativi + + + avvicinamento all'officina della sotto-stazione + + + accordo vicino alla stazione dei ranger + + + magazzino Duty + + + fonte dello strano bagliore individuata + + + Zulu individuato + + + caverna pericolosa + + + Riparazioni/Modifiche + + + Compra + + + Vendi + + + Scambia + + + Chiudi la finestra ($$ACTION_USE$$) + + + Apri la finestra del commercio ($$ACTION_SPRINT_TOGGLE$$) + + + Apri la finestra di riparazioni e modifiche ($$ACTION_SPRINT_TOGGLE$$) + + + Sposta tutti gli oggetti nel tuo zaino ($$ACTION_SPRINT_TOGGLE$$) + + + Compra gli oggetti selezionati + + + Vendi gli oggetti selezionati + + + decollo elicottero di evacuazione + + diff --git a/gamedata/configs/text/ita/ui_st_pda.xml b/gamedata/configs/text/ita/ui_st_pda.xml new file mode 100644 index 0000000..ab4c89e --- /dev/null +++ b/gamedata/configs/text/ita/ui_st_pda.xml @@ -0,0 +1,279 @@ + + + + Tempo + + + Stalker libero + + + Militare + + + Bandito + + + Duty + + + Scienziato + + + Missioni secondarie + + + Nascondigli + + + Freedom + + + Mercenari + + + Diario delle missioni + + + Monolith + + + Mutante + + + Aprile + + + Agosto + + + Dicembre + + + Febbraio + + + Gennaio + + + Luglio + + + Giugno + + + Marzo + + + Maggio + + + Novembre + + + Ottobre + + + Settembre + + + Disattiva PDA + + + Diario dei messaggi + + + Mostra cronologia dei messaggi + + + Mappa dell'area + + + Mostra la mappa della Zona e il diario delle missioni + + + Statistiche + + + Mostra statistiche personali + + + Tempo effettivo: + + + Filtro data + + + Mostra notizie + + + Mostra dialoghi + + + Legenda + + + Tempo della Zona: + + + Emissioni a cui sei sopravvissuto: + + + Missioni completate: + + + Mutanti uccisi: + + + Stalker uccisi: + + + Manufatti trovati: + + + Nascondigli trovati: + + + Arma preferita + + + Mutante più potente ucciso + + + Luogo: + + + Obiettivo + + + Missione secondaria + + + Nemici + + + Amici + + + Leader della fazione + + + Missione principale + + + Neutrali + + + Guida + + + Nascondigli + + + Comandante della squadra + + + Mercante + + + Stalker + + + Diario dei messaggi + + + Giocatore al centro + + + Muoviti indietro + + + Muoviti a sinistra + + + Mostra legenda + + + Muoviti a destra + + + Muoviti avanti + + + Distanza massima della visuale + + + Avvicina visuale + + + Allontana visuale + + + Obiettivi + + + Mappa della missione al centro + + + Mappa della missione al centro + + + Zombi + + + scala + + + + scala - + + + Tecnico + + + Medico + + + Missioni in corso + + + Mostra/Nascondi missioni + + + Ripostiglio personale + + + Zaton + + + Area circostante Jupiter + + + Pripyat + + + Pripyat 1, sottopasso + + + Laboratorio X8 + + + Aree + + + Oggetti importanti + + + Area + + + Gli scanner hanno rilevato dei manufatti: + + + Gli scanner non hanno rilevato alcun manufatto. + + + Ripostiglio + + + Area dormitorio + + diff --git a/gamedata/configs/text/ita/ui_st_screen.xml b/gamedata/configs/text/ita/ui_st_screen.xml new file mode 100644 index 0000000..006b6da --- /dev/null +++ b/gamedata/configs/text/ita/ui_st_screen.xml @@ -0,0 +1,348 @@ + + + + Apri ripostiglio personale ($$ACTION_USE$$) + + + Sei troppo esausto per muoverti + + + Sei troppo sovraccarico per muoverti + + + Apri porta ($$ACTION_USE$$) + + + Parla ($$ACTION_USE$$) + + + Ispeziona corpo ($$ACTION_USE$$) + + + Ispeziona corpo ($$ACTION_USE$$)\nTrascina corpo (SHIFT+$$ACTION_USE$$) + + + Missione completa: + + + Missione fallita: + + + Oggetto ricevuto: + + + Denaro ricevuto: + + + Nuova missione: + + + Oggetto perduto: + + + Denaro perduto: + + + Missione annullata: + + + Missione aggiornata: + + + La tua arma si è inceppata. Ricaricala. + + + Ispeziona ripostiglio ($$ACTION_USE$$) + + + Raccogli oggetto ($$ACTION_USE$$) + + + Ispeziona velivolo ($$ACTION_USE$$) + + + Porta bloccata + + + La porta è chiusa dall'interno + + + Cassaforte chiusa + + + Codice richiesto + + + Inserisci codice ($$ACTION_USE$$) + + + Prendi pianta ($$ACTION_USE$$) + + + Imposta scanner ($$ACTION_USE$$) + + + Prendi scanner ($$ACTION_USE$$) + + + Riduttore di aggressività Arcobaleno\nmodello del complesso di emissioni esterne\nscala 01:20 + + + Attiva interruttore ($$ACTION_USE$$) + + + Esamina congegno ($$ACTION_USE$$) + + + Piazza esplosivi ($$ACTION_USE$$) + + + Recupera ($$ACTION_USE$$) + + + L'ascensore non ha corrente + + + Attiva generatore ($$ACTION_USE$$) + + + Dormi + + + Non puoi dormire!?Perdi molto sangue e sei stato esposto alle radiazioni! Usa le droghe o contatta un medico. + + + Non puoi dormire!?Perdi molto sangue. Usa le droghe o contatta un medico. + + + Non puoi dormire! Sei stato esposto alle radiazioni! Usa le droghe o contatta un medico. + + + Dormi ($$ACTION_USE$$) + + + Hai ottenuto l'obiettivo Uomo equilibrato. + + + Hai ottenuto l'obiettivo Maestro dei sistemi delle armi. + + + Hai ottenuto l'obiettivo Detective. + + + Hai ottenuto l'obiettivo Diplomatico. + + + Hai ottenuto l'obiettivo Amico della Duty. + + + Hai ottenuto l'obiettivo Amico della Freedom. + + + Hai ottenuto l'obiettivo Amico degli stalker. + + + Hai ottenuto l'obiettivo Corriere della giustizia. + + + Hai ottenuto l'obiettivo Esperto di tecnologia. + + + Hai ottenuto l'obiettivo Trafficante d'informazioni. + + + Hai ottenuto l'obiettivo Custode di segreti. + + + Hai ottenuto l'obiettivo Boss. + + + Hai ottenuto l'obiettivo Leader. + + + Hai ottenuto l'obiettivo Cacciatore di mutanti. + + + Hai ottenuto l'obiettivo Uno dei nostri. + + + Hai ottenuto l'obiettivo Pioniere. + + + Hai ottenuto l'obiettivo Assistente ricercatore. + + + Hai ottenuto l'obiettivo Cacciatore di manufatti. + + + Hai ottenuto l'obiettivo Stalker esperto. + + + Hai ottenuto l'obiettivo Un ricco cliente. + + + Salvataggio automatico in corso... + + + Ora puoi estrarre l'arma. + + + Codice di blocco ($$ACTION_USE$$) + + + I medicinali sono stati collocati nel ripostiglio personale sulla Skadovsk per aver risolto il mistero degli stalker scomparsi. + + + Una tuta di protezione universale PS5-M è stata collocata nel tuo ripostiglio personale a Yanov per aver aiutato la Duty. + + + Una tuta corazzata PSZ-9d della Duty è stata collocata nel tuo ripostiglio personale a Yanov per aver aiutato la Duty. + + + Una tuta "Vento della Freedom" è stata collocata nel tuo ripostiglio personale a Yanov per aver aiutato la Freedom. + + + Una tuta "Guardiano della Freedom" è stata collocata nel tuo ripostiglio personale a Yanov per aver aiutato la Freedom. + + + Non sei riuscito a raggiungere gli elicotteri e la squadra di evacuazione ha lasciato la Zona senza di te. + + + Sei pronto per lasciare la Zona??Non potrai più tornare indietro. + + + Fine della partita. + + + Premi ($$ACTION_JUMP$$) per tornare al menu principale. + + + Pausa + + + Partita salvata + + + È stato collocato un manufatto nel tuo ripostiglio personale sulla Skadovsk per aver smascherato Magpie. + + + Devi aspettare che il porto sia sigillato + + + Accesso consentito + + + Prendi l'ascensore che sale ($$ACTION_USE$$) + + + Prendi l'ascensore che scende ($$ACTION_USE$$) + + + Livello di psico-emissione critico. Abbandonare immediatamente l'area a rischio. + + + Livelli di radiazione pericolosi. È necessaria una protezione per avanzare. + + + Esamina elicottero ($$ACTION_USE$$) + + + Ispeziona il ripostiglio ($$ACTION_USE$$) + + + h + + + Messaggio + + + Porta bloccata + + + Chiudi porta ($$ACTION_USE$$) + + + Porta chiusa - l'accampamento è in all'erta + + + Porta chiusa - devi rinfoderare l'arma + + + Porta chiusa + + + La porta non è alimentata + + + Apri porta ($$ACTION_USE$$) + + + Cancello bloccato + + + Usa la tessera d'accesso ($$ACTION_USE$$) + + + Tessera d'accesso richiesta + + + Impossibile aprire la porta da questa parte + + + - + + + Il contenitore è chiuso a chiave. Servono due chiavi per aprirlo. + + + Usa chiave ($$ACTION_USE$$) + + + Usa chiavi ($$ACTION_USE$$) + + + Il contenitore è chiuso a chiave. Ti serve la seconda chiave per aprirlo. + + + Apri contenitore ($$ACTION_USE$$) + + + Il meccanismo della porta è stato bloccato dall'interno + + + Collega tanica del gas ($$ACTION_USE$$) + + + Attenzione!?Pericolo chimico! + + + Gira la valvola ($$ACTION_USE$$) + + + Ispeziona automobile ($$ACTION_USE$$) + + + Puoi fare scorta di medicinali e munizioni dal Tenente Rogovets e dal Tenente Kirillov. + + + Da poco si è verificata un'emissione nella Zona + + + Hai ottenuto l'obiettivo Marcato dalla Zona + + + Delle munizioni sono state collocate nel tuo ripostiglio personale a Yanov per aver eliminato i mutanti. + + + Hai ricevuto le coordinate di un ripostiglio già scoperto. + + + Ripostiglio individuato + + + Coordinate del ripostiglio ricevute + + + Premi un tasto per giocare + + diff --git a/gamedata/configs/text/pol/st_achievement.xml b/gamedata/configs/text/pol/st_achievement.xml new file mode 100644 index 0000000..2aed180 --- /dev/null +++ b/gamedata/configs/text/pol/st_achievement.xml @@ -0,0 +1,372 @@ + + + + Co za upokorzenie dla wroga! Uda³o ci siê zabiæ dziesiêciu przeciwników pod rz¹d, nie gin¹c przy tym! Nie mo¿na jednak nazwaæ tego okrucieñstwem. Po prostu dajesz im powody do dalszego doskonalenia umiejêtnoœci. + + + Pora ¿niw + + + Jesteœ wcielon¹ œmierci¹! Uda³o ci siê upiec dwie pieczenie przy jednym ogniu, zabijaj¹c dwóch wrogów jednym strza³em z karabinu Gaussa. + + + Szasz³yk + + + Eliminujesz swoich wrogów ze spokojem i wyrachowaniem, dziêki czemu uda³o ci siê trafiæ dwóch wrogów z dwururki w odstêpie ledwie kilku sekund. + + + Dwa strza³y, dwa trupy + + + Doskonale wiesz, na czym polega bycie stalkerem, dlatego te¿ jesteœ pierwszym z okolicznych stalkerów, który zyska³ miano legendy. + + + Awans spo³eczny + + + Przeci¹æ egzoszkielet no¿em? Uwielbiasz stawiaæ sobie trudne cele i je realizowaæ. + + + Otwieracz do puszek + + + Wydawa³o im siê, ¿e ju¿ po tobie, ale nie zdawali sobie sprawy, z kim maj¹ do czynienia. Nawet na skraju œmierci uda³o ci siê zabiæ piêciu z nich. + + + Drogo sprzedaæ swoj¹ skórê + + + Co za przyp³yw adrenaliny! Uda³o ci siê zebraæ krwawe ¿niwo wœród wrogów, eliminuj¹c piêæ osób w piêæ sekund! Niewiarygodne! + + + Nieokie³znana furia + + + Niesamowita celnoœæ! Uda³o ci siê zabiæ dwóch wrogów strza³ami w oko, nie gin¹c przy tym. + + + Okulista + + + Niech siê kryj¹ za wêg³ami i szykuj¹ zasadzki, dla ciebie to ¿aden problem. Potrafisz trafiæ nawet ruchomy cel bez przymierzenia! + + + B³yskawiczny refleks + + + Niech biegnie tak szybko, jak tylko potrafi... I tak dogoni¹ go twoje pociski. + + + Zatrzymaæ uciekiniera + + + Uda³o ci siê zabiæ dwudziestu wrogów pod rz¹d, nie gin¹c przy tym! Co za masakra! + + + Masakra + + + Mo¿e i by³o ich trzech, mo¿e i mieli karabiny snajperskie, ale przy twoich umiejêtnoœciach i tak byli bez szans. + + + Najcelniejszy strzelec + + + Pozostawiaj¹c barbarzyñskie zachowania wrogom, uda³o ci siê pokazaæ, ¿e nie trzeba oddaæ ani jednego strza³u, aby wygraæ. + + + Zwiastun pokoju + + + Dystans to nie problem dla prawdziwego snajpera! Potrafisz trafiæ w cel z ponad 120 metrów. + + + Œmiercionoœna celnoœæ + + + Wrogowie zdo³ali ciê pokonaæ, ale zosta³a po tobie pami¹tka w postaci odbezpieczonego granatu! + + + Coœ na pami¹tkê + + + Zabili twoich przyjació³ i zas³ugiwali na krwaw¹ zemstê. Trzech wrogów za trzech przyjació³ to sprawiedliwy przelicznik. + + + Mœciciel + + + Jesteœ anio³em stró¿em jednego ze swoich przyjació³. Dwa razy uda³o ci siê ocaliæ go przed atakiem, podczas gdy niós³ artefakt. + + + Cherubin + + + Uda³o ci siê ocaliæ honor swój i swojej dru¿yny poprzez zdobycie kilku punktów. + + + Obroñca honoru + + + Naprawdê wiesz, gdzie pojawi siê nastêpny artefakt? Uda³o ci siê go podnieœæ w ci¹gu kilku sekund od pojawienia siê. + + + Intuicja stalkera + + + Ale fart! Uda³o ci siê zabiæ wroga ostatnim nabojem w magazynku! Za to w jego przypadku trudno mówiæ o farcie… + + + Cholerny szczêœciarz + + + Uda³o ci siê zabiæ oœmiu wrogów pod rz¹d. Zobaczymy teraz, czy odwa¿¹ siê podj¹æ rêkawicê. + + + Czarna lista + + + Nikt nie zdo³a³ ciê zabiæ przez ca³¹ grê, poniewa¿ cechujesz siê ostro¿noœci¹ i rozwag¹. Przy tym mo¿esz siê poszczyciæ zdobyciem piêtnastu punktów. + + + Paranoja + + + Dziêki t³umikowi za³atwiasz sprawê nie przyci¹gaj¹c uwagi. Po co wróg ma wiedzieæ, sk¹d nadchodzi œmieræ? + + + Bezg³oœna œmieræ + + + Uda³o ci siê rozbiæ przeciwników w py³, zwyciê¿aj¹c i zdobywaj¹c przy tym dwa razy wiêcej punktów ni¿ najlepszy z nich. + + + Przyt³aczaj¹ca przewaga + + + Twój œmia³y plan natychmiastowego zdobycia artefaktu zakoñczy³ siê sukcesem, dziêki czemu twoja dru¿yna zdoby³a punkt w ci¹gu trzech minut od rozpoczêcia gry. + + + Blitzkrieg + + + Nie pozostawiliœcie przeciwnikom nawet cienia nadziei, zwyciê¿aj¹c zanim zdo³ali oni zdobyæ choæ jeden artefakt. To dla nich prawdziwa lekcja pracy zespo³owej! + + + Pobieda! + + + Uda³o ci siê uzyskaæ najlepszy wynik w ka¿dej dziedzinie, eliminuj¹c najwiêcej wrogów i zdobywaj¹c najwiêcej artefaktów przy najmniejszej liczbie œmierci. Tak trzymaj! + + + Wszechstronne uzdolnienia + + + Twoje umiejêtnoœci walki no¿em s¹ niezrównane! Uda³o ci siê wypatroszyæ trzech przeciwników w ci¹gu dwudziestu sekund, udowadniaj¹c, ¿e masz prawdziwy talent do walki wrêcz. + + + Furia + + + Ka¿dy wróg ma czu³y punkt w swoim opancerzeniu. Tobie uda³o siê go znaleŸæ, trafiaj¹c z pistoletu w oko w pe³ni opancerzonego przeciwnika. + + + Piêta achillesowa + + + Wrogim kulom siê nie k³aniasz! Przechodzisz przez ich grad bez zadraœniêcia i rozbijasz przeciwników w py³! + + + Szybciej ni¿ pocisk + + + Chêtnie zajmujesz siê œledzeniem rozwoju wydarzeñ w Zonie. Uda³o ci siê powiêkszyæ zasób wiedzy o niej przez odkrycie anomalii wczeœniej nieznanych nauce. + + + Pionier + + + Inni stalkerzy maj¹ o tobie coraz lepsz¹ opiniê. \nCzasami zostawiaj¹ oni amunicjê w twojej skrytce na stacji Janów jako wyraz szacunku. + + + Nie unikasz niebezpiecznych mutantów - polujesz na nich i to z dobrymi wynikami. Dobrzy ³owcy s¹ szanowani wœród stalkerów. + + + £owca mutantów + + + Inni stalkerzy maj¹ o tobie coraz lepsz¹ opiniê. \nCzasami zostawiaj¹ oni œrodki medyczne w twojej skrytce na Skadowsku jako wyraz szacunku. + + + Uda³o ci siê odkryæ sekret stoj¹cy za zaginiêciami stalkerów na Skadowsku: winni byli nie mutanci, lecz du¿o groŸniejszy wróg - cz³owiek. Udane dochodzenie przysporzy³o ci szacunku wielu stalkerów. + + + Detektyw + + + Inni stalkerzy maj¹ o tobie coraz lepsz¹ opiniê. \nPoprosili oni handlarza Sowê, aby udzieli³ ci zni¿ki. \Brodacz z kolei oferuje ci teraz najwy¿sze stawki za artefakty. + + + Pokaza³eœ bandytom i ich przywódcy Su³tanowi, kto jest szefem, co przysporzy³o ci popularnoœci wœród stalkerów. Na Skadowsku zawsze czeka ciê serdeczne przyjêcie. + + + Jeden z nas + + + Uda³o ci siê zdobyæ szacunek bandytów. \nHandlarz Sowa udzieli³ ci zni¿ki ze strachu . \nZgodnie z umow¹, Brodacz bêdzie od teraz p³aci³ ci haracz od swoich dochodów. + + + Z twoj¹ pomoc¹ Su³tan wymanewrowa³ stalkerów i przej¹³ kontrolê nad interesem Brodacza. Budzisz teraz strach i szacunek w mieszkañcach Zatonu. + + + Szef + + + Stalkerzy zdecydowali siê oddaæ ³upy, które Sroka zdoby³ k³amstwami i podstêpem, komuœ bardziej wartoœciowemu. Umieœcili je w twojej skrytce na stacji Janów. + + + Uda³o ci siê wymierzyæ sprawiedliwoœæ z³oczyñcy. Sroka oszuka³ i zwiód³ wielu stalkerów, ale teraz wybi³a jego godzina. + + + Wys³annik sprawiedliwoœci + + + Inni stalkerzy maj¹ o tobie coraz lepsz¹ opiniê. \nBandyci bêd¹ na ciebie polowaæ podczas twoich wypraw w g³¹b Zony. + + + Uda³o ci siê zdobyæ wszystkie typy artefaktów znane badaczom Zony. To osi¹gniêcie wzbudzi³o szacunek stalkerów, ale z drugiej strony œci¹gnê³o na ciebie uwagê bandytów. + + + £owca artefaktów + + + Kardan mo¿e wykonaæ unikaln¹ modyfikacjê, która pozwoli ci na zachowanie mobilnoœci przy noszeniu egzoszkieletu dziêki instalacji hydraulicznych wzmacniaczy serwomotorów. + + + Kardan ma teraz wszystkie narzêdzia, jakich potrzebuje. Pozwoli mu to na wykonywanie nowych, bardziej skomplikowanych ulepszeñ. + + + Ekspert systemów obronnych + + + Azot mo¿e wykonaæ unikaln¹ modyfikacjê he³mu taktycznego: monta¿ skanera podczerwieni pozwalaj¹cego na wykrywanie ludzi znajduj¹cych siê w pobli¿u. + + + Azot posiada wszystkie narzêdzia, o jakich mo¿e marzyæ technik pracuj¹cy w Zonie. Mo¿e on wykonywaæ zaawansowane technologicznie modyfikacje. + + + Ekspert wysokiej technologii + + + Doœwiadczenie pozwala ci czêœciej znajdowaæ artefakty. + + + Uda³o ci siê odwiedziæ praktycznie wszystkie dostêpne obszary po³o¿one w pobli¿u centrum Zony. Zdarzy³o ci siê wpaœæ w prawie ka¿d¹ anomaliê. + + + Doœwiadczony stalker + + + Twoje umiejêtnoœci przywódcze zwiêkszaj¹ szanse prze¿ycia twojej dru¿yny. + + + Kiedy zasz³a potrzeba dzia³ania w grupie, uda³o ci siê zgromadziæ œwietn¹ dru¿ynê i dowieœæ swoich umiejêtnoœci przywódczych. + + + Przywódca + + + Wolnoœæ, Powinnoœæ, wolni stalkerzy, a nawet bandyci poznali twoje zdolnoœci negocjacyjne i darz¹ ciê z ich powodu szacunkiem. + + + Wiesz, jak rozwi¹zaæ problem bez rozlewu krwi. Kto potrzebuje si³y, kiedy s³owa mog¹ rozwi¹zaæ spor równie skutecznie? Nadal jednak musisz wystrzegaæ siê osób, które najpierw strzelaj¹, a póŸniej zadaj¹ pytania. + + + Dyplomata + + + Wspó³pracujesz z naukowcami ju¿ tak d³ugo, ¿e mo¿na ciê uznaæ za pe³noprawnego asystenta. Wszyscy w bunkrze naukowców uwa¿aj¹ ciê za jednego ze swoich. + + + Asystent + + + Twoje stosunki z Powinnoœci¹ uleg³y poprawie. Jeœli napytasz sobie biedy, bojownicy tej frakcji bêd¹ próbowali ci pomóc. \nAzot, technik sympatyzuj¹cy z Powinnoœci¹, zaoferowa³ ci zni¿kê. \nTwoje stosunki z Wolnoœci¹ uleg³y pogorszeniu. \Hawajczyk, handlarz sympatyzuj¹cy z t¹ frakcj¹, od tej chwili bêdzie ¿¹da³ od ciebie wy¿szych cen. + + + Pomoc udzielona przez ciebie Powinnoœci sprawi³a, ¿e bojownicy i sympatycy tej frakcji nabrali do ciebie szacunku. Musisz jednak pamiêtaæ, ¿e nie ka¿da osoba, jak¹ napotkasz w Zonie, jest pozytywnie nastawiona do Powinnoœci. + + + Przyjaciel Powinnoœci + + + Twoje stosunki z Wolnoœci¹ uleg³y poprawie. Jeœli napytasz sobie biedy, bojownicy tej frakcji bêd¹ próbowali ci pomóc. \nHawajczyk, technik sympatyzuj¹cy z Wolnoœci¹, zaoferowa³ ci zni¿kê. \nTwoje stosunki z Powinnoœci¹ uleg³y pogorszeniu. \Azot, handlarz sympatyzuj¹cy z t¹ frakcj¹, od tej chwili bêdzie ¿¹da³ od ciebie wy¿szych cen. + + + Pomoc udzielona przez ciebie Wolnoœci sprawi³a, ¿e bojownicy i sympatycy tej frakcji nabrali do ciebie szacunku. Musisz jednak pamiêtaæ, ¿e nie ka¿da osoba, jak¹ napotkasz w Zonie, jest pozytywnie nastawiona do Wolnoœci. + + + Przyjaciel Wolnoœci + + + Stalkerzy ze stacji Janów ceni¹ sobie równowagê si³ miêdzy Powinnoœci¹ a Wolnoœci¹, dlatego te¿ zarówno technik, jak i handlarz udzielili ci zni¿ki. + + + Nie stoisz po stronie ¿adnej z frakcji i zawsze dzia³asz jako wolny stalker. Nie masz ¿adnych nowych wrogów z tego powodu, ale nie uda³o ci siê te¿ zyskaæ nowych przyjació³. + + + Obroñca równowagi + + + Handlarze oferuj¹ ci rzadkie i kosztowne towary. + + + Wiesz, jak to jest nie mieæ grosza przy duszy, ale obecnie nie masz powodów do narzekañ. Jako ¿e zdarza ci siê dysponowaæ znacz¹cymi sumami pieniêdzy, handlarze ceni¹ sobie ciebie jako klienta. + + + Bogaty klient + + + Po otrzymaniu notatek, Strie³ok odzyska³ chêæ do ¿ycia i dojœcia do celu, niezale¿nie od kosztów. + + + Mo¿esz poszczyciæ siê dalekowzrocznoœci¹: przechowywane przez ciebie zapiski znalezione w schowkach grupy Strie³oka wróci³y do prawowitego w³aœciciela. + + + Stra¿nik sekretów + + + Uda³o ci siê prze¿yæ emisjê bez ukrywania siê dziêki lekom anabiotycznym. Wp³yw tego zdarzenia na twoj¹ psychikê nie jest do koñca zrozumia³y, poniewa¿ twój umys³ wype³nia dziwna cisza. Wydaje siê, ¿e ju¿ nie s³yszysz ci¹g³ego strumienia myœli. + + + Naznaczony przez Zonê + + + Handlarz Sowa zaoferowa³ ci zni¿kê, poniewa¿ jesteœ jego najlepszym informatorem i partnerem. + + + Kiedy zdobêdziesz wa¿n¹ informacjê, zawsze znajdujesz dla niej odpowiedniego nabywcê. Oczywiœcie sprzedaj¹c informacje odpowiednim osobom kierujesz siê w³asn¹ korzyœci¹. + + + Handlarz informacjami + + + Twoje stosunki ze stalkerami uleg³y poprawie. Jeœli kiedykolwiek napytasz sobie biedy, bêd¹ oni próbowali ci pomóc. \nStalkerscy medycy zgodzili siê sprzedawaæ ci lekarstwa po kosztach. + + + Zawsze pomagasz stalkerom w potrzebie. Mimo ¿e ich frakcja nie jest specjalnie z¿yta, masz teraz w nieoficjalnym bractwie sojuszników, którzy bêd¹ udzielaæ ci pomocy w walce i poza ni¹. + + + Przyjaciel stalkerów + + + Ró¿ne nowe informacje pozwoli³y profesorom Hermanowi i Oziorskiemu na stworzenie w Zonie nowego eksperymentalnego leku, tak zwanego anabiotyku. + + + Istnieje szansa prze¿ycia emisji nawet bez pomocy lekarstw, pod warunkiem, ¿e jesteœ w pe³ni zdrowia. + + + Ze wzglêdu na twoj¹ u¿ytecznoœæ, profesor Herman oferuje ci teraz po kosztach œrodki medyczne i wyposa¿enie przeznaczone tylko dla personelu bunkra. \nNowikow na tyle do ciebie przywyk³, ¿e przy wykonywaniu modyfikacji oczekuje tylko zwrotu kosztu u¿ytych czêœci. + + diff --git a/gamedata/configs/text/pol/st_characters.xml b/gamedata/configs/text/pol/st_characters.xml new file mode 100644 index 0000000..024a5ce --- /dev/null +++ b/gamedata/configs/text/pol/st_characters.xml @@ -0,0 +1,336 @@ + + + + Walet + + + Wano + + + Podpu³kownik Szulga + + + Loki + + + Hawajczyk + + + Kostopraw + + + Senka + + + Zulus + + + Wujek Jar + + + Topol + + + Bu³awa + + + Spirol + + + W¹¿ + + + Sêp + + + Azot + + + Traper + + + Flint + + + Genera³ Taczenko + + + Porucznik Bunczuk + + + Pu³kownik Kosmacz + + + Porucznik Zakarczuk + + + Czarny + + + Duplet + + + Chirurg + + + Czacha + + + Sztos + + + Koœciej + + + Truposz + + + W³óczêga + + + Pancerniak + + + Sierp + + + Mors + + + Cichy + + + Foma + + + Profesor Oziorski + + + Nowikow + + + Profesor Herman + + + Sier¿ant Szliaczin + + + Porucznik Siergiejew + + + Sier¿ant Waliuszok + + + Sier¿ant Ostrowski + + + Kapitan Klimenko + + + Porucznik Soko³ow + + + Kapitan Tarasow + + + Pu³kownik Kowalski + + + Porucznik Podoro¿ny + + + Porucznik Skelia + + + Sier¿ant Merkulow + + + Porucznik Stecenko + + + Sier¿ant Jarmoszuk + + + Porucznik Rogowiec + + + Porucznik Smirnow + + + Strie³ok + + + Barczuk + + + Major Diegtiariow + + + Karze³ + + + Szyszak + + + Grizli + + + Torba + + + Mitaj + + + Porucznik Gawrylenko + + + Flint + + + Gajduk + + + Garri + + + Porucznik Kiry³ow + + + Serbin + + + Szakal + + + ¯wawy + + + Krab + + + Garmata + + + Gonta + + + M³ot + + + Grzebieñ + + + Sowa + + + G³uszec + + + Dani³a + + + Su³tan + + + Morgan + + + Kastet + + + Spartakus + + + Brodacz + + + Kardan + + + Goblin + + + D¹b + + + Pianista + + + Kosiarz + + + Kirzacz + + + Czo³g + + + Bandzior + + + Tasak + + + P³otka + + + Noe + + + Pilot + + + Wstrz¹s + + + Porucznik Drapej + + + Chor¹¿y Umerow + + + Sêk + + + Hak + + + Prêga + + + Majron + + + Stóg + + + Pietrucha + + + Szyd³o + + + Major Czepurny + + + Chor¹¿y Walentir + + + St. sier¿ant Morozow + + + St. porucznik Smoliak + + + Drzazga + + + Sier¿ant Gazda + + + Kapitan Furtez + + + St. sier¿ant Szwejko + + diff --git a/gamedata/configs/text/pol/st_dialog_manager.xml b/gamedata/configs/text/pol/st_dialog_manager.xml new file mode 100644 index 0000000..148817f --- /dev/null +++ b/gamedata/configs/text/pol/st_dialog_manager.xml @@ -0,0 +1,993 @@ + + + + Na Zatonie jest miejsce, w którym pod wod¹ pojawi³y siê anomalie termiczne. Nazywaj¹ je Kot³em, bo leci tam spod ziemi para i ró¿ne takie. Jeœli myœlisz, ¿e para to fraszka, pomyœl dwa razy. Doœwiadczeni stalkerzy mówi¹, ¿e taki rodzaj parowej anomalii mo¿e ci przywaliæ co najmniej tak mocno, jak standardowa anomalia termiczna, jeœli nie mocniej. Temperatura mo¿e i jest ni¿sza, ale przysma¿a ciê d³u¿ej. Znajdowano tam g³ównie standardowe artefakty typu ogniowego. + + + Mówi¹, ¿e w kamienio³omach jest niez³e miejsce z mnóstwem artefaktów, chocia¿ anomalii te¿ tam nie brakuje. Na dole jest tyle b¹bli z anomalii gazowych, ¿e a¿ oczy bol¹, nawet w masce przeciwgazowej. + + + Na starym cmentarzu w pobli¿u Kopaczi jest Popielisko. Jest tam mnóstwo anomalii termicznych, a od czasu do czasu trafi siê te¿ kilka zombi. Ludzie staraj¹ siê omijaæ to miejsce, ale jednak znajduj¹ tam artefakty. + + + Mówi¹, ¿e znaleziono jakieœ artefakty na parkingu. Ci¹gle s¹ tam pojazdy z pierwszej katastrofy Czarnobyla - te maleñstwa potrafi¹ przyprawiæ czujniki promieniowania o zgagê. W dodatku parking jest pe³en anomalii elektrycznych. + + + W Gnij¹cym Zagajniku, gdzie kwas zdeformowa³ drzewa. Ludzie, którzy tam byli, twierdz¹, ¿e jest pe³en anomalii gazowych. W powietrzu jest tyle gazu, ¿e nie sposób zobaczyæ nic przed sob¹, ale z odpowiednim doœwiadczeniem znajdziesz tam artefakty, których szukasz. + + + Jeœli szukasz artefaktów, poluj na kwasowe. Najlepsze miejsce, by je znaleŸæ, to Betonowa Wanna. Konkurencja nie bêdzie du¿a: nikt nie lubi tego miejsca, bo le¿y blisko budynku fabryki Jupiter. + + + Niedaleko fabryki Jupiter obsun¹³ siê kawa³ek drogi. Nazwano to miejsce Bitumin, poniewa¿ stopi³a siê tam nawierzchnia. W szczelinie jest mnóstwo anomalii - zarówno termicznych, jak i grawitacyjnych. Poniewa¿ s¹ ich dwa rodzaje, artefakty te¿ musz¹ byæ ró¿ne. + + + Za cementowni¹ jest ma³a zatoczka zwana Mokrad³em. Zmieni³a siê w okropne, œmierdz¹ce bagno, a woda pe³na jest anomalii gazowych. W³aœciwie to ju¿ nawet nie jest woda, tylko kwas. Ludzie znajdowali tam artefakty, ale to miejsce obfituje te¿ w potwory. + + + Szukaj w starej cementowni. Pe³no tam anomalii, ale jednak warto. Oczywiœcie s¹ miejsca, w których ³atwiej o artefakty, ale ³atwiej tam te¿ o konkurencjê. Tutaj twoimi jedynymi konkurentami bêd¹ chomiki i to tylko wtedy, gdy zejdziesz do piwnic. + + + Poszukaj w okolicach Sosnodêbu. To to coœ rosn¹ce miêdzy wzgórzami, ponad anomaliami gazowym. Wszyscy tak to nazywaj¹, odk¹d jakiœ m¹drala zidentyfikowa³ korê tego drzewa jako zarówno sosnow¹, jak i dêbow¹. Jeœli chcesz tam szukaæ artefaktów, przyda ci siê dobra ochrona przeciwchemiczna. WeŸ te¿ sporo amunicji, bo wœród tych wzgórz ¿yj¹ ca³e hordy psów. + + + Czasami nie trzeba wpadaæ na anomalie, ¿eby zdobyæ artefakt. Powiedziano mi kiedyœ o artefakcie znalezionym w œrodku pola. Jeden ze stalkerów mia³ detektor, który zacz¹³ rozrabiaæ, wiêc postanowi³ zmieniæ w nim baterie. Jak tylko to zrobi³, detektor coœ wykry³ i proszê, artefakt praktycznie sam wpad³ mu w rêce. Mia³ gnojek szczêœcie, co? Taka jest Zona: czasami karze, a czasami nagradza. + + + Doœwiadczeni stalkerzy mówi¹, ¿e czasami artefakty oddalaj¹ siê od anomalii. Detektor zaczyna robiæ „piip", wyci¹gasz go, ale nic nie znajdujesz. To znaczy, ¿e w³aœnie min¹³ ciê artefakt wêdrowny. Nie ma jednak sensu za nim pêdziæ, bo to Zona decyduje, kogo nim nagrodziæ. + + + Nikt jeszcze nie szuka³ artefaktów w Prypeci. ¯aden z ludzi, których znam, nie by³ tam d³u¿ej ni¿ chwilê, wiêc zachowaj ostro¿noœæ. + + + Nie wiem, czy ktokolwiek zna dobre miejsca. Prypeæ jest jeszcze s³abo zbadana. + + + Proponujê poszukaæ w podziemnych tunelach. Mówi¹, ¿e jest ich mnóstwo pod miastem. + + + Niewiele wiadomo o tych okolicach. Tyle, co z opowiadañ Garriego. Twierdzi, ¿e jest pewne miejsce, gdzie z kwasowej anomalii wyrasta olbrzymia winoroœl, wysoka na dziesiêæ piêter. Pewnie nas nabiera, ale mo¿e warto na wszelki wypadek sprawdziæ tê winoroœl pod k¹tem artefaktów. + + + Najpewniejsze miejsce to kwasowe bagno. Pe³no w nim anomalii grawitacyjnych, ale ³atwo je zauwa¿yæ. Wystarczy patrzeæ uwa¿nie na powierzchniê wody i nie mo¿na siê pomyliæ. Anomalie gazowe to trochê wiêkszy problem, bo praktycznie nie ma tam czym oddychaæ. Dostaæ tak¹ to nie przelewki, mo¿esz mi wierzyæ. Potrafi prze¿reæ na wylot kamizelkê szybciej ni¿ kwas siarkowy. + + + Sporo anomalii termicznych jest w spalonym gospodarstwie na wzgórzu. Ludzie znajduj¹ tam artefakty. Szukaj w domach: w tych, w których po emisji jest najwiêcej anomalii, bêd¹ artefakty. + + + Prawdopodobnie jest ich sporo w jaskiniach pod spalonym gospodarstwem. Jeœli pójdziesz tam z detektorem, nie przestanie pikaæ. Dostaæ siê do nich to nie problem - po prostu wskocz od góry. Gorzej jest siê wydostaæ z tymi wszystkimi anomaliami na dole. G³ównie wirami i kwasem. Niektórzy twierdz¹, ¿e widzieli w szczelinie coœ przypominaj¹cego kometê. Ca³a gama niebezpieczeñstw, bez dwóch zdañ, ale to prawdopodobnie oznacza równie¿ ca³¹ gamê artefaktów. + + + Wiesz, co to za anomalia, Cyrk? To olbrzymia trampolina z dwiema okr¹¿aj¹cymi j¹ kometami - niez³y widok do podziwiania. Podziwiaj jednak z daleka, bo Cyrk, z mnóstwem anomalii termicznych, jest gor¹cy jak diabli. Ma te¿ sporo artefaktów, ale s¹ one chronione przez paskudnego poltergeista, który spróbuje ciê usma¿yæ, jak tylko siê zbli¿ysz. + + + Jeœli interesujesz siê artefaktami grawitacyjnymi, poszukaj ich w anomalii zwanej K³em. £atwo to miejsce zauwa¿yæ - anomalie zrobi³y swoje i oderwa³y po³owê wzgórza. Otworzy³o siê tam kilka jaskiñ, w których od razu zamieszka³y snorki. Na szczêœcie rzadko wychodz¹ na zewn¹trz. + + + W Zonie, cz³owieku, w Zonie. Wystarczy siê nie poddawaæ. + + + Œwietne pytanie. Daj znaæ, jak poznasz odpowiedŸ! + + + Gdzie, kiedy, dlaczego... Pamiêtaj: jak znajdziesz ¿y³ê z³ota, zachowaj j¹ dla siebie. + + + Gdzie mogê znaleŸæ artefakty? + + + Nie bêdê dwa razy powtarzaæ. + + + Nie, nic wiêcej ju¿ nie wiem. + + + To wszystko, co wiem. Zapytaj kogoœ innego. + + + Co tam, bracie? + + + Witaj. + + + Witaj, stalkerze. + + + Witaj. + + + Czego chcesz? + + + Co? + + + Gadaj. + + + Dzieñ dobry, majorze! + + + Dzieñ dobry! + + + S³ucham, majorze. + + + No czeœæ. + + + Co? + + + We w³asnej osobie. + + + Hej, stalkerze. Gdzie siê spieszysz? + + + Co tam? + + + Co tam, brachu? + + + Och, hej, stary. + + + Siemano. + + + Hej! + + + Pomó¿ mi, bracie! + + + Uratuj mnie, bracie, ja umieram... + + + Potrzebujê pomocy medycznej! + + + Apteczkê!... Szybko! + + + Pomó¿ mi, przyjacielu... Aaa, co za ból! + + + Dajcie mi apteczkê... apteczkê, szybko... + + + Stary... argh... dalej, pomó¿ mi! + + + Hej, potrzebujê apteczki... szybko... + + + Pomó¿ mi, stalkerze... apteczka, proszê... + + + Jestem ranny... pomocy! + + + Potrzebujê apteczki! + + + Apteczka! + + + Kojarzysz pog³êbiarkê na wschód od Skadowska? Mówi¹, ¿e w nocy œwieci tam coœ dziwnego... Zbyt dziwnego, nawet jak na Zonê. Naprawdê nie wiem, czy warto to sprawdzaæ. Mo¿e siê okazaæ, ¿e to coœ wartoœciowego, ale czy warto dla tego ryzykowaæ w³asnym ty³kiem? Oto jest pytanie... + + + Nic tu nie ma poza starymi, zniszcza³ymi rupieciami. WeŸmy na przyk³ad ten rozklekotany konwój na moœcie Przemienienia Pañskiego - jest kompletnie zardzewia³y. Most te¿. Wielu chêtnie by w tym miejscu poszpera³o, gdyby nie snorki i anomalie... + + + Wiesz, ¿e Su³tan planowa³ przej¹æ interes Brodacza? Skadowsk jest za ma³y, ¿eby pomieœciæ jego chciwy ty³ek, wiêc postanowi³ ugryŸæ jeszcze wiêkszy kawa³ek tortu... Ale powiedzieliœmy mu „nie ma mowy, José!" Brodacz i reszta naszych ch³opaków sprawili im niez³e piek³o. Su³tan i jego bandyckie plany nie maj¹ tu szans powodzenia. + + + Wiesz, ¿e ta szuja, Su³tan, przycisn¹³ Brodacza? Nie wiem dok³adnie, co zrobi³, ale wygl¹da na to, ¿e nieŸle siê z Brodaczem rozprawi³! Co siê dzieje z t¹ Zon¹? Jeœli tak dalej pójdzie, ani siê obejrzymy, jak Skadowsk stanie siê baz¹ dla bandytów! + + + Wiesz coœ o Oazie? Mówi¹, ¿e to miejsce, które bardzo ciê¿ko znaleŸæ, a gdy ju¿ wiesz, gdzie jest, jeszcze ciê¿ej siê do niego dostaæ. Podobno jest tam jezioro. Wystarczy do niego wejœæ, a natychmiast min¹ ci wszystkie dolegliwoœci i zagoj¹ siê rany. Ach, pró¿no gadaæ. Widzisz, ilu niedoœwiadczonych stalkerów przychodzi tutaj, do centrum Zony? Dla niektórych celem jest polowanie na artefakty, inni s¹ po prostu ciekawi, ale wiêkszoœæ ma nadziejê znaleŸæ Oazê. Plotka mówi, ¿e jest ukryta gdzieœ w pobli¿u... + + + Podobno Zona ma wkrótce znikn¹æ... Ktoœ znalaz³ Oazê i zabra³ z niej artefakt - Serce Oazy. Teraz Zona przeniesie siê w inny wymiar i ¿aden ze stalkerów nie bêdzie móg³ siê z niej wydostaæ... Spoko, tylko ¿artujê. Znaleziono jednak jakiœ nowy rodzaj artefaktu. Naukowcy w³aœnie majstruj¹ przy nim w swoim bunkrze. + + + Kojarzysz Topola? Znalaz³ dla swoich ludzi jakieœ nowe zadupie do pozwiedzania i oczywiœcie poszli tam z radoœci¹. Ich eskapady skoñczy³y siê tym, ¿e kontroler przesma¿y³ im mózgi. Sikaliby teraz pod siebie w bunkrach szpitalnych, gdyby nie by³o tam z nimi pewnego stalkera. Gdy Topol doszed³ do siebie po tej ca³ej zombifikacji, stalker kuca³ ko³o kontrolera i obcina³ mu uszy. + + + Wiesz coœ o wiosce Kopaczi? Gdy wydarzy³a siê pierwsza katastrofa elektrowni w Czarnobylu, ten obszar ucierpia³ tak bardzo, ¿e postanowiono zasypaæ ca³¹ wioskê. Nic tam teraz nie ma oprócz ma³ych, radioaktywnych ha³d w miejscu domów. Mówi¹, ¿e by³o tam upiornie nawet przed katastrof¹. Strach pomyœleæ, co mo¿na tam teraz znaleŸæ. Nikt nie jest doœæ odwa¿ny, ¿eby to sprawdziæ. Ale co jeœli siê myl¹? Teraz to mo¿e byæ kopalnia artefaktów! + + + Jest tylko dwóch stalkerów w Janowie, którzy s¹ w stanie wyczuæ zbli¿aj¹c¹ siê emisjê. Kostopraw, nasz medyk, i Zulus, by³y cz³onek Powinnoœci. S³owo 'by³y' to niedawna zmiana... Gdy Powinnoœæ przyby³a do Janowa, bojownicy Wolnoœci ju¿ tu byli. £atwo zgadn¹æ, ¿e sprawy szybko przybra³y paskudny obrót. Obie frakcje ponios³y du¿e straty. Kilku niezale¿nych stalkerów dosta³o nawet zab³¹kan¹ kul¹. Wtedy Zulus powiedzia³ im, ¿e nadchodzi emisja. Nie maj¹c wyboru, Powinnoœæ i Wolnoœæ og³osi³y rozejm i okopa³y siê na stacji. Kiedy by³o po wszystkim, Zulus odszed³ z Powinnoœci i zamieszka³ w wie¿y niedaleko stacji. + + + Pe³no jest dziwnych historii... Nie nale¿y we wszystkie wierzyæ. W dzisiejszych czasach w Zonie roi siê od bajarzy. Dziwne jednak, ¿e kilku stalkerów ze stacji Janów twierdzi, ¿e widzia³o UFO. Mówi¹, ¿e wygl¹da³o jak czarny spodek o œrednicy oko³o 5 metrów. Inni twierdz¹, ¿e z daleka wygl¹da³o jak samolot, ale nie s¹ pewni, co to by³o. Niezaprzeczalny fakt jest taki, ¿e jeden z naocznych œwiadków jest by³ym pilotem i mówi, ¿e nigdy w ¿yciu czegoœ takiego nie widzia³. + + + Ostatnio nic tylko z³e wieœci. Dobrzy ludzie znikaj¹ jeden po drugim, a potem znajdujemy ich cia³a bez nawet kropli krwi. To na pewno te cholerne pijawki, bo kto inny? Ooch, marzê, ¿eby znaleŸæ ich legowisko i napakowaæ te szmaty o³owiem! Nied³ugo bêdziemy parami chodziæ do kibla, zobaczysz. Samotni stalkerzy, cholera jasna. + + + Mam dla ciebie coœ nowego. Goœcie z Wolnoœci po³o¿yli ³apê na PDA legendarnego za³o¿yciela frakcji Powinnoœæ. I wiesz co? Okaza³o siê, ¿e oszuka³ swoich ludzi, mówi¹c im, ¿e dowództwo armii zostawi³o ich w Zonie. Wymyœli³ to tylko po to, ¿eby stworzyæ w³asn¹ frakcjê! Jednak w Zonie taka œciema nie przejdzie. Nied³ugo potem, nasz bohater skoñczy³ w B¹blu przestrzennym. Tak siê losy tocz¹... Pomyœleæ, ¿e rozwa¿a³em wst¹pienie do Powinnoœci! A tam, niech wyg³aszaj¹ swoje patetyczne bzdury beze mnie. + + + Ta nowa za³oga Powinnoœci... W³aœciwie pojawili siê znik¹d. Tylko pomyœl: grupa bojowników Powinnoœci opuszcza Janów i powraca w trzy razy wiêkszym sk³adzie. Klonuj¹ siê, czy co? W sumie mo¿na by siê tego spodziewaæ po Powinnoœci. Mo¿na ich odró¿niæ tylko po rangach! + + + Ta nowa za³oga Wolnoœci... W³aœciwie pojawili siê znik¹d. Tylko pomyœl: grupa bojowników Wolnoœci opuszcza Janów i powraca w trzy razy wiêkszym sk³adzie. Wiem! Rozmna¿aj¹ siê przez p¹czkowanie! Mo¿na by tak pomyœleæ, nie? Pal¹ tyle trawy, ¿e nied³ugo wypuszcz¹ korzonki i zaczn¹ siê rozmna¿aæ wegetatywnie! + + + Znasz Gontê i jego ch³opaków? Trochê ostatnio mieli pecha. Dani³a znikn¹³, a Krab zosta³ ranny. Teraz ju¿ chyba idzie im lepiej. Dobrze siê dogadali z naukowcami i robi¹ dla nich pomiary. NieŸle, co? Ciep³a posadka i du¿y krok w stronê oficjalnych przepustek. + + + Znasz takich stalkerów jak Mitaj, Torba i Grizli? Podobno znaleŸli robotê u naukowców i robi¹ dla nich pomiary. O co tu do diab³a chodzi? Moim zdaniem jajog³owi nie planuj¹ nic dobrego, ale przynajmniej ch³opaki s¹ teraz w niez³ej sytuacji. Mo¿e kiedyœ nawet dostan¹ oficjalne przepustki. + + + Znasz Spartakusa i jego ekipê? Ju¿ ich w Skadowsku nie zobaczysz - ochraniaj¹ teraz bunkier naukowców. W sumie, czemu nie - potrafi¹ poradziæ sobie z mutantami i wiedz¹, jak odstraszyæ bandytów. Nauka to szlachetne zajêcie, do którego potrzebne s¹ cisza i spokój. + + + Kojarzysz najemników, którzy utknêli na stacji? Ostatnio zniknêli. Wyruszyli do Jupitera, by ochraniaæ bunkier naukowców. Przed nimi inni najemnicy strzegli tego miejsca, ale podobno coœ im siê sta³o. Nie za dobra tendencja, moim zdaniem! Najemnicy znikaj¹, inni ich zastêpuj¹, i tak w kó³ko... Jeszcze kilka takich rund i na Zatonie w ogóle nie bêdzie najemników. + + + Ludzie mówi¹, ¿e bunkier naukowców jest teraz ochraniany przez mê¿nych wojowników Powinnoœci... Ciekawe, co bêd¹ z tego mieli. Naprawdê wierz¹, ¿e ci 'ologowie' dadz¹ im w rewan¿u nowiuteñki karabin plazmowy, ¿eby mogli sobie popolowaæ na chomiki? Te¿ mi ochroniarze. + + + Mówi¹, ¿e bunkier naukowców jest teraz ochraniany przez Wolnoœæ. Czy ci naukowcy siê nie boj¹, ¿e ich obiekty doœwiadczalne pójd¹ z dymem? I to dos³ownie. Ma to te¿ swoje dobre strony. Jeœli ktoœ spróbuje zaatakowaæ bunkier, bêdzie musia³ siê najpierw przedrzeæ przez zas³onê dymn¹! Ha ha ha! + + + Wiesz, gdzie jest fabryka radioelektroniczna Jupiter? Straszne miejsce. Nikt tak naprawdê nie wie, co tam siê dzieje. Anomalie i mutanty s¹ takie same jak wszêdzie... Ale jakoœ nie mam ochoty siê tam wybraæ. Czujê, ¿e to miejsce oznacza k³opoty. + + + Hej, czy to tobie zawdziêczam zdemaskowanie skadowskiego medyka? Doceniam to, naprawdê. Nie wiadomo, kto by³by jego nastêpnym pacjentem... Wszyscy myœleliœmy, ¿e to sprawka potworów, ale, jak widaæ, niektórzy ludzie mog¹ byæ równie Ÿli. Cz³owiek cz³owiekowi wilkiem, prawda? + + + Kto tu kogo powinien pytaæ? Po twoim wejœciu do tuneli pod Jupiterem s³yszeliœmy plotki, ¿e uda³o ci siê dotrzeæ a¿ do centrum Zony. Powsta³o niez³e zamieszanie. Z tuzin ludzi chcia³o pójœæ za twoim przyk³adem. Azot ich uspokoi³ - powiedzia³, ¿e bramy tunelu siê zatrzasnê³y i nie mo¿e nic zrobiæ, ¿eby je otworzyæ. Oczywiœcie znalaz³o siê kilku szaleñców, którzy chcieli wysadziæ bramê, ale ci¹gle kombinuj¹, sk¹d wzi¹æ wystarczaj¹c¹ iloœæ dynamitu i jak w³aœciwie bêd¹ oddychaæ, kiedy ju¿ tam wejd¹. + + + Znasz ostatnie wieœci o Garrim? To ten stalker, który pracowa³ dla naukowców. Ju¿ nie przekracza granicy nielegalnie - dosta³ oficjaln¹ przepustkê do Zony, uwierzysz? Myœlisz sobie, ¿e powinien by³ zabraæ swój ³up i wróciæ do domu? Có¿, zamiast tego ten wariat wybra³ siê do Prypeci. Wszyscy myœleli, ¿e przepad³ na dobre, tak jak reszta, ale gdzie tam. Uda³o mu siê, ale jego wyczyn niewiele da³ stalkerom. Wpad³ na jakichœ wojskowych. Teraz Garri jest w dobrych stosunkach z ¿o³nierzami, ma przepustkê i w ogóle, ale ten rejon jest ci¹gle niedostêpny dla zwyk³ych stalkerów. + + + No có¿... Wolnoœæ i Powinnoœæ znowu walcz¹, tym razem o jakiœ powa¿ny schowek. Mówi¹, ¿e jest tam doœæ broni, by wyposa¿yæ trzy dywizje piechoty. Nie wiadomo, kto to wszystko w ogóle schowa³, ale ich ostateczne stracie to by³o naprawdê coœ. Poruszy³o wszystkich stalkerów w Janowie, którzy na szczêœcie sobie odpuœcili, bo mielibyœmy kolejn¹ zadymê, ka¿dy na ka¿dego. Wydaje mi siê, ¿e Powinnoœæ oberwa³a najbardziej, bo teraz teren jest chroniony przez oddzia³y Wolnoœci. + + + No có¿... Powinnoœæ i Wolnoœæ znowu walcz¹, tym razem o jakiœ powa¿ny schowek. Mówi¹, ¿e jest tam doœæ broni, by wyposa¿yæ trzy dywizje piechoty. Nie wiadomo, kto to wszystko w ogóle schowa³, ale ich ostateczne stracie to by³o naprawdê coœ. Poruszy³o wszystkich stalkerów w Janowie, którzy na szczêœcie sobie odpuœcili, bo mielibyœmy kolejn¹ zadymê ka¿dy na ka¿dego. Wydaje mi siê, ¿e Wolnoœæ oberwa³a najbardziej, bo teraz teren jest chroniony przez oddzia³y Powinnoœci. + + + Coœ siê ostatnio wydarzy³o. Grupa stalkerów przeszukiwa³a tunele pod Jupiterem i wpad³a na coœ - to znaczy na kogoœ. Najpierw spluwy wylecia³y im z r¹k, a póŸniej wszystkie œmieci zaczê³y lecieæ w ich kierunku. Nie mieli pojêcia, co siê tak w³aœciwie sta³o, ale stracili tam dwóch ch³opaków. + + + Podobno znaleŸli jakiegoœ zasranego mutanta w tunelach na pó³noc od Jupitera. Traper wys³a³ tam stalkera, ¿eby to sprawdzi³. Okaza³o siê, ¿e by³o tam kiedyœ legowisko burerów. Dlaczego „by³o”? Bo ten stalker wymiót³ wszystkich. Sam... Nawet pasujesz do jego opisu, tylko tamten jest wy¿szy i zawsze nosi ze sob¹ granatnik. + + + Ju¿ po stalkerach... Potwory wy³a¿¹ z Mokrade³. Stalkerzy z cementowni widzieli je, jak wlok³y jednego z naszych. By³o ich co najmniej tuzin, ogromne sukinsyny, a¿ trudno uwierzyæ. Wygl¹da³y jak pijawki, tylko dwa razy wiêksze i du¿o szybsze. Modlimy siê, ¿eby Traper wymyœli³, jak sobie poradziæ z tymi bestiami... + + + Wiesz coœ o bagiennych pijawkach? Tych z Mokrade³? Ju¿ ich nie ma. Traper siê do nich dobra³... Nie osobiœcie - wynaj¹³ kilku stalkerów. Mówi¹, ¿e zebra³ ekipê oko³o dziesiêciu ludzi, którzy przeczesali te bagna wzd³u¿ i wszerz, a wszystko, co wyskoczy³o, wys³ali na tamten œwiat. Nawet ¿ab ju¿ tam nie ma. + + + Nied³ugo po tym, jak rozesz³a siê wieœæ o chimerze, ktoœ j¹ rozwali³. Mutanty zabija³y stalkerów tuzinami, ale chyba siê wreszcie wycwaniliœmy i odwracamy tê tendencjê. Wiadomo mi te¿ z innych Ÿróde³, ¿e goœæ by³ doœwiadczonym ³owc¹, który zabi³ w ¿yciu wiêcej potworów ni¿ my razem komarów. + + + Wiesz, jakich ludzi Wolnoœæ teraz rekrutuje? By³ jeden goœæ zwany Flintem. Chwali³ siê swoimi wyprawami na prawo i lewo... có¿, okaza³o siê, ¿e by³ niez³ym œmieciem. Da³ kumplowi umrzeæ w anomalii, zabra³ ³up i odszed³. PóŸniej dowiedziano siê wiêcej o jego wyczynach na Zatonie, gdzie praktycznie nakarmi³ chimerê grup¹ ³owców. Kiedyœ moje zdanie o Wolnoœci by³o lepsze. Kurna, ju¿ lepiej nie nale¿eæ do ¿adnej frakcji, ni¿ mieæ takich przyjació³. + + + Zabili tê chimerê z Zatonu. Ekipa Gonty razem z nieznanym stalkerem. Czekaj, to chyba ty, prawda? Mogê liczyæ na relacjê z pierwszej rêki? Stokrotne dziêki. Przy okazji jest o jednego mutanta mniej! + + + Nie wiem, czy warto o tym gadaæ, ale mamy tu tego goœcia, Noego, najbardziej zakrêcony œwir, jakiego w zobaczysz w ¿yciu. Ma paskudn¹ barkê, która wygl¹da, jakby mu j¹ paru ludzi zbudowa³o w tydzieñ na lewo. Uwa¿aj na niego, bo najpierw strzela, a póŸniej nawet nie zawraca sobie g³owy zadawaniem pytañ. Moim zdaniem - w cholerê z takim dupkiem. + + + Kojarzysz ¯wawego? Podstêpny goœæ. Sprzedaje najlepsze spluwy w okolicy, bez dwóch zdañ. Ciekawe, jak je przemyca. Jak mo¿na przenieœæ Wintara, ¿eby nie by³o widaæ, ¿e to robisz? Gdzie go sobie wetkniesz? To jakieœ cholerne czary. + + + Chodzi plotka, ¿e Su³tan wdepn¹³ w jakieœ niez³e gówno. Chcia³ zniszczyæ Brodacza i przej¹æ jego interes, ugryz³ jednak wiêcej, ni¿ jest w stanie prze¿uæ. Zamiast tego dosta³ w pysk. Ma przed sob¹ trudne czasy, bo jego ekipa przygl¹da mu siê ze wszystkich stron. Ju¿ siê tak nie liczy jak kiedyœ. + + + Mówi¹, ze Su³tan trzyma Brodacza w garœci i wykorzystuje jego interes. Œwietna sprawa. Su³tan du¿o bardziej siê teraz liczy. A najlepsze w tym wszystkim jest to, ¿e teraz mo¿emy rz¹dziæ Skadowskiem po swojemu. Bêdzie piêknie. Szukasz schronienia przed emisj¹? Nie ma sprawy, wystarczy zap³aciæ! + + + Hej, wiesz coœ o Oazie? Tylko sobie wyobraŸ, miejsce, które natychmiast leczy wszystkie bóle i choroby. To na pewno jakaœ magiczna sztuczka... Ja mam jednak jeszcze inny pomys³. Tyle jest zamieszania wokó³ tej Oazy, a nikt ju¿ nie mówi o Spe³niaczu ¯yczeñ. Mo¿e Oaza to po prostu czyjeœ spe³nione ¿yczenie? + + + Jajog³owi gadaj¹ o jakimœ artefakcie przywleczonym z Oazy. Ale s³uchaj tego: jak go przestudiuj¹, wykorzystaj¹ wyniki swoich badañ, ¿eby wymyœliæ lekarstwo na raka! Powaga! + + + Codziennie to samo gówno... Wszyscy wykopuj¹ stare historie na temat centrum Zony. Na przyk³ad tê o Oazie - miejscu, które natychmiastowo przywraca ci energiê i leczy rany. To bujda w czystej postaci, ale przyjemnie siê jej s³ucha. Szczególnie jak gdybaj¹, gdzie znaleŸæ to miejsce. Och, fajnie by by³o, gdyby istnia³o naprawdê... Uratowalibyœmy tylu ch³opaków. + + + Plotka g³osi, ¿e odnaleziono Oazê. Kto by przypuszcza³, ¿e naprawdê istnieje. Z faktami jednak nie mo¿na polemizowaæ. Znaleziono tam jakiœ artefakt. Naukowcy badaj¹ go w tej chwili. Byæ mo¿e bêd¹ mogli go wykorzystaæ, aby stworzyæ jakieœ superszybkie lekarstwo... Przyda³oby siê naszym ch³opakom. + + + Kopaczi. W Zonie to nic nowego, ale dla mnie to nowoœæ. WyobraŸ sobie tylko - ca³a wioska z domami zakopanymi pod ziemi¹ a¿ po dachy... Wszystko z roku 1986... Domy emitowa³y tyle promieniowania, ¿e musieli je zasypaæ. Okropny widok... + + + Znasz tê historiê, jak razem z Powinnoœci¹ musieliœmy stacjonowaæ w Janowie? To wszystko przez Zulusa. Wtedy by³ w Powinnoœci. Jak nikt inny potrafi³ wyczuæ zbli¿aj¹c¹ siê emisjê... Ale my przybyliœmy do Janowa pierwsi, po stalkerach, oczywiœcie. Nie mieliœmy nawet czasu zapaliæ fajki, gdy siê zjawili ci niewydarzeni szeregowcy, wymachuj¹c spluwami. Ostatni raz taka rzeŸ mia³a miejsce ponad rok temu na Wysypisku. Mnóstwo ludzi zginê³o po obu stronach. W tym nasz specjalista od emisji, œwieæ Panie nad jego dusz¹. I wtedy Zulus zacz¹³ krzyczeæ „Emisja siê zbli¿a! Kryæ siê!" Co mieliœmy robiæ? Wywaliæ ich i pozwoliæ umrzeæ? Powinnoœæ czy nie, to ci¹gle ludzie. Tak w³aœnie ¿yjemy: k³ócimy siê, kiedy jest cicho, a gdy przychodzi emisja, siedzimy razem, jedni obok drugich. Zulus ostatecznie opuœci³ Powinnoœæ. Zosta³ pustelnikiem i mieszka niedaleko Janowa. + + + Ani to nowoœæ, ani ¿aden sekret, ale Kardan, technik, wkrótce zapije siê na œmieræ. Mówi¹, ¿e zacz¹³ spokojnie, gdy przyby³ do Skadowska. Pi³ tylko okazjonalnie i dla ochrony przed promieniowaniem. Dopiero póŸniej zacz¹³ siê zalewaæ w trupa, ogarniêty ¿alem po œmierci dwojga przyjació³. Musieli byæ mu bardzo bliscy. + + + Œmieszna historia. By³ jeden goœæ, który opowiada³, ¿e widzia³ UFO lataj¹ce nad Janowem. Zona potrafi doprowadziæ ludzi do wariactwa, nie? Poltergeisty i kontrolerzy to jeszcze dla nich za ma³o. Nie mog¹ siê obejœæ bez starych, dobrych opowieœci o UFO. Có¿, przynajmniej nie mamy ¿adnych psychicznych dziwaków, wyganiaj¹cych z³e duchy z wódki. WyobraŸ sobie takiego: „O Panie, przegnaj z³e duchy! Zostaw tylko czysty spirytus sanctus!"... Ha ha. + + + Wiesz coœ o wiosce Kopaczi? Gdy wydarzy³a siê pierwsza katastrofa elektrowni w Czarnobylu, ten obszar ucierpia³ tak bardzo, ¿e postanowiono zasypaæ ca³¹ wioskê. Nic tam teraz nie ma oprócz ma³ych, radioaktywnych ha³d w miejscu domów. Mówi¹, ¿e by³o tam upiornie nawet przed katastrof¹. Strach pomyœleæ, co mo¿na tam teraz znaleŸæ. Nikt nie ma doœæ odwagi, ¿eby to sprawdziæ. + + + To ¿adna nowina, ale mo¿e o tym nie wiesz. Nie wskoczyliœmy do jednego ³ó¿ka z Wolnoœci¹, bo lubimy siê przytulaæ. Wszystkiemu winne s¹ okolicznoœci. Kiedy tu przybyliœmy, Wolnoœæ napad³a na nas znienacka... Straty by³y ogromne po obu stronach, chocia¿ powoli zdobywaliœmy przewagê nad anarchistami. Gdy walka trwa³a w najlepsze, Zulus wyczu³ zbli¿aj¹c¹ siê emisjê. On siê nigdy nie myli. Nie mieliœmy wyjœcia. Musieliœmy przerwaæ walkê. Nie rozumiem jednak, dlaczego Zulus opuœci³ Powinnoœæ po tym incydencie. + + + Nasi zwiadowcy donieœli o niezidentyfikowanym obiekcie lataj¹cym nad stacj¹ w Janowie. Innymi s³owy, o UFO. Zanim zaczniesz zadawaæ g³upie pytania, UFO to nie jakiœ tam lataj¹cy spodek z Marsjanami na pok³adzie. To mo¿e byæ cokolwiek, od kawa³ka tektury do sondy meteorologicznej, o ile naoczni œwiadkowie nie s¹ w stanie tego zidentyfikowaæ. Kapujesz? + + + Dostarczenie Lokiemu PDA to twoja sprawka, prawda? Cz³owieku, po prostu bomba. Legendarny za³o¿yciel Powinnoœci, genera³ Taczenko, wrobi³ swoich ¿o³nierzy jak jakichœ frajerów. Zepsu³ radio, ¿eby nie mo¿na by³o siê z nimi skontaktowaæ, i za³o¿y³ w³asn¹ bandê s³uchaj¹cych go idiotów... tylko po to, ¿eby zejœæ w prawdziwie kretyñski sposób w jakimœ pieprzonym B¹blu przestrzennym! Samemu by siê takiej historii nie wymyœli³o! + + + Widzisz, jakich nowych ludzi ci niewydarzeni ¿o³nierze znaleŸli sobie do ekipy? Na pewno nie s¹ to posi³ki z bazy - ideologia jeszcze nie do koñca zast¹pi³a zdrowy rozsadek. S¹ jednak zbyt dobrze wyszkoleni jak na zwyk³ych stalkerów. Kto to, do diab³a, mo¿e wiedzieæ? Mo¿e s¹ z Monolitu? Wiem, ¿e to brzmi wariacko! + + + Widzisz, jakich mamy nowych wojowników? Ach, to twoja sprawka, prawda? Naprawdê rz¹dzisz. S¹ ca³kiem nieŸli, chocia¿ trochê spiêci... Spoko, kilka miesiêcy z nami oczyœci im umys³y. Zaczn¹ ¿yæ naszym trybem i wkrótce stan¹ siê tacy jak my. + + + Mamy kilku nowych, œwietnych rekrutów: ekipa by³ych bojowników Monolitu. To nie s¹ jakieœ ¿ó³todzioby, tylko wyszkoleni wojownicy. Oczywiœcie maj¹ trochê poprzestawiane w g³owach po opuszczeniu Monolitu, ale to nie szkodzi, mamy na tê okazjê specjalne, intensywne szkolenia z podstaw Ideologii i nie tylko. + + + Mówi¹, ¿e Wolnoœæ zwerbowa³a kilku by³ych wojowników Monolitu. Ciê¿ko w to uwierzyæ, ale rzeczywiœcie maj¹ now¹ ekipê, która na pewno nie przyjecha³a z zewn¹trz Zony. Chyba s¹ nieŸle zdesperowani... albo mózgi ju¿ im kompletnie zanik³y od tych wszystkich narkotyków. Kogo zrekrutuj¹ w nastêpnej kolejnoœci? Brygadê zombiaków? A mo¿e batalion burerów? + + + Wkrótce w tej okolicy znów zapanuje prawo i porz¹dek. Powinnoœæ przejê³a kontrolê nad kluczowymi pozycjami w regionie. Zapewniliœmy stabiln¹ sytuacjê w Janowie i sprawujemy sta³¹ ochronê nad bunkrem naukowców. Czas ju¿, by Wolnoœæ spakowa³a manatki i wynios³a siê st¹d - anarchiœci nie s¹ tu mile widziani. + + + Najnowszy cud œwiata - trzeŸwy Kardan. Potrafisz sobie wyobraziæ, ¿e w ogóle nie pije? Ludzie ze Skadowska pytali go, czy znalaz³ numer na telefon zaufania, na co odpowiedzia³, ¿e jedyny numer, jakiego potrzebuje, to szeœædziesi¹t dwa. + + + Wdaje mi siê, ¿e to dziêki tobie nasi dostali tê robotê przy ochronie naukowców, zgadza siê? Dziêki ci za to. Przyjemnie by³o ogl¹daæ naszych ludzi przy bunkrze, zamiast tych pieprzonych najemników. Œwietna sprawa! + + + Zobaczmy... mamy niez³¹ jazdê dziêki tajnemu schowkowi Powinnoœci. Teraz u¿yjemy tego schowka do tego, do czego jest przeznaczony - jako wiêzienie dla szumowin Powinnoœci, aby zmusiæ ich do wydania wszystkich tajemnic. He, he. Aha, dziêki za cynk o alarmie - bez posi³ków nie mielibyœmy szans. + + + Kolejne zwyciêstwo Powinnoœci! Ci anarchiœci zrobili siê naprawdê zarozumiali... Wkradli siê do naszego sekretnego magazynu, przekonani, ¿e ujdzie im to na sucho. Nie ma mowy! Zaskoczyliœmy ich i rozwaliliœmy, jak siê rozwala wœciek³e chomiki. + + + To ¿adna nowina, ¿e Wolnoœæ to banda zwyrodnialców, ale odkryliœmy coœ nowego na temat jednego z ich najwiêkszych szajbusów. W Wolnoœci goœæ by³ znany jako Flint, ale zanim do niej wst¹pi³, by³ stalkerem i wo³ali na niego Sroka. Przynajmniej tak siê nazywa³, gdy przyby³ do Zatonu i prawie zaprowadzi³ ekipê ³owców prosto w szczêki mutantów. Wystawi³ ich i chimera prawie rozdar³a ich na strzêpy, a ten gnojek zabra³ ich sprzêt i przyby³ tutaj, do Janowa. Po do³¹czeniu do Wolnoœci wepchn¹³ swojego partnera do anomalii, ¿eby zabraæ mu artefakt. Taka w³aœnie jest Wolnoœæ. + + + Nowy projekt budowy statku pod kierownictwem Noego. To najnowsza atrakcja na Zatonie - stalker imieniem Noe. Doœwiadczony, zmotywowany i w stu procentach szalony. Ostatnim jego wariackim pomys³em jest uratowanie wszystkich stalkerów przed Apokalips¹. Dlatego w³aœnie przebudowuje star¹ barkê na „arkê". Doprawdy, istny szaleniec. Jeœli zdecydujesz siê do niego wpaœæ, uwa¿aj, ¿eby go nie rozdra¿niæ. Dopóki bêdziesz o tym pamiêtaæ, jest praktycznie niegroŸny. + + + Znasz ¯wawego? Jest teraz w Skadowsku. To prawdziwy handlowy profesjona³. Mo¿e dla ciebie zdobyæ wszystko, czego potrzebujesz. No, prawie wszystko. Ostatnio skupi³ siê na spluwach i kombinezonach, wszystko z górnej pó³ki! Wyspecjalizowany towar, eksperymentalne wzory, artyku³y rêcznie robione... Tanio u niego nie jest, ale dlaczego mia³oby byæ? Za ekskluzywnoœæ trzeba p³aciæ! + + + Wiesz, ¿e Pilot u¿ywa nowej œcie¿ki miêdzy Zatonem i Jupiterem? Kiedyœ trzeba by³o poœwiêciæ sporo czasu - w³aziæ pod górê, unikaæ anomalii i tak dalej. Teraz to bu³ka z mas³em. To ju¿ nie wyprawa, tylko spacer po parku, nie mówi¹c o tym, ¿e idzie siê o po³owê krócej. Ale Pilot potrafi oddaæ honor, gdy siê komuœ nale¿y - to nie on odkry³ tê trasê. Pewien stalker pokaza³ mu swoje mapy. Za op³at¹, oczywiœcie, ale nie za¿¹da³ jakiejœ astronomicznej kwoty. + + + Niewiele, szczerze mówi¹c. + + + W Zonie zawsze znajdzie siê coœ nowego, gdziekolwiek by nie szukaæ. + + + Có¿, jesteœ tutaj. To coœ nowego, jak s¹dzê. + + + Co nowego w Zonie? + + + Nie wiem ju¿ niczego, co by ciê zainteresowa³o. + + + Lubiê gadaæ, ale nic ju¿ wiêcej nie wiem. + + + Nie wiem ju¿ nic wiêcej. + + + Hmm... mo¿e zapytaj G³uszca w Skadowsku. Szuka kogoœ, kto pomo¿e mu wyjaœniæ sprawê gin¹cych w tajemniczy sposób stalkerów. Wszyscy wini¹ pijawki, bo znajdowane cia³a s¹ kompletnie pozbawione krwi. Ale to ju¿ zbyt wiele... Ludzie s¹ porywani ka¿dego dnia, co zupe³nie nie pasuje do pijawek... G³uszec wynaj¹³ nawet doœwiadczonego ³owcê, ¿eby namierzy³ te pijawki. + + + Kiedy stalker potrzebuje pieniêdzy, ma dwie mo¿liwoœci: poszukaæ artefaktów i oddaæ je handlarzom za 30 procent wartoœci lub popracowaæ dla naukowców. Zawsze wymyœl¹ coœ, co stalker mo¿e dla nich zrobiæ, na przyk³ad dostarczyæ rzadki artefakt albo zw³oki mutanta. Najwa¿niejsze jednak jest to, ¿e jeœli przejdziesz na ich stronê, mog¹ ci wydaæ przepustkê do Zony, wszystko oficjalnie i legalnie. WyobraŸ sobie, ¿e mijasz posterunek wojskowy, nios¹c plecak pe³en ³upów, i jeszcze ci salutuj¹! A¿ siê ciep³o na sercu robi! W ka¿dym razie, bunkier naukowców usytuowany jest na zachód od stacji Janów. Pracuje dla nich jeden stalker, mo¿e ciebie te¿ zatrudni¹. + + + Twoje sukcesy zale¿¹ od tego, czym siê zajmujesz. Je¿eli nie masz nic przeciwko polowaniu na mutanty, bêdziesz mieæ mnóstwo zleceñ. Wpadnij do piwnic w Janowie i zapytaj o Trapera - p³aci niez³¹ kasê za pozbywanie siê mutantów. Tylko nie zwracaj siê do niego po nagrodê za zabicie pierwszego z brzegu nibypsa. Traper daje zlecenia na konkretne potwory, które przeszkadzaj¹ w zbieraniu artefaktów lub nawiedzaj¹ miejsca, których stalkerzy u¿ywaj¹ jako kryjówek przed emisj¹. + + + Ludzie tacy jak ty, którzy przyje¿d¿aj¹ do Skadowska, czêsto odwiedzaj¹ Brodacza. Potrafi odpaliæ ³adn¹ dolê za artefakty... ale powiem ci jedno - jego wyczucie interesu jest kompletnie do dupy. Nie chce siê podzieliæ zyskami z pewnymi wp³ywowymi ludŸmi... i dlatego w³aœnie bêdzie mia³ przesrane. Kumasz? + + + Jeœli potrzebujesz gotówki, odwiedŸ Sowê. Handluje wszystkim, czego cz³owiek mo¿e w Skadowsku potrzebowaæ - informacjami, spluwami, wszystkim. Jeœli masz coœ ciekawego i wartoœciowego, jak dokumenty albo PDA stalkera - zabierz to do Sowy i zgarnij kasê. Mo¿esz te¿ dostaæ ³adn¹ sumkê za wykonywanie jego osobistych poleceñ. Zapytaj po prostu, czy nie potrzebuje, ¿eby coœ dla niego zrobiæ. + + + Radzê pogadaæ z Gont¹. On i jego dru¿yna maj¹ niez³¹ historiê do opowiedzenia. Niedawno temu na Zatonie pojawi³a siê chimera, wiêc Gonta i jego ludzie wyruszyli, ¿eby siê z ni¹ rozprawiæ. Rozdzielili siê na dwie dru¿yny, by namierzyæ bestiê i wys³ali ³owcê, ¿eby odszuka³ legowisko pijawek. Mieli trochê ma³o ludzi, kiedy wreszcie trafili na œlad chimery, wiêc poszed³ z nimi jeszcze jeden stalker, Sroka. Nie wiem jak to siê dok³adnie odby³o, ale z wiêkszoœci relacji wynika, ¿e Sroka prysn¹³ jak tylko zobaczy³ chimerê. Gonta ledwo siê stamt¹d wydosta³, a jeden z jego ludzi zosta³ ciê¿ko ranny. Jednak chimera wci¹¿ grasuje, szukaj¹ wiêc ludzi, którzy by im pomogli. + + + Proste: szukasz powa¿nej gotówki, idŸ do Su³tana. On jest szefem w tej okolicy, wiêcej jeœli bêdziesz siê dobrze zachowywaæ, znajdzie dla ciebie robotê. + + + Jeœli jesteœ dobrym stalkerem - to znaczy umiesz znajdowaæ artefakty - pogadaj z Brodaczem. Cieszy siê tu du¿ym szacunkiem. Jest jedynym cz³owiekiem w Skadowsku, który dobrze ci zap³aci za twoje artefakty. Ma kontakty, dziêki którym transportuje je na zewn¹trz Zony. Poza tym - jest dobrym cz³owiekiem... zawsze bêdzie mia³ dla ciebie radê albo odpowiedni¹ pracê. + + + W Skadowsku jest pewien handlarz, nazywa siê Sowa. Nie jest najsympatyczniejszym cz³owiekiem na œwiecie. Ci¹gle narzeka, ¿e wszystkie artefakty id¹ do Brodacza, a nie do niego, ale jeœli potrzebujesz pieniêdzy, mo¿esz zobaczyæ, co ma do zaoferowania. Cwaniak handluje nie tylko amunicj¹. Mo¿e udzieliæ ci informacji, coœ ci sprzedaæ, kupiæ coœ od ciebie i zap³aciæ za coœ, co wiesz, a co go interesuje. Wpadnij do niego z wizyt¹ - mo¿esz go znaleŸæ na drugim pok³adzie na rufie. Na pewno jakoœ siê dogadacie. + + + Zapytaj Wano, bywa w barze w Janowie. Ma na pieñku z bandytami - ju¿ trzy razy próbowa³ sp³aciæ swój d³ug. Jest doœwiadczony i w ogóle, potrafi dostrzec anomalie z zamkniêtymi oczami... a i tak ci¹gle pakuje siê w k³opoty. Wielu ludzi sugerowa³o mu, ¿eby po prostu uciek³. Zona jest za du¿a, ¿eby mafia go znalaz³a, ale on jest zbyt dumny, ¿eby uciekaæ. Nie ma jednak zbyt wielu chêtnych do pomocy w rozwi¹zaniu kwestii z bandytami... + + + Zapomnij o robocie, cz³owieku... Bandyci naprawdê wymknêli siê spod kontroli - wziêli Mitaja na zak³adnika i ¿¹daj¹ okupu. Mitaj by³ jednym z pierwszych stalkerów w Janowie, zbudowa³ to miejsce, ¿eby ludzie mogli siê schroniæ przed emisj¹, a teraz, kiedy potrzebuje pomocy, wszyscy siê na niego wypiêli. Na Wolnoœæ i Powinnoœæ nie ma co liczyæ - zbyt s¹ zajête skakaniem sobie nawzajem do garde³... Ale reszta - oni powinni coœ zrobiæ! Ech, nie ma co... Nawet za³oga Mitaja nie wie, jak go uwolniæ. Jeœli chcesz im pomóc, pogadaj z Grizlim. Znajdziesz go w barze na stacji. + + + Azot, technik z Janowa, potrzebuje materia³ów do pracy. Zna siê na broniach i elektronice. Czasem jednak umiejêtnoœci to za ma³o - potrzeba mu odpowiednich materia³ów, wiêc rozpytuje w okolicy. Problem w tym, ¿e wszystkie bezpieczne miejsca ju¿ s¹ wyczyszczone, a pozosta³e s¹ dla wiêkszoœci zbyt niebezpieczne. Azot ma nadziejê znaleŸæ kogoœ, kto by³by chêtny podj¹æ to ryzyko. Na pewno nieŸle zap³aci za przys³ugê. + + + Ponoæ Wujek Jar ze stacji Janów szuka³ niezbyt ciekawskiego stalkera, który by mu w czymœ pomóg³. Nie wiem, czemu nie zapyta swoich kumpli z Wolnoœci... W ka¿dym razie - jest porz¹dnym, starszym cz³owiekiem, wiêc pogadaj z nim i mo¿e siê dogadacie. + + + Hmm... Nie znam nikogo takiego. + + + Któ¿ nie chcia³by tego wiedzieæ? + + + Sk¹d do diab³a mam wiedzieæ? + + + Znasz kogoœ, kto mia³by dla mnie pracê? + + + Pytasz znowu o to samo. + + + Nic nowego nie jestem ci w stanie powiedzieæ. + + + Znasz ju¿ moj¹ odpowiedŸ. + + + OK, zapomnij o tym. + + + Mam do ciebie pytanie. + + + Pytaj œmia³o. + + + Dawaj. + + + Strzelaj. + + + S³ucham. + + + Pomocy! + + + WeŸ tê apteczkê. + + + Przepraszam, nic nie mam. + + + Rozumiem. + + + Co robisz? + + + Mogê pójœæ z tob¹? + + + Pewnie. W kupie raŸniej. + + + Przykro mi, ale nie. Idê swoj¹ w³asn¹ drog¹. + + + No to chodŸmy. + + + Muszê siê dostaæ w pewne miejsce. Zaprowadzisz mnie tam za op³at¹? + + + Nie ma sprawy. Wybieraj, jakie miejsce ciê interesuje? + + + Zgoda. ChodŸmy. + + + Zmieni³em zdanie. + + + Nie, mam inne pilne sprawy do za³atwienia. + + + Odpoczywam sobie. + + + Nic wielkiego, za¿ywam odrobiny relaksu. + + + A na co to wygl¹da? Absolutnie nic. + + + Tropiê mutanty. + + + Œledzê kilku dupków. Pieprzone przyg³upy... + + + Tropiê kilku najemników. Niez³e z nich sukinsyny. + + + Œledzê dru¿ynê fanatyków. To znaczy wojowników Monolitu... + + + Polujê na zombi. Za du¿o tych skubañców w okolicy... + + + Dobra. To bêdzie kosztowaæ + + + Wiesz... zmieni³em zdanie. + + + Nie mam tyle. + + + Och, nic takiego. + + + Polujê na mutanty. Ktoœ musi im pokazaæ, gdzie jest ich miejsce. + + + Œcigam miejscowych bandytów. + + + Polujê na najemników. Maj¹ d³ug, który trzeba odebraæ. + + + Œcigam tych popaprañców z Monolitu. + + + Próbujê namierzyæ kilku moich d³u¿ników. + + + Nic w tej chwili nie robiê. + + + Polujê na mutanty. Próbujê oczyœciæ okolicê z tego plugastwa. + + + Jestem na misji. Tropiê dru¿ynê bandytów. + + + Moim celem s¹ najemnicy. Pod¹¿am za œladami ich dru¿yny. + + + Pod¹¿am za dru¿yn¹ Monolitu. + + + Œcigam tych niedorobionych dupków z Wolnoœci... + + + Poszukujê artefaktów. + + + Grzybów nie zbieram... raczej artefakty. + + + Szukam artefaktów. + + + Idê w stronê anomalii zwanej Kot³em, tej niedaleko ma³ego zagajnika. + + + Wyruszam w stronê pó³nocnego jeziora... odpocznê sobie trochê na pó³wyspie. + + + Idê za pó³nocne jezioro - jest tam przyzwoite miejsce na obóz. + + + Idê do lasu za pó³nocnym jeziorem. + + + Idê do ma³ego lasku na zachód od tartaku. + + + Idê w stronê tego wzgórza na zachód od bagna. ¯adne bagienne trucizny mnie tam nie dostan¹. + + + Idê w stronê stacji antenowej. Na zachód od niej znajduje siê ca³kiem przyjemne miejsce. + + + Idê do lasu na zachód od Sosnodêbu... ChodŸ ze mn¹, jeœli chcesz - nie mam nic przeciwko towarzystwu. + + + Do zagajnika pomiêdzy ¯elaznym Lasem i warsztatami. + + + W stronê wielkiego mostu... Podobno na wschód od niego znajduje siê bezpieczne, odosobnione miejsce. + + + Na parking na po³udnie od starej barki. + + + Nic wielkiego, trochê podró¿ujê. Zamierzam rozbiæ obóz na wzgórzu na wschód od Skadowska. + + + Do zagajnika pomiêdzy Izumrudnoje i stacj¹ benzynow¹. + + + Do rozwidlenia niedaleko zak³adu utylizacji odpadów. + + + Do anomalii zwanej Kot³em. + + + Do stra¿nicy. Jest tam kompleks budynków, pewnie go kojarzysz. W jednym z nich s¹ piece - ciekawe, co tam siê kiedyœ dzia³o. + + + Do zagajnika na zachód od spalonego gospodarstwa. + + + Do zagajnika na wschód od anomalii zwanej Kot³em. + + + W stronê wzniesienia zaraz za pó³nocnym jeziorem. + + + Do ma³ego zagajnika na po³udnie od spalonego gospodarstwa. + + + Idê w pewne miejsce na zachód od Skadowska... tam, gdzie wychodzi ruroci¹g. + + + Idê w stronê miejsca, które znajduje siê w pó³ drogi pomiêdzy Skadowskiem i pog³êbiark¹. + + + Do rzeczki niedaleko starej barki. + + + Do kana³u niedaleko anomalii zwanej Szram¹. + + + Do stacji benzynowej. + + + Do jarów Sosnodêbu. + + + Chcê poszukaæ artefaktów w anomalii zwanej Pazurem. + + + Idê w stronê wzgórza na zachód od anomalii zwanej Kot³em. + + + Do anomalii zwanej ¯elaznym Lasem. + + + Idê do anomalii zwanej ¯elaznym Lasem, ¿eby poszukaæ artefaktów. + + + Idê na bagna. Pewnie, ¿e ciê¿ko tam oddychaæ przez ten ca³y gaz, ale artefakty s¹ niez³¹ rekompensat¹. + + + Idê do warsztatów podstacji. Mówi¹, ¿e to dobre miejsce, by siê ukryæ przed emisj¹. Zamierzam je przetestowaæ. + + + Niedaleko st¹d jest tartak. Tam w³aœnie idê. Chcê siê rozejrzeæ i sprawdziæ, czy nie ma tam czegoœ wartoœciowego. + + + Mam ochotê wzi¹æ sobie trochê wolnego w Izumrudnoje. Och, oczywiœcie, ¿e to œwietny oœrodek... dla cia³a i dzików! Cha, cha! Mam jednak nadziejê, ¿e uda mi siê rozbiæ tam obóz. + + + Na most. Wydaje mi siê, ¿e na mapie jest oznaczony jako most Przemienienia Pañskiego. + + + Do pog³êbiarki. Za³o¿ê siê, ¿e ci¹gle mo¿na tam znaleŸæ coœ wartoœciowego. + + + Do starej barki. + + + Chcê siê pokrêciæ po spalonym gospodarstwie, zobaczyæ, czy nie pojawi³y siê tam jakieœ nowe artefakty. + + + Na po³udniowy p³askowy¿. + + + Do rozpadliny przy stacji benzynowej. + + + Idê do stacji antenowej Krug - potrzebujê bezpiecznej kryjówki przed emisjami. Niestety, podobno jest tam mnóstwo potworów. + + + Idê do stacji antenowej Krug - potrzebujê bezpiecznej kryjówki przed emisjami. Niestety, podobno jest tam mnóstwo potworów. + + + Idê poszukaæ artefaktów w okolicach Sosnodêbu. Mam nadziejê, ¿e kundle bêd¹ siê trzymaæ z daleka. + + + Do szamba... no wiesz, do zak³adu utylizacji odpadów. To miejsce równie dobre jak ka¿de inne, aby siê schowaæ przed emisj¹. + + + Idê w stronê przystani na pó³nocnym jeziorze. Jak ju¿ siê tam dostanê, bêdê improwizowaæ. + + + Idê do portu, tam gdzie s¹ dŸwigi. To dobre miejsce na obóz. + + + Planujê poszukaæ artefaktów w anomalii zwanej Kot³em. Mam nadziejê, ¿e mój kombinezon przetrwa te wakacje w gor¹cych Ÿród³ach. + + + Do anomalii zwanej Szram¹. + + + Chcê sprawdziæ odpornoœæ mojego sprzêtu na ogieñ i poszukaæ artefaktów - wszystko to w anomalii zwanej Cyrkiem. + + + Do stra¿nicy. + + + Zamierzam rozbiæ obóz na Szewczence. To dobre schronienie przed emisjami i trudne miejsce do zaatakowania dla mutantów. + + + Zamierzam rozbiæ obóz na Szewczence. To dobre schronienie przed emisjami i trudne miejsce do zaatakowania dla mutantów. + + + Idê do portu, tam gdzie s¹ dŸwigi. To dobre miejsce na obóz. + + + Chcê zostawiæ ³up i wypiæ zimne piwko. Skadowsk to idealne miejsce do tego celu. + + + Idê w stronê posterunku wojskowego obok fabryki Jupiter. + + + Do magazynu kontenerów. + + + Idê w stronê pewnego niepozornego miejsca pomiêdzy magazynem kontenerów i po³udniowym tunelem. + + + Idê na Janów. Wreszcie jest czas na odpoczynek. + + + Do tunelu na pó³noc od Kopaczi. + + + Idê do naprawdê strasznego miejsca - do wioski Kopaczi... lub tego, co z niej zosta³o. Mam dodatkowy zapas amunicji i leków przeciwpromiennych - na pewno bêd¹ mi potrzebne! + + + Do cementowni. To niez³y punkt obserwacyjny, a na dodatek nikt siê tam do ciebie nie podkradnie. + + + Do cementowni. Zamierzam sprawdziæ piwnicê. + + + Do podstacji niedaleko Janowa. + + + Idê do miejsca w pobli¿u po³udniowego tunelu kolejowego. + + + Idê do stawu ch³odz¹cego w pobli¿u fabryki Jupiter. + + + Idê do kompleksu przeciwlotniczego Wo³chow, zapolowaæ na zombi. + + + Do bunkra, no wiesz, tego w kompleksie przeciwlotniczym Wo³chow. + + + Do zagajnika anomalii w pobli¿u kamienio³omu. Mo¿e znajdê tam jakieœ artefakty. + + + Idê do kamienio³omu, tam gdzie znajduj¹ siê baraki robotników. + + + Jest takie miejsce pomiêdzy kamienio³omem i stacj¹ Janów. Mam zamiar siê tam przyczaiæ przez jakiœ czas. + + + Idê do wschodniego tunelu, tego, który biegnie pod fabryk¹ Jupiter. + + + Do anomalii zwanej Bituminem. Sprawdzê odpornoœæ mojego kombinezonu na ogieñ. + + + Idê do anomalii zwanej Mokrad³em, ¿eby poszukaæ artefaktów. Antidotum mam doœæ - bardziej martwiê siê potworami. + + + Do kompleksu wentylacyjnego pomiêdzy fabryk¹ i magazynem kontenerów. Po co? Ech, diabli wiedz¹. + + + Idê do warsztatów fabryki Jupiter. Mo¿e uda mi siê odkryæ, dlaczego to miejsce ma tak¹ paskudn¹ reputacjê. + + + Idê na sam dó³ kamienio³omu. Stalkerzy mówi¹, ¿e znajduj¹ tam sporo artefaktów. + + + Na parking, gdzie stoj¹ te stare pojazdy. Poszukam artefaktów w anomaliach elektrycznych. + + + Jest takie ma³e, przyjemne miejsce pomiêdzy kompleksem przeciwlotniczym Wo³chow i magazynem kontenerów. Tam w³aœnie idê. + + + Do bunkra naukowców. + + + Do ch³odni kominowej na pó³nocny zachód od stacji Janów. + + + W stronê fabryki Jupiter, ale nie zamierzam wchodziæ do œrodka. Pokrêcê siê przy budynkach administracji i zobaczê, co bêdzie mo¿na dalej zrobiæ. + + + Idê do anomalii zwanej Popieliskiem, za Kopaczi. + + + Idê do warsztatów fabryki Jupiter. Mówi¹, ¿e w tych okolicach spad³ œmig³owiec, wiêc myœlê sobie, ¿e mo¿e warto by to sprawdziæ. + + + Idê do tego zniszczonego poci¹gu pomiêdzy kompleksem przeciwlotniczym Wo³chow i parkingiem. + + + Idê do po³udniowego tunelu, ¿eby siê zabezpieczyæ na wypadek emisji. + + + Idê w pewne miejsce pomiêdzy Janowem i Kopaczi. + + + Idê w pewne miejsce niedaleko kana³u, na po³udnie od cementowni. + + + Idê w pewne miejsce niedaleko kana³u, na pó³noc od fabryki Jupiter. + + + Idê sprawdziæ kamienio³om. + + + Idê sprawdziæ kamienio³om. + + + Idê rozejrzeæ siê po okolicy na pó³noc od Janowa. + + + W stronê kompleksu przeciwlotniczego Wo³chow. Jest tam niez³e miejsce na obóz, pomiêdzy kompleksem i wiosk¹ Kopaczi. + + + Och, podró¿ujê tylko... Idê w stronê magazynu kontenerów. + + + Badam okolicê. Teraz zamierzam sprawdziæ, co znajduje siê na po³udnie od posterunku wojskowego. + + + Na l¹dowisko dla helikopterów, to pomiêdzy fabryk¹ i magazynem kontenerów. + + + Idê w to miejsce na po³udnie od stacji Janów, przy torach kolejowych. + + + W pewne miejsce na pó³noc od stacji Janów. + + + Do zagajnika anomalii. + + + W pewne miejsce na po³udnie od kompleksu przeciwlotniczego. + + + Do stawu ch³odz¹cego, zaraz obok anomalii zwanej Betonow¹ Wann¹. + + + Idê rozejrzeæ siê po okolicy wokó³ fabryki. + + + Idê rozejrzeæ siê po okolicy wokó³ fabryki. + + + W stronê placu za pralni¹ samoobs³ugow¹. + + + Do pralni samoobs³ugowej. To najbezpieczniejsze miejsce w okolicy. + + + Do szpitala. Mam nadziejê, ¿e nie wpadnê po drodze na tych szaleñców z Monolitu... + + + Do ksiêgarni... Podobno œwietnie siê sprawdza jako kryjówka przed emisjami. + + + Idê zobaczyæ lokaln¹ atrakcjê - pomnik przyjaŸni narodów. To niedaleko ksiêgarni. + + + Do dawnego sklepu spo¿ywczego. Nie dostaniesz tam teraz œwie¿ego chleba, ale to dobra kryjówka na wypadek emisji. + + + Do sklepu Bieriezka. + + + Do dawnego przedszkola. + + + Na plac przed kinem, w pobli¿u pomnika Prometeusza. + + + Idê w stronê budynku szko³y. Ponoæ roi siê tam od potworów, ale dobrze siê sprawdzi na wypadek emisji. + + + Idê w stronê dawnego centrum us³ugowego. Podobno na parterze znajduje siê anomalia, a mo¿e te¿ jakieœ artefakty. + + + Badam tê czêœæ miasta. Teraz idê w stronê dawnego sklepu spo¿ywczego. + + + Badam tê czêœæ miasta. Teraz idê w stronê dawnego sklepu spo¿ywczego. + + + Badam okolicê. Teraz chcê sprawdziæ ten budynek za osiedlem. + + + Chcê przeszukaæ centrum us³ugowe, nazywa³o siê chyba Jubilejny. + + + Szukam anomalii w okolicy. Podobno na placu na zachód od przedszkola jest anomalia ogniowa. + + + Och, tak tylko zwiedzam miasto. Idê teraz w stronê osiedla. + + + Och, tak tylko zwiedzam miasto. Idê teraz w stronê osiedla. + + + Och, tak tylko zwiedzam miasto. Idê teraz w stronê osiedla. + + + Chodzê sobie tu i tam. Teraz idê w stronê portu rzecznego. Mam nadziejê, ¿e nie wpadnê na jakichœ szaleñców z Monolitu... + + + Szukam w Prypeci miejsca z mnóstwem artefaktów, ale bez potworów i wojowników Monolitu... He, he... A na powa¿nie, zamierzam sprawdziæ pewn¹ anomaliê, o której s³ysza³em, na po³udnie od portu rzecznego. + + + W stronê kina Prometeusz. + + + Na plac przed kinem, w pobli¿u pomnika Prometeusza. + + + Chcê siê przyczaiæ przez jakiœ czas i z³apaæ oddech. Jest do tego idealne miejsce na placu na pó³noc od przedszkola. + + + Na po³udnie od osiedla. + + + Idê w pewne miejsce pomiêdzy przedszkolem i osiedlem. + + + Jest pewne miejsce, zwane Szram¹, gdzie ziemia wygl¹da, jakby ktoœ j¹ przeci¹³ siekier¹. Ludzie znajdowali tam artefakty, ale gdy siê tam wejdzie, zaczynaj¹ siê dziaæ dziwne rzeczy. To coœ tak dzia³a na mózg, ¿e zapominasz, jak siê oddycha, nie mówi¹c ju¿ o tym, ¿eby siê stamt¹d wydostaæ. + + + Wiesz, gdzie jest pog³êbiarka? Zosta³a zniszczona przez anomalie grawitacyjne, ale dla doœwiadczonego stalkera to nic wielkiego. Po prostu rzucaj œrubami, jak zwykle. Pe³no tam te¿ promieniowania, zarówno wewn¹trz, jak i na zewn¹trz - jak przy wielkim kawa³ku wzbogaconego uranu. + + + Jest tu stara podstacja, zwana te¿ ¯elaznym Lasem. Zrozumiesz dlaczego, jak j¹ zobaczysz. Niektórzy twierdz¹, ¿e po emisji znajdowali tam po kilka artefaktów. Nie jest tam a¿ tak niebezpiecznie, g³ównie anomalie elektryczne i trochê promieniowania... Znajdzie siê te¿ kilka poltergeistów, które zasypi¹ ciê wszystkim, czym tylko siê da, je¿eli siê w porê nie schowasz. + + + Pracê? Szczerze mówi¹c, nie wiem. Ale jeœli nadarzy ci siê szansa, ¿eby pomóc Wolnoœci, idŸ do naszego szefa w Janowie. Skieruj siê do po³udniowego skrzyd³a i spotkaj siê z Lokim - to on. Pamiêtaj, jeœli wierzysz w postêp rodzaju ludzkiego, wy¿sz¹ œwiadomoœæ i znaczenie darów Zony, dokonasz s³usznego wyboru. + + + Nie mam pojêcia. Ale jeœli znajdziesz coœ, co mo¿e nam pomóc w walce przeciwko Zonie i przeciwko tym, którzy uwa¿aj¹ j¹ za dar, a nie za przekleñstwo, spotkaj siê z dowódc¹ jednostki ekspedycyjnej Powinnoœci, podpu³kownikiem Szulg¹. On zarz¹dza stacj¹ Janów. Znajdziesz go w pó³nocnym skrzydle. Jedno jest pewne - ka¿dy cywil, który przyczyni siê do zwyciêstwa Powinnoœci, zostanie nale¿ycie nagrodzony. + + + Wszyscy gadaj¹ o jakichœ dziwnych wydarzeniach w dawnej ch³odni kominowej. Jeœli w³¹czysz ogóln¹ czêstotliwoœæ, z³apiesz fragmenty wo³ania o pomoc, które brzmi¹ jakby jakiœ biedak próbowa³ siê wydostaæ z anomalii. Gdy zapytasz o wspó³rzêdne, nikt nie odpowiada. Najdziwniejszy w tym wszystkim jest dŸwiêk. Taki rodzaj zak³óceñ ciê¿ko wyt³umaczyæ... + + + Idê do pewnego miejsca w pó³ drogi miêdzy Skadowskiem i Szewczenk¹. + + + Do fabryki Jupiter. Ale raczej nie bêdê wchodziæ zbyt daleko do œrodka. + + diff --git a/gamedata/configs/text/pol/st_dialogs.xml b/gamedata/configs/text/pol/st_dialogs.xml new file mode 100644 index 0000000..638b5f2 --- /dev/null +++ b/gamedata/configs/text/pol/st_dialogs.xml @@ -0,0 +1,978 @@ + + + + Mam do ciebie pytanie w jednej sprawie… + + + Pytaj œmia³o. + + + Co s¹dzisz o ¯wawym? + + + O ¯wawym? S¹dzê, ¿e pewnego dnia dorwiemy go z towarem w jakimœ ustronnym miejscu i porz¹dnie temu z³amasowi do³o¿ymy! + + + S³ysza³eœ coœ na temat Oazy? + + + S³ysza³em raz przeœmieszn¹ historiê. Krótko mówi¹c, ch³opaki na Wysypisku rozpuœcili plotkê o lokalizacji Oazy - brzmia³a bardzo wiarygodnie. Potem poszli w to miejsce i zaczaili siê. Co tu du¿o mówiæ, tylu frajerów przysz³o podzieliæ siê swoim towarem, ¿e wielu z ch³opaków, którzy rozpuœcili plotkê, nied³ugo póŸniej ca³kiem wynios³o siê z Zony. A czemu by nie? Ustawili siê do koñca ¿ycia. Zosta³ tylko jeden z nich, niejaki Joga... + + + ¯e jeœli tam pójdziesz, znikn¹ wszystkie twoje przypad³oœci... Odpowiada³oby mi coœ takiego - ¿adnego kaca ani hemoroidów do koñca ¿ycia - to by³oby coœ! ZnajdŸ j¹, za³ó¿ tam oœrodek wypoczynkowy i licz zarobion¹ kasê. + + + Czemu mia³bym cokolwiek o niej s³yszeæ? To tylko czcze gadanie dla frajerów... Prawdziwi faceci nie wierz¹ w takie bzdury. Siedzisz sobie w barze z siwuch¹ w d³oni, a nad g³ow¹ krêc¹ ci siê stalkerzy, dyskutuj¹cy nad po³o¿eniem Oazy. A ka¿dy z tych pajaców przysiêga, ¿e wie, gdzie ona jest... Tylko jakoœ tak siê sk³ada, ¿e ka¿dy mówi co innego. + + + Znasz stalkera, którego nazywaj¹ Sroka? + + + Jasne, na pierwszy rzut oka wiedzia³em, ¿e to zupe³ny frajer, do tego us³ysza³em, jak stalkerzy mówi¹, ¿e to te¿ ostatnia kanalia... Ale nie mam pojêcia, gdzie jest... Jeœli go szukasz, musisz sam go znaleŸæ. + + + Ni cholery... Pierwszy raz o nim s³yszê. + + + Wiesz, kto móg³ ukraœæ zawartoœæ osobistej skrytki? + + + Jakiœ szczur. Pogadaj z tymi, co rz¹dz¹ w Janowie, oni s¹ znani z ³owienia szczurów. + + + Kto mo¿e pomóc mi coœ rozszyfrowaæ? + + + S³ysza³em, ¿e Azot w Janowie jest niez³y. Podobno jak jeszcze nie pracowa³ dla Powinnoœci, parê razy hakowa³ stalkerskie PDA dla ch³opaków... Stare, dobre czasy. + + + Ja tam siê nie znam na tych naukowych sprawach. Potrzebny ci do tego haker. Pozna³em jednego w czasie odsiadki, ale innych nie znam. Jak wyszed³em, jemu zosta³a jeszcze pi¹tka... + + + Mam PDA handlarza Powinnoœci. Znasz kogoœ, kto by³by nim zainteresowany? + + + Na Skadowsku jest handlarz Sowa. Ch³opaki od czasu do czasu sprzedaj¹ mu stalkerskie PDA, nieŸle p³aci. Poza tym nie zadaje zbyt wielu pytañ, wiêc nie ma siê o co martwiæ. + + + W³aœciwie ka¿dy. Zastanów siê: kumple z frakcji bêd¹ chcieli go pogrzebaæ ¿ywcem, inne frakcje narobi¹ dymu, ale Sowa na Zatonie mo¿e sprawiæ, ¿e PDA przepadnie jak kamieñ w wodê. Rzecz w tym, ¿e tylko Sowa wie, gdzie póŸniej ten PDA wyp³ynie... To twoja sprawa. + + + Gdzie tu znajdê narzêdzia? + + + Jeœli potrzebujesz narzêdzi chirurgicznych, szukaj w szpitalach i na pogotowiu. Jeœli chodzi o narzêdzia budowlane, zajrzyj do kamienio³omów ko³o Jupitera. A jeœli szukasz narzêdzi œlusarskich, przeszukaj stare warsztaty. + + + Sk¹d mam do cholery wiedzieæ? S³uchaj, ja od stalkerów i bez narzêdzi wyci¹gam forsê... Spokojnie, tylko ¿artujê. + + + Kto mo¿e odblokowaæ modu³ pamiêci? + + + Dobre pytanie! Przecie¿ siê w tym specjalizujê, nie? Ha, ha! Z byka spad³eœ, kolego? Pewnie jakiœ technik albo naukowiec... Chyba ci siê naprawdê nie wydaje, ¿e ja d³ubiê w takich rzeczach? + + + Bêdê z tob¹ szczery: ostatni raz odblokowa³em modu³ pamiêci, jak by³em w szkole, a tym modu³em pamiêci by³a dyskietka. IdŸ do speców i im zawracaj g³owê. + + + Kto móg³by siê w³amaæ do stalowego kontenera? + + + Znasz Kardana ze Skadowska? Któregoœ dnia siê nar¹ba³ i zacz¹³ ganiaæ z ³omem jakiegoœ pacana. Myœlê, ¿e Kardan móg³by u¿yæ tego ³omu do czegoœ po¿yteczniejszego i wywa¿yæ dla ciebie to i owo. + + + Maj¹c odpowiednie narzêdzia, nawet ja bym móg³, ale kto zabiera ze sob¹ sprzêt do Zony? OdwiedŸ techników, oni s¹ dobrzy w te klocki. + + + Szukam stalkera Sêka. Wiesz, gdzie go znaleŸæ? + + + A kto to wie? Zapytaj Su³tana na Skadowsku. Szef zwykle wie, gdzie siê szwendaj¹ wszyscy frajerzy. + + + Tak, s³ysza³em o tym palancie. Zwykle krêci siê po Zatonie, wiêc tutaj go nie znajdziesz. + + + Wiesz coœ na temat rozbitych œmig³owców? + + + Kto mo¿e byæ zainteresowany informacjami na temat za³o¿yciela Powinnoœci? + + + Nie wiem, kto nie by³by zainteresowany! Takie informacje to dynamit, kolego, wiêc najlepiej pogadaj z Sow¹ na Skadowsku - coœ ci jeszcze za to wpadnie, a nie narobisz sobie wrogów. + + + Nie. Zastanów siê, mam Powinnoœæ na lewo, Wolnoœæ na prawo i stalkerów na ty³ku - mam siê jeszcze rozgl¹daæ po niebie? + + + Ch³opcy mówili, ¿e widzieli, jak jeden z nich wisi na kablach w ¯elaznym Lesie, ale tam zobaczysz o wiele wiêcej... Na sto procent wpadniesz w jak¹œ anomaliê albo poltergeist rozbije ci czaszkê. + + + Tak, paru ch³opaków widzia³o, jak jeden z nich rozbi³ siê na p³askowy¿u, ale problem w tym, ¿e nie ma tam jak wejœæ... Podobno lata³ tak dziwnie, jakby pilot by³ na prochach czy coœ. + + + Podobno jakiœ œmig³owiec chcia³ udawaæ okrêt podwodny i wlecia³ prosto w bagna. Jak mo¿na sobie wyobraziæ, zaraz zaliczy³ glebê. Zreszt¹ woda te¿ nie jest tam zbyt zdrowa - trucizny, chemikalia i tak dalej. + + + Widzia³eœ tu jakieœ wojsko? + + + Kto mo¿e byæ zainteresowany mapami obszaru pomiêdzy Zatonem i Jupiterem? + + + Podejrzewam, ¿e Pilot - jest g³ównym przewodnikiem w tej okolicy. Przyda³yby mu siê jakieœ mapy zamiast patrzenia na gwiazdy... + + + S³ysza³em od ch³opaków, ¿e oddzia³ wojska zszed³ z po³udniowego p³askowy¿u do obozu najemników. Ch³opaki wyczuli, ¿e bêdzie zadyma, i wziêli nogi za pas. + + + S³ysza³em, ¿e armijne mendy próbowa³y coœ wydostaæ ze swojego rozbitego œmig³owca na bagnach. WyobraŸ sobie piêciu ¿o³nierzyków skacz¹cych po bagnie, ¿eby sobie mundurków nie zamoczyæ... Na pewno puszczali takie wi¹chy, ¿e zawstydziliby niejednego bandytê. + + + Jeden goœæ opowiada³ mi, jak szed³ za stalkerem, ¿eby go obrobiæ z ³upu, a¿ tu nagle us³ysza³ strza³y. Okaza³o siê, ¿e armia walczy z najemnikami. Schowa³ siê i przeczeka³ strzelaninê, ale stalker by³ ju¿ wtedy daleko. Pecha mia³ ch³opina, co? + + + Kumpel opowiada³ mi, ¿e widzia³ zabawn¹ scenê. Jest ta barka z wiatrakiem na dachu, obok niej Noe lata jak nakrêcony machaj¹c ³apami, a dziesiêciu wojaków spieprza przed psem Noego. Mój kumpel zdrowo siê uœmia³ i poszed³ sobie od tej szopki. + + + Nie, to niespokojne miejsce, pe³no tu nerwusów z na³adowanymi strzelbami... Nie pali mi siê do sprawdzania, którzy s¹ z wojska, a którzy wykonuj¹ misjê dla Powinnoœci. + + + Wiesz, jak siê dostaæ do Prypeci? + + + Kogo mo¿na wynaj¹æ do ochrony naukowców? + + + Ha, zrobiê to ja z ch³opakami! Damy im ochronê, jakiej w ¿yciu nie widzieli! Stalkerzy i mutanty bêd¹ zwiewaæ przed nami, gdzie pieprz roœnie! Co tydzieñ odpalasz kasê i jesteœmy do twojej dyspozycji. Nie zapomnij te¿ o premii na œwiêta! + + + Na piechotê, kolego. IdŸ w stronê Jupitera i tam zadawaj swoje pytania, bo nie ma bezpoœredniej drogi z Zatonu do Prypeci i taka jest prawda. + + + S³uchaj no, czy ja ci wygl¹dam na jakiegoœ przewodnika czy co? Mam na czole wytatuowane s³owa „Tutaj zadawaæ g³upie pytania”? Pogadaj z Pilotem, jemu p³ac¹ za odpowiadanie na takie pytania. + + + Nie... Czego w ogóle mia³bym tam szukaæ? Nie ma tam stalkerów do obrobienia! + + + Mo¿esz zaproponowaæ kogoœ, kto nie jest zbyt zajêty i chcia³by ruszyæ do Prypeci? + + + Prypeæ to nie miejsce dla prawdziwych mê¿czyzn jak my. Pomyœl tylko, pe³no tam mutantów i anomalii... jak w ca³ej Zonie... ale nie ma stalkerów z ich dobytkiem. Jak stalkerzy poka¿¹ siê w Prypeci, daj znaæ, a ruszymy tam zachowaæ naturalny ³ad rzeczy. + + + Przykro mi, nie mam pojêcia. + + + Znalaz³em dziwn¹ broñ. Znasz kogoœ, kto mo¿e coœ o niej wiedzieæ? + + + Zapytaj techników. W koñcu od tego s¹, ¿eby siê na tym znaæ. + + + Nie mam pojêcia, ale stalkerzy ze Skadowska uwa¿aj¹ Kardana za jakiegoœ technicznego geniusza. Pogadaj z nim, jeœli chcesz... Moim zdaniem to tylko stary pijaczyna... + + + Kto mo¿e wykonaæ pomiary dla naukowców? + + + Prosta sprawa - nasi ch³opcy to zrobi¹. Oni szkó³ nie koñczyli ani nic, ale mog¹ pacjenta obmierzyæ z góry na dó³ i w poprzek przez plecy, a wtedy tylko zbiæ parê desek, do ziemi i gotowe! + + + Znalaz³em bardzo dziwny artefakt. Komu mogê go sprzedaæ? + + + Dziwny artefakt, powiadasz? Poka¿ no... Daj mi go, ¿ebym móg³ siê lepiej przyjrzeæ... Spokojnie, kolego - ¿artujê tylko, ale na twoim miejscu nie trzyma³bym go na widoku. Inni mog¹ mieæ gorsze poczucie humoru. + + + Odwa¿nyœ, ¿e tak tu œwiecisz po oczach tym artefaktem. Twardziel z ciebie. Dobra, s³uchaj: powinieneœ z tym iœæ do Brodacza w Skadowsku. Nie dowiedzieliœmy siê jeszcze, jak przemyca artefakty poza Zonê, wiêc masz szansê sprzedaæ mu swój. + + + Znalaz³em niedaleko legowisko pijawek. Co robiæ? + + + A niby co? Bierz nogi za pas! + + + Dobra, niewa¿ne. + + + S³uchaj, mam tak¹ sprawê… + + + Wal œmia³o. + + + Co s¹dzisz o ¯wawym? + + + O ¯wawym? Nigdy o nim nie s³ysza³em. Mo¿e jest w innym oddziale? + + + S³ysza³eœ coœ na temat Oazy? + + + To bajeczka dla stalkerów. Tacy oni w³aœnie s¹: wymyœlaj¹ niestworzon¹ bzdurê, potem siê zbieraj¹ i id¹ jej szukaæ! Na twoim miejscu da³bym sobie z tym spokój, bo jak uwierzysz w to, to nied³ugo zaczniesz wierzyæ w istnienie Spe³niacza ¯yczeñ. + + + Chodzi o to miejsce, gdzie rany same siê lecz¹ i magicznie odzyskujesz si³y? Mam dla ciebie nowinê, kole¿ko: Oaza nie istnieje. Stalkerzy wymyœlaj¹ takie brednie, ¿eby oswoiæ siê z Zon¹, ale gorzka prawda jest taka, ¿e w Zonie nie ma bezpiecznych miejsc. Tutaj trzeba mocno staæ nogami na ziemi - marzyciele nie wytrzymuj¹ w Zonie zbyt d³ugo. + + + Aha, wszystkie artefakty stamt¹d s¹ warte tyle co z³oto i przynosz¹ ci je na srebrnym pó³misku, a piêkne panie w tym czasie robi¹ ci masa¿ stóp... Jaja sobie robiê. W¹tpiê, by istnia³a, chocia¿ by³oby mi³o. Moglibyœmy nawet za³o¿yæ tam szpital bez lekarzy - ludzie by przychodzili i sami zdrowieli... Ale to tylko bajeczka. + + + Znasz stalkera, którego nazywaj¹ Sroka? + + + Ciê¿ko mi zapamiêtaæ wszystkich ludzi z Powinnoœci, a ty mnie pytasz o stalkerów? Maj¹ swoj¹ bazê na Skadowsku - tam pytaj. + + + Nie znam takiego. + + + Wiesz, kto móg³ ukraœæ zawartoœæ osobistej skrytki? + + + No ³adnie! Coœ takiego nie zdarzy³oby siê w bazie Powinnoœci, ale tutaj pe³no jest tych mêtów z Wolnoœci - wœród nich bym szuka³. + + + Kto mo¿e pomóc mi coœ rozszyfrowaæ? + + + Na stacji Janów jest pewien technik, Azot. Ma smyka³kê do elektroniki. Jak raz zapomnia³em has³o do PDA, to z³ama³ go w piêæ sekund! + + + Musisz iœæ do Janowa. Szukaj tam Azota, jest dobry w te klocki. + + + Mam PDA handlarza Powinnoœci. Znasz kogoœ, kto by³by nim zainteresowany? + + + Handlarz w Powinnoœci? Nie mo¿e byæ! Ale jeœli masz jakieœ informacje, przeka¿ je podpu³kownikowi Szuldze i niech on siê tym martwi. + + + Gdzie tu znajdê narzêdzia? + + + Niedaleko jest ca³a fabryka. Oczywiœcie, pewnie ju¿ j¹ ca³kiem rozszabrowali, ale na twoim miejscu sprawdzi³bym w tamtejszych magazynach. + + + Na twoim miejscu poszuka³bym w starych warsztatach. Mo¿e te¿ znajdziesz coœ w sklepach. + + + Tutaj znajdziesz tylko mutantów i anomalie. Ha! W anomaliach lepiej nie szukaæ, a burery i kontrolerzy te¿ nie pomog¹ ci w szukaniu. + + + Gdzieœ tu pod mostem stoi sk³ad. Widzia³em ju¿ takie - czêsto wo¿¹ nimi personel techniczny. A gdzie technicy, tam i narzêdzia. + + + Kto mo¿e odblokowaæ modu³ pamiêci? + + + Azot - to jedyna osoba na stacji Janów, która siê na tym zna. + + + IdŸ z tym do technika. Jedynym przyzwoitym technikiem w okolicy jest Azot w Janowie. + + + Kto móg³by siê w³amaæ do stalowego kontenera? + + + Podobno wœród stalkerów jest jakiœ technik. To moczymorda, ale zna siê na robocie. Pogadaj z nim. + + + Ha, jeszcze sejf chcesz na plecach nosiæ. Gdyby mia³ elektroniczny zamek, Azot móg³by ci z nim pomóc. + + + Szukam stalkera Sêka. Wiesz, gdzie go znaleŸæ? + + + Popytaj stalkerów - znaj¹ siê miêdzy sob¹. Nigdy nie s³ysza³em o ¿adnym Sêku czy jak mu tam. + + + Wiesz coœ na temat rozbitych œmig³owców? + + + Kto mo¿e byæ zainteresowany informacjami na temat za³o¿yciela Powinnoœci? + + + Nasz dowódca, naturalnie. Przeka¿ Szuldze wszystko, co wiesz, a Powinnoœæ na pewno bêdzie ci wdziêczna. + + + Tak, nasi zwiadowcy widzieli, jak wojskowy œmig³owiec schodzi³ do l¹dowania na rezerwowych l¹dowiskach przy Jupiterze. Dawali mu znaki, ¿eby zmieni³ kurs, ale piloci mieli chyba inne zmartwienia. Ciekawe, czy wojakom uda³o siê wydostaæ w jednym kawa³ku z pola minowego. + + + W tej okolicy - nie. Nasza obecnoœæ jest tu ograniczona... Popytaj naszych ch³opaków ko³o Janowa. + + + Nasz patrol zg³osi³, ¿e wojskowy œmig³owiec próbowa³ l¹dowaæ awaryjnie ko³o fabryki Jupiter. Niestety, œmig³owiec rozbi³ siê na dachu hal fabrycznych. Raczej nikt nie prze¿y³ - patrol nie odebra³ po wypadku ¿adnych sygna³ów alarmowych. + + + Widzia³eœ tu jakieœ wojsko? + + + Kto mo¿e byæ zainteresowany mapami obszaru pomiêdzy Zatonem i Jupiterem? + + + Ktoœ, kto mia³by z nich jakiœ u¿ytek. Mam na myœli Pilota - jest przewodnikiem na trasie pomiêdzy Janowem i Skadowskiem, wiêc te mapy na pewno by mu siê przyda³y. + + + Wojsko? Nie widzia³em tu ¿adnego, ale my tu rzadko bywamy. + + + Niedawno ktoœ widzia³ zw³oki ¿o³nierza na polu minowym. To pewnie jeden z tych, którzy lecieli tym œmig³owcem. Oprócz za³ogi w œmig³owcu mieœci siê osiem osób, wiêc musieli siê jakoœ wydostaæ, ale nikt nie wie, gdzie siê podziali. + + + W bunkrze uczonych pojawi³ siê niedawno jakiœ ¿o³nierz. Ale nic wiêcej nie wiem. + + + Niedawno widziano, jak cz³owiek w wojskowym mundurze wchodzi do budynku przy kompleksie obrony przeciwlotniczej Wo³chow. Mo¿liwe te¿, ¿e ktoœ wzi¹³ zombi za ¿o³nierza. + + + Stalkerzy widzieli oddzia³ wojska ko³o fabryki Jupiter. S¹dz¹c z opisu, by³y to si³y specjalne. Towarzyszy³ im niezidentyfikowany stalker. Kierowali siê w stronê Prypeci. Opis brzmia³ wiarygodnie, ale z doœwiadczenia wiem, ¿e takim informacjom zwykle nie mo¿na ufaæ. + + + Wiesz, jak siê dostaæ do Prypeci? + + + Kogo mo¿na wynaj¹æ do ochrony naukowców? + + + Nikt im nie da lepszej ochrony ni¿ Powinnoœæ. Porozmawiaj z podpu³kownikiem Szulg¹ w Janowie - na pewno siê dogadacie. + + + Dopóki pracuj¹ dla nich ludzie Wolnoœci, trzymamy siê stamt¹d z dala. S³uchanie ca³y dzieñ przyg³upich dowcipów tej bandy debili jest gorsze ni¿ œmieræ. + + + Powinnoœæ nie ma w tej chwili powodu, ¿eby szukaæ drogi do Prypeci, ale na wszelki wypadek zbieramy informacje. Dotar³y do nas niepotwierdzone raporty, ¿e tunele pod fabryk¹ Jupiter prowadz¹ do Prypeci. ¯eby to sprawdziæ, trzeba by dok³adnie przeszukaæ ca³y obszar fabryki. + + + Nie. Takie informacje mo¿esz uzyskaæ od cywilnych przewodników - nasi zwiadowcy i tak maj¹ co robiæ. + + + Nasi zwiadowcy regularnie poszukuj¹ bezpiecznych œcie¿ek do Prypeci, ale na razie bez rezultatu. + + + Mo¿esz zaproponowaæ kogoœ, kto nie jest zbyt zajêty i chcia³by ruszyæ do Prypeci? + + + Obecnoœæ Powinnoœci na tym terenie jest ograniczona. Porozmawiaj z naszymi ludŸmi w Janowie. + + + Podobno jakiœ ¿o³nierz siedzi u naukowców w bunkrze. Nie ma za bardzo innego wyjœcia. Naukowcy maj¹ program badawczy na rok-pó³tora, a on sam nie dotrze na piechotê do obrze¿y Zony. Dlatego myœlê, ¿e móg³by byæ zainteresowany. + + + Spróbuj znaleŸæ jakiegoœ poszukiwacza przygód. Na przyk³ad na stacji Janów jest stalker Wano. Jemu wszystko jedno, w jaki bajzel wdepnie, a mo¿e siê do czegoœ przydaæ. Potrafi omijaæ anomalie nawet z zamkniêtymi oczami. + + + Mo¿esz zacz¹æ kampaniê werbunkow¹ w psychuszce... Ale jest te¿ inny dobry sposób - ¿o³nierze Monolitu. A w³aœnie, ich oddzia³ widziano niedaleko stanowiska przeciwlotniczego. Drogê do Prypeci te¿ pewnie znaj¹... S³uchaj, mam nadziejê, ¿e nie bierzesz tego na powa¿nie... + + + Szukaj ochotników w Powinnoœci. Na przyk³ad taki W³óczêga. Nie dosta³ jeszcze przydzia³u, wiêc podpu³kownik mo¿e puœciæ go z tob¹. + + + Wszyscy wiedz¹, ¿e najlepsi bojownicy s¹ w Powinnoœci... Ale w tej chwili mamy inne zadania. + + + Znalaz³em dziwn¹ broñ. Znasz kogoœ, kto mo¿e coœ o niej wiedzieæ? + + + A niech mnie! Co za rusznica! Sam j¹ zrobi³eœ czy naprawdê j¹ znalaz³eœ? Nigdy czegoœ takiego nie widzia³em... Zapytaj techników. + + + Kto mo¿e wykonaæ pomiary dla naukowców? + + + G³upie pytanie - oczywiœcie, ¿e Powinnoœæ. Mamy wielu doœwiadczonych ludzi i pracowaliœmy ju¿ z naukowcami. Porozmawiaj z podpu³kownikiem Szulg¹. Na pewno wybierze oddzia³ do tego zadania. + + + Kto by chcia³ tam pracowaæ, skoro bunkier jest ochraniany przez Wolnoœæ? Ci chromoleni pacyfiœci przez wiêkszoœæ czasu s¹ tak naæpani, ¿e mog¹ zacz¹æ strzelaæ do siebie zamiast do przeciwnika. + + + Znalaz³em bardzo dziwny artefakt. Komu mogê go sprzedaæ? + + + Wszystkie artefakty s¹ dziwne, a w ogóle nie radzê ci nosiæ go przy sobie. Przeka¿ go ekspertom i miej to z g³owy. + + + Powinieneœ pokazaæ go stalkerom - oni s¹ ekspertami od takich rzeczy. A jeszcze lepiej bêdzie, jak poka¿esz go osobie, której oni sprzedaj¹ artefakty. + + + Znalaz³em niedaleko legowisko pijawek. Co robiæ? + + + Oddzia³y Powinnoœci nie prowadz¹ teraz operacji oczyszczania na tym obszarze, wiêc legowisko musi poczekaæ. + + + Dobra, niewa¿ne. + + + Mam do ciebie pytanie w jednej sprawie… + + + Strzelaj. + + + Co s¹dzisz o ¯wawym? + + + Nie s³ysza³em o nim zbyt wiele... Najlepiej popytaj wœród stalkerów, to chyba jeden z nich? + + + S³ysza³eœ coœ na temat Oazy? + + + Od cholery... Muszê przyznaæ, to ³adna historyjka. Pa³ac wœród piasku, wyspa we mgle, zamek siêgaj¹cy nieba... Szambala, Eden... Oaza. Wszyscy wolni ludzie o czymœ marz¹ i czy mo¿na ich za to winiæ? + + + S³ysza³em interesuj¹c¹ historiê od jednego stalkera. On chyba jako pierwszy wspomnia³ o Oazie. Powiedzia³, ¿e wed³ug legendy wszystkie lecz¹ siê tam wszystkie rany i stajesz siê spokojny i wyluzowany, jakbyœ wcale nie by³ w Zonie. Od tego czasu go nie widzia³em... Dopiero jak znikn¹³, przypomnia³em sobie, ¿e wczeœniej kula³, a kiedy odszed³, chodzi³ prosto i wygl¹da³ o wiele m³odziej. + + + Tak, wolni stalkerzy podali mi wspó³rzêdne... Dziesiêæ razy, a za ka¿dym razem inne. Jak siê je z³o¿y do kupy, powstaje obszar od Zwêglacza do CEJ, a bar w Janowie jest gdzieœ poœrodku. Ca³kiem mo¿liwe, ¿e w tej chwili jesteœmy w Oazie, wiêc korzystaj z tego! + + + Znasz stalkera, którego nazywaj¹ Sroka? + + + Nie. Nie znam tu zbyt wielu wolnych stalkerów. + + + Sroka? Nie, ale fajnie siê nazywa. + + + Wiesz, kto móg³ ukraœæ zawartoœæ osobistej skrytki? + + + Nie... Tutaj takich nie ma. Zdarzaj¹ siê tacy, co podgryz¹ ci chleb albo poci¹gn¹ z twojej manierki, jak nie patrzysz, ale nie z³odzieje. + + + Kto mo¿e pomóc mi coœ odszyfrowaæ? + + + S³ysza³em, ¿e Azot w Janowie lubi szyfry i algorytmy. Ale nie jestem pewny, nigdy z nim nie rozmawia³em - pracuje dla Powinnoœci, wiêc dla nas, wolnych ludzi, nie ma czasu. + + + Nie jestem specem od miejscowych speców... Popytaj ch³opaków w Janowie, jak tam bêdziesz - oni na pewno bêd¹ wiedzieæ. + + + Mam PDA handlarza Powinnoœci. Znasz kogoœ, kto by³by nim zainteresowany? + + + Brzmi ciekawie! Da³bym go Lokiemu, naszemu przywódcy w Janowie. On ju¿ siê postara, ¿eby wolni stalkerzy siê dowiedzieli, jakich ludzi rekrutuje Powinnoœæ. + + + Gdzie tu znajdê narzêdzia? + + + W fabryce, gdzie¿by indziej? To niebezpieczne miejsce, ale w magazynach znajdziesz pocieszenie. W nich jest trochê spokojniej i na pewno znajdziesz tam jakieœ przyzwoite narzêdzia. + + + Dobre pytanie. Zastanówmy siê. Gdzie mo¿na znaleŸæ narzêdzia poza Zon¹? Jeœli nie masz dwóch lewych r¹k, kupisz je w sklepie... W innym przypadku idziesz szukaæ narzêdzi i naprostowaæ rêce w jakimœ warsztacie. Zgadza siê? W Zonie jest tak samo - musisz szukaæ w tych samych miejscach. To takie proste, stalkerze! + + + Narzêdzia? S³uchaj no, czy to jakiœ szyfr? Nie ma tu glin ani niczego takiego, mo¿esz mówiæ otwarcie... A, ty tak powa¿nie? W takim razie naprawdê nie wiem. + + + S³ysza³em, ¿e jeden z naszych szuka³ narzêdzi i trafi³ do poci¹gu stoj¹cego pod mostem. NajwyraŸniej jest tam Tesla... W ka¿dym razie nie jest zbyt mi³o. Czemu ci to mówiê? Powiedzia³, ¿e widzia³ tam narzêdzia, ale nie bra³ ich, bo nie by³o bezpiecznie. + + + Kto mo¿e odblokowaæ modu³ pamiêci? + + + Nowikow w bunkrze naukowców siê to tego nadaje. Jest szybki, doby i uprzejmy. Jest te¿ Azot w Janowie, on wspó³pracuje z Powinnoœci¹. Jest tani i do dupy, ale powinien daæ sobie radê. + + + Pewnie jakiœ zdolny technik. Tutejszy zna siê lepiej na mechanice, wiêc o ile nie chcesz przegwintowaæ lufy swojego modu³u pamiêci, popytaj w okolicach Jupitera. + + + Kto móg³by siê w³amaæ do stalowego kontenera? + + + Niedawno ktoœ mi poleca³ Kardana ze Skadowska. Podobno zna siê na robocie, chocia¿ prawie ci¹gle jest pijany. Mo¿e on ci pomo¿e w otwarciu tego pojemnika. + + + Ka¿dy kto zarabia na ¿ycie otwieraniem stalowych kontenerów? Ale Azot, miejscowy technik, siê nie nada. Podobno bardziej interesuje go w³amywanie siê do elektroniki. + + + Szukam stalkera Sêka. Wiesz, gdzie go znaleŸæ? + + + Nigdy o nim nie s³ysza³em... Popytaj innych wolnych stalkerów. + + + Wiesz coœ na temat rozbitych œmig³owców? + + + Kto mo¿e byæ zainteresowany informacjami na temat za³o¿yciela Powinnoœci? + + + Na pewno Loki. To nasz przywódca w Janowie. Nawet jeœli nie bêdzie wiedzia³, co zrobiæ z tymi informacjami - najwa¿niejsze, ¿eby Powinnoœæ nie po³o¿y³a na nich ³ap. Wyobra¿asz sobie, ile powstanie z tego bzdurnej propagandy? A¿ mnie g³owa boli na myœl o tym. + + + Tak, s³ysza³eœ historiê o œmig³owcu na polu minowym? Krótko mówi¹c, wojacy rozbili siê na rezerwowym l¹dowisku, które inni wojacy zaminowali szeœæ lat temu. Niektórzy mówi¹, ¿e wyl¹dowali tam z g³upoty, ale moim zdaniem jest w tym coœ wiêcej. Popatrz: nikt siê tam nie zapuœci, wiêc jak ¿o³nierze skoñcz¹ swoj¹ misjê, mog¹ wróciæ do œmig³owca, trochê go po³ataæ i fru do domu. Strasznie mnie ciekawi, co to za misja... + + + Nie jestem st¹d, wiêc gówno wiem. Wpadnij do naszych w Janowie - powiedz¹ ci wszystko, co chcesz wiedzieæ, a nawet wszystko, czego nie chcesz. + + + Tak, ch³opaki widzieli ostatnio œmig³owiec lataj¹cy jak szalony. Wyl¹dowa³ te¿ nie najlepiej - na jednym z dachów Jupitera. Mówili, ¿e waln¹³ w dach i spad³ do œrodka budynku, ci¹gn¹c za sob¹ kupê ró¿nego œmiecia. + + + Widzia³eœ tu jakieœ wojsko? + + + Kto mo¿e byæ zainteresowany mapami obszaru pomiêdzy Zatonem i Jupiterem? + + + Na pewno Pilot. On tu jest g³ównym przewodnikiem wolnych stalkerów - jeœli chcesz rozmawiaæ o mapach, idŸ do niego. + + + Spokojnie, kolego. Nie ma tu glin, wojska ani ¿adnej stra¿y obywatelskiej. A my jesteœmy pokojowo nastawieni - bez powodu nie bêdziemy do ciebie strzelaæ. + + + Nie, ale paru ch³opaków mówi³o mi, ¿e widzieli, jak oddzia³ armii przedziera siê przez pole minowe przy l¹dowiskach œmig³owców. Ch³opaki zastanawiali siê, czy im nie pomóc, ale im przesz³o. Z wojakami nigdy nie wiadomo, czy coœ im nie odwali i nie strzel¹ ci w plecy. + + + Sam nie widzia³em, ale podobno jakiœ wojak siedzi w bunkrze naukowców. Oziorski, ten biolog, mówi³, ¿e ch³opak by³ w tym œmig³owcu, który rozbi³ siê w fabryce... Kr¹¿y dowcip, ¿e jajog³owi przygarnêli zwierz¹tko z armii. + + + Osobiœcie nie, ale s³ysza³em co nieco od wolnych stalkerów. Podobno widziano wojaka przy kompleksie przeciwlotniczym Wo³chow. Pewnie to jakiœ duch albo przebudzony zombi... Jak s¹dzisz? + + + Nie. By³ taki jeden, co mówi³, ¿e widzia³, jak siedmiu ¿o³nierzy sz³o za wolnym stalkerem w kierunku Prypeci. Trawy od dawna u nas nie ma, wiêc musia³o mu siê pomieszaæ w g³owie i tyle. + + + Wiesz, jak siê dostaæ do Prypeci? + + + Kogo mo¿na wynaj¹æ do ochrony naukowców? + + + Wolnoœæ, czyli nas. Ca³y czas wspó³pracujemy z naukowcami, wiêc danie im ochrony to dla nas pestka. Pogadaj z naszym szefem Lokim w Janowie - na pewno siê zgodzi. + + + W³aœciwie nie wiem, bo s³ysza³em, ¿e jajog³owi wynajêli oddzia³ Powinnoœci... Z chêci¹ ochranialibyœmy naukowców, ale trudno by wytrzymaæ patrzenie ca³y dzieñ na kamienne twarze ludzi z Powinnoœci. + + + Podobno mo¿na siê tam dostaæ z Jupitera... To znaczy, z fabryki, nie z planety... Ha, ha! Niez³y ¿art, co? + + + Wiesz, nie mam pojêcia. Nie mam czasu siê tam wybraæ... Spróbuj zapytaæ Pilota w obozie. To wolny stalker i zna teren jak nikt inny. + + + Brachu, gdybym wiedzia³, dawno bym siê tam wybra³. Dobrze by³oby oderwaæ siê od Powinnoœci, wojaków i ca³ej tej walki... + + + Mo¿esz zaproponowaæ kogoœ, kto nie jest zbyt zajêty i chcia³by ruszyæ do Prypeci? + + + Przykro mi, nie znam nikogo na Zatonie... Dam ci radê, popytaj naszych ch³opaków w Janowie. + + + Kojarzysz bunkier naukowców? Maj¹ tam kiepsk¹ sytuacjê. Najpierw Garri, wolny stalker, postanowi³ ruszyæ do Prypeci, a teraz ichni ¿o³nierz wpad³ na ten sam pomys³. Garri to zatwardzia³y samotnik, ale ten wojak bêdzie dla ciebie w sam raz. + + + Wano w Janowie siê do tego nada. Przyzwoity z niego goœæ i gdyby chcia³, w ka¿dej chwili móg³by wst¹piæ do Wolnoœci. Ale chyba nie podoba mu siê nasza walka z Powinnoœci¹... ani w ogóle ¿adna walka. Taki ma punkt widzenia i my to szanujemy! + + + Jasne. Jeden z naszych natkn¹³ siê przy wyschniêtym jeziorze na oddzia³, który bêdzie ci idealnie pasowa³. Na pewno znaj¹ Prypeæ jak w³asn¹ d³oñ i dla nikogo nie pracuj¹. Musz¹ byæ te¿ odwa¿ni, bo to bojownicy Monolitu! + + + Owszem. W³óczêgê, przywódcê naszych nowych rekrutów... W naszych szeregach niezbyt mu dobrze. Jego ludzie siê dostosowali, ale on nie jest tu zbyt szczêœliwy... Porozmawiaj z nim - nie lubiê, kiedy dobry cz³owiek robi coœ wbrew swemu sercu... + + + Nie, nie mam pojêcia. + + + Znalaz³em dziwn¹ broñ. Znasz kogoœ, kto mo¿e coœ o niej wiedzieæ? + + + Nie by³o przy niej instrukcji? No to nie mam pojêcia. + + + Kto mo¿e wykonaæ pomiary dla naukowców? + + + Nasi ch³opcy nadaliby siê do tego. W Wolnoœci nie brakuje bystrych g³ów, a jak czegoœ nie bêdziemy wiedzieæ, zapytamy w bunkrze. Bardzo chcielibyœmy przys³u¿yæ siê nauce! Porozmawiaj z Lokim w Janowie - na pewno to potwierdzi. + + + Z chêci¹ byœmy to zrobili z ch³opakami, ale bunkra naukowców pilnuje ostatnio Powinnoœæ. Wpadanie do naukowców z wizyt¹ i tak jest ju¿ problemem, a siedzenie tam ca³ymi dniami na pewno nie odbi³oby siê dobrze na naszym zdrowiu. + + + Znalaz³em bardzo dziwny artefakt. Komu mogê go sprzedaæ? + + + Musisz znaleŸæ kolekcjonera. W Janowie takiego nie ma, bo nawet niektórzy stalkerzy boj¹ siê tu przychodziæ. Najlepiej zapytaj na Zatonie, tam jest trochê spokojniej. + + + Znasz Brodacza, barmana w obozie wolnych stalkerów? Skupuje artefakty, a p³aci te¿ nie najgorzej. Jak by nie patrzeæ, mi³y goœæ. Szkoda, ¿e nie pracuje dla nas. + + + Znalaz³em niedaleko legowisko pijawek. Co robiæ? + + + Musisz ostrzec wolnych stalkerów - przecie¿ maj¹ tu niedaleko swój g³ówny obóz. Fauna Zony jest na pewno wa¿na, ale bardziej przejmujê siê tutaj ludŸmi. + + + Dobra, niewa¿ne. + + + S³uchaj, mam tak¹ sprawê… + + + Pytaj œmia³o. + + + Co s¹dzisz o ¯wawym? + + + Nie mia³em przyjemnoœci... Popytaj sta³ych bywalców na Skadowsku. + + + S³ysza³eœ coœ na temat Oazy? + + + Czego ja nie s³ysza³em na temat Oazy! To legenda, mit... Ka¿dy stalker spodziewa siê po niej czegoœ innego i ka¿dy co do jednego twierdzi, ¿e zna jej dok³adne po³o¿enie. Szkoda tylko, ¿e wszystkie te miejsca maj¹ jedn¹ cechê wspóln¹ - cholernie ciê¿ko do nich dotrzeæ. + + + Podobno natychmiast lecz¹ siê tam rany i w oczach odzyskujesz si³y... Mówi¹, ¿e w Oazie ¿adna choroba nie ma szans, nawet choroba popromienna! Jedno tylko wiem na pewno - wiem, gdzie siê znajduje... Chcesz wiedzieæ? Jest w samym œrodku Zony! Ale zachowajmy to miêdzy nami, ani s³ówka nikomu! + + + Podobno jeœli napotkasz tam mutanta, w ogóle siê tob¹ nie zainteresuje. Mówi¹ te¿, ¿e jest tam artefakt nazywany Sercem Oazy... Nikt nie wie, jakie ma dzia³anie, ale jedno jest pewne - nie nale¿y go dotykaæ. Nie ma w Zonie miejsca dla tego, kto go zabierze... Pytasz, gdzie ta Oaza? Wszyscy wiedz¹, ¿e w Prypeci pod diabelskim m³ynem! Gdzie niby mia³aby byæ? + + + Znasz stalkera, którego nazywaj¹ Sroka? + + + Jasne... Ale nie mam pojêcia, co teraz porabia. + + + Hm... Nigdy o nim nie s³ysza³em. + + + Wiesz, kto móg³ ukraœæ zawartoœæ osobistej skrytki? + + + Nie mam pojêcia. Popytaj starszyznê w Janowie, mo¿e oni ci pomog¹. + + + Kto mo¿e pomóc mi coœ rozszyfrowaæ? + + + Azot w Janowie, któ¿by inny? Uwielbia grzebanie w technicznych pierdó³kach... Du¿o bardziej ni¿ d³ubanie w broni. + + + Nikt, kogo znam. Zapytaj w Janowie - maj¹ tam jakiegoœ speca. + + + Mam PDA handlarza Powinnoœci. Znasz kogoœ, kto by³by nim zainteresowany? + + + Znasz Sowê ze Skadowska? On powinien byæ tym zainteresowany. Lubi mieszaæ siê w delikatne sprawy... + + + Na Skadowsku na Zatonie by³ niejaki Sowa. On handluje informacjami... Twój PDA mo¿e go zainteresowaæ. + + + Gdzie tu znajdê narzêdzia? + + + Jeden stalker mówi³ mi, ¿e jego stary pracowa³ w warsztatach podstacji przed '86. Mówi³, ¿e mieli tam najró¿niejszy sprzêt, wiêc chyba i narzêdzia. Teraz ju¿ pewnie wszystko w cholerê zardzewia³o, ale mo¿e warto tam zajrzeæ. + + + Znasz tartak w lesie na wzgórzu? Powinny byæ tam jakieœ narzêdzia, chyba ¿e ktoœ siê ju¿ na nie po³akomi³. Ale w¹tpiê. Im bli¿ej tartaku podejdziesz, tym wiêksz¹ masz ochotê narobiæ w portki i zwiaæ, gdzie pieprz roœnie. I to nawet nie chodzi o promieniowanie... + + + Jest tu fabryka Jupiter, tam na pewno s¹ jakieœ narzêdzia. Ale lepiej siê do samej fabryki nie zbli¿aæ... Strasznie tam jest. Mo¿esz za to zajrzeæ do magazynów Jupitera z boku fabryki. + + + S³ysza³em, ¿e w Prypeci jest kilka miejsc, w których mo¿na znaleŸæ najró¿niejszy techniczny szajs. Jedno z nich to stary radziecki dom handlowy. Dawniej tylko tam mo¿na by³o kupiæ cokolwiek przydatnego. + + + Sk¹d mam wiedzieæ? Szukaj w starych warsztatach i sklepach, tam mo¿e byæ coœ u¿ytecznego. + + + Szczerze mówi¹c, porz¹dne narzêdzia ostatni raz widzia³em w bunkrze Sidorowicza w Kordonie. Jasne, trzeba za nie zap³aciæ, ale s¹ nowe i wcale nie takie drogie. + + + Wiesz, kolego, nie przyszed³em do Zony szukaæ narzêdzi. Ile po¿ytku bêdziesz mia³ z napromieniowanego m³otka? + + + S³ysza³em plotkê, ¿e mo¿na co nieco znaleŸæ w starym centrum us³ugowym... Mo¿e znajdziesz tam te¿ narzêdzia. Ale zasada jest taka jak wszêdzie - kto pierwszy, ten lepszy. + + + Dobre pytanie... Na twoim miejscu sprawdzi³bym w starym poci¹gu pod mostem. Nie pytaj dlaczego... Przeczucie mówi mi, ¿e mo¿esz tam coœ znaleŸæ. + + + Kto mo¿e odblokowaæ modu³ pamiêci? + + + Niech pomyœlê... Na pewno Azot w Janowie da radê. Oprócz niego jest jeszcze Nowikow, technik naukowców, prawdziwy fachura. Ale zastanów siê, na czym ci zale¿y, bo Azot jest du¿o tañszy. + + + Potrzebny ci bêdzie technik, a jedyny, którego tu znam to Kardan. Problem w tym, ¿e po tylu latach zagl¹dania w kieliszek nie najlepiej radzi sobie ze z³o¿on¹ elektronik¹. Na twoim miejscu popyta³bym w okolicach Jupitera - maj¹ tam prawdziwych fachowców. + + + Kto móg³by siê w³amaæ do stalowego kontenera? + + + Mo¿e Kardan ze Skadowska. A¿ mi³o patrzeæ, jak przecina k³ódki. + + + Chyba jakiœ technik. Ale Azot raczej tego nie zrobi - nie lubi si³owej roboty. + + + Pytasz o to w Prypeci?! Pos³uchaj mojej rady i poszukaj kogoœ dalej od centrum Zony. + + + Szukam stalkera Sêka. Wiesz, gdzie go znaleŸæ? + + + Zapytaj Brodacza, barmana na Skadowsku. On zwykle wie, gdzie znaleŸæ stalkerów. + + + Sêka? Sk¹d mam wiedzieæ, do diab³a? Zapytaj na Zatonie, czêsto siê tam krêci. + + + Wiesz coœ na temat rozbitych œmig³owców? + + + Kto mo¿e byæ zainteresowany informacjami na temat za³o¿yciela Powinnoœci? + + + Pogadaj z Sow¹, handlarzem informacji ze Skadowska. Za³o¿ê siê, ¿e bêdzie zainteresowany wiarygodnymi informacjami na temat takiej legendy. + + + Sam jeden widzia³em... Nie wygl¹da³, jakby siê rozbi³, ale zbyt prosto te¿ nie lata³. Buja³ siê na boki, a¿ w koñcu wyl¹dowa³ na p³askowy¿u na po³udnie od Zatonu... Ciekawe, czy ktoœ prze¿y³... Gdyby tylko by³o jak tam wejœæ. S³ysza³em, ¿e Noe z wariackiej barki mo¿e wiedzieæ... + + + S³ysza³em, ¿e niedaleko st¹d rozbi³o siê parê œmig³owców... Ludzie mówi¹ ró¿ne rzeczy, ale jedno pamiêtam dobrze. Mówili, ¿e wyl¹dowa³ na rezerwowym l¹dowisku, które sami wojacy zaminowali parê lat temu. Dasz g³owê, co za ironia? Mój stary mawia³ „Kto pod kim do³ki kopie, ten sam w nie wpada". Szczera prawda, nie? + + + Kumpel opowiedzia³ mi tak¹ historiê... Poszed³ do ¯elaznego Lasu szukaæ artefaktów i jak tylko tam doszed³, us³ysza³ za sob¹ wielki huk. Odwróci³ siê i zobaczy³, ¿e prosto na niego leci œmig³owiec, œcinaj¹c po drodze s³upy energetyczne. Koleœ wia³, a¿ siê za nim kurzy³o... A¿ dziw bierze, ¿e nie wpad³ po drodze w ¿adn¹ anomaliê. ¯elazny Las nietrudno znaleŸæ - widaæ go z daleka. Roi siê w nim od cholernych poltergeistów, wiêc musisz mieæ oczy dooko³a g³owy. + + + Podobno jeden wyl¹dowa³ na po³udniowym p³askowy¿u, ale ciê¿ko bêdzie siê tam dostaæ. S³ysza³em te¿, ¿e ktoœ widzia³ Noego na krawêdzi tego p³askowy¿u, co oznacza, ¿e ten wariat wie, jak tam wejœæ. + + + Sam ¿adnego nie widzia³em, ale kr¹¿y plotka, ¿e jeden rozbi³ siê w fabryce... Nikt nie chce tego sprawdziæ - jest tam zbyt niebezpiecznie. + + + Pewien stalker opowiada³ mi, ¿e widzia³ kilka wojskowych œmig³owców w kiepskiej sytuacji... Jeden spad³ z p³on¹cym silnikiem na bagno pe³ne anomalii. Dostaæ siê tam ³atwo, ale samo bagno to istny koszmar... To nie miejsce dla ludzi, mo¿esz mi wierzyæ. + + + Widzia³eœ tu jakieœ wojsko? + + + Kto mo¿e byæ zainteresowany mapami obszaru pomiêdzy Zatonem i Jupiterem? + + + Pilot, któ¿by inny? To przewodnik. Ci¹gle kr¹¿y pomiêdzy Skadowskiem i Janowem, wiêc na pewno przydadz¹ mu siê twoje mapy. + + + To nie Zaton ani Jupiter, wiêc te mapy s¹ tu bezu¿yteczne. Popytaj w którymœ z tych miejsc, a mo¿e bardziej ci siê poszczêœci! + + + Sam nic nie widzia³em, ale s³ysza³em historiê o ¿o³nierzach schodz¹cych z po³udniowego p³askowy¿u po stronie oczyszczalni œcieków. Podobno na pocz¹tku próbowali schodziæ jak nale¿y, za pomoc¹ lin i ca³ej reszty. Potem dali sobie spokój i zjechali na dupach! Bobsleje w Zonie - rewelacja! + + + S³ysza³em na Skadowsku rozmowê, ¿e ktoœ widzia³, jak pi¹tka ¿o³nierzy wychodzi z kana³u œciekowego ko³o bagna. Mówili ¿e ¿o³nierze byli piekielnie umorusani, a jednego z nich nie odró¿ni³byœ od bagiennej pijawki, bo by³ pokryty szlamem od stóp do g³ów. + + + Osobiœcie nie, ale mój kumpel widzia³, jak oddzia³ ¿o³nierzy atakuje grupê najemników ko³o oczyszczalni. Zanim znalaz³ dobry punkt widokowy, by³o ju¿ po zabawie, bo wojacy siê wycofali. Po obu stronach nie by³o ¿adnych ofiar... Typowe, co? + + + Podobno jakichœ dziesiêciu ¿o³nierzy widziano ko³o barki Noego. Skoro ten wariat prze¿y³ to spotkanie, musia³ siê z nimi jakoœ dogadaæ... jak to on. Oczywiœcie, nikt nie pyta³ Noego, co siê sta³o - nigdy nie wiadomo, czego siê spodziewaæ po tym r¹bniêtym sukinsynu. + + + S³ysza³em w nocy wybuch, a potem ktoœ w Janowie powiedzia³ mi, ¿e widzia³ martwego ¿o³nierza na starym polu minowym i porzucony armijny helikopter za nim. Wygl¹da na to, ¿e po ciemku nie widzieli, gdzie l¹duj¹, i wlecieli prosto na miny. Nikt nie wie, ilu siê stamt¹d wydosta³o, ale w¹tpiê, ¿eby tamten przylecia³ sam tym helikopterem. + + + Nie widzia³em ¿adnych ¿o³nierzy... ale s³ysza³em pog³oski, ¿e jakiœ wojak krêci siê u naukowców. Podobno znalaz³ go stalker Garri, jak poszed³ szukaæ swoich kumpli na stanowisku rakietowym. Tam roi siê od zombi, które nie s¹ zbyt przyjazne dla zb³¹kanych ludzi, wiêc Garri w³aœciwie uratowa³ go od pewnej œmierci. + + + Nie, ale s³ysza³em, ¿e widziano ¿o³nierza przy kompleksie przeciwlotniczym Wo³chow. Tak naprawdê w to nie wierzê... Mo¿e to k³amstwo, a mo¿e ktoœ nie potrafi odró¿niæ ¿o³nierza od zombi. + + + Wojsko? S³ysza³em, jak ludzie mówili, ¿e „ca³y oddzia³ ¿o³nierzy prowadzony przez stalkera” przeszed³ obok fabryki Jupiter, ale nie zwraca³em wiêkszej uwagi na te plotki. + + + Wiesz, jak siê dostaæ do Prypeci? + + + Kogo mo¿na wynaj¹æ do ochrony naukowców? + + + Znasz Spartakusa i jego oddzia³? Wiesz, tych stalkerów z Zatonu? Dobrzy z nich ludzie, walcz¹ te¿ ca³kiem nieŸle - nieraz ró¿nym bykom dawali odpór. Czujê, ¿e odpowiada³oby im pilnowanie naukowców. + + + Spotka³eœ oddzia³ Tasaka ko³o warsztatów podstacji na Zatonie? S¹ z nimi problemy, jak ze wszystkimi najemnikami, ale ci przynajmniej najpierw zadaj¹ pytania, a dopiero potem strzelaj¹. Jeœli siê z nimi dogadasz co do tej roboty, naukowcy siê uciesz¹, a i stalkerzy trochê odetchn¹. Wszyscy bêd¹ zadowoleni. + + + Eee... Nic mi nie przychodzi do g³owy... Przykro mi. + + + Wiem na pewno, ¿e nie mo¿na siê tam dostaæ z Zatonu. Wszyscy, których pili³o do Prypeci, szli w kierunku Jupitera, wiêc popytaj w tamtych okolicach. + + + Kr¹¿¹ plotki, ¿e pod fabryk¹ Jupiter s¹ ukryte tunele prowadz¹ce do Prypeci... Rzecz w tym, ¿e takie plotki zwykle wychodz¹ na jaw po drugiej kolejce, a do tego Jupiter to taki koszmar, ¿e nikt nie odwa¿y siê tam podejœæ. + + + Sk¹d mam wiedzieæ, brachu? Nie masz prostszych pytañ? Mogê tylko powiedzieæ, ¿e powinieneœ znaleŸæ Pilota i z nim pogadaæ - jeœli ktoœ mo¿e ci pomóc, to na pewno on. + + + Gdybym zna³ drogê do Prypeci, nie by³oby mnie tu. Jak myœlisz, czemu poszed³em w stronê centrum Zony? Prypeæ jest pe³na artefaktów, bracie! Kto dotrze tam pierwszy, bêdzie ¿y³ jak król! + + + Mo¿esz zaproponowaæ kogoœ, kto nie jest zbyt zajêty i chcia³by ruszyæ do Prypeci? + + + Nie s¹dzê, ¿eby by³ tu ktoœ taki. Wszyscy, którzy chcieli byæ bli¿ej centrum Zony, poszli do Jupitera. Na twoim miejscu tam bym popyta³. + + + S³ysza³eœ o ¿o³nierzu, który siedzi teraz u naukowców? On nie mia³by wiele do stracenia, id¹c z tob¹. Naukowcy prêdko siê stamt¹d nie rusz¹, a sam nie dotrze do Kordonu, wiêc mo¿e bêdzie na tyle g³upi, ¿eby pójœæ z tob¹ do Prypeci! + + + Znasz Wano ze stacji Janów? To uczciwy cz³owiek i dobry stalker, do tego strasznie ³atwowierny. Jemu lepiej wœród anomalii ni¿ wœród ludzi - dopóki tam siedzi, zawsze znajdzie siê ktoœ, kto go wycycka. + + + S³uchaj, podobno widziano jakiœ oddzia³ nad wyschniêtym jeziorem na po³udnie od stanowiska przeciwlotniczego... Nie byli to zwykli stalkerzy, Powinnoœæ ani Wolnoœæ - to ludzie z Monolitu! Jeœli potrzebujesz towarzyszy podró¿y do Prypeci, oni bêd¹ jak znalaz³. Ha, ha, rozumiesz chyba, ¿e ¿artujê? + + + Znasz W³óczêgê, przywódcê nowego oddzia³u Wolnoœci? Gdybyœ widzia³ jego ¿a³osn¹ gêbê, sam byœ wiedzia³, ¿e Janów to nie miejsce dla niego. Powinieneœ z nim porozmawiaæ. Mo¿e siê nawet zgodzi. + + + Znasz W³óczêgê, przywódcê nowego oddzia³u Powinnoœci? Gdybyœ widzia³ jego ¿a³osn¹ gêbê, sam byœ wiedzia³, ¿e Janów to nie miejsce dla niego. Powinieneœ z nim porozmawiaæ. Mo¿e siê nawet zgodzi. + + + Hm... Nikt mi nie przychodzi do g³owy. + + + Znalaz³em dziwn¹ broñ. Znasz kogoœ, kto mo¿e coœ o niej wiedzieæ? + + + Cholera wie. Zapytaj fachowców... Mo¿e technicy coœ wiedz¹... + + + Nie zaszkodzi zapytaæ Kardana na Skadowsku. On ma smyka³kê do broni... Wszystkich szarych komórek mo¿e jeszcze nie przepi³... + + + Kto mo¿e wykonaæ pomiary dla naukowców? + + + Znasz myœliwego Gontê? Myœlê, ¿e jemu i jego ch³opakom nie przeszkadza³aby praca dla naukowców. Znaczy siê, jeœli mutanty bêd¹ przeszkadzaæ w pracy, ci ch³opcy œwietnie sobie z nimi poradz¹. + + + S³ysza³eœ o stalkerach Grizlim, Torbie i Mitaju z Janowa? Pracuj¹ we trzech i lepszych ciê¿ko znaleŸæ! Myœlê, ¿e nadaj¹ siê do takiej pracy... O ile Mitaj nie wpakuje siê znowu w jakieœ k³opoty. + + + Nie mam pojêcia, bracie. Mamy tu doœæ w³asnych zmartwieñ. + + + Znalaz³em bardzo dziwny artefakt. Komu mogê go sprzedaæ? + + + Nie wiem. Tutejsi ludzie handluj¹ tylko z zaufanymi osobami. Popytaj na Zatonie, tam jest bli¿ej skraju Zony. + + + Poka¿ go Brodaczowi, barmanowi ze Skadowska. Podobno wspó³pracuje z kolekcjonerami z zewnêtrznego œwiata, a oni zawsze chêtnie ³ykaj¹ dziwne okazy. + + + Znalaz³em niedaleko legowisko pijawek. Co robiæ? + + + Ho, ho! Powiedz o tym Brodaczowi na Skadowsku... Bo albo siê z nimi rozprawimy, albo one nas za³atwi¹ w trymiga. + + + Dobra, niewa¿ne. + + + Gdzie jest najbli¿szy obóz stalkerów? + + + Coœ ty, g³upi?... Nie znam siê na obozach stalkerów, ale najbli¿szy obóz jest na Skadowsku. Dam ci wspó³rzêdne, i to za darmo. Dobry ze mnie ch³op, co? + + + Gdzie jest najbli¿szy obóz stalkerów? + + + Przeœlê ci wspó³rzêdne na PDA... Skadowsk to jedyny du¿y obóz w okolicy. + + + Do zobaczenia. + + + S³ysza³em, ¿e kilka siê rozbi³o... Nie znam szczegó³ów - nie zajmujê siê plotkami. Przykro mi, ¿e nie mogê bardziej ci pomóc. + + + Cz³owieku, mam wystarczaj¹co wiele na g³owie i bez twoich œmig³owców... Zak³adam, ¿e rozbicie takiej maszyny to nic przyjemnego, ale poza tym nie bardzo wiem, co mia³bym ci powiedzieæ. + + + O czym ty mówisz, do cholery? Trzeba siê napaliæ mocnego towaru, ¿eby zobaczyæ tu œmig³owiec, bo prawdziwych tutaj nie uœwiadczysz. + + + Hê? Nie, nie zawracam sobie g³owy takimi rzeczami. Ani trochê nie pomagaj¹ mi w mojej misji rozpowszechniania wiedzy. + + + Nasz patrol widzia³ spadaj¹ce œmig³owce, ale szczegó³y przekaza³ podpu³kownikowi osobiœcie. Nic wiêcej o tym nie wiem, to problem podpu³kownika. + + + Gdzie znajdê kombinezon z aparatem tlenowym o zamkniêtym obiegu? + + + Nie wiem, jak ze znalezieniem, ale odpowiednia kwota potrafi zdzia³aæ cuda - o ile siê wie, gdzie j¹ zainwestowaæ. Porozmawiaj ze ¯wawym... Jeœli siê dogadacie, zdobêdzie dla ciebie strój. Mam nadziejê, ¿e tak siê stanie... Przyda³oby siê nam na Skadowsku parê dni bez niego... + + + Sk¹d mam wiedzieæ, do diab³a? Sam jestem tu od niedawna... Najlepiej zapytaj na Zatonie, nasi bracia maj¹ tam swoje kontakty. + + + Nie mam pojêcia. A co, zamierzasz wetkn¹æ nos w anomaliê? S³uchaj, jeœli znajdziesz jakieœ artefakty, daj nam znaæ. Dotrzemy na miejsce raz-dwa... ¯eby pogratulowaæ ci dobrej roboty! Ha, ha! + + + Gdzie znajdê kombinezon z aparatem tlenowym o zamkniêtym obiegu? + + + Sk¹d mam wiedzieæ? Czekaj... Jest w Skadowsku pewien goœæ, podobno jest w stanie za³atwiæ wszystko, o co zapytasz. Siedzi na górnym pok³adzie, nazywa siê ¯wawy. + + + Nie, nikt tu nie przytaszczy ze sob¹ dodatkowego kombinezonu... Zapytaj na Zatonie - jest o krok bli¿ej cywilizacji. + + + Nie mam pojêcia, gdzie go szukaæ... Takie kombinezony s¹ rzadkoœci¹ wœród cz³onków Powinnoœci. Mo¿na taki dostaæ tylko za wyró¿nienie siê w walce albo gdy siê prowadzi dzia³ania wœród skupisk anomalii. + + + Gdzie znajdê kombinezon z aparatem tlenowym o zamkniêtym obiegu? + + + S³ysza³em, jak stalkerzy mówili o cz³owieku z kontaktami, chyba nazywali go ¯wawy. Mo¿e ci za³atwiæ niemal wszystko, sprzêt, spluwy, tego typu rzeczy... Trawy ci nie za³atwi. Siedzi w Skadowsku, jeœli chcesz go odwiedziæ. + + + Dobre pytanie... W Wolnoœci takich nie nosimy. Na twoim miejscu zapyta³bym stalkerów na Zatonie. Tam mo¿e byæ ktoœ, kto zajmuje siê takimi sprawami. + + + A na cholerê ci to? Do walki siê nie nadaje. Ale na coœ chyba mo¿e siê przydaæ. £atwiej w nim oddychaæ i s³oñce tak nie œwieci w oczy. Sam z chêci¹ bym sobie za³atwi³ taki kombinezon. Nie wiesz, gdzie mo¿na go dostaæ? + + + Gdzie znajdê kombinezon z aparatem tlenowym o zamkniêtym obiegu? + + + Myœlê, ¿e u ¯wawego. Trzeci pok³ad Skadowska. On ci mo¿e za³atwiæ œnieg na pustyni... Ale portfel ciê¿ko znosi jego us³ugi. + + + Niech pomyœlê... By³ taki jeden na Zatonie, niejaki ¯wawy. SprawdŸ, czy ci¹gle tam jest. Podobno specjalizuje siê w ekskluzywnym towarze. + + + Cz³owieku, pytasz, jakby to by³ zszywacz do papieru albo coœ. Nikt nie wie. Taki towar to rarytas, pojawia siê rzadko. Jeœli go zdobêdziesz, mo¿esz uwa¿aæ siê za szczêœciarza. + + + Czeœæ. + + + Na razie. + + + Do zobaczenia. + + diff --git a/gamedata/configs/text/pol/st_dialogs_jupiter.xml b/gamedata/configs/text/pol/st_dialogs_jupiter.xml new file mode 100644 index 0000000..04dbdc4 --- /dev/null +++ b/gamedata/configs/text/pol/st_dialogs_jupiter.xml @@ -0,0 +1,3885 @@ + + + + Czego chcesz? + + + Muszê porozmawiaæ z Waletem. Chodzi o d³ug Wano. + + + Dobra, nie zatrzymujê ciê. + + + Ju¿ idê. + + + Tak tylko siê przechadzam. + + + To nie miejsce na spacery. Zmiataj st¹d. + + + Wiesz, kto móg³ ukraœæ zawartoœæ osobistej skrytki? + + + Nie , ale mam w³asne zmartwienia... Ty straci³eœ trochê przedmiotów, a ja mogê straciæ ¿ycie... + + + Wszyscy kradn¹, wszyscy k³ami¹... Do czego zmierza ten œwiat? Nikogo nie widzia³em, ale sprawca na pewno ju¿ dawno znikn¹³. + + + ChodŸmy do Zulusa. + + + Oczywiœcie. Powinniœmy po drodze zajrzeæ do Hawajczyka i odkupiæ mój kombinezon. + + + ChodŸmy. + + + Z chêci¹, ale nie mam ochoty natkn¹æ siê na emisjê. Poczekajmy jakiœ czas. + + + ¯eby siê dostaæ do Prypeci, potrzebujemy kombinezonu z aparatem tlenowym o obiegu zamkniêtym. + + + A niech to! Mam taki - mo¿esz wsadziæ ³eb do piekarnika i swobodnie oddychaæ, ale zastawi³em go u Hawajczyka. Gdybyœmy mogli go odzyskaæ... Jestem bez grosza, a potrzeba na to 5 tysiêcy… + + + Mogê daæ ci pieni¹dze na kombinezon. + + + Tak po prostu? Mówisz powa¿nie? + + + Proszê, masz tu 5 tysiêcy. + + + Ratujesz mi skórê, przyjacielu. Teraz pójdê za tob¹ na koniec œwiata! + + + Da³bym ci pieni¹dze, ale nie mam 5 tysiêcy. + + + Nawet najlepszym siê to zdarza, przyjacielu... Dobrze o tym wiem. + + + Zastanowiê siê nad tym. + + + Oczywiœcie. W koñcu to twoja kasa. + + + To co, dasz mi pieni¹dze, czy co? + + + Zbieram oddzia³, ¿eby ruszyæ do Prypeci. Chcesz siê przy³¹czyæ? + + + Pomog³eœ mi, przyjacielu, wiêc ja pomogê tobie. + + + Bardzo bym chcia³, ale nie mogê ruszyæ siê st¹d, dopóki wisi nade mn¹ ten d³ug. To nie by³oby w porz¹dku, poza tym, gdybyœmy po drodze na nich wpadli, ubiliby mnie jak psa. Tym sukinsynom wszystko jedno, kogo zabij¹... + + + To co, jesteœ gotów ruszyæ do Prypeci? + + + Nigdy nie by³em tak gotów! + + + WejdŸ. Czego chcesz? + + + Sp³aci³eœ d³ug, to zmiataj st¹d. + + + Bezczelne z nich by³y dranie - musia³em ich rozwaliæ. + + + Zap³aci³em im, wiêc nie masz ju¿ d³ugu. + + + A niech to, dziêki! Nie zapomnê ci tego. + + + Musia³em jeszcze zap³aciæ odsetki. + + + Niedobrze... Ale mnie kazaliby zap³aciæ jeszcze wiêcej, uwierz mi. Dziêkujê za pomoc! Nie zapomnê ci tego. + + + Jeszcze u nich nie by³em. + + + Poœpiesz siê, bo ka¿¹ ci wiêcej zap³aciæ. + + + Poszed³em do nich, ale ¿¹daj¹ odsetek od d³ugu. + + + Co oni, poszaleli? Ledwo uda³o mi siê tyle nazbieraæ... Myœlisz, ¿e przekonasz ich do zrezygnowania z odsetek? Przyda ci siê dobra broñ - oni szanuj¹ tylko si³ê. + + + Co mówi³eœ o swoim d³ugu? + + + Mój stary kombinezon by³ ju¿ w kiepskim stanie, wiêc uzna³em, ¿e przyda mi siê nowy. Jak tylko o tym pomyœla³em, zobaczy³em w sprzeda¿y zupe³nie nowiutki kombinezon... Mia³ aparat tlenowy o zamkniêtym obiegu i w ogóle... Liczy³em oszczêdnoœci na wszystkie strony, ale zawsze mi brakowa³o... Wtedy sprzedawca, Walet, powiedzia³ mi „Nie przejmuj siê, Wano, resztê oddasz póŸniej". Pomyœla³em sobie „z³oty cz³owiek!"... + + + No i? + + + Sprzeda³em stary kombinezon, zebra³em ca³¹ swoj¹ gotówkê i poszed³em z ni¹ do niego. Walet mówi „Piêknie, Wano, ale gdzie odsetki?". Pomyœla³em, ¿e ma racjê - powinienem zap³aciæ mu odsetki. Zebra³em jeszcze trochê i poszed³em do niego. Jak by³em na miejscu, powiedzia³ „Kiedy ciê nie by³o, naros³y dalsze odsetki, Wano". NajwyraŸniej odsetki rosn¹ tak szybko, ¿e nie mogê nad¹¿yæ... Musia³em zastawiæ nowy kombinezon i broñ te¿... + + + I co teraz? + + + Chcê zap³aciæ mu to, co zarobi³em. Reputacja to dla Wano najwa¿niejsza rzecz pod s³oñcem... Ale siê bojê. Mo¿esz iœæ do Waleta i sp³aciæ mój d³ug za mnie? + + + Dobrze, pójdê. + + + Tylko jest jedna rzecz, jak do nich pójdziesz, wyci¹gnij jakiegoœ wielkiego gnata. Poka¿ im, ¿e z tob¹ nie ma ¿artów, to bêd¹ ciê szanowaæ... + + + Poradzê sobie. + + + Jestem teraz zbyt zajêty. + + + Mam ju¿ doœæ. + + + Mo¿esz iœæ do Waleta i sp³aciæ mój d³ug za mnie? + + + Dobrze, nie strzelaj, sp³acê d³ug... Przepraszam, myœla³em, ¿e to ktoœ inny... + + + Jak posz³o u bandytów? + + + Czeœæ! Dobrze, ¿e przyszed³eœ! + + + Czeœæ. + + + Mamy goœci... Stalker przyszed³ na s³owo do Szyszaka. Przychodzisz z podarkami czy masz jakiœ interes do omówienia? Tak czy siak, mów szybko. + + + Nie s¹dzi³em, ¿e wrócisz... Co dla mnie masz? + + + O czym jeszcze chcia³eœ mówiæ, stalkerze? + + + Czego chcesz? Znudzi³o ci siê taskanie wszêdzie zdobyczy? Mo¿emy ciê od niej uwolniæ. + + + Muszê porozmawiaæ z waszym szefem. + + + Kole¿ko, nie mam czasu na takie bzdury. No ju¿, wypad st¹d! Wynoœ siê natychmiast, bo przy³o¿ê ci na popêd ze strzelby. + + + Dobrze, dobrze - idê sobie. + + + Przychodzê w sprawie wiêzionego stalkera - chcê rozmawiaæ z twoim szefem. + + + Dobra, idŸ, ale bez numerów, bo poœlemy ciê zaraz do piachu... IdŸ dalej prosto, a potem wejdŸ miêdzy kontenery. Kapujesz? + + + Tak. + + + Tylko przechodzi³em, ju¿ znikam. + + + Przychodzê w sprawie wiêzionego stalkera - chcê rozmawiaæ z twoim szefem. + + + Czego jeszcze chcesz? Zje¿d¿aj! + + + Dobrze... + + + S³uchaj, frajerzyno, próbujesz mnie obraziæ? Przynios³eœ okup za tego ³osia, ale nie zap³aci³eœ nam za bezpieczne przejœcie! Nie przemyœla³eœ tego, kapujesz? + + + O jak¹ kwotê chodzi? Ale muszê dotrzeæ do bazy, pamiêtaj o tym. + + + Ale¿ dowcipniœ z ciebie! To nie burdel, kolego, nie mamy cennika... Opró¿nij kieszenie, frajerze! + + + Proszê bardzo. + + + Dobrze, idê sobie. + + + Co?! Chcecie zabraæ moj¹ zdobycz? Nie ma mowy! + + + Zap³aci³em okup. Nie ma o czym wiêcej mówiæ. + + + Dobrze, stalkerze, zarobiliœmy swoj¹ stawkê. Czas iœæ. + + + Dziêki, ch³opaki. Do zobaczenia. + + + Czekaj. Mog¹ tu siê kryæ kolejni bandyci. + + + Dobra, czas iœæ. Ch³opakowi sie nie uda³o, ale zrobiliœmy, co tylko by³o mo¿na... + + + Czekaj, to jeszcze nie wszystko! + + + Rozumiem! + + + ChodŸmy razem do Prypeci. + + + Lepiej bêdzie, jak tu zostanê i przypilnujê, ¿eby Mitaj nie wpad³ w k³opoty. + + + Stalkerze! Dziêkujê za wydostanie Mitaja! Zaczêliœmy ju¿ zbieraæ oddzia³... Proszê, przyjmij to na znak naszej wdziêcznoœci. + + + Stalkerze! Dziêkujê za wydostanie Mitaja! Maszyna do zabijania z ciebie, sam rozwali³eœ wszystkich tych bandytów... Proszê, przyjmij to na znak naszej wdziêcznoœci. + + + Stalkerze! Dziêkujê za pomoc w uwolnieniu Mitaja! Ja sam nie s¹dzi³em, ¿e zap³acenie okupu mog³o przynieœæ dobry skutek... Na pewno przyda ci siê parê groszy, wiêc proszê. Jesteœmy ci wdziêczni. + + + Stalkerze! Dziêkujê za pomoc w uwolnieniu Mitaja! Mia³em racjê co do ca³ej sprawy. Nie mo¿na ulegaæ ¿¹daniom bandytów! Trzeba im przykrêciæ œrubê... A ty mia³eœ odwagê to zrobiæ. Proszê, weŸ to - ka¿dy dosta³ swoj¹ dzia³kê, wiêc nie jest tego du¿o, ale jesteœmy ci bardzo wdziêczni. + + + Jak posz³o z tym okupem? + + + Jeszcze nad tym pracujê. + + + Co tam? Kiedy przy³o¿ysz bandytom? + + + Nied³ugo. + + + Zmieni³eœ zdanie czy masz problem z bandytami? Niewa¿ne, rób, co musisz, ale szybko - nie chcemy, ¿eby stracili cierpliwoœæ i zabili Mitaja. + + + Za³atwiê to. Wszystko bêdzie w porz¹dku. + + + Mi³o spotkaæ takiego fachowca jak ty, stalkerze! + + + Takiego dobrego cz³owieka straciliœmy... Biedny Mitaj... Nie uratowaliœmy go - co z nas za przyjaciele! + + + Co poradziæ? + + + ChodŸ ze mn¹ do Prypeci. + + + Przyszed³em tu tylko po to, ¿eby dotrzymaæ towarzystwa przyjacio³om, wiêc zostanê z nimi. + + + Dziêkujê za uratowanie Mitaja... Ju¿ mieliœmy ruszaæ z okupem. Wszystko dobrze siê skoñczy³o... + + + Dziêkujê za uratowanie Mitaja... Jak uda³o ci siê ich przekonaæ? Moglibyœmy wiele siê od ciebie nauczyæ... + + + Dziêkujê za uratowanie Mitaja... Mia³em racjê, prawda? Negocjacje to klucz do sukcesu! + + + Dziêkujê za uratowanie Mitaja... Wci¹¿ uwa¿am, ¿e lepiej by³o negocjowaæ, ale i tak siê uda³o, wiêc nie szkodzi. + + + OdejdŸ - nie mam ochoty teraz z tob¹ rozmawiaæ. + + + Dobrze, spokojnie. + + + Czo³em, panie fachuro! + + + Biedny Mitaj... M³ody ch³opak z niego by³... Mia³ ca³e ¿ycie przed sob¹... + + + Co poradziæ? + + + Œwietnie, jesteœmy w komplecie. Grizli powiedzia³ mi o tobie... Plan jest prosty: ch³opcy rozstawi¹ siê na pozycjach do ataku, a ja zdejmê wartownika - to bêdzie sygna³ do natarcia... Zwróæ uwagê na nasze pozycje i rób, co ci siê ¿ywnie podoba. Mam nadziejê, ¿e orientujesz siê, co zrobisz... Gotów? + + + Dobrze, wezmê to pod uwagê. Ruszajmy. + + + Chwila, niech siê zastanowiê. + + + Masz ochotê ruszyæ ze mn¹ do Prypeci, Mitaj? + + + Naukowcy szukaj¹ ludzi do pracy, mo¿e zatrudnisz siê u nich? + + + Co to za robota? + + + Strze¿enie ich bunkra. + + + Nie, wystarczy mi ju¿ ta przygoda z bandytami. Bêdê tu siedzia³ spokojnie na ty³ku. + + + Wykonywanie pomiarów anomalii. + + + Hm... Ciekawe. Pracowa³em ju¿ dla naukowców, a skoro ty prosisz - zgodzê siê. Ja, Grizli i Torba pójdziemy do bunkra. + + + Powiedz mi, jak ciê z³apali. + + + Nie pytaj nawet! To tylko moja wina. Bandyci ostrzegali mnie przed tym, ale wiesz... Zaczêli ¿¹daæ czêœci mojej zdobyczy, ale Zona przecie¿ nie jest niczyj¹ w³asnoœci¹, wiêc czemu mia³bym im p³aciæ? + + + Powiedzieliœmy im z ch³opakami, gdzie nas mog¹ poca³owaæ, i myœleliœmy, ¿e ujdzie nam na sucho. Bandyci okazali siê ca³kiem sprytni - urz¹dzili zasadzkê. By³em na tyle g³upi, ¿e poszed³em samemu szukaæ artefaktów, a wtedy oni wyskoczyli mi zza pleców i zwi¹zali rêce, nim zd¹¿y³em wyj¹æ broñ... i tyle. + + + Dziêkujê, ¿e wp³aci³eœ za mnie okup! Nie zapomnê ci tego. + + + Dziêkujê, ¿e mnie uwolni³eœ, stalkerze! Nie zapomnê ci tego. + + + Dziêkujê, ¿e pomog³eœ wp³aciæ za mnie okup, stalkerze! + + + Dziêkujê, ¿e pomog³eœ mnie uwolniæ, stalkerze! + + + Dziêkujê za pomoc, stalkerze... Moi przyjaciele wynagrodz¹ ciê, jak wrócimy... ChodŸmy razem do bazy, tak bêdzie szybciej. + + + Ruszajmy. + + + IdŸ, ja wpadnê póŸniej. Mam tu sprawy do dokoñczenia. + + + Myœla³em, ¿e ju¿ po mnie... Grizli i Torba wynajêli wszystkich tych ludzi?! A niech mnie! W ¿yciu nie widzia³em takiej strzelaniny! Mo¿emy ju¿ st¹d iœæ? + + + Chwileczkê, mog¹ byæ tu jeszcze jacyœ bandyci. + + + Tak. ChodŸmy. + + + Myœla³em, ¿e nie wyjdê z tego ¿ywy... Rany, sam za³atwi³eœ wszystkich tych bandytów! Chwat z ciebie! Nie uwierz¹ mi, jak opowiem o tym... Mo¿emy ju¿ st¹d iœæ? + + + Chwileczkê, móg³ jeszcze ktoœ zostaæ. + + + Tak. ChodŸmy st¹d natychmiast. + + + Dziêkujê, stalkerze! ChodŸmy st¹d, zanim bandyci zmieni¹ zdanie. + + + Ruszajmy. + + + Musimy st¹d szybko zwiewaæ! + + + Nie mo¿emy zgodziæ siê na ¿¹dania bandytów. Potrzebne jest rozwi¹zanie si³owe. + + + W³aœnie! Znam kilku ch³opców, którzy z chêci¹ pomog¹... Zap³acimy ci, jeœli zechcesz nam towarzyszyæ. + + + Jestem gotowy. + + + Œwietnie! Znam grupê stalkerów, którzy s³u¿yli kiedyœ w jednostce specjalnej policji. Spotkasz siê z nimi w umówionym miejscu po pierwszej w nocy - bêd¹ na ciebie czekaæ. + + + Dobrze... + + + Torba ma racjê. Nie ma co wszczynaæ wojny, dopóki maj¹ zak³adnika. Musimy negocjowaæ. + + + Mo¿e i macie racjê... Rzecz w tym, ¿e jeœli pójdê tam z Torb¹, bandyci nie wypuszcz¹ ju¿ nas, bo nie przestrzegaliœmy ich zasad. Powiedzieli, ¿e przy nastêpnym spotkaniu zakopi¹ nas ¿ywcem. Ale gdybyœ ty móg³ przeprowadziæ negocjacje... + + + Jasne, zrobiê to. Daj mi artefakt. + + + B¹dŸ ostro¿ny. + + + Wszystko bêdzie dobrze. + + + Mo¿emy siê k³óciæ do samego rana... Powodzenie zale¿y od tego, kto poprowadzi sprawê. Sam zajmê siê tymi draniami. + + + Nie spodziewa³em siê tego... Powodzenia. + + + Nied³ugo wrócê. + + + Zgadzam siê, ale potrzebujê czasu na przygotowanie. + + + Stalkerze, nie pomóg³byœ wydostaæ naszego kumpla Mitaja z k³opotów? + + + Co siê sta³o? + + + Mitaj wpad³ jak œliwka w kompot... Bandyci zaczêli siê panoszyæ i za¿¹dali dzia³ki od artefaktów znajdowanych przez stalkerów. Powiedzieliœmy im, ¿eby siê bujali, bo uwa¿amy, ¿e stalkerzy nie s¹ nikomu nic winni, i wydawa³o siê, ¿e na tym koniec... Ale sukinsyny napadli na tego biedaka, kiedy sam poszed³ szukaæ towaru, i teraz ¿¹daj¹ okupu. + + + Co zamierzacie zrobiæ? + + + Torba chce im oddaæ artefakt jako okup... Ja uwa¿am, ¿e gówno im siê nale¿y. Jeœli im go oddamy, wyjdzie na to, ¿e stalkerzy pracuj¹ dla bandytów... Powinniœmy sprzedaæ artefakt, wynaj¹æ porz¹dn¹ ekipê i wjechaæ do bazy bandytów. + + + Zajmijmy siê tym trochê póŸniej. + + + To co, pomo¿esz nam uratowaæ Mitaja? Torba wci¹¿ uwa¿a, ¿e powinniœmy oddaæ im artefakt. Ja ci¹gle nalegam, ¿eby im zrobiæ wjazd do bazy. W tym celu musielibyœmy sprzedaæ artefakt i zatrudniæ ekipê... Nadal nie zdecydowaliœmy, co zrobiæ. + + + Jesteœ gotowy? Damy ci artefakt na wykupienie Mitaja i bêdziemy czekaæ na ciebie przy barze. + + + By³eœ ju¿ u bandytów? + + + Jeszcze nie, przygotowujê siê. + + + Tak, ale niewiele z tego wysz³o. Dam wam znaæ, jak bêdzie coœ wiadomo. + + + By³em niedawno w Oazie i znalaz³em tam artefakt. Jesteœ zainteresowany? + + + Ha, ha, mam w to uwierzyæ? Niema³o s³ysza³em na temat Oazy, ale nigdy nie s³ysza³em, ¿eby ktoœ w niej faktycznie by³. Bez urazy, ale nie uwierzê ci na s³owo. + + + Mam dokumenty z fabryki Jupiter. + + + Tak, weŸ wszystkie. + + + Tak, weŸ rozkaz ewakuacji. + + + Tak, weŸ protokó³ z zebrania. + + + Tak, weŸ harmonogram dostaw. + + + Tak, weŸ notatkê z warsztatu naprawczego. + + + Mo¿e nastêpnym razem. + + + Kto móg³ ukraœæ zawartoœæ osobistej skrytki? + + + Na pewno nie moi ludzie. Mo¿e to ktoœ z Wolnoœci. Gdybyœmy mieli pe³n¹ kontrolê nad Janowem, do takich rzeczy by nie dochodzi³o. + + + Opowiedz mi o Powinnoœci. + + + Co dok³adnie chcesz wiedzieæ? + + + Co tu robicie? + + + To samo, co zawsze. Ochraniamy stalkerów przed wszelkim paskudztwem. Widzia³eœ, ile tu jest mutantów, i to nie s¹ milutkie pieski, jak przy Kordonie. Na przyk³ad wczoraj wieczorem na w³asne oczy widzia³em chimerê. Zmierzcha³o, wiêc nie goniliœmy jej... Mutanty to nie jedyny problem. Musimy te¿ badaæ i zbieraæ materia³y z opuszczonych laboratoriów, zanim pacany z Wolnoœci do nich dotr¹. + + + Co sprowadzi³o was do centrum Zony? + + + ¯arty sobie robisz? A ty czemu tu jesteœ? Strzelam w ciemno, ¿e jesteœmy tu z tego samego powodu. Centrum Zony zawsze by³o nieosi¹galnym celem, miejscem, w którym mia³y znaleŸæ siê odpowiedzi na wszystkie nasze pytania. Chcieliœmy siê dowiedzieæ, jak Zona powsta³a i jak mo¿na j¹ zniszczyæ. Dlatego, jak tylko us³yszeliœmy pog³oskê o wy³¹czeniu Mózgozwêglacza, ruszyliœmy do centrum. + + + I dowiedzieliœcie siê czegoœ? + + + Ca³kiem sporo, ale to tajne. Mogê tylko powiedzieæ, ¿e Zona kryje w sobie wiêcej, ni¿ siê wydaje. Niektórzy z naszych ludzi uwa¿aj¹, ¿e Zona jest jak rak, którego nale¿y wyci¹æ za wszelk¹ cenê. Na podstawie tego, co widzia³em, powiedzia³bym raczej, ¿e Zona to ¿ywy organizm, a my jesteœmy niczym ¿yj¹ce w niej bakterie. Gdybyœmy nawet po³¹czyli potêgê wojskow¹ wszystkich pañstw œwiata, nie bylibyœmy w stanie zniszczyæ Zony. Dlatego musimy byæ sprytniejsi: musimy odnaleŸæ przyczynê istnienia Zony i j¹ usun¹æ. + + + A jeœli nie da siê usun¹æ tej przyczyny? + + + Jeœli nie, bêdziemy musieli wymyœliæ coœ innego, ale wci¹¿ jest nadzieja. Musimy pe³niæ nasz¹ powinnoœæ i myœleæ optymistycznie. + + + Jak trafi³eœ do Powinnoœci? + + + To nudna historia, nie ma w niej nic bohaterskiego. Jak tylko pojawi³a siê Zona, postanowi³em z moim kumplem Leni¹ do niej zajrzeæ. Ja by³em wtedy oficerem polowym, a Lenia by³ w wywiadzie. Nie byliœmy frajerami, ale wpakowaliœmy siê w niez³e tarapaty. Czo³galiœmy siê godzinami ranni i zakrwawieni, a¿ znaleŸli nas ludzie Powinnoœci. Ja prze¿y³em, Lenia nie. Nie mia³em przyjació³ w Zonie, wiêc zosta³em tutaj, w Powinnoœci. No i od tamtego czasu mam z Zon¹ na pieñku. + + + Jak wygl¹daj¹ wasze stosunki z Wolnoœci¹? + + + Oficjalnie jesteœmy w stanie wojny, ale ¿ycie w centrum Zony kieruje siê w³asnymi zasadami. Tutaj jest mniej bezpiecznych miejsc, a ani Wolnoœæ, ani Powinnoœæ nie maj¹ zbyt wielu ludzi. Jaki jest wiêc sens zabijaæ siê nawzajem? Dlatego przyjêliœmy niewypowiedzian¹ zasadê, ¿e nie wchodzimy sobie w drogê. Poza Janowem ta zasada nie ma znaczenia - na zewn¹trz wci¹¿ toczymy ze sob¹ wojnê, i to nie na ¿arty. + + + Dobra, niewa¿ne. + + + W porz¹dku. + + + Chcia³em porozmawiaæ o Flincie z Wolnoœci. + + + Nie mam nic do ludzi Wolnoœci, o ile trzymaj¹ siê od nas z dala. + + + Flint, zwany tak¿e Srok¹, przekrêci³ myœliwych na Zatonie, zabra³ ich towar i z nim zwia³. + + + No i? Nie dziwi mnie to, bo w Wolnoœci roi siê od takich kanalii. + + + Jest jeszcze coœ. W kamienio³omach spotka³em stalkera. Przed œmierci¹ powiedzia³ mi, ¿e Flint zostawi³ go w anomalii, zabra³ jego zdobycz i da³ nogê. + + + Widzisz, czegoœ takiego stalkerzy nie zapominaj¹... Nawet w Wolnoœci. Dziêki za informacjê - postaramy siê dobrze j¹ wykorzystaæ. + + + Mam na jego temat doœæ brudów. Ten palant ma czelnoœæ otwarcie chwaliæ siê rzeczami, które zrobi³em ja. + + + To powa¿nie os³abi reputacjê Wolnoœci. Dziêki za informacjê. Postaramy siê dobrze j¹ wykorzystaæ. + + + Niewa¿ne. + + + Dobra, jak chcesz. + + + Mam PDA twojego zaopatrzeniowca Morgana. + + + Zgadzam siê. + + + Zastanowiê siê nad tym. + + + Zgadzam siê. + + + Dobrze. + + + Popatrzmy... A wiêc ten skurczybyk robi³ interesy na boku i pos³ugiwa³ siê nasz¹ nazw¹... Jeœli to wyjdzie na jaw, nasza reputacja legnie w gruzach. Mo¿e kupiê od ciebie ten PDA? Dobrze zap³acê. Wystarczy 4000? + + + To powa¿ne oskar¿enie. Poka¿ mi PDA. + + + Proszê. + + + Przyznam, ¿e mia³em pewne podejrzenia wzglêdem niego... Teraz siê nimi zajmiemy na dobre. Dziêkujê, stalkerze! Mam nadziejê, ¿e nikt nie pozna szczegó³ów tej rozmowy. Mam dla ciebie skromn¹ nagrodê - w koñcu uratowa³eœ reputacjê Powinnoœci. + + + Na razie go zatrzymam. + + + Kolejny... Bardzo ciekawe... Dodam to do akt sprawy. + + + Proszê. + + + Dziêkujê! Oto skromne wynagrodzenie za twój trud... + + + Zatrzymam to jako pami¹tkê. + + + Spotka³em grupê bojowników, którzy chc¹ wst¹piæ do Powinnoœci. + + + Ca³y czas szukamy dobrych ludzi. Niech do mnie wpadn¹, to pogadamy. + + + Jest tylko jeden problem... To byli cz³onkowie Monolitu. + + + Jak to „byli” cz³onkowie Monolitu? O ile wiem, cz³onkowie Monolitu dziel¹ siê na dwie kategorie: obecni i martwi. „By³ych” jeszcze nie spotka³em. + + + Wygl¹da na to, ¿e byli pod czyj¹œ kontrol¹ - nie pamiêtaj¹, co siê z nimi dzia³o, odk¹d wyruszyli do CEJ. Teraz nie s¹ wcale agresywni, po prostu nie wiedz¹, co robiæ. + + + To dobrze, ¿e nie s¹ agresywni... Znajdê im coœ ³atwego do roboty i zadbam, ¿eby pouk³ada³o im siê w g³owach. Ale nie jestem do nich w tej chwili ca³kiem przekonany... Porêczysz za nich? + + + Tak. Ufam im. + + + Hm... Problem w tym, ¿e tobie te¿ nie ufam... Jeszcze nie. Przykro mi. + + + Dobrze, ale pamiêtaj, ¿e jeœli nawal¹, ty za to odpowiesz. Prawda jest taka, ¿e sami nie dotr¹ do Janowa. WeŸmiesz moich ch³opaków i zaprowadzisz ich do oddzia³u Monolitu. Ch³opaki z nimi porozmawiaj¹ i jeœli wszystko bêdzie w porz¹dku, przyjmie siê ich do Powinnoœci. Powiedz, kiedy bêdziesz gotów ruszaæ. + + + Nie. Nie ufam im zbytnio. + + + Nie przyjmujemy do naszej frakcji byle kogo. + + + Jestem gotów poprowadziæ twoich ludzi do oddzia³u Monolitu. + + + Dobrze. Poœlê z tob¹ dwóch ludzi. + + + W porz¹dku. + + + Za³atwimy to póŸniej. Coœ mi wypad³o. + + + Czekaj! Rób, co chcesz, ale nie puszczê moich ch³opaków na pastwê emisji. + + + Znalaz³em PDA za³o¿yciela Powinnoœci. Jesteœ zainteresowany? + + + Popatrzmy... A wiêc tak to by³o... Myœlê, ¿e inni nie musz¹ tego wiedzieæ. By³oby lepiej, gdyby dane z tego PDA nie wpad³y w niczyje inne rêce. Niech legenda powstania Powinnoœci pozostanie bez zmian. Sprzedasz mi ten PDA? + + + Trzymaj. + + + Dziêkujê. Masz tu zap³atê. + + + Rozwa¿ê twoj¹ propozycjê. + + + WeŸ PDA za³o¿yciela Powinnoœci. + + + Dziêkujê! Wyœwiadczy³eœ mi wielk¹ przys³ugê. Oto zap³ata. + + + Potrzebujê bojowników do pracy dla naukowców. Mo¿esz mi pomóc? + + + Zawsze z chêci¹ pomagamy naukowcom. Co trzeba zrobiæ? + + + Szukaj¹ kogoœ do ochrony bunkra. + + + Oczywiœcie, poœlê moich ch³opaków. + + + Oczywiœcie, poœlê moich ch³opaków. + + + Z chêci¹ bym pomóg³, ale naukowcy zatrudnili ju¿ Wolnoœæ. Pos³anie tam naszego oddzia³u zaogni³oby tylko konflikt pomiêdzy nami. + + + Zamierzam wybraæ siê do Prypeci. Dasz mi kilku ludzi do towarzystwa? + + + I tak mamy braki kadrowe! Porozmawiaj z W³óczêg¹ - najwyraŸniej czuje siê nieswojo w Powinnoœci, wiêc mo¿e bêdzie mu raŸniej u twojego boku. + + + I tak mamy braki kadrowe! Nie poœlê nikogo na straceñcz¹ wyprawê. + + + Mów szybko i znikaj jeszcze szybciej. Czego chcesz? + + + S³ucham. + + + Dobrze ciê widzieæ ¿ywego. + + + Mam dokumenty z fabryki Jupiter. + + + W¹tpiê, by by³o tu cokolwiek ciekawego. Fabryka zosta³a spl¹drowana, nim dotarli do niej stalkerzy. Chocia¿... jest tu coœ ciekawego. Chcê pokazaæ komuœ te dokumenty. Sprzedasz mi je? + + + Tak, weŸ wszystkie. + + + Tak, weŸ rozkaz ewakuacji. + + + Tak, weŸ protokó³ z zebrania. + + + Tak, weŸ harmonogram dostaw. + + + Tak, weŸ notatkê z warsztatu naprawczego. + + + Mo¿e innym razem. + + + Kto móg³ ukraœæ zawartoœæ osobistej skrytki? + + + Czy ja jestem stró¿em twojej skrytki? Moi ludzie na pewno jej nie okradli - nie s¹ tacy g³upi. + + + Opowiedz mi o Wolnoœci. + + + To d³uga historia. Co chcesz wiedzieæ? + + + Co tu robicie? + + + Pilnujemy, ¿eby ró¿ni oficjele nie ukrywali nic przed zwyk³ymi ludŸmi. Wiesz, jak to jest, jak tylko znajd¹ nowe laboratorium albo dokumenty rzucaj¹ce œwiat³o na tajemnice Zony, od razu organizuj¹ operacjê wojskow¹ i zbieraj¹ wszystko jak odkurzacz. Jedyny sposób, ¿eby siê czegoœ dowiedzieæ, to dotrzeæ tam wczeœniej. + + + Co sprowadzi³o was do centrum Zony? + + + Ch³opcy mieli ochotê przejœæ siê po nowej okolicy. ¯artujê. To sposobnoœæ do znalezienia rzeczy, jakich œwiat dot¹d nie widzia³. Ani armii, ani stalkerów wczeœniej tu nie by³o, wiêc gdzie tylko spojrzysz, znajdujesz coœ nowego. + + + ZnaleŸliœcie coœ? + + + Kilka zamkniêtych drzwi i dziwne nowe artefakty. + + + Jak trafi³eœ do Wolnoœci? + + + PrzyjaŸni³em siê z przywódcami Wolnoœci, kiedy nie by³o jeszcze Zony. Ale wtedy nie byli przywódcami, tylko zwyk³ymi hipisami. Kiedy przyszed³em do Zony szukaæ artefaktów i napotka³em znajome twarze, pomyœla³em, ¿e lepiej mi bêdzie wœród swoich. + + + Co s¹dzisz o Powinnoœci? + + + S¹dzê, ¿e to kretyni. Czemu chcieliby zniszczyæ Zonê? Nie poch³ania cennych zasobów ani siê nie powiêksza. Mogliby w niej siedzieæ i badaæ j¹ do woli - pomyœl, ilu odkryæ naukowych mo¿na by dokonaæ... Na przyk³ad do tej pory ludzkoœci nie uda³o siê opanowaæ antygrawitacji, prawda? A w Zonie roi siê od gotowych urz¹dzeñ antygrawitacyjnych. Nie zaszkodzi³oby wykopaæ st¹d Powinnoœæ, ale za du¿o by³oby z tym zachodu. Przy okazji, niech nie zwiod¹ ciê nasze stosunki tutaj w Janowie. Jesteœmy w stanie wojny... tyle ¿e Janów to, powiedzmy, terytorium neutralne. + + + Dobra, niewa¿ne. + + + Nie ma sprawy. + + + Chcia³em porozmawiaæ z tob¹ o jednym z twoich stalkerów. + + + Naprawdê? Wal œmia³o. Mam nadziejê, ¿e nie chcesz na któregoœ donosiæ? + + + Twój stalker Flint jest znany na Zatonie jako Sroka. Lokalni myœliwi szukaj¹ go, bo wystawi³ ich i uciek³ z ich towarem. + + + I mam w to uwierzyæ? + + + Pos³uchaj historii, które opowiada przy barze. Najpierw oszuka³ tych stalkerów, a teraz ok³amuje was. + + + Dobrze, spokojnie. Porozumiem siê z Brodaczem i zobaczê co i jak. Jeœli twoje s³owa siê potwierdz¹, policzymy siê z Flintem po swojemu. + + + Hm... Zastanawia³em siê, jak uda³o mu siê tak szybko zdobyæ ten artefakt. Po³owa jego opowieœci musia³a byæ wyssana z palca. Porozmawiam z ch³opakami. Jeœli twoje s³owa siê potwierdz¹, policzymy siê z nim po swojemu. + + + Niewa¿ne. + + + W porz¹dku. + + + Zgadzam siê. + + + Zastanowiê siê nad tym. + + + Trzymaj. + + + W porz¹dku. + + + Spotka³em grupê bojowników, którzy chc¹ wst¹piæ do Wolnoœci. + + + Zawsze jesteœmy otwarci na dobrych ludzi. Mog¹ do nas do³¹czyæ, jeœli chc¹. + + + Jest drobny problem - to byli cz³onkowie Monolitu. + + + „Drobny” problem? Cz³onków Monolitu wolê ogl¹daæ przez celownik karabinu. Inaczej nie da rady. + + + Ci s¹ pokojowo nastawieni. Byli pod czyj¹œ kontrol¹ - nie pamiêtaj¹, co siê z nimi dzia³o, odk¹d ruszyli w stronê CEJ. Nie maj¹ pojêcia, co teraz robiæ. + + + Wybacz, ale jestem sceptyczny. A jeœli celowo mnie ok³amujesz? + + + Mo¿e nie zaszkodzi porozmawiaæ z nimi i siê przekonaæ. Poœlê z tob¹ paru moich ch³opaków. Pogadaj¹ sobie i jeœli wszystko bêdzie w porz¹dku, przyjmiemy tych twoich cz³onków Monolitu. + + + Mo¿e ju¿ sobie pójdziesz, co? Jak mo¿esz sugerowaæ, ¿e przyjmiemy do Wolnoœci ka¿d¹ swo³ocz? + + + Przychodzê w sprawie przyjêcia tych ludzi z Monolitu do Wolnoœci. + + + Moi ludzie s¹ gotowi do drogi. + + + Dobrze, niech za mn¹ id¹. + + + Trochê póŸniej. + + + Zaczekajmy. Emisje szkodz¹ zdrowiu. + + + Znalaz³em PDA za³o¿yciela Powinnoœci. Jesteœ zainteresowany? + + + O ile jest na nim coœ ciekawego... O, to naprawdê interesuj¹ce. Rozg³aszaj¹ swoj¹ bzdurn¹ propagandê w ca³ej Zonie, a tu siê okazuje, ¿e ich historia jest wyssana z palca. Z chêci¹ dok³adnie siê z tym zapoznam. Dobrze ci zap³acê za ten PDA. + + + Trzymaj. + + + Dziêki. Oto pieni¹dze. + + + Zastanowiê siê nad tym. + + + WeŸ PDA za³o¿yciela Powinnoœci. + + + Dziêki. Oto pieni¹dze. + + + Naukowcy szukaj¹ ludzi do pracy. Mo¿esz do nich kogoœ wys³aæ? + + + Zale¿y, co to za robota. + + + Potrzebny jest ktoœ do ochrony bunkra naukowców. + + + Oczywiœcie, poœlê moich ch³opaków. + + + Oczywiœcie, poœlê moich ch³opaków. + + + Z chêci¹ bym pomóg³, ale s¹ tam ju¿ sukinsyny z Powinnoœci. I tak mamy ju¿ doœæ siedzenia z nimi w Janowie. + + + Dasz mi oddzia³, ¿eby pójœæ do Prypeci? + + + Porozmawiaj z naszym nowym rekrutem, W³óczêg¹. Nie jest tu szczêœliwy, wiêc mo¿e lepiej mu bêdzie z tob¹. + + + Gdybym mia³ wolnych ludzi, da³bym ci ich, ale nikogo nie mam. Wybacz. Tutaj mamy doœæ roboty. + + + Co masz do powiedzenia? + + + Z jak¹ spraw¹ przychodzisz? + + + Dobrze ciê widzieæ! W Wolnoœci s³ysza³em o tobie dobre rzeczy. Czym mogê ci s³u¿yæ? + + + Znalaz³em dziwny przedmiot w tunelu kolejowym. Jesteœ zainteresowany? + + + Hm, nie. To œmieæ. Wygl¹da jak artefakt, ale nie ma ¿adnego dzia³ania. Zwykle dajemy taki szmelc naukowcom. + + + Znalaz³em na Zatonie dziwny przedmiot, jesteœ zainteresowany? + + + Co mam z nim zrobiæ? Nawet normalne artefakty nie bardzo mnie interesuj¹. Poka¿ go naukowcom - oni dobrze p³ac¹ za wszelki szmelc. + + + Szukam ludzi do ochrony bunkra naukowców. Mo¿esz kogoœ podpowiedzieæ? + + + Nie znajdziesz nikogo lepszego od Wolnoœci. Mo¿esz spróbowaæ dogadaæ siê ze stalkerami, ale im nie mo¿na za bardzo ufaæ. Jeœli ciê zawiod¹, jak ich póŸniej znajdziesz? Zdecydowanie odradzam rozmowê na ten temat z Powinnoœci¹. Ci fanatycy nadaj¹ siê tylko do oczyszczania terenu z mutantów. + + + Szukam ludzi do zbierania próbek dla naukowców. Mo¿esz kogoœ podpowiedzieæ? + + + Oczywiœcie. Porozmawiaj z Lokim - on ci z chêci¹ w tym pomo¿e. Mo¿esz spróbowaæ dogadaæ siê ze stalkerami, ale im nie mo¿na za bardzo ufaæ. + + + Ktoœ ukrad³ zawartoœæ mojego schowka. Wiesz, kto to móg³ byæ? + + + Do czego tu ju¿ dochodzi? W¹tpiê, ¿e by³ to ktoœ z Powinnoœci, bo oni utrzymuj¹ œcis³¹ dyscyplinê, jak dla mnie za œcis³¹. Nikomu z Wolnoœci niepotrzebne twoje graty, wiêc pewnie by³ to któryœ stalker. + + + Spotka³em niedawno oddzia³ Monolitu. + + + Do licha, ja ich nigdy nie spotka³em! Ale ch³opaki opowiadali mi takie rzeczy, ¿e ciarki przechodz¹. Podobno Monolit to kompletni szaleñcy. Walka pewnie by³a ciê¿ka, co? + + + W ogóle nie by³o walki. S¹ pokojowo nastawieni. Powiedzieli mi, ¿e spad³a im zas³ona z oczu i odzyskali nad sob¹ panowanie. Nie wiedz¹, co teraz robiæ, wiêc chcê im znaleŸæ miejsce w jakiejœ frakcji. + + + A to ciekawe. Stalkerzy odpadaj¹, bo pewnie powystrzelaliby ich z powodu dawnych konfliktów... Pogadaj z Lokim. Nikt ich nie tknie, jeœli przywdziej¹ mundury Wolnoœci. + + + Kto mo¿e byæ zainteresowany prawd¹ na temat za³o¿yciela Powinnoœci? + + + Nie mam pojêcia. Zale¿y, jak bardzo ró¿ni siê ta prawda od oficjalnej wersji Powinnoœci. Poka¿ to Lokiemu, on ci dok³adniej powie. + + + Mam PDA zaopatrzeniowca Powinnoœci. Jesteœ zainteresowany? + + + Za Chiny Ludowe. Wiem, gdzie du¿o taniej mo¿na kupiæ wszystko, co sprzedaje. A poza tym nie ma tam nic ciekawego. + + + Kto móg³by ruszyæ ze mn¹ do Prypeci? + + + Do Prypeci? A niech mnie, chcia³bym móc wszystko rzuciæ i pójœæ z tob¹, ale jestem teraz bardzo zajêty... + + + Do Prypeci? A niech mnie! Poproœ Lokiego o ludzi. Takiemu poczciwcowi jak ty nie odmówi. + + + Przyszed³eœ siê odprê¿yæ? Napitki mam liche, ale atmosfera jest serdeczna i przyjacielska! + + + Mam wszystko, czego dusza zapragnie. Czego ci potrzeba? Chcesz coœ zjeœæ, wypiæ, a mo¿e postrzelaæ? + + + Szukam ludzi do ochrony bunkra naukowców. Mo¿esz kogoœ podpowiedzieæ? + + + Porozmawiaj ze stalkerami. Podejrzewam, ¿e bêd¹ chêtni do pracy dla jajog³owych... W koñcu zyskaliby oficjalne pozwolenie na pobyt w Zonie. + + + Szukam ludzi do zbierania próbek dla naukowców. Mo¿esz kogoœ podpowiedzieæ? + + + Radzi³bym nie wchodziæ w uk³ady z nieopierzonymi stalkerami. Nie doœæ, ¿e nic nie znajd¹, to jeszcze mog¹ coœ zgubiæ. + + + Spotka³em niedawno oddzia³ Monolitu i chcê ciê o coœ spytaæ. + + + Wiesz co, jak widzê kogoœ, kto siê zetkn¹³ z cz³onkami Monolitu, to zawsze ma w sobie parê dziur po kulach. Za to ty wygl¹dasz na ca³kiem ¿ywego. O co chcesz zapytaæ? + + + Ten oddzia³ jest inny. Rozmawia³em z nimi, nie walczy³em. + + + Nie mo¿e byæ! + + + Mo¿e, mo¿e. Powiedzieli mi, ¿e zas³ona spad³a im z oczu i teraz nie wiedz¹, co robiæ. Zapytali mnie o radê. + + + Ja im radzê, ¿eby trzymali siê z dala od stalkerów, bo ci maj¹ zbyt dobr¹ pamiêæ, ¿eby puœciæ ich ¿ywcem. Mo¿esz pomóc im wst¹piæ do którejœ frakcji, ale nie wiem, czy Powinnoœæ albo Wolnoœæ bêd¹ chcia³y mieæ z nimi coœ wspólnego. + + + Mam PDA z prawd¹ na temat za³o¿yciela Powinnoœci. Jesteœ zainteresowany? + + + Nie zajmujê siê plotkami, zapamiêtaj sobie. Jeœli masz informacje do sprzedania, idŸ do Sowy. On uwielbia takie rzeczy. Znowu¿ z uwagi na charakter twoich informacji mo¿e byæ nimi zainteresowany Loki albo Szulga. + + + Mam PDA zaopatrzeniowca Powinnoœci. Jesteœ zainteresowany? + + + Mam przeczucie, ¿e ten PDA oznacza k³opoty z Powinnoœci¹, a tego bym nie chcia³. Porozmawiaj z Sow¹. + + + Potrzebujê opieki medycznej. + + + Popatrzmy... + + + Ju¿ lepiej. + + + Kto móg³by ruszyæ ze mn¹ do Prypeci? + + + Porozmawiaj ze stalkerem Wano. Jest czysty jak ³za, do tego stopnia, ¿e ci¹gle wpada przez to w tarapaty. + + + Nie ma tu zbyt wielu wariatów, wiêc bêdziesz musia³ poszukaæ gdzie indziej. + + + Szukasz œrodków medycznych czy przyszed³eœ pogadaæ? + + + Ktoœ ukrad³ zawartoœæ mojego schowka. Wiesz, kto to móg³ byæ? + + + Wiesz, jak nazywa siê ten stalker? + + + Podobno jest tu doœæ nowy... Jak on siê nazywa, zaraz... Str¹k? Stek?... Nie, nie. To coœ zwi¹zanego z drewnem... Sêk, o w³aœnie! Nazywa siê Sêk. + + + Czeœæ, brachu. + + + Czeœæ. Mam do ciebie wa¿n¹ sprawê. + + + Super, najpierw siê napijmy, ¿ebyœmy mogli potraktowaæ tak wa¿n¹ sprawê z nale¿yt¹ powag¹! + + + Dobrze, napijmy siê! + + + Nie, nie mam teraz ochoty. + + + Co to za sprawa? + + + Zamierzam wyruszyæ do Prypeci tunelem, który przechodzi pod fabryk¹ Jupiter. Azot mo¿e otworzyæ wejœcie. + + + Hm... Wyprawa tunelem do Prypeci... Ciekawy pomys³... Trzeba go opiæ. + + + Do dna! + + + Ech, dobrze wchodzi. Mam nadziejê, ¿e nie zamierzasz ruszyæ w tak¹ misjê sam? Nie... Tak siê nie da... Pójdê z tob¹.... Potrzebny bêdzie jeszcze ktoœ. Na takiej wyprawie zawsze przyda siê parê godnych zaufania osób... + + + Azot poradzi³ mi, ¿ebym zebra³ oddzia³... + + + Tak, to dobry pomys³... Napijmy siê za powodzenie misji... + + + Twoje zdrowie! + + + Da³bym radê sam... na Zatonie bez niczyjej pomocy za³atwi³em pijawkê... Parê butli z gazem i po sprawie. + + + Zuch z ciebie. Wypijmy, ¿eby butla z gazem zawsze by³a pod rêk¹. + + + Tak jest! + + + Godnych zaufania? Tutaj pe³no mêtów... na Zatonie spotka³em handlarza, okaza³o siê, ¿e jest z Powinnoœci... + + + No patrz, to i Powinnoœæ gnije od œrodka... Do czego to dosz³o? Trudno, nie zawracajmy sobie tym g³owy i napijmy siê. + + + Co racja, to racja. Zdrowie. + + + Uch... wchodzi jak woda, co? Oddzia³ to dobry pomys³, potrzebujemy co najmniej trzech ludzi... Myœlisz o kimœ konkretnym? + + + Znajdê kogoœ... Bêdziemy te¿ potrzebowaæ kombinezonów z aparatami tlenowymi o zamkniêtym obiegu. + + + Tak, bezpieczeñstwo przede wszystkim... Jeœli o to chodzi, nie przejmuj siê, bo mój kombinezon siê nada, ale dla innych bêdziemy musieli poszukaæ - nie bêdzie ³atwo, bo takie kombinezony to rzadkoœæ. Za udane poszukiwania. + + + Zdrowie. + + + Znasz niejakiego Noego? Zamkn¹³ siê na barce z mnóstwem ró¿nego towaru... Na przywitanie wali do ciebie z dwururki. + + + Tak, nie widzia³em go jakiœ czas. Kiedyœ pracowaliœmy razem. Potrafi³ walczyæ... Szkoda, ¿e tak mu odbi³o. Wypijmy za niego, ¿eby mu siê u³o¿y³o pod kopu³¹. + + + Za Noego! + + + Jakiœ czas temu spotka³em w Janowie Wano. Nie móg³ sp³aciæ d³ugu bandytom... Pomog³em biedakowi... + + + W porz¹dku, na pewno bêdzie z nim weselej, poza tym mo¿e dŸwigaæ zapasy. Za Wano! + + + Wypijmy za to! + + + W bunkrze naukowców jest ¿o³nierz... Nie ma nic do roboty, mo¿e siê zgodzi... + + + Tak, wojskowy mo¿e siê przydaæ... Wypijmy za to, ¿eby siê zgodzi³. + + + Zdrowie. + + + Nie uwierzysz, ale ostatnio pomog³em oddzia³owi Monolitu... Nagle nastawi³y im siê poluzowane klepki czy coœ i nie wiedzieli, co robiæ... Pomog³em im i teraz siedz¹ w Janowie. + + + Hm... Widzê, ¿e wódka nieŸle da³a ci w dekiel. Muszê ci odt¹d nalewaæ po pó³. To cyk! + + + No to cyk. + + + To by by³o z grubsza tyle - najwa¿niejsze, ¿ebyœmy siê nie zgubili pod ziemi¹... + + + Nie bój siê - mam plany. + + + Super. Napijmy siê jeszcze za powodzenie misji. + + + Zdrowie! + + + Spokojnie... Niedawno znalaz³em Oazê... Tê sam¹, do której nikt inny nie móg³ dotrzeæ... + + + Ale¿ z ciebie tropiciel. Z tob¹ bez problemu znajdziemy drogê do Prypeci. Zdrówko. + + + Zdrówko. + + + Czeœæ! + + + Mamy ju¿ chyba doœæ ludzi. Mo¿emy ruszaæ. + + + Na pewno? Kolejna para r¹k by nie zaszkodzi³a. + + + Na pewno. ChodŸmy. + + + Masz racjê. Spróbujê znaleŸæ kogoœ jeszcze. + + + Dobrze. Ruszamy! + + + ChodŸmy. + + + Ludzie to jedna sprawa, ale czy zadba³eœ o swoje bezpieczeñstwo? Potrzebujesz kombinezonu z aparatem tlenowym o zamkniêtym obiegu... Nie bêdê ci¹gn¹³ twojego trupa - moja rusznica i amunicja wa¿¹ wystarczaj¹co du¿o. + + + Jasne. + + + Zaczekajmy. Emisje szkodz¹ zdrowiu. + + + Gdzie znajdê ludzi do naszego oddzia³u? + + + Popytaj ludzi w okolicach Jupitera... Ci, którzy zostali na Zatonie, na pewno nie wybior¹ siê do Prypeci. Potrzebujemy ludzi, których nic tu nie trzyma... Musz¹ siê zgodziæ na desperack¹ misjê. Pamiêtasz, czy spotka³eœ kogoœ takiego? Mo¿e ktoœ jest ci coœ d³u¿ny albo znasz kogoœ, kto nie zapuœci³ korzeni... + + + Wystarczy nam ju¿ ludzi. Nie zbieramy dywizji... Pos³u¿ymy siê taktyk¹ ma³ych oddzia³ów. + + + Co s¹dzisz o W³óczêdze? + + + Ludzie Monolitu to zwykle zaciekli, fanatyczni bojownicy... Nie wiem, czy z by³ymi cz³onkami jest tak samo. Z wierzchu W³óczêga wygl¹da na spokojnego, ale pozory myl¹. + + + A niech to! Pancerz Monolitu. Sk¹d go wytrzasn¹³eœ? + + + By³ w komplecie. To jest W³óczêga, by³y cz³onek Monolitu. + + + Nie s¹dzi³em, ¿e istniej¹ „byli” cz³onkowie Monolitu. No nic, przekonamy siê, co potrafi, jak przyjdzie co do czego. + + + Co s¹dzisz o Soko³owie? + + + Ma ciekawy kombinezon, taki naukowy. Nie widzia³em takiego ju¿ ³adnych parê lat. + + + To Soko³ow, drugi pilot rozbitego œmig³owca wojskowego. + + + Widaæ po nim, ¿e ¿aden z niego naukowiec. Dobry ¿o³nierz zawsze siê przyda. + + + Od dawna znasz Wano? + + + Spotkaliœmy siê parê razy w barze „100 Radów”. Mówi¹, ¿e to uczciwy cz³owiek, optymista i do tego dobry stalker... Ale jest zbyt ³atwowierny, a w Zonie to zgubna wada. + + + A wiêc idzie z nami Wano? Œwietnie, nie bêdziemy musieli sami taszczyæ zapasów... Spokojnie, ¿artujê tylko. + + + Kto móg³ ukraœæ zawartoœæ osobistej skrytki? + + + Ukradli ci coœ? Pech. Nie wiem, co powiedzieæ. Nie widzia³em tu nic podejrzanego... Jeœli siê czegoœ dowiem, na pewno dam ci znaæ. Nie potrzebujemy szczurów w naszej bazie. + + + Podobno gdzieœ tu dosz³o niedawno do strzelaniny... + + + Tak, to ja strzela³em. Jacyœ idioci zebrali siê pod wie¿¹... Zaczêli siê k³óciæ i wrzeszczeæ. Puœci³em parê serii ze starego kaemu i dali drapaka w kierunku podstacji. I tak siê skoñczy³o sympozjum kretynów. + + + Postanowi³em oddaæ artefakt z Oazy. + + + Rozs¹dnie - daj mi go. + + + Proszê. + + + Œwietnie, trzeba natychmiast zbadaæ to cudo... Przy okazji, dziêkujê za trud - masz tu zap³atê. + + + Potrzebujecie jakiejœ pomocy? + + + Dziêkujê, pracuje ju¿ dla nas oddzia³ stalkerów. Chocia¿... Istnieje pewna teoria, w³aœciwie raczej legenda... S³ysza³eœ kiedykolwiek o Oazie? + + + Spróbujê znaleŸæ Oazê. + + + Przepraszam, w tej chwili mam za du¿o na g³owie. + + + Nie, nie s³ysza³em o niej. + + + Wiêc pos³uchaj. Wielu ludzi o niej mówi, ale najwyraŸniej nikt jej nie widzia³. Jest jak uzdrawiaj¹ce Ÿróde³ko. Kiedy do niej wejdziesz, goj¹ ci siê rany i odzyskujesz si³y. Kr¹¿y wiele plotek, a ka¿da bzdurniejsza od poprzedniej... Niektórzy twierdz¹, ¿e widzieli Oazê w snach... Jako naukowiec muszê jednak zapytaæ: sk¹d wiesz, ¿e to naprawdê by³a Oaza? Jeœli zgodzisz siê jej poszukaæ... Nie obiecujê wysokiej nagrody, ale jeœli Oaza istnieje, odkrycie jej pomo¿e nam wykonaæ du¿y krok naprzód w naszych badaniach. + + + Znalaz³em Oazê. + + + Naprawdê? Wiêc jednak istnieje? Wybacz mój sceptycyzm, ale masz jakiœ dowód? + + + Tak, znalaz³em tam coœ. Wygl¹da jak artefakt. + + + Daj mi go szybko! + + + Trzymaj. + + + Œwietnie, trzeba natychmiast zbadaæ to cudo... Przy okazji, dziêkujê za trud - masz tu zap³atê. + + + Nic z tego. Mo¿e mi siê przydaæ. + + + To bardzo egoistyczne. Nie mówi¹c ju¿, ¿e niebezpieczne. W³aœciwoœci tego artefaktu nie s¹ znane. Co zrobisz jutro, jeœli siê oka¿e, ¿e nie masz czucia w nogach? Albo skóra ci zzielenieje? Zapewniam ciê, ¿e takie przedmioty najlepiej oddaæ w opiekê naukowcom - my przynajmniej próbujemy odpowiednio siê zabezpieczyæ. + + + Nie przestraszysz mnie. Zatrzymam artefakt. + + + Dobrze ju¿. WeŸ go. + + + Nie. + + + Nie przynios³eœ nic? To co mam badaæ? Wiesz, co odró¿nia naukowców od innych? My musimy poprzeæ ka¿d¹ teoriê faktami! Potrzebujê dowodów! + + + Dobrze, wrócê tam. + + + I tak d³ugo mi siê przy tym zesz³o. Nie mogê tam teraz wróciæ. + + + Jeœli nie zale¿y ci na zap³acie, pomyœl o nowych mo¿liwoœciach, jakie Oaza da³aby medycynie! Jeœli siê nie mylê, Oaza ma naturê anomalii... tak to ju¿ w Zonie jest. Jeœli to prawda, by³aby to pierwsza anomalia o w³aœciwoœciach leczniczych! + + + Co ciê tu sprowadza? + + + Widzia³eœ najemników, którzy nas strzeg¹? + + + Jak cudownie zobaczyæ inteligentn¹ osobê. W czym mogê ci pomóc? + + + WyobraŸ sobie, ¿e najemnicy, którzy nas ochraniali, zostali zabici przy samym bunkrze! + + + Herman, wiesz cokolwiek na temat Oazy? + + + Oazy? To wszystko zwyk³e k³amstwa. Ludzie lubi¹ wierzyæ w panacea, wiêc wymyœlaj¹ takie bajki. Uwierz mi, Oaza to tylko wytwór czyjejœ wybuja³ej wyobraŸni. + + + Wielu ludzi o niej mówi. + + + Zbyt wielu. A ¿aden z nich nigdy w niej nie by³. Trzymam siê naukowego punktu widzenia: czego istnienia nie udowodniono, to nie istnieje. + + + Aha, rozumiem... Dziêkujê. + + + Dobrze. ChodŸmy. + + + Super... Nie zorientujesz siê, kiedy bêdziemy z powrotem. + + + Zobaczymy. + + + Super... Ale poczekajmy, a¿ przejdzie emisja, i dopiero ruszymy. + + + Dzieñ dobry, stalkerze. Jestem Wujek Jar... Pewnieœ zmêczony z drogi... Z³ap coœ na z¹b, skoro ju¿ tu jesteœ. Pojawi³eœ siê w dobrym momencie - potrzebujê pomocy. W tym wieku nie wszystko ju¿ mogê zrobiæ sam. Nie to co kiedyœ... + + + Czujesz siê odœwie¿ony? Masz ochotê na spacer? Pomóg³byœ starszemu cz³owiekowi... + + + Jak ¿yjesz? Z ka¿dym dniem wygl¹dasz lepiej... + + + Co to za robota? + + + To proœcizna... Przejdziemy siê we dwóch do wioski Kopaczi - to niedaleko st¹d. Jak bêdziemy na miejscu, wszystkiego siê dowiesz... + + + A przyjaciele z Wolnoœci nie mog¹ ci pomóc? + + + Nie chcê zawracaæ im g³owy takimi bzdurami... Poradzimy sobie we dwóch. + + + Pójdziesz ze mn¹ do Prypeci? + + + Nie... Gdybym by³ m³odszy... Kiedyœ chodzi³em na Syberiê i z powrotem, ale ostatnio staram siê zbytnio nie oddalaæ... Staroœæ nie radoœæ. + + + Trzymaj siê. + + + Czekaj. Jeœli idziesz do Janowa, mo¿e moglibyœmy iœæ razem? Mi³o mieæ do kogo gêbê otworzyæ... + + + Dziêkujê, wola³bym iœæ sam. + + + ChodŸmy do Janowa. + + + Dziêkujê za pomoc... WeŸ to. Jeœli masz jakieœ pytania, nie powstrzymuj siê. Postaram siê odpowiedzieæ... + + + Czemu nie poprosi³eœ ludzi Wolnoœci o pomoc? + + + Po co nastawiaæ najemników przeciw Wolnoœci? Mieliœmy jedn¹ wojnê i wystarczy. To sprawa osobista... Nie ma co ich do tego mieszaæ. + + + Co tu siê w ogóle wydarzy³o? + + + Paru ch³opców przysz³o mnie zabiæ... Siedzia³em w krzakach, nie wadz¹c nikomu, kiedy pojawi³ siê oddzia³ najemników. Ich przywódca gada³ przez PDA o centralnym laboratorium w Prypeci, nag³ym zamówieniu i tak dalej... Wtedy przypadkiem stan¹³em na jakimœ patyku i zwróci³em na siebie ich uwagê. Z³apa³em karabin i da³em chodu, ale nie opuszcza³o mnie uczucie, ¿e przyjd¹ po mnie. Tak¹ siê teraz cenê p³aci za pods³uchiwanie. + + + Najwa¿niejsze, ¿eby nie daæ siê niczemu zaskoczyæ. IdŸ za mn¹ po cichu... Jeœli nie narobimy ha³asu i nie bêdziemy za bardzo siê ruszaæ, pójdzie g³adko. + + + Dobrze. + + + Musimy st¹d zwiewaæ. Porozmawiamy póŸniej. + + + Dobrze. + + + Zbieram oddzia³ na wyprawê do Prypeci. Chcesz siê przy³¹czyæ? + + + Kusz¹ce, ale podziêkujê. Naukowcy obiecali mi zezwolenie na pobyt w Zonie, a p³ac¹ te¿ nieŸle. Przykro mi, zostanê tutaj. + + + Gotowi do wykonywania pomiarów w anomaliach? + + + Zawsze jesteœmy gotowi, jeœli bêdziesz nas os³aniaæ. Do której anomalii idziemy? + + + IdŸmy do Mokrad³a. + + + IdŸmy za Kopaczi do Popieliska. + + + Chwila, zmieni³em zdanie, nie chcê jeszcze ruszaæ. + + + Jesteœmy gotowi, ale raczej powinniœmy zaczekaæ, a¿ emisja przejdzie... + + + Dobrze. + + + Pomiary wykonane, idziemy dalej. + + + Mnie te¿ siê tu nie podoba. Dok¹d teraz? + + + IdŸmy do Mokrad³a. + + + IdŸmy za Kopaczi do Popieliska. + + + Do bunkra naukowców. + + + Chwila, niech siê zastanowiê. + + + Gotowi na powrót do bunkra? + + + W ka¿dej chwili mo¿emy ruszaæ... + + + W takim razie chodŸmy. + + + Dobrze, zaczekajcie na mnie chwilê. + + + Mam kilka pytañ. + + + Wiêc pytaj, a ja postaram siê odpowiedzieæ. + + + To ju¿ wszystko. + + + Chcê zapytaæ o misjê naukowców. + + + Ach, tunel... Tam coœ jest, dziwny artefakt albo coœ takiego. To miejsce jest bardzo dziwne. Najpierw by³o tam spokojnie, a potem zacz¹³em coœ czuæ w g³owie... Roi³o siê tam te¿ od chomików, ale nimi siê nie przejmuj - ³atwo sobie z nimi poradzimy. + + + By³eœ tam ju¿? + + + Tak. Nie weszliœmy g³êboko - robiliœmy pomiary dla Hermana, kiedy wyskoczy³a zgraja chomików. Jak wróciliœmy, naukowcy tak siê podjarali wynikami, ¿e myœleliœmy, ¿e odlec¹. Chcieli, ¿ebyœmy przeszukali caluœki tunel, ale ja tam nie wejdê. Teraz zatrudnili ciebie, a my mamy ciê tylko os³aniaæ. + + + Rozumiem. + + + Wykonywaliœmy wczeœniej pomiary, wiêc damy sobie radê. + + + Gdzie wykonywaliœcie te pomiary? + + + Pomiary to du¿o powiedziane. Na powa¿nie robiliœmy to tylko raz - mierzyliœmy anomaliê pola psionicznego w tym cholernym tunelu. Wtedy te¿ jak tylko w³¹czyliœmy urz¹dzenia, z ka¿dej dziury zaczê³y wy³aziæ dziesi¹tki chomików. Bu³awie ma³o jajek nie odgryz³y. + + + Nie wydaje ci siê to dziwne? + + + Nie, a niby czemu? Zona nie lubi wœcibskich ludzi, wiêc to nic dziwnego. Oziorski mi tak kiedyœ powiedzia³ i widaæ, ¿e jego s³owa siê sprawdzi³y. Jeœli chcesz, zapytaj go, mo¿e coœ wie, tylko nie chce siê tym podzieliæ z reszt¹. + + + Jasne. + + + Rozumiem. + + + Mo¿esz opowiedzieæ mi o mieszkañcach bunkra? + + + To niez³a zbieranina... Dwóch naukowców - Herman, tutejszy szef, i Oziorski. Zatrudniaj¹ Nowikowa, który zajmuje siê sprawami technicznymi, a Garri jest ich przewodnikiem. No i jesteœmy my - zatrudnili nas niedawno do pomiarów i innych naukowych rzeczy. Jest jeszcze wojak, którego niedawno przyprowadzi³ Garri. + + + Mo¿esz opowiedzieæ mi o Hermanie? + + + Herman jest tu szefem - to profesor jakiegoœ instytutu, pewnie tajnego... To on zorganizowa³ tê ekspedycjê. Ich bunkier pojawi³ siê tu zaraz po wy³¹czeniu Mózgozwêglacza. On te¿ zatrudni³ Garriego i mnie - p³aci nieŸle, poza tym obieca³ nam oficjalne zezwolenie na pobyt w Zonie. + + + Porozmawiajmy o czymœ innym. + + + Mo¿esz opowiedzieæ mi o Oziorskim? + + + Dobry z niego cz³owiek, towarzyski, jest tu numerem dwa. Herman czasem nawet s³ucha jego rad. Nie wiem o nim wiele wiêcej - zazwyczaj mamy do czynienia z Hermanem. + + + Mo¿esz opowiedzieæ mi o Nowikowie? + + + Jest jak Einstein na wakacjach, tyle ci powiem. To z³ota r¹czka w kwestiach instalacji technicznych, drugiego takiego nie znajdziesz. Nie wiem, jak trafi³ tutaj, ale widaæ, ¿e Zona nie jest mu obca - wie o niej wiêcej ni¿ my. + + + Mo¿esz opowiedzieæ mi o Garrim? + + + Garri to cz³owiek dusza. Pojawi³ siê tu jako jeden z pierwszych. Powiedzia³ mi, ¿e akurat przylecieli naukowcy, jak tu dotar³, wiêc od razu do nich do³¹czy³. Ostatnio siê nudzi, bo nie lubi siedzenia na ty³ku, ale nie mo¿e odejœæ przed koñcem kontraktu z naukowcami. Jeœli chcesz wiedzieæ coœ wiêcej, zapytaj go. + + + Opowiedz mi o ¿o³nierzu. + + + Ha. Garri znalaz³ go uciekaj¹cego przed zombi. Mia³ szczêœcie, ¿e trafi³ na Garriego, bo inni pewnie by go rozwalili. Teraz nie wyœciubia nosa z bunkra i wcale mu siê nie dziwiê. + + + Co tu robi¹ najemnicy? + + + Te zbiry pilnuj¹ bunkra. Pojawili sie jakiœ czas temu, pogadali z Hermanem i ju¿ zostali. Mam wra¿enie, ¿e Herman te¿ nie jest z nich zbyt zadowolony... Ich przywódcê nazywaj¹ Czarnym i taki te¿ ma charakter. + + + Co mo¿esz mi opowiedzieæ o tej okolicy? + + + Niedaleko st¹d jest stara baza wojskowa. Na pó³noc od niej jest wioska Kopaczi, a na wschód od wioski jest stacja kolejowa, na której siedz¹ stalkerzy. Poza tym niedaleko na torach stoi poci¹g... To niezbyt mi³e miejsce... + + + Opowiedz mi o bazie wojskowej. + + + Nie ma o czym opowiadaæ... Wszystko, co mia³o jak¹œ wartoœæ, dawno rozgrabiono, wiêc teraz jest tam niewiele poza mutantami i zombi. Stoi tam te¿ ma³y bunkier - wystarczy, ¿eby ukryæ siê przed emisj¹. + + + Opowiedz mi o wiosce. + + + Co z niej za wioska? Jest tam tylko kilka pagórków. W '86 zasypano j¹, ¿eby nie emitowa³a promieniowania. Ludzie tam teraz nie chodz¹, bo to szkodzi zdrowiu, a nie ma tam nic cennego. + + + Opowiedz mi o stacji kolejowej. + + + Mo¿esz powiedzieæ mi coœ o poci¹gu? + + + Stacjê Janów warto odwiedziæ, jeœli jeszcze tam nie by³eœ. Mo¿na tam wypiæ kielicha i pogadaæ z innymi stalkerami, poza tym to jedyne bezpieczne miejsce w tej okolicy, nie licz¹c naszego bunkra. + + + Widzê, ¿e masz nowy sprzêt. + + + Tak jest! Jesteœmy teraz oficjalnie znani jako naukowo-operacyjna grupa badawcza Iskra. Nie myœl sobie, ¿e jak zostaliœmy naukowcami, to zapomnieliœmy o tobie. Odbyliœmy z kolegami naradê i doszliœmy do wniosku... ¿e nale¿y ci siê to! Jeœli wejdziesz w anomaliê lub, nie daj Bo¿e, dopadnie ciê emisja, przeœlij nam podziêkowania. Nie bój siê, odbierzemy wiadomoœæ! + + + Czo³em. + + + Czeœæ. + + + Jesteœ gotów ruszaæ czy zaczekamy jeszcze? + + + Myœla³em, ¿e zostanê w tym tunelu przemieniony w zombi. Jak mogê pomóc cz³owiekowi, który mnie uratowa³? + + + Masz ochotê rozprostowaæ nogi? + + + Czeœæ, bracie. + + + Jesteœmy ci d³u¿ni, nie zapomnê tego. + + + Czujê, ¿e tutaj nic ju¿ po nas i czas siê st¹d wynieœæ... + + + O co chodzi z tym tunelem? + + + Nie ma tam w ogóle kurzu, ani odrobinki. Herman mówi, ¿e to przez Teslê, ale mnie siê nie chce wierzyæ. + + + Zapytaj szefa, nie wiem, co mogê ci powiedzieæ, a czego nie wolno mi wyjawiæ. + + + Powiedz mi, co odkryliœcie, mierz¹c pole psioniczne. + + + Widzia³em na ziemi odciski stóp. Wygl¹da³y jak ludzkie, ale kto by³by na tyle szalony, ¿eby chodziæ tam boso? + + + W g³owie siê cz³owiekowi miesza, a wszystko, na co spojrzysz, przybiera dziwne kszta³ty. To przez to pole psioniczne, rozumiesz. + + + Co znaleŸliœcie pod ziemi¹? + + + Niewiele, tylko parê martwych chomików. + + + Hm... Nic, czego nie da siê znaleŸæ w innych miejscach Zony. + + + Dobrze siê czujesz? + + + W normie, dziêki tobie! Dam ci wspó³rzêdne pewnego miejsca. Wszystko, co tam znajdziesz, jest twoje - niewiele tego, ale oddajê ci to z wdziêcznoœci. + + + Jak siê czujesz? + + + Cz³owieku, wielkie dziêki! Gdyby nie ty... Brak mi s³ów. WeŸ wspó³rzêdne naszego schowka na znak mojej wdziêcznoœci. + + + ¯yjesz? + + + Dziêkujê, nie zapomnê ci tego. WeŸ wspó³rzêdne naszego schowka - nale¿¹ ci siê... + + + Twój mózg jeszcze dzia³a? + + + Cholera, co ja widzia³em, jak by³em... Nie otrz¹snê siê z tego do koñca ¿ycia... + + + To co, wracamy do bunkra? + + + Jasne! + + + ChodŸmy. + + + IdŸcie sami, spotkamy siê tam. + + + Wasz oddzia³ jest gotów wejœæ do tunelu? + + + W ka¿dej chwili. + + + No to ju¿. ChodŸmy. + + + Zaczekajcie jeszcze. + + + Pójdê sam. Spotkamy siê na miejscu. + + + Pójdê sam. Spotkamy siê na miejscu. + + + Nie, nie ufamy ci, a czas to pieni¹dz, wiêc albo pójdziesz z nami, albo siê st¹d nie ruszymy. + + + W takim razie chodŸmy. + + + W takim razie musicie poczekaæ. + + + Nic z tego... Nie bêdziemy ryzykowaæ podczas emisji. + + + No to jesteœmy. + + + To co, zaczynamy? + + + Tak, oczywiœcie. + + + Niech no siê rozejrzê. + + + Czego chcesz, do cholery? + + + Tylko przechodzi³em. + + + To idŸ dalej. + + + Ju¿ idê. + + + Spokojnie, kretynie. + + + Nie twoja sprawa! + + + O, czeœæ. + + + ¯wawy powiedzia³ mi, ¿e podstêpny z ciebie typek. Musia³eœ ju¿ oszukaæ niejednego stalkera. + + + O czym ty mówisz? Nigdy w ¿yciu czegoœ takiego nie zrobi³em! ¯wawy ma nierówno pod sufitem! + + + Co powiedzia³eœ o mnie bandytom? Czemu czekali na mnie przy dŸwigach portowych? + + + Musia³eœ mnie z kimœ pomyliæ - nie zadajê siê z bandytami! + + + ¯wawy powiedzia³ mi o tobie... Radzê ci oddaæ mi spluwê po dobroci, tak bêdzie lepiej dla nas obu. + + + Co on ci nagada³? Nie mam nic, co nie jest moj¹ w³asnoœci¹! + + + Spadaj, kole¿ko... + + + Pomó¿ mi, brachu - potrzebujê apteczki! + + + Powiedz mi najpierw, gdzie s¹ moje rzeczy! + + + Wybacz, bardzo potrzebowa³em pieniêdzy... Powiem ci wszystko, tylko mi pomó¿! Przysiêgam, skoñczy³em z tym, bêdê juz uczciwy! + + + Dobrze, trzymaj. + + + Dziêki! Ukry³em towar w moim schowku w kana³ach za podstacj¹. + + + Rozumiem. + + + Nie wierzê ci. Nie dostaniesz apteczki. + + + Trzymaj. + + + Nie dostaniesz jej. + + + Dziêki. Nie s¹dzi³em, ¿e mi pomo¿esz. + + + Kogo mo¿na wynaj¹æ do ochrony naukowców? + + + Powinnoœæ, oczywiœcie, kogó¿by innego! To najlepsi bojownicy w Zonie! Ciê¿ka stra¿ szturmowa - jak to brzmi? + + + W tej chwili zatrudniaj¹ Wolnoœæ? W takim razie nie wiem. Mia³em zaproponowaæ Powinnoœæ, ale oni siê gryz¹ miêdzy sob¹. + + + Kto mo¿e wykonaæ pomiary dla naukowców? + + + Porozmawiaj z Szulg¹. Nie wszyscy u niego s¹ naukowymi ekspertami, ale jest tam paru bystrych ch³opaków. + + + Wci¹¿ p³ac¹ Wolnoœci za ochronê? Jeœli tak, odradzam zatrudnianie Powinnoœci... Nic wiêcej ci nie doradzê. + + + Jak dotarliœmy do tunelu, winda przesta³a dzia³aæ... + + + Ha, wykorzystaliœcie jedyny dzia³aj¹cy generator, w dodatku zapasowy. Ledwo go uruchomi³em, wiêc zrobi³ swoje i wysiad³. Powinniœcie byæ wdziêczni, ¿e nie przesta³ dzia³aæ w pó³ drogi... Z tej windy nie ma wyjœcia awaryjnego! + + + Kto móg³ ukraœæ zawartoœæ osobistej skrytki? + + + Do licha, naprawdê nie wiem. Powiem ci tylko, ¿e gdyby w Janowie rz¹dzi³ Szulga, nie dosz³oby do tego. + + + Potrafisz w³amaæ siê do stalowego kontenera? + + + Nie jestem kasiarzem. Nie pracujê w metalu... PrzyjdŸ do mnie, jeœli masz k³opoty z elektronik¹. + + + Grupa pokojowo nastawionych cz³onków Monolitu szuka azylu. Kto mo¿e im pomóc? + + + Mówisz powa¿nie? S³ysza³em, ¿e to zwierzêta... Stalkerzy nie dadz¹ im ¿yæ, to na pewno... Powinieneœ porozmawiaæ z Szulg¹. Jeœli podpu³kownik wpuœci ich do Powinnoœci, bêd¹ bezpieczni. Mo¿e nawet znajd¹ jakieœ po¿yteczne zajêcie. + + + Potrafisz odszyfrowaæ czarn¹ skrzynkê? + + + Niech popatrzê... Bêdzie przy tym trochê pracy. Potrwa to ze trzy godziny i bêdzie niema³o kosztowaæ. Zrobiê, co trzeba, i porozmawiamy... IdŸ siê przejœæ, dopóki nie skoñczê, ¿ebym móg³ siê skupiæ. + + + Niech popatrzê... Bêdzie przy tym trochê pracy. Potrwa to ze trzy godziny i bêdzie niema³o kosztowaæ. Zrobiê, co trzeba, i porozmawiamy... A tym czasem mo¿e poszukasz potrzebnych mi komponentów? Zarobisz trochê, a ja dam ci rabat na tê robotê. + + + Co? Jeszcze nad tym pracujê. Ta skrzynka to koszmar... + + + Rozpracowa³em twoj¹ czarn¹ skrzynkê... Niech szlag trafi tak¹ robotê... + + + Ile ci jestem winien? + + + Co najmniej 3000. + + + Proszê. + + + Nie mam tyle. + + + Mogê daæ ci zni¿kê, jeœli przyniesiesz mi komponenty. + + + W razie czego przychodŸ. + + + Trochê drogo... Muszê siê zastanowiæ. + + + Dam ci zni¿kê. Tylko 2850. + + + Dam ci zni¿kê. Tylko 2700. + + + Dam ci zni¿kê. Tylko 2550. + + + Dam ci zni¿kê. Tylko 2400. + + + Dam ci zni¿kê. Tylko 2250. + + + Dam ci du¿¹ zni¿kê. Tylko 2100. + + + Dam ci du¿¹ zni¿kê. Tylko 1950. + + + Dam ci du¿¹ zni¿kê. Tylko 1800. + + + Taniej siê nie da. Tylko 1650. + + + Ha, nie mam pojêcia, na co ci to nagranie, ale za tak¹ cenê oby by³o u¿yteczne. + + + Zobaczymy. + + + Wci¹¿ pracujê nad czarn¹ skrzynk¹... Mo¿e siê do czegoœ przydasz i zdobêdziesz mi te komponenty? + + + Senka? Jak szed³em przez Zaton, Senka przy³¹czy³ siê do mnie i odt¹d ze mn¹ jest... To zawodowy pijaczyna z wieloletnim doœwiadczeniem... Ha, ha! Wykorzystujê go do drobnych prac typu przynieœ, podaj, pozamiataj... + + + Kto mo¿e byæ zainteresowany informacjami na temat za³o¿yciela Powinnoœci? + + + Oczywiœcie Szulga... Powinnoœæ pamiêta swoje pocz¹tki. Wiesz, co mówi¹: kto nie zna przesz³oœci, jest skazany na jej powtarzanie... Rzecz w tym, ¿eby Wolnoœæ nie dosta³a tych informacji w swoje rêce, bo na pewno je zafa³szuj¹. Nie przez z³e zamiary, tylko przez s³ab¹ pamiêæ... + + + Przynios³em ci narzêdzia. + + + Œwietnie... Które s¹ dla mnie? + + + Te podstawowe. + + + Doskonale! Teraz potrzebujê jeszcze narzêdzi do precyzyjnej pracy i do kalibracji... + + + Te do precyzyjnej pracy. + + + Doskonale! Teraz potrzebujê jeszcze podstawowych narzêdzi i narzêdzi do kalibracji... + + + Te do kalibracji. + + + Doskonale! Teraz potrzebujê jeszcze narzêdzi podstawowych i tych do precyzyjnej pracy... + + + Na razie ¿adne. + + + Super! Jeszcze narzêdzia do kalibracji i bêdê mia³ komplet. + + + Super! Jeszcze narzêdzia do precyzyjnej pracy i bêdê mia³ komplet. + + + Super! Jeszcze narzêdzia podstawowe i bêdê mia³ komplet. + + + A niech mnie! Gdzie je znalaz³eœ! + + + Jeœli potrzebujesz narzêdzi, mogê je zdobyæ. + + + By³oby œwietnie. W tej chwili pracujê jak w epoce kamiennej. Jedyna ró¿nica jest taka, ¿e mam lutownicê zamiast szamañskiego kostura... Gdybym mia³ narzêdzia, móg³bym zrobiæ niez³e ulepszenia, a i tobie coœ z tego by wpad³o... + + + Dobrze. Poszukam ich. + + + Zmieni³em zdanie. + + + Dobry pomys³. Bêdê móg³ robiæ ulepszenia, a ty zarobisz. + + + Mam PDA handlarza Powinnoœci. Znasz kogoœ, kto by³by nim zainteresowany? + + + Handlarz w Powinnoœci? Nie mogê... Daj PDA Szuldze, a on siê tym zajmie. Ani s³owa Wolnoœci, rozumiesz? Pos³u¿¹ siê jednym ³osiem, ¿eby popsuæ reputacjê ca³ej frakcji... + + + Znalaz³em dokumenty. Opisuj¹ drogê do Prypeci. + + + Popatrzmy... Tak, tak, tak... Krótko mówi¹c, pod Prypeci¹ biegnie tunel o nazwie Prypeæ 1, którego jeden odcinek koñczy siê œluz¹ w czêœci transportowej fabryki Jupiter. Niesamowite! S¹dz¹c z tych notatek, zosta³ szczelnie zamkniêty i wype³niony gazem, oprócz tego odciêto zasilanie. Móg³bym spróbowaæ uruchomiæ generator i otworzyæ œluzê. Tyle ¿e... + + + Tyle ¿e nie przejdê przez Jupiter bez zabezpieczenia, a tobie nie radzê myœleæ o zejœciu pod ziemiê w pojedynkê. Potrzebujesz przynajmniej paru ludzi. Wszystkim bêd¹ potrzebne kombinezony z aparatami tlenowymi o zamkniêtym obiegu, bo inaczej nie wytrzymacie tam minuty... S³uchaj, na wie¿y niedaleko st¹d mieszka Zulus - spróbuj z nim porozmawiaæ. Jeœli siê dogadacie, powie ci, jak zebraæ oddzia³. + + + Wspomnia³eœ o materia³ach... + + + W³aœnie, tutaj w³aœciwie nie da siê znaleŸæ materia³ów do pracy na sprzêcie radiowym. Zu¿y³em wszystko, co uda³o mi siê znaleŸæ, a dostaw nikt tu nie robi, bo mo¿na siê bardziej ob³owiæ na sprzeda¿y broni... Ale s³ysza³em, ¿e coœ mog³o zostaæ w cementowni... + + + Znalaz³em materia³y, proszê bardzo. Przeszuka³em ka¿dy k¹t cementowni! + + + No, brachu, jestem pod wra¿eniem! Zanotujê sobie: darmowa robocizna przy wszystkich naprawach i ulepszeniach dla mojego ulubionego stalkera! + + + Znalaz³em czêœæ materia³ów, które chcia³eœ. Proszê. + + + Brawo! Dostaniesz niez³y rabat, przyjacielu! + + + Mogê zdobyæ dla ciebie materia³y. + + + By³oby œwietnie! Jeœli znajdziesz kalafoniê albo kondensatory, przynieœ je mi... By³bym wdziêczny nawet za tekstolit. Nie mam zbyt wiele pieniêdzy, ale na pewno dostaniesz zni¿kê. + + + Do czego ci potrzebne te materia³y? + + + D³ubiê w broni i sprzêcie... Trzeba jakoœ zarobiæ na kawa³ek chleba... Ale moj¹ pasj¹ jest sprzêt radiowy. Wiesz, jakie to uczucie, jak uda siê coœ posk³adaæ i nawet dzia³a? Pamiêtam, ¿e raz zbudowa³em zag³uszacz... By³ bardzo przydatny - w³¹cza³em go, kiedy nag³oœnienie w „100 Radach" nie dawa³o mi spaæ. + + + Sk¹d komponenty radiowe w cementowni? + + + Cementownia to tylko nazwa... Przestali robiæ cement na d³ugo przed katastrof¹ w Czarnobylu. Rozebrali, co siê da³o, i zaczêli produkowaæ w zak³adzie urz¹dzenia elektryczne. + + + Znalaz³em w Jupiterze dokumenty. Rzucisz na nie okiem? + + + Tak... Nie ma tu nic ciekawego... To jakieœ administracyjne pierdo³y... + + + Hm... Tu i ówdzie jest coœ ciekawego, ale niczego nie mogê byæ pewien... Potrzebujemy ca³oœci informacji. Spróbuj poszukaæ w miejscach wspomnianych w dokumentach. + + + Do cholery, potrzebujê materia³ów. Jak mam pracowaæ w tych warunkach?... O, czeœæ. Co s³ychaæ? + + + Czo³em! Potrzebujesz pomocy w kwestiach technicznych? Materia³ów oczywiœcie nie mam, ale mogê naprawiæ ci sprzêt i dokonaæ niewielkich ulepszeñ. + + + O, czeœæ. S³uchaj, tak sobie myœla³em... Okazuje siê, ¿e potrzebne mi materia³y kurz¹ siê spokojnie w cementowni... Na sam¹ myœl dostajê sza³u. + + + Witaj! Coœ ci siê popsu³o czy uzbiera³eœ pieni¹dze na ulepszenie? Pamiêtaj, masz do¿ywotni¹ zni¿kê! + + + Czo³em, bracie! Czym mogê s³u¿yæ? Pamiêtaj, u mnie masz najlepsze mo¿liwe ceny. + + + Mo¿esz odblokowaæ modu³ pamiêci? + + + Tak s¹dzê... Nigdy wczeœniej tego nie robi³em, wiêc potrzebujê co najmniej trzech godzin. Z chêci¹ spróbujê... W zwi¹zku z tym zaproponujê atrakcyjn¹ cenê - tylko 1000. + + + Mogê zaczekaæ, wiêc umowa stoi! + + + Œwietnie! Zabieram siê do pracy, a ty siê nie œpiesz... Dam ci znaæ, jak skoñczê. + + + Nie mam tyle. + + + Wróæ, jeœli chcesz, ¿ebym to zrobi³. Nikt siê tego taniej nie podejmie. + + + Zastanowiê siê. + + + Powiedzia³em ci, ¿e zrobiê to w trzy godziny. 1000 to œwietna cena, na twoim miejscu bym siê zgodzi³. + + + I co, odblokowa³eœ modu³ pamiêci? + + + Nie, jeszcze nad tym pracujê... Nie bój siê, dam ci znaæ, jak skoñczê. + + + Co? Nie dosta³eœ modu³u? Musia³eœ siê rozmin¹æ z Senk¹ - pos³a³em go do ciebie z modu³em. Niewa¿ne. Ogólnie rzecz bior¹c, poza pomiarami gruboœci warstw gruntu i gêstoœci roœlinnoœci zawiera³ wspó³rzêdne trzech radiolatarni. Przeœlê ci je na PDA... + + + Próbowa³eœ namierzyæ chimery? + + + Ranna posz³a do Zatonu. Grupa Gonty za ni¹ idzie... Ale s³ysza³em, ¿e brakuje im doœwiadczonego myœliwego. Jeœli im pomo¿esz, odwdziêczê ci siê... Ta druga, która zabi³a Lisa... Zgubi³em j¹. Tak jakby siê rozp³ynê³a... Biedny Lis... Dobry by³ z niego ch³op, ale staroœæ nie radoœæ... + + + Z t¹ zranion¹ siê rozprawi³eœ... Ta druga, która zabi³a Lisa... Zgubi³em j¹. Tak jakby siê rozp³ynê³a... Biedny Lis... Dobry by³ z niego ch³op, ale staroœæ nie radoœæ... + + + Co robisz? + + + Jestem Traper, do niedawna polowa³em na mutanty, które stanowi³y zagro¿enie dla stalkerów... Obecnie odbieram rozkazy i przekazujê je m³odszym myœliwym. Szkolê ich i uczê myœliwskiej taktyki... + + + Opowiedz mi o polowaniu na mutanty. + + + Ró¿ne mutanty wymagaj¹ ró¿nego podejœcia. Burery i poltergeisty wymagaj¹ jednego, a nibyolbrzymy i kontrolerzy innego... A chimery s¹ wyj¹tkowe. + + + Opowiedz mi o burerach. + + + Burery wykorzystuj¹ ataki grawitacyjne... Na krótkim dystansie rzucaj¹ tob¹, a gdy s¹ daleko, próbuj¹ rzuciæ czymœ w ciebie... Najlepiej trzymaæ je na œredni dystans i ci¹gle siê ruszaæ, chyba ¿e lubisz dostawaæ ciê¿kimi przedmiotami. Ale staraj siê oszczêdzaæ si³y! Burery wykorzystuj¹ impulsy grawitacyjne do wyrywania ludziom broni z r¹k, a jak bêdziesz zmêczony, mo¿e im siê udaæ. + + + Opowiedz mi o poltergeistach. + + + Poltergeisty dziel¹ siê na dwa rodzaje. Pierwszy ciska w przeciwnika przedmioty za pomoc¹ grawitacji, a drugi to poltergeist ogniowy, który podpala przeciwników. Niedoœwiadczeni myœliwi kr¹¿¹ wokó³ nich, by unikn¹æ ataków... Rzecz w tym, ¿eby wiedzieæ, ¿e poltergeisty nie widz¹ ani nie s³ysz¹ w normalnym tych s³ów znaczeniu, i umieæ to wykorzystaæ. Wyczuwaj¹ ruch obiektów w polu grawitacyjnym... Wiêc doœwiadczony myœliwy zamiera w bezruchu, gdy tylko zobaczy poltergeista, po czym strzela i znowu zamiera, i tak w kó³ko. + + + Opowiedz mi o kontrolerach. + + + Wykorzystuj¹ twój umys³ przeciwko tobie. Kiedy polujesz na kontrolera, trzeba wykorzystywaæ os³ony, bo on musi ciê widzieæ, ¿eby móc wp³ywaæ na twój umys³... Oprócz tego kontrolerzy s¹ doœæ wolni, wiêc jeœli wa¿y siê twój los, u¿ywaj granatów. + + + Opowiedz mi o chimerach. + + + To niebezpieczne nocne drapie¿niki. Próbuj¹ zajœæ ciê od ty³u pod os³on¹ nocy i wskoczyæ na ciebie. Jeœli wiesz, ¿e w okolicy jest chimera, ogl¹daj siê za siebie i os³aniaj kumplom ty³ki... + + + Opowiedz mi o nibyolbrzymach. + + + Najtrudniejsz¹ rzecz¹ w polowaniu na nibyolbrzyma jest zabicie go. Potrafi¹ zebraæ potê¿ne ciêgi bez mrugniêcia okiem... Powiem tylko, ¿e warto spróbowaæ strza³ów ze strzelby z ma³ej odleg³oœci. Pamiêtaj, ¿e uderzenia nibyolbrzyma potrafi¹ zmieœæ wszystko, co nie jest przytwierdzone do betonu. Atakuj z góry i postaraj siê, ¿eby to, na czym stoisz, by³o doœæ wytrzyma³e. + + + Dobra, niewa¿ne. + + + Czemu ju¿ nie polujesz? + + + Starzejê siê. Przez to te¿ zgin¹³ Lis... By³ moim partnerem i przyjacielem. Wiele razem upolowaliœmy, ramiê w ramiê... Niedaleko Zatonu natknêliœmy siê na dwie chimery, których nie widziano w Zonie od pó³tora roku... Jedna z nich powali³a Lisa na ziemiê, zanim zd¹¿y³em wyj¹æ strzelbê. Jak zrani³em tê drug¹, obie uciek³y... Oby siê sma¿y³y w piekle na wieki! + + + Kto móg³ ukraœæ zawartoœæ osobistej skrytki? + + + Hm... Nie mam pojêcia... Takie rzeczy nie zdarzaj¹ siê wœród myœliwych. Rozumiesz, wkurzysz ludzi, to mog¹ zacz¹æ oszczêdzaæ amunicjê, kiedy pijawka bêdzie dobieraæ ci siê do ty³ka. + + + Wyj¹tkowe sytuacje wymagaj¹ wyj¹tkowych œrodków. Znaj¹c pijawki, pomyœla³bym, ¿e dwie wybra³y siê na polowanie. Ale teraz nie maj¹ dok¹d wracaæ, wiêc nie bêd¹ stanowiæ zagro¿enia dla stalkerów. + + + Masz dla mnie jak¹œ inn¹ pracê? + + + Pewnie. Niedawno oddzia³ stalkerów wszed³ do tuneli na pó³noc od fabryki i natkn¹³ siê na legowisko mutantów. Byli w takim szoku, ¿e ¿aden z nich nie móg³ powiedzieæ, co to by³y za mutanty, ale dwóch z nich nie wróci³o stamt¹d ¿ywych. PóŸniej ludzie w Janowie wystraszyli siê ca³ej sprawy i zebrali 5000 nagrody dla tego, kto zrobi porz¹dek z tym legowiskiem. To niebezpieczna praca, sam zdecyduj... Zajmiesz siê tym? + + + Zajmê. + + + Odwa¿ny z ciebie ch³op. ¯yczê szczêœcia. Przyda ci siê. + + + Nie teraz. + + + Rozumiem ciê... W¹tpiê, by ktokolwiek mia³ odwagê stawiæ czo³o ca³emu legowisku mutantów. + + + Jak wczeœniej. Niezidentyfikowane mutanty w tunelach na pó³noc od fabryki Jupiter. 5000 nagrody... Zajmiesz siê tym jednak? + + + W tej chwili stalkerów niepokoj¹ mutanty w tunelach... + + + W tunelach by³y zmutowane kar³y. Teraz to martwe zmutowane kar³y. + + + Podejrzewam, ¿e to burery. To wyjaœnia, czemu w Janowie tak siê sp³oszyli... Poniewa¿ sprawa zosta³a za³atwiona, nagroda jest twoja! + + + Podejrzewam, ¿e to burery. Te, które niedawno zabi³y dwóch stalkerów. To wyjaœnia, czemu w Janowie wyznaczyli nagrodê za ich zabicie... Poniewa¿ sprawa zosta³a za³atwiona, nagroda jest twoja! + + + Jestem gotów zmierzyæ siê z chimer¹. + + + Œwietnie. Myœliwy, który natkn¹³ siê na tê cholerê, widzia³ j¹ o zmierzchu. Sz³a w stronê kompleksu wentylacyjnego. Chimery s¹ stworzeniami nocnymi i terytorialnymi, wiêc pewnie sz³a na swoje tereny ³owieckie... Tam powinieneœ jej szukaæ po zmroku. Ale pamiêtaj, ¿e w ciemnoœciach jest bardziej aktywna... Uwa¿aj na siebie i udanych ³owów. + + + Chimera nie ¿yje. + + + Dziêkujê... Dziêkujê! Pomœci³eœ Lisa, mo¿e teraz spoczywaæ w pokoju. Oto twoja nagroda - zas³u¿y³eœ na ni¹... Jest jeszcze coœ. WeŸ moj¹ strzelbê. Da³eœ mi coœ o wiele wa¿niejszego - odrobinê wyczekiwanego spokoju. + + + Jestem Traper... Nie musisz siê przedstawiaæ. + + + Co ciê tu sprowadza? + + + Dziêkujê za przyjœcie. Potrzebujê solidnego i doœwiadczonego myœliwego, a w Janowie lepszego od ciebie nie ma. Po tym wszystkim, co siê sta³o, nie mogê pozwoliæ, by ta chimera znowu uciek³a... Przeznaczam na to wszystkie swoje oszczêdnoœci: 10000. Chcê mieæ pewnoœæ, ¿e robota bêdzie porz¹dnie wykonana. Lis musi zostaæ pomszczony! + + + B³agam ciê, zajmij siê chimer¹. Jeœli nie chcesz uwolniæ Janowa od tego morderczego mutanta, zrób to dla pieniêdzy... 10000 to spora suma. + + + Jak siê przedstawia sytuacja z chimer¹? Liczy siê czas, bo ona mo¿e przenieœæ siê na inne tereny ³owów. + + + Dobrze ciê widzieæ! Co nowego? + + + Masz dla mnie jak¹œ inn¹ pracê? + + + Oczywiœcie. W Mokradle za cementowni¹ zauwa¿ono grupê bagiennych pijawek. Na razie trzymaj¹ siê swojego bagna... Ale miejscowi stalkerzy chc¹ mieæ pewnoœæ, ¿e pozostan¹ tam na zawsze, ¿e tak powiem. Cena za ca³¹ grupê wynosi 3000. Podejmiesz siê tego? + + + Zrobiê to. + + + Œwietnie. Pomyœlnych ³owów... + + + Nie teraz. + + + Twoja sprawa. Masz jeszcze czas zmieniæ zdanie, nim inni myœliwi wezm¹ siê za to. + + + Jak wczeœniej. Grupa bagiennych pijawek w Mokradle za cementowni¹. Nagroda wynosi 3000. Wchodzisz w to? + + + W tej chwili nie ma nic poza pijawkami w Mokradle. + + + Zabi³em bagienne pijawki. + + + Teraz stalkerzy mog¹ siê odprê¿yæ. Oto twoja nagroda zgodnie z umow¹. + + + Tak, miejscowi stalkerzy z chêci¹ pozbêd¹ siê takiego s¹siedztwa. Nawet zebrali nagrodê, konkretnie 3000. Proszê, jest twoja. + + + Zabiliœmy z Gont¹ chimerê na Zatonie. + + + Dziêkujê wam za to. Im mniej tych bestii w okolicy, tym lepiej dla nas. Gdyby teraz jeszcze wyœledziæ tê drug¹... + + + Dziêkujê za rozprawienie siê te¿ z drug¹ besti¹. Dobrze wiedzieæ, ¿e te chimery nie odbior¹ ju¿ ¿ycia ¿adnemu stalkerowi... + + + Powiedz mi, jak zabi³eœ kontrolera. + + + S³uchaj i ucz siê, przyjacielu... Poszed³em do schowka po swój towar i jak dotar³em na miejsce, patrzê, a tam - kontroler. Znalaz³em jak¹œ metalow¹ kratkê, ¿eby siê os³oniæ, i zakrad³em siê do potwora. Zanim siê zorientowa³, w³adowa³em mu w ³eb pó³ magazynka. Jak tylko spróbowa³ przej¹æ nade mn¹ kontrolê, wykoñczy³em go kolb¹ karabinu. I po krzyku. + + + Opowiedz mi o artefaktach w kamienio³omach. + + + Ha! Nie ma o czym opowiadaæ, bo nic ju¿ tam nie ma. Nie ma sensu szperaæ w anomaliach, które przeczesa³ Flint. Ka¿dy to wie. + + + A wiêc to ty zostawi³eœ swojego kumpla na œmieræ w kamienio³omach? + + + Co?! + + + Nie mo¿esz niczego mi udowodniæ. Wygadujesz jakieœ brednie... Masz swoje s³owo przeciwko s³owu cz³onka Wolnoœci - czarno widzê twoje szanse. + + + Przekonamy siê. + + + Nic. + + + Dziêki, na razie. + + + Opowiedz mi o pijawkach na Zatonie. + + + Jak by³em na Zatonie, pijawki bardzo uprzykrza³y ¿ycie stalkerom. Stalkerzy polowali na nie dzieñ i noc, ale nic to nie da³o. Postanowi³em im pomóc, wiêc wzi¹³em strzelbê i poszed³em prosto do legowiska pijawek. Trochê siê z nimi zabawi³em i problem pijawek na Zatonie przesta³ istnieæ. + + + Pewnie nawet nie wiesz, gdzie jest to legowisko. + + + Zje¿d¿aj. + + + Czego chcesz? Rozpowiadaj swoje brednie gdzie indziej! + + + Spadaj, kole¿ko... Masz swoje s³owo przeciwko s³owu cz³onka Wolnoœci - czarno widzê twoje szanse. + + + Przekonamy siê. + + + Dziêki, na razie. + + + Opowiedz mi historiê o skrócie do Jupitera. + + + Przewodnik nadk³ada³ du¿o drogi, id¹c z Zatonu. Postanowi³em pójœæ na wprost... i tak zrobi³em. Wypróbowa³em parê miejsc i szybko znalaz³em drogê pomiêdzy anomaliami. Sprzeda³em te informacje przewodnikowi i teraz on prowadza wszystkich t¹ drog¹. + + + A mo¿e zapytamy Pilota, od kogo ma mapy? + + + Zje¿d¿aj. + + + Czego chcesz? Rozpowiadaj swoje brednie gdzie indziej! + + + Nic mi nie udowodnisz. Masz swoje s³owo przeciwko s³owu cz³onka Wolnoœci - czarno widzê twoje szanse. + + + Przekonamy siê. + + + Dziêki, na razie. + + + Opowiedz mi o swojej wyprawie do Oazy. + + + By³em pierwszym cz³owiekiem, który dotar³ do Oazy. Nie ma w niej mutantów ani anomalii - tylko cisza i spokój. A artefaktów tam jak mrówek - do wyboru, do koloru. + + + Wciskasz kit. By³em w Oazie i wcale tak nie wygl¹da. + + + Zje¿d¿aj. + + + Czego chcesz? Rozpowiadaj swoje brednie gdzie indziej! + + + Sam wciskasz kit. Masz swoje s³owo przeciwko s³owu cz³onka Wolnoœci - czarno widzê twoje szanse. + + + Przekonamy siê. + + + Dziêki, na razie. + + + Opowiedz mi o swojej pracy dla naukowców. + + + Niedawno odwiedzi³em ich bunkier. Bardzo siê ucieszyli i powiedzieli „w³aœnie ciebie teraz potrzebujemy, Flint!”. Okaza³o siê, ¿e chcieli ustawiæ swoje urz¹dzenia pod anomaliami. Ja na to mówiê „bu³ka z mas³em” i zrobi³em bez problemu wszystko, o co prosili. Najtrudniej by³o wydusiæ z tych jajog³owców wynagrodzenie. + + + Przestañ przypisywaæ sobie dokonania innych ludzi. Ja to zrobi³em, nie ty! + + + Zje¿d¿aj. + + + Czego chcesz? Rozpowiadaj swoje brednie gdzie indziej! + + + K³amstwa... Nie mo¿esz niczego udowodniæ. Masz swoje s³owo przeciwko s³owu cz³onka Wolnoœci - czarno widzê twoje szanse. + + + Przekonamy siê. + + + Dziêki, na razie. + + + Czeœæ. Ty te¿ chcesz pos³uchaæ moich opowieœci? + + + Chcesz o coœ zapytaæ? + + + Czego ci potrzeba? + + + Cholera, cz³owieku... Umieram... + + + WeŸ tê apteczkê. + + + Dziêki, przyjacielu, ale to nie pomo¿e... S³uchaj... By³em tu z cz³owiekiem z Wolnoœci... ZnaleŸliœmy artefakt... Jak wracaliœmy, wszed³em w anomaliê gazow¹... Gdyby mi pomóg³, da³bym sobie radê... Ale wzi¹³ artefakt i zostawi³ mnie tu. Powiedzia³, ¿e idzie po pomoc... ZnajdŸ go. Chcê, ¿eby ludzie wiedzieli, ¿e nie mo¿na mu ufaæ... + + + Znajdê go. + + + W¹tpiê, bym móg³ mu cokolwiek udowodniæ. + + + Z³ap mnie za ramiê, zaprowadzimy ciê do medyka. + + + Wypadki chodz¹ po ludziach. Na razie. + + + Mam coœ dla ciebie... + + + Trzymaj. To Kotlet. + + + Dziêki. Naukowcy dobrze p³ac¹, ale bardziej zale¿y mi na zezwoleniu. + + + Wielkie dziêki, przyjacielu! W koñcu mogê ruszyæ do Prypeci - muszê tylko znaleŸæ drogê. + + + To Kulebiak. WeŸ go. + + + Dziêki. Naukowcy dobrze p³ac¹, ale bardziej zale¿y mi na zezwoleniu. + + + Wielkie dziêki, przyjacielu! W koñcu mogê ruszyæ do Prypeci - muszê tylko znaleŸæ drogê. + + + Kotlet i Kulebiak. WeŸ je. + + + Wielkie dziêki, przyjacielu! W koñcu mogê ruszyæ do Prypeci - muszê tylko znaleŸæ drogê. + + + Nie. + + + Nudno ci tu jest? + + + Wspomnia³eœ o swoim kontrakcie... + + + Zatrudni³em siê u naukowców. Myœla³em, ¿e bêdzie ³atwo. Nie zauwa¿y³em tylko, ¿e kontrakt wygasa dopiero po wykonaniu wszystkich prac. Naukowcy obiecali, ¿e na koniec dadz¹ mi oficjalne zezwolenie na pobyt w Zonie. + + + Wykona³em ka¿dy ustêp kontraktu poza jednym drobiazgiem. Muszê znaleŸæ wszystkie istniej¹ce artefakty chemiczne. Kto móg³ wiedzieæ, ¿e nie da siê tu znaleŸæ Kotletów ani Kulebiaków? Gdybym zdoby³ te dwa, móg³bym ju¿ dawno temu ruszyæ do Prypeci, ale nic z tego! + + + Mo¿e móg³bym pomóc ci w szukaniu tych artefaktów. + + + Szkoda. + + + Tak... Tylko Kotlet i Kulebiak i mogê ruszaæ do Prypeci! + + + Co takiego jest w Prypeci? + + + Nikt nie wie, jak tam dojœæ... W koñcu jesteœmy w Zonie, wiêc nie da siê iœæ na wprost. Podobno jest tam istne zag³êbie artefaktów... Tak czy siak, o Prypeci kr¹¿y tyle opowieœci, ¿e jestem po prostu ciekaw. + + + Zbieram oddzia³ na wyprawê do Prypeci. Chcesz siê przy³¹czyæ? + + + Sam myœla³em, ¿eby siê tam wybraæ. Ale bez ¿adnego towarzystwa. Nic do ciebie nie mam, ale przyzwyczai³em siê do pracy w pojedynkê. + + + Ha, nied³ugo sam ruszam do Prypeci. Ale bez ¿adnego towarzystwa. Nic do ciebie nie mam, ale przyzwyczai³em siê do pracy w pojedynkê. + + + Witaj w siedlisku nudy. + + + Cz³owieku, naprawdê chcê iœæ do Prypeci! + + + Muszê tylko znaleŸæ drogê do Prypeci i dotrê tam raz-dwa. + + + Tutaj jest dobrze! Tutaj mo¿na ¿yæ jak nale¿y! + + + Na pewno dobrze czuæ siê bezpiecznie. Gdyby tylko nie by³o tak nudno! + + + Mo¿e móg³bym pomóc ci w szukaniu tych artefaktów. + + + Naprawdê znasz drogê do Prypeci? + + + Nie, ale jeœli jest tam tak du¿o artefaktów, jak ludzie mówi¹, jestem gotów szukaæ jej choæby zaraz. Jestem starym przecieraczem szlaków - to ja pierwszy znalaz³em drogê do Jupitera. Ale zawsze pracujê sam - nie mam czasu pilnowaæ komuœ ty³ka. + + + Zabierzesz mnie do Jupitera? + + + Jasne. Jesteœ gotów do drogi? + + + Tak. + + + Jeszcze nie. + + + Nie w czasie emisji. + + + Zaprowadzisz mnie do Prypeci? + + + Za 5000 mogê spróbowaæ. Podoba mi siê tam! + + + Umowa stoi. + + + Nie, dziêkujê. + + + Dobra, twoja sprawa. + + + Nie mam tyle pieniêdzy. + + + Za 5000 mogê spróbowaæ. Poczekajmy tylko, a¿ przejdzie emisja. + + + Mo¿esz zaprowadziæ mnie do Zatonu? + + + Nie, tam jest zbyt nudno. Tam stoi Pilot, on jest od bezpiecznej, ale nudnej pracy. + + + Mogê zaprowadziæ ciê do Janowa i za 3000 dogadaæ siê z Pilotem, ¿eby zabra³ ciê do Zatonu. Co ty na to? + + + Zgadzam siê. + + + Nie. + + + Twoja sprawa. + + + Nie mam tyle pieniêdzy. + + + Mogê zaprowadziæ ciê do Janowa i za 1000 dogadaæ siê z Pilotem, ¿eby zabra³ ciê do Zatonu. Co ty na to? + + + Nie, tam jest zbyt nudno. Tam stoi Pilot, on jest od bezpiecznej, ale nudnej pracy. Zapytaj go po emisji. + + + Mogê zaprowadziæ ciê do Janowa i za 3000 dogadaæ siê z Pilotem, ¿eby zabra³ ciê do Zatonu. Oczywiœcie, jak przejdzie emisja. + + + Mogê zaprowadziæ ciê do Janowa i za 1000 dogadaæ siê z Pilotem, ¿eby zabra³ ciê do Zatonu. Oczywiœcie, jak przejdzie emisja. + + + Podobno przeszed³eœ tunelami?... Ja te¿ przyszed³em z Jupitera - znalaz³em przejœcie pod ziemi¹. Mogê ciê zaprowadziæ z powrotem za darmo, jeœli chcesz... Wiesz, z chêci¹ s³u¿ê pomoc¹ przedstawicielom w³adzy. + + + Kopê lat! Podobno przeszed³eœ tunelami?... Znalaz³em przejœcie pod ziemi¹. Mogê ciê zaprowadziæ z powrotem za darmo, jeœli chcesz... Wiesz, z chêci¹ s³u¿ê pomoc¹ przedstawicielom w³adzy. + + + Kopê lat! Podobno przeszed³eœ tunelami?... Nie uwierzysz, ale pomimo niewype³nienia kontraktu, uda³o mi siê dostaæ zezwolenie... Jak tylko siê to sta³o, ruszy³em tutaj i znalaz³em przejœcie pod ziemi¹. Mogê ciê zaprowadziæ z powrotem za darmo, jeœli chcesz... Wiesz, z chêci¹ s³u¿ê pomoc¹ przedstawicielom w³adzy. + + + Kopê lat! Podobno przeszed³eœ tunelami?... Znalaz³em przejœcie pod ziemi¹. Mogê ciê zaprowadziæ z powrotem za darmo, jeœli chcesz... Wiesz, z chêci¹ s³u¿ê pomoc¹ przedstawicielom w³adzy. Przy okazji, dziêkujê za pomoc w wype³nieniu warunków kontraktu z naukowcami... Trochê siê tu rozejrza³em i znalaz³em to - proszê. Na pewno ci siê do czegoœ przyda. + + + Topol, czemu nie ochraniasz bunkra naukowców? + + + Zostaliœmy zatrudnieni do wykonywania pomiarów i zbierania próbek. W tej chwili jesteœmy prawie naukowcami. Poza tym nie mam nic przeciwko samej pracy, ale nie wiem, czy dam radê nowym wrogom jajog³owych. Nie mam ochoty zgin¹æ od kuli najemnika. + + + Jesteœ w niew³aœciwym miejscu! Lepiej st¹d zmiataj, zanim pora te¿ oka¿e siê niew³aœciwa. + + + Szukasz guza czy co? Zje¿d¿aj st¹d, zanim go znajdziesz! + + + Spadaj, kole¿ko... RozejdŸmy siê w pokoju. + + + Co teraz zrobicie? + + + Nied³ugo idziemy na stacjê Janów. ChodŸ nami, jeœli chcesz. + + + Dobrze, jest mi po drodzê. Do³¹czê do was. + + + Nie, jest mi nie po drodze. + + + Dobrze, ¿e przyprowadzi³eœ ich do nas - sami nie wytrzymaliby d³ugo. + + + Dziêki za dogadanie siê z Powinnoœci¹. + + + Co teraz zrobicie? + + + Nied³ugo idziemy na stacjê Janów. ChodŸ nami, jeœli chcesz. + + + Dobrze, jest mi po drodze. Do³¹czê do was. + + + Nie, jest mi nie po drodze. + + + Dobrze zrobi³eœ. Pomog³eœ tym ch³opakom i przyprowadzi³eœ nam posi³ki. To siê chwali. + + + Dziêki za dogadanie siê z Wolnoœci¹. + + + Wiesz, kto móg³ ukraœæ zawartoœæ osobistej skrytki? + + + Nie wiem - s¹ tu ludzie najró¿niejszego sortu... Zapytaj Kostoprawa, on zna tu prawie ka¿dego. + + + ChodŸmy do Zulusa. + + + Dobrze. Mam nadziejê, ¿e nie zacznie strzelaæ, jak zobaczy mój stary pancerz. Musimy go po drodze odebraæ... i zwróciæ ten, który noszê. + + + ChodŸmy. + + + Czekaj. Emisje szkodz¹ zdrowiu... Zaczekajmy trochê. + + + Co siê sta³o? + + + Nie pamiêtamy, jak siê tu znaleŸliœmy. Pamiêtam, ¿e stanowiliœmy oddzia³ Monolitu... Ogromnie chcieliœmy dotrzeæ do centrum Zony. Tam w³aœnie jest Monolit - to meteor, który przyniós³ z innych planet zal¹¿ki nowego ¿ycia... Pamiêtam, ¿e dotarliœmy razem do CEJ... A potem ju¿ tylko wyrywki. Pamiêtam jasne œwiat³o... kosmiczne zimno... i czysty g³os... Wszystko by³o wprost doskona³e. Nie pamiêtam, co g³os kaza³ mi teraz robiæ. Kilka lat mojego ¿ycia przepad³o. Z ch³opakami jest tak samo. Nie wiemy, co robiæ. Musimy znaleŸæ jakieœ schronienie przed emisjami... i mutantami, tak? Masz jakiœ pomys³, gdzie bêdziemy bezpieczni? + + + Niedaleko st¹d jest baza stalkerów. Mogê pokazaæ ci j¹ na mapie. + + + Nie wiem, czy tam bêdzie bezpiecznie. Gdy szliœmy do CEJ, traktowano nas podejrzliwie... PóŸniej chyba zabiliœmy jakichœ stalkerów. Wiesz, jak ludzie traktuj¹ teraz nasz¹ frakcjê? Pewnie zaczn¹ strzelaæ. Mo¿esz nam pomóc? Mo¿esz powiedzieæ wszystkim w obozie stalkerów, ¿e ju¿ nie zabijamy? Mo¿esz namówiæ ich, ¿eby nas przyjêli? + + + Nie ma sprawy, porozmawiam z nimi przy najbli¿szej okazji, jak bêdê w bazie. + + + Przykro mi, nie mogê wam pomóc. + + + Jakiej pomocy potrzebujecie? + + + Potrzebujemy schronienia przez emisjami... i mutantami, tak? Mo¿esz znaleŸæ miejsce, gdzie bêdziemy bezpieczni? + + + Dobrze. Popytam w Janowie. + + + Przykro mi, nie mogê wam pomóc. + + + ¯eby dotrzeæ do Prypeci, potrzebny bêdzie kombinezon z aparatem tlenowym o zamkniêtym obiegu. + + + W porz¹dku - mam ci¹gle swój kombinezon z Monolitu, a w nim jest coœ takiego. Tyle tylko, ¿e nie mogê siê w nim pokazaæ w Janowie. + + + Zbieram oddzia³ na wyprawê do Prypeci. Chcesz siê przy³¹czyæ? + + + Poszed³bym... Bardzo mnie ciekawi, co siê nam tam przydarzy³o. Ale teraz nie mogê. Nie mogê zostawiæ tu ch³opaków, a oni nie pójd¹. I tak du¿o przeszli. + + + Tak, pójdê z tob¹. Bardzo chcê siê dowiedzieæ, co siê nam przydarzy³o. Mam nadziejê, ¿e znajdê odpowiedŸ w Prypeci. Muszê tylko ostrzec Lokiego, ale na pewno nie bêdzie protestowa³. + + + Tak, pójdê z tob¹. Bardzo chcê siê dowiedzieæ, co siê nam przydarzy³o. Mam nadziejê, ¿e znajdê odpowiedŸ w Prypeci. Muszê tylko ostrzec Szulgê, ale na pewno nie bêdzie protestowa³. + + + Jesteœ gotów do drogi? + + + Tak. + + + Czeœæ, stalkerze. Mo¿esz nam pomóc? + + + Czo³em. Dowiedzia³eœ siê, czy mo¿emy iœæ do bazy stalkerów? + + + Nie, ci¹gle nad tym pracujê... + + + Poœpiesz siê, bo tutaj nie wiadomo co siê mo¿e zdarzyæ. + + + Czeœæ. Dziêkujê, ¿e nam pomog³eœ. + + + Czeœæ. + + + Jak leci? + + + NieŸle, oddzia³ jest w porz¹dku, ale naprawdê chcia³bym siê dowiedzieæ, co siê nam przydarzy³o. + + + Co tu robi¹ najemnicy? + + + Powinieneœ o tym porozmawiaæ z Hermanem. On siê zajmuje kwestiami administracyjnymi dzia³ania laboratorium. O ile mi wiadomo, najemnicy dogadali siê z Hermanem co do ochrony naszego laboratorium. Nie znam szczegó³ów tej umowy. Muszê jednak podkreœliæ, ¿e wiele razy pokazali swoj¹ sprawnoœæ w boju. + + + Co tu robicie? + + + To chyba retoryczne pytanie? Prowadzimy badania. Interesuje ciê coœ konkretnie? + + + Jaki jest cel waszych badañ? + + + Nie mamy konkretnego celu. Mo¿na powiedzieæ, ¿e jesteœmy naukowymi zwiadowcami. Chcemy rozpoznaæ korelacje pomiêdzy pewnymi zjawiskami, opracowaæ teorie i dowieœæ ich lub je sfalsyfikowaæ. Niektóre z naszych teorii nie maj¹ w³aœciwie ¿adnego praktycznego celu. + + + Co wiecie na temat Zony? + + + Mogê tylko snuæ hipotezy... Uwa¿am, ¿e Zona powsta³a w wyniku dzia³ania jakiejœ nowej si³y. Pola elektromagnetyczne, si³a fizyczna ani promieniowanie nie mog³y tak szybko zmieniæ biosfery. Oczywiœcie, czêœæ mutacji da siê wyjaœniæ promieniowaniem... Ale, przepraszam bardzo, zwyk³a œwinia potrzebowa³aby setek, jeœli nie tysiêcy lat, ¿eby zmieniæ siê w miêsacza! W Zonie mutacja ta przebieg³a w ci¹gu kilku lat. Jakby ktoœ bezpoœrednio zmieni³ informacjê genetyczn¹ poszczególnych osobników. Ciarki mnie przechodz¹ na tê myœl. + + + Od dawna jesteœcie w Zonie? + + + Nieca³y tydzieñ. Potrzeba by³o ogromnego wysi³ku, ¿eby pokonaæ biurokracjê i zorganizowaæ tê ekspedycjê. Gdyby nie Herman, pewnie ci¹gle czekalibyœmy na obrze¿ach Zony, podczas gdy stalkerzy wynosz¹ z niej bezcenne przedmioty. + + + Nie mam wiêcej pytañ. + + + Oziorski, czemu Herman zatrudni³ mnie do ochrony oddzia³u podczas wykonywania obliczeñ? + + + To by³ mój pomys³. On nie widzia³ w tym sensu, ale uda³o mi siê go przekonaæ. Moje badania wskazuj¹, ¿e oddzia³ywanie naszego wysokofalowego sprzêtu na pola anomalii podnosi poziom agresji u znajduj¹cych siê w pobli¿u mutantów oraz pobudza ich aktywnoœæ. Krótko mówi¹c, zaczynaj¹ szukaæ czegoœ do zabicia. + + + Oziorski, przynoszê nowiny. + + + Tak? S³ucham. + + + Mia³eœ racjê. Mutanty nie dawa³y nam ani na chwilê spokoju, kiedy robiliœmy pomiary, ale jak tylko urz¹dzenia zosta³y wy³¹czone, wszystko siê uspokoi³o. + + + Co?! Jeœli moja hipoteza siê potwierdzi³a, mo¿liwe jest, ¿e zmutowane zwierzêta, które posiad³y zdolnoœæ odczytywania pól informacyjnych, mog¹ telepatycznie otrzymywaæ sygna³y z zewn¹trz... Sztuczne sygna³y... Co oznacza, ¿e nienaturalne podobieñstwo mutacji i te charakterystyczne zmiany budowy komórek nie s¹ przypadkowe... + + + Mo¿esz mówiæ konkretniej? I tym razem z sensem? + + + Nie! To tylko moje domys³y. Och, ale¿ jestem niegrzeczny! Bardzo dziêkujê za pomoc w naszych badaniach. + + + Czego potrzeba, ¿ebyœ porozmawia³ z Hermanem o kombinezonie? + + + Niedawno na skraju kamienio³omów pojawi³ siê obszar anomalii wype³niony nieznan¹ dot¹d roœlinnoœci¹. Bardzo chcia³bym uzyskaæ próbkê tej roœliny, ale stalkerzy nie chc¹ siê tam zbli¿yæ. Gdybym mia³ tak¹ roœlinê, móg³bym porozmawiaæ z Hermanem o nagrodzeniu ciê jednym z zapasowych kombinezonów. + + + Znajdê dla ciebie tê roœlinê. + + + Dobrze, przes³a³em ci na PDA wspó³rzêdne tej anomalii. + + + Mo¿e nastêpnym razem. + + + Wpadnij, jeœli zmienisz zdanie. + + + Proszê, przynios³em roœlinê, o któr¹ prosi³eœ. To jak bêdzie z tym kombinezonem? + + + Doskonale. Soko³ow wygada³ siê, ¿e kombinezon jest dla niego. To bez znaczenia. Jak poka¿ê Hermanowi roœlinê, zaraz zgodzi siê oddaæ kombinezon. Powiedz Soko³owowi, ¿eby po niego przyszed³. + + + Znajdê wam now¹ ochronê. + + + By³oby bardzo mi³o z twojej strony. Porozmawiaj w tej sprawie z Hermanem - to nale¿y do jego obowi¹zków. + + + Chcia³bym sprawdziæ swoj¹ odpornoœæ na pole psioniczne. + + + A wiêc Herman ciê do mnie przys³a³? Dobrze, wyjaœniê ci to tak prosto, jak tylko siê da. ¯eby prawid³owo przeanalizowaæ twoj¹ odpornoœæ na emisje psioniczne, potrzebujê kompleksu naukowo-badawczego i wielu lat badañ. A mam tylko zestaw polowy z kilkoma brudnymi probówkami. + + + Wiêc to niemo¿liwe? + + + Nie tak szybko. Nie chodzi o pe³n¹ analizê. Do naszych celów musimy tylko okreœliæ odpornoœæ twoich neuronów na emisje psioniczne. Wystarczy podstawowe badanie. Wygl¹da na to, ¿e twoja g³owa jest w porz¹dku. To znaczy, ¿e mo¿esz znaleŸæ siê pod wp³ywem stosunkowo wysokiego poziomu emisji psionicznych bez utraty przytomnoœci. + + + Co z hipotez¹ dotycz¹c¹ zwiêkszonej agresji mutantów? + + + Mam na ten temat dwie teorie. Pierwsza mówi, ¿e agresja mutantów jest powodowana wtargniêciem kilku osób na ich terytorium, co jest normalnym zachowaniem w przypadku niezmutowanych gatunków, w tym ludzi. Druga teoria mówi, ¿e mutanty w jakiœ sposób s¹ w stanie odbieraæ aktywne emisje naszych urz¹dzeñ pomiarowych. Rzecz jasna, ta druga teoria jest bardziej frapuj¹ca. + + + Jak mo¿na to sprawdziæ? + + + Urz¹dzenie pomiarowe powinno zostaæ w³¹czone w miejscu, w którym wczeœniej nie stwierdzono aktywnoœci mutantów. Co wiêcej, by zmniejszyæ efekt wywo³any wtargniêciem na teren ludzi, eksperyment powinna przeprowadziæ najwy¿ej jedna osoba. + + + Przynios³em skaner. + + + Jakie otrzyma³eœ wyniki? + + + Nie wiem, co poka¿e twoje urz¹dzenie, ale myœlê, ¿e twoja hipoteza siê potwierdzi³a. Wystarczy³o 5 minut od w³¹czenia skanera, ¿eby natar³y na mnie snorki. + + + Tak myœla³em. Z jakiegoœ powodu najmniej po¿¹dane teorie zwykle okazuj¹ siê s³uszne. Tak czy siak, dobrze, ¿e to sprawdzi³eœ. Teraz musimy dopilnowaæ, ¿eby ka¿dy oddzia³ wysy³any na pomiary by³ przygotowany na ciê¿sze warunki. + + + Jestem gotów sprawdziæ s³usznoœæ tej hipotezy. + + + Bardzo siê cieszê, ¿e s¹ jeszcze ludzie gotowi do poœwiêceñ dla dobra nauki. Najlepszym miejscem na ten eksperyment jest osuwisko na po³udniowym skraju kamienio³omów - ten obszar pe³en jest anomalii grawitacyjnych, które mutanty staraj¹ siê omijaæ. Urz¹dzenie, które ci dajê, ma wbudowany wykrywacz mutantów. Kiedy zwrócisz urz¹dzenie po przeprowadzeniu doœwiadczenia, bêdê móg³ przeœledziæ wp³yw poziomów emisji na agresjê mutantów. Jesteœ gotów? + + + Tak, zrobiê to. + + + Nie w tej chwili. + + + Móg³bym w jakiœ sposób dostaæ jeden z waszych kombinezonów? + + + To niezgodne z przepisami. Musimy rozliczyæ siê z ka¿dej sztuki wyposa¿enia. Z drugiej strony, znaj¹c Hermana, pewnie zamówi³ wiêcej, ni¿ potrzebujemy. Myœlê, ¿e w pewnych okolicznoœciach da³oby siê go przekonaæ, by siê z jednym rozsta³. + + + Potrzebujecie jakichœ artefaktów? + + + Przykro mi, nie. Nie wysy³amy ju¿ przypadkowych ludzi ze zleceniami na poszukiwanie artefaktów. Podpisaliœmy kontrakt z doœwiadczonym ³owc¹ artefaktów, który przynosi nam to, czego potrzebujemy. + + + Mogê znaleŸæ wam now¹ ochronê. + + + To by siê przyda³o. W Zonie nigdy nie jest spokojnie... Porozmawiaj o tym z Hermanem - on tu jest szefem. + + + Mam od ciebie dostaæ skanery do badania anomalii. + + + Proszê. Jak powiedzia³ Herman, trzy sztuki. + + + Proszê. Jak powiedzia³ Herman, jeszcze dwa. + + + Jak mogê zdobyæ jeden z waszych kombinezonów? + + + Od wyposa¿enia jest tutaj Herman. Ale oszczêdzê ci zachodu - nic od niego nie wyci¹gniesz. Spróbuj raczej porozmawiaæ z Oziorskim. Z jednej strony, jest bardziej wyluzowany, z drugiej - mo¿e wywrzeæ wp³yw na Hermana. + + + Co ciê tu sprowadza? + + + S³uchaj, gdzie siê podziali najemnicy? Ci, którzy was ochraniali? + + + Jak leci? + + + S³uchaj... Ktoœ zastrzeli³ najemników, którzy was ochraniali. Sam nie przepada³em za nimi, ale to ju¿ przesada... + + + CS-3a - super! To niez³y pancerz... Przypominaj¹ mi siê dawne czasy... + + + Mo¿esz odblokowaæ modu³ pamiêci? + + + Popatrzmy... Nie ma problemu. Robi³em ju¿ takie rzeczy... To nie potrwa d³u¿ej ni¿ godzinê. Zrobiê to za... 2000. Zgoda? + + + Zgoda. + + + Dobrze. Dam ci znaæ, jak go odblokujê. + + + Nie mam tyle pieniêdzy. + + + Hm. Wiesz, gdzie mnie znaleŸæ. W¹tpiê, by ktoœ poradzi³ sobie z tym lepiej ni¿ ja. + + + Zastanowiê siê. + + + Jak powiedzia³em, zrobiê to w godzinê za 2000. + + + I co, odblokowa³eœ modu³ pamiêci? + + + Godzina jeszcze nie minê³a. Powiedzia³em, ¿e siê z tob¹ skontaktujê, jak skoñczê. + + + Tak, proszê. Jest przygotowany do odczytu informacji. + + + Znalaz³em dziwny pó³artefakt. Jesteœ zainteresowany? + + + Oczywiœcie. Sk¹d go masz? + + + Z Zatonu, z opuszczonej pog³êbiarki. + + + Zgoda. + + + Nie, dziêkujê! Poszukam innego nabywcy. + + + Co tu robi¹ najemnicy? + + + Mamy z nimi umowê na ochronê naszego mobilnego laboratorium. Wyprzedzaj¹c twoje pytanie, odpowiem, ¿e musia³em ich zatrudniæ, nie mia³em wyboru. Z powodu jakiejœ operacji wojskowej nie otrzymaliœmy odpowiedniej ochrony dla naszego laboratorium. Jeœli do tego dodaæ, ¿e stalkerzy nagle dostali hyzia na punkcie szukania artefaktów, nie mia³em innego wyboru, musia³em zatrudniæ najemników, ¿eby zapewniæ bezpieczeñstwo laboratorium. + + + Co tu robicie? + + + Badamy rozmaite zjawiska. + + + Jaki jest cel waszych badañ? + + + Prowadzimy badania podstawowe. Innymi s³owy, nie testujemy tu nowych kombinezonów, nie wynajdujemy nowych lekarstw ani nic takiego. Próbujemy znaleŸæ logiczne wyjaœnienie rzeczy napotykanych w Zonie. Jeœli uda nam siê odkryæ tajemnice kryj¹ce siê za choæby dziesiêcioma procentami obserwowalnych tutaj zjawisk, œwiatowy rozwój techniczny zostanie pchniêty mocno do przodu. + + + Co wiecie na temat Zony? + + + Niewiele, szczerze mówi¹c. Dopiero zaczynamy rozumieæ mechanizmy stoj¹ce za niektórymi spotykanymi zjawiskami, ale niestety jesteœmy jeszcze daleko od zrozumienia Zony jako systemu. Dodatkowo utrudniaj¹ to zmiany, którym co pewien czas podlega Zona. Nie chodzi o pojawianie siê nowych anomalii i inne takie drobiazgi. Mówiê o powa¿niejszych zmianach, które nie zawsze widaæ go³ym okiem. Jednym z przyk³adów jest s³abniêcie pola magnetycznego. Najsmutniejsze jest to, ¿e nie wiemy, do czego to wszystko zmierza. Mo¿emy tylko siedzieæ i czekaæ. + + + Od dawna jesteœcie w Zonie? + + + Nied³ugo, mniej wiêcej tydzieñ. Owszem, odwiedzi³em wczeœniej kilka razy laboratorium Sacharowa. Wci¹¿ ¿a³ujê, ¿e wczeœniej nie ruszyliœmy z t¹ ekspedycj¹. Tyle razy mówi³em ludziom z Ministerstwa Edukacji, ¿e musimy mieæ w pogotowiu dwa w pe³ni wyposa¿one mobilne laboratoria... Kiwali tylko swoimi nadêtymi g³owami i tyle! Przez nich prawie przegapiliœmy najwiêksz¹ szansê, jak¹ kiedykolwiek da³a nam Zona! + + + Rozumiem. + + + S¹ jakieœ informacje o skanerach, które umieœci³em w anomaliach? + + + Która konkretnie anomalia ciê interesuje? + + + Anomalia obok parkingu. + + + Tak, nasze urz¹dzenia wskazuj¹ obecnoœæ artefaktów w tej anomalii! + + + Niestety, w tej anomalii nie ma œladu artefaktów. + + + Anomalia Betonowa Wanna. + + + Anomalia Bitumin. + + + Anomalia Mokrad³o. + + + Anomalia Popielisko. + + + To na razie tyle. + + + S³ucham uwa¿nie. + + + Ostatnie wydarzenia pokaza³y jasno, ¿e nasz zespó³ badawczy nie jest odpowiednio przygotowany do prowadzenia w³aœciwych prac polowych. Z drugiej strony ty w³asnorêcznie poradzi³eœ sobie z kontrolerem! To zdumiewaj¹ce! + + + Do czego zmierzasz? + + + Do tego, ¿e logicznym wyjœciem bêdzie dla nas próba zatrudnienia takiego wykwalifikowanego eksperta jak ty. Nasza grupa naukowa potrzebuje twojej pomocy. Musimy wykonaæ pomiary, rozmieœciæ skanery... + + + Mów dalej... + + + Próbujê znaleŸæ korelacjê pomiêdzy emisjami i pojawianiem siê artefaktów w anomaliach. Mam teoriê, ¿e nastêpn¹ emisjê da siê przewidzieæ na podstawie iloœci i jakoœci artefaktów, które siê pojawiaj¹. W celu przeprowadzenia dok³adnych obliczeñ muszê zebraæ dane statystyczne. Musimy tylko rozmieœciæ kilka skanerów w œrodku anomalii ró¿nych rodzajów. + + + Przykro mi, nie jestem zainteresowany. + + + Szkoda. Przys³u¿y³byœ siê nauce. + + + Dobrze, pomogê wam. + + + Doskonale! Musisz wzi¹æ skanery od Nowikowa i rozmieœciæ je w anomaliach oznaczonych w twoim PDA. Gdy skoñczysz, wróæ do mnie - muszê omówiæ z tob¹ jeszcze jedn¹ kwestiê dotycz¹c¹ skanerów i pomiarów. + + + Zastanowiê siê nad tym i wrócê póŸniej. + + + Umieœci³em skanery w anomaliach. + + + Doskonale! Mam ju¿ pierwsze wyniki. Nie mogê siê doczekaæ emisji - dostarczy nam koniecznej próbki statystycznej... + + + Zamieniam siê w s³uch! + + + Gdy siê do niej zbli¿y³em i wyj¹³em detektor, wszystko wokó³ mnie zaczê³o siê zakrzywiaæ, jakby by³o œciskane. Po pewnym czasie zupe³nie znik¹d zaczê³y pojawiaæ siê cia³a martwych stalkerów! Potem wszystko usta³o. + + + Niesamowite! Oczywiœcie, to tylko okruszki informacji i nie da siê z nich ustaliæ nic pewnego, ale wprowadzimy ten opis do naszych rejestrów. Nazwiemy tê anomaliê B¹blem przestrzennym! + + + Widzê, ze macie now¹ ochron¹. + + + Tak, jest ca³kiem niez³a. Dziêki nim czujemy siê bardzo bezpiecznie. Dziêkujê ci za pomoc - oto twoje wynagrodzenie. + + + Proszê spojrzeæ na te dokumenty. + + + Popatrzmy... Nie bêdê pyta³, sk¹d je masz, ale to po prostu niesamowite! Muszê zrobiæ kopie... Przy okazji, oto twoje skromne wynagrodzenie. + + + Co siê sta³o z wasz¹ ochron¹? + + + Nie wiem, zwyczajnie zniknê³a! + + + Mam kontakty w Zonie. Znajdê wam now¹ ochronê. + + + By³oby wspaniale! W zamian za pracê otrzymaj¹ pe³ne wsparcie naukowe i najnowsze osi¹gniêcia techniczne! Ty te¿ dostaniesz nagrodê! + + + Zgoda! + + + Nie mogê siê doczekaæ! + + + Zmieni³em zdanie. + + + Szkoda. + + + Zdarza siê. + + + Coœ jeszcze? + + + Zabito naszych stra¿ników! Zastrzelono ich przed samym bunkrem! + + + W fabryce Jupiter znalaz³em trochê dokumentów. Chcesz na nie rzuciæ okiem? + + + To ciekawe, ale niezbyt przydatne. Dziêkujê za trud. Jeœli znajdziesz coœ jeszcze, przynieœ to do mnie. + + + Kiedy szuka³em dokumentów, zaatakowali mnie najemnicy. Oto PDA ich przywódcy. + + + No ³adnie, a myœla³em, ¿e s¹ tu, ¿eby nas ochraniaæ. Wygl¹da na to, ¿e bêdê musia³ poruszyæ tê sprawê u swoich zwierzchników... Bardzo ci dziêkujê, m³ody cz³owieku. + + + Niestety, nie zawieraj¹ ¿adnych interesuj¹cych informacji. + + + Jest coœ takiego: musimy poznaæ ostatnie osi¹gniêcia dokonane w fabryce Jupiter. Potrzebne s¹ mi dokumenty techniczne dotycz¹ce tych prac. Zapewne nale¿y ich szukaæ w czêœci administracyjnej fabryki. + + + Poszukam ich i przyniosê wszystko, co znajdê. + + + Nie bêdê móg³ pomóc ci w tej sprawie. + + + Przynios³em dokumenty z Jupitera. + + + To ciekawe, ale niezbyt przydatne. Dziêkujê za trud. Jeœli znajdziesz coœ jeszcze, przynieœ to do mnie. + + + Kiedy szuka³em dokumentów, zaatakowali mnie najemnicy. Oto PDA ich przywódcy. + + + No ³adnie, a myœla³em, ¿e s¹ tu, ¿eby nas ochraniaæ. Wygl¹da na to, ¿e bêdê musia³ poruszyæ tê sprawê u swoich zwierzchników... Bardzo ci dziêkujê, m³ody cz³owieku. + + + Spróbujê znaleŸæ anomaliê. + + + Nie mam czasu. + + + Przyszed³em w sprawie mojego udzia³u w waszych badaniach. + + + Wiem, ¿e wszyscy siê uciesz¹, jeœli zgodzisz siê jeszcze raz przys³u¿yæ nauce. Co ciê interesuje? + + + Chcia³bym pomóc w wykonywaniu pomiarów. + + + Naprawdê chcesz nam pomóc w przeprowadzeniu pe³nego zewnêtrznego skanowania? + + + Tak, pomogê - powiedzcie mi, co mam robiæ. + + + Nie, muszê to jeszcze raz przemyœleæ. + + + Wspomnia³eœ o rozmieszczeniu skanerów. + + + Próbujê znaleŸæ korelacjê pomiêdzy emisjami i pojawianiem siê artefaktów w anomaliach. Mam teoriê, ¿e nastêpn¹ emisjê da siê przewidzieæ na podstawie iloœci i rodzaju artefaktów, które siê pojawiaj¹. W celu przeprowadzenia dok³adnych obliczeñ muszê zebraæ dane statystyczne. Musimy tylko rozmieœciæ kilka skanerów w œrodku anomalii ró¿nych rodzajów. + + + Dobrze, pomogê wam. + + + Doskonale! Musisz wzi¹æ skanery od Nowikowa i rozmieœciæ je w anomaliach oznaczonych w twoim PDA. + + + Zastanowiê siê nad tym i wrócê póŸniej. + + + Skanery w anomaliach przesy³aj¹ informacje. Teraz musimy tylko zaczekaæ na wyniki. Jeœli chcesz, mo¿esz rozmieœciæ skanery w kolejnych anomaliach. Dodatkowe informacje zawsze nam siê przydadz¹, a w nagrodê powiadomimy ciê, kiedy w anomaliach pojawi¹ siê artefakty. + + + Zgadzam siê. + + + Doskonale! Musisz wzi¹æ skanery od Nowikowa i rozmieœciæ je w anomaliach oznaczonych w twoim PDA. + + + Zastanowiê siê nad tym i wrócê póŸniej. + + + Niestety, mamy przepis, który zabrania nam przydzielania tej samej osobie wiêcej ni¿ jednego zadania. Przykro mi, ale musimy trzymaæ siê przepisów. + + + Otrzymaliœcie wyniki pomiarów pola anomalii od oddzia³u, który ochrania³em? + + + Chcia³em jeszcze dodaæ, ¿e pomiary przyci¹gnê³y uwagê mutantów i zombi. Odparcie ich kosztowa³o nas wiele czasu i zachodu. + + + Wiêc twoim zdaniem reagowa³y na pomiary? Ciekawe. W takim razie wygl¹da na to, ¿e równie¿ ty potwierdzasz hipotezê Oziorskiego, ¿e mutanty telepatycznie odczytuj¹ ró¿ne pola. Myœlê, ¿e warto porozmawiaæ z nim o tym. Oto twoje wynagrodzenie za wykonan¹ pracê. Zas³u¿y³eœ na nie! + + + Wiêc twoim zdaniem reagowa³y na pomiary? Ciekawe. W takim razie wygl¹da na to, ¿e równie¿ ty potwierdzasz hipotezê Oziorskiego, ¿e mutanty telepatycznie odczytuj¹ ró¿ne pola. Powinieneœ mu o tym powiedzieæ. Przykro mi z powodu stalkerów. Czêœæ naszych skromnych funduszy przeznaczymy na odszkodowania dla ich rodzin. Reszta jest twoim wynagrodzeniem za wykonan¹ pracê. Dziêkujê! + + + Móg³bym w jakiœ sposób dostaæ jeden z waszych kombinezonów? + + + Wykluczone! Liczba kombinezonów jest ograniczona i nie mogê sobie pozwoliæ na ich rozdawanie! + + + Co chcesz mi powiedzieæ? + + + Widzia³eœ mo¿e ludzi odpowiedzialnych za pilnowanie naszego bunkra? + + + Mów dalej. + + + Nie uwierzysz, ale ktoœ zabi³ naszych stra¿ników, przed samym bunkrem! + + + Potrzebujecie pomocy? + + + W tej chwili próbujemy zebraæ próbki nowego typu. Same z siebie nie zachowuj¹ siê jak anomalie, ale w przeprowadzanych na nich eksperymentach uzyskujemy niewiarygodne wyniki! + + + Mów dalej... + + + Proszê powiedzieæ wprost, co trzeba zrobiæ. + + + Dobrze... Stalkerzy, którzy znaleŸli pole psioniczne, uwa¿aj¹, ¿e znajduje siê w nim legowisko mutantów. Nie wierzê im... To znaczy, ¿aden mutant poza kontrolerem nie prze¿y³by w zmiennym polu psionicznym! Nie przejmuj siê, nasi ch³opcy zajm¹ siê mutantami. Jesteœ nam potrzebny, bo regularny kontakt z polami psionicznymi obni¿y³ odpornoœæ naszych stalkerów na ich dzia³anie. + + + To znaczy, ¿e chcecie, ¿ebym wszed³ w nieznane pole psioniczne i przyniós³ wam próbkê czegoœ, czego mo¿e tam w ogóle nie ma, a jeœli jest, to nikt nie wie, jak to wygl¹da? + + + W³aœnie! Ta misja jest ogromnie wa¿na dla nauki w ogóle i dla naszej grupy w szczególnoœci. Twoja pomoc bêdzie nieoceniona. Jeœli masz w¹tpliwoœci, porozmawiaj z Oziorskim. On przeprowadzi konieczne analizy, które okreœl¹ twoj¹ obecn¹ odpornoœæ na emisje psioniczne. Mo¿esz te¿ zapytaæ naszych stalkerów, oni ci wszystko wyjaœni¹. To co, przys³u¿ysz siê nauce? + + + Tak. + + + Nie wiecie? Wasz oddzia³ stalkerów nie ¿yje. + + + Poniewa¿ nie pojawi³eœ siê ostatnim razem w tunelu, bêdzie mi bardzo trudno przekonaæ oddzia³ do pracy z tob¹. + + + To by³ wypadek. + + + Wierzê ci, ale nasza grupa do zbierania materia³ów sk³ada siê z osobliwych ludzi, nie powinieneœ ich sprawiaæ im zawodu. Porozmawiam z nimi jeszcze i chyba uda mi siê namówiæ ich do zmiany zdania. Tym razem mnie nie zawiedŸ, czekam na próbkê. + + + Wybacz mi, ale muszê odmówiæ. Twój sprzêt nie nadaje siê do zmiennego pola psionicznego - spotka ciê szybka i bolesna œmieræ, a nie chcê mieæ ciebie na sumieniu. + + + Mam próbkê. + + + Naprawdê? Poka¿, nie mogê siê doczekaæ! + + + Przynios³em ci próbkê. Jak siê okaza³o, w tunelu by³ kontroler. Próbowa³ przej¹æ kontrolê nad waszym oddzia³em i prawie mu siê uda³o. Ale zd¹¿y³em go zabiæ. + + + Jesteœ niesamowity! Zabi³eœ kontrolera i uratowa³eœ stalkerów od ataku psionicznego... Gdybym nie wiedzia³, ¿e to prawda, nie uwierzy³bym ci. To po¿yteczne doœwiadczenie i cenna próbka. Dziêkujê w imieniu w³asnym, za³ogi i wszystkich naukowców œwiata! + + + Niestety, oddzia³ zosta³ zaatakowany przez kontrolera. Musia³em siê broniæ. Kontroler nie ¿yje, ale stalkerzy te¿. + + + Kontroler, powiadasz? To straszne, kto móg³ to przewidzieæ? ¯al mi tych dzielnych ch³opców... Wiernie s³u¿yli nauce. Chocia¿ w³aœciwie nie byli naukowcami, zrobili dla nauki wiêcej ni¿ niejeden profesor! Dziêkujê, zechciej przyj¹æ tê skromn¹ nagrodê. + + + Niestety, oddzia³ zosta³ zaatakowany przez kontrolera. Ledwo uszed³em z ¿yciem. + + + Co tu robi¹ najemnicy? + + + Wchodz¹ mi w drogê, ale to moje prywatne zdanie. Najpierw prosili mnie, ¿eby im przykrêciæ albo naprawiæ to czy tamto. A wczoraj wyzbyli siê ju¿ resztek wstydu i zaczêli wypytywaæ, jak dzia³a nasz sprzêt. Nie rozumiem, jak to ma im pomóc w ochronie bunkra. + + + Jakie modyfikacje sprzêtu mo¿esz wykonaæ? + + + Jak widzisz, to oœrodek naukowy... Nie ma tu kevlaru ani broni na czêœci zapasowe. Mogê najwy¿ej po³ataæ kamizelkê kuloodporn¹ albo zmodyfikowaæ j¹ za pomoc¹ jednego z moich w³asnych wynalazków. Jak mo¿esz sobie wyobraziæ, sprzêtu mi nie brakuje. + + + Dziêki tobie i próbce z pola psionicznego Oziorskiemu uda³o siê wymyœliæ sposób ochrony ludzi przed emisjami. Zastosowa³em jego pomys³ w praktyce. Wynik mogê zainstalowaæ ci w kombinezonie, jeœli chcesz. + + + Poza zwyk³ymi ulepszeniami mogê zaproponowaæ ci filtry i ochronê psioniczn¹. W koñcu to dziêki tobie powsta³y... Oziorski i Herman cieszyli siê, jakby im ktoœ w kieszeñ narobi³! + + + Poza zwyk³ymi ulepszeniami mogê zaproponowaæ ci izolacjê i ochronê psioniczn¹. W koñcu to dziêki tobie powsta³y... Oziorski i Herman cieszyli siê, jakby im ktoœ w kieszeñ narobi³! + + + Mam pe³en zakres modyfikacji: izolacja, filtry i ochrona psioniczna. W kombinezonie wyposa¿onym w nie wszystkie mo¿esz wejœæ w ka¿d¹ anomaliê... Mo¿e nawet uda ci siê z niej wyjœæ. Przy okazji, dziêkujê, ¿e wzi¹³eœ udzia³ w badaniach Hermana. Bez tego nie mia³bym dla ciebie takiej oferty. + + + Opowiedz mi o waszym bunkrze. + + + Hm. Co chcesz wiedzieæ? + + + Czym zajmuje siê laboratorium? + + + W¹tpiê, by nawet Herman i Oziorski byli w stanie odpowiedzieæ. Na pewno prowadz¹ tu rozmaite badania... Ale rezultaty s¹ marne. Mo¿esz porozmawiaæ z Oziorskim. Na podstawie jego teorii uda³o mi siê opracowaæ kilka przyzwoitych modyfikacji kombinezonów. + + + Co wiesz na temat Zony? + + + W naukowym sensie nic, ale mam du¿e doœwiadczenie praktyczne w Zonie. Tutaj liczy siê tylko to, co zwiêksza twoje szanse prze¿ycia. Zony nie obchodzi, czy jesteœ bandyt¹, czy stalkerem zbieraj¹cym artefakty, ¿eby wy¿ywiæ rodzinê. Tutaj prze¿ywaj¹ tylko najlepiej przystosowani. + + + D³ugo jesteœ w Zonie? + + + Ju¿ jakiœ czas. Na pocz¹tku polowa³em na artefakty jak ka¿dy, ale pogarsza³o mi siê zdrowie, a¿ wreszcie uzna³em, ¿e dalej nie dam rady. Na szczêœcie mam trochê oleju w g³owie, wiêc nietrudno mi znaleŸæ pracê. Oko³o roku spêdzi³em we frakcji z³o¿onej z by³ych naukowców. Dobrzy z nich byli ludzie... Szkoda, ¿e zginêli w œlepej pogoni za jakimœ niejasnym celem. PóŸniej przez pewien czas wêdrowa³em po Zonie i w koñcu zacz¹³em pracowaæ dla naukowców. Na razie nie ¿a³ujê. + + + Nie mam wiêcej pytañ. + + + Zamierzam wejœæ do zmiennego pola psionicznego. Masz dla mnie jakieœ rady? + + + Co mogê powiedzieæ? W¹tpiê, ¿ebyœ by³ obeznany z teori¹ pola informacyjno-energetycznego. Krótki kontakt z polem psionicznym nie jest groŸny... na d³u¿sz¹ metê. Ale nie rozluŸniaj siê za bardzo, gdy tam bêdziesz. Kto lekcewa¿y pola psioniczne, koñczy jako zombi. + + + Mo¿esz w³amaæ siê do stalowego kontenera? + + + To nie dla mnie. Nie mam odpowiedniego sprzêtu... Poza tym to wbrew naszym przepisom BHP... + + + Mo¿esz odszyfrowaæ czarn¹ skrzynkê? + + + Mogê, ale nie zrobiê tego. Dawniej robi³em takie rzeczy... I nie odpowiada³o mi to. Zbyt wiele k³opotów... Mam doœæ zajêæ u naukowców. + + + Czym wyró¿nia siê CS-3a? + + + Poza tym, ¿e go skonstruowa³em? To jeden z najlepszych kombinezonów w Zonie. Dlatego go nosisz, nie? Jest lekki, przenoœny i oparty na solidnej kamizelce kuloodpornej. Sam doda³em do niego ochronê przed anomaliami.. Szkoda, ¿e brakowa³o nam wtedy materia³ów. Ale czego innego siê spodziewaæ w œrodku bagna. Tak czy siak, wystarczy³oby kilka poprawek i mia³byœ zupe³nie nowoczesny kombinezon. Mam do dyspozycji mnóstwo sprzêtu, wiêc nie by³oby z tym problemu. + + + Pracujesz dla Sowy? + + + Nie. Niedawno pomóg³ mi coœ zdobyæ... Przys³uga za przys³ugê. + + + Sowa poprosi³, ¿ebym przyniós³ ci detektory. Proszê. + + + Dobrze. Popracujê na nich i oddam je Sowie przez przewodników... Reszta to ju¿ twoje osobiste interesy z Sow¹. + + + O! Wiêc to ty sprzedawa³eœ broñ bandytom na Zatonie! + + + Cicho... Co ci do ³ba strzeli³o, ¿e gadasz o tym tutaj? Nie znamy siê, rozumiesz? + + + Jasne. + + + Mo¿e powiem dowódcy o twoim interesie na boku? + + + Co mu powiesz? Nic na mnie nie masz. To ty pomog³eœ mi za³atwiæ œwiadków. Wyjdziesz na durnia, oskar¿aj¹c mnie bez dowodów. + + + Znalaz³em u martwych najemników PDA. Zapisano w nim kontrakt na zabicie mnie. Ty jesteœ klientem. + + + Mam ciê ju¿ doœæ... S³uchaj, daj mi ten PDA, a dostaniesz ode mnie doskona³¹ broñ u¿ywan¹ tylko przez elitarne oddzia³y Powinnoœci. Co ty na to? + + + Dobra, wezmê tê pukawkê. + + + Zatrzymaj j¹ sobie. Nie chcê prezentów od takiego dwulicowego drania! + + + Mam kolejnego PDA z kontraktem na zabicie mnie. Znowu jesteœ klientem. + + + Cholera... Przeklêci najemnicy... Nie mo¿na im zaufaæ. S³uchaj, zakoñczmy to ju¿. Zrobimy tak. Najemnicy przestan¹ ciê szukaæ, a ty zostawisz mnie w spokoju. W ramach odszkodowania zaprowadzê ciê do tajemnego magazynu Powinnoœci, sk¹d bêdziesz móg³ wzi¹æ tyle broni, ile uniesiesz. + + + Dobrze, zróbmy tak. + + + No i w porz¹dku, spotkajmy siê tam. Schowek jest obok kamienio³omów. + + + Nigdzie siê nie ruszê. Dasz mi ca³y towar tutaj. + + + Nic tu nie mam! Nie jestem taki g³upi! Albo spotkamy siê przy schowku, albo odejdziesz z kwitkiem. + + + Nic z tego. + + + Nie chcê prezentów od takiego dwulicowego drania! + + + Chcê opuœciæ Zonê. + + + Na pewno? Nie bêdzie ju¿ powrotu. + + + Na pewno. ChodŸmy. + + + Mo¿e jednak na razie zostanê. + + + Popatrzmy... Twoja w¹troba jest wiêksza, ni¿ oczekiwa³em, ale to ju¿ ryzyko zawodowe, nie? Nie licz¹c tego, jesteœ zdrów jak burer. + + + By³by ca³kiem normalny, gdyby siê nie œwieci³. A tak - robi okropne wra¿enie. IdŸ sam sobie go obejrzyj... Nie s¹dzê, ¿eby by³a to mi³a wycieczka. + + + Dobrze, twoja sprawa. + + + „Byli” cz³onkowie Monolitu? No popatrz... Porêczysz za nich? + + + „Byli” cz³onkowie Monolitu? Nie, dziêkujê. Potrzeba mi zgrai wœciek³ych fanatyków jak wrzodu na ty³ku. + + + Ha. Zuch ch³opak. Troszczysz siê o swoich, wiêc rozumiesz ¿e musisz mi posmarowaæ. Co dla mnie masz, artefakt czy 15000? + + + Przynios³em artefakt. + + + W porz¹dku. Jaki? + + + Nie mam tak cennego artefaktu. + + + P³omieñ. + + + Z³ota rybka. + + + Œwietlik. + + + Œnie¿ynka. + + + Hm... W tej chwili nie mam ¿adnego. + + + Powiedzia³em, co mia³em do powiedzenia. Teraz ty mów. + + + Na razie. + + + Oczywiœcie! Wci¹¿ trzeba zbadaæ zmienne pole psioniczne, im szybciej, tym lepiej. Pozwól, ¿e zapytam - jesteœ pewien, przekona³eœ siê ju¿, ¿e ta wyprawa jest stosunkowo bezpieczna? Potrzebujemy twojej pomocy w uzyskaniu próbki. Jesteœ sk³onny przys³u¿yæ siê nauce? + + + Mo¿e uda mi siê znaleŸæ kilku dobrych ludzi do waszej nowej grupy badawczej. + + + Naprawdê? By³oby to bardzo mile widziane, a pewnie i nagroda by siê znalaz³a. + + + Dobrze. Znajdê odpowiednich ludzi. + + + Zastanowiê siê jeszcze nad tym. + + + Proszê. Znalaz³em w tym tunelu kontrolera. Potem go zabi³em. + + + Jesteœ niesamowity! Zabi³eœ kontrolera i zdoby³eœ to, czego nam potrzeba... Gdybym nie wiedzia³, ¿e to prawda, nie uwierzy³bym ci. To po¿yteczne doœwiadczenie i cenna próbka. Twój wk³ad w rozwój nauki jest ogromny. Przyjmij najszczersze wyrazy wdziêcznoœci ode mnie i wszystkich naukowców œwiata! + + + Proszê. Znalaz³em w tym tunelu kontrolera. Ledwo uszed³em z ¿yciem. + + + Kontroler, powiadasz? To straszne, kto móg³ to przewidzieæ? Najwa¿niejsze, ¿e przynios³eœ próbkê, dziêki czemu masz ogromny wk³ad w rozwój nauki. Dziêkujê, zechciej przyj¹æ tê skromn¹ nagrodê. + + + Jak wam siê podoba nowa grupa badawcza? + + + Ca³kiem w porz¹dku. Kompetentni m³odzi ludzie. Proszê, weŸ to. To za dobór personelu, ¿e tak powiem. + + + Czeœæ, brachu. Cieszê siê, ¿e ciê widzê, ale chcia³bym jakiœ czas pobyæ w samotnoœci. + + + Przychodzê w sprawie wiêzionego stalkera. Chcê go wykupiæ. + + + A ja chcê, by szanowano bandytów i nasze zasady, ale nie ci¹gnie mnie do niepotrzebnych k³opotów... Na razie wystarczy 15000 albo odpowiedni artefakt. Jestem uczciwym cz³owiekiem, nie wezmê wiêcej, ni¿ mi siê nale¿y. + + + Oto pieni¹dze. + + + Szanujê to, co robisz. Zabierz tego frajera i powiedz stalkerom, ¿e nastêpnym razem stawka bêdzie wy¿sza. + + + Nie mam tyle przy sobie. + + + Jasne, jesteœ go³y i weso³y. Co jeszcze masz do powiedzenia? + + + Nie mam w tej chwili nic odpowiedniego - wrócê póŸniej. + + + Popatrzmy... Nie ma tu nic o znaczeniu strategicznym, ale mo¿e siê to przydaæ. Kupimy wszystko po 500 za dokument. Zgoda? + + + Popatrzmy... Do licha... Te informacje mog³yby nadszarpn¹æ reputacjê Powinnoœci... i to powa¿nie! Kupiê je za 4000. + + + Ciekawe. Mogê kupiæ to od ciebie za 2000. + + + Tak, ale cena jest taka jak wczeœniej: 2000. + + + W porz¹dku, na razie. + + + Ale¿ to straszne! Có¿ mog³o im siê staæ? Hm... Mo¿liwe, ¿e to sprawka mutantów. Muszê zapytaæ Oziorskiego, o który rodzaj mutantów mo¿e chodziæ. W ka¿dym razie pole psioniczne trzeba zbadaæ. Ta misja jest ogromnie wa¿na dla nauki w ogóle i dla naszej grupy w szczególnoœci. Potrzebujemy twojej pomocy w zdobyciu próbki. Jeœli masz w¹tpliwoœci, porozmawiaj z Oziorskim. On przeprowadzi konieczne analizy, które okreœl¹ twoj¹ obecn¹ odpornoœæ na emisje psioniczne. To co, przys³u¿ysz siê nauce? + + + Zastanowiê siê nad tym. + + + Nasza grupa badawcza, z³o¿ona z miejscowych stalkerów, znalaz³a niedawno bardzo dziwne pole psioniczne. Wed³ug naszych teorii i wykonanych pomiarów pole to wywo³uje zmienne, a nie sta³e efekty psioniczne. + + + Niestety, cz³onkowie naszej grupy badawczej nie ¿yj¹. Dopóki nie znajdziemy zastêpstwa, nie wykonamy ¿adnych pomiarów. + + + Zaczekaj... Zechcia³byœ poœwiêciæ mi chwilê? + + + Jakie wyniki przynios³o skanowanie anomalii? + + + Masz dla mnie jak¹œ inn¹ pracê? + + + S³ysza³em o niej. + + + Niestety, nie uda³o mi siê jeszcze nak³oniæ Hermana, by zorganizowa³ grupê poszukiwawcz¹... Przyznajê, plotki na temat tego zjawiska czêsto sobie przecz¹, ale coœ mi mówi, ¿e Oaza istnieje. Intuicja rzadko mnie zawodzi, wiêc jeœli znajdziesz Oazê i przyniesiesz mi dowód jej istnienia, bêdê ci bardzo wdziêczny. + + + Poszuka³bym jej, ale ju¿ by³em w Oazie. + + + Hm... Chyba siê przes³ysza³em. Co powiedzia³eœ? + + + Przyszed³em sp³aciæ d³ug Wano. + + + Tak, pamiêtam go. Jego d³ug jest spory, a odsetki ci¹gle lec¹. Doszed³ ju¿ do 7000. + + + W porz¹dku, proszê. + + + Powiedz Wano, ¿e d³ug jest sp³acony. + + + W porz¹dku. + + + Nie mam tyle. + + + Wróæ, jak bêdziesz mia³. + + + Odsetek nie by³o w umowie. + + + O czym ty mówisz? Masz mnie za frajera, który po¿ycza forsê na zero procent? 7000, i ani grosza mniej. + + + Zastanów siê dobrze. Mam tu moj¹ pukawkê i nie zawaham siê jej u¿yæ... Powiedz mi, co twój trup zrobi z tymi odsetkami? + + + Dobrze, dobrze, spokojnie, panie szefie! Na pewno siê dogadamy. Zap³aæ mi 5000, i bêdziemy kwita. + + + Ha... WsadŸ sobie swojego korkowca w ty³ek, gnojku! Z odsetkami bêdzie 7000, koniec gadania. + + + Zapomnia³eœ o mnie? Ci¹gle mam pukawkê. + + + Wolê ciê zastrzeliæ za darmo. + + + Zastanowiê siê nad tym. + + + Z odsetkami - 7000. + + + Na razie nie biorê siê za wiêksze zlecenia. Muszê dojœæ do siebie. Wiesz, mo¿e nawet wrócê do domu... Znajdê porz¹dn¹ pracê i zapomnê o tych wszystkich artefaktach... Nie wiem tylko, czy móg³bym zostawiæ Grizliego i Torbê... Bardzo siê do siebie zbli¿yliœmy, zawsze sobie pomagamy... Nie wiem, mo¿e wystarczy, ¿e odpocznê i pouk³adam sobie wszystko w g³owie. + + + Na razie nie biorê siê za wiêksze roboty. Muszê dojœæ do siebie. Wiesz, mo¿e nawet wrócê do domu... Znajdê sobie jak¹œ pracê na zewn¹trz... Nie wiem, muszê siê odprê¿yæ i pouk³adaæ sobie wszystko w g³owie. + + + Jesteœ gotów uratowaæ Mitaja? Mam nadziejê, ¿e nie masz nic przeciwko pracy z ludŸmi, których wynaj¹³em... + + + Mam PDA handlarza Powinnoœci, Morgana. Jesteœ zainteresowany? + + + Mam PDA z dowodami, ¿e Morgan ma powi¹zania z najemnikami. + + + A w³aœciwie zostawiê go sobie. + + + Wiedzia³em, ¿e w koñcu zwyciê¿y w tobie chêæ popchniêcia nauki do przodu i czynienia dobra na œwiecie! Dobrze, oto nasz plan. Grupa badawcza stalkerów wykona pomiary. Ty masz ich eskortowaæ, to znaczy ochraniaæ i prowadziæ przez trudny teren. Powodzenia. Stalkerzy czekaj¹ na ciebie na zewn¹trz. + + + Witaj, stalkerze. Dziwi ciê widok starego cz³owieka tutaj? He, he. Przyszed³em z ch³opakami, ¿eby rozprostowaæ koœci. Naprawiam sprzêt, a czasami tak¿e ludzi... + + + Skoro tu jesteœ, co mogê dla ciebie zrobiæ? + + + Jak dosta³eœ siê do Prypeci? + + + Garri pokaza³ mi drogê. Ci stalkerzy od dawna planowali siê tu wybraæ, ale nie mieli ochoty zadawaæ siê z wojskiem. Jak Garri powiedzia³, ¿e ¿o³nierze sobie poszli, d³ugo siê nie zastanawia³em. Nie bój nic, Wujek Jar jest na posterunku! Ha, ha! + + + Potrzebujê pomocy medycznej. + + + Niech no rzucê okiem... + + + Proszê bardzo, wyjdziesz z tego. Jeœli pojawi siê opuchlizna, nasikaj na ni¹ - s³ysza³em, ¿e to pomaga. + + + Wygl¹dasz mi na zdrowego! Chyba robisz sobie ¿arty ze staruszka, ha, ha... + + + Witaj w moim osobistym zak¹tku raju. Chcesz zasmakowaæ rajskich rozkoszy? + + + Ch³opaki zawsze mówi¹, ¿e jestem zbyt serdeczny, jak dobra wró¿ka z bajki, wiêc siê ciesz, bo nastêpnym razem nie bêdê taki mi³y. Teraz st¹d zje¿d¿aj, frajerze! + + + By³em tam ju¿. Bandyci nie ¿yj¹. + + + Twardziel z ciebie! Wielkie dziêki! WeŸ te pieni¹dze - mia³em nimi sp³aciæ d³ug, ale teraz dostanie je ktoœ, kto na nie zas³u¿y³. + + + Twardziel z ciebie! Wielkie dziêki! Zatrzymaj pieni¹dze, które mia³y iœæ na sp³atê d³ugu. Teraz dostanie je ktoœ, kto na nie zas³u¿y³. + + + Nasze skanery zarejestrowa³y dziwn¹ aktywnoœæ na pó³noc st¹d... S¹dz¹c z otrzymanych danych, spodziewam siê, ¿e powsta³a tam anomalia jest niestabilna. Niestety, st¹d nie mogê nic wiêcej stwierdziæ. Musimy przeprowadziæ badania w terenie... Powiem tylko tyle, ¿e zwyk³e detektory stalkerów nie wykryj¹ tej anomalii - musisz u¿yæ Swaroga, jednego z naszych wynalazków. + + + Skanery wci¹¿ rejestruj¹ dziwn¹ aktywnoœæ anomalii na pó³noc st¹d... Jeœli masz coœ lepszego ni¿ zwyk³y stalkerski detektor, na przyk³ad Swaroga, mo¿esz spróbowaæ przeprowadziæ badania w terenie. + + + Na razie tylko z obszaru anomalii na bagnie. Mimo to Nowikow znalaz³ ju¿ dla nich praktyczne zastosowanie. Dziêkujê ci za wykonan¹ pracê, czekamy na drug¹ partiê wyników. + + + Na razie tylko z obszaru anomalii za wiosk¹ Kopaczi. Mimo to Nowikow znalaz³ ju¿ dla nich praktyczne zastosowanie. Dziêkujê ci za wykonan¹ pracê, czekamy na drug¹ partiê wyników. + + + Oczywiœcie. Otrzyma³em pe³ne wyniki. Szczerze mówi¹c, danych jest tak wiele, ¿e przetwarzanie ich bêdzie ci¹gn¹æ siê tygodniami, jeœli nie miesi¹cami. Mimo to Nowikow znalaz³ ju¿ dla nich praktyczne zastosowanie. Dziêkujê ci bardzo za pomoc. + + + Niestety nie. Ale, hm... Widzia³em tu niedawno bardzo podejrzanego goœcia. Wracaj¹c ze spaceru, zobaczy³em stalkera wychodz¹cego ze stacji Janów. Jak tylko mnie dostrzeg³, zacz¹³ mi wymyœlaæ i mówiæ, ¿e wie, gdzie mieszkam, i takie tam. Wtedy go zignorowa³em, bo myœla³em, ¿e pewnie jest nawalony, ale jak teraz siê nad tym zastanawiam, wydaje mi siê to podejrzane. + + + Dok¹d poszed³? + + + Na pó³nocny wschód. S³ysza³em stamt¹d odg³osy strza³ów, ale to tutaj normalne. Zapytaj Zulusa - ca³ymi dniami i nocami siedzi w swojej wie¿y, wiêc mo¿e coœ widzia³. + + + Na pó³nocny wschód. Pewnie poszed³ do podstacji. + + + Rozumiem. + + + Co powiesz, przyjacielu? + + + Co u ciebie? + + + Nie najgorzej. £atwo nie jest, ale wydostaniemy siê st¹d. Razem mo¿emy wszystko! + + + Co u ciebie? + + + Trudno powiedzieæ... Nie jest mi tu zbyt dobrze. Czujê, ¿e muszê siê st¹d ruszyæ. Mo¿e nied³ugo odejdê... Nie miej mi tego za z³e. + + + Rozwali³em legowisko pijawek na Zatonie. Zupe³nie. + + + [Dalej....] + + + [Dalej....] + + + [Dalej....] + + + [Dalej....] + + + Potrzebujê ludzi do wykonywania pomiarów w anomaliach. + + + Potrzebujê wykonaæ pomiary w anomaliach. + + + A co to za œpi¹ca królewna? + + + Znalaz³eœ artefakt? + + + I to jak! Nie ma tu nic do roboty - jedyna rozrywka to plansza do cymbergaja. To nie Prypeæ... Gdybym tylko móg³ wype³niæ warunki kontraktu, ju¿ bym tam siedzia³! + + + [Dalej....] + + + Mo¿esz iœæ do kamienio³omów - to tam zgin¹³ Drzazga. Przed œmierci¹ powiedzia³ mi, ¿e Flint ukrad³ jego towar i zostawi³ go na œmieræ w anomalii. + + + Nazywa³ siê Drzazga. Wszed³ w anomaliê gazow¹, a ty da³eœ chodu z jego artefaktem. Jak widzisz, zd¹¿y³ mi wszystko przed œmierci¹ powiedzieæ. + + + Nie bêdê ciê pyta³, sk¹d to masz. Za³atwmy to prosto: kupiê od ciebie PDA za 4000. Od dawna mnie ciekawi³o, co nasz zaopatrzeniowiec robi w wolnych chwilach... + + + Popatrzmy... A to swo³ocz! Nie doœæ, ¿e sprzedawa³ nasz¹ broñ, to jeszcze odda³ Wolnoœci magazyn! Cholera, bêdziemy musieli natychmiast zorganizowaæ ekipê powitaln¹. + + + Popatrzmy... Nie mogê w to uwierzyæ! Wiedzieliœmy o magazynie i nawet zaplanowaliœmy wizytê, ale nie mieliœmy pojêcia o alarmie, bo ten sukinsyn nie pisn¹³ o nim ani s³ówkiem. Poczekaj chwilê, ostrzegê ch³opców. + + + Dam ci 4000 z czystej ciekawoœci. + + + Szturmowiec z niego nie bêdzie, ale potrafi obchodziæ siê z broni¹. Tylko zawsze ma skrzywion¹ minê, jakby wcina³ same cytryny. + + + Znalaz³em dziwn¹ anomaliê w starej ch³odni kominowej. + + diff --git a/gamedata/configs/text/pol/st_dialogs_pripyat.xml b/gamedata/configs/text/pol/st_dialogs_pripyat.xml new file mode 100644 index 0000000..673ca16 --- /dev/null +++ b/gamedata/configs/text/pol/st_dialogs_pripyat.xml @@ -0,0 +1,906 @@ + + + + Ha! No to im siê dosta³o! Dziêki za pomoc. Gdyby nie ty, te gnojki ju¿ dawno by mnie po¿ar³y. Jednak dobry z ciebie stalker... Przepraszam, ¿e siê wtedy wkurzy³em, ale mog³eœ mi wczeœniej powiedzieæ, ¿e jesteœ z SBU. + + + Drobiazg. Wracajmy lepiej do obozu wojskowego - tam jest bezpieczniej. + + + Tak, na pewno wyjdê na tym lepiej, ni¿ samotnie pa³êtaj¹c siê po Prypeci. + + + No to chodŸmy. + + + Muszê tu coœ skoñczyæ, ale ty idŸ. Obóz mieœci siê w budynku pralni. + + + Muszê ju¿ iœæ. + + + Czekaj... WeŸ to... To najporz¹dniejszy karabin maszynowy w Zonie. + + + A ty go ju¿ nie potrzebujesz? + + + Zawsze znajdê coœ do odpêdzenia paru mutantów. Poza tym postanowi³em wróciæ - Garri zabierze mnie do Jupitera. Wiêc tobie bardziej siê przyda. WeŸ go i niech ci dobrze s³u¿y. + + + Powodzenia. + + + Dziêki, to œwietna broñ. + + + Ha! Nie œwietna, tylko najlepsza w Zonie. Jest zmodyfikowana, wiêc trochê przyciê¿ka, ale w koñcu z takim dzia³kiem nie bêdziesz musia³ biegaæ - to wróg bêdzie zmyka³! + + + Czeœæ. + + + Super! + + + Dok¹d poszed³ Zulus? + + + Odszed³... Poprosi³, ¿ebym zabra³ go do Jupitera, i rozdzieliliœmy siê niedaleko niego. Nie powiedzia³ mi, dok¹d idzie. + + + Czekaj... Spotka³o mnie coœ nieprzyjemnego i chcê ci o tym opowiedzieæ... Paru najemników poprosi³o, ¿ebym poprowadzi³ ich do Prypeci. Najpierw skusili mnie grub¹ kas¹, ale szybko siê zorientowa³em, ¿e wdepn¹³em w miêkkie i br¹zowe... Nawet na chwilê nie spuszczali mnie z oka i grozili mi broni¹. W pobli¿u Prypeci uda³o mi siê uciec, ale teraz musz¹ ju¿ byæ w mieœcie, wiêc uwa¿aj. + + + S³ysza³eœ mo¿e, o czym ci najemnicy rozmawiali? + + + Trochê s³ysza³em. Na pewno nie zamierzali puœciæ mnie ¿ywcem, wiêc nie ukrywali swoich planów. Rozmawiali g³ównie o spotkaniu z ludŸmi klienta, którzy mieli przedstawiæ im przedmiot i cel ich misji. + + + Gdzie ma siê odbyæ spotkanie? + + + Niedaleko st¹d, na dziedziñcu osiedla. + + + Dziêki za informacjê. + + + Wspomnia³eœ o najemnikach - s³ysza³eœ, o czym rozmawiali? + + + Trochê s³ysza³em. Na pewno nie zamierzali puœciæ mnie ¿ywcem, wiêc nie ukrywali swoich planów. Rozmawiali g³ównie o spotkaniu z ludŸmi klienta, którzy mieli przedstawiæ im przedmiot i cel ich misji. + + + Gdzie ma siê odbyæ spotkanie? + + + Niedaleko st¹d, na dziedziñcu osiedla. + + + Rozmawia³em z naukowcami o kombinezonie - poszukaj Hermana, powie ci, co i jak. + + + Dobra... Gdzie ma dojœæ do spotkania? + + + Niedaleko stacji Janów, u Zulusa. + + + Tam roi siê od stalkerów! OdprowadŸ mnie, bo jeœli pójdê sam, mogê mieæ k³opoty. Jeœli ze mn¹ pójdziesz, nie zastrzel¹ mnie, bo ciê znaj¹. + + + Do którego punktu ewakuacyjnego poszed³eœ? + + + Niestety nie mogê o tym rozmawiaæ - to œciœle tajne. + + + ChodŸmy do Zulusa. + + + Dobra. Ale najpierw musimy iœæ do Hermana po ten naukowy kombinezon. + + + ChodŸmy. + + + Poszed³bym... Ale tam jest emisja. Mo¿e trochê poczekamy? + + + Jak tu trafi³eœ? + + + Mój helikopter rozbi³ siê o warsztat fabryki Jupiter i run¹³ do œrodka przez dach. Tylko ja prze¿y³em - uda³o mi siê wydostaæ z Jupitera i dotrzeæ do najbli¿szego punktu ewakuacyjnego, ale nikogo tam nie by³o. A potem spotka³em Garriego, który zaprowadzi³ mnie do bunkra. + + + ¯eby dotrzeæ do Prypeci, bêdziesz potrzebowa³ kombinezonu z aparatem tlenowym z zamkniêtym obiegiem powietrza.. + + + Co tu robisz? + + + Mam rozkaz udaæ siê do punktu ewakuacyjnego, ale w Zonie jest zbyt niebezpiecznie. Jestem pilotem, nie szturmowcem! Dlatego tu czekam - mam nadziejê, ¿e zabior¹ mnie st¹d, kiedy operacja zostanie wykonana. + + + Zbieram oddzia³, z którym wybiorê siê do Prypeci. Przy³¹czysz siê? + + + Do Prypeci? A wiesz, ¿e chyba tak... Mo¿e ktoœ z naszych prze¿y³ i zdo³a³ tam dotrzeæ... W Prypeci jest punkt ewakuacyjny, wiêc w³aœciwie to tam powinienem iœæ. Samemu mi siê nie uda, ale z twoim oddzia³em mogê spróbowaæ. + + + Jesteœ gotowy? + + + Mo¿na tak powiedzieæ. + + + Witaj, stalkerze. + + + Czeœæ. + + + Witaj. + + + Witaj, stalkerze. + + + Sk¹d masz mundur wojskowy? + + + Ha... Ju¿ chyba wszyscy wiedz¹ o katastrofie helikopterów wojskowych... Jestem porucznik Soko³ow, pilot jednego z nich. + + + Jeœli chodzi o tego wartownika... + + + Jego sygna³ dochodzi ze starego sklepu spo¿ywczego, ale on nie odpowiada... Mo¿e straci³ nadajnik... Trudno to stwierdziæ na pewno. Musimy go znaleŸæ... + + + Dziêkujê, pu³kowniku! Chyba dam radê. + + + Co do tego wartownika... + + + To wszystko przez tego kontrolera... Pewnie to samo przydarzy³o siê oddzia³owi zwiadowczemu. Powystrzelali siê nawzajem... To jedne z najgorszych stworzeñ w Zonie, a w dodatku nigdy nas nie szkolono do walki z nimi. Kontroler zupe³nie nas zaskoczy³ i znowu straciliœmy ludzi... + + + Przynajmniej ten kontroler jest ju¿ za³atwiony. + + + Mam nadziejê, ¿e teraz wszystko siê trochê uspokoi... Dziêkujê wam za pomoc, majorze. Ta misja musia³a was kosztowaæ mnóstwo amunicji... ZnajdŸcie porucznika Kiry³owa, niech was zaopatrzy w potrzebny sprzêt. + + + Dziêkujê, pu³kowniku! + + + Nie trzeba siê niepokoiæ, pu³kowniku... Rozprawiê siê z tym mutantem. + + + Czy mogê poznaæ wiêcej szczegó³ów misji? + + + Kim on jest? + + + Jeœli szybko nie znajdziemy Ÿród³a zak³óceñ, pozostanie nam ju¿ tylko czekaæ na œmieræ. Pierwszy zmasowany atak Monolitu rozniesie wojsko na strzêpy... A operacja skoñczy siê totaln¹ klêsk¹. + + + Postaram siê jak najszybciej znaleŸæ Ÿród³o. + + + No i co, majorze? ZnaleŸliœcie Ÿród³o zak³óceñ radiowych? + + + Nie, wci¹¿ nad tym pracujê... + + + Garri opowiedzia³ mi o incydencie z najemnikami... + + + Tak, mi te¿ o nim opowiedzia³... Jak tylko uciek³, schroni³ siê tutaj ze strachu przed poœcigiem. Na szczêœcie - dla niego i dla nas - najemnicy go nie znaleŸli. Obserwujemy miejsce, w którym maj¹ siê spotkaæ z ludŸmi klienta, ale na razie spokój... Chcia³bym wiedzieæ, po co ci najemnicy tu przyszli. + + + Mam informacjê, ¿e szukaj¹ tajnego laboratorium w Prypeci. + + + Tajnego laboratorium, tutaj, w Prypeci? Ale sk¹d siê tego dowiedzia³eœ? + + + Z notesu najemnika na Zatonie. Potwierdzi³a to te¿ opowieœæ, któr¹ us³ysza³em od stalkera zwanego Wujkiem Jarem. + + + Hm... Wiesz o czymœ jeszcze? + + + Szukaj¹ laboratorium centralnego. W toku œledztwa uda³o mi siê poznaæ jego wspó³rzêdne... + + + Jeœli to prawda, to znaczy, ¿e oprócz zombi i fanatyków mamy jeszcze jednego wroga... Musimy zdecydowaæ, co dalej. + + + Trzeba obserwowaæ spotkanie i jeœli siê da, wyeliminowaæ przedstawicieli klienta - dziêki temu nikt przez jakiœ czas nie wejdzie do laboratorium X8. + + + To dobre rozwi¹zanie, bo chocia¿ nie dowiemy siê, kto jeszcze wie o laboratorium, przynajmniej zadbamy o to, ¿e nie znajd¹ go najemnicy. Jednak ci ostatni szybko zareaguj¹ i bêd¹ dla nas zagro¿eniem. Jeœli siê uda, zlikwiduj obydwa cele. Wyœlê z tob¹ porucznika Kiry³owa. + + + Dobrze. + + + Zaraz, mo¿e powinniœmy siê zdecydowaæ na drugi cel. + + + Trzeba zdecydowaæ, który cel jest wa¿niejszy. + + + Musimy zlikwidowaæ przywódcê najemników - jeœli tego dokonasz, pozbawiony szefa oddzia³ nie bêdzie ju¿ stanowi³ du¿ego problemu. + + + To niez³e rozwi¹zanie, ale pos³aniec prawdopodobnie ucieknie i przeka¿e informacjê o laboratoriach gdzieœ indziej, wiêc najemnicy i tak w koñcu tam dotr¹. Jeœli siê uda, zlikwiduj obydwa cele. Wyœlê z tob¹ porucznika Kiry³owa. + + + Nie mam na to czasu. + + + Z notesu najemnika na Zatonie. + + + Z historii, któr¹ opowiedzia³ mi Wujek Jar, stalker ze stacji Janów. + + + Co do najemników... + + + Œwietna robota - obydwa cele zabite. Teraz najemnicy nie bêd¹ wchodziæ nam w drogê i przestan¹ interesowaæ siê laboratorium. Mo¿esz zatrzymaæ karabin. A tu masz do niego trochê amunicji. + + + Dobrze, teraz, gdy ich szef nie ¿yje, najemnicy nie bêd¹ ju¿ dla nas problemem. Ale skoro ludzie klienta uciekli, mog¹ zjawiæ siê w laboratorium. Nie traæ czujnoœci... Mo¿esz zatrzymaæ karabin. A tu masz do niego trochê amunicji. + + + Dobrze - teraz, gdy nie ¿yje osoba, która zna³a po³o¿enie laboratorium, najemnicy go nie znajd¹. Ale w¹tpiê, ¿eby opuœcili Prypeæ, co oznacza, ¿e bêd¹ dla nas zagro¿eniem. Nie traæ czujnoœci... Mo¿esz zatrzymaæ karabin. A tu masz do niego trochê amunicji. + + + A wiêc w ostatniej chwili zmieni³eœ cel? Có¿, decyzja by³a s³uszna. Teraz, gdy ich szef nie ¿yje, najemnicy nie bêd¹ ju¿ dla nas problemem. Ale skoro ludzie klienta uciekli, mog¹ zjawiæ siê w laboratorium. Nie traæ czujnoœci... Mo¿esz zatrzymaæ karabin. A tu masz do niego trochê amunicji. + + + A wiêc w ostatniej chwili zmieni³eœ cel? Có¿, decyzja by³a s³uszna. Teraz, gdy nie ¿yje osoba, która zna³a po³o¿enie laboratorium, najemnicy go nie znajd¹. Ale w¹tpiê, ¿eby opuœcili Prypeæ, co oznacza, ¿e bêd¹ dla nas zagro¿eniem. Nie traæ czujnoœci... Mo¿esz zatrzymaæ karabin. A tu masz do niego trochê amunicji. + + + To nie posz³o najlepiej. Przywódca najemników ¿yje, cz³owiek klienta te¿. Teraz najemnicy o nas wiedz¹ i bêd¹ dla nas takim samym zagro¿eniem, jak si³y Monolitu. A w dodatku znaj¹ po³o¿enie laboratorium, wiêc ich pojawienie siê w nim jest tylko kwesti¹ czasu. Nie traæ czujnoœci... Mo¿esz zatrzymaæ karabin. A tu masz do niego trochê amunicji. + + + Przygotujcie ¿o³nierzy, pu³kowniku. Jestem gotowy. + + + Dobrze. Os³aniajcie Strie³oka, majorze. My sami o siebie zadbamy. + + + A wiêc... Z nas wszystkich to wy i Strie³ok macie najwiêksze doœwiadczenie w Zonie. Ró¿nica polega na tym, ¿e o doœwiadczeniu Strie³oka kr¹¿¹ tylko pog³oski, a w was od razu mo¿na poznaæ zawodowca. Chcê powiedzieæ, ¿e na was liczê, majorze. Miejcie Strie³oka na oku - niewielu nas ju¿ zosta³o. + + + Oddzia³ gotów do wyruszenia. Czekamy ju¿ tylko na was, majorze. + + + Zdaje siê, ¿e wszystkie œwiry ju¿ nie ¿yj¹. £ap karabin i wynoœmy siê st¹d, dopóki jeszcze mo¿emy. + + + Brzmi rozs¹dnie. + + + Jestem gotów, ruszajmy. + + + Dobrze. Oddzia³ jest gotowy. + + + Ruszamy. + + + Musimy poczekaæ. Nie chcê straciæ ludzi przez emisjê. + + + Nazywam siê kapitan Tarasow. Mo¿e i jesteœcie majorem, ale to ja tu dowodzê i moje rozkazy nie podlegaj¹ dyskusji. Zale¿y od tego ¿ycie ca³ego oddzia³u. Plan jest nastêpuj¹cy: zajmujemy pozycjê w zachodniej czêœci szpitala i czekamy na pojawienie siê si³ Monolitu. Musimy dzia³aæ szybko, ¿eby nie zwracaæ na siebie niepotrzebnej uwagi. + + + Przyj¹³em, chodŸmy. + + + Dobrze. Oddzia³ jest gotowy. + + + Ruszamy. + + + Musimy poczekaæ. Nie chcê straciæ ludzi przez emisjê. + + + Czekajcie, kapitanie, nie jestem jeszcze gotowy. + + + Coœ nowego na froncie zak³óceñ? + + + Namierzy³em wiele Ÿróde³, jedno z nich jest gdzieœ w pobli¿u. Jeœli zostanie zniszczone, mo¿e nam siê udaæ porozumieæ z dowództwem. + + + Obliczy³em wspó³rzêdne Ÿród³a zak³óceñ. To musi byæ jakiœ wyspecjalizowany przekaŸnik wysokich czêstotliwoœci, mo¿e nawet mikrofal. + + + Zniszczone przez ciebie urz¹dzenie by³o Ÿród³em zak³óceñ - jest ich pewnie mnóstwo, ale uda³o nam siê ju¿ odzyskaæ kontakt z dowództwem. + + + Powiedz mi o sygnale. + + + Sygna³ pojawia siê i znika, ale za ka¿dym razem pojawia siê coraz bli¿ej bazy. + + + To wszystko? + + + Niezupe³nie - chodzi o to, ¿e sygna³ jest przekazywany na czêstotliwoœciach rzadko u¿ywanych do komunikacji radiowej. + + + Rozumiem. + + + WeŸ tê broñ i naboje... Na razie mo¿esz siê wyluzowaæ - bêdê obserwowaæ pozycjê z drugiej strony i dam ci znaæ, jak tylko siê pojawi¹. + + + Dobrze. + + + Witam. Jestem porucznik Kiry³ow. Odpowiadam za konserwacjê broni i sk³ad amunicji. + + + Macie jakieœ naboje? + + + Tak, kilka dni temu w³amaliœmy siê do magazynu Monolitu, który by³ wy³adowany amunicj¹ do ka¿dego typu broni, jaki mo¿na znaleŸæ w Zonie... Ciekawe, sk¹d maj¹ tyle broni... S¹dzê, ¿e musi im j¹ sprzedawaæ któryœ ze stra¿ników... + + + Mo¿ecie te¿ naprawiæ moj¹ broñ? + + + Oczywiœcie. Jesteœmy szkoleni w naprawianiu wszelkiego rodzaju broni. + + + Rozumiem. + + + Witam. + + + Sk¹d siê wzi¹³ ten ból g³owy... + + + Oto chwila prawdy - ciekawe, czy wyjdziemy z tego ca³o... + + + Potrzebujê amunicji. + + + Nie ma sprawy... Co wam dok³adnie potrzebne? + + + Naboje do pistoletu 9x18... + + + Proszê... Coœ jeszcze? + + + Proszê... + + + Naboje do pistoletu 9x19... + + + Naboje do pistoletu 11.43x23... + + + Naboje do strzelby. + + + Naboje do karabinu szturmowego 5.45x39... + + + Naboje do karabinu szturmowego 5.56x45... + + + Naboje do karabinu szturmowego 9x39... + + + Naboje do karabinu snajperskiego... + + + Naboje do karabinu maszynowego... + + + Nie mogê daæ wam ju¿ nic wiêcej, majorze... Pu³kownik wyda³ rozkaz, ¿eby oszczêdzaæ naboje. + + + Dobrze, niewa¿ne. + + + Potrzebujê granatów. + + + Nie ma sprawy... Jakie granaty s¹ wam potrzebne? + + + Granaty rêczne. + + + Proszê... + + + Amunicja do wyrzutni VOG-25. + + + Amunicja do wyrzutni M209. + + + W³aœciwie niewa¿ne + + + Nie mogê daæ wam ju¿ nic wiêcej, majorze... Pu³kownik wyda³ rozkaz, ¿eby oszczêdzaæ naboje. + + + Potrzebujê pomocy medycznej. + + + Chêtnie pomogê. Zobaczmy... + + + Proszê bardzo, jesteœcie ju¿ zdrowi i gotowi do akcji. + + + Jak siê czujecie po tym, co siê sta³o? + + + Teraz ju¿ dobrze... Po tym, co zasz³o w przedszkolu, by³em w szoku, ale jak tylko zaczê³a siê emisja, szybko odzyska³em œwiadomoœæ. + + + Witam. + + + Najwa¿niejsze, ¿eby dotrzeæ do helikopterów. + + + Potrzebujê œrodków medycznych. + + + Zobaczmy, co tu mamy. Proszê... + + + Przykro mi, niewiele ju¿ mi zosta³o, wiêc nie mogê daæ nic wiêcej. + + + Monitorowaliœmy twój sygna³ radiowy. + + + Tak. Skontaktowa³em siê ze stalkerem imieniem Przewodnik. Powiedzia³ mi, jak dotrzeæ do tego miejsca podziemnymi tunelami. + + + Kim jest Przewodnik? + + + To legendarny stalker - podobno jest w stanie zaprowadziæ do ka¿dego miejsca w Zonie. Ch³opaki z wojska maj¹ szczêœcie, ¿e go spotkali - bez niego d³ugo by nie prze¿yli. + + + Sk¹d wiedzia³eœ, ¿e wojsko tu jest? + + + Przewodnik mi powiedzia³ - to on przyprowadzi³ tu Kowalskiego i jego oddzia³. + + + Rozumiem. + + + Jakie informacje chcesz przekazaæ rz¹dowi? + + + Du¿o ich jest... Jestem pewien, ¿e posiadane przeze mnie informacje mog³yby pos³u¿yæ do zniszczenia Zony. Myœla³em, ¿e dam radê zrobiæ to sam... Ale okaza³o siê, ¿e to znacznie bardziej skomplikowane. Ludzie, którzy to zaczêli, stracili w³adzê... wszystko wyjaœniê, kiedy st¹d wyjdziemy. + + + Co widzia³eœ w sarkofagu? + + + To oszustwo... Monolit, Spe³niacz ¯yczeñ, to wszystko k³amstwo, urz¹dzenie, które zwodzi umys³. A stoj¹cy za tym ludzie ukrywaj¹ siê gdzieœ indziej... + + + Wiesz, kto za tym stoi? + + + Mo¿e tak, mo¿e nie... Ju¿ nie wiem, w co wierzyæ... Mimo to odkry³em wiêcej, ni¿ chcieli. + + + Dobrze, doœæ ju¿ o tym. + + + Podzielê siê wszystkim, co wiem. O ile te informacje dotr¹ do odpowiednich ludzi. + + + W drodze tutaj znalaz³em schowki twojej grupy... + + + Ciekawe, jak zdo³a³eœ je znaleŸæ... W œrodku powinny byæ ró¿ne zapiski, znalaz³eœ coœ takiego? + + + Tak, znalaz³em trzy notatki. + + + Dziêkujê... Duch i Kie³ byli moimi przyjació³mi... Razem zdo³aliœmy przejœæ ko³o Zwêglacza i dotrzeæ do Czarnobylskiej Elektrowni J¹drowej. Niestety obydwaj zginêli. Po powrocie rozdzieliliœmy siê - ja by³em ranny i zosta³em z Doktorem na bagnach. Wiêcej ich nie zobaczy³em... Nied³ugo póŸniej dowiedzia³em siê, ¿e K³a zabili najemnicy, a Duch zgin¹³, bo zaufa³ naukowcom... Ale niewa¿ne, to ju¿ przesz³oœæ... Teraz muszê zadbaæ o to, ¿eby ich œmieræ nie posz³a na marne. + + + Tak, oto twoja wiadomoœæ do Ducha. + + + Dziêkujê... Duch by³ moim przyjacielem... Razem z nim i K³em zdo³aliœmy przejœæ ko³o Zwêglacza i dotrzeæ do Czarnobylskiej Elektrowni J¹drowej... Po powrocie z centrum rozdzieliliœmy siê - ja by³em ranny i zosta³em z Doktorem na bagnach. Wiêcej ich nie zobaczy³em... Nied³ugo póŸniej dowiedzia³em siê, ¿e K³a zabili najemnicy, a Duch zgin¹³, bo zaufa³ naukowcom... + + + Tak, oto wiadomoœæ K³a do ciebie. + + + Dziêkujê... Kie³ by³ moim przyjacielem... Razem z nim i Duchem zdo³aliœmy przejœæ ko³o Zwêglacza i dotrzeæ do Czarnobylskiej Elektrowni J¹drowej... Po powrocie z centrum rozdzieliliœmy siê - ja by³em ranny i zosta³em z Doktorem na bagnach. Wiêcej ich nie zobaczy³em... Nied³ugo póŸniej dowiedzia³em siê, ¿e K³a zabili najemnicy, a Duch zgin¹³, bo zaufa³ naukowcom... + + + Tak, oto twoja wiadomoœæ do K³a. + + + Dziêkujê... Kie³ by³ moim przyjacielem... Razem z nim i Duchem zdo³aliœmy przejœæ ko³o Zwêglacza i dotrzeæ do Czarnobylskiej Elektrowni J¹drowej... Po powrocie z centrum rozdzieliliœmy siê - ja by³em ranny i zosta³em z Doktorem na bagnach. Wiêcej ich nie zobaczy³em... Nied³ugo póŸniej dowiedzia³em siê, ¿e K³a zabili najemnicy, a Duch zgin¹³, bo zaufa³ naukowcom... + + + Tak, oto twoja wiadomoœæ do Ducha i wiadomoœæ K³a do ciebie. + + + Dziêkujê... Duch i Kie³ byli moimi przyjació³mi... Razem zdo³aliœmy przejœæ ko³o Zwêglacza i dotrzeæ do Czarnobylskiej Elektrowni J¹drowej. Niestety obydwaj zginêli. Po powrocie rozdzieliliœmy siê - ja by³em ranny i zosta³em z Doktorem na bagnach. Wiêcej ich nie zobaczy³em... Nied³ugo póŸniej dowiedzia³em siê, ¿e K³a zabili najemnicy, a Duch zgin¹³, bo zaufa³ naukowcom... + + + Tak, oto twoje wiadomoœci do Ducha i do K³a. + + + Dziêkujê... Duch i Kie³ byli moimi przyjació³mi... Razem zdo³aliœmy przejœæ ko³o Zwêglacza i dotrzeæ do Czarnobylskiej Elektrowni J¹drowej. Niestety obydwaj zginêli. Po powrocie rozdzieliliœmy siê - ja by³em ranny i zosta³em z Doktorem na bagnach. Wiêcej ich nie zobaczy³em... Nied³ugo póŸniej dowiedzia³em siê, ¿e K³a zabili najemnicy, a Duch zgin¹³, bo zaufa³ naukowcom... + + + Tak, oto twoja wiadomoœæ do K³a i wiadomoœæ K³a do ciebie. + + + Dziêkujê... Kie³ by³ moim przyjacielem... Razem z nim i Duchem zdo³aliœmy przejœæ ko³o Zwêglacza i dotrzeæ do Czarnobylskiej Elektrowni J¹drowej... Po powrocie z centrum rozdzieliliœmy siê - ja by³em ranny i zosta³em z Doktorem na bagnach. Wiêcej ich nie zobaczy³em... Nied³ugo póŸniej dowiedzia³em siê, ¿e K³a zabili najemnicy, a Duch zgin¹³, bo zaufa³ naukowcom... + + + Tak. Niestety nie mam ich przy sobie. + + + Zobaczmy... Macie problem, majorze... Znaczy - pewnie zaliczylibyœcie badanie lekarskie do programu kosmicznego, ale poza tym jesteœcie w okropnym stanie! Ha! + + + ChodŸcie, majorze. Ludzie z Monolitu nie bêd¹ czekaæ. + + + Majorze, zagin¹³ nam wartownik - opuœci³ swój posterunek. Jego sygna³ dochodzi ze sklepu spo¿ywczego, ale on sam nie odpowiada. Bóg jeden wie, co tam siê sta³o. Mo¿e dzieciak spanikowa³ - katastrofa helikoptera porz¹dnie nim wstrz¹snê³a. Sprawdzicie dla mnie ten sygna³? + + + Tak. + + + Niczego nie obiecujê. + + + Majorze, musimy znaleŸæ oddzia³ zwiadowczy. + + + Razem z oddzia³em szturmowym musicie siê udaæ do obiektu A17 - kapitan Tarasow wszystko wam poka¿e. Celem s¹ dwa po³¹czone przejœciem skrzyd³a szpitala. Bojownicy Monolitu s¹ obecnie w zachodnim skrzydle. Wy macie urz¹dziæ zasadzkê w tym drugim. Powinni mieæ ze sob¹ karabin, pewnie znajdziecie go u najwiêkszego œwira. + + + Zapewne dowódc¹ oddzia³u. Ch³opcy widzieli, jak wyg³asza swoim ludziom kazanie. Dos³ownie! B¹dŸcie ostro¿ni, nie wiadomo, czego mo¿na siê po nim spodziewaæ. + + + Przyj¹³em, pu³kowniku. + + + Witam. Pu³kownik Kowalski, dowódca tego oddzia³u. + + + Major Diegtiariow, SBU. Jestem upowa¿niony do przeprowadzenia œledztwa w sprawie klêski operacji Tor Wodny. + + + Rozumiem. No to pos³uchajcie, majorze. Operacja Tor Wodny posz³a w diab³y razem z naszymi œmig³owcami. Po³owa moich ch³opaków nie ¿yje i nie mamy ³¹cznoœci z dowództwem. Ja te¿ chcê siê dowiedzieæ, dlaczego operacja siê nie powiod³a. + + + Jakieœ pomys³y? + + + Jedynie taki, ¿e helikoptery zosta³y zestrzelone. Zestrzelone za pomoc¹ niezwykle potê¿nej broni, o której niewiele wiemy. Bojownicy Monolitu u¿yli jej przeciwko nam podczas pierwszego szturmu na CEJ... Zamierzam zdobyæ tak¹ broñ i dok³adnie j¹ zbadaæ. Jeœli chcecie siê w³¹czyæ do akcji, to grupa szturmowa czeka w³aœnie na mój sygna³ do wyruszenia za wyœledzonym przez nas oddzia³em Monolitu, który ma jedno z tych dzia³. Co wy na to? + + + Zgadzam siê, pod warunkiem, ¿e podzielicie siê ze mn¹ wszystkimi informacjami i zapewnicie zupe³n¹ swobodê dzia³ania. + + + Mam informacjê na temat niezidentyfikowanej broni, to karabin Gaussa. + + + Œwietnie! Jak on dzia³a? Mo¿na z niego zestrzeliæ helikopter? + + + Technicznie rzecz bior¹c, tak, ale przyspieszona kula zostawi³aby w helikopterach dziury, a niczego takiego nie znaleŸliœmy. + + + Cholera... A wiêc to œlepy zau³ek. Nie mam ju¿ innych pomys³ów. Teraz mo¿emy ju¿ tylko siedzieæ na ty³kach w samym œrodku tej powalonej Zony i liczyæ na to, ¿e po nas przyjd¹... Dobra, koniec narzekania. Skupmy siê na tym, na co mo¿emy mieæ wp³yw tu i teraz. Dziêki wam, majorze, wiemy ju¿, ¿e ukrywanie siê nie uchroni nas przed tymi przyspieszonymi kulami, a to ju¿ coœ. Wiêc nale¿¹ siê wam podziêkowania. Skontaktujê siê z wami, jak dowiemy siê czegoœ nowego. + + + Technicznie rzecz bior¹c, tak, ale Ogoñcza 4 i 5 rozbi³y siê z powodu awarii elektroniki. Przyspieszone kule nie mog³yby tego spowodowaæ. + + + Jak idzie operacja? + + + Sier¿ant Morozow zgin¹³. Bojownicy Monolitu wci¹gnêli nas w zasadzkê poœwiêcaj¹c ¿ycie w³asnych ludzi. + + + Dranie! Nie mogli wiedzieæ, co planujemy... Wiêc straciliœmy snajpera. A co z celem operacji? + + + Ponieœliœmy pewne straty... Bojownicy Monolitu wci¹gnêli nas w zasadzkê poœwiêcaj¹c ¿ycie w³asnych ludzi. + + + Dranie! Nie mogli wiedzieæ, co planujemy... Wiêc straciliœmy paru ludzi. A co z celem operacji? + + + Oddzia³ wybity do nogi... Bojownicy Monolitu wci¹gnêli nas w zasadzkê poœwiêcaj¹c ¿ycie w³asnych ludzi. + + + Dranie! Nie mogli wiedzieæ, co planujemy... Wiêc straciliœmy Tarasowa i jego ludzi. A co z celem operacji? + + + Mam broñ. Zosta³a uszkodzona w trakcie walki. + + + A wiêc nie mo¿emy ustaliæ, czy zosta³a u¿yta do zestrzelenia helikopterów. S³uchajcie, majorze: wy macie znajomoœci w krêgach stalkerów. Mo¿liwe, ze oni ju¿ kiedyœ natknêli siê na tê broñ. Powinni byæ wœród nich technicy. Porozmawiacie z nimi? + + + Dobrze. + + + Œwietnie... A, skoro o tym mowa. Jeszcze jeden stalker uszed³ ¿ywcem z Jupitera. Jeœli chcesz, pogadaj z nim na ten temat. + + + Wci¹¿ nad tym pracujê. + + + Rozumiem. Majorze, ta bron jest nam potrzebna. Na pewno rozumiecie, jakie to wa¿ne. + + + A-ha. + + + Znalaz³em twoje zapiski w kompleksie Wo³kow AA. WeŸ je. + + + S³uchaj... A, niewa¿ne. I tak pewnie nikt z naszych nie pojawi siê w tym miejscu. Jeœli zauwa¿ysz tu jakichœ ¿o³nierzy, daj mi znaæ, dobra? Z góry wielkie dziêki... + + + Majorze... Bogu niech bêd¹ dziêki! Jestem uratowany! + + + Jak tu wyl¹dowa³eœ? + + + Eee... Niewiele pamiêtam... By³em tak przera¿ony, ¿e ledwo mog³em myœleæ, a nawet nie wiem, co mnie przestraszy³o. Czu³em, ¿e muszê siê schowaæ, wiêc pobieg³em... Pamiêtam ulice, jakieœ zakrêty... Dotar³em do tej dziury. Drzwi by³y zamkniête od zewn¹trz... Myœla³em, ¿e tu umrê. Jak mnie znalaz³eœ? A tak w ogóle to wynoœmy siê st¹d i chodŸmy do bazy. To miejsce dzia³a mi na nerwy... + + + ChodŸmy. + + + Witam. Potrzebujesz pomocy medycznej? Nie jestem lekarzem, ale potrafiê usuwaæ kule i zszywaæ rany. + + + Potrzebujê informacji. + + + Pytaj. + + + Co do operacji Tor Wodny... + + + Tak? + + + Czy kiedy helikoptery znajdowa³y siê w powietrzu, wydarzy³o siê coœ dziwnego? + + + Dopiero wtedy, gdy zaczê³y spadaæ. Trzymaliœmy siê planu operacji: wystartowaliœmy 90 sekund przed emisj¹, w³¹czyliœmy system ochronny i prze³¹czyliœmy maszyny na autopilota. Lecieliœmy najkrótsz¹ bezpieczn¹ tras¹, opracowan¹ przy pomocy mapy anomalii. Widocznoœæ by³a zerowa, ale to nie powinno by³o zak³óciæ przebiegu misji, bo korytarz by³ wystarczaj¹co szeroki. Wed³ug planu mieliœmy dotrzeæ do elektrowni w dwanaœcie i pó³ minuty. Po dziewiêciu minutach straciliœmy ³¹cznoœæ z Ogoñcz¹ 4, a pozostali zaczêli padaæ jak muchy. + + + Mam jeszcze parê pytañ na temat operacji. + + + Co wiesz o tym, co sta³o siê z helikopterami? + + + Prawie nic. Ogoñcze 2 i 4 to dla mnie zupe³na tajemnica. Nie wiem, gdzie siê rozbi³y ani co siê sta³o z ludŸmi, którzy nimi lecieli. Informacje o pozosta³ych œmig³owcach pochodz¹ od ludzi, którzy prze¿yli, a tych nie ma zbyt wielu, wiêc nie mo¿na liczyæ na dok³adny opis wydarzeñ. Poza tym, mieliœmy inne zmartwienia. + + + Opowiedz mi o Ogoñczy 1. + + + Jak siê tu dosta³eœ? + + + Niedaleko pola minowego spotkaliœmy stalkera. Chyba us³ysza³ eksplozjê miny. Dziwny facet... Mówi³ o sobie „Przewodnik". Nie zadawa³ ¿adnych pytañ, po prostu zaproponowa³, ¿e doprowadzi nas do Prypeci. To nam odpowiada³o, wiêc siê zgodzi³em. Na wszelki wypadek mieliœmy go na oku, ale wszystko posz³o g³adko... A¿ do samego miasta nie odezwa³ siê ani s³owem, a kiedy doszliœmy na miejsce, nagle znikn¹³. Powiedzia³em ludziom, ¿eby go nie szukali. + + + Opowiedz mi o Ogoñczy 3. + + + Kapitan Tarasow mówi, ¿e obydwa silniki mia³y awariê. Musieli l¹dowaæ na wzgórzu w pobli¿u pozycji B2. Mieli szczêœcie, bo l¹dowanie by³o miêkkie, ale technik nie mia³ czasu okreœliæ przyczyny awarii, bo zostali zaatakowani przez snorki i stracili trzech ludzi. Pozostali zdecydowali, ¿e nie bêd¹ tam siedzieæ - skontaktowali siê z Ogoñcz¹ 5 i poszli siê z nimi spotkaæ. Po drodze wdali siê w walkê z dobrze uzbrojonym oddzia³em wroga, ale zdo³ali z tego wyjœæ bez strat w ludziach. + + + Jak siê dostali do Prypeci? + + + Za³ogi Ogoñczy 3 i 5 zdo³a³y spotkaæ siê niedaleko miejsc katastrofy, przy jakiejœ barce. Doniesiono mi, ¿e cz³owiek, który tam mieszka, to kompletny wariat: kiedy moi ludzie próbowali go schwytaæ, on wykrzykiwa³, ¿e ich aresztuje! Niech mnie, biedny dureñ by³ sam, a ich jedenastu. W ka¿dym razie, okaza³o siê, ¿e to spotkanie by³o szczêœliwym trafem, bo w koñcu uda³o im siê dogadaæ i facet zgodzi³ siê poprowadziæ ca³y oddzia³ do Prypeci. Jedyn¹ ofiar¹ by³ porucznik Steczenko, który po drodze straci³ kilka palców u nóg w anomalii grawitacyjnej. + + + Opowiedz mi o Ogoñczy 5. + + + Zawiod³a elektronika i Ogoñcza 5 runê³a prosto w bagno. Katastrofê prze¿y³o piêciu ludzi. Kiedy wyci¹gali sprzêt ze œmig³owca, skontaktowa³a siê z nimi za³oga Ogoñczy 3. Dowódca oddzia³u, major Nieborski, zgin¹³ w drodze do miejsca spotkania. Biedak, tu¿ przy stacji odczytów zabi³a go pijawka... Pozosta³ym nic siê nie sta³o. Ale kiedy doszli do Prypeci, wdali siê w walkê z si³ami Monolitu i stracili jednego ze snajperów, starszego sier¿anta Batiaja. + + + Jak siê dostali do Prypeci? + + + Za³ogi Ogoñczy 3 i 5 zdo³a³y spotkaæ siê niedaleko miejsc katastrofy, przy jakiejœ barce. Doniesiono mi, ¿e cz³owiek, który tam mieszka, to kompletny wariat: kiedy moi ludzie próbowali go schwytaæ, on wykrzykiwa³, ¿e ich aresztuje! Niech mnie, biedny dureñ by³ sam, a ich jedenastu. W ka¿dym razie, okaza³o siê, ¿e to spotkanie by³o szczêœliwym trafem, bo w koñcu uda³o im siê dogadaæ i facet zgodzi³ siê poprowadziæ ca³y oddzia³ do Prypeci. Jedyn¹ ofiar¹ by³ porucznik Steczenko, który po drodze straci³ kilka palców u nóg w anomalii grawitacyjnej. + + + Prawie nic. Ogoñcza 2 to dla mnie zupe³na tajemnica. Nie wiem, gdzie siê rozbi³a ani co siê sta³o z ludŸmi, którzy ni¹ lecieli. O Ogoñczy 4 powinieneœ wiedzieæ wiêcej ni¿ ja. Porucznik Soko³ow, ten, który tu z tob¹ przyszed³, jako jedyny ocala³ z jej katastrofy. Informacje o pozosta³ych œmig³owcach pochodz¹ od ludzi, którzy prze¿yli, a tych nie ma zbyt wielu, wiêc nie mo¿na liczyæ na dok³adny opis wydarzeñ. Poza tym, mieliœmy inne zmartwienia. + + + Prawie nic. Ogoñcza 2 to dla mnie zupe³na tajemnica. Nie wiem, gdzie siê rozbi³a ani co siê sta³o z ludŸmi, którzy ni¹ lecieli. O Ogoñczê 4 mo¿esz sam zapytaæ porucznika Soko³owa. On jeden z ca³ej za³ogi tej maszyny dotar³ do Prypeci. Informacje o pozosta³ych œmig³owcach pochodz¹ od ludzi, którzy prze¿yli, a tych nie ma zbyt wielu, wiêc nie mo¿na liczyæ na dok³adny opis wydarzeñ. Poza tym, mieliœmy inne zmartwienia. + + + Potrzebujê innych informacji. + + + Nie mam wiêcej pytañ. + + + Jaka jest sytuacja w Prypeci? + + + Gorzej ju¿ byæ nie mo¿e. Prypeæ jest pe³na fanatyków Monolitu i zombiaków. Emisje pojawiaj¹ siê jedna za drug¹, a oprócz tego trzeba ci¹gle uwa¿aæ na mutanty i anomalie... Witajcie w piekle. + + + Jak sobie radzicie ze sprzêtem i zaopatrzeniem? + + + Opowiedz mi o Monolicie. + + + To fanatycy, koniec, kropka. Nie wiem, co ich tak nakrêca, ale bez przerwy szukaj¹ zwady. Nie uciekaj¹ nawet w obliczu przewagi liczebnej i ogniowej... A w tym miejscu to rzadkoœæ. Zdaje siê, ¿e ci¹gle nap³ywaj¹ do nich posi³ki z CEJ. Pieprzyæ ich, straciliœmy przez nich ju¿ wielu dobrych ludzi... + + + Przes³uchiwaliœcie któregoœ z nich? + + + To nic nie daje. Przede wszystkim walcz¹ na œmieræ i ¿ycie. W koñcu nasi ch³opcy zdo³ali wzi¹æ jednego ¿ywcem - og³uszy³ go granat - ale niewiele z tego wynik³o. Na sekundê spuœciliœmy go z oczu, a on tak mocno r¹bn¹³ g³ow¹ w œcianê, ¿e jego czaszka pêk³a jak skorupka jajka. + + + Co teraz zrobicie? + + + Nie s¹dzê, ¿eby da³o siê kontynuowaæ Operacjê Tor Wodny. Wasza obecnoœæ tutaj to potwierdza. Chcê utrzymaæ bazê, dopóki nie zjawi¹ siê œmig³owce. Mam kilka mo¿liwych dat ewakuacji. + + + Nikt tu nie przyleci, dopóki siê nie dowiemy, co spowodowa³o katastrofê Ogoñczy. + + + A wiêc tak to wygl¹da... Ale przecie¿ pieszo siê st¹d nie wydostaniemy! Bóg jeden wie, ile kilometrów ma to gówno, a poza tym Zona pe³na jest stalkerów, z którymi nie jesteœmy w najlepszych stosunkach. To znaczy, ¿e naszym jedynym wyjœciem jest przeprowadziæ w³asne dochodzenie i nie daæ siê przy tym zabiæ. Mamy wspólny cel, majorze. + + + Nie teraz. + + + S³ucham, majorze. + + + Ze sprzêtu mamy tylko to, co mieliœmy ze sob¹. Uda³o nam siê równie¿ przechwyciæ trochê rzeczy Monolitu, g³ównie amunicjê. Braki zmuszaj¹ nas do oszczêdnego wydzielania zapasów. Tak samo jest z jedzeniem - mamy tylko ¿elazne racje i trochê ¿arcia z magazynu Monolitu. + + + Ze sprzêtu mamy tylko to, co mieliœmy ze sob¹. Uda³o nam siê równie¿ przechwyciæ trochê rzeczy Monolitu, g³ównie amunicjê. Braki zmuszaj¹ nas do oszczêdnego wydzielania zapasów. Jeœli chodzi o jedzenie, to jest bardzo podobnie, z tym, ¿e zawar³em umowê z Garrim. On przynosi nam konserwy, a my pozwalamy mu zostaæ w bazie i patrzymy w inn¹ stronê, gdy szuka artefaktów... I tak nie mamy innego wyboru. + + + Pomœciliœmy naszych ch³opców... Rób, co musisz, i wracajmy. Nie mam ochoty d³u¿ej tu siedzieæ. + + + Nie traæmy tu czasu, dobra? Chcê jak najszybciej wróciæ do bazy... + + + Dobrze. + + + Tam jest ta dziwna rzecz! Jak myœlisz, do czego im ona potrzebna? A, niewa¿ne. ChodŸ, stary - rób, co musisz, i wracajmy do bazy. + + + Skoñczy³eœ ju¿? Chêtnie wrócê do bazy i coœ przek¹szê... + + + Dobrze. + + + Jak samopoczucie? + + + Do dupy. Dobrze byæ ze swoimi, ale przebywanie z innymi ludŸmi w jednym bagnie nie napawa mnie optymizmem. + + + Nie widzia³em ciê tu wczeœniej. Zjawi³eœ siê niedawno? + + + Tak. Jestem porucznik Soko³ow, jeden z pilotów Ogoñczy 4. + + + Jak siê tu znalaz³eœ? + + + Przyszed³em ze stalkerem imieniem Garri. Poprosi³em go, ¿eby mnie ze sob¹ zabra³, kiedy szuka³ drogi do Prypeci. To dopiero by³a przeprawa! Dobrze, ¿e tu¿ po dojœciu do Prypeci wpadliœmy na nasz oddzia³ zwiadowczy. + + + Co siê sta³o z Ogoñcz¹ 4? + + + A kto to mo¿e wiedzieæ? Od pocz¹tku mia³em z³e przeczucia... Lecieliœmy na autopilocie, sprzêt dzia³a³ bez zarzutu, a w nastêpnej chwili siedzieliœmy w kupie z³omu z rozwalon¹ elektronik¹. Ja i pilot próbowaliœmy dotrzeæ do p³askiego terenu, ale siê nie uda³o. Spadliœmy prosto na g³ówny warsztat elektrowni Jupiter, runêliœmy przez dach... Tylko ja prze¿y³em. + + + Potrzebujê kamizelki kuloodpornej. + + + Dobrze. Na pocz¹tek he³m... Teraz kamizelka - mam nadziejê, ¿e bêdzie pasowa³a, bo i tak nie mamy innego rozmiaru. Po³ata³em j¹, powinna wytrzymaæ. + + + Oczywiœcie, majorze... W tych okolicznoœciach nie mam wielkiego wyboru... Przy okazji, poszukajcie porucznika Kiry³owa. Wyda wam trochê sprzêtu. + + + Co do helikopterów... + + + S³ucham. + + + Rany, to wariactwo... Ju¿ widzê, jak Kiry³ow bêdzie mnie póŸniej b³aga³ o aspirynê. + + + Najgorsze jest czekanie. Nic innego tak nie wyprowadza z równowagi... + + + Dobrze, majorze, ch³opcy mog¹ ruszaæ. Jeœli musicie siê w coœ zaopatrzyæ, poszukajcie Kiry³owa i Rogowca. Dajcie znaæ, jak bêdziecie gotowi. + + + Dobrze. + + + Ruszajcie. + + + Có¿, w takim razie musi byæ twardy jak ska³a, taki, jakie maj¹ naukowcy. Ale nie bêdzie ³atwo namówiæ Hermana, ¿eby da³ mi kombinezon. Mam przeczucie, ¿e wola³by, ¿ebym poszed³ z go³ym ty³kiem do krañca Zony, a nie zajmowa³ cenne miejsce w ich bunkrze... Mo¿esz spytaæ Oziorskiego. Jest trochê milszy i byæ mo¿e zgodzi siê wydaæ mi kombinezon. + + + No i co, majorze? + + + [Dalej....] + + + [Dalej....] + + + By³em tam. Jak tylko straciliœmy ³¹cznoœæ z Ogoñcz¹ 4, powiedzia³em pozosta³ym o wyznaczonym punkcie ewakuacyjnym w Prypeci - pomyœla³em, ¿e mo¿emy iœæ do elektrowni. Niemal w tym samym momencie helikopter oberwa³ i rozszed³ siê zapach spalenizny - zapali³ siê silnik. Piloci zdo³ali dolecieæ do l¹dowisk w pobli¿u Jupitera, ale przy uderzeniu obydwaj zginêli. Potem straciliœmy sier¿anta Szlaczina - okaza³o siê, ¿e teren wokó³ l¹dowisk by³ zaminowany... W Prypeci zgin¹³ kolejny z nas, starszy porucznik, kiedy walczyliœmy z Monolitem o ten budynek. + + diff --git a/gamedata/configs/text/pol/st_dialogs_zaton.xml b/gamedata/configs/text/pol/st_dialogs_zaton.xml new file mode 100644 index 0000000..fdc7da9 --- /dev/null +++ b/gamedata/configs/text/pol/st_dialogs_zaton.xml @@ -0,0 +1,3117 @@ + + + + Znalaz³em przy pog³êbiarce dziwny artefakt. Proszê. + + + Ciekawe - pó³artefakt... Oto twoja zap³ata. Za dobr¹ robotê jest dobra zap³ata... Zdaje siê, ¿e porz¹dnie ciê przeszkolili. PrzyjdŸ do mnie, jak bêdziesz potrzebowa³ pracy. Czêsto dostajê zamówienia na okreœlone artefakty, a zap³ata jest naprawdê niez³a. + + + Masz dla mnie pracê? + + + Coœ tam mam... Zesz³ej nocy stalkerzy widzieli przy pog³êbiarce jakiœ dziwny blask... Dziwny nawet jak na tê okolicê. Mo¿e to sprawdzisz? + + + Dobrze. + + + Tylko uwa¿aj na siebie. Ostrzegam ciê, tam jest silne promieniowanie. Nie zapomnij leków - póŸniej mi podziêkujesz. + + + W tej chwili nie. + + + Ju¿ rozdzieli³em wszystkie dzisiejsze zadania. + + + WeŸ ten pó³artefakt. + + + Oto twoja dzia³ka. Za dobr¹ robotê jest dobra zap³ata... Zdaje siê, ¿e porz¹dnie ciê przeszkolili. PrzyjdŸ do mnie, jak bêdziesz potrzebowa³ pracy. Czêsto dostajê zamówienia na okreœlone artefakty, a zap³ata jest naprawdê niez³a. + + + Znalaz³em przy pog³êbiarce dziwny artefakt. Chcesz zerkn¹æ? + + + Ciekawe - pó³artefakt... Uwolniê ciê od niego. 3000 to chyba uczciwa zap³ata. + + + Widzia³em, ¿e ktoœ ci przyniós³ artefakt, który znalaz³em. + + + Przykro mi, ale nie dam siê w to wci¹gn¹æ. Moje zasady s¹ proste: przynosisz - dostajesz kasê. Wiesz, jak funkcjonuje Zona - b¹dŸ czujny, dzia³aj szybko i nie ufaj nikomu, komu nie mo¿esz przy³o¿yæ. Ale jeœli potrzebujesz sta³ej pracy, dobrze trafi³eœ. Czêsto dostajê zamówienia na okreœlone artefakty, a zap³ata jest naprawdê niez³a. + + + Jakich artefaktów potrzebujesz? + + + Zdobêdê Grawi. + + + Œwietnie! Szybko posz³o. Oto twoja zap³ata. + + + Zdobêdê Oko. + + + Zdobêdê B¹bel. + + + Zdobêdê Muszlê. + + + Zdobêdê Z³ot¹ rybkê. + + + Zdobêdê P³omieñ. + + + Zdobêdê Œwietlika. + + + Zdobêdê Œnie¿ynkê. + + + Mogê ci sprzedaæ Grawi. + + + Dzieje siê tu coœ dziwnego. Ch³opaki bior¹ zlecenia, a potem znikaj¹... Nie podoba mi siê to wszystko. Zamykam interes. + + + Mogê ci sprzedaæ Oko. + + + Mogê ci sprzedaæ B¹bel. + + + Mogê ci sprzedaæ Muszlê. + + + Mogê ci sprzedaæ Z³ot¹ rybkê. + + + Mogê ci sprzedaæ P³omieñ. + + + Mogê ci sprzedaæ Œwietlika. + + + Mogê ci sprzedaæ Œnie¿ynkê. + + + Rozumiem. Wrócê póŸniej. + + + Obie grupy, które dla mnie pracowa³y, zaginê³y... Postanowi³em, ¿e na razie nie bêdê przyjmowa³ nowych zleceñ. + + + Robota wykonana. + + + Œwietnie! Oto twoja zap³ata. + + + Proszê. Mo¿e to niedu¿o, ale zawsze siê przyda. + + + Opowiedz mi o zamówieniach na artefakty. + + + Kogo mogê zatrudniæ do ochrony naukowców? + + + Moich ch³opaków - Spartakusa i jego dru¿ynê. Maj¹ doœwiadczenie. Niektórzy, zanim trafili do Zony, byli ochroniarzami, a wyobraŸ sobie, ¿e s¹ tacy, którzy s³u¿yli w policyjnych si³ach specjalnych. Wiedz¹, za który koniec trzyma siê spluwê... Jeœli da siê ich zwerbowaæ, bêdzie z nich dobra ochrona. + + + Mia³bym coœ dla ciebie, ale w œwietle ostatnich wydarzeñ... Dru¿yny Spartakusa ju¿ nie ma, niech spoczywa w pokoju. + + + Kogo mogê zatrudniæ do robienia pomiarów dla naukowców? + + + Znasz Gontê i jego ch³opaków? Poza sezonem myœliwskim oni... hmm... chêtnie bior¹ prace dodatkowe. Zw³aszcza jeœli nie wymagaj¹ strzelania. Myœl¹ tak: „jeœli chcê, ¿eby palec zdrêtwia³ mi od poci¹gania za spust, zawsze mam polowanie”. + + + Nie mam pojêcia. Poleci³bym ci grupê Gonty, ale od d³u¿szego czasu nie mia³em o nich ¿adnych wieœci. + + + Opowiedz mi, jak siê tutaj ¿yje. + + + Du¿o by opowiadaæ. Zadawaj mi konkretne pytania, a odpowiem najlepiej jak umiem. + + + Co tu robi¹ stalkerzy? + + + Co za pytanie, ch³opie. Schodz¹ na l¹d ze Skadowska, ¿eby zbadaæ teren i poszukaæ artefaktów, strzelaj¹c przy tym do wszystkich i wszystkiego, co siê rusza. Wracaj¹ na Skadowsk, ¿eby siê nawaliæ i nagadaæ... Odpocz¹æ i rozerwaæ siê przed nastêpn¹ wypraw¹. Ale kiedy uderza emisja, wygl¹da to zupe³nie inaczej. Wtedy wszyscy siedzimy jak trusie i wspominamy tych, którzy nie zd¹¿yli siê schowaæ... + + + Co przywiod³o stalkerów do centrum Zony? + + + Zabawne pytanie. Niektórzy chcieli odkryæ kolejn¹ skarbnicê artefaktów. Innych przyci¹gnê³y tu plotki na temat Oazy. Czêœæ szuka³a Spe³niacza ¯yczeñ. No i zadzia³a³y te¿ fundamentalne ludzkie instynkty - chciwoœæ i ciekawoœæ... Wszyscy mamy swoje powody. Ty z pewnoœci¹ te¿. + + + Jak tu trafi³eœ? + + + Przyszed³em tu z G³uszcem po tym, jak Mózgozwêglacz zosta³ wy³¹czony. Ale na pewno nie o to pytasz, mam racjê? Zajmujê siê g³ównie artefaktami. Na zewn¹trz jest ju¿ mnóstwo ró¿nych drobiazgów, wiêc cenni klienci szukaj¹ czegoœ wyj¹tkowego. Dlatego postanowi³em za³o¿yæ obóz stalkerów w miejscu, gdzie wci¹¿ mo¿na znaleŸæ naprawdê wartoœciowe artefakty. No bo kiedy stalker wraca z ³upem, czego mu w³aœciwie potrzeba? Zimnego piwa i kogoœ do pogadania. I po to w³aœnie jest Skadowsk. + + + Co s¹dzisz o bandytach? + + + To jest tak. Nie przeszkadzaj¹ mi na Skadowsku, jeœli zachowuj¹ siê przyzwoicie. W koñcu niezbyt czêsto spotyka siê prawdziwych dupków. Niektórzy byli kiedyœ stalkerami. Kto wie, mo¿e któryœ z tych nieszczêsnych idiotów porzuci te szemrane interesy, zanim zarobi kulkê... ¯ycie jest pe³ne niespodzianek. + + + Pogadajmy o czym innym. + + + Skoro tak mówisz. + + + Powiedz mi, czy pojawili siê tu jacyœ ¿o³nierze? + + + Zastanów siê. Co ¿o³dacy mieliby robiæ w naszym obozie? Wierz mi, oni wol¹ omijaæ to miejsce z daleka. Zbyt wielu z nas pamiêta, jak siê czo³ga³o w b³ocie w Kordonie pod ostrza³em z ich cholernych karabinów... + + + Opowiedz mi o Kompasie. + + + O tym artefakcie kr¹¿¹ legendy. Mówi siê, ¿e Kompas nie ma szkodliwych efektów ubocznych, a jeœli umie siê go u¿ywaæ, wyprowadzi z ka¿dej anomalii. Rozumiesz, dlaczego ustawiaj¹ siê po niego kolejki chêtnych. Nie dalej jak wczoraj s³ysza³em, ¿e Noe wie coœ na jego temat. To stalker, mieszka na po³udnie st¹d. + + + Dobrze, odwiedzê Noego. + + + Pomyœlê o tym. + + + Ju¿ ci mówi³em, to artefakt-legenda. Podobno stalker imieniem Noe wie coœ na jego temat. Mieszka na po³udnie st¹d. + + + Niedaleko Janowa znalaz³em dziwny artefakt. Jesteœ zainteresowany? + + + Niech no mu siê przyjrzê... Ano dziwny, ale raczej nie znajdê na niego kupca. Lepiej wróæ do Janowa i poka¿ go naukowcom. Oni zawsze podniecaj¹ siê takimi pokrêconymi rzeczami. + + + Sowa mówi, ¿e nie dotrzymujesz umów. + + + Mieliœmy bardzo jasne warunki. Ja dostajê detektory, organizujê ich wykorzystanie w polu, a on dostaje procent od zysku. Zap³aci³em mu ju¿ za dwa detektory, wiêc nie naruszy³em ¿adnych ustaleñ. Tak w³aœnie wygl¹da moja umowa z Sow¹. Jeœli dla niego pracujesz, mo¿esz zabraæ trzeci detektor - nie kupiê go. + + + No to co mam powiedzieæ Sowie? + + + Chyba tak. + + + Na twoim miejscu nie robi³bym interesów z Sow¹. Jeœli chcesz nieŸle zarobiæ, mogê daæ ci fory w polowaniu na artefakty. Dwie-trzy godziny - to doœæ, ¿eby przeœcign¹æ pozosta³ych. A jeœli jesteœ zainteresowany, mam te¿ zlecenie specjalne. Pilnie potrzebujê artefaktu zwanego Kompasem. + + + Su³tan zdo³a³ przechwyciæ Kompas. + + + A to cholernik jeden... dobra, niewa¿ne. Pogadaj jeszcze raz z Noem. Wed³ug ostatnich plotek mo¿e siê to okazaæ... po¿yteczne. + + + Znalaz³em Kompas. Proszê. + + + Stary, ¿ycie mi ratujesz! No to teraz na pewno mam tego wa¿nego klienta w kieszeni. Kr¹¿¹ plotki, ¿e Su³tan chcia³ przej¹æ mój interes. Czeka go gorzki, acz zas³u¿ony zawód. Masz, to dla ciebie - uczciwie to zarobi³eœ. + + + Nie bêdê szuka³ dla ciebie Kompasu. + + + Szkoda. Trudno. + + + Pozdrowienia od Su³tana. Przy okazji, wszystkie twoje kana³y dostaw zosta³y odciête. + + + No to teraz wiadomo, kto za tym wszystkim stoi... Nie ruszê siê ze Skadowska. Chyba nie mam wyboru, muszê pracowaæ dla ciebie i dla Su³tana. Dostanie swoj¹ dzia³kê z utargu, a ty mo¿esz codziennie przychodziæ po swoj¹. Pieni¹dze bêd¹ czekaæ. + + + Daj mi mój udzia³. + + + Proszê bardzo. + + + Przychodzisz za wczeœnie. Jeszcze nie mam forsy. + + + Myœlisz, ¿e ¯wawy mo¿e handlowaæ kradzionymi przedmiotami? + + + W¹tpiê... Z tego, co o nim wiem, woli nie mieszaæ siê w podejrzane interesy. Dobry biznesmen dba o swoje dobre imiê i reputacjê. Ogólnie rzecz bior¹c, nigdy nie s³ysza³em od nikogo z³ego s³owa na ¯wawego. + + + Szukam Sêka. Wiesz, gdzie mogê go znaleŸæ? + + + Kiedy go ostatnio widzia³em, wychodzi³ z baru. Jeœli dobrze pamiêtam, to z rozmowy wynika³o, ¿e idzie do dŸwigów portowych. Mo¿e tam go znajdziesz. + + + Ktoœ planuje obrobiæ grupê stalkerów. Wœród nich jest te¿ paru naszych. + + + No nie, stary. Bandyci mno¿¹ siê jak króliki, a my zaczynamy walczyæ miêdzy sob¹? + + + Mia³em propozycjê, ¿eby zaatakowaæ w nocy obóz w pobli¿u Szewczenki. + + + Dupki... Ale w³aœciwie by³oby mi³o, gdybyœ siê zgodzi³. Rozumiesz, o co mi chodzi?... W ten sposób móg³bym ostrzec ch³opaków i zd¹¿yliby przygotowaæ dla naszych goœci serdeczne powitanie. + + + Zgoda. + + + Dobra, idŸ pogadaæ z tymi palantami, a ja dam znaæ ch³opakom. + + + Przykro mi, radŸcie sobie sami. + + + Mam artefakt z Oazy. Zainteresowany? + + + Serce Oazy? Eee, dam sobie spokój. Ludzie gadaj¹ ró¿ne rzeczy... Mo¿e jestem przes¹dny, ale wola³bym siê do niego nie zbli¿aæ. Lepiej oddaj go naukowcom. Niech go zbadaj¹ i wyjaœni¹ nam, jak oddzia³uje na ludzi. + + + Jesteœ tu nowy? Spokojnie, nied³ugo siê we wszystkim po³apiesz... Zona to surowa nauczycielka. Jestem Brodacz, tutejszy barman. Jak bêdziesz mia³ pytania, wal do mnie jak w dym, jasne? + + + Mów. + + + Chcia³byœ zarobiæ trochê kasy szukaj¹c artefaktów? + + + Jak tam moje zamówienie? Pamiêtaj, im jesteœ szybszy, tym wiêcej zarabiasz. + + + SpóŸni³eœ siê, ktoœ ju¿ dostarczy³ ten artefakt. Ale jeœli zrealizowa³eœ zamówienie, zap³acê ci. Tylko mniej. + + + W³aœnie coœ wyskoczy³o. Mówi siê, ¿e bandyci planuj¹ zakup broni. Nasi ch³opcy chc¹ ich œledziæ i nie dopuœciæ do transakcji. Przyda nam siê ka¿da pomoc. + + + No i? + + + Co robi¹ najemnicy w zak³adzie utylizacji odpadów? + + + Lepiej siê tam nie zapuszczaj. To nie twoja sprawa. + + + Podoba ci siê praca u naukowców? + + + Ca³kiem j¹ lubiê. Cieszê siê, ¿e to do nas przyszed³eœ. Naukowcy nie mogliby mieæ lepszej ochrony ni¿ my. + + + Zbieram oddzia³, z którym wybiorê siê do Prypeci. Przy³¹czysz siê? + + + Nie. Muszê pilnowaæ naukowców... Ale pogadaj z Soko³owem - pamiêtam, ¿e chcia³ iœæ do Prypeci. + + + Nie. Muszê pilnowaæ naukowców... W koñcu jesteœmy tu po to, ¿eby ich ochraniaæ. + + + Ekhm... Nie, na razie muszê zostaæ tutaj. + + + Chcia³byœ pracowaæ dla naukowców? + + + To zale¿y... Co mia³bym robiæ? + + + Ochraniaæ bunkier. + + + Jasne, dziêki za propozycjê. + + + Dokonywaæ pomiarów w anomaliach. + + + To nie dla nas robota. Lepiej zapytaj stalkerów. + + + S³uchaj, stalkerze. Ju¿ i tam umieram z g³odu, a twoje marudzenie tylko mnie dodatkowo dobija... + + + Mogê ci przynieœæ coœ do jedzenia. + + + Ha! Dobra, przynieœ. Konserwê miêsn¹, kie³basê i chleb... Po szeœæ sztuk. Przynieœ tyle, ¿eby wystarczy³o dla wszystkich, bo jesteœmy g³odni jak wilki. + + + Podobno mo¿na tu znaleŸæ narzêdzia. + + + A kto to wie? Ale przestañ siê tak krêciæ. I tak mamy masê roboty - nie mam nawet kogo wys³aæ po jedzenie. + + + A kto to wie? Ale jak chcesz, mo¿esz sobie przeszukaæ ten œmietnik. Mo¿e znajdziesz to, czego ci trzeba. + + + Oto jedzenie. + + + Rany, a ju¿ straci³em nadziejê... Dziêki. Bêdzie z tego dobry obiad dla ch³opaków. No to czego chcia³eœ? Przeszukaæ te œmieci? Mo¿e znajdziesz tam to, czego potrzebujesz. Tylko przestañ wymachiwaæ t¹ spluw¹! + + + Rany, a ju¿ straci³em nadziejê... Dziêki. Bêdzie z tego dobry obiad dla ch³opaków. S³uchaj, jeœli chcesz siê tu trochê rozejrzeæ... Nie ma problemu. Tylko przestañ wymachiwaæ t¹ spluw¹! + + + Nie jesteœ tu mile widziany. To nasz obóz i nie masz tu czego szukaæ. Moi ch³opcy i tak s¹ ju¿ za bardzo wyg³odzeni i spiêci... + + + Przestañ, bo moi ch³opcy s¹ tak wyg³odzeni, ¿e palce im siê trzês¹ na spustach... + + + A, stalker... Chodzi o coœ wa¿nego? Bo jak nie, to muszê wracaæ do roboty. + + + Jestem gotów iœæ na polowanie. + + + Dobrze. ChodŸmy. + + + ChodŸmy. + + + Jeszcze nie pora. Wróæ o trzeciej nad ranem. + + + Rozumiem. + + + My te¿... Tylko ¿e ta emisja - chimera na pewno teraz nie œpi. Chyba bêdziemy musieli spróbowaæ szczêœcia nastêpnym razem... + + + Gonta nie ¿yje. Jak to siê sta³o... Idziesz przypadkiem do Janowa? Jest tam Traper, przyjaciel Gonty. Powiesz mu, ¿e chimera nie ¿yje? Ja pewnie pójdê do domu. + + + Trzymaj siê. + + + Wynoœ siê st¹d. To przez ciebie zgin¹³ Gonta. Co my teraz zrobimy?... + + + Trzymaj siê. + + + Opowiedz mi o sobie. + + + Jestem Gonta, przywódca myœliwych. Zabijamy mutanty za kasê. Czasami ³apiemy je te¿ ¿ywcem - do eksperymentów naukowych albo jeœli ktoœ chce mieæ egzotyczne zwierz¹tko... Jak mawia³ Traper: „Ka¿dej bestii kula wedle potrzeb..." + + + Opowiedz mi o polowaniach na mutanty. + + + Nie jestem najbardziej doœwiadczonym myœliwym, ale mogê ci opowiedzieæ o zwierzêtach, które ¿yj¹ w stadach. Miêsacze, dziki, œlepe psy, nibypsy, snorki, chomiki... Wiem nawet to i owo o pijawkach. + + + Opowiedz mi o dzikach i miêsaczach. + + + Miêsacze s¹ najmniej groŸne ze wszystkich mutantów. Omijaj¹ stalkerów z daleka, ale zaatakowane bêd¹ siê broniæ. Jeœli jest z nimi dzik, mog¹ byæ k³opoty. Trzysta kilo wœciek³oœci to nie przelewki. Jeœli na ciebie zaszar¿uje, zejdŸ mu z drogi. Spróbuj wykorzystaæ przeciw niemu jego w³asny rozpêd. Taka góra miêsa nie zdo³a siê szybko odwróciæ, prawda? Uskocz na bok, a potem nafaszeruj go œrutem. + + + Opowiedz mi o œlepych psach i nibypsach. + + + Samotne psy nie s¹ zbyt groŸne, ale ca³e stado to ju¿ spory problem. Atakuj¹ tylko, gdy s¹ g³odne... k³opot w tym, ¿e rzadko kiedy nie s¹. Jeœli przyjdzie ci walczyæ z ca³ym stadem, spróbuj je po kolei powystrzelaæ z wy¿ej po³o¿onego miejsca, inaczej po prostu ciê przewróc¹. Zw³aszcza jeœli s¹ z nimi doros³e nibypsy. Nie s¹ du¿o silniejsze od œlepych psów, ale znacznie bardziej przebieg³e i niebezpieczne... Jeœli jeden zamieni siê nagle w ca³e stado, pamiêtaj: atakuj¹ ciê widma. Prawdziwy nibypies bêdzie siê trzymaæ z ty³u i tylko podgryzaæ ciê od czasu do czasu... Spróbuj go znaleŸæ. Gdy tylko prawdziwy pies zginie, widma znikn¹. + + + Opowiedz mi o snorkach. + + + Pozosta³oœci ludzi... Dla doœwiadczonego myœliwego samotny snork nie stanowi problemu. Czekasz, a¿ na ciebie skoczy, a potem faszerujesz go œrutem. Ale kiedy jest ich wiêcej... Trzeba do nich strzelaæ najszybciej, jak siê da, i unikaæ ich skoków. One o tym wiedz¹ i zwykle próbuj¹ atakowaæ jednoczeœnie. + + + Opowiedz mi o chomikach. + + + To koszmar ka¿dego myœliwego... Najgorsze, co mo¿na zrobiæ, to je zlekcewa¿yæ myœl¹c, ¿e s¹ takie ma³e. S¹ niesamowicie szybkie, zwinne i zawsze przemieszczaj¹ siê stadami. Kiedy poczujesz, jak wbija siê w ciebie kilkadziesi¹t ma³ych k³ów - wtedy przestajesz je lekcewa¿yæ i zaczynasz strzelaæ... A teraz najgorsze: potwornie trudno je trafiæ. To dlatego zawsze powtarzam stalkerom, ¿eby mieli przy sobie na³adowan¹ strzelbê. + + + Opowiedz mi o pijawkach. + + + One same s¹ doœwiadczonymi ³owcami i potrafi¹ siê œwietnie kamuflowaæ. Prawie ich wtedy nie widaæ. Jeœli polujesz na pijawkê, spróbuj j¹ przestraszyæ. Bêdziesz j¹ lepiej widzieæ, kiedy bêdzie siê poruszaæ... Pamiêtaj, pijawki zakradaj¹ siê od ty³u i oplataj¹ szyjê ofiary swoimi mackami. To paskudne, stary... Jeœli bêdziesz mia³ pecha i trafisz na kilka pijawek, zawsze uwa¿aj, co masz za plecami. + + + Dobrze, niewa¿ne. + + + Jeœli spotkam Srokê, na pewno dam ci znaæ. + + + Nie bêdziesz tego ¿a³owa³... Dam mu popaliæ. + + + Czym ci podpad³ Sroka? + + + Przyszed³ raz do mnie i powiedzia³, ¿e przez kontrolera nie mo¿e zabraæ swojego ³upu. W mojej dru¿ynie brakowa³o wtedy jednego cz³owieka. Dani³a, nasz tropiciel, wyruszy³ na poszukiwanie gniazda pijawek. No wiêc stwierdziliœmy, ¿e pomo¿emy Sroce w odzyskaniu ³upu i zabraliœmy go ze sob¹ na polowanie. Mia³ tylko pilnowaæ, czy nie zbli¿a siê do nas chimera... + + + I co by³o dalej? + + + A dalej by³o tak - ten drañ zwia³ ze swoim ³upem i przy okazji zwêdzi³ nasz. Kiedy pojawi³a siê chimera, byliœmy kompletnie zaskoczeni. Garmata w ogóle nie zd¹¿y³ zareagowaæ. No bo kto by zd¹¿y³? I zamiast polowaæ na nasz¹ zwierzynê, musia³em broniæ swoich ludzi. W koñcu uda³o mi siê zraniæ chimerê, ale zanim uciek³a, uda³o jej siê nieŸle poturbowaæ Kraba. Ca³y tydzieñ przygotowañ poszed³ na marne. + + + Stary, jesteœ urodzonym myœliwym! Oto trofeum specjalnie ode mnie... Jak mawia³ Traper: „Twoj¹ g³ówn¹ broni¹ s¹ umiejêtnoœci”. Przy okazji, idziesz do Janowa? Dobrze by by³o mu powiedzieæ, ¿e chimera nie ¿yje. Ja na razie zostanê na Skadowsku, poczekam, a¿ Krab wydobrzeje. Idziesz z nami? + + + Tak. ChodŸmy. + + + Nie. Rozejrzê siê jeszcze po okolicy. + + + Uda³o nam siê. To ma³e trofeum jest specjalnie ode mnie... Mog³o pójœæ odrobinê lepiej, ale i tak wysz³o nieŸle. Jak mawia³ Traper: „Jeœli ma siê doœwiadczenie, to na co pu³apki?”... Przy okazji, idziesz do Janowa? Dobrze by by³o mu powiedzieæ, ¿e chimera nie ¿yje. Ja na razie zostanê na Skadowsku, poczekam, a¿ Krab wydobrzeje. Idziesz z nami? + + + Garmata nie ¿yje... Ta chimera drogo nas kosztowa³a. Nie idziesz czasem do Janowa? Powinniœmy powiadomiæ Trapera, ¿e chimera nie ¿yje. Ja na razie zostanê na Skadowsku, poczekam, a¿ Krab wydobrzeje. Idziesz? + + + Znalaz³em Dani³ê. Nie ¿yje. Zabi³ go Wstrz¹s, który te¿ nie ¿yje. + + + O rany! Dlaczego zawsze najpierw gin¹ ci najlepsi? Ten Wstrz¹s, sukinsyn jeden! Zabi³ Dani³ê... To by³ cholernie dobry ch³opak! + + + S¹dzisz, ¿e ¯wawy mo¿e handlowaæ kradzionymi towarami? + + + Kradzionymi towarami? Sk¹d ci to przysz³o do g³owy? Znam ¯wawego od dawna, regularnie kupujê od niego broñ. Ma œwietny towar w dobrej cenie. Pierwsze s³yszê. Pewnie jacyœ nowi konkurenci chc¹ go wysadziæ z siod³a i rozsiewaj¹ plotki... + + + Zbieram oddzia³, z którym wybiorê siê do Prypeci. Przy³¹czysz siê? + + + Mam umowê z naukowcami i muszê jej dotrzymaæ. Poza tym nie mam ochoty iœæ. Powinieneœ pogadaæ z Soko³owem. Ci¹gle mi suszy g³owê, w kó³ko powtarza, ¿e musi iœæ do Prypeci, ale boi siê wybraæ sam. Prawdziwy z niego ¿o³nierz. + + + Mam umowê z naukowcami i muszê jej dotrzymaæ. Poza tym nie mam ochoty iœæ. Przykro mi, stary. + + + Nie, nie chce mi siê. Tutaj jest na co polowaæ. Ty najlepiej wiesz, ile mutantów nadal grasuje w tych okolicach - dobremu myœliwemu wystarczy ich do koñca ¿ycia i jeszcze d³u¿ej. + + + Chcia³byœ pracowaæ dla naukowców? + + + Co mia³bym robiæ? + + + Ochraniaæ bunkier. + + + Nie, dziêki. Jestem myœliwym, moja robota dotyczy mutantów. A mutanty nie zagra¿aj¹ bunkrowi. Ludzie owszem, to co innego. + + + Dokonywaæ pomiarów w anomaliach. + + + Czemu nie? Mo¿emy to robiæ. Oficjalnie og³aszam zamkniêcie sezonu ³owieckiego! Dobrze bêdzie sobie zrobiæ przerwê od codziennej rutyny, od tych ciarek, które nas przechodz¹ za ka¿dym razem, gdy idziemy w teren... + + + Nie, nie teraz. Teraz, rozumiesz, polujemy. Najpierw musimy wyrównaæ rachunki z chimer¹. Nie mo¿emy pozwoliæ, ¿eby ten krwio¿erczy mutant grasowa³ w Zonie i zabija³ stalkerów na prawo i lewo. + + + Z rozkosz¹ œcisn¹³bym teraz Srokê za gard³o. A potem by³bym ju¿ anielsko spokojny i gotowy porozmawiaæ z tob¹ o pracy. + + + PóŸniej. Teraz i tak mamy ju¿ doœæ na g³owie. Musimy rozprawiæ siê z chimer¹ i znaleŸæ Srokê. Nie mamy czasu na nic innego. + + + Znalaz³em Srokê. Jest w stacji Janów, nazywa siê teraz Flint. + + + Ten sukinsyn jeszcze ¿yje? No to ju¿ niedu¿o mu zosta³o... WeŸ to - dziêki za wskazówkê. Ju¿ siê nie mogê doczekaæ spotkania z tym fiutem. Flint, powiadasz... + + + Tak. Dziêki. + + + Stary, widzia³eœ tego Srokê? Znasz go?... Nie? No to jak spotkasz tê szujê, to spokojnie wpakuj mu kulê w ³eb. Albo mi powiedz, gdzie go znajdê, dopilnujê, ¿eby ci siê to op³aci³o. + + + A witam, witam. + + + Czekaj! Wytropiliœmy chimerê, wiêc nie mamy czasu do stracenia. Krab jeszcze nie wydobrza³, Dani³a jeszcze nie wróci³, a œciganie tej bestii we dwóch to czysta g³upota. Potrzebujemy trzeciego. Ty jesteœ twardym goœciem. Znalaz³eœ Srokê. Mo¿e zapolujesz z nami na tê chimerê? + + + Czekaj! Wytropiliœmy chimerê, wiêc nie mamy czasu do stracenia. Krab jeszcze nie wydobrza³, Dani³a jeszcze nie wróci³, a œciganie tej bestii we dwóch to czysta g³upota. Potrzebujemy trzeciego. Ty jesteœ twardym goœciem. Mo¿e zapolujesz z nami na tê chimerê? + + + Z przyjemnoœci¹. + + + Jak mawia³ Traper: „Kiedy polujesz, samo polowanie to tylko po³owa roboty...”. S³uchaj: kiedy chimera spêdza noc na ³owach, wraca do swojego le¿a oko³o trzeciej nad ranem. Potem œpi jak zabita. I wtedy musimy j¹ zaatakowaæ... Kiedy bêdziesz gotów, przyjdŸ tu o trzeciej w nocy i wyruszymy na ³owy. Bêdziemy w barze. + + + Przemyœlê to. + + + Jeœli siê zdecydujesz, wpadnij do baru oko³o trzeciej nad ranem. O tej porze chimera wraca do swojego le¿a na odœwie¿aj¹c¹ drzemkê. + + + Czo³em. Jak leci? Wygl¹dasz na wypoczêtego. + + + A, super. Œwiat jest jednak ma³y. + + + No i co? Ju¿ czas rozprawiæ siê z chimer¹. + + + Denerwujesz siê trochê przed polowaniem? + + + Traper poprosi³, ¿ebym pomóg³ wam upolowaæ chimerê. + + + Widzê, ¿e instynkt nadal go nie zawodzi. Uda³o nam siê w koñcu wytropiæ tê chimerê. Niestety Krab jeszcze nie wydobrza³, a Dani³a jeszcze nie wróci³... Wiêc jest nas tylko trzech. Ale jeœli Traper ciê wybra³, musisz byæ dobrym myœliwym. S³uchaj: kiedy chimera spêdza noc na ³owach, wraca do swojego le¿a oko³o trzeciej nad ranem. Potem œpi jak zabita. I wtedy musimy j¹ zaatakowaæ... Kiedy bêdziesz gotów, przyjdŸ tu o trzeciej w nocy i wyruszymy na ³owy. Bêdziemy w barze. + + + Uwa¿asz mnie za idiotê? + + + Jesteœ idiot¹. A idiotów trzeba edukowaæ. + + + Niewa¿ne. Œwiat jest ma³y, a Zona jeszcze mniejsza. Jeszcze siê spotkamy. + + + IdŸ... Wynoœ siê st¹d. Na Skadowsku nie ma bójek. + + + Taa, jasne. + + + Przyznajê, pope³ni³em b³¹d. Ale ty z³ama³eœ zasady. + + + Tak to bywa w Zonie. Dobra, koniec gadania. + + + Skoro pozwoli³em, ¿eby artefakt wymkn¹³ mi siê z r¹k, zas³ugujê na miano idioty. + + + Dobra, tylko siê nie rozp³acz. Nauczkê zapamiêtuje siê na d³ugo. A ¿eby na pewno ci nie uciek³a, napij siê piwa na mój rachunek - to ci poprawi humor. + + + Biorê, co mi daj¹. + + + Dziêki, ale jeszcze mnie staæ na alkohol. + + + Myœlisz, ¿e z ciebie taki wymiatacz? Zamknij siê i nie podskakuj! I oddawaj artefakt, kretynie! + + + Dupek. Zatrzymaj sobie artefakt... Obyœ siê nim ud³awi³. + + + Wal siê. + + + Bracie! S³uchaj, jest taki artefakt, który ma uzdrawiaj¹c¹ moc... Bardzo go potrzebujê. Jeden mój kumpel zachorowa³ na coœ dziwnego i nied³ugo siê przekrêci, nasze lekarstwa nie pomagaj¹... Próbowa³em zdobyæ ten artefakt, ale wpad³em w anomaliê gazow¹. Nie trafi³eœ czasem na niego? + + + Jeœli to takie wa¿ne, to proszê. + + + Dziêki, brachu! Nie zapomnê tego. + + + Trzymaj siê. + + + Mam taki artefakt. Ale sam go potrzebujê. + + + Stary, no co ty! Mój kumpel... On naprawdê umiera! + + + W Zonie ka¿dy musi troszczyæ siê o siebie. Trzymaj siê. + + + Nie, nie znalaz³em go. Trzymaj siê. + + + Ten artefakt nie przyniesie ci niczego dobrego. Wierz mi na s³owo. + + + Jeœli go tak bardzo potrzebujesz - proszê, weŸ. + + + Dziêki, brachu! Nie zapomnê tego. + + + Trzymaj siê. + + + Zobaczymy. + + + Nie mam o czym z tob¹ rozmawiaæ. + + + Dlaczego mieszkasz na tym œmietniku? + + + To jest arka! Zapamiêtaj to, jeœli chcesz prze¿yæ! Kiedy nadejdzie fala, nie oddalaj siê st¹d. Tu bêdziesz mia³ szansê na prze¿ycie. ¯aden mutant nigdy siê tu nie wedrze. + + + Mówi³eœ o fali... + + + Tak, o fali mutantów, która zmia¿d¿y ludzi i wyprze ich z Zony! A jeœli jakiœ biedny dureñ prze¿yje, zmiecie go wielgachna emisja! Zdziesi¹tkuje ona wszystkie istoty ¿yj¹ce w Zonie!... Oprócz tych, które siê przygotuj¹. + + + Sk¹d masz tego psa? + + + To Lassie. Kochana sunia... Gdyby nie ona, ju¿ dawno zosta³bym po¿arty we œnie. Przeklête mutanty... Nienawidzê ich! Jak tylko cz³owiek zamknie oczy, od razu pchaj¹ siê do niego z tymi paskudnymi szponami, k³ami i mackami... + + + Potrzebujê artefaktu o nazwie Kompas. Wiesz, gdzie mogê go znaleŸæ? + + + Ten szajs ciê nie uratuje, kiedy ze wszystkich stron zaczn¹ siê z³aziæ mutanty! Masz, weŸ to i zejdŸ mi z oczu. + + + Dziêki. + + + Wiesz cokolwiek o rozbitych helikopterach? + + + Wiem coœ o jednym z nich... Wiem, ¿e jest na p³askowy¿u i ¿e dooko³a niego roi siê od snorków. Co parê dni chodzê do nich postrzelaæ... Dlaczego tak na mnie patrzysz? Nie da siê za jednym razem zniszczyæ ca³ego gniazda. + + + Jak mogê siê dostaæ na p³askowy¿? + + + Te¿ chcesz sobie postrzelaæ do snorków, co? Szacunek... Mogê ciê tam zaprowadziæ. + + + ChodŸmy. + + + Innym razem. + + + Stalkerem. + + + Jasne. Czego szukasz? + + + Nie twoja sprawa. + + + Zaprowadzê ciê tam. Na razie zostañ tutaj. Jest emisja... Kumasz? Emisja!!! + + + By³em w gnieŸdzie. + + + Tak? Nie da siê ich poskromiæ... Mutantów bêdzie coraz wiêcej. A pewnego piêknego dnia zaatakuj¹! Ich fala wymiecie z Zony ka¿dego, kto nie bêdzie na ni¹ przygotowany! + + + S³uchaj, hmm, nie masz mo¿e przypadkiem Kompasu? + + + Myœlisz, ¿e on ciê ochroni przed emisj¹? Hehe, weŸ go i spadaj! + + + Dziêkujê. + + + Kim jesteœ? + + + Stalkerem. Ju¿ siê kiedyœ spotkaliœmy. + + + Nie pamiêtam... Niewa¿ne. Czego potrzebujesz? + + + Stalkerem. Zwyk³ym stalkerem. + + + Rozumiem. Szukasz schronienia w arce? Czuj siê jak u siebie. + + + Nie twoja sprawa. + + + A, to ty. Czego chcesz? + + + Masz mo¿e jakiœ Kompas na zbyciu? + + + Opowiedz mi o anomaliach. + + + Zbli¿aj¹c siê do anomalii pamiêtaj o tym, ¿e bêdzie tam bardzo gor¹co, albo ¿e w powietrzu bêdzie siê unosiæ toksyczny gaz, albo bêdzie to Ÿród³o promieniowania. Mog¹ wystêpowaæ tak¿e zak³ócenia psioniczne, ale na razie nie bêdê o nich mówiæ. To zale¿y od rodzaju anomalii - czy jest cieplna, gazowa, elektryczna... czy grawitacyjna, ale mam nadziejê, ¿e z tymi ostatnimi nie bêdziesz mia³ do czynienia. S¹ te¿ anomalie ruchome, ale to ju¿ inna para kaloszy. + + + Opowiedz mi o anomaliach cieplnych. + + + Jeœli zobaczysz coœ dr¿¹cego, migotliwego, jak powietrze paruj¹ce z chodnika w gor¹cy dzieñ - to bêdzie anomalia cieplna. Kiedy coœ siê do niej dostanie, wybucha ona niezwykle gor¹cym p³omieniem. Pocz¹tkowo myœlano, ¿e s¹ to strumienie naturalnego gazu, ale ta teoria ju¿ upad³a. + + + Opowiedz mi o anomaliach gazowych. + + + Ten typ anomalii zawdziêcza sw¹ nazwê dziwnym, nieustannym procesom chemicznych, które w nim zachodz¹. Takie anomalie wytwarzaj¹ kwas, który w kilka sekund rozpuszcza skórê, albo toksyczne gazy, które równie szybko niszcz¹ p³uca...Na szczêœcie ³atwo je zauwa¿yæ na otwartym terenie. Problem zaczyna siê wtedy, gdy trafi siê na jedn¹ z nich w ciemnym tunelu. + + + Opowiedz mi o anomaliach elektrycznych. + + + To bardzo interesuj¹cy typ anomalii, który gromadzi znaczn¹ iloœæ elektrycznoœci statycznej. Stalkerzy zwykle wykorzystuj¹ fakt, ¿e anomaliê elektryczn¹ mo¿na roz³adowaæ za pomoc¹ dowolnego przedmiotu z metalu. Wrzucaj¹ do niej œrubê i przebiegaj¹ na drug¹ stronê, zanim ponownie siê na³aduje. Ja wolê obchodziæ je dooko³a - faza roz³adowania trwa za krótko. + + + Opowiedz mi o anomaliach grawitacyjnych. + + + S¹ zwykle nieruchome. Kiedy patrzysz w okreœlony punkt i widzisz, ¿e obiekty za nim s¹ zniekszta³cone - masz anomaliê. I lepiej do niej nie podchodŸ. Wszystkie trzy znane rodzaje reaguj¹ natychmiast, gdy siê ich dotknie. Trampolina wyrzuca wszystko spod siebie - czêsto na ogromn¹ odleg³oœæ. Wir dzia³a odwrotnie: wsysa dany obiekt do œrodka, mia¿d¿y go z olbrzymi¹ si³¹, a po chwili wyrzuca z siebie jego kawa³ki. Karuzela unosi ofiarê w powietrze, obraca i rozrywa na strzêpy... W ka¿dym przypadku jest to nieprzyjemna œmieræ. + + + Opowiedz mi o anomaliach ruchomych. + + + Osobiœcie zetkn¹³em siê tylko z Komet¹ i Tesl¹. Pierwsza to ognista kula o œrednicy oko³o metra. Ale b¹dŸ pewien, ¿e gor¹co odczuwa siê ze znacznie wiêkszej odleg³oœci... Druga jest, mo¿na powiedzieæ, czymœ w rodzaju pioruna kulistego. To bez w¹tpienia kula i bez w¹tpienia posiada w³aœciwoœci elektryczne. Obie anomalie nieustannie siê poruszaj¹, ale zwykle po sta³ych, zamkniêtych trajektoriach. Uwa¿ny stalker nie powinien mieæ trudnoœci z ich ominiêciem... Po prostu musisz byæ czujny. + + + Dobrze, zapomnij o tym. + + + Opowiedz mi o sobie. + + + Nie bez powodu nazywam siê Pilot. Korzystam tylko z bezpiecznych tras. Nie nadajê siê do zbierania artefaktów ani do walki z bandytami, wiêc... Ka¿dy powinien robiæ to, co mu wychodzi najlepiej i pozwoliæ innym czerpaæ z tego korzyœci. Rzecz jasna. ka¿dy talent ma swoj¹ cenê. + + + Opowiedz mi o emisjach. + + + Mam kilka map terenów pomiêdzy Zatonem i Jupiterem. Chcesz zerkn¹æ? + + + Zobaczmy... Dobrze, bardzo szczegó³owa. W naszym biznesie szczegó³y mog¹ decydowaæ o ¿yciu i œmierci. Dobra! Te mapy pokazuj¹, ¿e istnieje bezpieczna droga pomiêdzy Skadowskiem i Janowem. Jeœli nie masz nic przeciwko temu, skopiujê dane do mojego PDA. A teraz mogê ci zaproponowaæ niez³¹ zni¿kê. + + + Nie potrzebujesz czasem przewodnika? Kogoœ, kto bezpiecznie przeprowadzi³by ciê przez anomalie i ochrania³ przed emisjami? Pilot, do us³ug. + + + Potrzebujesz pomocy przewodnika? + + + Mi³o ciê widzieæ. Co mo¿e dla ciebie zrobiæ stary Pilot? + + + Znowu ruszasz w drogê? + + + Dzieñ dobry. Nie mo¿esz d³ugo wysiedzieæ w jednym miejscu, co? Do us³ug. + + + Witaj. Jeœli szukasz przewodnika, w³aœnie go znalaz³eœ. Poczekajmy tylko, a¿ skoñczy siê emisja. W miêdzyczasie mo¿emy porozmawiaæ o anomaliach. + + + Obawiam siê, ¿e w tej chwili nie przydam siê jako przewodnik... Emisja siê rozszala³a. + + + Ile za poprowadzenie do stacji Janów? + + + Niestety to daleko st¹d, wiêc cena wynosi 3000. + + + W porz¹dku, chodŸmy. + + + Nie mam tyle przy sobie. + + + Jeszcze nie chcê iœæ. + + + Z twoimi mapami - tylko 1000. + + + W porz¹dku, chodŸmy. + + + Nie mam tyle przy sobie. + + + Jeszcze nie chcê iœæ. + + + To daleko st¹d, wiêc cena wynosi 3000. Bêdê gotów do drogi jak tylko skoñczy siê emisja. + + + Z twoimi mapami - tylko 1000. Musimy tylko poczekaæ, a¿ skoñczy siê emisja. + + + Mo¿esz mnie zaprowadziæ do Prypeci? + + + Nie. Ka¿dy ma swoj¹ specjalizacjê. Widzisz Garriego? S¹dzê, ¿e on bêdzie móg³ ci pomóc. + + + Nie osobiœcie. Ale za 6000 mogê ciê zaprowadziæ do stacji Janów i umówiæ z Garrim. Stamt¹d on zabierze ciê do Prypeci. Co ty na to? + + + W porz¹dku, chodŸmy. + + + Nie mam tyle przy sobie. + + + Jeszcze nie chcê iœæ. + + + Nie osobiœcie. Ale za 4000 mogê ciê zaprowadziæ do stacji Janów i umówiæ z Garrim. Stamt¹d on zabierze ciê do Prypeci. Co ty na to? + + + W porz¹dku, chodŸmy. + + + Nie mam tyle przy sobie. + + + Jeszcze nie chcê iœæ. + + + Nie. Ka¿dy ma swoj¹ specjalizacjê. Widzisz Garriego? S¹dzê, ¿e on bêdzie móg³ ci pomóc, kiedy skoñczy siê emisja. + + + Nie osobiœcie. Ale za 6000 mogê ciê zaprowadziæ do stacji Janów i umówiæ z Garrim. Stamt¹d on zabierze ciê do Prypeci. Oczywiœcie po tym, jak skoñczy siê emisja. + + + Nie osobiœcie. Ale za 4000 mogê ciê zaprowadziæ do stacji Janów i umówiæ z Garrim. Stamt¹d on zabierze ciê do Prypeci. Oczywiœcie po tym, jak skoñczy siê emisja. + + + Mo¿esz mnie zaprowadziæ do Prypeci? + + + Do Prypeci? Nie. Mam doœæ zleceñ na moj¹ obecn¹ trasê, nie muszê szukaæ nowej. Ale mam kumpla, który pracowa³ kiedyœ w fabryce Jupiter. Powiedzia³ mi, ¿e biegn¹ pod ni¹ tunele, które prowadz¹ do Prypeci. Nie zna³ szczegó³ów, ale jego zdaniem powinno siê ich szukaæ pod czêœci¹ administracyjn¹. + + + Nie. Jeœli chcesz siê tam dostaæ, spróbuj znaleŸæ te tunele pod fabryk¹ Jupiter. + + + Ile za poprowadzenie do Skadowska? + + + Poniewa¿ bêdziemy musieli pójœæ okrê¿n¹ drog¹, 3000. + + + W porz¹dku, chodŸmy. + + + W tej chwili trochê mi brakuje. + + + Jeszcze nie chcê iœæ. + + + T¹ now¹ drog¹ tylko 1000. + + + W porz¹dku, chodŸmy. + + + W tej chwili trochê mi brakuje. + + + Jeszcze nie chcê iœæ. + + + Poniewa¿ bêdziemy musieli pójœæ okrê¿n¹ drog¹, 3000. Bêdê gotów do drogi jak tylko skoñczy siê emisja. + + + T¹ now¹ drog¹ tylko 1000. Musimy tylko poczekaæ, a¿ skoñczy siê emisja. + + + Dok¹d mo¿esz mnie zaprowadziæ? + + + Do stacji Janów, niedaleko fabryki Jupiter. A stamt¹d z powrotem do Skadowska. Wolê dobrze znaæ jedn¹ trasê ni¿ tylko chwaliæ siê, ¿e znam ich wiele. + + + Uniemo¿liwi³em bandytom transakcjê dotycz¹c¹ broni. + + + Dziêki za pomoc. Kiedy pomyœlê o latach 90. i tych draniach z granatnikami, przechodzi mnie dreszcz... Proszê, to dla ciebie. Gotówka zawsze siê przyda. + + + Szukam G³uszca. Mieliœmy siê tu spotkaæ. + + + G³uszec zostawi³ dla ciebie wiadomoœæ. Powiedzia³, ¿e idzie do dŸwigów portowych. I ¿e dowiedzia³ siê czegoœ nowego o zaginionych stalkerach. + + + G³uszec nie ¿yje. Wstrz¹s go zabi³, tak jak innych stalkerów... Wstrz¹s te¿ nie ¿yje. + + + Wstrz¹s? Cholera. Mieliœmy tego gada tu¿ pod nosem. To móg³ byæ ka¿dy z nas... Skoro dorwa³ G³uszca... Dziêki, stary. Ocali³eœ ca³y nasz obóz. Proszê. + + + Wstrz¹s?!... Wybacz, stary, nie kupujê tego. Mo¿e gdyby by³y jakieœ dowody... Biedny G³uszec. + + + Oto PDA Wstrz¹sa. Zawiera dowód na to, ¿e to jego robota. + + + Cholera. Mieliœmy tego gada tu¿ pod nosem. To móg³ byæ ka¿dy z nas... Skoro dorwa³ G³uszca... Dziêki, stary. Ocali³eœ ca³y nasz obóz. Proszê. + + + Pomogê wam rozprawiæ siê z bandytami. + + + Œwietnie. IdŸ do stra¿nicy - to tam s¹ nasi ch³opcy. Od nich dowiesz siê wszystkich szczegó³ów. + + + Co wiesz o ¯wawym? Czy to mo¿liwe, ¿eby handlowa³ kradzionymi towarami? + + + Nie znam go za dobrze. W¹tpiê, ¿eby siê w to wpl¹ta³. Jeœli siê handluje szemranym towarem, raczej nie przyjmuje siê na niego zamówieñ z wyprzedzeniem... + + + Wiedzia³em, ¿e w koñcu mnie odkryj¹. Pewnie masz sporo pytañ. + + + Wstrz¹s?!... Powiesz, o co tu chodzi? + + + Ju¿ niczego nie ukrywam. Nie ma sensu. Teraz wiesz, ¿e to ja zabi³em G³uszca... Dani³ê i pozosta³ych zaginionych stalkerów tak¿e. + + + Dobra, rozumiem. Doœæ gadania. + + + Niczego nie rozumiesz, nikt mnie nigdy nie zrozumie... + + + Dlaczego to zrobi³eœ? + + + Jestem uzale¿niony od hemoglobiny... Nikomu tego nie ¿yczê... Nie da siê z tego wyjœæ. Czasami wydaje ci siê, ¿e mo¿esz prze¿yæ ca³y miesi¹c bez wypicia nawet kropli krwi, kilka razy mi siê to zdarzy³o, ale potem... Coœ ci pêka w œrodku i zaczynasz ¿³opaæ krew jak szalony... + + + Jak ci siê uda³o utrzymaæ to w tajemnicy? + + + Kiedy pracowa³em w klinice, ³atwo by³o to ukryæ. Tam zawsze musia³a byæ nadwy¿ka krwi od dawców. Ale w Zonie by³o inaczej... Myœla³em, ¿e w tych trudnych warunkach uda mi siê utrzymaæ chorobê na wodzy. Ale by³em w b³êdzie. Prze¿y³em najgorszy napad w ¿yciu i nie mog³em myœleæ o niczym innym. Postanowi³em zabijaæ tak, ¿eby wygl¹da³o to na ataki pijawek. Zwykle wybiera³em ofiary, które ju¿ by³y ranne. + + + A co z Dani³¹ i G³uszcem? + + + Dani³a przyszed³ do mnie po pomoc po ataku pijawek. By³ ranny. Kiedy on i G³uszec postanowili razem zapolowaæ na pijawki, zda³em sobie sprawê, ¿e d³ugo ju¿ nie wytrzymam. Nadal usi³owa³em chroniæ swój sekret, ale moje postanowienie s³ab³o... I wtedy przyszed³ G³uszec. Po³apa³ siê w sytuacji i próbowa³ mnie zabiæ. A teraz jesteœmy tutaj. ¯a³ujê tych wszystkich ludzi, ale to nie przywróci im ¿ycia. + + + Dobra, rozumiem. Doœæ gadania. + + + Niczego nie rozumiesz, nikt mnie nigdy nie zrozumie... + + + S³ucham. + + + Witaj, potrzebujesz pomocy? + + + Witam. + + + Potrzebujê pomocy medycznej. + + + Niech no spojrzê... + + + No, to by by³o na tyle. Mo¿esz iœæ. + + + Czó³ko! Te¿ szukasz artefaktów? + + + Hej ho! Na artefakty by siê sz³o, co? Jest ich du¿o, powinno wystarczyæ dla wszystkich. + + + Czeœæ! Te¿ próbujesz znaleŸæ parê artefaktów? + + + Czo³em. Chcesz zanieœæ ten artefakt Brodaczowi? + + + Mo¿e tak, mo¿e nie. Co to ciebie obchodzi? + + + Potrzebujê go. + + + Ja te¿... Ale oddam ci go za now¹ broñ. Tak¹ z najwy¿szej pó³ki. + + + Mam dobr¹ broñ. Pohandlujmy... + + + Dobrze. + + + Nie, to nie przejdzie. + + + No to zejdŸ mi z oczu, do cholery. + + + Dobra. + + + W³aœciwie nie. + + + Co wiesz o ¯wawym? + + + Niewiele... Nie robimy ze sob¹ interesów. Podczas gdy on przeczesuje Zonê w poszukiwaniu super-ekstra spluwy, ja sprzedajê sto zwyk³ych. Poza tym strasznie zadziera nosa, nie chce handlowaæ z miejscowymi zbirami. Kiepski z niego kupiec, co dla mnie jest w³aœciwie korzystne. + + + Brodacz powiedzia³, ¿e inaczej siê umawialiœcie. + + + „Inaczej” to niech on sobie w dupê wsadzi! Ta brodata œwinia zaczyna siê za bardzo nadymaæ! Trzeba mu przypomnieæ, kto tu jest szefem... S³uchaj, na Zatonie jest jeden wp³ywowy goœæ, nazywaj¹ go Su³tanem. OdwiedŸ go - powie ci, co masz zrobiæ. + + + Pójdê pogadaæ z Su³tanem. + + + ¯adnych su³tanów. Natychmiast daj mi mój udzia³! + + + Uch... Dobra. Masz tu gotówkê... Ale pamiêtaj, Brodacz mydli ci oczy. + + + Potrzebujê informacji. + + + Co chcesz wiedzieæ? + + + Potrzebujê truj¹cego gazu. Podobno mo¿esz coœ wiedzieæ na ten temat. + + + Tak. Powiem ci za 2000. + + + Proszê. + + + No to s³uchaj. Kiedyœ przeje¿d¿a³ têdy konwój wojskowy przewo¿¹cy gaz - nie uda³o mu siê dotrzeæ do celu. Nikt nie wie, co siê sta³o, ale zbiorniki z gazem powinny wci¹¿ tam byæ. Wszystko jasne? A przy okazji, mog¹ tam te¿ byæ jakieœ dokumenty. Jeœli je znajdziesz, przynieœ je do mnie, a twoja inwestycja mo¿e ci siê zwróciæ. + + + To dla mnie za drogo. + + + Twoja sprawa. + + + Gdzie znajdê stalkera imieniem Sroka? + + + Powiem ci... za 1000. + + + Proszê. + + + Tutaj go nie znajdziesz, ale ma³y ptaszek powiedzia³ mi w sekrecie, ¿e trzeba szukaæ w okolicach Jupitera, mo¿e niedaleko stacji Janów. Pamiêtaj, ¿e jeœli ktoœ nam¹ci³ w jednym miejscu, to w drugim nie bêdzie u¿ywa³ tego samego imienia... Pewnie te¿ jakoœ siê maskuje, bo wykombinowa³, ¿e ludzie bêd¹ go szukaæ poœród stalkerów. + + + Szukam Sêka. Wiesz, gdzie mogê go znaleŸæ? + + + Powiem ci za 1000. + + + Proszê. + + + Sêk to chciwy dureñ, zacz¹³ krêciæ z niebezpiecznymi ludŸmi. Spali³ za sob¹ mosty, wiêc powinieneœ go szukaæ w pobli¿u Jupitera. Nie mo¿e siê podziaæ nigdzie indziej. Nie tylko ty go szukasz. + + + Co wiesz o rozbitych helikopterach? + + + Hmm... Wszyscy tutaj wiedz¹, gdzie spad³y. Jeden run¹³ na po³udniowy p³askowy¿, drugi wyl¹dowa³ na bagnach, a trzeci dok³adnie na s³upach podstacji. O które miejsce pytasz? + + + O po³udniowy p³askowy¿. + + + O podstacjê. + + + O bagna. + + + To wszystko, jeœli chodzi o helikoptery. + + + P³aæ, jesteœ mi winien 200. + + + Proszê. + + + No wiêc ten œmig³owiec wyl¹dowa³ obok le¿a snorków. O ile wiem, ¿o³nierze siê stamt¹d wydostali, nie wszyscy, ale wiêkszoœæ. Wyt³ukli mutanty i zeszli na dó³. Przy okazji, jeœli tam idziesz, mogê ci zaoferowaæ dobr¹ strzelbê i trochê œrutu, dziêki którym rozprawisz siê z tymi bestiami. Jedyny problem w tym, ¿e nikt poza tym pomylonym durniem Noem nie wie, jak siê dostaæ na ten p³askowy¿. + + + To dla mnie za drogo. + + + Twoja sprawa. + + + Powiem ci za 200. + + + Proszê. + + + Powiem ci za 200. + + + Proszê. + + + W tej chwili nic. + + + Masz dla mnie pracê? + + + Po pierwsze, jest ma³a robótka dla naukowców; po drugie, musimy zdobyæ informacje z obozu najemników; a po trzecie, handlarz nadal potrzebuje ochrony. Du¿o siê tu dzieje, wybierz, co ci odpowiada. + + + Opowiedz mi o pracy dla naukowców. + + + Musisz znaleŸæ trzy detektory Weles i zanieœæ je do bunkra naukowców w pobli¿u Jupitera. Jak tam bêdziesz, pogadaj z Nowikowem, powiedzia³, ¿e przy nich pomajstruje... Kiedy detektory zaczn¹ przynosiæ zysk, podzielimy siê nim po po³owie. Wszystko jasne? No to ruszaj. To zadanie to jak przechadzka po parku. + + + Umowa stoi. + + + Mo¿e innym razem. + + + Opowiedz mi o obozie najemników. + + + W zak³adzie utylizacyjnym pojawili siê jacyœ najemnicy i umieram z ciekawoœci, co tam szykuj¹... Zakradnij siê do ich obozu i zbierz jak najwiêcej informacji o ich planach. PDA, dokumenty papierowe, przynieœ mi wszystko, co znajdziesz. Rozumiesz? IdŸ. Jeœli bêdziesz dyskretny, za³atwisz to z palcem w bucie. + + + Zgoda. + + + Nie w tej chwili. + + + Opowiedz mi o ochranianiu handlarza. + + + Handlarz potrzebuje ochrony na czas zawierania pewnej transakcji. Nie musisz nic robiæ, tylko staæ i wygl¹daæ tak, jakby wszystko by³o legalne... Dobra? Handlarz bêdzie na ciebie czeka³ w stra¿nicy. Przeka¿e ci szczegó³y... + + + Dobra. + + + Czekaj. + + + Innym razem. + + + Po pierwsze, jest ma³a robótka dla naukowców, a po drugie, ktoœ musi dla mnie zdobyæ informacje z obozu najemników. Wybieraj. + + + Po pierwsze, jest ma³a robótka dla naukowców, a po drugie, handlarz nadal potrzebuje ochrony. Wybieraj. + + + Po pierwsze, ktoœ musi dla mnie zdobyæ informacje z obozu najemników, a po drugie, handlarz nadal potrzebuje ochrony. Wybieraj. + + + Jest ma³a robótka dla naukowców. Bu³ka z mas³em, takie przynieœ-podaj-pozamiataj... + + + Handlarz wci¹¿ potrzebuje ochrony na czas zawierania pewnej transakcji. £atwizna. + + + Nie ma wiêcej pracy. + + + Mog³oby ciê to zainteresowaæ. + + + Co masz? + + + PDA Noego. + + + Tego psychola z barki?... Dam ci za niego 1000. + + + Umowa stoi. + + + Nie, dziêki. Na razie go zatrzymam. + + + Tylko ¿eby ci nie wypali³ dziury w kieszeni... + + + PDA najemnika imieniem Hak. Znalaz³em go w zak³adzie utylizacji odpadów. + + + Dam ci 1000. + + + Umowa stoi. + + + Bardzo interesuj¹ce... Œwietnie, stalkerze. + + + PDA najemnika imieniem Prêga. Znalaz³em go w zak³adzie utylizacji odpadów. + + + Dam ci 1000. + + + Umowa stoi. + + + PDA z informacj¹ o schowkach Monolitu. + + + Dam ci 5000. + + + Umowa stoi. + + + PDA cz³owieka powi¹zanego z klientem najemników. + + + Dam ci 4000. + + + Umowa stoi. + + + PDA jednego z za³o¿ycieli Powinnoœci, genera³a Taczenki. + + + Dobrze ci za niego zap³acê - 2500. + + + Umowa stoi. + + + PDA najemnika. + + + Dam ci 1000. + + + Umowa stoi. + + + PDA Morgana. + + + Informacje na temat handlarza Powinnoœci, który sprzedaje broñ na prawo i lewo. Na pewno do czegoœ siê przydadz¹. Zap³acê ci 4000. + + + Umowa stoi. + + + Notatkê ze schowka grupy Strie³oka. Jej adresatem jest Duch. + + + Dam ci 500. + + + Umowa stoi. + + + Notatkê ze schowka grupy Strie³oka. Jej adresatem jest Strie³ok. + + + Dam ci 500. + + + Umowa stoi. + + + Notatkê ze schowka grupy Strie³oka. Jej adresatem jest Kie³. + + + Dam ci 500. + + + Umowa stoi. + + + Dokumenty z fabryki Jupiter, teczka zawieraj¹ca rozkaz generalnej ewakuacji. + + + Dam ci 750. + + + Umowa stoi. + + + Dokumenty z fabryki Jupiter, wpis w notesie. + + + Dam ci 750. + + + Umowa stoi. + + + Dokumenty z fabryki Jupiter, harmonogram dostaw. + + + Dam ci 750. + + + Umowa stoi. + + + Dokumenty z fabryki Jupiter, list nakazuj¹cy przewoziæ obiekt 62 tylko tunelami podziemnymi. + + + Dam ci 750. + + + Umowa stoi. + + + Nie. Skoro jest w tym Su³tan, raczej zostanê z boku. + + + Zobaczmy... Tak, to dobry towar. Sprzedasz mi go? + + + Jasne, mnie siê do niczego nie przyda. + + + Laptop z obozu najemników w zak³adzie utylizacji odpadów. + + + Dam ci 2000. + + + Umowa stoi. + + + He... IdŸ z tym do Brodacza albo do naukowców. Ja nie kupujê podejrzanych towarów... nie chcê siê obudziæ którejœ nocy z ostr¹ chorob¹ popromienn¹. + + + I tam powinien zostaæ. Nie lubiê niepotrzebnie ryzykowaæ. Kto wie, czy do pó³nocy ta rzecz nie stworzy wokó³ siebie pola anomalii... IdŸ z ni¹ do naukowców, niech j¹ zbadaj¹ i tak dalej. + + + A ja mam pod zlewem g³owicê nuklearn¹! Ale naukowcy mogliby siê uœmiaæ - oni uwielbiaj¹ takie rzeczy. + + + PDA Sêka. + + + Zobaczmy... Hmm... Nic specjalnego. Pewnie ju¿ wyczyœci³eœ ten schowek, wiêc zap³acê ci 200. + + + Zgoda. + + + PDA jednego z ludzi Su³tana. + + + Ciekawe... Mo¿e siê przydaæ. Dam ci 1000. + + + Zgoda. + + + Modu³ pamiêci z samolotu bezza³ogowego. + + + Bardzo ciekawe znalezisko... Ale nie wzbogacisz siê na nim. Sk¹d mam wiedzieæ, czy ktoœ ju¿ nie przeczyta³ tych informacji przede mn¹? Moja cena to 500. + + + Zrobione. + + + W tej chwili nic. + + + Co do tych detektorów... + + + Tak? + + + Gdzie mogê je znaleŸæ? + + + Nie wiem, po prostu je znajdŸ. + + + Mam detektory. + + + No to co tu jeszcze robisz? Zabierz je do Nowikowa w bunkrze naukowców w pobli¿u Jupitera. + + + Zanios³em detektory do Nowikowa. + + + Super. Teraz poczekamy, a¿ w nich pomajstruje. Obieca³, ¿e jak skoñczy, odeœle je poprzez zaufanego cz³owieka. + + + Mamy k³opoty. Nasz ma³y interes jest zagro¿ony. Nowikow odwali³ œwietn¹ robotê z tymi detektorami - rozszerzy³ ich zakres, zwiêkszy³ wra¿liwoœæ i zrobi³ jeszcze parê innych rzeczy... Dziêki tym detektorom pobijesz na g³owê wszystkich innych ³owców artefaktów. Zawar³em umowê z Brodaczem, ¿eby wszyscy stalkerzy, których zatrudnia, mogli u¿ywaæ tych nowych detektorów... + + + I? + + + Zgodziliœmy siê podzieliæ ³up na pó³, ale stalkerzy odmawiaj¹ oddania nam naszej czêœci. Musisz iœæ do Brodacza i przekonaæ go, ¿eby dotrzyma³ warunków umowy... Chyba ty te¿ chcesz dostaæ swoj¹ dzia³kê, nie? + + + Potrzebujê twojego nowego detektora. + + + Ha. A ja potrzebujê porz¹dnej broni. Jeœli masz coœ dobrego i drogiego, mo¿emy pohandlowaæ. + + + Umowa stoi. + + + Nie, dziêki. + + + Potrzebujê twojego nowego detektora. + + + To ma byæ groŸba? Ja te¿ go potrzebujê, to chyba jasne. + + + Chyba nie za³apa³eœ, co? Twój jest ostatni. Nie mia³em wiêkszych problemów z pozbyciem siê innych w³aœcicieli... + + + Co takiego?... Pozabija³eœ ich? Bierz go i zostaw mnie w spokoju. + + + A mo¿e byæ siê tak odwali³? + + + Innym razem. W tej chwili ³adnie ciê proszê, ¿ebyœ odda³ mi detektor. + + + A ja ciê ³adnie proszê, ¿ebyœ siê odwali³. + + + Stalkerze, chcia³byœ trochê zarobiæ? + + + Co jest do roboty? + + + Ukry³em ³up w jednym starym Zaporo¿cu. Ale potem by³o trzêsienie ziemi i samochód znalaz³ siê pod ziemi¹. Wszystko obejrza³em i zdaje siê, ¿e mo¿na siê do niego dostaæ... Tylko ¿e, yyy, s¹ tam mutanty, snorki. Mo¿esz mi nie wierzyæ, ale chocia¿ ani trochê nie bojê siê kontrolerów, to te cholerne, ohydne snorki to dla mnie za du¿o. Jeœli zdobêdziesz pojemnik z zamkiem zabezpieczaj¹cym, sprawiedliwie podzielimy siê ³upem. + + + Umowa stoi. + + + Dziêki, stalkerze. + + + Czy to jest twój pojemnik? + + + Tak, to on! Rany, rz¹dzisz! + + + Innym razem. + + + Szkoda. + + + Nie, teraz jestem zajêty. + + + Dobra, jak wolisz. + + + No i? Jakie wieœci? + + + Czego chcesz? Nie widzisz, ¿e jestem zajêty? + + + Hej, to moja spluwa! Sk¹d j¹ masz, z³odzieju? Moj¹ skradziono dopiero parê dni temu. + + + O czym ty gadasz? Niedawno j¹ kupi³em. + + + Nie wiem, gdzie i jak j¹ zdoby³eœ, ale to na pewno broñ, któr¹ mi ukradziono. Wiêc jeœli nie chcesz mnie zdenerwowaæ, po prostu mi j¹ oddaj i spokojnie rozejdziemy siê do swoich spraw. + + + Dobrze, weŸ j¹. Nie szukam k³opotów. + + + Oddaj j¹. + + + To moja broñ. + + + Ach tak?!... Ostrzegam ciê, mam znajomoœci! Wszyscy mnie tu znaj¹! Uwa¿asz, ¿e d³ugo przetrwasz w Zonie ze zszargan¹ reputacj¹, stalkerze? I co na to powiesz, hê? Nie oczekuj, ¿e ktokolwiek ci tutaj pomo¿e, bo cholernie siê rozczarujesz! + + + Odpieprz siê! + + + Jesteœ pewien, ¿e to twoja broñ? + + + Pewnie, ¿e jestem pewien. Coœ takiego spotyka siê w Zonie raczej rzadko, nie? A ta na pewno nale¿y do mnie. + + + Pope³ni³eœ b³¹d. Jeœli teraz siê wycofasz, unikniemy walki. + + + Co? Ja pope³ni³em b³¹d? Pomyœl dwa razy, zanim siê odezwiesz, dupku! Jeœli zaczniesz m¹ciæ, wszyscy stan¹ po mojej stronie. Oddaj mi tê broñ i spokojnie rozejdziemy siê do swoich spraw. Bêdê nawet tak mi³y, ¿e nikomu o niej nie powiem. + + + Co? A przysz³o ci w ogóle do g³owy, ¿e tu i teraz móg³bym ci przestrzeliæ ³eb z tej w³aœnie broni? + + + Dobra, stary, wyluzuj. Zrobi³o siê trochê gor¹co, ale ju¿ siê uspokoi³em. Bez sensu tak siê wœciekaæ. Musia³em siê pomyliæ. + + + Jeœli chodzi o ten pojemnik... + + + Znalaz³eœ go? + + + Wci¹¿ nad tym pracujê. + + + Postanowi³em go ju¿ nie szukaæ. + + + Szkoda. + + + Dobrze, niech no spojrzê... + + + Oczywiœcie. Moment... + + + Postanowi³em go zatrzymaæ. + + + O¿ ty ma³y... Nie myœl, ¿e ci to zapomnê! + + + Oto pojemnik. + + + Dobra, to podzielmy teraz ³up. + + + Podzielmy. + + + Zobaczmy, co my tu mamy... Moja stara, ale zabójcza Fora. Dawno temu mój wujek w³asnorêcznie j¹ zmodyfikowa³. To prawie rodzinne dziedzictwo... wiêc j¹ zatrzymam. + + + Nie, oddaj j¹ mnie! + + + Uch, no dobrze... + + + Zobaczmy inne rzeczy. + + + Nie, masz ju¿ dosyæ. + + + Zobaczmy inne rzeczy. + + + Dobrze, bierz. Co tam jeszcze jest? + + + Dobra... Co dalej. Znakomita apteczka. Mo¿na iœæ z ni¹ nawet na niedŸwiedzia albo na kontrolera. To dla mnie... + + + W³aœciwie przyda³aby mi siê apteczka! + + + Hmm... No dobra. + + + Zobaczmy inne rzeczy. + + + Nie, masz ju¿ dosyæ. + + + Zobaczmy inne rzeczy. + + + Zatrzymaj to. Co tam jeszcze mamy? + + + Dobra... £a³. Pewnie nigdy nawet nie mia³eœ w rêkach takiej broni... Ulepszony AKM-74/2U. Da³em za ni¹ temu kolesiowi z Powinnoœci chyba z tonê apteczek. To by³o wtedy, kiedy Wolnoœæ da³a im taki wycisk, ¿e skoñczy³y im siê wszystkie leki. Od tamtej pory to maleñstwo trzy razy ocali³o mi ¿ycie... To jest na pewno dla mnie. + + + A mo¿e ja bym j¹ wzi¹³? + + + Hmm... £amiesz mi serce. Ale umowa to umowa. WeŸ j¹. + + + Zobaczmy inne rzeczy. + + + Nie, masz ju¿ dosyæ. + + + Zobaczmy inne rzeczy. + + + Zatrzymaj to dla siebie. Co dalej? + + + Och-ch... Piêkna i cenna rzecz. Ten artefakt jest wart fortunê! Sam go wyci¹gn¹³em z anomalii. Parê razy siê przy tym posra³em w gacie. To moja zdobycz, kosztowa³a mnie wiele potu i ³ez. + + + Chyba potrzebujê go bardziej ni¿ ty. + + + Stary, zabijasz mnie... WeŸ go - nieprêdko zapomnisz moj¹ hojnoœæ. + + + Zobaczmy inne rzeczy. + + + Masz ju¿ dosyæ. + + + Zobaczmy inne rzeczy. + + + Zatrzymaj to. Co tam jeszcze mamy? + + + No i na koniec... Znakomity he³m, rêczna robota. Jakiœ czas temu mieliœmy w Kordonie nowego stalkera, prawdziw¹ z³ot¹ r¹czkê. Zanim siê przekrêci³, zrobi³ parê naprawdê fajnych rzeczy. Miêdzy innymi ten he³m. Nigdzie nie znajdziesz drugiego takiego!... Zatrzymam go. + + + S³uchaj, to ja ryzykowa³em ¿yciem przeciwko hordzie snorków... Zas³ugujê na ten he³m. + + + No dobra... W porz¹dku. Niech ci dobrze s³u¿y. + + + Zobaczmy inne rzeczy. + + + Ty masz ju¿ dosyæ. Ja te¿ muszê coœ zatrzymaæ, nie? + + + Zobaczmy inne rzeczy. + + + Dobra, zatrzymaj to. + + + To wszystko, stary, to ca³y mój ³up. + + + Dobra, no to na razie. + + + To wszystko. Ale nie mogê ciê puœciæ z pustymi rêkami... Masz, weŸ mój pistolet! + + + Powodzenia. + + + Czym siê zajmujesz? + + + S³u¿ê i chroniê. Kiedyœ by³em policyjnym detektywem, a tutaj jestem kimœ w rodzaju szeryfa. Przyszed³em tu z Brodaczem, a potem on postanowi³ za³o¿yæ tu obóz. Po co iœæ dalej, skoro i tak nikt nie zna drogi do Prypeci? Tutaj te¿ jest mnóstwo artefaktów. Wiêc zostaliœmy. + + + Kogo mogê wynaj¹æ do ochrony naukowców? + + + Mamy tu kilku odpowiednich ch³opaków. Na przyk³ad grupê Spartakusa. Porz¹dni goœcie, prawdziwi zawodowcy, wielu ma za sob¹ pracê w policji. Jeœli siê zgodz¹, nigdzie nie znajdziesz lepszych speców od ochrony. + + + Kiedyœ móg³bym ci podsun¹æ kilka imion, ale teraz ju¿ nie. ¯aden z tutejszych stalkerów nie bêdzie chcia³ siê zg³osiæ. + + + Kogo mogê wynaj¹æ do wykonywania pomiarów dla naukowców? + + + Jest taka grupa stalkerów, przewodzi im Gonta. Pogadaj z nim, mo¿e siê zgodzi... Na pewno chêtnie zrobi¹ sobie przerwê od strzelania do mutantów. + + + Gdyby by³ tu Gonta i jego ch³opaki, skierowa³bym ciê do niego... Ale skoro go tu nie ma... Nikt inny nie przychodzi mi do g³owy. + + + Kupowa³eœ broñ od ¯wawego? Wiedzia³byœ, gdyby handlowa³ kradzionym towarem? + + + Myœlisz, ¿e ma doœæ sprytu, ¿eby zrobiæ tak przekrêt za moimi plecami?... Nie. Nie ma takiej opcji. Moja intuicja podpowiada mi, ¿e ¯wawy nie jest dilerem. + + + Szukam Sêka. Wiesz, gdzie mogê go znaleŸæ? + + + Sêk - jasne, znam go. Co za g³upek. Paru ch³opaków widzia³o go parê dni temu przy dŸwigach portowych. Pewnie tam siê teraz krêci. Mo¿esz go poszukaæ. + + + Czeœæ, stalkerze. Chcia³byœ zarobiæ trochê forsy i równoczeœnie pomóc naszemu obozowi? + + + Czeœæ, stalkerze. Jeszcze tu jesteœ? Jak tak dalej pójdzie, pijawki nied³ugo wybij¹ nas do nogi. + + + Pogadamy póŸniej. Mam coœ do zrobienia. + + + Jak¹ masz dla mnie robotê? + + + Jest tak. Zaginê³o paru stalkerów. Nikt nie mia³ od nich wiadomoœci, ale parê dni temu znaleziono jedno cia³o. Brak œladów przemocy, ale nie by³o w nim ani kropli krwi. Wstrz¹s przebada³ zw³oki, to jego pytaj o szczegó³y... Ale to musia³y byæ pijawki! Rozmawia³em z myœliwym Dani³¹ i poszed³ poszukaæ ich le¿a. Od tamtej pory nie by³o od niego ¿adnych wieœci. + + + Co mam zrobiæ? + + + Musisz znaleŸæ ich le¿e i najlepiej równie¿ Dani³ê. To nie jest przyjemna robota, ale dobrze ciê za ni¹ wynagrodzê. Dobra? + + + Zgoda. + + + W porz¹dku. Dobra, zaznaczy³em dwa miejsca, które trzeba sprawdziæ jako pierwsze. Za³adowa³em wspó³rzêdne jednego z nich do twojego PDA. Muszê za³atwiæ parê spraw, a potem wybiorê siê do tego drugiego. Dam ci znaæ, co znalaz³em. + + + Umowa stoi. + + + Chyba dam sobie spokój. + + + Wróæ, jeœli zmienisz zdanie. + + + Nie jestem zainteresowany. + + + Tê sam¹... Dopóki gdzieœ tam jest gniazdo pijawek, wszystkim nam grozi niebezpieczeñstwo. I nadal nie by³o wieœci o myœliwym Danile. Pomo¿esz nam rozwi¹zaæ ten problem? + + + G³uszec mówi³ mi, ¿e bada³eœ cia³o jednego z zaginionych stalkerów. S¹dzisz, ¿e to pijawka go zabi³a? + + + Tak, bada³em... Tak jak i resztê trupów... ¯adne inne stworzenie nie jest w stanie tego zrobiæ, to znaczy wyssaæ z cia³a cz³owieka ca³¹ krew, do ostatniej kropli. Wszystko wskazuje, ¿e to by³y pijawki... Jaki inny wniosek móg³bym wysnuæ? + + + Opowiedz mi o sobie. + + + Jestem lekarzem. Specjalizacja - neurochirurgia. Co jeszcze chcesz wiedzieæ? Potrafiê wyci¹æ podwzgórze za pomoc¹ lasera, ale na razie nikt w Zonie mnie o to nie prosi³. Tutaj jestem zwyk³ym lekarzem, jednym z wielu, którzy dobrze siê znaj¹ na swojej robocie. + + + S³ucham. + + + Potrafisz z³amaæ szyfr czarnej skrzynki? + + + No có¿... To nie jest moja specjalnoœæ. Wszystkie te wykresy i algorytmy... Nie le¿y mi to. Przynieœ mi coœ, co bazuje na prostych prawach fizyki, a za³atwiê sprawê ot, tak... Wystarczy pod³ubaæ tu, pokrêciæ tam, i bêdzie dzia³aæ jak z³oto. + + + Myœlisz, ¿e ¯wawy mo¿e handlowaæ kradzionymi przedmiotami? + + + Zaraz, zaraz... ¯wawy i kradzione towary? Nie wierzê. Kiedy budowa³em swój warsztat, to w³aœnie ¯wawy mi pomóg³. I nie wzi¹³ za to ani grosza... Ludzie mog¹ gadaæ, co chc¹, a ja i tak wiem, ¿e ¯wawy to dobry cz³owiek. + + + Masz dla mnie pracê? + + + Jasne. Potrzebujê trochê narzêdzi, ale nie mam czasu ich szukaæ. Tak to jest ze sprzêtem, zabiera ca³y czas. Jeœli przyniesiesz mi kilka przydatnych drobiazgów, poka¿ê ci, na czym polega ulepszanie. No i zarobisz parê groszy. + + + Dobra, bêdê siê rozgl¹da³. + + + Nie. Mo¿e póŸniej. + + + Jasne. Potrzebujê narzêdzi, pamiêtasz? Pomoc dla mnie i zarobek dla ciebie. + + + Potrafisz odblokowaæ modu³ pamiêci? + + + Nie, stary, ja ci tu nie pomogê. Ca³a ta nowoczesna elektronika, komputery... Nie moja dzia³ka. Lepiej poszukaj kogoœ m³odszego... Oni to dzisiaj spijaj¹ z mlekiem matki. + + + Potrafisz w³amaæ siê do stalowego pojemnika? + + + £atwizna. Us³uga najwy¿szej jakoœci za jedyne 500. + + + Proszê. + + + Dobra, niech no spojrzê... Tu podnieœæ, tam popchn¹æ... I bach! Gotowe! Jeszcze nie wynaleziono takiej rzeczy, której bym nie otworzy³ ³omem i m³otkiem. + + + Nie mam tyle. + + + Wróæ, jak bêdziesz mia³. Nigdzie siê nie wybieram! + + + Pomyœlê o tym. + + + Mam trochê alkoholu. Napijesz siê? + + + Nie, stary, jestem na odwyku. Kiedy zobaczy³em obiekt 62, pomyœla³em: „To koniec, mam trzêsiawkê”... Widzisz, gorza³a niszczy cz³owieka. To nie jest zdrowy napitek. A jeœli mnie zabraknie, kto bêdzie robi³ naboje do twojego karabinu Gaussa? + + + Masz tu jeszcze jedn¹ butelkê. + + + Mam trzeci¹, jeœli potrzebujesz wiêcej. + + + Przynios³em ci narzêdzia. + + + To mi³o. Które? + + + Podstawowe. + + + Super! Teraz potrzebujê ju¿ tylko narzêdzi do pracy precyzyjnej i do kalibracji. + + + Do pracy precyzyjnej. + + + Super! Teraz potrzebujê ju¿ tylko narzêdzi podstawowych i narzêdzi do kalibracji. + + + Do kalibracji. + + + Super! Teraz potrzebujê ju¿ tylko narzêdzi podstawowych i narzêdzi do pracy precyzyjnej. + + + Na razie ¿adnych. + + + Œwietnie. Teraz potrzebujê ju¿ tylko narzêdzi do kalibracji. + + + Œwietnie. Teraz potrzebujê ju¿ tylko narzêdzi do pracy precyzyjnej. + + + Œwietnie. Teraz potrzebujê ju¿ tylko narzêdzi podstawowych. + + + Genialnie! Œwietna robota! Jak ty to robisz, stary? Teraz mam ju¿ pe³en zestaw narzêdzi, ha! Zrobiê karabin maszynowy z zapalniczek! + + + Przynios³em plany i dokumentacjê obiektu 62. + + + Uda³o ci siê! Super! Wiedzia³em, ¿e te gnojki nie zd¹¿y³y wszystkiego zniszczyæ. Niech no spojrzê... Mm-hmm... Wiêc to chcieli zrobiæ, gnojki jedne. Dobrze! Potrzebujê kilku godzin, ¿eby to rozpracowaæ. Zostaw karabin Gaussa u mnie, spróbujê go naprawiæ. Poczekaj tu, daj mi chwilê, a to maleñstwo znów zaœpiewa! + + + Potrzebujê baterii do mojego karabinu Gaussa. + + + Jako mój ulubiony klient zap³acisz 2000. + + + Proszê. + + + Pomyœlê o tym. + + + W tej chwili trochê mi brakuje. + + + Skoñczy³eœ z karabinem Gaussa? + + + Bu³ka z mas³em. System zasilania jest ju¿ czyœciutki. Jeœli znowu zacznie figlowaæ, przyjdŸ tu z nim do poprawki. + + + Jeszcze nad nim pracujê. Uwielbiam mieæ jakieœ zajêcie... + + + Mam tu nieznan¹ broñ. + + + Co rozumiesz przez „nieznan¹"? Dawaj j¹ tutaj, niech siê przyjrzê... + + + Obejrzyj j¹... Widzia³eœ ju¿ kiedyœ coœ takiego? + + + Ach, to ty... Niez³¹ mieliœmy zabawê, hehe. Œni³o mi siê, ¿e przynios³eœ mi coœ z przesz³oœci... Dobra popijawa... + + + Czy to przypadkiem nie ta broñ ci siê œni³a? + + + O, stary... To chyba jednak nie by³ sen. To jest karabin Gaussa, oficjalnie nazywany obiektem 62. Uff... Kiedyœ wykonywa³em robotê kontraktow¹ dla fabryki Jupiter. Jeœli dobrze pamiêtam, projektowa³em broñ „wykorzystuj¹c¹ zasadê przyspieszenia pocisku przez pole elektromagnetyczne”. Widzisz te bêbny? To ja je zrobi³em... Szkoda, ¿e w 2004 projekt zosta³ zamkniêty. Nigdy nie uda³o nam siê znaleŸæ wystarczaj¹co ma³ego Ÿród³a energii. + + + Z tej broni ju¿ kiedyœ strzelano. Co mog³o siê zmieniæ? + + + A sk¹d mam wiedzieæ, do cholery? Szczerze mówi¹c, nie oœmieli³bym siê wsadziæ œrubokrêta w tê bateriê. Poza tym system zasilania ma jakieœ mechaniczne uszkodzenie. Teraz naprawdê przyda³yby siê jakieœ plany tej broni. Warsztat testuj¹cy, w którym pracowa³em, prowadzi³ ca³¹ dokumentacjê produkcyjn¹. Mo¿e plany i dodatkowa dokumentacja tego karabinu Gaussa wci¹¿ tam s¹... Co ciekawe, nadal mam kartê wstêpu do warsztatu... + + + Da³byœ mi tê kartê? + + + Taa, no... No dobrze. Tylko jej nie zgub. Jeœli przyniesiesz mi te dokumenty, mo¿e uda mi siê naprawiæ twoj¹ broñ. + + + Masz tu swoj¹ kartê wstêpu, ca³¹ i zdrow¹. + + + Dziêki. Przypomina mi stare, dobre czasy. + + + No i?... Przynoœ mi wszystkie swoje popsute bronie, podziurawione kombinezony i co tam jeszcze masz... Na trzeŸwo nie jestem nawet w po³owie tak dobry, ale spróbowaæ mogê... + + + Gdzie ty by³eœ? Ju¿ siê martwi³em, wszêdzie ciê szuka³em. Gdzie ten stalker, pyta³em... Ekstra, nie? + + + Czó³ko. Mi³o, ¿e wpad³eœ. Rozgoœæ siê... Przynios³eœ mi coœ do naprawy albo do picia? + + + Hoho! Super! Rêce mi siê nie trzês¹, a g³owa mówi „chcê wiêcej”... Nalej mi jeszcze jednego, m³odzieñcze! + + + Co tak wolno? No dalej, otwieraj nastêpn¹ flaszkê! Pijmy za nasz¹ wspóln¹ sprawê. Taaa. Po wódce stajê siê geniuszem mechaniki, to nie œciema. + + + Szkoda, ¿e nie ma tu Kawalarza, wypilibyœmy za Stoga... Niech mu ziemia lekk¹ bêdzie. Dobry by³ z niego ch³op, prawdziwy twardziel. Jak ska³a. + + + Szkoda, ¿e nie ma tu Stoga, wypilibyœmy za Kawalarza... Niech mu ziemia lekk¹ bêdzie. Dobry by³ z niego ch³op, prawdziwy przyjaciel. Zawsze dotrzymywa³ s³owa. + + + Uch... Stóg... Kawalarz... Jak to siê mog³o staæ... Taki ³añcuch zdarzeñ... + + + Mm-hmm? Co my tu mamy? Pancernymi PM zajmê siê jutro... Nie martw siê, nic siê nie dzieje. Czeka na mnie napitek... + + + Ten numer szeœædziesi¹t dwa... Strasznie bym chcia³ rzuciæ okiem na schematy obwodów. + + + Dobrze trafi³eœ, przyjacielu. Broñ trzeba utrzymywaæ w jak najlepszym stanie. A jeœli masz przy sobie butelczynê albo i dwie, mogê powprowadzaæ mnóstwo ulepszeñ. Chcesz mieæ spadochron w strzelbie? To te¿ mogê zrobiæ, hehe. + + + Tylko popatrz! Wsadzili do baterii elektrostatyczny artefakt! Ha! Wiedzia³em, ¿e to jakiœ anormalny szajs! Zasada jest bardzo prosta - teraz sam mogê robiæ takie baterie. + + + Potrzebujesz, ¿eby ci coœ naprawiæ? + + + To jakiœ be³kot. Chyba ju¿ trochê zapomnia³em, jak czytaæ dokumenty techniczne... + + + Tak, przyszed³em do Zatonu z dwoma kumplami, Stogiem i Kawalarzem... M³odziaki, ostre i wkurzone! Rêce ich œwierzbi³y do artefaktów, chcieli ich zdobyæ ca³e góry, chcieli byæ pierwsi, najszybsi... A ja patrzy³em w ich p³on¹ce oczy i myœla³em sobie, ¿e to im nie wyjdzie na dobre. Pewnie, ³upy to fajna sprawa, ale nie warto dla nich rzucaæ siê w paszczê mutanta. + + + Co siê sta³o? + + + No... Pewnej nocy poszliœmy siê napiæ i zaczêliœmy siê spieraæ, co robiæ dalej - zostaæ czy iœæ, a jeœli iœæ, to dok¹d. Ka¿dy upiera³ siê przy swoim, byliœmy w impasie. Zrobi³o siê naprawdê gor¹co, a kiedy k³ótnia dobieg³a koñca, rozeszliœmy siê, ka¿dy w swoj¹ stronê. Powiedzia³em im, ¿e nic nie wiedz¹ o ¿yciu... i jeszcze parê niemi³ych rzeczy. Rany... gdybym tylko znowu ich spotka³, przeprosi³bym ich za to, co wtedy mówi³em... Poszlibyœmy siê napiæ, tak jak kiedyœ, i powspominalibyœmy stare, dobre czasy... + + + Jeœli spotkam Stoga, mogê mu przekazaæ twoje przeprosiny. + + + By³oby mi³o. + + + Jeœli spotkam twoich kumpli, mogê im przekazaæ twoje przeprosiny. + + + By³oby mi³o. + + + Jeœli spotkam Kawalarza, mogê mu przekazaæ twoje przeprosiny. + + + By³oby mi³o. + + + Znalaz³em to PDA - spójrz. + + + Po co mi PDA? Do kogo nale¿a³o? + + + Stóg nie ¿yje?!... Nie wierzê!... O rany! A taki by³ z niego twardziel... Och, Stóg... Spoczywaj w pokoju. Mam nadziejê, ¿e przynajmniej z Kawalarzem wszystko w porz¹dku. + + + Stóg nie ¿yje?!... Nie wierzê!... O rany! A taki by³ z niego twardziel... Och, Stóg... I Kawalarz te¿... Spoczywajcie w pokoju, dzieciaki. Jak to siê mog³o staæ... + + + Stóg nie ¿yje?!... Nie wierzê!... O rany! A taki by³ z niego twardziel... I Kawalarz... Och, Kawalarz... Ju¿ siê nie poœmiejemy z twoich kawa³ów. Spoczywajcie w pokoju, dzieciaki. Jak to siê mog³o staæ... + + + Odpowiesz mi na kilka pytañ? + + + Jasne. + + + W jakim czasie realizujesz zamówienie? + + + Zale¿y, jak bardzo jest skomplikowane. Zwykle takie rzeczy zabieraj¹ mi jeden dzieñ, czasami mniej. + + + Opowiedz mi o sobie. + + + Niewiele jest do opowiadania. Ró¿nie mi siê w ¿yciu uk³ada³o, jak ka¿demu. Wlaz³em w parê anomalii, by³em zak³adnikiem u bandytów... Trafi³em do Zony jako m³ody ch³opak, dawno temu. Na pocz¹tku by³em ch³opcem na posy³ki - leki przeciwpromienne, amunicja pancerna i tak dalej. Potem pracowa³em dla Sidorowicza... to by³a zap³ata za to, ¿e uratowa³ mi ¿ycie. Wykonuj¹c za niego niewdziêczn¹ robotê zawar³em kilka przydatnych znajomoœci i wkrótce rozkrêci³em w³asny biznes, zdobywaj¹c unikalne przedmioty na zlecenia klientów. Na razie udawa³o mi siê unikaæ kopów, jakie wymierza³o mi ¿ycie, ale mam przeczucie, ¿e moje szczêœcie siê wyczerpuje. Poza tym nie mam ju¿ ochoty nadstawiaæ karku za parê groszy. + + + Rozumiem, dziêki. + + + Cieszê siê, ¿e mog³em pomóc. + + + Sprzeda³eœ mi kradzion¹ broñ! + + + O czym ty gadasz? Nie sprzedajê kradzionego towaru. Moje interesy s¹ czyste. Jeœli mi nie wierzysz, pogadaj z kimkolwiek w bazie - ka¿dy ci powie, ¿e jestem uczciwym kupcem, który nigdy nikogo nie zawiód³. + + + Spotka³em stalkera, który twierdzi, ¿e ta broñ nale¿y do niego. + + + A jak siê nazywa³? + + + Sêk. + + + A co ciê to obchodzi? + + + To wa¿ne. Ktoœ ciê nabiera, stalkerze. + + + Zobaczymy. + + + Ktoœ ciê nabiera, stalkerze. + + + Przychodzê po swoje zamówienie. + + + Oto twój Stepowy Orze³. By³o z nim trudniej ni¿ myœla³em. Zainteresowa³ siê nim jakiœ znawca broni, ledwo zd¹¿y³em z³apaæ go dla siebie. Sam zobacz - rêczna robota, wszystkie elementy dopasowane z niezrównan¹ precyzj¹. Zastanawia³eœ siê kiedyœ, jak wygl¹da idealny pistolet snajperski? Oto on. Wisisz mi jeszcze 2800. + + + Dobra, masz. + + + Proszê bardzo. Interesy z tob¹ to czysta przyjemnoœæ. + + + Nie mam tyle przy sobie. + + + Dobra, przechowam dla ciebie tê broñ. Mam nadziejê, ¿e szybko zdobêdziesz pieni¹dze. + + + Nie chcê go kupiæ. + + + Jeœli odmówisz przyjêcia zamówionego przedmiotu, nie bêdê móg³ na tobie polegaæ nastêpnym razem. Bêdê musia³ uwzglêdniæ w cenie element ryzyka i ¿¹daæ wy¿szej zaliczki. + + + Tak czy inaczej, nie chcê tego zamówienia. + + + Dobra, jak wolisz. + + + Pomyœlê o tym. + + + Jasne, twoja sprawa. Zatrzymam dla ciebie broñ przez pewien czas. + + + Oto twój super-ekstra-precyzyjny Stepowy Orze³. Wisisz mi jeszcze 2800. + + + Oto Alpine - prawdziwe cacko. B¹dŸ pewien, ¿e drugiego takiego pistoletu nie ma w ca³ej Zonie. Unikalny model, bardzo ograniczona liczba sztuk zamówiona dla jednej, jedynej jednostki specjalnej. Nie by³o ³atwo go zdobyæ, musia³em nawet zaanga¿owaæ w to jednego z moich wspó³pracowników zza oceanu. Powiêkszony magazynek, lufa z supertwardej stali, komora z wyj¹tkowo mocnych polimerów. Dorzuæ brakuj¹ce 2800 i maleñstwo jest twoje. + + + Oto twój pistolet Alpine z powiêkszonym magazynkiem. Dorzuæ brakuj¹ce 2800 i maleñstwo jest twoje. + + + Patrz, oto Marsz. Ten pistolet nale¿a³ do najemnika zwanego Wilczarzem. Kompaktowa, wysokokalibrowa broñ z krótkim przep³ywem wstecznym i l¿ejszym zamkiem. Wilczarz by³ stuprocentowym ³ajdakiem, ale trzeba przyznaæ, ¿e zna³ siê na broni. Podobno jego ulubion¹ sztuczk¹ by³o odstrzelenie ofierze wszystkich czterech koñczyn, a potem g³owy - zanim biedak uderzy³ ni¹ o ziemiê. W ka¿dym razie bêdzie ciê to kosztowa³o 2800. + + + Oto twój szybkostrzelny pistolet Marsz. Wisisz mi jeszcze 2800. + + + Bardzo proszê - oto pistolet maszynowy Przecinak. Od razu powiem, ¿ebyœ nie s¹dzi³ go po wygl¹dzie. To nówka sztuka, jeszcze nie wszed³ do masowej produkcji. Prototyp, prosto fabryki. Projektanci chcieli stworzyæ broñ krótkodystansow¹ nowej generacji: po³¹czenie du¿ego kalibru, szybkiego strza³u i precyzji. Poproszê 8000. + + + Tak, oto Przecinak, szybkostrzelny pistolet maszynowy. Poproszê 8000. + + + Oto piêkny okaz - Karabinier. Prawdziwa strzelba wojskowa. Ma tryb automatyczny, a dziêki zrównowa¿onemu systemowi bezwstrz¹sowemu dobrze sobie radzi z odrzutem. Dorzuæ 8000 i jest twój. + + + Oto Karabinier, strzelba automatyczna. Dorzuæ 8000 i jest twój. + + + S¹dzê, ¿e tego w³aœnie potrzebujesz. Eliminator, ostatnia nowoœæ. Ca³y transport mia³ trafiæ do Afryki Œrodkowej, ale dosta³em „próbkê" od przyjació³ w ramach specjalnej przys³ugi. Strzelba automatyczna z du¿ym magazynkiem i znakomit¹ szybkoœci¹ ogniow¹. Jest twoja za jedyne 8000. + + + Jasne. Strzelba automatyczna Eliminator z powiêkszonym magazynkiem. Za 8000. + + + Jasne. Oto Burza, broñ maszynowa i granatnik w jednym. Ten prototyp to zmodyfikowana wersja broni konwencjonalnej zaprojektowanej dla dzia³aj¹cych w Zonie jednostek specjalnych. Innowacja techniczna na najwy¿szym poziomie od naszych s³owiañskich braci... Dorzuæ 16000 i jest twoja. + + + Jasne. Oto Burza, broñ maszynowa i granatnik z powiêkszonym magazynkiem, za dodatkowe 16000. + + + Oto i on - GP37, karabin szturmowy nowej generacji. Precyzyjny, niezawodny i wygodny, z wbudowanym celownikiem optycznym. Wczeœniej nale¿a³ do obserwatora ONZ. Ich grupê przys³ano w celu zbadania sytuacji w Zonie. Jednak nie skoñczy³o siê to dobrze... 16000 i karabin jest twój. + + + Oto i on - GP37, karabin szturmowy nowej generacji. Kosztuje 16000. + + + Chwileczkê. Oto modu³owy karabin FT-200M, zaprojektowany i zbudowany w Belgii. Precyzyjny, uniwersalny, dla prawo- i leworêcznych, ma celownik optyczny i granatnik. Wczeœniej nale¿a³ do obserwatorów ONZ, którzy mieli pecha... To bêdzie dodatkowo kosztowa³o 16000. + + + Oto modu³owy karabin FT-200M. To bêdzie dodatkowo kosztowa³o 16000. + + + Oto Przyp³yw. Oparty na cichym karabinie snajperskim, by³ zaprojektowany specjalnie dla wojska do walki z zombiakami. Strzela wolniej, ale za to ma wiêksz¹ moc obalaj¹c¹, a snajper mo¿e po kolei powystrzelaæ zombi nie ujawniaj¹c swojej pozycji. Ale wkrótce siê okaza³o, ¿e do powstrzymania zombiaków przy Barierze wystarcz¹ sami stalkerzy, wiêc karabin nigdy nie trafi³ do masowej produkcji. To maleñstwo bêdzie twoje za dodatkowe 16000. + + + Oto Przyp³yw, cichy karabin snajperski ze zwiêkszon¹ moc¹ obalaj¹c¹. Dorzuæ 16000 i jest twój. + + + Proszê. Oto SWU2-A, krótki karabin snajperski ze zwiêkszon¹ szybkoœci¹ ogniow¹. Kupi³em go od Maksa, legendarnego stra¿nika Wolnoœci. Przysiêga³, ¿e drugiego takiego nie ma w ca³ej Zonie. To unikalny przedmiot, przynajmniej w tych okolicach. Kosztuje dodatkowe 16000. + + + Jasne. SWU2-A, krótki karabin snajperski ze zwiêkszon¹ szybkoœci¹ ogniow¹. Kosztuje dodatkowe 16000. + + + Pewnie, tylko spójrz na tego tutaj Rysia. Rêcznie wykonany przez miejscowego eksperta. Teraz ju¿ nie ¿yje, wiêc nie bêdzie innych egzemplarzy. Wygl¹da jak zwyk³y karabin, ale jak trochê z nim poæwiczysz, poczujesz ró¿nicê. Idealna kombinacja celnoœci i mocy obalaj¹cej. Dodaj 16000 i to maleñstwo jest twoje. + + + Tak, Ryœ - karabin snajperski ze zwiêkszon¹ celnoœci¹ i moc¹. Dorzuæ 16000 i jest twój. + + + Popatrz. Uda³o mi siê zdobyæ wszystko z mojej listy - CS-3a z he³mem. Sam he³m to nic specjalnego, ale mo¿na na nim zainstalowaæ ruchomy zestaw taktyczny, który sk³ada siê z wysokiej jakoœci noktowizora i aktywnego czujnika na podczerwieñ. A pancerz CS-3a to prawdziwe cudeñko. Znakomita ochrona przed kulami i anomaliami, co jest rzadko spotykane w kombinezonach tak lekkich i mobilnych jak ten. Wszystko razem bêdzie ciê kosztowaæ 32000. + + + Tak. Pancerz CS-3a z he³mem taktycznym. W sumie 32000. + + + Specjalnie dla ciebie, kombinezon SEVA. Wszystko tak, jak chcia³eœ - aparat tlenowy o zamkniêtym obiegu, odporny na gor¹co, ochronny obwód elektryczny i zewnêtrzne pokrycie z materia³ów antykorozyjnych. A dodatkowo kilka wbudowanych pojemników na artefakty. Ka¿dy stalker powinien mieæ taki sprzêt. Dorzuæ 24000, tak jak siê umawialiœmy, i jest twój. + + + Proszê. Kombinezon SEVA. Cena 24000, tak jak uzgodniliœmy. + + + Oto i on, egzoszkielet bojowy, najlepszy, jaki istnieje. Nie znajdziesz w Zonie lepszej ochrony przed kulami, szponami czy od³amkami granatu, chyba tylko wozy opancerzone mog¹ siê z nim równaæ. Ale przypomina je te¿ pod tym wzglêdem, ¿e zmniejsza twoje obci¹¿enie - oczywiœcie w rozs¹dnych granicach. 48000 i jest twój, razem z kurzajkami... eeee... mia³em na myœli baterie i serwomotory. + + + Oto i on, egzoszkielet bojowy, najlepszy, jaki istnieje. 48000 i jest twój. + + + Chcê z³o¿yæ zamówienie. + + + Nie ma sprawy. Czego potrzebujesz? + + + Pistoletu. + + + Oczywiœcie. To bêdzie 3500, z czego 700 potrzebujê w ramach zaliczki. + + + Dobrze, proszê. + + + Dam ci znaæ, jak tylko zrealizujê zamówienie. + + + Nie mam przy sobie pieniêdzy. + + + No to wróæ, jak ju¿ bêdziesz mia³. + + + Wiesz co, zmieni³em zdanie. + + + Dobrze. Jeœli jednak zdecydujesz siê z³o¿yæ zamówienie, zawsze mnie tu znajdziesz. + + + Nie jesteœ zbyt solidnym klientem, wiêc pistolet bêdzie ciê kosztowa³ 4200. I bêdê potrzebowa³ 1400 zaliczki. + + + Niestety najlepsze pistolety ju¿ siê wyprzeda³y. Jeœli chcesz czegoœ zwyczajnego, idŸ do Sowy. + + + Broni krótkodystansowej. + + + Jasne. To bêdzie 10000, a 2000 z tego jako zaliczka. + + + Nie chcia³eœ odebraæ ostatniego zamówienia... Wiêc to bêdzie ciê kosztowaæ 12000, w tym 4000 zaliczki. + + + Hmm... Chyba nie bêdê móg³ ci pomóc. Popyt jest za du¿y. + + + Broni szturmowej. + + + Czyli coœ wysokokalibrowego i szybkostrzelnego... Cena wynosi 20000, 4000 jako zaliczka. Co ty na to? + + + Jesteœ trudnym klientem. Muszê ciê skasowaæ na 24000, z czego 8000 w ramach zaliczki. Umowa stoi? + + + Teraz nie jest najlepszy czas... Wojsko podgrzewa sytuacjê w Kordonie. Ktoœ zaatakowa³ parê dni temu ich posterunek, przez co teraz jeszcze trudniej siê z nimi dogadaæ. + + + Broni snajperskiej. + + + Dla ciebie mogê znaleŸæ coœ najlepszego za jedyne 20000, ale musisz mi zap³aciæ zaliczkê w wysokoœci 4000. + + + Interesy z tob¹ zawieraj¹ spory element ryzyka... Spróbujê zrealizowaæ twoje zamówienie za 24000, ale musisz mi zap³aciæ 8000 z góry. + + + Niestety teraz trudno znaleŸæ tak¹ broñ. Mój kontakt w sprawie broni snajperskiej jest... Powiedzmy, ¿e jest niedysponowany. + + + Wzmocnionego kombinezonu. + + + Tak, móg³bym znaleŸæ coœ... odpowiedniego. Bêdzie ciê to kosztowa³o 40000, ale musisz mi zap³aciæ 8000 zaliczki. + + + Tak, móg³bym znaleŸæ coœ... odpowiedniego. Nie chcia³eœ przyj¹æ ostatniego zamówienia, wiêc teraz bêdzie ciê to kosztowa³o 48000 i musisz mi zap³aciæ 16000 zaliczki. + + + Nie znajdê nic lepszego ni¿ kombinezon, który za³atwi³em ci ostatnio. By³ wyj¹tkowy, najwy¿szej jakoœci. + + + Kombinezonu z aparatem tlenowym z zamkniêtym obiegiem powietrza. + + + To trudne zamówienie... Nie³atwo bêdzie je zrealizowaæ. Mogê spróbowaæ zdobyæ jedno z tych cudeniek za 30000, ale muszê ciê prosiæ o 6000 zaliczki. + + + Wystawi³eœ mnie do wiatru z ostatnim zamówieniem, wiêc teraz bêdê musia³ siê dwa razy zastanowiæ. Mogê spróbowaæ zdobyæ jedno z tych cudeniek za 36000, ale muszê ciê prosiæ o 12000 zaliczki. + + + Ostro siê nagimnastykowa³em, ¿eby zdobyæ ten poprzedni. Raczej nie uda mi siê tego powtórzyæ. + + + Egzoszkieletu. + + + Musia³eœ solidnie przemyœleæ tê decyzjê. Mogê zdobyæ wersjê bojow¹, ale to ciê bêdzie kosztowa³o 60000. Drogo, wiem, ale warto tyle zap³aciæ. Pamiêtaj, ze bêdê potrzebowa³ 12000 z góry. + + + Przy ostatnim zamówieniu nie potraktowa³eœ mnie najlepiej, wiêc to bêdzie ciê kosztowa³o 72000. Pamiêtaj, ze bêdê potrzebowa³ 24000 z góry. + + + Nie ma mowy. Odk¹d zamknêli zak³ad produkcyjny, dostêpne egzoszkielety znajduje siê zwykle na zw³okach... Ja nie dzia³am w taki sposób. + + + W tej chwili niczego. + + + Przykro mi, mój sklep jest obecnie nieczynny. Przejœciowe problemy z zaopatrzeniem. + + + Czeœæ, jestem ¯wawy. Ludzie przychodz¹ do mnie po unikalne bronie. Rzadkie modele, prototypy, wyj¹tkowe spluwy... I inne takie. Plus sprzêt luksusowy, najnowsze modyfikacje kombinezonów ochronnych i bojowych. Ka¿dy przedmiot sprawdzam osobiœcie, wiêc klienci maj¹ gwarancjê jakoœci. + + + Czeœæ. Chcesz z³o¿yæ zamówienie? + + + Witam. + + + Twoje zamówienie zostanie nied³ugo zrealizowane. + + + Zamówienie zosta³o zrealizowane. Pora je odebraæ. + + + Hej! Jesteœ kumplem Sêka? + + + Tak, znam go. + + + Powiedzia³ mi, ¿e przyniesiesz nam jakieœ ³upy... + + + Nie pamiêtam, ¿ebym siê na to zgadza³. + + + Taa, jasne. Nie jesteœmy frajerami, nie bêdziemy tak skakaæ dooko³a Sêka. + + + Czeœæ. + + + Nic z tego! + + + Teraz siê zastanów. Jeœli masz chocia¿ kawa³ek mózgu, to wiesz, ¿e jak siê jest w mniejszoœci, trzeba byæ mi³ym. + + + Powiedzia³em nie! + + + Nie. Nie znam go. + + + Aaa... Cholera... Mocno oberwa³em... Pomó¿, stary, potrzebujê apteczki... D³ugo ju¿ nie wytrzymam... + + + WeŸ tê apteczkê. + + + Uff! Dziêki, bracie. Ju¿ prawie kopn¹³em w kalendarz w tym Kotle. Zmutowane psy mia³yby u¿ywanie... Masz, weŸ mój detektor. Kiedyœ mo¿e ci siê przydaæ... Wielkie dziêki za uratowanie mi ¿ycia. Chyba teraz odpocznê sobie trochê w bazie. + + + Powodzenia. + + + Uff! Dziêki, bracie. Ju¿ prawie kopn¹³em w kalendarz w tym Kotle. Zmutowane psy mia³yby u¿ywanie... Masz, weŸ ten artefakt. Kiedyœ mo¿e ci siê przydaæ... Wielkie dziêki za uratowanie mi ¿ycia. Chyba teraz odpocznê sobie trochê w bazie. + + + Nie mogê, sam jej potrzebujê. + + + Nie mam apteczki. + + + Jeszcze raz dziêki! Gdyby nie ty, ju¿ bym gryz³ ziemiê... + + + Stalkerze! Szybko, pomó¿ Pietrusze! Tam, na krawêdzi rozpadliny! Oberwa³ od anomalii! Nawet kombinezon mu nie pomóg³! A ja nie mam kombinezonu. Pietrucha i ja z³o¿yliœmy siê na ten jeden... Jeœli siê tam zbli¿ê, bêdzie po mnie! + + + Dobra, nie ruszaj siê. Spróbujê. + + + RadŸcie sobie sami. + + + Dziêki za uratowanie Pietruchy. Cholera, czemu ¿eœmy nie zaoszczêdzili na lepszy kombinezon! + + + ZejdŸ mi z oczu. Pozwoli³eœ Pietrusze umrzeæ... Nie dorastasz mu do piêt! + + + Do zobaczenia nastêpnym razem. + + + Zniszczy³em gniazdo pijawek. + + + Dobrze. Pomœci³eœ naszych martwych braci, niech Bóg œwieci nad ich duszami... Zas³u¿y³eœ na tê nagrodê. + + + Pod kompleksem antenowym znalaz³em ca³e gniazdo pijawek. + + + Dobrze. To gniazdo trzeba zniszczyæ. Niech pomyœlê... Diabli wiedz¹, ile pijawek czai siê w tych tunelach. Mo¿e da³oby siê je zagazowaæ. Pamiêtam, ¿e Sowa wspomina³ coœ o zbiornikach z gazem. Porozmawiaj z nim - ja nie jestem z nim w najlepszych stosunkach... Jeœli uda ci siê zdobyæ pojemnik z gazem, pod³¹cz go do systemu wentylacyjnego kompleksu antenowego i po paru minutach bêdzie po wszystkim. + + + Dobrze, zrobiê to. + + + Przemyœlê to. + + + Mam ju¿ zbiornik z gazem. + + + Ho ho. Niez³y jesteœ, koleœ. + + + A, oto i nasz stalker. Czekaliœmy na ciebie. + + + Jaki jest plan? + + + Idziemy na spotkanie. Nie bêdziesz mia³ du¿o do roboty, tak¹ mam przynajmniej nadziejê. Masz po prostu staæ i nie pêkaæ. + + + Dobrze. + + + Ha. No to im pokazaliœmy. NieŸle strzelasz, stalkerze. Proszê. + + + Powodzenia. + + + Ty cholerny ¿ó³todziobie. Spieprzy³eœ coœ, co by³o prawie pewne, a teraz spadaj. + + + Czeœæ. + + + Gdzie siê tak spieszysz? + + + Nigdzie. + + + Sowa ciê przys³a³? + + + Tak. Powiedzia³, ¿e potrzebujesz pomocy. + + + To prawda, potrzebujê. Powinieneœ siê nadaæ. + + + Dobra. Co to za robota? + + + Trzeba zadbaæ o bezpieczeñstwo podczas transakcji handlowej. To wszystko. + + + Zrobiê to. + + + B¹dŸ blisko i ubezpieczaj mnie. + + + Jasne. + + + Bêdê rozmawia³ tylko z szefem. + + + Jak chcesz. + + + Dziêki, stalkerze. Bardzo pomog³eœ. Tak przeczuwa³em, ¿e te dupki coœ spieprz¹. Przez ca³¹ drogê byli œledzeni! To za fatygê. + + + Powodzenia. + + + Niez³y z ciebie leñ, ale ochroniarz beznadziejny. Obieca³em ci jednak zap³aciæ, wiêc tak zrobiê. + + + Powodzenia. + + + Niez³y z ciebie leñ, ale ochroniarz beznadziejny. Obieca³em ci jednak zap³aciæ, wiêc tak zrobiê. + + + Powodzenia. + + + Czego chcesz? Nie mam ci za co dziêkowaæ. Ledwo prze¿y³em... IdŸ st¹d! + + + Powodzenia. + + + To mi siê podoba, dziêki, ¿e przyszed³eœ. Chcemy siê podkraœæ w pobli¿e bandytów i pods³uchaæ ich. Co bêdzie potem - zobaczymy. + + + Rozumiem. + + + Dziêki, stalkerze. Przyjmij to od nas... Barman ma twoje g³ówne wynagrodzenie. + + + Rozumiem. + + + Opowiedz mi, jak tu ¿yjecie. + + + Nie jest to na pewno lekkie ¿ycie... Co konkretnie chcesz wiedzieæ? + + + Czym siê tu zajmujecie? + + + Czuwamy nad stalkerami. Musisz przyznaæ, ¿e po³owa z was to bardziej dzieciaki ni¿ mê¿czyŸni. Przychodz¹ do Zony z jakimiœ g³upimi marzeniami albo ¿eby pobawiæ siê w bohaterów, albo dlatego, ¿e nie powiod³o im siê w ¿yciu. Nie zdaj¹ sobie sprawy ze wszystkiego, co ich tu czeka - a jest to przewa¿nie kostucha. Takimi siê w³aœnie opiekujemy. Znajdujemy ch³opaka na Wysypisku, zabieramy jego sprzêt, a jego odsy³amy do Kordonu. Niektórzy id¹ po rozum do g³owy i wracaj¹ na zewn¹trz. Tych, którzy s¹ doœæ twardzi, ¿eby tu wróciæ, bierzemy pod ochronê i opodatkowujemy. Mówiê ci, nikt siê nie oœmiela wejœæ na nasz teren - ani wojsko, ani najemnicy, ani nawet mutanty. + + + Co was przywiod³o do centrum Zony? + + + Nasze nogi. Przyszliœmy tu dla stalkerów, a ty myœla³eœ, ¿e co? Przecie¿ jak nie bêdziemy utrzymywaæ porz¹dku, zapanuje tu totalny chaos. Zbierasz ³upy, zatrzymujesz je, a podatek kto zap³aci? Podatek od spokoju i bezpieczeñstwa. Takiego, ¿e podczas gdy my powstrzymujemy mutanty, ktoœ z waszych ³upi anomaliê. Jeœli mu siê uda, bierzemy czêœæ zysku... Rozumiesz, za utrzymywanie porz¹dku. + + + Jak zosta³eœ szefem? + + + Od czego by tu zacz¹æ... To siê chyba zaczê³o w szkole œredniej. Mia³em dobrego kumpla, najlepszego przyjaciela. Wszêdzie razem ³aziliœmy, paliliœmy, piliœmy i tak dalej. Tylko ¿e on chcia³ silniejszych wra¿eñ. Wpl¹ta³ siê w narkotyki: najpierw tylko zio³o, potem hera, potem koka, jak tylko zacz¹³ mieæ wiêcej kasy. Mówi³em mu: „Tolian, skoñcz z tym gównem, dopóki nie jest za póŸno.". Ale nie s³ucha³. Któregoœ dnia za¿y³ jakieœ gówno i to by³ koniec. Znalaz³em jego dilerów i wyrówna³em rachunki... Wsadzili mnie do paki i wtedy rozpêta³o siê piek³o, wiesz, bitwy gangów, nó¿ w brzuchu... Wyszed³em, rozkrêci³em w³asny biznes, znowu mnie wsadzili... A jak znowu wyszed³em, rzuci³em to wszystko w cholerê i wyruszy³em do Zony. Pierwsze miesi¹ce by³y ciê¿kie, ale potem awansowa³em. A teraz rz¹dzê tutaj, stoj¹c na stra¿y miejscowego prawa. + + + Co myœlisz o stalkerach? + + + Ka¿dy jest inny. Niektórzy to œmiecie, które nie wytrzymuj¹ tu nawet tygodnia, inni zarabiaj¹... A inni to fajne ch³opaki, którzy dostali kopa od ¿ycia po obu stronach Kordonu. Pierwszych skubiemy, drugich opodatkowujemy. A jeœli chodzi o ostatnich, to próbujemy nie wchodziæ sobie nawzajem w drogê. Szkoda, ¿e nie zawsze da siê ich rozró¿niæ na pierwszy rzut oka. + + + A, niewa¿ne. Zapomnij o tym. + + + Jak wolisz. + + + Teraz Brodacz bêdzie pracowa³ dla nas. + + + Znasz powiedzenie „mamy ju¿ krowê, zacznijmy doiæ". OdwiedŸ go od czasu do czasu i przypomnij, ¿e ma zap³aciæ. + + + Brodacz dosta³ wa¿ne zamówienie na artefakt o nazwie Kompas. + + + Musimy go przechwyciæ. Brodacz nie spina³by siê tak dla jakiejœ p³otki. Coœ mi mówi, ¿e bez tego artefaktu bêdzie w dupie... Straci biznes, znaczy siê. Jak tylko znajdziesz ten Kompas, przynieœ go do mnie. + + + Znalaz³em Kompas. Proszê. + + + Nie bêdê szukaæ dla ciebie Kompasu. + + + Hej, dupku, ¿ebyœmy siê dobrze zrozumieli. Jeœli powiesz, ¿e coœ zrobisz, a potem mnie zawiedziesz, nie bêdê ciê za bardzo lubi³. A ludzie, których nie lubiê, rzadko ciesz¹ siê ¿yciem. Zrozumiano? + + + Bêdê o tym pamiêtaæ. + + + Zdobêdê te detektory od stalkerów. + + + Dobrze. Ja w tym czasie zajmê siê innymi kana³ami naszego klienta. + + + Ma³y ptaszek doniós³ mi, ¿e zanios³eœ Kompas Brodaczowi. Wiêc teraz s³uchaj, fiucie. Jeœli powiesz, ¿e coœ zrobisz, a potem mnie zawiedziesz, nie bêdê ciê za bardzo lubi³. A ludzie, których nie lubiê, rzadko ciesz¹ siê ¿yciem. Zrozumiano? + + + Bêdê o tym pamiêtaæ. + + + Brodaczowi skoñczy³y siê ju¿ ulepszone detektory. + + + Wspaniale. Kiedy ciê nie by³o, ja ciê¿ko harowa³em odcinaj¹c go od innych kana³ów. Teraz mamy go w garœci. IdŸ do Brodacza i powiedz, ¿e Su³tan go pozdrawia. + + + Brodacz jest mi winien pieni¹dze. Sowa powiedzia³, ¿e mo¿esz mi pomóc. + + + Pewnie mogê... Oto mój plan: doprowadzimy Brodacza do bankructwa i przejmiemy jego interes, ty odzyskasz swoje pieni¹dze i dostaniesz udzia³ w interesie. Umowa stoi? + + + Stoi. + + + Teraz masz za zadanie dowiedzieæ siê, czym Brodacz siê obecnie zajmuje. Powinno zadzia³aæ odciêcie go od kana³ów zaopatrzenia. + + + Przemyœlê to. + + + Tylko pamiêtaj, ¿e myœlenie jest niezdrowe. + + + S¹dzisz, ¿e ¯wawy mo¿e handlowaæ kradzionymi towarami? + + + ¯wawy? Nie, za miêkki jest na to. Naszym miejscowym dilerem trefnego sprzêtu jest Sowa. Kupi wszystko, co zechcesz sprzedaæ i nie bêdzie zadawa³ pytañ. + + + Szukam Sêka. Wiesz, gdzie mogê go znaleŸæ? + + + Wiem. Moi ch³opcy widzieli go parê dni temu przy dŸwigach portowych. Powinienem wytrz¹sn¹æ z tego œmiecia forsê, która mi jest winien, ale ci¹gle zapominam. + + + Mam dla ciebie robotê. Moi ch³opcy musz¹ siê spotkaæ z kupcem... Wiesz, interesy. Ostatnio w Zonie jest niespokojnie, wiêc pomyœla³em, ¿e przyda siê dodatkowa spluwa. Dopilnuj, ¿eby wszystko posz³o g³adko. + + + Dobrze. + + + No i w porz¹dku. Moi ludzie spotkaj¹ siê z tob¹ w pobli¿u stra¿nicy. Wspó³rzêdne s¹ w twoim PDA. + + + Rozumiem. + + + Nie jestem zainteresowany. + + + Co ty tu jeszcze robisz, do cholery? Zabieraj siê do stra¿nicy. + + + A-ha. + + + Zdecydowa³eœ siê w koñcu? Jesteœ z nami czy nie? + + + Jestem z wami. + + + Bêdê dzia³aæ sam. + + + Pamiêtaj. Jestem Su³tan. Wszystko, co siê tu dzieje, albo ju¿ jest pod moj¹ kontrol¹, albo nied³ugo bêdzie. Jeœli chcesz dobrze ¿yæ, musisz pracowaæ dla mnie. Jeœli nie bêdziesz pracowaæ dla mnie, bêdziesz mia³ gówniane ¿ycie. Tak tu jest, bracie. + + + Czego potrzebujesz? + + + Co ciê tu sprowadza? + + + Co tam? + + + Sam zabi³em wszystkich stalkerów. + + + O, stary... Cholera, ostry z ciebie zawodnik. Tak tu przyjœæ i ich poza³atwiaæ. Po co ja ciê zatrudnia³em... Narobi³eœ nam problemów, a kasy nie zdoby³eœ... Mówiê ci, stary, uspokój siê... + + + Podoba ci siê praca dla naukowców? + + + Nie jest Ÿle. Na razie bez problemów, wszystko w porz¹dku. Naukowcy odpalili nam trochê sprzêtu, wiêc dobrze siê nam wiedzie. + + + Bardzo! Robota prosta i dobrze p³atna. Odk¹d tu jesteœmy, nikt naukowców nie szuka³, nawet potwory. + + + Zbieram oddzia³, z którym wybiorê siê do Prypeci. Przy³¹czysz siê? + + + Niee... Nie mam takiego parcia na Prypeæ jak pozostali... No i mamy tu robotê, musimy ochraniaæ naukowców... Ale mo¿e wzi¹³byœ ze sob¹ tego ¿o³nierza. Mia³by okazjê poszukaæ swoich kumpli z wojska, a my byœmy trochê odetchnêli. Koleœ jest raczej w porz¹dku, ale to nie jest dla niego najlepsze miejsce... + + + Niee... Nie mam takiego parcia na Prypeæ jak pozostali... No i mamy tu robotê, musimy ochraniaæ naukowców... + + + Chcia³byœ pracowaæ dla naukowców? + + + Co to za praca? + + + Ochrona ich bunkra. + + + He, ochranianie... To nie by³by pierwszy raz. Zgoda. Wyruszymy do bunkra, jak tylko bêdziemy gotowi. + + + Wykonywanie pomiarów w anomaliach. + + + Pomiary, hehe. Czy ja ci wygl¹dam na laboranta? To nie moja specjalnoœæ. + + + Pomówmy o tym póŸniej. Za du¿o tu nowej ho³oty; trzeba im pokazaæ, gdzie ich miejsce, a potem bêdzie mo¿na pomyœleæ o pracy. + + + Dobra, to jedziemy. Damy im popaliæ! + + + Dobrze. + + + Ale lepiej znajdŸmy jak¹œ os³onê. To cholerna emisja! + + + Dobra, to jedziemy. Damy im popaliæ! Bez nerwów, ³atwo pójdzie. + + + Urz¹dziliœmy ich, co! Masz tu kasê, stary. Jak bêdzie nowa robota, dam ci cynk. + + + O, stary... Cholera, ostry z ciebie zawodnik. Tak tu przyjœæ i ich poza³atwiaæ. Po co ja ciê zatrudnia³em... Narobi³eœ nam problemów, a kasy nie zdoby³eœ... Mówiê ci, stary, uspokój siê... + + + Co jest?! Gdzie stalkerzy?!... Co siê, do cholery, dzieje? Podkablowa³eœ, co? To mog³eœ byæ tylko ty! Wszyscy moi kumple byli przez ca³y czas ko³o mnie... A teraz ty, durny gnoju, dostaniesz tak, jak mieli dostaæ stalkerzy! Na co siê gapisz, do cholery - wywracaj kieszenie, dupku! + + + Powinniœmy iœæ... Na barkê. + + + Czeœæ, szefie. Wybacz, ale nie jestem w nastroju do rozmowy. + + + Pomogê ci. + + + Super. Zaaran¿ujemy spotkanie, tak jak by³o uzgodnione, i ty pójdziesz. Kiedy siê poka¿¹, zaczniemy do nich pruæ ze wszystkich stron. Trzymaj siê z daleka, ¿eby nie postrzeli³ ciê ktoœ z naszych. + + + Dobrze. + + + Nie. Nie piszê siê na to. + + + Czó³ko, stalkerze. Jestem teraz zajêty. Pogadamy póŸniej, dobra? + + + Dziêki za ostrze¿enie. Mo¿e zgodzisz siê na nasz plan? Dobra okazja, ¿eby wbiæ tym draniom nó¿ w plecy, ¿e tak powiem. + + + Urz¹dzimy na nich zasadzkê. A wtedy ty zaczniesz strzelaæ do gnojków z ty³u. + + + Ci gówniarze s¹ ju¿ martwi. Dziêki za ostrze¿enie. + + + Dziêki za pomoc. + + + Czó³ko. S³uchaj, jeœli to nic pilnego, to pogadajmy póŸniej, dobra? + + + Witam. + + + Znalaz³em Srokê. By³ w stacji Janów, przedstawia³ siê jako Flint. Ju¿ za³atwiony. + + + Za³atwiony? Szkoda. Sam bym chcia³ rozdeptaæ tego robala... No nic, to i tak dobra wiadomoœæ. WeŸ to - dotrzymujê s³owa. + + + Dziêki. + + + Chcê opuœciæ Zonê. + + + Na pewno? Nie bêdziesz ju¿ móg³ wróciæ. + + + Na pewno. ChodŸmy. + + + W³aœciwie jeszcze zostanê. + + + Dobrze, weŸ pieni¹dze. Nie chcê walczyæ. + + + Hê? Dawaj wszystko co masz, gnoju! A potem spadaj i nie pokazuj siê tu wiêcej! + + + Idê st¹d. + + + Nic z tego! + + + Spójrzmy... Ale o co chodzi? Jeœli ty niedomagasz, to ja ju¿ chyba jestem trupem... + + + S³uchaj, jest pilna sprawa. Mój znajomy handlarz ma interes do zrobienia. Problem w tym, ¿e jego klienci s¹ z tych k³opotliwych, wiêc na wszelki wypadek chce wynaj¹æ ochroniarza. Jesteœ zainteresowany? + + + Tak. + + + Dobra. Handlarz bêdzie na ciebie czeka³ przy stra¿nicy, przeka¿e ci wszystkie szczegó³y. + + + Nie. + + + Twoja sprawa. Jeœli nied³ugo zmienisz zdanie, robota mo¿e byæ nadal do wziêcia. + + + Jak¹ masz dla mnie pracê? + + + Tak¹, za któr¹ mo¿na dostaæ kasê. Pomyœl: dlaczego zwracam siê do ciebie? Jesteœ nowy, nie masz przydatnych znajomoœci, ale jeœli dobrze siê zakrêcisz, mo¿esz szybko zdobyæ szacunek miejscowych. Chcesz wiedzieæ, co wykombinowa³em? + + + Tak, jasne. + + + Dobra, to s³uchaj. Chcemy przetrzepaæ kilku stalkerów Brodacza. To bêdzie ³atwizna. PóŸno w nocy ty i nasi ludzie wejdziecie na Szewczenkê i zanim ci turyœci po³api¹ siê, co siê dzieje, za³atwicie sprawê. My zyskujemy kasê, ty zyskujesz szacunek... Kumasz? No to bomba. Tam stoi Kastet, widzisz, który to? On ci przeka¿e szczegó³y. + + + Nie. + + + Szkoda. Nie spiesz siê, przemyœl to... Jeœli wiesz, co dla ciebie dobre, to wrócisz, kolego. + + + Tak¹, która ci siê spodoba, jeœli lubisz podró¿e... Chcesz wiedzieæ, co wykombinowa³em? + + + PDA Stoga. Znalaz³em jego zw³oki w jaskiniach pod spalonym gospodarstwem. + + + Znalaz³em go przy kupce nagich koœci w pobli¿u Sosnodêbu. To PDA Kawalarza. + + + Kawalarza?!... To niemo¿liwe! Rany, jestem zszokowany... Kawalarz nie ¿yje... Stary, ju¿ siê nie poœmiejemy z twoich kawa³ów... Spoczywaj w pokoju... Mam nadziejê, ¿e przynajmniej ze Stogiem wszystko w porz¹dku... + + + Kawalarza?!... To niemo¿liwe! Rany, jestem zszokowany... Kawalarz nie ¿yje... Stary, ju¿ siê nie poœmiejemy z twoich kawa³ów... Spoczywaj w pokoju... I ty te¿, Stóg... Jak to siê mog³o staæ... + + + Stoga i Kawalarza. Znalaz³em je przy szkielecie w pobli¿u Sosnodêbu i przy zw³okach w jaskiniach pod spalonym gospodarstwem. + + + Szczerze mówi¹c, niewiele jest do opowiadania. Emisje s¹ bardzo niebezpieczne i prawie zawsze zabójcze. Ich nadejœcie wyczuwa siê stopniowo, poprzez zmiany pogody, ale mijaj¹ szybko, tu¿ po najsilniejszym uderzeniu. Przy pierwszych oznakach ich nadchodzenia natychmiast siê chowaj - w jaskini, za czymœ z betonu, cegie³ albo stali... Ja, podobnie jak niektórzy, wyczuwam nadejœcie emisji, kiedy zaczynaj¹ mnie boleæ plecy. W kwestii natury emisji nie powiem ci nic po¿ytecznego - po prostu sam nic nie wiem. + + + Potrzebujesz towarów? Informacji?... A mo¿e sam masz jakieœ informacje na sprzeda¿? + + + Su³tan mówi, ¿e chcesz oskubaæ stalkerów. Mo¿esz na mnie liczyæ. + + + Œwietnie. Po pó³nocy b¹dŸ przy Szewczence - bêdziemy na ciebie czekaæ. Tylko nie zwlekaj do rana, przyjdŸ wczeœniej. + + + A, to ty, brachu. No i co ustaliliœcie z Su³tanem? + + + No wiêc... PrzyjdŸ do barki po pó³nocy, ale przed wschodem s³oñca - bêdziemy na ciebie czekaæ. + + + Chyba lepiej zostanê z tob¹. Poczekamy do pó³nocy i poka¿esz mi drogê do Szewczenki. + + + Nie ma problemu, mo¿esz siê tu krêciæ. Pogadamy przy barce. + + + W³aœciwie muszê siê czymœ zaj¹æ. + + + Na zewn¹trz Zony mam wa¿nych klientów, którzy regularnie zamawiaj¹ konkretne artefakty, a te z kolei musz¹ byæ dostarczone w okreœlonym czasie. Przynoœ mi to, o co proszê, a ja bêdê ci za to dobrze p³aci³. Pamiêtaj, ¿e te zamówienia s¹ dla mnie bardzo wa¿ne i dlatego zlecam robotê kilku agentom naraz... Pe³n¹ zap³atê dostaje tylko ten, kto przyniesie artefakt jako pierwszy. + + + Przez spalone gospodarstwo. Hmm... Kim ty w³aœciwie jesteœ? + + + To miejsce jest te¿ nazywane ¯elaznym Lasem. Helikopter rozwali³ siê o s³upy wysokiego napiêcia. ¯aden z ¿o³nierzy nie prze¿y³... A nawet jeœli ktoœ nie zgin¹³ na miejscu, to i tak nie po¿y³ d³ugo. Te poltergeisty uwielbiaj¹ wpêdzaæ ludzi w anomalie elektryczne... Na pewno wiesz, ¿e dranie reaguj¹ na najl¿ejszy ruch. + + + S³uchaj... Kiedy helikopter spad³, zauwa¿ono tam piêciu ¿o³neirzy. Podobno uda³o im siê nawet wydostaæ z tego bagna... Dotarcie do tego miejsca nie jest trudne, wystarczy unikaæ wody i trzymaæ siê sta³ego l¹du. Bêdziesz te¿ potrzebowa³ ochrony chemicznej. Wiêc jeœli planujesz tam wyruszyæ, kup od lekarza trochê antidotum. + + + Szkoda, ¿e nie ma tu moich kumpli, Kawalarza i Stoga... Œwietnie byœmy siê bawili. Byliœmy jak bracia, jeden za wszystkich, wszyscy za jednego... Jak to siê mog³o staæ? Ja ci¹gle tu jestem, ale ich gdzieœ ponios³o, diabli wiedz¹, gdzie... + + + Opowiedz mi o Kawalarzu i Stogu. + + + Mam ju¿ coœ stamt¹d. + + + Zacznij gadaæ... Masz coœ dla mnie? + + + To wszystko wyjaœnia. Znam go. Zawsze by³ z niego krêtacz, ale ostatnio naprawdê wymkn¹³ siê spod kontroli, ¿eby tak naci¹gaæ stalkerów... Trzeba mu pokazaæ, gdzie jego miejsce. + + + Potrzebujê informacji z obozu najemników. To ³atwiejsze ni¿ siê mo¿e wydawaæ. + + + Dobra, bêdê czekaæ... Pamiêtaj, ¿e robota jest pilna - trzeba j¹ wykonaæ w ci¹gu dwóch dni. + + + PDA pos³añca Su³tana + + + Nie jest to bardzo interesuj¹ce. Dam ci za to 500. + + + Dobrze. + + + Prototypy detektorów. Chcesz je odkupiæ? + + + Tajne dokumenty. Znalaz³em je na moœcie przy konwoju. Chcesz rzuciæ okiem? + + + Dziwny artefakt. Znalaz³em go przy pog³êbiarce. + + + Dziwny artefakt. Znalaz³em go przy stacji Janów. + + + Artefakt Serce Oazy. + + + Ruszajmy. + + + Czekaj. + + + Grupa stalkerów chce ciê obrabowaæ. B¹dŸ czujny. + + + Co za gnojki... Dobra, przygotujemy im ciep³e powitanie... S³uchaj, niech myœl¹, ¿e jesteœ po ich stronie. Jeœli im to wmówisz, pomo¿esz nam ich odeprzeæ... Dobrze ciê wynagrodzimy... + + + Gówno mnie obchodzi, na co siê zgodzi³eœ. Oddawaj! + + + Dobra, masz. + + + Nie?... A my mamy to w dupie. Oddawaj go, gnoju! + + + Spokojnie, spokojnie... Bierzcie. + + + Co za gnojki... Dobra, przygotujemy im ciep³e powitanie... S³uchaj, pomó¿ nam ich pokonaæ... Dobrze ciê wynagrodzimy... + + + Urz¹dziliœmy ich, a co! Ty siê nie udziela³eœ, wiêc nie dostaniesz kasy. Jak bêdzie nowa robota, dam ci cynk. + + + Jesteœ do niczego... Nie oczekuj nagrody. Ale przynajmniej przyszed³eœ pogadaæ, to ju¿ coœ. + + + Na razie. + + + To mi siê podoba. A teraz trochê dociœnij naszego klienta. Podobno Brodacz da³ swoim stalkerom bardzo potê¿ne detektory do wykrywania rzadkich artefaktów. Musisz siê wkrêciæ miêdzy tych stalkerów i dopilnowaæ, ¿eby detektory trafi³y do ciebie. Kumasz? + + + Niestety jest silniejszy. Próbowa³em odci¹æ go od szlaków zaopatrzeniowych, ale ta brodata szuja zdo³a³a jakoœ dorwaæ Kompas. Chyba nieŸle sobie radzi... Na razie. + + + [Dalej....] + + + [Dalej....] + + + [Dalej....] + + + G³uszec nie ¿yje. NajwyraŸniej to Wstrz¹s go zabi³... Ale on te¿ jest martwy. + + diff --git a/gamedata/configs/text/pol/st_generate_fnames.xml b/gamedata/configs/text/pol/st_generate_fnames.xml new file mode 100644 index 0000000..02a6324 --- /dev/null +++ b/gamedata/configs/text/pol/st_generate_fnames.xml @@ -0,0 +1,492 @@ + + + + Sanek + + + Szurik + + + Wadia + + + Wasian + + + Wasiek + + + Witiucha + + + Wieta³ + + + Wowan + + + ¯orka + + + Griszka + + + Griszko + + + Dimon + + + Lecha + + + Dimucha + + + ¯eka + + + Fimka + + + Iliucha + + + Kostian + + + Mitka + + + Micha³ + + + Micha + + + Michaœ + + + Kolian + + + Tolian + + + Paw³ucha + + + Saszok + + + Stiepka + + + Stiepucha + + + Timocha + + + Fie³ka + + + Juraœ + + + Jaszka + + + Andriucha + + + Tocha + + + Arkasza + + + Tiomka + + + Borian + + + Bodia + + + Kapitan + + + Porucznik + + + Szeregowy + + + Andriej + + + Anton + + + Oleg + + + Roman + + + Aleksandr + + + Siergiej + + + Anatolij + + + Jurij + + + Bogdan + + + Wieniamin + + + Witalij + + + W³adimir + + + Dmitrij + + + Iwan + + + Konstantin + + + Aleksiej + + + Sania + + + Sanek + + + Artur + + + Jaszka + + + Jarik + + + Jara + + + S³awa + + + Boria + + + Borka + + + Bogdan + + + S³awik + + + Wadim + + + Wadia + + + Wadik + + + Walik + + + Walera + + + Szurik + + + Wasia + + + Waœka + + + Waœko + + + Wienia + + + Witia + + + Witka + + + Witalik + + + W³ad + + + Wowa + + + Wowka + + + Lenia + + + Siewa + + + Siewka + + + Giena + + + Gienka + + + Gieorg + + + Gosza + + + ¯ora + + + Mark + + + Gleb + + + Grisza + + + Aleks + + + Griszka + + + Griszko + + + Dania + + + Kiriucha + + + Dañko + + + Dienis + + + Dima + + + Dimka + + + Dmitro + + + ¯enia + + + Loszka + + + ¯eñka + + + Jegor + + + Jegorka + + + Fima + + + Wania + + + Wañka + + + Igoriek + + + Ilia + + + Kostia + + + Kostik + + + Tolik + + + Liewa + + + Lienia + + + Lionka + + + Maks + + + Matwiej + + + Mitia + + + Misza + + + Miszka + + + Nikita + + + Nik + + + Anton + + + Kola + + + Oleg + + + Pasza + + + Paszka + + + Pietro + + + Pietia + + + Pietka + + + Roma + + + Romka + + + Rostik + + + Toszka + + + Rus + + + Sawa + + + Siemion + + + Sioma + + + Sierioga + + + Rusik + + + Stiepan + + + Stiepa + + + Tima + + + Timka + + + Artem + + + Fiodor + + + Fiedia + + + Fiedka + + + Filia + + + Fi³ka + + + Edik + + + Jurka + + + Jurik + + + Jurko + + + Jasza + + + Starszy sier¿ant + + + Sier¿ant + + diff --git a/gamedata/configs/text/pol/st_generate_snames.xml b/gamedata/configs/text/pol/st_generate_snames.xml new file mode 100644 index 0000000..0f47e3a --- /dev/null +++ b/gamedata/configs/text/pol/st_generate_snames.xml @@ -0,0 +1,4836 @@ + + + + Szary + + + Berserker + + + Zgni³ek + + + Patty + + + Szpicel + + + ¯ubr + + + Bóbr + + + Buldog + + + Wó³ + + + Wróbel + + + Dziêcio³ + + + Bestia + + + Czarownik + + + Humbak + + + Dzik + + + Karaœ + + + Kanarek + + + Pluskwa + + + Szpicel + + + £oœ + + + Szczur + + + Boa + + + Bochenek + + + Zbity + + + Dryblas + + + Rozwa³ka + + + Œruba + + + Brzytwa + + + Bêben + + + Œmieæ + + + Wkrêt + + + Dynamit + + + Atut + + + £opata + + + Skrêt + + + Leszcz + + + Krzy¿yk + + + Smo³a + + + Skarpeta + + + £om + + + Panadol + + + No¿yk + + + T³ok + + + Grosik + + + Reszka + + + Œmieræ + + + Grzêda + + + Ostrza³ka + + + As + + + Czekan + + + Kuk³a + + + Libero + + + Podk³ad + + + Æwiek + + + Pch³a + + + Pi¹cha + + + Siniak + + + Kijanka + + + Haker + + + Chan + + + Koœciej + + + Rambo + + + Przewodnik + + + Terminator + + + Czapaj + + + D¿yngis + + + Banan + + + Bochenek + + + Niezdara + + + Tata + + + Kolec + + + S¹siad + + + Gangrena + + + Usterka + + + Stopieñ + + + Antylopa + + + Pora¿ka + + + Parias + + + Auszpik + + + Wêgiel + + + Atut + + + Skrêt + + + Skarpeta + + + Goblin + + + Maur + + + Zio³o + + + Klapa + + + Piero¿ek + + + Chili + + + Pilnik + + + Gruby + + + Krakers + + + Upiór + + + Dusigrosz + + + Rozbity + + + Kutwa + + + Zezowaty + + + Demon + + + Kaleka + + + Kopacz + + + Krzywy + + + Szuja + + + Cwaniak + + + Tupecik + + + Dziki + + + Koleœ + + + Tutejszy + + + Œluz + + + Mistrz + + + Monokl + + + £obuz + + + Paso¿yt + + + Wa¿niak + + + £ajdak + + + Nieboszczyk + + + Psychol + + + Krzykacz + + + Zadra + + + £apacz + + + Œlepy + + + Smark + + + Fircyk + + + Kasa + + + Truposz + + + Siekacz + + + Uszatek + + + B³azen + + + Chart + + + Kulawy + + + Twardy + + + Maruda + + + Koneser + + + ¯wawy + + + Giermek + + + Pijawka + + + Artysta + + + Kanciarz + + + Bankier + + + ¯ul + + + Baron + + + Handlarz + + + Orygina³ + + + Kloszard + + + Bosman + + + Pigmej + + + Burbon + + + Bur¿uj + + + Szofer + + + Z³odziej + + + Ogolony + + + Gangster + + + Pos³aniec + + + Hrabia + + + Tyran + + + Dzikus + + + Dusiciel + + + Doradca + + + Gracz + + + Oszust + + + Ojciec Chrzestny + + + Weteran + + + Trener + + + Tandeta + + + Maniak + + + Grabarz + + + RzeŸnik + + + Ninja + + + Kat + + + Punk + + + Partyzant + + + Pacyfista + + + G³az + + + Pirat + + + Podpalacz + + + Ksi¹¿ê + + + Rozbójnik + + + Kamikaze + + + Alfons + + + Tyran + + + Cyngiel + + + Puzon + + + Chemik + + + Abdurachmanow + + + Altynnik + + + Barsak + + + Kirejew + + + Szczerbin + + + Kowalczuk + + + Kojew + + + Koz³ow + + + Ko³ontarew + + + Ko³ontar + + + Kondratenko + + + Korkin + + + Korniejew + + + Baul + + + Krawczenko + + + Kriwda + + + Krzywochacki + + + KuŸniecow + + + KuŸmicz + + + Kuziakin + + + Kulczycki + + + Kuncew + + + Kurwic + + + Kuczeruk + + + Baszakow + + + Kusznarew + + + Cha³adze + + + £awrik + + + £awrow + + + Liwszyc + + + Lisiczañski + + + Litwin + + + Limarenko + + + Mazepa + + + Makarenko + + + Baszmakow + + + Malcew + + + Mamajew + + + Merz³ajew + + + Milczenko + + + Mironiuk + + + Mohrer + + + Kryga + + + Mostowoj + + + Muntian + + + Muchamedow + + + Beszewli + + + Myskow + + + Nawrocki + + + Nepricki + + + Nikanorow + + + Nikeszyn + + + Nikulin + + + Fucin + + + Nordiew + + + Nosan + + + Opolew + + + Binojew + + + Orlewicz + + + Or³ow + + + Petkiewicz + + + Petrenko + + + Petrow + + + P³ochenko + + + Podiaczew + + + Polianin + + + Pop³awski + + + Popow + + + Blinow + + + Portnych + + + Praso³ow + + + Prokopenko + + + Proskurin + + + Procenko + + + Prudow + + + Pustowar + + + Puczek + + + Rabinowicz + + + Radkiewicz + + + Bobrow + + + Rezun + + + Rogoza + + + Rodniañski + + + Rotan + + + Rublew + + + Rudik + + + Rusanow + + + Ryczagirski + + + Sawczenko + + + Sawczuk + + + Bogdanow + + + Sagitow + + + Swiridow + + + Sedych + + + Sereda + + + Sidorenko + + + Sidorow + + + Sinij + + + Sinicyn + + + Skamejka + + + S³ucki + + + Bojko + + + Sme³ow + + + Smo³y + + + Sorokin + + + Stacura + + + Stepczyn + + + Styczyñski + + + Syku³a + + + Tarnawski + + + Tatarczuk + + + Timczuk + + + Andrzejczuk + + + Bojczenko + + + Boldeskul + + + Bondarew + + + Borisow + + + Bricz + + + Bronsztein + + + Buriak + + + Buturin + + + Bialo + + + Walentinow + + + Andruszczenko + + + Wasiliew + + + Wese³ow + + + Winogradow + + + Wownienko + + + Wolañczuk + + + Wo³odar + + + Wo³oszyn + + + Woroñcow + + + Worochajew + + + Wiuszyñski + + + Anisiew + + + Ga³kin + + + Gandziuk + + + Garkowienko + + + Garkusza + + + Georgow + + + Glebowski + + + Gnatiuk + + + Gonczarenko + + + Gordienko + + + Gorlewój + + + Ardaszew + + + Gorochin + + + Goriunow + + + Grebenko + + + Gricajenko + + + Gricaj + + + Gricenkow + + + Griszachew + + + Gryszczuk + + + Gubar + + + Gunko + + + Babicz + + + Gurewicz + + + Denisenko + + + Dowgaliuk + + + Dombrik + + + Docenko + + + Drozdusz + + + Dubeñczuk + + + Dudorow + + + Duka + + + Dumko + + + Balan + + + Dunajew + + + Dyk³ow + + + Erofejew + + + Efremow + + + ¯abenko + + + ¯mijew + + + ¯urakowski + + + Zabiagoda + + + Zagorodniuk + + + Zamoseñczuk + + + Baranow + + + Zarubin + + + Zacharin + + + Zwonnicki + + + Zinowiew + + + Zozo + + + Zo³otar + + + Zubarew + + + ¯ubkow + + + Iwanow + + + Ignatenko + + + Baranowski + + + I¿enko + + + Iszczuk + + + Kazakow + + + Kazañcew + + + Kandybabko + + + Kapuka + + + Kapustianko + + + Kac + + + Kikabidze + + + Gacula + + + Abdurachmanow + + + Altynnik + + + Barsak + + + Kirejew + + + Szczerbin + + + Kowalczuk + + + Kojew + + + Koz³ow + + + Ko³ontarew + + + Ko³ontar + + + Kondratenko + + + Korkin + + + Kornejew + + + Baul + + + Krawczenko + + + Kriwda + + + Krzywochacki + + + KuŸniecow + + + Kuzmich + + + Kuziakin + + + Kulczycki + + + Kuncew + + + Kurwic + + + Kuczeruk + + + Baszakow + + + Kusznarew + + + Chaladze + + + £awrik + + + £awrow + + + Liwszyc + + + Lisiczañski + + + Litwin + + + Limarenko + + + Mazepa + + + Makarenko + + + Baszmakow + + + Ma³cew + + + Mamajew + + + Merz³ajew + + + Milczenko + + + Mironiuk + + + Mohrer + + + Kryga + + + Mostowoj + + + Muntian + + + Muchamedow + + + Beszewli + + + Miskow + + + Nawrocki + + + Nepricki + + + Nikanorov + + + Nikeszyn + + + Nikulin + + + Fucin + + + Nordiew + + + Nosan + + + Opolew + + + Binojew + + + Orlewicz + + + Or³ow + + + Petkiewicz + + + Petrenko + + + Petrow + + + P³ochenko + + + Podjaczew + + + Polianin + + + Pop³awski + + + Popow + + + Blinow + + + Portnich + + + Praso³ow + + + Prokopenko + + + Proskurin + + + Procenko + + + Prudow + + + Pustowar + + + Puczek + + + Rabinowicz + + + Radkiewicz + + + Bobrow + + + Rezun + + + Rogoza + + + Rodniañski + + + Rotan + + + Rublew + + + Rudik + + + Rusanow + + + Rychagirski + + + Sawczenko + + + Sawczuk + + + Bogdanow + + + Sagitow + + + Swiridow + + + Sedych + + + Sereda + + + Sidorenko + + + Sidorov + + + Sinij + + + Sinicyn + + + Skamejka + + + S³ucki + + + Bojko + + + Sme³ow + + + Smo³y + + + Sorokin + + + Stacura + + + Stepczyn + + + Styczyñski + + + Syku³a + + + Tarnawski + + + Tatarczuk + + + Timczuk + + + Andrzejczuk + + + Bojczenko + + + Boldeskul + + + Bondarew + + + Borisow + + + Bricz + + + Bronsztein + + + Buriak + + + Buturin + + + Bialo + + + Walentinow + + + Andruszczenko + + + Wasiliew + + + Wese³ow + + + Winogradow + + + Wownienko + + + Wolañczuk + + + Wo³odar + + + Wo³oszyn + + + Woroñcow + + + Worochajew + + + Wiuszyñski + + + Anisiew + + + Ga³kin + + + Ganziuk + + + Garkowienko + + + Garkusza + + + Georgow + + + Glebowski + + + Gnatiuk + + + Gonczarenko + + + Gordienko + + + Gorlewoj + + + Ardaszew + + + Gorochin + + + Goriunow + + + Grebenko + + + Gricajenko + + + Gricaj + + + Gricenko + + + Griszaczew + + + Griszczuk + + + Gubar + + + Gunko + + + Babicz + + + Gurewicz + + + Denisenko + + + Dowgaliuk + + + Dombrik + + + Docenko + + + Drozdusz + + + Dubieñczuk + + + Dudorow + + + Duka + + + Dumko + + + Balan + + + Dunajew + + + Dyk³ow + + + Erofejew + + + Efremow + + + ¯abenko + + + ¯mijew + + + ¯urakowski + + + Zabiagoda + + + Zagoro + + + Zamoseñczuk + + + Baranow + + + Zarubin + + + Zacharin + + + Zwonnicki + + + Zinowiew + + + Zozo + + + Zolotar + + + Zubarew + + + Zubkow + + + Iwanow + + + Ignatenko + + + Baranowski + + + I¿enko + + + Iszczuk + + + Kazakow + + + Kazañcew + + + Kandybabko + + + Kapuka + + + Kapustianko + + + Kac + + + Kikabidze + + + Gacula + + + Abdurachmanow + + + Altynnik + + + Barsak + + + Kirejew + + + Szczerbin + + + Kowalczuk + + + Kojew + + + Koz³ow + + + Ko³ontarew + + + Ko³ontar + + + Kondratenko + + + Korkin + + + Kornejew + + + Baul + + + Krawczenko + + + Kriwda + + + Krzywochacki + + + KuŸniecow + + + KuŸmicz + + + Kuziakin + + + Kulczycki + + + Kuncew + + + Kurwic + + + Kuczeruk + + + Baszakow + + + Kusznarew + + + Cha³adze + + + £awrik + + + £awrow + + + Liwszyc + + + Lisiczañski + + + Litwin + + + Limarenko + + + Mazepa + + + Makarenko + + + Baszmakow + + + Malcew + + + Mamajew + + + Merz³ajew + + + Milczenko + + + Mironiuk + + + Mohrer + + + Kryga + + + Mostowój + + + Muntian + + + Muchamedow + + + Beszewli + + + Myskow + + + Nawrocki + + + Nepricki + + + Nikanorow + + + Nikeszyn + + + Nikulin + + + Fucin + + + Nordiew + + + Nosan + + + Opolew + + + Binojew + + + Orlewicz + + + Or³ow + + + Petkiewicz + + + Petrenko + + + Petrow + + + P³ochenko + + + Podiaczew + + + Polianin + + + Pop³awski + + + Popow + + + Blinow + + + Portnych + + + Praso³ow + + + Prokopenko + + + Proskurin + + + Procenko + + + Prudow + + + Pustowar + + + Puczek + + + Rabinowicz + + + Radkiewicz + + + Bobrow + + + Rezun + + + Rogoza + + + Rodniañski + + + Rotan + + + Rublew + + + Rudik + + + Rusanow + + + Ryczagirski + + + Sawczenko + + + Sawczuk + + + Bogdanow + + + Sagitow + + + Swiridow + + + Sedych + + + Sereda + + + Sidorenko + + + Sidorow + + + Sinij + + + Sinicyn + + + Skamejka + + + S³ucki + + + Bojko + + + Sme³ow + + + Smo³y + + + Sorokin + + + Stacura + + + Stepczyn + + + Styczyñski + + + Syku³a + + + Tarnawski + + + Tatarczuk + + + Timczuk + + + Andrzejczuk + + + Bojczenko + + + Boldeskul + + + Bondarew + + + Borisow + + + Bricz + + + Bronsztein + + + Buriak + + + Buturin + + + Bialo + + + Walentinow + + + Andruszczenko + + + Wasiliew + + + Wese³ow + + + Winogradow + + + Wownienko + + + Wolañczuk + + + Wo³odar + + + Wo³oszyn + + + Woroñcow + + + Worochajew + + + Wiuszyñski + + + Anisiew + + + Ga³kin + + + Gandziuk + + + Garkowienko + + + Garkusza + + + Georgow + + + Glebowski + + + Gnatiuk + + + Gonczarenko + + + Gordienko + + + Gorlewoj + + + Ardaszew + + + Gorochin + + + Goriunow + + + Grebenko + + + Gricajenko + + + Gricaj + + + Gricenkow + + + Griszachew + + + Gryszczuk + + + Gubar + + + Gunko + + + Babicz + + + Gurewicz + + + Denisenko + + + Dowgaliuk + + + Dombrik + + + Docenko + + + Drozdusz + + + Dubeñczuk + + + Dudorow + + + Duka + + + Dumko + + + Balan + + + Dunajew + + + Dyk³ow + + + Erofejew + + + Efremow + + + ¯abenko + + + ¯mijew + + + ¯urakowski + + + Zabiagoda + + + Zagorodniuk + + + Zamosenczuk + + + Baranow + + + Zarubin + + + Zacharin + + + Zwonnicki + + + Zinowiew + + + Zozo + + + Zo³otar + + + Zubarew + + + ¯ubkow + + + Iwanow + + + Ignatenko + + + Baranowski + + + I¿enko + + + Iszczuk + + + Kazakow + + + Kazañcew + + + Kandybabko + + + Kapuka + + + Kapustianko + + + Kac + + + Kikabidze + + + Gacula + + + Sinajew + + + Feigelman + + + Ledeñcow + + + Alferow + + + Antipin + + + Blinow + + + Bogomo³ow + + + Wasiliewicz + + + Geszkenbein + + + Diakonow + + + Erochin + + + Zajkin + + + Zacharow + + + Iwczenko + + + Kabanow + + + Larin + + + Manko + + + Mironow + + + Stepanenko + + + Oganesian + + + Czernodub + + + Szy³ow + + + Czyrykow + + + Beliawin + + + Fadejew + + + Stek³ow + + + Andrejew + + + Spirin + + + Balicki + + + Abdurachmanow + + + Altynnik + + + Barsak + + + Kirejew + + + Szczerbin + + + Kowalczuk + + + Kojew + + + Koz³ow + + + Ko³ontarew + + + Ko³ontar + + + Kondratenko + + + Korkin + + + Korniejew + + + Baul + + + Krawczenko + + + Kriwda + + + Krzywochacki + + + KuŸniecow + + + KuŸmicz + + + Kuziakin + + + Kulczycki + + + Kuncew + + + Kurwic + + + Kuczeruk + + + Baszakow + + + Kusznarew + + + Cha³adze + + + £awrik + + + £awrow + + + Liwszyc + + + Lisiczañski + + + Litwin + + + Limarenko + + + Mazepa + + + Makarenko + + + Baszmakow + + + Malcew + + + Mamajew + + + Merz³ajew + + + Milczenko + + + Mironiuk + + + Mohrer + + + Kryga + + + Mostowój + + + Muntian + + + Muchamedow + + + Beszewli + + + Myskow + + + Nawrocki + + + Nepricki + + + Nikanorow + + + Nikeszyn + + + Nikulin + + + Fucin + + + Nordiew + + + Nosan + + + Opolew + + + Binojew + + + Orlewicz + + + Or³ow + + + Petkiewicz + + + Petrenko + + + Petrow + + + P³ochenko + + + Podiaczew + + + Polianin + + + Pop³awski + + + Popow + + + Blinow + + + Portnych + + + Praso³ow + + + Prokopenko + + + Proskurin + + + Procenko + + + Prudow + + + Pustowar + + + Puczek + + + Rabinowicz + + + Radkiewicz + + + Bobrow + + + Rezun + + + Rogoza + + + Rodniañski + + + Rotan + + + Rublew + + + Rudik + + + Rusanow + + + Ryczagirski + + + Sawczenko + + + Sawczuk + + + Bogdanow + + + Sagitow + + + Swiridow + + + Sedych + + + Sereda + + + Sidorenko + + + Sidorow + + + Sinij + + + Sinicyn + + + Skamejka + + + S³ucki + + + Bojko + + + Sme³ow + + + Smo³y + + + Sorokin + + + Stacura + + + Stepczyn + + + Styczyñski + + + Syku³a + + + Tarnawski + + + Tatarczuk + + + Timczuk + + + Andrzejczuk + + + Bojczenko + + + Boldeskul + + + Bondarew + + + Borisow + + + Bricz + + + Bronsztein + + + Buriak + + + Buturin + + + Bialo + + + Walentinow + + + Andruszczenko + + + Wasiliew + + + Wese³ow + + + Winogradow + + + Wownienko + + + Wolañczuk + + + Wo³odar + + + Wo³oszyn + + + Woroñcow + + + Worochajew + + + Wiuszyñski + + + Anisiew + + + Ga³kin + + + Gandziuk + + + Garkowienko + + + Garkusza + + + Georgow + + + Glebowski + + + Gnatiuk + + + Gonczarenko + + + Gordienko + + + Gorlewój + + + Ardaszew + + + Gorochin + + + Goriunow + + + Grebenko + + + Gricajenko + + + Gricaj + + + Gricenkow + + + Griszachew + + + Gryszczuk + + + Gubar + + + Gunko + + + Babicz + + + Gurewicz + + + Denisenko + + + Dowgaliuk + + + Dombrik + + + Docenko + + + Drozdusz + + + Dubeñczuk + + + Dudorow + + + Duka + + + Dumko + + + Balan + + + Dunajew + + + Dyk³ow + + + Erofejew + + + Efremow + + + ¯abenko + + + ¯mijew + + + ¯urakowski + + + Zabiagoda + + + Zagorodniuk + + + Zamosenczuk + + + Baranow + + + Zarubin + + + Zacharin + + + Zwonnicki + + + Zinowiew + + + Zozo + + + Zo³otar + + + Zubarew + + + ¯ubkow + + + Iwanow + + + Ignatenko + + + Baranowski + + + I¿enko + + + Iszczuk + + + Kazakow + + + Kazañcew + + + Kandybabko + + + Kapuka + + + Kapustianko + + + Kac + + + Kikabidze + + + Gacu³a + + + Bia³y + + + Zielony + + + Nieœmiertelny + + + Rdzawy + + + Romantyk + + + Okrutnik + + + Miêœniak + + + Bajarz + + + Œlepy + + + Dzielny + + + Smark + + + Dyskutant + + + Wyga + + + Berserker + + + Fircyk + + + Kasa + + + Posêpny + + + Zgarbiony + + + Suchy + + + Cholerny Szczêœciarz + + + Plama + + + Gruby + + + Brzuchol + + + Truposz + + + Z³amany + + + M¹drala + + + Siekacz + + + Uszatek + + + Mim + + + B³azen + + + Kulawy + + + Twardy + + + Koœæ + + + Cynik + + + Ziomal + + + Beztroski + + + Maruda + + + Czujny + + + Koneser + + + ¯wawy + + + Abiturient + + + Aborygen + + + Lotnik + + + Agent + + + Giermek + + + Pijawka + + + Koleœ + + + Aposto³ + + + Artysta + + + Asceta + + + Kanciarz + + + Bankier + + + Bard + + + Baron + + + Kramarz + + + Orygina³ + + + Biegacz + + + Atleta + + + Wojak + + + Kloszard + + + Bosman + + + Pigmej + + + Burbon + + + Bur¿uj + + + Biurokrata + + + Wandal + + + Barbarzyñca + + + Sprz¹tacz + + + Gryps + + + WiedŸmin + + + Goœæ + + + Wiking + + + Szofer + + + Nurek + + + Wódz + + + Z³odziej + + + Podró¿nik + + + Konowa³ + + + JeŸdziec + + + Krzykacz + + + Gangster + + + Geolog + + + Gladiator + + + Pos³aniec + + + Goœæ + + + Hrabia + + + Tragarz + + + Dziadek + + + Uciekinier + + + Akwizytor + + + Chart + + + Dandys + + + Zastêpca + + + Tyran + + + Dzikus + + + Dyplomata + + + Doktorek + + + Doktor + + + Profesor + + + Dusiciel + + + Jegier + + + ¯ul + + + Doradca + + + Flak + + + Znachor + + + Gracz + + + Indianin + + + Irokez + + + Kapitan + + + Oszust + + + Klaun + + + KniaŸ + + + Czerwony + + + Ogolony + + + Kozak + + + Kucharz + + + Czarownik + + + Komancz + + + Król + + + Ojciec Chrzestny + + + Kupiec + + + Palacz + + + Kurier + + + Trener + + + Weteran + + + Legionista + + + Uzdrowiciel + + + Leœnik + + + Lord + + + Magnat + + + Tandeta + + + Maniak + + + Marsjanin + + + Mason + + + Mechanik + + + Szycha + + + Grabarz + + + Moderator + + + Mleczarz + + + RzeŸnik + + + Najemnik + + + Stroiciel + + + Szef + + + Ninja + + + Operator + + + Rusznikarz + + + Farciarz + + + Padyszach + + + Kat + + + Polkan + + + Punk + + + Tatuœ + + + Partyzant + + + Pastor + + + Pasterz + + + Starszy + + + Oracz + + + Szczêœciarz + + + Pacyfista + + + Transporter + + + Gwizdek + + + Pilot + + + Pionier + + + Pirat + + + Cieœla + + + Podpalacz + + + Stra¿ak + + + Kapeæ + + + Tyka + + + Polarnik + + + Ambasador + + + Listonosz + + + Poeta + + + Ksi¹¿ê + + + Prorok + + + Profesor + + + Skoczek + + + Pszczelarz + + + Wó³ roboczy + + + Lojalny + + + Rabin + + + Iskra + + + Rozbójnik + + + Rasta + + + Jegier + + + Rockman + + + Górnik + + + Samuraj + + + Saper + + + Ordynans + + + Wy³upiasty + + + Kap³an + + + Sekretarz + + + ¯igolak + + + Przekrêt + + + Scyta + + + Zwiadowca + + + Œlusarz + + + Kamikaze + + + Hodowca + + + Ratownik + + + G³az + + + Sportowiec + + + Nieznajomy + + + Student + + + Sêdzia + + + Muchomor + + + Alfons + + + Liczykrupa + + + Czo³gista + + + Tancerz + + + Tyran + + + Zgni³ek + + + Kramarz + + + Wymiatacz + + + Zamiatacz + + + Aborygen + + + Turysta + + + Cyngiel + + + Puzon + + + Rozgrywaj¹cy + + + Snajper + + + Chemik + + + Rdza + + + Gadu³a + + + Pasztecik + + + Malarz + + + Pastuch + + + Szaman + + + Sztygar + + + Górnik + + + Szeryf + + + Wódz + + + Uczony + + + Taksiarz + + + Humbak + + + Szpicel + + + Elektryk + + + Kadet + + + Poganin + + + Aligator + + + Anakonda + + + Pawian + + + ¯ubr + + + Bóbr + + + Modliszka + + + Dumny + + + Buldog + + + Burunduk + + + Wó³ + + + Dzika œwinia + + + Wróbel + + + Kruk + + + Pi¿mak + + + Skrzyp + + + Œmieciarz + + + Gawron + + + Gorzki + + + Manul + + + G¹sior + + + Delfin + + + Dinozaur + + + Drozd + + + Dziêcio³ + + + Je¿ + + + ¯uk + + + Zaj¹c + + + Bestia + + + Piorun + + + Czarownik + + + Tur + + + Indyk + + + Dzikus + + + Karaœ + + + Kanarek + + + Pluskwa + + + Kobra + + + Komar + + + Ogier + + + Oprych + + + Kot + + + Krokodyl + + + Pasikonik + + + Szpicel + + + £oœ + + + Mamut + + + S³oñ + + + Zarazek + + + Komar + + + Mrówka + + + Dryblas + + + Giez + + + Paj¹k + + + Szczur + + + Pielgrzym + + + Pirania + + + Pyton + + + Zaj¹c + + + Sowa + + + Sokó³ + + + Œwistak + + + Miêczak + + + Suse³ + + + P³otka + + + Karaluch + + + Tarantula + + + Chomik + + + Boa + + + Sowa + + + Fretka + + + Robak + + + Sztygar + + + Leszcz + + + Absolut + + + Anomalia + + + Zderzak + + + Bochenek + + + Zbity + + + Rozwa³ka + + + Bolid + + + Œruba + + + Brzytwa + + + Bêbenek + + + Grzêda + + + P¹czek + + + Pró¿nia + + + Œmieæ + + + Kamyk + + + Wentylator + + + Œmig³owiec + + + Wicher + + + Wkrêt + + + Obro¿a + + + GwóŸdŸ + + + Rudy + + + Kijanka + + + Nabój + + + Glob + + + G³az + + + Granat + + + Mg³a + + + Trumna + + + Dacznik + + + Silnik + + + Dynamit + + + Dziurawy + + + Niezdara + + + Adwokat + + + Zamek + + + Kaleson + + + Izotop + + + Ska³a + + + Pu³apka + + + Czarodziej + + + Karma + + + Ceg³a + + + Klej + + + Wredniak + + + Klucz + + + Bat + + + Atut + + + Czapka + + + Drwal + + + Koniak + + + Korzeñ + + + Kosa + + + Kosmos + + + £opata + + + Œciera + + + Skrêt + + + Krzy¿ + + + Smo³a + + + Cyngiel + + + Skarpeta + + + £om + + + Maszyna + + + Cel + + + Silnik + + + Pompa + + + ¯elazny + + + Nocny + + + Strzelba + + + Panadol + + + Spadochron + + + Nabój + + + Pi¹tka + + + No¿yk + + + T³ok + + + Kit + + + Proch + + + Elektronik + + + Grosik + + + Rakieta + + + Rama + + + Reaktor + + + Tasak + + + Sito + + + Reszka + + + Robot + + + Jeleñ + + + Szpadel + + + W + + + Samogon + + + But + + + Jabol + + + Œmieræ + + + Spiryt + + + D³uto + + + Beczka + + + Skrzynia + + + Topór + + + Ty³ek + + + Szybki + + + Ostrza³ka + + + As + + + Wêze³ + + + Czynnik + + + Lampa + + + Czekan + + + Czerwiec + + + Czosnek + + + Kuk³a + + + Szansa + + + Gruby + + + Libero + + + Cierñ + + + Szafa + + + Podk³ad + + + P³otka + + + Wylot + + + Prêt + + + Æwiek + + + Wkrêt + + + Pch³a + + + Dusigrosz + + + Mózgowiec + + + Kie³ + + + Pazur + + + Koœæ + + + Piêœæ + + + Nerw + + + Szkielet + + + Ogon + + + Grzywa + + + Siniak + + + Siwy + + + Kutwa + + + Haker + + + Chan + + + Atleta + + + Pinokio + + + WiedŸmin + + + Voldemort + + + Homer + + + Smok + + + Piorun + + + Gioconda + + + Zezowaty + + + Tuman + + + Blaszak + + + Ikar + + + Casanova + + + Koœciej + + + Cezar + + + Kulebiak + + + Kutuzow + + + Malczik + + + Bonaparte + + + Myœliciel + + + Nelson + + + Neptun + + + Oskar + + + Prometeusz + + + Puszkin + + + Pi¹tek + + + Rambo + + + Roquefort + + + Przewodnik + + + Terminator + + + Palant + + + Tusz + + + Cezar + + + Czapajew + + + Czapaj + + + Czebur + + + Kiwaczek + + + Chingachgook + + + D¿yngis + + + Stirlitz + + + Banan + + + Jastrz¹b + + + Skrzat + + + Bochenek + + + Tata + + + Kolec + + + S¹siad + + + Bulkin + + + Buldo¿er + + + Bufor + + + Pyza + + + Wist + + + Szabla + + + Gangrena + + + Hybryda + + + Usterka + + + Bêbniarz + + + Góral + + + Stopieñ + + + Gremlin + + + Antylopa + + + Wujek + + + Pora¿ka + + + Zimny + + + Parias + + + Kagor + + + Kapusta + + + Karbid + + + Auszpik + + + Atut + + + Komandor + + + Król + + + Skrêt + + + Skarpeta + + + Demon + + + Lodowiec + + + Goblin + + + Maur + + + Madera + + + Spaghetti + + + Mistrz + + + Mutant + + + Zio³o + + + Pora¿ka + + + Sadzawka + + + Kaleka + + + Detektyw + + + Pieróg + + + Chili + + + Pasek + + + P¹czek + + + B¹bel + + + Pilnik + + + Rzep + + + Riazañski + + + Samogon + + + Kaleka + + + Smardz + + + Krakers + + + Tytoñ + + + Tabela + + + As + + + Cukinia + + + Upiór + + + Puzon + + + Widmo + + + Kaskader + + + Siwy + + + Kopacz + + + Œpi¹czka + + + Krzywy + + + £amaga + + + Grzbiet + + + Szuja + + + Têcza + + + Cwaniak + + + Krzak + + + Tupecik + + + Sinij + + + Lizus + + + Dziki + + + Malczik + + + Sztywniak + + + Martwiak + + + Tutejszy + + + Grób + + + Glut + + + Mistrz + + + Narcyz + + + Czarny + + + LuŸny + + + Oferma + + + Ciuma + + + Nicpoñ + + + P³aksa + + + Monokl + + + £obuz + + + Paso¿yt + + + Paranoja + + + Wa¿niak + + + Teflon + + + Szubrawiec + + + £ajdak + + + Nieboszczyk + + + Szlachetny + + + Prostak + + + Psychol + + + Wó³ roboczy + + + Zadra + + + £apacz + + + Szorstki + + diff --git a/gamedata/configs/text/pol/st_items_artefacts.xml b/gamedata/configs/text/pol/st_items_artefacts.xml new file mode 100644 index 0000000..2ffb9b2 --- /dev/null +++ b/gamedata/configs/text/pol/st_items_artefacts.xml @@ -0,0 +1,153 @@ + + + + Artefakt ten stanowi po³¹czenie kilku pustych w œrodku formacji organicznych. Emituje on gazow¹ substancjê, która neutralizuje radioaktywne cz¹steczki bez wyrz¹dzania szkód. Popyt na ten artefakt jest bardzo wysoki ze wzglêdu na jego efektywnoœæ. + + + B¹bel + + + Czerwonawa formacja sprasowanych i skamienia³ych roœlin, gleby i szcz¹tków zwierz¹t. Mo¿e czêœciowo neutralizowaæ chemiczne trucizny. Emituje promieniowanie. + + + Kamienna krew + + + Ten artefakt powstaje w strefach anomalii o wysokiej aktywnoœci termicznej. Aktywnie poch³ania ciep³o, pozostaj¹c zimnym w dotyku. Emituje promieniowanie. + + + Ten artefakt jest z³o¿ony z podobnego do granitu kamienia poddanego dzia³aniu olbrzymiej si³y grawitacyjnej, co spowodowa³o powstanie formacji krystalicznej, której nauka w chwili obecnej nie jest w stanie zrozumieæ. Zapewnia œredni¹ ochronê przed emisjami psionicznymi. Emituje promieniowanie. + + + Kamienny kwiat + + + Kryszta³ + + + W sk³ad tego artefaktu wchodz¹ elementy elektrostatyczne, ale naukowcy nie odkryli jeszcze, jakie warunki s¹ niezbêdne dla jego powstania. Jest on popularny w Zonie - zarówno jej mieszkañcy, jak i goœcie ceni¹ jego w³aœciwoœci energetyzuj¹ce. U¿ywany zbyt d³ugo mo¿e doprowadziæ do wycieñczenia organizmu. Emituje promieniowanie. + + + Bateria + + + Artefakt ten by³ uwa¿any za odpad pozbawiony u¿ytecznych w³aœciwoœci. Jednak niedawno naukowcy odkryli, ¿e jeœli ma sta³y kontakt z cia³em, silnie stymuluje uk³ad nerwowy. Emituje promieniowanie. + + + Muszla + + + Wiele z w³aœciwoœci tego artefaktu pozostaje tajemnic¹ dla naukowców. Wiadomo jednak, ¿e emisje wywo³ywane przez drgania w jego grubszej czêœci powoduj¹, ¿e krew w otwartych ranach krzepnie szybciej, tworz¹c ochronny strup. Jednym z najbardziej widocznych skutków dzia³ania tego artefaktu jest zwiêkszona szybkoœæ gojenia siê ran. Emituje promieniowanie. + + + Korale mamy + + + Ten elektrostatyczny artefakt jest potê¿nym poch³aniaczem elektrycznoœci, któr¹ nastêpnie roz³adowuje. B³ysk mo¿e chroniæ posiadacza przed pora¿eniem pr¹dem o napiêciu do 5000 woltów. Emituje promieniowanie. + + + B³ysk + + + Ten unikalny artefakt elektrostatyczny rezonuje pod wp³ywem fal psionicznych. Stalkerzy potrafi¹ wyregulowaæ go w ten sposób, ¿e rezonans zachodzi w fazie przeciwnej do g³ównego Ÿród³a emisji, znacz¹co os³abiaj¹c efekty jej dzia³ania. Emituje promieniowanie. + + + Blask ksiê¿yca + + + Ten jasno œwiec¹cy przedstawiciel rodziny artefaktów elektrostatycznych mo¿e ³agodziæ fluktuacje gêstoœci pola elektrycznego. Emituje promieniowanie. + + + Œwiecide³ko + + + Ten przypominaj¹cy ludzkie oko artefakt znacz¹co przyspiesza metabolizm w³aœciciela, dziêki czemu rany goj¹ siê szybciej. Doœwiadczeni stalkerzy twierdz¹ tak¿e, ¿e Oko przynosi szczêœcie. Emituje promieniowanie. + + + Oko + + + Ten artefakt powstaje w obszarach wysokiej aktywnoœci termicznej. Wytwarza on potê¿ne emisje podczerwieni, które wzmacniaj¹ procesy metaboliczne, lecz¹c rany na oczach u¿ytkownika. Poniewa¿ jest on bardzo rzadki, cechuje siê wysok¹ wartoœci¹. Emituje promieniowanie. + + + P³omieñ + + + Chocia¿ Kula ognista jest artefaktem termicznym, mo¿na siê nim pos³ugiwaæ bez obawy o poparzenie. Jest on ceniony za zdolnoœæ utrzymywania na niewielkim obszarze sta³ej temperatury 24 stopni Celsjusza, bez wzglêdu na warunki panuj¹ce dooko³a. Emituje promieniowanie. + + + Kula ognista + + + Kulebiak to stosunkowo rzadki artefakt, powstaj¹cy w miejscach silnie ska¿onych chemicznie. Jest on ceniony ze wzglêdu na mo¿liwoœæ leczenia dowolnych ran w ci¹gu sekund. Z nieznanych powodów naukowcy rozprzestrzeniaj¹ wœród stalkerów pog³oski, jakoby modyfikowa³ kod genetyczny w³aœciciela. Emituje promieniowanie. + + + Kulebiak + + + Œwietlik + + + Artefakt powsta³y w wyniku interakcji du¿ej liczby pól grawitacyjnych. Artefakt ten wytwarza w³asne silne kierunkowe pole grawitacyjne, które sprawia, ¿e przedmioty w jego zasiêgu prawie nic nie wa¿¹. Poniewa¿ zmniejsza wagê niesionego ekwipunku, jest bardzo poszukiwany przez stalkerów. Emituje promieniowanie. + + + Z³ota rybka + + + Grawi powstaje z metalicznych substancji wystawionych na d³ugotrwa³e dzia³anie grawitacji. Dziêki temu wytwarza pole antygrawitacyjne, którego wielu stalkerów u¿ywa w celu zmniejszenia wagi swojego ekwipunku. Emituje promieniowanie. + + + Grawi + + + Na pierwszy rzut oka artefakt ten przypomina Kulebiaka. Niektórzy uwa¿aj¹, ¿e jest to Kulebiak, którego w³aœciwoœci zosta³y wzmocnione poprzez wystawienie na dzia³anie potê¿nego pola elektrycznego. Dziêki swoim unikalnym w³aœciwoœciom mo¿e on znacz¹co zwiêkszyæ napiêcie miêœniowe posiadacza. Emituje promieniowanie. + + + Œnie¿ynka + + + Ten artefakt grawitacyjny przyci¹ga i poch³ania radioaktywne cz¹stki, zmniejszaj¹c wp³yw promieniowania na organizm. Bardzo popularny w Zonie, jest tak¿e nieoficjalnie u¿ywany poza ni¹ do leczenia ostrej choroby popromiennej w szczególnych przypadkach. + + + Meduza + + + Ten organiczny artefakt sk³ada siê ze zdeformowanej, zmutowanej tkanki zwierzêcej. Po umieszczeniu w ska¿onym chemicznie miejscu zmienia unosz¹ce siê w powietrzu chemikalia w œluzowaty p³yn. Emituje promieniowanie. + + + Kotlet + + + Ten œwiec¹cy artefakt mo¿e tworzyæ miejscowe, kierunkowe pole niskiej grawitacji. Umieszczony w pobli¿u plecaka zmniejsza jego wagê. Powszechnie u¿ywany przez stalkerów, razem z podobnym artefaktem o nazwie Grawi, do zwiêkszania maksymalnego ³adunku. Emituje promieniowanie. + + + Gwiazda wieczorna + + + Unikalny artefakt organiczny o równie unikalnych w³aœciwoœciach. W jakiœ sposób zwiêksza stopieñ regeneracji wszystkich rodzajów obra¿eñ, nie przyspieszaj¹c jednoczeœnie odk³adania siê substancji toksycznych. Z powodu jego dzia³ania i atrakcyjnego wygl¹du jest poszukiwany przez kolekcjonerów. Emituje promieniowanie. + + + Dusza + + + Ten artefakt o dziwacznym kszta³cie pojawia siê w miejscach o zwiêkszonej aktywnoœci grawitacyjnej. Zachowuje siê jak g¹bka wch³aniaj¹ca promieniowanie. Dziêki temu artefakt zapewnia skuteczn¹ ochronê zarówno przed promieniowaniem z zewn¹trz, jak i przed radioaktywnymi cz¹stkami, które ju¿ znalaz³y siê w organizmie. + + + Skrêtak + + + Kompas + + + Rzadki artefakt - minê³o kilka lat od ostatniego razu, kiedy znaleziono jeden z nich. Pozwala on zlokalizowaæ przerwy w polach anomalii. Uwa¿a siê, ¿e pozwala on w³aœcicielowi na przebycie nawet najbardziej skomplikowanych pól anomalii bez szkody. Niewiele osób wie jednak, jak siê z nim prawid³owo obchodziæ. + + + Serce Oazy + + + Artefakt ten zosta³ znaleziony w samym sercu legendarnej Oazy. Wydaje siê, ¿e serce to skrystalizowana roœlina, która naby³a leczniczych w³aœciwoœci Oazy. W odró¿nieniu od niej, artefakt ten jest silnie radioaktywny. + + + Œwietlik oddzia³uje z polami nieznanym nauce, znacz¹co przyspieszaj¹c regeneracjê tkanek i organów u istot ¿ywych, stabilizuj¹c przy tym procesy metaboliczne. Artefakt ten pozwala ciê¿ko rannemu stalkerowi wyzdrowieæ w ci¹gu dos³ownie kilku sekund. Niestety, Œwietlik jest bardzo rzadkim znaleziskiem. Emituje promieniowanie. + + diff --git a/gamedata/configs/text/pol/st_items_equipment.xml b/gamedata/configs/text/pol/st_items_equipment.xml new file mode 100644 index 0000000..622794d --- /dev/null +++ b/gamedata/configs/text/pol/st_items_equipment.xml @@ -0,0 +1,156 @@ + + + + Leki przeciwpromienne + + + Oparte na meksaminie leki przeciwpromienne s¹ czêsto spotykane w Zonie. Po u¿yciu lekarstwo powoduje skurcz obwodowych naczyñ krwionoœnych i deprywacjê tlenow¹, co pozwala na leczenie i ochronê przed promieniowaniem. Nie ma ono silnych skutków ubocznych, ale wiadomo o odosobnionych przypadkach lekkich nudnoœci, zawrotów g³owy, skurczy i bólu brzucha. + + + Banda¿ + + + Normalny banda¿ elastyczny s³u¿¹cy do tamowania krwawienia i ochrony przed zaka¿eniem ran. W przypadku zwyk³ego krwawienia, banda¿ nale¿y na³o¿yæ bezpoœrednio na ranê. Aby powstrzymaæ krwawienie têtnicze, nale¿y szybko obwi¹zaæ banda¿ dooko³a rany. + + + Standardowa wojskowa lornetka o maksymalnym powiêkszeniu wynosz¹cym 7,5x. Jej u¿ytecznoœæ w Zonie wynika z faktu, ¿e pozwala w³aœcicielowi obserwowaæ wydarzenia z dystansu. + + + Lornetka + + + Chleb + + + W Zonie nigdy nie stwierdzono obecnoœci piekarzy, ale ten bochenek chleba nie jest ska¿ony ani radioaktywny. Wprost przeciwnie, wygl¹da na œwie¿y i smakowity. Przynajmniej na razie nie pojawi³y siê ¿adne za¿alenia. + + + Konserwa „Œniadanie Turysty" + + + Przypuszczalnie ta konserwa zosta³a zrabowana przez stalkerów z wojskowego sk³adu racji ¿ywnoœciowych. Ciê¿ko byæ pewnym, poniewa¿ na puszce brakuje etykiety. Niemniej jednak powinna nadal nadawaæ siê do zjedzenia, oczywiœcie jeœli wierzyæ podanej dacie przydatnoœci do spo¿ycia. + + + Detektor Echo + + + Ten przestarza³y detektor anomalii emituje sygna³ ostrzegawczy, kiedy nienormalne cz¹steczki dostan¹ siê do specjalnej komory podczas zbli¿ania siê do zjawiska. Mo¿e on tak¿e wykrywaæ obecnoœæ artefaktów i mierzyæ odleg³oœæ do najbli¿szego z nich. WskaŸnikiem dystansu jest czêstotliwoœæ dŸwiêku emitowanego przez detektor. Aby przejœæ w tryb wykrywania artefaktów, nale¿y otworzyæ przedni¹ pokrywê urz¹dzenia. Ze wzglêdu na prost¹ budowê, Echo mo¿e wykrywaæ tylko najbardziej rozpowszechnione rodzaje artefaktów. + + + Detektor NiedŸwiedŸ + + + Detektor Weles + + + Naukowy detektor nowej generacji. Dziêki trzem zmodernizowanym komorom detekcyjnym, pozycja artefaktów pokazana jest na specjalnym ekranie. Zamkniête urz¹dzenie rejestruje tylko promieniowanie i anomalie. Aby prze³¹czyæ je na w tryb poszukiwania anomalii, nale¿y otworzyæ przedni wyœwietlacz LED. W trybie poszukiwania detektor jest zdolny do zlokalizowania wszystkich artefaktów znanych nauce. + + + Prototyp detektora Swaróg + + + Prototyp detektora anomalii o rozszerzonej funkcjonalnoœci. Urz¹dzenie to posiada program, którego celem jest identyfikacja statycznych obszarów aktywnoœci anomalii, przechowywanych w jego bazie danych, przy zachowaniu mo¿liwoœci lokalizowania artefaktów. Pozycja anomalii jest wyœwietlana na specjalnym ekranie. Tryb poszukiwania artefaktów, który mo¿na aktywowaæ otwieraj¹c przedni wyœwietlacz LED, zosta³ zmodyfikowany tak, aby móg³ wykrywaæ tak¿e anomalie nieznane nauce. + + + Standardowa latarka zamontowana na he³mie. Jest ona u¿yteczna dla stalkerów, którzy poruszaj¹ siê po zmroku, ale niew³aœciwie u¿yta mo¿e przyci¹gn¹æ niechcian¹ uwagê. + + + Latarka + + + Antybiotyk + + + Antidotum + + + Antytoksyna IP2 to z³o¿one lekarstwo, w sk³ad którego wchodz¹ ró¿ne rodzaje antidotów, w tym metoklopramid, tiamina, ryboksyna i inne substancje. Lek wprowadza do krwiobiegu szereg antybiotyków, których zadaniem jest neutralizacja naturalnych trucizn, a tak¿e poch³aniacze trucizn syntetycznych. IP2 nie jest szczególnie popularne w Zonie, poniewa¿ wiêkszoœæ stalkerów woli polegaæ na masce przeciwgazowej i kombinezonie ochronnym. S¹ jednak tacy, którzy przechowuj¹ ukryte opakowanie tego antidotum. Efekty dzia³ania tego lekarstwa s¹ d³ugotrwa³e. + + + Herkules + + + Barwinek + + + Ukraiñskie Wikasolum - sztuczny odpowiednik witaminy K. G³ównym zdaniem tego lekarstwa jest zwiêkszanie tempa krzepniêcia krwi. Jest bardzo poszukiwany przez stalkerów, którzy chc¹, aby wolno goj¹ce siê rany zadawane przez mutanty zasklepia³y siê szybciej. Efekty dzia³ania tego lekarstwa s¹ d³ugotrwa³e. + + + Bloker psioniczny + + + Lekarstwo, które blokuje lawinowy nat³ok impulsów nerwowych. U¿ycie go wywo³uje krótkotrwa³¹ utratê wszelkich emocji. U¿ywane wy³¹cznie w Zonie w celu przeciwdzia³ania polom psionicznym obecnym w anomaliach. Efekty dzia³ania tego lekarstwa s¹ d³ugotrwa³e. + + + Radioprotektor + + + Napój energet. Stalker + + + Czêsto u¿ywany przez stalkerów wyruszaj¹cych na d³u¿sze wyprawy, w trakcie których nie mo¿na pozwoliæ sobie na odpoczynek. Napój zawiera ³atwostrawne wêglowodany, a tak¿e substancje powoduj¹ce wydzielanie adrenaliny do krwiobiegu. + + + Wierna gitara. + + + Gitara + + + Kie³basa dietetyczna + + + Na dobre i na z³e, ta kie³basa - mieszanka kurczaka i sojowego substytutu - czêsto stanowi œniadanie, obiad i kolacjê stalkera w jednym. Mo¿e byæ przechowywana przez d³ugi czas ze wzglêdu na wysok¹ zawartoœæ konserwantów. + + + Apteczka + + + Apteczka wojskowa + + + Specjalistyczny zestaw medyczny, zapewniaj¹cy pierwsz¹ pomoc rannym w walce. Zawiera on œrodki wspomagaj¹ce krzepniêcie krwi oparte na menadionie, antybiotyki i immunostymulanty, a tak¿e narzêdzia s³u¿¹ce do usuwania pocisków i od³amków z cia³a. Apteczka ta jest wydawana personelowi wojskowemu jako standardowe wyposa¿enie. Niekiedy jest tak¿e u¿ywana przez si³y Powinnoœci. + + + Jednorazowy zestaw medyczny ogólnego zastosowania. S³u¿y on do leczenia rozmaitych obra¿eñ - ran, st³uczeñ, zwyk³ych i chemicznych oparzeñ, a tak¿e ró¿nych typów trucizn. Ceniony przez stalkerów. + + + Apteczka naukowa + + + Zestaw medyczny zaprojektowany z myœl¹ o u¿yciu w Zonie. Zawiera on materia³y s³u¿¹ce do leczenia ran, a tak¿e do ochrony przed zatruciem promieniowaniem i redukcji stopnia napromieniowania organizmu. W odró¿nieniu od innych apteczek, zawiera wikasol, batilol i nafazolinê. + + + Brak danych w pamiêci. + + + PDA + + + Wódka „Kozak" + + + Produkt firmy GSC. Wchodzi bez zagryzki i znacznie zmniejsza skutki promieniowania. Nale¿y piæ j¹ z umiarem. + + + Ten detektor anomalii najnowszej generacji posiada tak¿e panel z kolorowymi diodami, który nie tylko wskazuje po³o¿enie artefaktów, ale tak¿e dystans dziel¹cy od nich u¿ytkownika. Aby przejœæ w tryb poszukiwania artefaktów, nale¿y otworzyæ przedni¹ pokrywê urz¹dzenia. Niestety zaprogramowana lista artefaktów jest raczej przestarza³a. + + + Eksperymentalny lek stworzony przez prof. Oziorskiego dla zespo³ów badawczych pracuj¹cych w Zonie. Jego g³ównym sk³adnikiem jest tetrodotoksyna, zwana potocznie „proszkiem zombi", powoduj¹ca ca³kowite wstrzymanie dzia³ania centralnego uk³adu nerwowego, co umo¿liwia prze¿ycie emisji bez os³ony. Lek nie by³ testowany klinicznie, dlatego te¿ jego skutecznoœæ i skutki uboczne pozostaj¹ nieznane. + + + Œruba + + + G³ówny sk³adnik tego œrodka to anaboliczny androgen, sztuczny steryd, którego sk³ad przypomina testosteron. Jest on czêsto u¿ywany przez stalkerów podczas d³u¿szych wypraw, aby zmniejszyæ zmêczenie miêœni. Znacz¹co zwiêksza udŸwig. Efekty dzia³ania tego lekarstwa s¹ d³ugotrwa³e. + + + Radioprotektor B190, znany te¿ pod nazw¹ indralina, wchodzi w sk³ad apteczek wydawanych personelowi elektrowni j¹drowych. Jest on u¿ywany w Zonie zamiast silnie toksycznego hydrochlorku cystaminy PC1, którego czêste u¿ycie mo¿e spowodowaæ œmieræ. Os³abia wp³yw promieniowania gamma na ¿yw¹ tkankê. Najlepiej przyj¹æ go przed wystawieniem na dzia³anie promieniowania, poniewa¿ efekty nie s¹ natychmiastowe. Efekty dzia³ania tego lekarstwa s¹ d³ugotrwa³e. + + + Harmonijka + + + Dla mi³oœników bluesa i stylistyki wiêziennej. + + diff --git a/gamedata/configs/text/pol/st_items_outfit.xml b/gamedata/configs/text/pol/st_items_outfit.xml new file mode 100644 index 0000000..def62b4 --- /dev/null +++ b/gamedata/configs/text/pol/st_items_outfit.xml @@ -0,0 +1,117 @@ + + + + Kamizelka kuloodporna CS-3a + + + Pancerz „Powinnoœci" PSZ-9d + + + PS5-M Uniwersalna ochrona + + + Egzoszkielet + + + Kombinezon pancerny Bu³at + + + Ten egzoszkielet zapewnia znakomit¹ ochronê przed pociskami i od³amkami, kosztem mobilnoœci. Nie chroni przed amunicj¹ przeciwpancern¹. + + + Egzoszkielet + + + Wojskowy kombinezon pancerny zaprojektowany do operacji szturmowych. Zapewnia znakomit¹ ochronê przed amunicj¹ FMJ i od³amkami bez ograniczenia mobilnoœci u¿ytkownika. Nie chroni przed amunicj¹ przeciwpancern¹. + + + Pancerz wojskowy + + + Zwyk³y, czarny skórzany p³aszcz. Nie ma specjalnych w³aœciwoœci poza tym, ¿e chroni w³aœciciela przed zimnem i zêbami œlepych psów. Pomimo, ¿e nie jest specjalnie wygodny, jest czêsto noszony przez bandytów w Zonie - z jednej strony pozwala im ukrywaæ siê w ciemnoœci, ale z drugiej mo¿e im chodziæ tylko o jego „zar¹bisty" wygl¹d. + + + Skórzany p³aszcz + + + Kombinezon SEVA + + + Kombinezon pancerny Berill-5M + + + He³m M12 Sfera + + + Pokryty tkanin¹ aluminiowo-tytanowy he³m wyposa¿ony w kieszenie na stalowe elementy pancerza i opancerzon¹ maskê. He³m M12 Sfera jest z regu³y u¿ywany w po³¹czeniu z kamizelk¹ kuloodporn¹ Specnazu PSZ. Jest on doœæ popularny w Zonie ze wzglêdu na swoj¹ maskê przeciwgazow¹ i wbudowany noktowizor pierwszej generacji, a tak¿e na fakt, ¿e zapewnia maksymaln¹ mo¿liw¹ ochronê g³owy. Posiada te¿ gniazda na urz¹dzenia elektroniczne. + + + Stalowy he³m + + + Skrajnie przestarza³y stalowy he³m wojskowy bez ¿adnych dodatków. Nie chroni przed anomaliami i promieniowaniem, ale mo¿e odbijaæ pociski. He³m ten nigdy nie by³ szczególnie popularny w Zonie, z wyj¹tkiem krótkich zbrojnych konfliktów miêdzy frakcjami. + + + He³m ekranuj¹cy + + + Lekki he³m z nieprzepuszczaj¹c¹ powietrza zas³on¹, którego zadaniem jest ochrona przed anomaliami. S¹dz¹c po konstrukcji, zosta³ on zbudowany przez ten sam Instytut Badañ Obronnych, co kombinezon SEVA. Najprawdopodobniej przeznaczony do u¿ytku w po³¹czeniu z kombinezonami wojskowymi do dzia³añ w warunkach podwy¿szonej aktywnoœci anomalii. + + + Maska przeciwgazowa + + + Zwyk³a maska przeciwgazowa zbudowana z plastiku i gumy. S³u¿y do odfiltrowywania powietrza z radioaktywnych cz¹stek i truj¹cych substancji. Jest u¿ywana zarówno przez nowicjuszy, jak i weteranów ze wzglêdu na swoj¹ funkcjonalnoœæ. Nie zapewnia ¿adnej ochrony fizycznej. + + + He³m taktyczny + + + Zachodni model he³mu taktycznego pozbawiony kamufla¿u. Nie wiadomo, w jaki sposób znalaz³ siê w Zonie. Jest zaprojektowany tak, aby zapewniæ dowódcy dru¿yny strategiczn¹ przewagê przy u¿yciu wielu wbudowanych skanerów i urz¹dzeñ do komunikacji satelitarnej, których ten konkretny egzemplarz nie posiada. Za to mo¿e siê poszczyciæ wielowarstwow¹ pow³ok¹ z kevlaru i opancerzon¹ konstrukcj¹, która ma za zadanie chroniæ elementy elektroniczne. Zawiera maskê przeciwgazow¹ i noktowizor pierwszej generacji. + + + Kombinezon Œwit + + + Kombinezon Stra¿nik wolnoœci + + + Ten lekki kombinezon stalkerski jest wytwarzany przez rzemieœlników Wolnoœci. Materia³ wykorzystywany w produkcji, jest nasycany specjalnym roztworem o nazwie „Horyzont”, który zosta³ opracowany przez tê frakcjê metod¹ prób i b³êdów w celu zwiêkszenia odpornoœci na anomalie. Podobnie jak kombinezon Œwit, posiada wbudowane opancerzenie i pojemniki na artefakty. + + + Kombinezon Powiew wolnoœci + + + Ta wersja kombinezonu „Powinnoœci” nadaje siê najlepiej dla stalkerów przyzwyczajonych do lekkich strojów. W odró¿nieniu od serii PSZ, zapewnia dobr¹ ochronê zarówno przed anomaliami, jak i przed pociskami z pistoletu. Kombinezonu tego nie mo¿na niestety uzupe³niæ o pojemnik na artefakty, ale mo¿e on za to byæ zmodyfikowany poprzez instalacjê systemu wsparcia bojowego. + + + Ten nowoczesny pancerz jest przeznaczony do przeprowadzania operacji szturmowych na obszarach o du¿ej liczbie anomalii. Sk³ada siê z wojskowego kombinezonu PSZ-12p, wbudowanego kompensatora i os³ony przed anomaliami. Pancerz zapewnia doskona³¹ ochronê przeciwko pociskom i od³amkom bez znacz¹cego ograniczenia mobilnoœci w³aœciciela. Nie zawiera pojemnika na artefakty. + + + Ten kombinezon, przeznaczony do przeprowadzania badañ w Zonie, ³¹czy modu³ oddechowy o zamkniêtym obiegu z zewnêtrznym pokryciem izolacyjnym, dziêki czemu zapewnia znakomit¹ ochronê przed anomaliami. Ze wzglêdu na nisk¹ odpornoœæ na uderzenia, nie zapewnia on dobrej ochrony przed pociskami i od³amkami. Posiada wbudowany pojemnik do transportu artefaktów. + + + Ten kombinezon stanowi œwietn¹ alternatywê dla ubrañ ochronnych wykonywanych przez samych stalkerów. Jego pancerz jest w stanie zatrzymaæ tylko pocisk z pistoletu, ale system ochrony przed anomaliami i promieniowaniem jest niezrównany. Ze wzglêdu na szerokie mo¿liwoœci modyfikacji i dwa wbudowane pojemniki na artefakty, u¿ywa go wielu doœwiadczonych stalkerów. + + + Ten kombinezon to tak naprawdê dostosowana do warunków panuj¹cych w Zonie wojskowa kamizelka kuloodporna PS5 z berylowym pokryciem. Zosta³ on zaprojektowany do stosowania na silnie radioaktywnych obszarach, ale jest nieskuteczny przeciwko anomaliom. Stalkerzy otrzymuj¹ te kombinezony od wojska w zamian za ³upy. Nie zawiera pojemnika na artefakty. + + + Ten samodzielnie wykonywany kombinezon stalkerski zrobiony jest z dwuwarstwowej, gumowanej tkaniny z pleksiglasowym podszyciem i wbudowan¹ kamizelk¹ kuloodporn¹. Mimo ¿e nie jest zdolny do zatrzymania nawet pocisku z pistoletu, jest popularny ze wzglêdu na nisk¹ cenê i mo¿liwoœci modyfikacji. Posiada wbudowane pojemniki na artefakty. + + + Ten kombinezon z wzmocnion¹ kamizelk¹ kuloodporn¹, wykonany przez rzemieœlników Wolnoœci, stanowi udany kompromis miêdzy ochron¹ przed pociskami i przed anomaliami. Posiada p³ytê pancern¹ i dziesiêæ warstw kevlaru, co wystarczy, aby zatrzymaæ pocisk z pistoletu. Kombinezon u¿ywa kosztownego preparatu Suweren w celu ochrony przed anomaliami. Zawiera pojemnik na artefakty. + + + Ten wczesny model kombinezonu Powinnoœci to kamizelka kuloodporna PSZ-9 zmodyfikowana do u¿ycia w Zonie. Mo¿e on powstrzymaæ pocisk z karabinu, ale tak wysoki stopieñ ochrony ma swoj¹ cenê - wagê, nieporêcznoœæ i niski stopieñ ochrony przed anomaliami. Kombinezonu nie mo¿na uzupe³niæ o pojemnik na artefakty, ale mo¿liwa jest instalacja systemu wsparcia bojowego. + + + Pancerz ten, niegdyœ u¿ywany jako standardowe wyposa¿enie oddzia³ów szturmowych Czystego Nieba, po wyeliminowaniu tej frakcji sta³ siê namacalnym dowodem tego, ¿e nawet doskona³e opancerzenie nie wystarczy do zapewnienia bezpieczeñstwa w Zonie. Jest on zdolny do zatrzymania pocisku z pistoletu, zapewniaj¹c przy tym dobr¹ ochronê przed anomaliami. Posiada wbudowany pojemnik na artefakty. + + + Eksperymentalny egzoszkielet wojskowy. Nigdy nie wszed³ do masowej produkcji ze wzglêdu na wysoki koszt i pewne wady konstrukcyjne. Mimo to jest bardzo poszukiwany, poniewa¿ przejmuje na siebie niesione przez u¿ytkownika obci¹¿enie. Dlatego ma³e partie s¹ nadal produkowane w podziemnych fabrykach poza Ukrain¹. Posiada wbudowany pojemnik na artefakty. + + + Kombinezon SEVA + + diff --git a/gamedata/configs/text/pol/st_items_quest.xml b/gamedata/configs/text/pol/st_items_quest.xml new file mode 100644 index 0000000..5bd4a6b --- /dev/null +++ b/gamedata/configs/text/pol/st_items_quest.xml @@ -0,0 +1,369 @@ + + + + Dokumenty z notatkami + + + Dokumenty mówi¹, ¿e zgodnie z rozkazem Departamentu 1, po zamkniêciu œluzy transportowej tunel Prypeæ 1 zosta³ wype³niony dwutlenkiem wêgla zmieszanym z jak¹œ substancj¹ chemiczn¹. Nastêpnie ca³emu personelowi nakazano nosiæ ochronne kombinezony z zamkniêtym obiegiem powietrza. + + + List dotycz¹cy dostaw obiektu 62 + + + „Ze wzglêdu na wystêpowanie aktywnoœci anomalnej, transport obiektu 62 przez otwarty teren jest niemo¿liwy. Nale¿y u¿yæ podziemnego tunelu Prypeæ 1. Plan dostawy i maj¹cego po niej nast¹piæ zamkniêcia tunelu zosta³ wys³any do Departamentu 1.” + + + Teczka z rozkazem + + + Dokumenty wspominaj¹ o ewakuacji zak³adu produkcyjnego fabryki Jupiter do podziemnych laboratoriów. Ta kwestia mia³a zostaæ omówiona w czêœci laboratoryjnej. + + + Harmonogram dostaw + + + „Harmonogram dostaw obiektu 62: 14.07 - 20 jednostek (jedna uszkodzona); 21.07 - 32 jednostki (2 uszkodzone); 28.07 - 26 jednostek (jedna uszkodzona). List przewozowy dotycz¹cy strat w wyniku transportu zosta³ przes³any do administracji zak³adu, wys³ano te¿ kopiê do warsztatów naprawczych.” + + + Kartka z notesu + + + Podczas spotkania podjêto nastêpuj¹c¹ decyzjê: dzia³ dostaw ma siê skupiæ na ewakuacji kompleksu produkcyjnego obiektu 62. + + + Raport ze zmiany + + + „...18:30 - zakoñczono szczelne zamykanie wszystkich sekcji tunelu P 1. 19:00 - zakoñczono szczelne zamykanie drzwi linii kolejowej. Konieczne by³o ich zaspawanie. 19:45 - zamkniêcie drzwi luku transportowego. Obs³uga mechanizmu drzwi wymaga³a uruchomienia zasilania awaryjnego, poniewa¿ wczeœniej odciêto ju¿ dop³yw pr¹du do tunelu. 20:00 - warsztat chemiczny rozpocz¹³ wype³nianie tunelu gazem. 22:00 - zakoñczono dzia³ania zmierzaj¹ce do zamkniêcia tunelu, wszystkie dokumenty przes³ano do Departamentu 1.” + + + Plan tuneli + + + Plan tuneli Prypeæ 1, z którego widaæ, ¿e tunel przebiega pod miastem Prypeæ. Dokument zawiera kilka notatek: 1. Zamkn¹æ drzwi luku transportowego. 2. U¿yæ gazu z warsztatu chemicznego do zamkniêcia tunelu. + + + Przerobiony izolator + + + To by³ izolator. Teraz prawie zmieni³ siê w niestabilny artefakt. To zapewne z niego wydobywaj¹ siê sporadyczne emisje psioniczne. + + + Puszka kalafonii + + + Puszka kalafonii u¿ywanej do lutowania. Spotyka siê j¹ w Zonie doœæ rzadko, co t³umaczy, dlaczego miejscowi technicy czêsto u¿ywaj¹ do reperacji zepsutego sprzêtu niebieskiej taœmy elektrycznej. + + + Paczka kondensatorów + + + Paczka kondensatorów - jednego z najpowszechniejszych komponentów elektrycznych. Nie s¹ w Zonie rzadkoœci¹, jako ¿e u¿ywa siê ich w ulepszeniach zaawansowanego sprzêtu, ale taka pojemnoœæ nie jest zwykle wymagana. + + + Baza tekstolitowa + + + Tekstolit to jeden z podstawowych elementów obwodów drukowanych. Uczucie, jakiego doœwiadcza radiotechnik-amator na widok nietkniêtej bazy tekstolitowej mo¿na porównaæ do tego, co odczuwa pisarz wobec czystej kartki papieru. + + + Pude³ko tranzystorów + + + Pude³ko tranzystorów - pó³przewodników, które generuj¹, przekszta³caj¹ i zwiêkszaj¹ natê¿enie impulsów elektrycznych. Tranzystory to marzenie ka¿dego radiotechnika w Zonie. + + + K³êbek miedzianego drutu + + + K³êbek miedzianego drutu to znakomity przewodnik i równoczeœnie Ÿród³o metalu nieszlachetnego. Ze wzglêdu na tê drug¹ cechê taki drut spotyka siê w Zonie bardzo rzadko. Wszystkie jego rezerwy zosta³y odnalezione, stopione i dostarczone do oœrodków przetwórczych jeszcze w latach 90. + + + Wykrywacz mutantów + + + To urz¹dzenie jest oparte na zwyk³ym wykrywaczu anomalii, który po³¹czono z czujnikiem wykrywaj¹cym mutanty na ograniczonym obszarze i elementem pozwalaj¹cym na przechowywanie danych. Po zebraniu ich okreœlonej iloœci uruchamia siê prze³¹cznik automatycznej dezaktywacji urz¹dzenia. + + + Dokumenty administracyjne + + + Plik dokumentów zawieraj¹cych dane czysto administracyjne. Wspomina siê w nich, ¿e zgodnie z rozkazem z laboratorium centralnego, dokumentacja techniczna obiektu 62 zosta³a przekazana do warsztatu testuj¹cego. + + + PDA Czarnego + + + Uwagê zwraca jedna z wiadomoœci. Nadawca nazywa siê Szakal, a tekst brzmi nastêpuj¹co: „Mój cz³owiek w instytucie badawczym poleci ciê na dowódcê ekspedycji. Bêdzie musia³ wynaj¹æ twoich ch³opaków do ochrony bunkra. To ci u³atwi dzia³anie. Pamiêtaj, klient nie chce, ¿eby do naukowców dotar³y JAKIEKOLWIEK informacje na temat obs³ugi obiektów X. W przeciwnym wypadku nie bêdziemy mogli opuœciæ Zony. Nie zawiedŸ mnie, Czarny." + + + Czarna skrzynka + + + Czarna skrzynka z Ogoñczy 1, ocala³a z katastrofy. Powinna zawieraæ informacje na temat ostatnich chwil lotu, bêd¹ one jednak zaszyfrowane. + + + Plastikowe materia³y wybuchowe klasy wojskowej z piêciosekundowym zegarem. + + + £adunek wybuchowy z zegarem. + + + Przemienione ko³o + + + PDA Sêka + + + W PDA znajduje siê mapa ze znacznikiem przy podstacji - bez w¹tpienia jest tam schowek - oraz kilka fotografii erotycznych. Nic specjalnego. + + + PDA bandyty + + + Ostatnia wiadomoœæ na PDA brzmi: „Z³ap tego gnoja Sêka i przyprowadŸ go do mnie, musimy sobie powa¿nie porozmawiaæ. Nie obchodzi mnie, gdzie on jest, znajdŸ go. Jeœli bêdzie siê stawia³, daj mu nauczkê. Su³tan." + + + To PDA zawiera informacje na temat klientów Morgana oraz wspó³rzêdne tajnego magazynu Powinnoœci, z którego wzi¹³ broñ. Nastêpnie sprzeda³ j¹ najemnikom i nawi¹za³ kontakt z kimœ nazywanym „Su³tan”. Aby zatrzeæ za sob¹ œlady, Morgan postanowi³ zdradziæ Wolnoœci lokalizacjê magazynu. Informacjê mia³ przekazaæ jego wspólnik, Sêp. PDA wspomina te¿ o czujniku, który mo¿e wy³¹czyæ tylko Morgan, a który zaalarmuje Powinnoœæ, jeœli schowek zostanie otwarty. Ta informacja na pewno zainteresuje zarówno Wolnoœæ, jak i Powinnoœæ. + + + PDA Morgana + + + Notatka na odwrocie starego dokumentu: „Duch, zabieram swoje rzeczy. Dziêki za karabin szturmowy - przyda mi siê. W zamian za niego zostawiam ci trochê œrodków medycznych od Doktora. Najemnik, który mnie œciga³, wpad³ w moj¹ pu³apkê, wiêc nie bêd¹ mi potrzebne... mam nadziejê. Teraz idê siê spotkaæ z K³em. Uda³o mu siê zbudowaæ dekoder. Spotkajmy siê tam, gdzie zawsze, jeœli dasz radê. Strie³ok.” + + + Wiadomoœæ dla Ducha + + + Notatka na papierze w kratkê: „Strie³ok, na wszelki wypadek zostawi³em drugi dekoder w naszym schowku w Prypeci. Ja i Duch idziemy do Agropromu, wiêc zostawimy tu nasz¹ dodatkow¹ amunicjê. WeŸ j¹, jeœli ci siê przyda. Pomyœlnych ³owów! Kie³.” + + + Notatka dla Strie³oka + + + Notatka na odwrocie starego dokumentu: „Kie³, nie mogê ju¿ d³u¿ej na ciebie czekaæ - siedzi mi na karku ca³y oddzia³. Sam idê do sarkofagu. Zostawiê tu moj¹ szczêœliw¹ spluwê - i tak nie mam ju¿ do niej nabojów. Jeœli nie wrócê, daj j¹ Duchowi. Niech zadba o broñ, to broñ zadba o niego. Trzymaj siê. Strie³ok.” + + + Wiadomoœæ dla K³a + + + Modu³ pamiêci z samolotu bezza³ogowego. Nowikow odblokowa³ go, dziêki czemu masz dostêp do zebranych przez samolot informacji. S¹ poœród nich wspó³rzêdne trzech punktów, z których dobiegaj¹ sygna³y radiowe. + + + Modu³ pamiêci (odblokowany) + + + Modu³ pamiêci z samolotu bezza³ogowego. Pomimo wypadku modu³ dzia³a bez zarzutu, ale niestety jest zablokowany. + + + Modu³ pamiêci (zablokowany) + + + Stara kartka z harmonogramem zmian warty, pod którym widnieje liczba 1421. Na starych zapiskach sporz¹dzono flamastrem nastêpuj¹c¹ notatkê: „Porucznik W. I. Soko³ow. Po katastrofie œmig³owca uda³em siê do punktu ewakuacyjnego B205. Przez dwa dni nie podjêto próby ewakuacji i dalsze pozostawanie w tym miejscu jest ryzykowne. Postanowi³em wiêc opuœciæ B205 i pójœæ do ruchomego laboratorium ekspedycji naukowej. Znajduje siê ono na pó³nocny wschód od punktu ewakuacyjnego.” + + + Notatka Soko³owa + + + Roœlina z zagajnika, który zosta³ czêœciowo przekszta³cony w wyniku dzia³ania anomalii. Zagajnik agresywnie zareagowa³ na wtargniêcie, ale sama roœlina nie wydaje siê byæ niebezpieczna. + + + Anormalna roœlina + + + Ostatnia wiadomoœæ otrzymana na to PDA pochodzi od Morgana. Jest to zlecenie zabójstwa stalkera nazwiskiem Diegtiariow. Do wiadomoœci do³¹czono kilka fotografii. Ostatnie polecenie Morgana mówi o wykasowaniu wiadomoœci po jej przeczytaniu. + + + PDA najemnika + + + W tej skrzynce znajduje siê wykrywacz artefaktów, bateria i potê¿ny przekaŸnik. Urz¹dzenie bêdzie skanowaæ anomalie, aby okreœliæ liczbê i rodzaj artefaktów, które siê pojawi¹. Wszystkie te informacje zostan¹ automatycznie przekazane do bunkra naukowców. + + + Skaner anomalii + + + Ostatnia wiadomoœæ na PDA to nagranie g³osowe:\n„...Którêdy pójdziemy, zawsze trafiamy w to samo miejsce. Nie mogê przywykn¹æ do tej mg³y... Zadziwiaj¹ce, jak Czepurny móg³ znikn¹æ bez œladu. Mo¿e znalaz³ wyjœcie?... \nDzieñ szósty... Skoñczy³a siê woda... Pu³kownikowi odbi³o, zastrzeli³ dwóch ludzi, a potem siebie... Zosta³em sam w tej przeklêtej anomalii... Gdyby ³¹cznoœæ z baz¹ nie siad³a, to pewnie by nas uratowali i Powinnoœæ by nie powsta³a. Jak do tego wszystkiego dosz³o... Eh, pieprzyæ to. Tamten kapitan Taczenko zgin¹³ dawno temu... A ten genera³ Taczenko z Powinnoœci zaraz do niego do³¹czy... Sprawiedliwoœci stanie siê zadoœæ..."\nNagranie koñczy siê tu¿ po tym, jak rozlega siê strza³. + + + PDA genera³a Taczenki + + + Ta instrukcja opisuje sposób korzystania z obiektu 62. Jest wyraŸnie podkreœlone, ¿e nie trzeba wprowadzaæ ¿adnych zmian w zakresie trajektorii kuli czy naci¹gu, poniewa¿ na dystansach, na których broñ jest skuteczna, czynniki te nie maj¹ znaczenia.\nTe dokumenty nie mog¹ wpaœæ w cudze rêce, z pewnoœci¹ bardzo zainteresuj¹ analityków SBU. + + + Instrukcja obs³ugi obiektu 62 + + + Notes zawiera dok³adny opis eksperymentu zwi¹zanego z ocen¹ efektu pola psionicznego na obiekty na drugiej pó³kuli. Grupa naukowców na Karaibach odebra³a sygna³, ale by³ on zniekszta³cony. Zmiana sygna³u by³a niezwyk³a, zupe³nie, jakby ktoœ go skorygowa³. Mo¿liwe jest wyjaœnienie mówi¹ce, ¿e teoria noosfery jest s³uszna i ¿e zmiany zosta³y wprowadzone przez sam¹ noosferê.\nTe dokumenty nie mog¹ wpaœæ w cudze rêce, z pewnoœci¹ bardzo zainteresuj¹ analityków SBU. + + + Notes z opisem eksperymentu + + + Dokument opisuje w³aœciwoœci techniczne anten i tego, jak ró¿ni¹ siê od zak³adanych wartoœci. Na odwrocie jest notatka, która wskazuje, ¿e te dokumenty przygotowano w laboratorium X10.\nTe dokumenty nie mog¹ wpaœæ w cudze rêce, z pewnoœci¹ bardzo zainteresuj¹ analityków SBU. + + + Generator têczy - g³ówne cechy techniczne + + + Te dokumenty dotycz¹ jednego z odkryæ pobocznych, które wykaza³o, ze istoty ¿ywe s¹ w stanie generowaæ emisje psioniczne. Biologiczny emiter pola, bêd¹cy w³aœciwie olbrzymim mózgiem, zosta³ wyhodowany w laboratorium X16 w ramach prowadzonych tam badañ.\nTe dokumenty nie mog¹ wpaœæ w cudze rêce, z pewnoœci¹ bardzo zainteresuj¹ analityków SBU. + + + Dokumenty badawcze + + + Raport szczegó³owo przedstawia badanie próbek biologicznych przes³anych z laboratorium X18. Próbki poddano dzia³aniu pól transferowych o zmiennym natê¿eniu. Raport drobiazgowo opisuje mutacje istot ¿ywych wywo³ane oddzia³ywaniem emisji.\nTe dokumenty nie mog¹ wpaœæ w cudze rêce, z pewnoœci¹ bardzo zainteresuj¹ analityków SBU. + + + Raport z badania próbek + + + Dokument odnosi siê do przeniesienia zespo³u badawczego i wszystkich materia³ów do innego laboratorium, zwanego X7, w którym bêd¹ prowadzone badania dotycz¹ce wp³ywów noosfery. W sk³ad zespo³u badawczego wchodz¹: N. A. Lebiediew, E. F. Ka³ancza i W. I. Sus³ow.\nTe dokumenty nie mog¹ wpaœæ w cudze rêce, z pewnoœci¹ bardzo zainteresuj¹ analityków SBU. + + + Rozkaz przeniesienia + + + Ostatnia notatka na PDA brzmi nastêpuj¹co: „Znalaz³em generator awaryjny na szóstym piêtrze - technicznym. Dwie godziny zabra³o postawienie go na nogi. Bardzo chcia³bym go w³¹czyæ, ale Serbin zabroni³ mi siê wychylaæ, dopóki nie sprowadzi jakichœ ludzi." + + + PDA Barczuka + + + Czerwona magnetyczna karta wstêpu oznaczona X8. + + + Czerwona karta wstêpu X8 + + + PDA zawiera mnóstwo nieistotnych zapisków, ale jeden jest inny: „Monolit komunikuje siê z odbiorc¹ wiadomoœci i nakazuje mu zebraæ nadwy¿ki amunicji, a potem ukryæ je w miejscach nieznanych niedowiarkom. Te miejsca maj¹ zostaæ zaznaczone symbolem Monolitu. Gdy nadejd¹ ciê¿kie czasy, ci, którzy s³ysz¹ Monolit, bêd¹ czerpaæ korzyœci z jego m¹droœci... Przekaza³em wolê Monolitu moim braciom i powiedzia³em im, gdzie umieœciæ naboje...” + + + PDA bojownika Monolitu + + + Narzêdzia jak dla dziecka. Raczej nie przydadz¹ siê do robót precyzyjnych, ale bior¹c pod uwagê deficyt narzêdzi w Zonie, mog¹ byæ u¿yteczne dla zapobiegliwego technika. + + + Narzêdzia podstawowe + + + Porz¹dny zestaw narzêdzi. Wygl¹da tak, jakby doœwiadczony technik pieczo³owicie skompletowa³ go na w³asny u¿ytek. S¹ stare, ale w dobrym stanie. + + + Narzêdzia do precyzyjnej pracy + + + Zestaw profesjonalnych narzêdzi do zaawansowanych robót ze sprzêtem. Notatka na pojemniku mówi, ¿e zestaw pochodzi z Niemiec. Jest w nim wszystko, czego potrzeba do niemal ka¿dej pracy kalibracyjnej. + + + Narzêdzia do kalibracji + + + Stara magnetyczna karta wstêpu + + + Magnetyczna karta wstêpu Kardana. Za jej pomoc¹ uzyskiwano dostêp do warsztatu testuj¹cego obiekt 62. + + + Dokumenty dotycz¹ce obiektu 62 + + + Dokumenty opisuj¹ce mechanizm i g³ówne w³aœciwoœci techniczne urz¹dzenia elektromagnetycznego.\nPoœród dokumentów znajduje siê nastêpuj¹ca notatka: „Dokumenty musz¹ zostaæ zwrócone do X8, do laboratorium centralnego. Ja bêdê zajêty, wiêc dostarcz je sam. U¿yj karty magnetycznej w centrum us³ugowym Jubilejny w Prypeci, ¿eby zjechaæ na drugi poziom pod ziemi¹. Stamt¹d ju¿ sobie poradzisz. Za³¹czam kartê dostêpu.\nN. Lebiediew.\nTe dokumenty nie mog¹ wpaœæ w cudze rêce, z pewnoœci¹ bardzo zainteresuj¹ analityków SBU. + + + ¯ó³ta karta wstêpu X8 + + + Rozkaz nr 562 + + + Rozkaz wewnêtrzny nr 423 + + + Klucz A + + + Zwyk³y klucz oznaczony liter¹ A. + + + Klucz B + + + Zwyk³y klucz oznaczony liter¹ B. + + + Jedno z nagrañ g³osowych brzmi szczególnie psychopatycznie: „A wiêc to st¹d s¹ te cholerne mutanty!... Przebieg³e gnojki wspiê³y siê na p³askowy¿ i myœl¹, ¿e Noe ich nie dostanie... Na pewno nie wiedz¹, ¿e mam w³asn¹ œcie¿kê na górê, przy pó³nocnym gospodarstwie... Szykuje siê zabawa, dupki!" + + + PDA Noego + + + Notes zawiera masê spamu i jedn¹ wiadomoœæ oznaczon¹ jako wa¿na:\n„Za³ó¿cie obóz w pobli¿u zak³adu utylizacji odpadów, a ka¿dy, kto ma braæ udzia³ w tej robocie, przy³¹czy siê do was. Nie oczekujcie Czarnego, bo on i jego ludzie bêd¹ w Jupiterze z inn¹ misj¹. Wojsko zawiesi³o wszystkie loty do Zony, wiêc z tej strony nie bêdziemy mieli problemów. Kiedy stalkerzy znajd¹ drogê do Prypeci, wyœlemy przewodnika i poczekamy tam na ludzi klienta - poka¿¹ nam, gdzie jest laboratorium.\nSzakal.” + + + Notes najemnika + + + Ostatnia nades³ana wiadomoœæ brzmi:\n"Czekamy przy jakichœ starych warsztatach. Wys³a³em dwóch ch³opaków przodem, ¿eby zrobili dla ciebie rozpoznanie drogi. Ale bêdziemy tu czekali, dopóki nie pojawi siê kurier klienta - tu jest o wiele œwie¿sze powietrze.\nTasak." + + + PDA najemnika Haka + + + PDA najemnika Prêgi + + + Kanister niebezpiecznego chemicznego czynnika nerwowego. + + + Kanister gazu Perin B3 + + + Skrzynka jest zamkniêta za pomoc¹ doœæ wymyœlnego zamka. Jej waga i dŸwiêk, jaki wydaje przy potrz¹saniu, ka¿¹ s¹dziæ, ¿e coœ znajduje siê w œrodku. + + + Stalowa skrzynka + + + Notatka na PDA: „Jestem pewien, ¿e artefakt jest na samym drzewie. St¹d widaæ, ¿e móg³bym siê na nie wspi¹æ ze wzgórza. Mam tylko nadziejê, ¿e na wzgórzach nie ma mutantów. Szkoda, ¿e przyszed³em tu sam po tej awanturze z Kardanem i Stogiem, ale kiedy przyniosê artefakt, zobacz¹, ¿e od pocz¹tku mia³em racjê..." + + + PDA Kawalarza + + + Ostatnia notatka na tym PDA ujawnia, ¿e osoba, która j¹ wprowadzi³a, by³a zdenerwowana: „Kardan, ten stary pijak. Nie doœæ, ¿e jak siê napije, to nic mu siê nie chce - „tu jest dobrze, nigdzie siê nie spieszy” - to jeszcze najecha³ na mnie i Kawalarza, ¿e niby jesteœmy m³odzi i na niczym siê nie znamy... Kawalarz to te¿ niez³y agregat: wkurzy³ siê, z³apa³ torbê i poszed³. Kiedy ja uspokaja³em Kardana, znikn¹³ nie wiadomo gdzie. I co ja mam zrobiæ? Piæ z tym starym kretynem? Dziêkujê, postojê. Ta jego wódka to niez³y szajs... Chuj. A pomyœleæ, ¿e na pocz¹tku tak dobrze siê zapowiada³o." + + + PDA Stoga + + + Wstrz¹s prowadzi³ dziennik w swoim PDA, a najciekawsze s¹ jego ostatnie zapiski: „Nagranie 12. Nied³ugo skoñczê badania... Ludzie w obozie zaczynaj¹ coœ podejrzewaæ. G³uszec i Dani³a chc¹ zapolowaæ na pijawki... Ciekawe, kiedy siê zorientuj¹... Muszê przejrzeæ s³oiki z krwi¹ i oddzieliæ te zaka¿one, a resztê ukryæ... [szybko:] Ktoœ idzie. [s³ychaæ, jak urz¹dzenie zostaje wy³¹czone, a potem w³¹czone ponownie.] Nagranie 13... Prawdopodobnie ostatnie... Najpierw ten wœcibski myœliwy, a teraz G³uszec... Nie ujdzie mi to na sucho. Przyjd¹ po mnie... Wiem, o tym. Niewa¿ne - uzale¿nienie od hemoglobiny i tak by mnie wykoñczy³o. Wolê zgin¹æ od kuli ni¿ od choroby...” + + + PDA Wstrz¹sa + + + Œciœle tajne. Rozkaz nr 562 g³ównego dowódcy odpowiedzialnego za bezpieczeñstwo obiektu nr 1, R. J. Dydenki.\nJednostka Zabezpieczenia Chemicznego nr 423: przenieœæ z sektora B103 do sektora A19 w celu przeprowadzenia testów polowych roztworu chemicznego Perin B3 w warunkach zbli¿onych do bojowych. Za przeprowadzenie testów odpowiada pu³kownik P. P. S³awin, dowódca jednostki. Podpu³kownik K. S. Wa³ow, zastêpca dowódcy jednostki, odpowiada za transport i bezpieczeñstwo. + + + Œciœle tajne. Rozkaz pu³kownika P. P. S³awina\nZgodnie z tym rozkazem cz³onkowie Jednostki Zabezpieczenia Chemicznego nr 423 maj¹ siê zapoznaæ z nastêpuj¹cymi informacjami:\n1. Klucze do pojemnika z roztworem chemicznym Perin B3 znajduj¹ siê w posiadaniu pu³kownika P. P. S³awina (klucz A) i podpu³kownika K. S. Wa³owa (klucz B).\n2. Porz¹dek konwoju zaczynaj¹c od przodu: Pojazd zastêpcy dowódcy jednostki, pojazd eskortuj¹cy nr 8, transporter opancerzony nr 1, pojazd transportowy nr 1, transporter opancerzony nr 3, pojazd eskortuj¹cy nr 2, pojazd dowódcy jednostki (P. P. S³awina).\nKopie rozkazu maj¹ zostaæ dostarczone podpu³kownikowi K. S. Wa³owowi i porucznikowi R. B. Nazarence. + + + ¯ó³ta magnetyczna karta wstêpu oznaczona X8.\nKarta nie mo¿e wpaœæ w cudze rêce, poniewa¿ dziêki niej mo¿na siê dostaæ do tajnego laboratorium. + + + PDA pos³añca Su³tana + + + Ostatnia wiadomoœæ wys³ana z tego PDA to nagranie g³osowe: „Su³tan, nieŸle da³em popaliæ temu miêczakowi! Teraz nie bêdzie ju¿ z nami zadziera³!" + + + To by³o kiedyœ ko³o pog³êbiarki. Teraz czêœciowo przekszta³ci³o siê w dziwny artefakt. Jego jedyne zauwa¿alne w³aœciwoœci to œwiecenie i lekka radioaktywnoœæ. + + + Przys³ano nastêpuj¹c¹ wiadomoœæ:\n„Uda³o mi siê za³atwiæ coœ w sprawie broni, ten chciwy ³ajdak sprzeda nam zapasy swojej frakcji. Wyjdzie ca³kiem tanio, ale musimy siê powlec do Jupitera.\nSêp.” + + diff --git a/gamedata/configs/text/pol/st_items_weapons.xml b/gamedata/configs/text/pol/st_items_weapons.xml new file mode 100644 index 0000000..703d4b0 --- /dev/null +++ b/gamedata/configs/text/pol/st_items_weapons.xml @@ -0,0 +1,567 @@ + + + + Naboje .45 ACP + + + Naboje pe³nop³aszczowe kalibru .45 ciesz¹ siê popularnoœci¹ od ponad stu lat, co zawdziêczaj¹ du¿emu ciê¿arowi kuli i stosunkowo ma³emu ³adunkowi miotaj¹cemu. Skutkuje to tym, ¿e pocisk jest relatywnie wolny, ale bardzo precyzyjny i zapewnia znaczn¹ moc obalaj¹c¹. + + + .45 ACP + + + Naboje Hydroshock .45 ACP + + + Te niezwyk³e naboje ACP kalibru .45 to okryte p³aszczem, kule z miêkkim czubkiem i rozszerzaj¹c¹ siê pust¹ czêœci¹ i stalowym rdzeniem, które ³¹cz¹ w sobie zarówno wady, jak i zalety pe³nop³aszczowych, ekspansywnych kul z miêkkim czubkiem oraz naboi przeciwpancernych. + + + .45 Hydro + + + Naboje œrutowe 12x70 + + + Standardowe naboje kalibru 12 wype³nione 6-milimetrowym œrutem. Zabójcze na krótki dystans. Nadaj¹ siê tylko do broni g³adkolufowej. + + + Œrutowe 12x70 + + + Naboje kulowe 12x76 + + + Te ciê¿kie kule kalibru 12 s¹ zwykle u¿ywane do ³owów na grubego zwierza, ale nadaj¹ siê te¿ do innych celów. Zamiast przebijaæ pancerz, po prostu go mia¿d¿¹. + + + Kulowe 12x76 + + + Naboje 5.45x39 mm AP + + + Wojskowe naboje przeciwpancerne 5.45x39 7H22 s¹ u¿ywane w karabinach automatycznych w krajach Uk³adu Warszawskiego. Kula zawiera element przeciwpancerny z twardego stopu. Skuteczne przeciw kamizelkom kuloodpornym. + + + 5.45x39 AP + + + Naboje 5.45x39 + + + Ulepszone wojskowe naboje przeciwpancerne 5.45x39 7H10 u¿ywane w karabinach automatycznych w krajach Uk³adu Warszawskiego. Dziêki zmniejszonemu odrzutowi i o sto metrów d³u¿szemu dystansowi ra¿enia s¹ bardziej precyzyjne ni¿ naboje kalibru 7.62. + + + 5.45x39 + + + Naboje 5.564x5 mm AP + + + Popularne w wojskach NATO naboje przeciwpancerne kalibru 5.564x5, znane pod symbolem SS190/M855, czêsto u¿ywane przez zachodnie agencje bezpieczeñstwa i s³u¿by specjalne. Skuteczne przeciw kamizelkom kuloodpornym. + + + 5.564x5 mm AP + + + Naboje 5.454x5 mm + + + Standardowe naboje NATO 5.564x5 zaprojektowane specjalnie do precyzyjnego ostrza³u automatycznego. Poniewa¿ s¹ wzorowane na amunicji myœliwskiej, posiadaj¹ dobre parametry balistyczne. Powszechnie znane pod symbolem SS109. + + + 5.564x5 + + + Naboje 7.62x54 mm 7H1 + + + Naboje kalibru 7.62 do karabinu snajperskiego, wyposa¿one w stalowy element przebijaj¹cy zaprojektowany specjalnie do SWD. W przeciwieñstwie do amunicji karabinów maszynowych, 7H1 charakteryzuje siê silnym skupieniem i znakomit¹ zdolnoœci¹ penetracji. + + + 7.62 7H1 + + + Naboje 7.62x54 mm PP + + + Tanie naboje 7.62 do karabinu maszynowego. Nie nadaj¹ siê do karabinów snajperskich, s¹ wiêc u¿ywane tylko w karabinach maszynowych RP-74. + + + 7.62x54 PP + + + Naboje 9x18 mm + + + Naboje pe³nop³aszczowe ze stalowym elementem przebijaj¹cym i o³owianym rdzeniem. Maj¹ dobr¹ moc obalaj¹c¹, ale s¹ nieskuteczne przeciw kamizelkom kuloodpornym. + + + 9x18 + + + Naboje 9x18 mm +P+ + + + S¹ to naboje ze zwiêkszona moc¹ obalaj¹c¹, a europejskie oznaczenie +P+ wskazuje na „amunicjê o zwiêkszonym ciœnieniu gazów prochowych" z 30% zwiêkszeniem prêdkoœci wylotowej. Nieskuteczne przeciw kamizelkom kuloodpornym. + + + 9x18 +P+ + + + Naboje 9x19 mm FMJ + + + Podstawowe naboje p³aszczowe kalibru 9x19 ³¹cz¹ zadowalaj¹c¹ skutecznoœæ z ³atwoœci¹ produkcji. S¹ popularne ze wzglêdu na to, ¿e konwencje miêdzynarodowe zakazuj¹ u¿ywania amunicji ekspansywnej w dzia³aniach wojennych. Nieskuteczne przeciw kamizelkom kuloodpornym. + + + 9x19 FMJ + + + Naboje 9x19 mm JHP + + + Te p³aszczowe kule kalibru 9x19 z ekspansywnym wg³êbieniem czubkowym zapewniaj¹ du¿¹ moc obalaj¹c¹ i ma³e prawdopodobieñstwo rykoszetu. S¹ u¿ywane przez policjê i w samoobronie. Ze wzglêdu na niski potencja³ penetracyjny nieskuteczne przeciw kamizelkom kuloodpornym. + + + 9x19 JHP + + + Naboje 9x39 mm SP-6 + + + SP-6 to poddŸwiêkowe naboje do karabinów szturmowych, p³aszczowe, z miêkkim czubkiem i twardym stalowym rdzeniem, który wystaje z obudowy. Ciche strzelanie wymaga t³umika. U¿ywane przez s³u¿by specjalne w krajach Uk³adu Warszawskiego. Skuteczne przeciw kamizelkom kuloodpornym. + + + 9x39 SP-6 + + + Naboje 9x39 mm SP-5 + + + SP-5 to poddŸwiêkowe naboje do karabinów snajperskich z dwumetaliczn¹ obudow¹. Zawieraj¹ stalowy rdzeñ, za którym znajduje siê przestrzeñ wype³niona o³owiem. Ciche strzelanie wymaga t³umika. U¿ywane przez s³u¿by specjalne w krajach Uk³adu Warszawskiego. + + + 9x39 mm SP-5 + + + Baterie + + + Granat M203 + + + Granat 40 mm do granatnika podwieszanego M203. Ten pocisk jest zabójczy w promieniu 5 metrów. Nadaje siê tak¿e do zintegrowanego granatnika FT-200M. + + + M203 + + + G³owica bojowa OG-7V + + + Od³amkowa, przeciwpiechotna g³owica bojowa u¿ywana w granatnikach RPG-7u. Wykorzystuje siê j¹ przede wszystkim do zabijania wrogów znajduj¹cych siê poza zasiêgiem granatów rêcznych. + + + OG-7V + + + Granat VOG-25 + + + Zwyk³y granat od³amkowy do granatnika podwieszanego GP-25 Koster. Ten pocisk jest zabójczy w promieniu 5 metrów. Granat VOG-25 jest te¿ u¿ywany w karabinie Grom S14 i w granatnikach rewolwerowych typu Buldog-6. + + + VOG-25 + + + Celownik PSO-1m + + + Popularny radziecki celownik optyczny ze sta³ym przybli¿eniem 5x ze skal¹ zasiêgu. Przyczepia siê go do broni za pomoc¹ standardowej w krajach Uk³adu Warszawskiego szyny „jaskó³czy ogon”. + + + Celownik PSS-2x + + + Celownik optyczny ze sta³ym przybli¿eniem 5x i wbudowanym czujnikiem ciep³a, u¿ywanym do wykrywania Ÿróde³ ciep³a charakterystycznych dla ludzkiego cia³a. Zaprojektowany dla si³ specjalnych. Przyczepia siê go do broni za pomoc¹ szyny „jaskó³czy ogon". + + + Celownik NSPU-3 + + + Celownik ze sta³ym przybli¿eniem 5x i wzmacniaj¹cym obraz noktowizorem, przeznaczony do walki w ciemnoœci. Przyczepia siê go do broni za pomoc¹ szyny „jaskó³czy ogon" + + + Celownik SUSAT x4 + + + Celownik ze zmiennym przybli¿eniem 1.6-4x, który wykorzystuje sterowanie automatyczne do zapewnienia wiêkszej skutecznoœci ostrza³u. Przyczepia siê go do broni za pomoc¹ standardowej w NATO szyny Picatinny. + + + Celownik ze sta³ym przybli¿eniem 4x, produkowany g³ównie na Zachodzie. Przyczepia siê go do broni za pomoc¹ standardowej w NATO szyny Picatinny. Czêsto u¿ywany w celu zwiêkszenia precyzyjnoœci broni strzeleckiej na œrednim i d³ugim dystansie. + + + Celownik SUSAT Zmrok x1.6 + + + Optyczny celownik z podwy¿szonym kontrastem SUSAT 1.6x do walki w warunkach ograniczonego oœwietlenia. Przyczepia siê go do broni za pomoc¹ standardowej w NATO szyny Picatinny. + + + Celownik SUSAT Noc x4 + + + Celownik optyczny ze sta³ym przybli¿eniem 4x i noktowizorem do walki w ciemnoœci i na d³ugi dystans. Przyczepia siê go do broni za pomoc¹ standardowej w NATO szyny Picatinny. + + + Celownik SUSAT 1.6x + + + Celownik optyczny 1.6x do walki na krótki i œredni dystans. Przyczepia siê go do broni za pomoc¹ standardowej w NATO szyny Picatinny. + + + Celownik PSU-1 + + + Celownik optyczny z przybli¿eniem 2.7x, idealny do walki w warunkach miejskich na œrednim dystansie. Przyczepia siê go do broni za pomoc¹ szyny „jaskó³czy ogon”. + + + T³umik + + + Skuteczny t³umik, który mo¿na na bie¿¹co modyfikowaæ zale¿nie od potrzeb. Czêœæ wokó³ lufy to rolka solidnej mosiê¿nej siatki, a element przedni to zestaw metalowych przes³on z otworami, przez które maj¹ przechodziæ kule. Komplet zawiera te¿ adaptery i uszczelki dla wiêkszoœci broni. Zazwyczaj u¿ywa siê go do przerzedzenia szeregów wroga bez przyci¹gania jego uwagi. + + + Granat F1 + + + Obronny granat rêczny, którego od³amki mog¹ przebiæ œredniej klasy kamizelkê kuloodporn¹. Jest zabójczy w promieniu 7 metrów. Stalkerzy zdobywaj¹ granaty F1 dziêki handlowi z wojskiem, które skreœla je jako u¿ywane do walki z mutantami. + + + GP-25 Koster + + + Jednostrza³owy, ³adowany od przodu, podwieszany granatnik do karabinów szturmowych, produkowany w krajach Uk³adu Warszawskiego. Posiada samonapinaj¹cy mechanizm strzelaj¹cy z rêczn¹ zapadk¹ zabezpieczaj¹c¹ i automatyczn¹ blokad¹ strza³u na wypadek nieprawid³owego zamocowania na karabinie. U¿ywa granatów VOG-25. + + + M203 + + + Zmodyfikowany, skrócony o 8 cm granatnik M203, przyczepiany do broni za pomoc¹ szyny Picatinny. Dziêki zmienionemu umocowaniu granatnik ten jest powszechnie u¿ywany na ca³ym œwiecie. + + + Granat RGD-5 + + + Ofensywny granat rêczny, zabójczy w promieniu 5 metrów. Ze wzglêdu na stosunkowo nisk¹ cenê czêsto u¿ywany przez stalkerów do „wykurzania" mutantów. + + + Granat dymny + + + Rêczny granat dymny. U¿ywany do tworzenia zas³on dymnych, które powstaj¹ w ci¹gu 10 sekund po rzuceniu granatu. + + + Nó¿ + + + AC-96/2 + + + AKM-74/2 + + + AKM-74/2U + + + Martha + + + Obrzyn + + + Dubeltowa strzelba myœliwska ze skrócon¹ luf¹, l¿ejsza i mniejsza ni¿ zwyk³a strzelba. Jedna z najpopularniejszych broni bandytów, którzy ceni¹ ³atwoœæ jej ukrycia i ogromn¹ skutecznoœæ w walce w zwarciu. + + + Kora-920 + + + Stepowy Orze³ + + + Pistolet rêcznej roboty oparty na projekcie Czarnego Or³a. Jego elementy s¹ precyzyjnie dopasowane, dziêki czemu jest on niesamowicie precyzyjny jak na broñ rêczn¹ tego typu. + + + Czarny Orze³ + + + FT-200M + + + Fora-12 + + + GP37 + + + Karabin Gaussa + + + Grom S14 + + + Ten po³¹czony z granatnikiem karabin szturmowy, podobny do serii AKM, zaprojektowano specjalnie dla jednostek szybkiego reagowania. G³ówne ró¿nice to amunicja kalibru 9x39, budowa bezkolbowa i du¿e mo¿liwoœci konfiguracji. Broñ wysoko ceniona przez stalkerów wojskowych ze wzglêdu na mo¿liwoœæ zabicia z niej z du¿ej odleg³oœci wroga w kamizelce kuloodpornej, oraz za ogromn¹ moc obalaj¹c¹. + + + Burza + + + Ta broñ to eksperymentalna wersja po³¹czenia karabinu szturmowego i granatnika, rosyjska modyfikacja standardowego Gromu S14, zaprojektowana specjalnie dla jednostek dzia³aj¹cych w Zonie. Ceniona za zwiêkszona pojemnoœæ magazynka. + + + HPSS-1m + + + Zmodyfikowany pistolet z pierwszej po³owy XX w., równie potê¿ny, niezawodny i celny, jak orygina³. Pistolety z tej serii s³usznie ciesz¹ siê reputacj¹ najlepszej broni palnej XX w., a w Zonie panuje na nie ogromny popyt. + + + IL 86 + + + TRs 301 + + + ¯mija 5 + + + Ten pistolet maszynowy zyska³ œwiatow¹ popularnoœæ dziêki swej niezawodnoœci, ³atwoœci obs³ugi i celnoœci. Przez ostatnie kilka dziesiêcioleci ¯mija 5 by³a u¿ywana przez specjalne si³y zbrojne i policyjne na ca³ym œwiecie. Nic wiêc dziwnego, ¿e po zalaniu globalnego czarnego rynku, trafi³a w koñcu do Zony. + + + Przecinak + + + Prototyp pistoletu maszynowego oparty na znakomitej ¯mii 5. Zaprojektowany jako broñ nowej generacji do walki w zwarciu, charakteryzuje siê wiêkszym kalibrem, szybkoœci¹ ogniow¹ i celnoœci¹. + + + PB-1s + + + RP-74 Zulusa + + + Ta broñ nale¿a³a do Zulusa. Posiada kilka wyj¹tkowych cech, miêdzy innymi zwiêkszony pojemnik na amunicjê i wyj¹tkowo niezawodny mechanizm retrakcyjny. Modyfikacje zwiêkszy³y ciê¿ar broni, ale dla poprzedniego w³aœciciela nie stanowi³o to problemu. + + + PMm + + + Honorowy PMm + + + Bardzo stary PMm, który Diegtiariow otrzyma³ w nagrodê „za pomyœlne wykonanie wysoce niebezpiecznych rozkazów pañstwowych oraz za odwagê i mêstwo okazane podczas pe³nienia obowi¹zków s³u¿bowych”. + + + Eliminator + + + Buldog-6 + + + Ten rewolwerowy granatnik posiada szeœæ ³adowanych od przodu luf, identycznych z elementami granatnika podwieszanego. Bêben równie¿ ³aduje siê od przodu. Jest powszechnie u¿ywany do ostrza³u zaporowego pozycji wroga, a na otwartej przestrzeni do atakowania bronionych, nieruchomych celów lub do walki z wyj¹tkowo groŸnymi potworami. + + + RP-75 + + + Ten ³adowany taœmowo karabin maszynowy to przenoœna wersja ze z³o¿onym, dwuetapowym systemem ³adowania. Mimo ¿e jest ciê¿ki i ma³o celny, znalaz³ w Zonie grono zwolenników. U¿ywa siê go g³ównie do walki z przewa¿aj¹cymi si³ami wroga podczas konfliktów frakcji i do oczyszczania siedzib mutantów. + + + RPG-7u + + + SIP-t M200 + + + Alpine + + + Unikalny model broni palnej SIP-t M200. Czêœæ ma³ej, limitowanej serii wykonanej dla niezidentyfikowanej jednostki si³ specjalnych. Charakteryzuje siê zwiêkszon¹ pojemnoœci¹ magazynka, bardzo wytrzyma³¹ stalow¹ luf¹ i niezwykle odporn¹ polimerow¹ komor¹. + + + SGI-5k + + + Stosunkowo nowy karabin szturmowy, który mimo „niemodnego” wygl¹du szybko znalaz³ zwolenników na ca³ym œwiecie. Bronie z tej serii nale¿¹ do najlepszych w swojej klasie, s¹ znane z niezawodnoœci, celnoœci i ³atwoœci obs³ugi. Mimo ¿e ten karabin jest relatywnie trudno zdobyæ w Zonie, doœwiadczeni stalkerzy czêsto zamawiaj¹ go nie bacz¹c na wysoki koszt. + + + SGI-5k Strie³oka + + + Szwedzki karabin szturmowy SGI-5k. Chocia¿ trudno go nazwaæ nowym, widaæ, ¿e poprzedni w³aœciciel dobrze o niego dba³: broñ zosta³a rozebrana, a potem z³o¿ona ponownie, po tym jak zoptymalizowano dzia³anie ka¿dego elementu, zwiêkszaj¹c moc obalaj¹c¹. Na kolbie wyryto literê „S" i 16 ma³ych kresek. + + + SPSA-14 + + + SPSA-AUT + + + Strzelba SPSA-AUT z samonapinaj¹cym mechanizmem strzelaj¹cym powstaje wy³¹cznie w warsztatach Powinnoœci. Ta broñ jest przeznaczona do walki z du¿ymi grupami mutantów. Ulepszony mechanizm ³aduj¹cy zapewnia du¿¹ szybkoœæ strza³u, a pojemnoœæ magazynka zwiêkszono do 10. Strzela nabojami kalibru 12x70. + + + Karabinier + + + Strzelba wojskowa zaprojektowana specjalnie dla jednostek szturmowych na bazie SPSA-14. Tak jak jej poprzednik mo¿e strzelaæ automatycznie, ale dziêki zrównowa¿onemu systemowi bezwstrz¹sowemu lepiej radzi sobie z odrzutem. + + + SWDm-2 + + + Wojskowy karabin snajperski obecny na rynku od ponad 50 lat i ceniony za wyj¹tkow¹ niezawodnoœæ i ³atwoœæ obs³ugi. SWDm-2 jest u¿ywany przez wojsko w celu zwiêkszenia skutecznego zasiêgu ich jednostek, ale stalkerzy szanuj¹ tê broñ za zdolnoœæ przebijania pancerzy, dziêki której pokonuje zarówno skórê mutantów, jak i kamizelki kuloodporne. + + + Ryœ + + + Rêcznie sk³adana wersja karabinu snajperskiego SWDm-2. Nie ró¿ni siê od niego wygl¹dem, ale zapewnia idealne po³¹czenie celnoœci i mocy obalaj¹cej. + + + SWUmk-2 + + + SWU2-A + + + Ten skrócony karabin snajperski ze zwiêkszon¹ szybkoœci¹ strza³u to kolejny etap ewolucji karabinu snajperskiego SWUmk-2. Ta broñ nale¿a³a do Maksa, legendarnego stra¿nika Wolnoœci. + + + Strzelba myœliwska + + + Ta niezwykle popularna strzelba myœliwska typu „bok" zapewnia lepsz¹ obronê przed mutantami ni¿ pistolet - jest bardziej precyzyjna i ma wiêksz¹ moc obalaj¹c¹. U¿ywana g³ównie przez nowicjuszy na obrze¿ach Zony. + + + Niezidentyfikowana broñ + + + Nieznana broñ, której mechanizm ogniowy nie zosta³ zidentyfikowany. Wydaje siê uszkodzona - po naciœniêciu spustu nic siê nie dzieje. + + + UDP Compact + + + Najznakomitsze cechy tej broni to absolutna niezawodnoœæ i wytrzyma³oœæ po³¹czone z wyborn¹ celnoœci¹. Do drobnych wad nale¿¹ jej znaczne rozmiary, stosunkowo wysoko po³o¿ony œrodek ciê¿koœci i masywny zamek, co czyni j¹ trudn¹ do ukrycia, ale to wci¹¿ za ma³o by przes³oniæ jej liczne zalety. Broñ ta jest szczególnie popularna wœród weteranów Zony. + + + Marsz + + + Ma³y, wielkokalibrowy pistolet z krótkim ruchem zamka i jego lekkim mechanizmem monta¿owym. Nale¿a³ do stalkera zwanego Wilczarzem. NajwyraŸniej jest to zmodyfikowany pistolet UDP Compact. + + + SA Lawina + + + Wintar BC + + + Specjalny wojskowy karabin snajperski zbudowany z myœl¹ o cichym, bezb³yskowym oddawaniu strza³ów podczas operacji specjalnych, gdzie wczesne wykrycie strzelca mo¿e zawa¿yæ na wyniku misji. Wintar BC skutecznie przebija pancerze i ma du¿¹ moc obalaj¹c¹, posiada te¿ zintegrowany celownik snajperski i optyczny. Mimo ma³ego magazynka wysoko ceniony przez wielu stalkerów. + + + Przyp³yw + + + Broñ wykonana dla jednostek wojskowych na bazie cichego karabinu snajperskiego. W porównaniu z poprzednikiem, strzelb¹ Wintar BC, karabin ten ma zmniejszon¹ szybkoœæ strza³u i zwiêkszon¹ moc obalaj¹c¹, dziêki czemu strzelec mo¿e po kolei wyeliminowaæ wrogów nie ujawniaj¹c przy tym swojej pozycji. + + + Walker P9m + + + Chaser 13 + + + Zachodnia strzelba g³adkolufowa, niezwykle popularna na ca³ym œwiecie dziêki niezwyk³ej niezawodnoœci i szybszemu prze³adowaniu. Przez ³owców z Zony szczególnie ceniona za sw¹ funkcjonalnoœæ. Wszystkie jej elementy s¹ powleczone œrodkiem antykorozyjnym. + + + Drapie¿ca + + + Spersonalizowana, ³adowana pompkowo strzelba nale¿¹ca wczeœniej do Trapera. Myœliwy wymaga³ od swojej broni tylko tego, by zabija³a drapie¿niki jednym strza³em. Ta filozofia opiera³a siê na przekonaniu, ¿e niezale¿nie od tego, ilu ludzi zabi³o zwierzê, wci¹¿ by³o tylko zwierzêciem i w zwi¹zku z tym nie powinno cierpieæ. + + + Baterie domowej roboty + + + Celownik SUSAT Mera + + + Nowoczesny karabin szturmowy opracowany jako zastêpstwo dla starzej¹cego siê AKM 74/2. G³ówna ró¿nica to tryb bardzo szybkiego strzelania dwiema seriami, dziêki któremu dwie kule mog¹ trafiæ w dok³adnie ten sam punkt znajduj¹cy siê na celu oddalonym nawet o 100 metrów. W porównaniu z trybem jednoseryjnym znacznie podnosi to prawdopodobieñstwo trafienia celu, tym samym potencja³ zabójczy, moc obalaj¹c¹ oraz zdolnoœæ penetracji pancerza. + + + Ta opracowana w 1974 r. broñ by³a zwiastunem przejmowania ma³okalibrowych i niskoimpulsowych naboi przez kraje Uk³adu Warszawskiego. AKM-74/2, potomek najpopularniejszego karabinu szturmowego na œwiecie, ma jeszcze wiêkszy hamulec wylotowy, który dodatkowo zmniejsza i tak ju¿ zadowalaj¹cy odrzut. Daje to lepsz¹ celnoœæ i skupienie, zw³aszcza przy oddawaniu szybkich pojedynczych strza³ów lub krótkich serii. Karabin jest bardzo prosty i niezawodny. + + + Mimo ¿e pod wzglêdem rozmiaru, wagi i celów taktycznych broñ ta przypomina pistolety maszynowe, z uwagi na fakt, ze jej mechanizm wewnêtrzny jest taki sam, jak w AKM 74/2, jest ona zaliczana do karabinów szturmowych. Jest ona ceniona za swoj¹ mobilnoœæ w walce na krótki dystans i wysok¹ zdolnoœæ przebijania pancerzy, natomiast jej wad¹ jest krótki efektywny zasiêg (pomimo doœæ d³ugiego zasiêgu kuli), tendencja do przegrzewania siê i du¿e prawdopodobieñstwo rykoszetu. + + + Ulepszona wersja klasycznego pistoletu automatycznego, który sprawdzi³ siê znakomicie we wszystkich konfliktach zbrojnych XX w. i pewnym krokiem wszed³ w nowe tysi¹clecie. Jest produkowany przez dziesi¹tki, jeœli nie setki wytwórców broni na ca³ym œwiecie, zarówno w wersji standardowej, jaki i w zmodyfikowanych konfiguracjach. Jej jedyna wada, ma³a pojemnoœæ magazynka, jest z nadwy¿k¹ rekompensowana przez du¿¹ si³ê, z jak¹ uderza amunicja. + + + Najwy¿sza forma rozwoju dzia³ka rêcznego: du¿ego, ciê¿kiego i bardzo zabójczego. Opracowano j¹ jako specjalistyczn¹ broñ myœliwsk¹ do ³owów na grubego i œredniego zwierza, a tak¿e do zawodów strzeleckich, podczas których strzela siê z ponad 50 metrów do celów ze stali. Ograniczone wystêpowanie w Zonie mo¿na wyt³umaczyæ cen¹, rozmiarem i wag¹, które dwukrotnie przekraczaj¹ analogiczne cechy innych pistoletów. + + + Ta futurystyczna z wygl¹du broñ o budowie bezkolbowej to w rzeczywistoœci produkowany masowo system modu³owy, ³¹cz¹cy w sobie karabin ze skomputeryzowanym systemem kontroli ognia i 40-milimetrowy granatnik. Mimo du¿ych rozmiarów broñ jest bardzo ergonomiczna, ³atwa w u¿yciu i o dobrych parametrach technicznych. + + + Pistolet produkcji ukraiñskiej u¿ywany g³ównie przez si³y policyjne. Ma lepsz¹ celnoœæ i wiêkszy magazynek oraz jest bardziej ergonomiczny ni¿ pistolety PMm. Trafia do Zony w du¿ych iloœciach dziêki sprzeda¿y broni z defektami spowodowanymi b³êdami technicznymi we wczesnych modelach. Mimo tego jest na ni¹ du¿y popyt wœród stalkerów, poniewa¿ posiada dobre parametry bojowe. + + + Nowy cz³onek rodziny produkowanych na Zachodzie karabinów szturmowych, który znacz¹co ró¿ni siê od poprzednich modeli w tej serii, zbudowanych na bazie automatu z pó³otwartym naci¹giem monta¿owym zamka. Ta broñ bardziej przypomina amerykañskie automatyczne karabiny szturmowe na gaz, z systemem krótkosuwowych t³oków gazowych. Te zmiany powoduj¹, ¿e karabin ten jest pierwszorzêdnym przyk³adem nowoczesnej broni - lekkiej, niezawodnej i ergonomicznej. + + + Znaczna liczba wad tej broni sprawi³a, ze zosta³a ona zmodernizowana, kiedy jej przestarza³e zapasy dotar³y do Zony za poœrednictwem czarnego rynku. G³ówne zalety broni to wbudowany celownik 4x, wysoka precyzyjnoœæ jednego strza³u i niezawodna technologia ulepszeñ. Kiedy strzela siê seriami, precyzyjnoœæ broni znacznie spada, a jej wewnêtrzne mechanizmy staj¹ siê nieco zawodne. + + + Kolejny krok w rozwoju tej s³awnej rodziny broni. Zmian dokonano w górnej po³owie stalowej konstrukcji z³o¿onej z lufy, tuby gazowej i naci¹gu monta¿owego zamka, co zmniejszy³o jej wagê i poprawi³o ergonomiê i system gazowy. Broñ jest bardzo precyzyjna, ale sk³onnoœæ do gromadzenia brudu czyni j¹ ma³o przydatn¹ w trudnych warunkach Zony. + + + Ten pistolet zosta³ wyprodukowany w drugiej po³owie XX w. na bazie PMm dla si³ specjalnych i jednostek zwiadowczych. Na przedniej czêœci lufy znajduje siê zintegrowany z ni¹ t³umik, a mechanizm naci¹gu jest krótki, dziêki czemu cofaj¹cy siê zamek jest umieszczony nie w nim, a na rêkojeœci broni. Choæ pistolet ten wyszed³ ju¿ z mody, we w³aœciwych rêkach nadal jest skuteczn¹ broni¹. + + + Ta radziecka broñ jest najpopularniejszym pistoletem w Zonie i jedn¹ z najlepszych wœród dostêpnych niewielkich, obronnych broni palnych. Jest ma³y, ³atwy w u¿yciu i utrzymaniu, rzadko zawodzi. Posiada te¿ kilka wad, do których nale¿y ma³y zasiêg, niska celnoœæ i s³aba moc obalaj¹ca, a ponadto, w porównaniu do nowoczesnych pistoletów, niekorzystna waga i wielkoœæ magazynka. + + + G³adkolufowa strzelba bojowa typu rewolwerowego, maj¹ca zapewniæ ogromn¹ si³ê ogniow¹ jednostkom wojskowym. Jej zaletami s¹ du¿y magazynek i znaczna szybkoœæ strza³u, ale cen¹ za nie s¹ wielkoœæ i ciê¿ar w po³¹czeniu z d³ugim czasem ³adowania. W Zonie spotyka siê j¹ rzadko, jest u¿ywana g³ównie do walki z mutantami w zamkniêtej przestrzeni. + + + Ten granatnik z lat 60. XX w. trafi³ do Zony z magazynów wojskowych. Jest to g³adkolufowy, bezodrzutowy system jednostrza³owy z otwart¹ z ty³u luf¹. Posiada celownik optyczny PGO-7 2.7x. Chocia¿ jego znaczne rozmiary i waga czyni¹ go ma³o przydatnym dla stalkerów, dziêki du¿ej sile niszcz¹cej i ³atwej obs³udze zyska³ w Zonie oddanych wielbicieli. + + + Ta broñ, jedyny istniej¹cy masowo produkowany model znanego na ca³ym œwiecie pistoletu, zdoby³a s³awê dziêki znakomitej ergonomii i celnoœci, a chocia¿ jej magazynek jest stosunkowo ma³y, rekompensuje to potê¿na amunicja i mechanizm dzia³aj¹cy jak szwajcarski zegarek. Niektórzy uwa¿aj¹, ¿e SIP-t M200 to najlepsza masowo produkowana broñ palna kalibru .45ACP na œwiecie, posiada ona wielu zwolenników wœród doœwiadczonych stalkerów i najemników. + + + Zaprojektowana w drugiej po³owie XX w. ta g³adkolufowa strzelba automatyczna posiada mo¿liwoœæ prze³¹czania siê pomiêdzy ró¿nymi trybami prowadzenia ostrza³u. Uniwersalna broñ policji i oddzia³ów szturmowych. Ceniona za niezawodnoœæ i wszechstronnoœæ taktyczn¹. Mimo du¿ej wagi, skomplikowanego mechanizmu i wysokiej ceny, w Zonie panuje na ni¹ du¿y popyt, poniewa¿ jest bardzo skuteczna przeciw mutantom. + + + Unowoczeœniona wersja karabinu snajperskiego SWDm-2 w kompaktowej wersji bezkolbowej, opracowana na zamówienie si³ szybkiego reagowania. Umo¿liwia szybszy ostrza³ precyzyjny i jest znacznie l¿ejsza, a celnoœæ jednostrza³owa na krótki i œredni dystans jest zbli¿ona do celnoœci jej poprzednika. Dziêki tym cechom jest ceniona przez niezliczone rzesze stalkerów. + + + Ten karabin szturmowy, zmodyfikowana wersja cichego karabinu snajperskiego Wintar BC, by³a przeznaczona dla si³ specjalnych. Jego g³ównym zadaniem jest zapewnienie skutecznego ostrza³u wrogów wykorzystuj¹cych nowoczesny sprzêt ochronny przy równoczesnym nieujawnianiu pozycji strzelaj¹cego. Dziêki zintegrowanemu t³umikowi i amunicji kalibru 9x39 z ciê¿kimi poddŸwiêkowymi kulami, dŸwiêk i rozb³ysk broni zosta³y zredukowane do minimum. + + + Ten supercelny, zaawansowany karabin, znany jako obiekt 62, zosta³ zaprojektowany w tajnych laboratoriach Zony. Dziêki systemowi elektromagnesów naboje s¹ wyrzucane z ogromn¹ prêdkoœci¹, co daje niewiarygodn¹ moc obalaj¹c¹ przy praktycznie zerowym odrzucie. Broñ jest zasilana umieszczanymi w bateriach fragmentami artefaktów. + + + Pistolety Martha ciesz¹ siê w œwiecie opini¹ ma³o zawodnych, chocia¿ nieco przyciê¿kich. U¿ywaj¹ ich si³y zbrojne i policyjne z ca³ego œwiata. Dziêki potê¿nym nabojom i pojemnoœci magazynka pistolet ten jest popularny tak¿e w pó³œwiatku. Marthy znajdowane w Zonie s¹ zwykle przestarza³e, prawdopodobnie pochodz¹ ze starych zapasów. + + + Znakomity zachodni pistolet znany z niezawodnoœci, du¿ej pojemnoœci magazynka i dobrej celnoœci, jak równie¿ znakomitej ergonomicznoœci w porównaniu do innych broni palnych w swojej klasie. Jeden z najczêœciej u¿ywanych pistoletów w Zonie, zarówno poœród zawodowców, jak i ¿ó³todziobów, których na niego staæ. + + + Baterie, które wykorzystuj¹ jako Ÿród³o mocy fragment artefaktu B³ysk. Wytwarzane przy u¿yciu zaawansowanego sprzêtu. + + + Te ogniwa o mniejszej pojemnoœci wykorzystuj¹ jako Ÿród³o mocy fragment artefaktu B³ysk. Ni¿sza pojemnoœæ wynika z prymitywnych warunków produkcji i braku specjalistycznego sprzêtu. + + diff --git a/gamedata/configs/text/pol/st_items_weapons_upgrades.xml b/gamedata/configs/text/pol/st_items_weapons_upgrades.xml new file mode 100644 index 0000000..b287567 --- /dev/null +++ b/gamedata/configs/text/pol/st_items_weapons_upgrades.xml @@ -0,0 +1,2022 @@ + + + + P³askoœæ toru pocisku + + + Kaliber + + + Odrzut + + + Niezawodnoœæ + + + Cel. kolimatorowy 1,6x + + + Celownik optyczny 4x + + + T³umik + + + Zaczep podlufowy + + + Waga + + + Zewnêtrzny gwint pozwala na instalacjê t³umika. + + + Zewnêtrzny gwint lufy + + + Instalacja zaczepu dla celownika optycznego. + + + Zaczep celownika optycznego + + + Instalacja zaczepu dla granatnika podwieszanego. + + + Zaczep dla granatnika podwieszanego + + + Wymiana standardowego magazynka na wiêkszy + + + Zwiêkszona pojemnoœæ magazynka + + + Skomplikowana, zintegrowana modyfikacja mechanicznych i automatycznych czêœci broni, która pozwala na zmianê jej kalibru kosztem niezawodnoœci. + + + Zmiana kalibru na 5x45 + + + Skomplikowana, zintegrowana modyfikacja mechanicznych i automatycznych czêœci broni, która pozwala na zmianê jej kalibru kosztem niezawodnoœci. + + + Zmiana kalibru na 5x56 + + + Skomplikowana, zintegrowana modyfikacja mechanicznych i automatycznych czêœci broni, która pozwala na zmianê jej kalibru kosztem niezawodnoœci. + + + Zmiana kalibru na 9x18 + + + Skomplikowana, zintegrowana modyfikacja mechanicznych i automatycznych czêœci broni, która pozwala na zmianê jej kalibru kosztem niezawodnoœci. + + + Zmiana kalibru na 9x19 + + + Zwiêkszenie pojemnoœci magazynka bez wyd³u¿ania broni + + + Zwiêkszenie pojemnoœci magazynka + + + L¿ejszy i jednoczeœnie bardziej pojemny magazynek pude³kowy wykonany z poliwêglanu, który pozwala na czêœciowe zrównowa¿enie wzrostu wagi. + + + Zwiêkszona pojemnoœæ magazynka pude³kowego + + + Zwiêkszona liczba p³yt tytanowych znacz¹co poprawia trwa³oœæ kamizelki kuloodpornej. + + + Dodatkowe aluminiowe/tytanowe p³yty + + + Wzmocnione p³yty, które cechuj¹ siê o wiele wiêksz¹ trwa³oœci¹, ale nie zapewniaj¹ du¿o lepszej ochrony. + + + P³yty kevlarowe + + + Stop aluminium i tytanu, który pozwala na zmniejszenie wagi tego ostatniego, pozwalaj¹c na u¿ycie go w osobistym ekwipunku ochronnym. + + + P³yty aluminiowo-tytanowe + + + Tytan jest zbyt ciê¿ki, aby u¿ywaæ go w osobistym ekwipunku ochronnym, ale jest czasami stosowany w egzoszkieletach. + + + Czêœci z litego tytanu + + + Wymiana metalu na w³ókno wêglowe pozwala na zmniejszenie wagi kamizelki kuloodpornej bez zmniejszania niezawodnoœci. + + + Zast¹pienie metalowych czêœci kamizelki kuloodpornej elementami z w³ókna wêglowego + + + Kevlar to jeden z najczêœciej stosowanych materia³ów w kamizelkach kuloodpornych. + + + P³yty kevlarowe + + + Poliwêglan jest lekki niczym plastik, ale potrafi zatrzymaæ pocisk z pistoletu. + + + P³yty poliwêglanowe + + + P³yty ceramiczne szybko siê zu¿ywaj¹, ale s¹ bardziej niezawodne ni¿ kevlar dziêki ulepszonej negacji si³y uderzenia pocisku. + + + Instalacja p³yt ceramicznych + + + Proste stalowe p³yty przyszyte do p³aszcza. + + + Stalowe p³yty + + + Zewnêtrzna warstwa ceramiczna mo¿e odbijaæ pociski przeciwpancerne uderzaj¹ce pod k¹tem. Jeœli nast¹pi trafienie bezpoœrednie, pocisk rozsypie siê w drobny py³. + + + Zewnêtrzna warstwa ceramiczna kamizelki kuloodpornej + + + Dodatkowa wewnêtrzna warstwa opancerzenia, która pomaga w przypadku, gdy warstwa wewnêtrzna zostanie uszkodzona. + + + Duplikat warstwy ochronnej + + + Pancerz z wewnêtrzn¹ warstw¹, która rozprowadza si³ê trafienia po wiêkszym obszarze. + + + Dodatkowy element kompensuj¹cy + + + Rama ta jest zdolna do zatrzymania pocisku z pistoletu, jeœli sama kamizelka kuloodporna ulegnie uszkodzeniu. + + + Dodatkowa rama pancerna + + + Cienkie warstwy opancerzenia uk³adane s¹ w warstwy, aby zwiêkszyæ odpornoœæ pancerza na zu¿ycie. + + + Opancerzenie segmentowe + + + Wiêksza iloœæ p³yt nie zapewnia lepszej ochrony, ale gwarantuje wiêksz¹ trwa³oœæ. + + + Druga, zapasowa warstwa + + + Ruchome p³yty chroni¹ stawy przed postrza³ami. + + + Instalacja ruchomych p³yt pancerza dla stawów + + + L¿ejsza rama aluminiowa dla p³yt, zastêpuj¹ca ramê stalow¹. + + + L¿ejsza rama aluminiowa + + + Pogrubione wk³adki, których zadaniem jest redukcja si³y uderzenia pocisku odczuwalnej przez kamizelkê kuloodporn¹. + + + Pogrubiaj¹ce wk³adki skórzane + + + Dodatkowa warstwa ceramiczna z silikonow¹ amortyzacj¹. + + + Wzmocnione p³yty ceramiczne + + + U¿ycie l¿ejszych materia³ów w celu zmniejszenia wagi opancerzenia. + + + Instalacja l¿ejszych syntetycznych i plastikowych komponentów + + + P³yty z litego tytanu s¹ zbyt ciê¿kie dla ¿o³nierza piechoty, ale potê¿ne si³owniki egzoszkieletu bez problemu sobie z nimi poradz¹. + + + Tytanowy napierœnik + + + SBK-RKhZ.m.II - specjalny kombinezon bojowy o zwiêkszonym stopniu ochrony radiochemicznej, model drugi. + + + Hermetyczny kombinezon ochronny SBK-RKhZ.m.II + + + Ta praco- i czasoch³onna modyfikacja nie jest zbyt popularna, ale znane s¹ przypadki, gdy u¿ytkownik zawdziêcza³ jej ¿ycie. + + + Wszyta kolczuga + + + "£uska" sk³ada siê z nachodz¹cych na siebie p³yt ceramicznych, które chroni¹ u¿ytkownika przed trafieniem w to samo miejsce. + + + Instalacja os³ony ceramicznej £uska + + + Po potraktowaniu Suwerenem kombinezon staje siê praktycznie niewra¿liwy na obra¿enia mechaniczne i rozdarcia materia³u. + + + Traktowanie preparatem wzmacniaj¹cym Suweren + + + Elementy ceramiczne pozwalaj¹ na os³abienie si³y uderzenia pocisku, rozpraszaj¹c j¹ na fragmenty, które nastêpnie siê od³amuj¹. + + + Aplikacja warstwy ceramicznej na p³yty + + + Wzmocniona matryca, u¿ywaj¹ca berylu zamiast aluminium, to jeden z najlepszych sposobów ochrony ¿o³nierzy piechoty. + + + Elementy ceramiczne pozwalaj¹ na os³abienie si³y uderzenia pocisku, rozpraszaj¹c j¹ na fragmenty, które nastêpnie siê od³amuj¹. + + + Warstwa ceramiczna na p³ytach + + + W³ókno wêglowe to jeden z najbardziej trwa³ych i odpornych na zu¿ycie materia³ów. Jest ono u¿ywane nawet przy budowie samolotów. + + + Po³¹czenie wielowarstwowego polimeru i pokrycia ceramicznego. + + + £¹czone pokrycie p³ytowe Ekran + + + Rodzima technologia i jeden z najnowszych wynalazków w dziedzinie wyposa¿enia ochronnego - sztuczne szafiry. + + + Regulacja czêœci pozwala broni na d³u¿sze dzia³anie bez zacinania siê. + + + Regulacja czêœci + + + Modyfikacja przy u¿yciu plastikowych czêœci okaza³a siê nie tylko op³acalna, ale ca³kiem popularna. + + + Czêœci wielomateria³owe + + + Niskoimpulsowy mechanizm strzelniczy zapewnia odrzut mniejszy ni¿ starsze wersje. + + + Niskoimpulsowy mechanizm strzelniczy + + + Dziêki stabilnej pozycji pocisku w trakcie wystrza³u, pod¹¿a on w prostej linii do celu. + + + Instalacja urz¹dzenia pozycjonuj¹cego pociski + + + Zamek rolkowy jest czêsto u¿ywany w uzbrojeniu. Pozwala on na zmniejszenie odrzutu i poprawê skupienia strza³ów. + + + Pó³swobodny zamek z systemem rolkowym + + + Instalacja dodatkowego cylindra gazowego pozwala na zmniejszenie czasu prze³adowywania, dziêki czemu znacz¹co wzrasta szybkostrzelnoœæ. + + + Instalacja dodatkowego cylindra gazowego + + + Silnik gazowy jest u¿ywany w strzelbach samopowtarzalnych przy ogniu pó³automatycznym. + + + Instalacja silnika gazowego + + + Ochronne pokrycie chroni przed niewypa³em w wyniku usterki mechanicznej. + + + Ochronne pokrycie czêœci + + + Przy oddawaniu strza³u system otwiera i zamyka drogê do lufy poprzez przesuwanie przedniego uchwytu wzd³u¿. + + + System zamykania lufy + + + System inercyjny, który pozwala przerobiæ pompkowy mechanizm ³adowania w strzelbach na automatyczny. + + + Instalacja automatycznego systemu inercyjnego + + + Po³¹czony modu³ t³okowy to jedno z najlepszych rozwi¹zañ technicznych zmniejszaj¹cych odrzut. + + + Po³¹czony modu³ t³okowy + + + Automatyczna prowadnica zwiêksza celnoœæ broni. + + + Instalacja automatycznej prowadnicy + + + Aktywna przeciwwaga odsuwa siê od ramy zamka, pozwalaj¹c na czêœciow¹ kompensacjê odrzutu. + + + Instalacja aktywnej przeciwwagi + + + Instalacja dodatkowych rolek zmniejsza odrzut. + + + Instalacja rolkowego systemu kompensacji odrzutu + + + Wymiana zamka broni na lepsz¹ konstrukcjê, co zwiêksza szybkostrzelnoœæ. + + + Mechanizm strzelniczy z otwartym zamkiem + + + Przy wystrzale przeciwwaga ramy zamka rusza siê w kierunku przeciwnym ni¿ sam zamek, co pozwala na wygodniejsze strzelanie z karabinu maszynowego. + + + Instalacja samoreguluj¹cej siê przeciwwagi + + + Przeciwwaga jest instalowana jako dodatkowy element w komorze zamkowej. Jej zadaniem jest zmniejszanie odrzutu przy u¿yciu przeciwsi³y. + + + Dodanie ruchomej przeciwwagi + + + Modyfikacja przy u¿yciu polimerowych czêœci okaza³a siê nie tylko op³acalna, ale ca³kiem popularna. + + + Odporne na uderzenia czêœci polimerowe do elementów automatycznych + + + Instalacja specjalnego mechanizmu chroni¹cego broñ przed zabrudzeniami. + + + Automatyczny dwupozycyjny regulator gazowy + + + Specjalny element uszczelnia lufê, zwiêkszaj¹c ciœnienie przy wystrzale. + + + Instalacja urz¹dzenia uszczelniaj¹cego lufê + + + Synchronizacja jest wykonywane przy pomocy ko³a zêbatego, co pozwala na zwiêkszenie p³askoœci toru pocisku. + + + Synchronizacja ruchu trzpienia + + + Instalowany w tylnej czêœci komory zamkowej element pozwalaj¹cy zmniejszyæ szybkoœæ ruchu zamka. Jego instalacja pozwala zwiêkszyæ efektywnoœæ strza³ów mierzonych. + + + Mechanizm opóŸnienia inercji + + + Specjalny element instalowany w mechanizmie zamka w celu z³agodzenia jego ruchów i zmniejszenia odrzutu. + + + Dodanie systemu redukcji szybkoœci + + + Zintegrowane ulepszenie u¿ywane normalnie w karabinach snajperskich ze wzglêdu na znaczn¹ wagê. + + + Wbudowany system amortyzacji odrzutu + + + Instalacja mechanizmu z ruchomymi czêœciami, który zwiêksza szybkoœæ podawania kolejnych nabojów przy strzelaniu. + + + Automatyczne podawanie amunicji + + + Ulepszenie automatycznego mechanizmu broni wymagaj¹ce wymiany znacznej liczby czêœci. Zwiêksza celnoœæ. + + + Zbalansowany system bezuderzeniowy + + + Syntetyczny element umieszczony bezpoœrednio przed obszarem ruchu zamka. Pozwala on na zmniejszenie wielkoœci tego obszaru, w rezultacie znacz¹co zwiêkszaj¹c celnoœæ broni. + + + Dodanie urz¹dzenia zatrzymuj¹cego + + + Urz¹dzenie zaznacza pozycjê lufy. Jeœli ulegnie ona zmianie, otwierane s¹ dodatkowe otwory kompensacyjne. + + + Instalacja inteligentnego kompensatora + + + Modernizacja pozwalaj¹ca na bardziej p³ynn¹ pracê spustu, co jest wa¿ne dla snajperów. + + + Instalacja mechanizmu regulacji si³y nacisku na spust + + + To urz¹dzenie pozwala strzelaj¹cemu wyczuæ moment, w którym oddawany jest strza³, co pozwala zwiêkszyæ celnoœæ. + + + Instalacja spustu ostrzegaj¹cego + + + Czêsto u¿ywany w zachodnich broniach zamek rolkowy zmniejsza odrzut i poprawia skupienie strza³ów. + + + Pó³swobodny zamek z systemem rolkowym + + + Specjalny mechanizm przejmuje na siebie czêœæ odrzutu podczas wystrza³u, co sprawia, ¿e strzelanie z broni staje siê wygodniejsze. + + + System amortyzacji strza³ów + + + Poniewa¿ karabiny snajperskie wymagaj¹ czêstszej konserwacji ni¿ zwyk³e bronie, mo¿na je zmodyfikowaæ o trójpozycyjny regulator gazu. + + + Instalacja automatycznego trójpozycyjnego regulatora gazu + + + Pokrycie zapobiega rozproszeniu energii, co zwiêksza impuls pocisków. + + + Pokrycie czêœci mechanicznych + + + Instalacja d³ugiego rygla mechanizmu strzelniczego pozwala na strzelanie z karabinu snajperskiego w trybie automatycznym. + + + Mechanizm strzelniczy z d³ugim ryglem + + + Urz¹dzenie zatrzymuj¹ce os³abia odrzut, zwiêkszaj¹c precyzjê strza³u. + + + Instalacja urz¹dzenia zatrzymuj¹cego + + + Wymiana standardowej lufy na d³u¿sz¹ zwiêksza celnoœæ i p³askoœæ toru pocisku. + + + D³u¿sza lufa + + + Brak du¿ych komór gazowych i mocowanie lufy na przednim uchwycie maj¹ pozytywny wp³yw na celnoœæ. + + + Instalacja lufy samonoœnej + + + Ta modyfikacja zmniejsza szkody wyrz¹dzane przez ulepszenia znacz¹co przyspieszaj¹ce szybkostrzelnoœæ. + + + Instalacja lufy z ¿eberkami ch³odz¹cymi + + + Wymiana przestarza³ej czêœci na nowoczesn¹ zmniejsza odrzut. + + + Zoptymalizowany kompensacyjny hamulec wylotowy + + + Instalacja lufy z dodatkowymi gwintowanymi kana³ami zwiêksza szybkoœæ pocisku i celnoœæ broni kosztem znacz¹cego wzrostu odrzutu. + + + Dodatkowe gwintowane kana³y w lufie + + + Ta lufa ma na celu zwiêkszenie rozrzutu przy walce na bliski dystans, dlatego te¿ nie nadaje siê ona do prowadzenia precyzyjnego ostrza³u. Zwiêksza szybkostrzelnoœæ dziêki uproszczeniu gwintowanej czêœci lufy. + + + Instalacja lufy z uproszczon¹ czêœci¹ gwintowan¹ + + + Gwint poligonalny jest z regu³y u¿ywany w celu zwiêkszenia celnoœci. + + + Instalacja lufy z gwintem poligonalnym + + + Pozwala na zmniejszenie temperatury lufy i zwiêkszenie szybkostrzelnoœci. + + + Sinusoidalny gwint lufy + + + Osobliwa modyfikacja lufy dla broni o wysokiej p³askoœci toru pocisku. Zwiêksza ona ich celnoœæ. + + + Gwintowane kana³y karabinu snajperskiego + + + Materia³y o wysokiej trwa³oœci zmniejszaj¹ szybkoœæ zu¿ywania siê lufy broni. + + + Lufa ze stopu o wysokiej trwa³oœci + + + Obróbka wewnêtrznej powierzchni lufy chroni j¹ przed uszkodzeniami mechanicznymi. + + + Obróbka lufy + + + Syntetyczne wype³nienie otworu lufy pozwala na lepsze skupienie strza³ów. + + + Syntetyczny wype³niacz lufy + + + Wymiana zwyk³ej lufy na d³u¿sz¹ zwiêksza p³askoœæ toru pocisku. + + + D³u¿sze odcinki lufy + + + Wprowadzenie kana³ów odprowadzaj¹cych gaz nie tylko zapobiega gromadzeniu siê brudu, ale pozwala te¿ czêœciowo przekierowaæ odrzut do lufy. + + + Pod³u¿ne kana³y odprowadzaj¹ce gazy prochowe + + + Wymiana zwyk³ej lufy na d³u¿sz¹ zwiêksza p³askoœæ toru pocisku. + + + D³u¿sza sekcja lufy + + + To pokrycie chroni lufê przed przegrzewaniem, usuwa defekty produkcyjne i wyd³u¿a jej cykl ¿ycia. + + + Aplikacja pokrycia ochronnego do wewnêtrznej czêœci lufy + + + System balansowania lufy zawiera kilka ruchomych t³oków, które zapewniaj¹ lepsz¹ stabilnoœæ trzymanej broni. + + + System balansowania lufy + + + Gwintowana czêœæ lufy uniemo¿liwia strzelanie œrutem, ale poprawiona celnoœæ uzyskana dziêki tej modyfikacji w pe³ni to rekompensuje. + + + Gwintowane lufy + + + Wype³nienie przy u¿yciu polimerów pozwala na zwiêkszenie ciœnienia w lufie, zwiêkszaj¹c szybkoœæ pocisku. + + + Dynamiczny wype³niacz lufy + + + Cylindryczne wiercenia w lufie pozwalaj¹ na zwiêkszenie szybkostrzelnoœci bez zmniejszenia celnoœci. + + + Cylindryczne wiercenia w lufie + + + Jednoczeœnie ze strza³em z broni aktywna przeciwwaga przesuwa siê do wylotu lufy, czêœciowo kompensuj¹c w ten sposób odrzut. + + + Dodanie aktywnej przeciwwagi do os³ony lufy + + + Wymiana standardowej lufy na d³u¿sz¹ zwiêksza celnoœæ i p³askoœæ toru pocisku, ale zmniejsza szybkostrzelnoœæ. + + + D³u¿sza sekcja lufy + + + Perforacja lufy pozwala na zmniejszenie odrzutu, poniewa¿ gazy prochowe uciekaj¹ przez specjalne otwory. + + + Perforowana sekcja lufy + + + Technologia skróconej lufy pozwala na zwiêkszenie szybkostrzelnoœci bez poœwiêcania p³askoœci toru pocisku i celnoœci. + + + Skrócona sekcja lufy + + + Chromowe pokrycie wyd³u¿a cykl ¿ycia lufy. + + + Chromowe pokrycie wnêtrza lufy + + + Oddzielacze absorbuj¹ czêœæ odrzutu. + + + Dodanie gumowych oddzielaczy + + + Uproszczona czêœæ gwintowana jest przydatna w walce na krótki dystans, gdzie szybkostrzelnoœæ jest wa¿niejsza od celnoœci. + + + Instalacja lufy z uproszczon¹ czêœci¹ gwintowan¹ + + + Instalacja lufy z dodatkowymi gwintowanymi kana³ami zwiêksza szybkoœæ pocisku i celnoœæ broni kosztem znacz¹cego wzrostu odrzutu. + + + Dodatkowe gwintowane kana³y w lufie + + + Zmniejszenie wagi lufy pozwala na znacz¹ce ograniczenie odrzutu. + + + Przeniesienie kompensatora lufy/t³umika b³ysku na ramê broni + + + Pozwala na zmniejszenie ciep³a lufy i zwiêkszenie szybkostrzelnoœci bez poœwiêcania p³askoœci toru pocisku. + + + Sinusoidalny gwint lufy + + + Gwint poligonalny jest z regu³y u¿ywany w celu zwiêkszenia celnoœci karabinów snajperskich. + + + Instalacja lufy z gwintem poligonalnym + + + Wzmacniacz pneumatyczny pozwala na konwersjê czêœci energii odrzutu na ciœnienie w lufie, co zwiêksza prêdkoœæ wylotow¹ pocisku. + + + Instalacja wzmacniacza pneumatycznego + + + Dodatkowe si³owniki pozwalaj¹ na zwiêkszenie maksymalnego obci¹¿enia + + + Dodatkowe si³owniki + + + Wynalazek techników Wolnoœci, którzy jako pierwsi zast¹pili metal w³óknem wêglowym, co pozwoli³o na zmniejszenie olbrzymiej wagi egzoszkieletów. + + + Wymiana czêœci metalowych na w³ókno wêglowe + + + Opancerzenie chroni kluczowe czêœci egzoszkieletu przed uszkodzeniem przez celny ostrza³. + + + Opancerzenie uk³adu napêdowego + + + System u³atwionego poruszania u¿ywa wzmocnionych sprê¿yn i stawów, co pozwala u¿ytkownikowi na wykorzystanie masy egzoszkieletu do u³atwienia sobie funkcji ruchowych. + + + System u³atwionego poruszania Szagochod + + + Instalacja hydraulicznych wzmacniaczy to modyfikacja, która oddziela trzeci¹ i czwart¹ generacjê pancerzy egzoszkieletowych. Pozwala ona na bieganie w egzoszkielecie. + + + Dodanie wzmacniaczy hydraulicznych do uk³adu napêdowego + + + Wk³adka z tkaniny chroni tkanki przed uszkodzeniem przy uderzeniu pocisku w p³ytê. + + + Amortyzacyjna warstwa tkaniny + + + Silikonowe wype³niacze absorbuj¹ si³ê uderzenia skuteczniej od gumowych - u¿ytkownik otrzymuje mniejsze obra¿enia. + + + Amortyzacyjne wype³niacze silikonowe + + + Tkanina, zatrzaski i wype³niacze s¹ zastêpowane l¿ejszymi materia³ami syntetycznymi w celu zmniejszenia wagi pancerza. + + + L¿ejsze materia³y syntetyczne i polimerowe + + + Pokrycie gum¹ ochroni tkanki przed obra¿eniami przy uderzeniu w p³ytê. + + + Amortyzacyjna warstwa gumy + + + Spodnia warstwa chroni u¿ytkownika, jeœli kombinezon zostanie rozdarty. + + + Wielowarstwowa wk³adka z³o¿ona z poliwêglanów, silikonu i w³ókna wêglowego, która zapewnia dodatkow¹ ochronê przy przebiciu g³ównego pancerza. + + + Ochronne wk³adki polimerowe + + + Hermetyczny kombinezon „Przestrzeñ” stosowany przez Wolnoœæ do poszukiwania artefaktów w obszarach anomalii. + + + Kombinezon ochronny Przestrzeñ + + + Hermetyczna warstwa syntetycznych materia³ów, która zapewnia dodatkow¹ ochronê przy przebiciu zewnêtrznej warstwy. + + + Warstwa syntetyków + + + Kilka ergonomicznych modyfikacji zbudowanych z gumy, które pozwalaj¹ na zachowanie mobilnoœci nawet przy noszeniu ciê¿kiego pancerza. + + + Gumowy kombinezon poprawiaj¹cy mobilnoœæ + + + Konstantan izoluje przed elektrycznoœci¹ i ma bardzo wysok¹ temperaturê topnienia. + + + Konstantanowe wk³adki termoizolacyjne + + + O³ów stanowi niezawodn¹ ochronê przed promieniowaniem, poniewa¿ absorbuje wszystkie trzy jego typy. + + + Dodanie wk³adki o³owianej do kombinezonu + + + Podstawowa ochrona skóry przed deszczem i ¿r¹cymi substancjami + + + P³ócienny kombinezon + + + Tkanina potraktowana ognioodporn¹ substancj¹ jest bardzo popularna wœród stalkerów poszukuj¹cych artefaktów ogniowych. + + + Tkanina potraktowana ognioodporn¹ substancj¹ + + + Magnezowe wk³adki chroni¹ u¿ytkownika przed wysokimi temperaturami. + + + Magnezowe wk³adki + + + Nawet zwyczajna wewnêtrzna warstwa z plastiku mo¿e chroniæ u¿ytkownika przed chemikaliami i elektrycznoœci¹. + + + Hermetyczna wewnêtrzna warstwa z plastiku + + + Tkanina, zatrzaski i wype³niacze s¹ zastêpowane l¿ejszymi materia³ami syntetycznymi w celu zmniejszenia wagi pancerza. + + + Wymiana tkaniny na materia³y syntetyczne + + + Pleksiglas absorbuje dwa typy promieniowania i jest znacznie l¿ejszy ni¿ o³ów. + + + Wewnêtrzna warstwa przewciwpromienna z pleksiglasu + + + Niezawodna ochrona przed chemikaliami i elektrycznoœci¹. + + + Elastyczna, hermetyczna wewnêtrzna warstwa z plastiku + + + Cienka warstwa konstantanu izoluje przed elektrycznoœci¹. + + + Wewnêtrzna warstwa izolacyjna oparta na konstantanie + + + W³ókno szklane u¿ywane jest w kombinezonach stosowanych przez zespo³y reagowania kryzysowego. + + + Os³ona termiczna z w³ókna szklanego + + + Impregnowana tkanina powinna chroniæ przed zatruciem chemikaliami. + + + Impregnowana tkanina kombinezonu + + + Guma mo¿e chroniæ przed krótkotrwa³ym wystawieniem na dzia³anie promieniowania. + + + Gumowana tkanina kombinezonu + + + U¿ywana w kombinezonach stalkerskich w celu zwiêkszenia trwa³oœci. + + + Rama ochronna Tarcza o wysokiej trwa³oœci + + + Nikiel jest wystarczaj¹co odporny na ogieñ, aby byæ u¿ywanym we wk³adkach do kamizelek kuloodpornych + + + Ognioodporna kamizelka kuloodporna z wk³adkami niklowymi + + + Ten stop niklu i magnezu jest u¿ywany w pancerzach w celu ochrony przed pora¿eniem elektrycznym. + + + Kombinezon izolacyjny z wk³adkami manganinowymi + + + Hermetyczny kombinezon z pow³ok¹ antykorozyjn¹ i pancerzem kevlarowym. + + + Zintegrowany kombinezon pancerny Druga Skóra + + + Kombinezon wykonany z nowych, nieznanych polimerów wczeœniej u¿ytych przez Kijowski Instytut Badawczy w produkcji kombinezonu Ekolog, uzupe³niony o bizmutowe wk³adki. + + + Kombinezon polimerowy Ekolog z wk³adkami bizmutowymi + + + Ta o³owiana siatka zapewnia nienaruszaln¹ ochronê przed promieniowaniem i chemikaliami bez zmniejszania mobilnoœci. + + + Kombinezon pleksiglasowy Ratownik z elastyczn¹ siatk¹ o³owian¹ + + + Rodzimy wynalazek, który pojawi³ siê po katastrofie w Czarnobylu. Jest on stosowany w egzoszkieletach w celu zapewnienia ochrony w przypadku usterki elektronicznej. + + + Kombinezon Ewakuator z wk³adkami o³owianymi + + + Zamontowanie celownika szturmowego do walki na ma³e odleg³oœci + + + Celownik kolimatorowy 1,6x + + + Zamontowanie celownika optycznego do walki na œrednie i du¿e odleg³oœci + + + Celownik optyczny 4,0x + + + Zamontowanie celownika optycznego do walki na du¿e odleg³oœci + + + Celownik optyczny 5,0x + + + Zamontowanie celownika optycznego do walki na du¿e odleg³oœci + + + Celownik optyczny 6,0x + + + Modyfikacja broni szturmowych z celownikami kolimatorowymi, polegaj¹ca na zwiêkszeniu kontrastu w zakresie ¿ó³ci. Przydatna w walce o zmierzchu i w nieoœwietlonych budynkach. + + + Zwiêkszenie kontrastu celownika + + + Termowizor pozwala u¿ytkownikowi na wykrywanie i identyfikacjê Ÿróde³ ciep³a o charakterystykach podobnych do ludzkiego cia³a. + + + Automatyczne optyczne namierzanie celów + + + Od czasu wynalezienia noktowizory uratowa³y niejednego snajpera. + + + Instalacja noktowizora + + + Ta modyfikacja pozwala na ³atwe dostosowanie celownika do dystansu strza³u. + + + Regulowany celownik dalmierzowy + + + Wype³niona powietrzem kolba ogranicza odrzut przy strzelaniu seri¹. + + + Wype³niona powietrzem kolba + + + Ruchoma podpórka na ramiê znacz¹co zmniejsza wp³yw si³y odrzutu na organizm. + + + Instalacja amortyzowanej podpórki na ramiê + + + Nowoczesna kolba bior¹ca pod uwagê szczegó³y ludzkiej fizjologii. + + + Kolba ergonomiczna + + + Przy wystrzale z broni, czêœæ powsta³ych gazów prochowych jest przesy³ana z lufy do zag³êbienia za zamkiem, zapewniaj¹c jego p³ynne zatrzymanie w drodze powrotnej. + + + Instalacja gazowego buforu zamka + + + Wyd³u¿enie ramy zamka w stronê kolby pozwala na zwiêkszenie p³askoœci toru pocisku kosztem silniejszego odrzutu. + + + Wyd³u¿enie bufora podmuchu ramy zamka + + + Instalacja ruchomej czêœci w podpórce. Wytwarza ona przeciwdzia³anie przy wystrzale z broni. + + + Ruchoma przeciwwaga + + + Wiêksza podpórka umo¿liwia celniejszy ogieñ. + + + Wiêksza podpórka + + + Sprê¿ynowy bufor amortyzacyjny sprawia, ¿e strzelanie z rêcznego karabinu maszynowego staje siê wygodniejsze. + + + Wbudowany sprê¿ynowy bufor amortyzacyjny + + + Bufor mechanizmu zamka, umieszczony w kolbie, absorbuje wiêksz¹ czêœæ si³y odrzutu. + + + Dodatkowy bufor gazowy mechanizmu zamka + + + Gumowany element os³abiaj¹cy odrzut jest czêsto u¿ywany w fabrycznych kolbach wielkokalibrowych karabinów snajperskich. + + + Amortyzuj¹cy element kolby + + + Regulowana kolba z oparciem dla policzka jest przydatna przy strzelaniu zarówno z wygodnych, jak i niewygodnych pozycji. + + + Regulowana kolba z oparciem dla policzka + + + Urz¹dzenie przeznaczone dla wielkokalibrowych broni cechuj¹cych siê silnym odrzutem, instalowane w kolbie. + + + Hydrauliczny bufor odrzutu w kolbie + + + Aktywne filtry mog¹ chroniæ nawet przed ¿r¹cymi chemikaliami. + + + Aktywne filtry + + + Zamkniêta obrêcz, która zapewnia czêœciow¹ ochronê przed emisjami psionicznymi + + + Obrêcz antypsioniczna wykonana z po³¹czonych ¿eberek stalowych + + + Maska u¿ywana w warunkach ska¿enia powietrza i przy temperaturach zbyt wysokich lub zbyt niskich do oddychania. + + + Aplikacja pow³oki ochronnej + + + Aplikacja pow³oki ochronnej + + + Filtr ze wzmocnion¹ pow³ok¹ antykorozyjn¹ i dodatkow¹ warstw¹ chroni¹c¹ przed truciznami + + + Filtr do pracy w obszarach ska¿enia + + + Pleksiglasowa maska zapewnia czêœciow¹ ochronê przed promieniowaniem + + + Pow³oka pleksiglasowa + + + Pleksiglasowa maska zapewnia czêœciow¹ ochronê przed promieniowaniem. + + + Pleksiglasowa maska przeciwgazowa + + + Respirator ca³kowicie chroni¹cy przed truciznami. + + + Impregnowana maska przeciwgazowa + + + Berylowo-aluminiowa matryca zapewnia znakomit¹ ochronê, nie zwiêkszaj¹c jednoczeœnie wagi he³mu. + + + Berylowo-aluminiowe p³yty + + + Berylowo-aluminiowa matryca zapewnia znakomit¹ ochronê, nie zwiêkszaj¹c jednoczeœnie wagi he³mu. + + + Berylowo-aluminiowe p³yty + + + Ulepszone filtry zapewniaj¹ niezmienn¹ iloœæ tlenu, niezale¿nie od stopnia ska¿enia otoczenia. + + + Instalacja ulepszonych filtrów do zastosowañ badawczych + + + Zaawansowana technologicznie os³ona psioniczna, która podobno zosta³a opracowana przez naukowca nazwiskiem Sacharow. + + + Instalacja obrêczy Tarcza psioniczna + + + Rama ze stopu chroni¹cego przed ciep³em i elektrycznoœci¹. + + + Konstantanowa os³ona twarzy Zwiastun Burzy + + + Dodatkowe opancerzenie zwiêkszaj¹ce trwa³oœæ he³mu. + + + Wzmocniona konstrukcja he³mu + + + Filtr z dodatkowym pokryciem oczyszczaj¹cym i systemem usuwania trucizn. + + + Ulepszony respirator do dzia³añ w skrajnych warunkach + + + Instalacja noktowizora s³u¿¹cego do dzia³añ w nocy lub przy ograniczonym oœwietleniu. + + + Noktowizor pierwszej generacji + + + System przechodzenia na zamkniêty obieg powietrza w przypadku krytycznego ska¿enia otoczenia cz¹stkami radioaktywnymi lub chemikaliami. + + + System zapobiegania zagro¿eniom radiologicznym i chemicznym + + + Maska przeciwgazowa z respiratorem Para + + + Instalacja bardziej zaawansowanego noktowizora s³u¿¹cego do dzia³añ w ca³kowitej ciemnoœci. + + + Noktowizor drugiej generacji + + + Termowizor pozwala u¿ytkownikowi na wykrywanie i identyfikacjê Ÿróde³ ciep³a o charakterystykach podobnych do ludzkiego cia³a. + + + Automatyczny system namierzania celów + + + Opracowane przez naukowców urz¹dzenie wykorzystuj¹ce fale. S³u¿y ono do pracy w obszarach o du¿ej iloœci anomalii psionicznych. + + + Stymulator psioniczny Wyrocznia + + + Instalacja bardziej zaawansowanego noktowizora s³u¿¹cego do dzia³añ w ca³kowitej ciemnoœci. + + + Noktowizor trzeciej generacji + + + Zjonizowane powietrze przemieszczane jest przy u¿yciu elektrycznoœci miêdzy elektrodami systemu w kierunku przeciwnym do ruchu elektronów, co wytwarza wiatr jonowy. + + + System ch³odz¹cy Wiatr jonowy + + + Skaner podczerwieni pozwala wykrywaæ pobliskie osoby. + + + Skaner podczerwieni + + + System ochrony przed falami psionicznymi SPB - VPZ.m.IV, model czwarty. + + + System bojowy SPB - VPZ.m.IV + + + Wzmocniona sprê¿yna zwiêksza szybkoœæ pocisku. + + + Wzmocniona sprê¿yna zwrotna + + + Instalacja wype³niaczy na ruchomych czêœciach mechanizmu sprawia, ¿e lufa w mniejszym stopniu zbacza z celu podczas strza³u. + + + Amortyzacja mechanizmu zwrotnego + + + Instalacja dodatkowej sprê¿yny o odwrotnym splocie, która zmniejsza odrzut bez poœwiêcania p³askoœci toru pocisku. + + + Dodatkowa sprê¿yna zwrotna + + + Pokrycie ochronne zwiêksza niezawodnoœæ i, co wa¿niejsze, zapewnia hermetycznoœæ, przeciwdzia³aj¹c rozpraszaniu energii. + + + Pokrycie ochronne czêœci sk³adowych mechanizmu zwrotnego + + + Tytanowe trzpienie zapewniaj¹ o wiele wy¿sz¹ szybkoœæ ni¿ ich stalowe odpowiedniki. + + + Tytanowe trzpienie mechanizmu zwrotnego + + + Syntetyczny element instalowany na trzpieniach gwarantuje, ¿e bêd¹ one pracowaæ dok³adnie tak, jak powinny, zwiêkszaj¹c tym samym celnoœæ. + + + Dodanie elementu balansuj¹cego + + + Wype³nienie tulei pozwala na zwiêkszenie ciœnienia panuj¹cego w lufie, co zwiêksza szybkoœæ pocisku. + + + Wype³niacz tulei mechanizmu zwrotnego + + + Po³¹czenie otwierane przez gazy prochowe i zamykane przez mechanizm zwrotny, które pozwala na u¿ycie czêœci wytwarzanej przez gaz energii. + + + Instalacja po³¹czenia dystrybucyjnego + + + Wymiana mechanizmu zwrotnego na potê¿niejsz¹ wersjê z³o¿on¹ z dwóch prowadnic i dwóch sprê¿yn zwrotnych. Zwiêksza szybkostrzelnoœæ broni. + + + Konwersja na system dwuprowadnicowy + + + Specjalne kana³y wyjœciowe gazów prochowych w pobli¿u bêbenka broni zmniejszaj¹ odrzut. + + + Wykorzystanie energii gazów prochowych + + + Dodanie ukoœnych otworów w bêbenku. Przyspieszaj¹ one obroty mechanizmu u¿ywaj¹c energii gazów prochowych. + + + Dodanie ukoœnych otworów w bêbenku + + + Korzyœæ p³yn¹ca z tej standardowej europejskiej modyfikacji to zmniejszona waga broni przy zachowaniu niezawodnoœci. + + + Odporna na uderzenia kolba polimerowa + + + Komora zamkowa o wysokiej trwa³oœci pomaga karabinom szturmowym znosiæ codzienne u¿ycie w warunkach bojowych. + + + Komora zamkowa o wysokiej trwa³oœci z ciê¿kiego stopu + + + Dodanie obci¹¿enia z przodu komory zamkowej pozwala na zmniejszenie odrzutu. + + + Dodanie przeciwwagi do stalowego pude³ka + + + Instalacja p³aszczy ch³odz¹cych pozwala podnieœæ szybkostrzelnoœæ broni bez ryzyka przegrzania. + + + Dodatkowy p³aszcz ch³odz¹cy + + + Wygodniejszy kszta³t rêkojeœci pozwala lepiej kontrolowaæ broñ podczas strzelania w ruchu. + + + Ergonomiczny kszta³t rêkojeœci + + + Modyfikacja u¿ywana wy³¹cznie do luf broni w uk³adzie bezkolbowym. U³atwia ich konserwacjê. + + + Modu³owa komora zamkowa + + + To pokrycie chroni lufê przed przegrzaniem, usuwa defekty produkcyjne i znacz¹co wyd³u¿a jej cykl ¿ycia. + + + Pow³oka wyg³adzaj¹ca rysy i wy¿³obienia komory zamkowej + + + Lekkie, ruchome urz¹dzenie zainstalowane w pustej rêkojeœci stabilizuje broñ przy wystrzale poprzez wytworzenie przeciwdzia³ania niweluj¹cego si³ê odrzutu. + + + Pusta rêkojeœæ ze stabilizatorem + + + Otwór w rêkojeœci pozwala na zmniejszenie wagi broni. + + + Pusta rêkojeœæ + + + L¿ejsza wersja standardowej kolby + + + L¿ejsza kolba + + + U¿ycie l¿ejszych polimerów pozwala na zmniejszenie wagi broni. + + + Odporna na uderzenia kolba polimerowa + + + Obci¹¿enie broni zmniejszaj¹ce odrzut + + + Dodanie przeciwwagi + + + Nowoczesna, wygodna rêkojeœæ u³atwia strzelanie z broni. + + + Ergonomiczna rêkojeœæ + + + Amortyzuj¹ca rêkojeœæ zmniejsza odrzut. + + + Amortyzuj¹ca rêkojeœæ + + + Nowoczesna, wygodna kolba u³atwia strzelanie z broni. + + + Ergonomiczna kolba + + + Specjalna pow³oka chroni broñ przed ¿ywio³ami. + + + Pow³oka antykorozyjna + + + Rtêciowy amortyzator odrzutu instalowany jest w kolbie broni. Ogranicza odrzut przy wystrzale. + + + Rtêciowy amortyzator odrzutu + + + Ruchoma przeciwwaga impulsowa odsuwa siê od zamka przy wystrzale, absorbuj¹c czêœæ energii odrzutu. + + + Dodanie przeciwwagi impulsowej + + + Zmiana u¿ytego materia³u zmniejsza podatnoœæ lufy na uszkodzenia powsta³e w wyniku nierównomiernego nagrzewania nastêpuj¹cego w trakcie strzelania. Pozwala to na zwiêkszenie szybkostrzelnoœci. + + + Stop termoodporny o wysokiej trwa³oœci + + + Wa¿na modyfikacja, która chroni broñ przed spadkami temperatury powietrza podczas strzelania. + + + Dodanie p³aszczy termoregulacyjnych + + + U¿ebrowanie to modyfikacja wymagaj¹ca wysokiej precyzji, pozwalaj¹ca unikn¹æ powstawania oddzielnych punktów przegrzania na lufie. + + + Zewnêtrzne u¿ebrowanie lufy + + + Wymiana lufy na nowsz¹ wersjê pozwala na znaczne zwiêkszenie celnoœci. + + + Zmiana geometrii lufy + + + Kosztowny szkielet dla broni, który bêdzie s³u¿yæ przez d³ugi czas. + + + Tytanowy szkielet + + + Szkielet taki jest bardziej niezawodny ni¿ model kompozytowy. + + + Stalowy szkielet + + + Zast¹pienie szkieletu pistoletu l¿ejsz¹ wersj¹ nie obni¿a niezawodnoœci broni. + + + Polimerowy szkielet pistoletu + + + Nowoczesna, wygodna rêkojeœæ u³atwia strzelanie z broni. + + + Ergonomiczna rêkojeœæ + + + Amortyzuj¹ca rêkojeœæ zmniejsza odrzut. + + + Amortyzuj¹ca rêkojeœæ + + + Ochronne klapy wype³niaj¹ce zabezpieczaj¹ broñ przed brudem i uderzeniami. + + + Ochronne wype³niacze komory zamkowej + + + Modyfikacja tylnej czêœci rêkojeœci zwiêksza jej ergonomicznoœæ. + + + Rêkojeœæ z prost¹ tyln¹ czêœci¹ + + + Mo¿liwoœæ wyboru d³ugoœci rêkojeœci zwiêksza jej ergonomicznoœæ. + + + Regulowana rêkojeœæ + + + Ta modyfikacja jest mo¿liwa tylko jeœli w rêkojeœci zosta³a zainstalowana sprê¿yna zwrotna. + + + Instalacja amortyzatora sprê¿yny zwrotnej + + + Mo¿liwoœæ wyboru odpowiedniej p³ytki zwiêksza ergonomicznoœæ rêkojeœci. + + + Rêkojeœæ o zmodyfikowanym kszta³cie z wymiennymi p³ytkami + + + Ten p³aszcz przeznaczony jest dla intensywnie wykorzystywanych broni. Chroni je przed przedwczesnym zu¿yciem. + + + Instalacja perforowanego p³aszcza stalowego + + + To urz¹dzenie jest bardziej zaawansowane technologicznie i t³umi odrzut skuteczniej ni¿ jego odpowiedniki u¿ywane w standardowych broniach automatycznych. + + + Efektywny kompensacyjny hamulec wylotowy + + + Nowoczesna lufa do karabinów snajperskich dalekiego zasiêgu. + + + Instalacja ciê¿kiej lufy z gwintem poligonalnym + + + Pionowe wewnêtrzne wy¿³obienia w lufie chroni¹ j¹ przed przegrzaniem i zabrudzeniem. + + + Pionowe wy¿³obienia w lufie + + + Zintegrowany t³umik dŸwiêku i p³omieni jest niezbêdny przy prowadzeniu ostrza³u z ukrycia. + + + Instalacja zintegrowanego t³umika + + + Sinusoidalny gwint komory lufowej jest z regu³y wykorzystywany w broniach szturmowych w celu zwiêkszenia ich szybkostrzelnoœci. + + + Sinusoidalny gwint komory lufowej + + + Iniektor generacji A, opracowany w jednym z kijowskich instytutów badawczych, regularnie wprowadza do krwiobiegu niewielkie dawki adrenaliny. Mo¿e to byæ niebezpieczne dla u¿ytkownika, ale w nag³ych przypadkach mo¿e tak¿e ocaliæ mu ¿ycie. + + + Iniektor adrenaliny Furia + + + System usuwania zebranych trucizn z filtru oczyszczaj¹cego + + + System usuwania trucizn + + + Ten ma³y, noszony na plecach emiter fal jest wynalazkiem frakcji Czyste Niebo. Przy sta³ym u¿ytkowaniu przyspiesza krzepniêcie krwi. + + + Hemostymulator Promieñ + + + System dostarczaj¹cy elektrycznoœæ do powierzchni kombinezonu w celu odpychania cz¹stek chemicznych i radioaktywnych. + + + Wbudowany system odpychania py³u + + + Iniektor generacji B, wprowadzaj¹cy do krwiobiegu substancjê przyspieszaj¹c¹ krzepniêcie krwi, jeœli ciœnienie têtnicze u¿ytkownika znacz¹co spadnie. + + + Iniektor hemoglobiny Hydra + + + System ten zapobiega zmêczeniu, utrzymuj¹c optymaln¹ temperaturê cia³a. + + + Instalacja systemu termoregulacji + + + Ten emiter fal jest noszony na klatce piersiowej. Przy jego sta³ym u¿ytkowaniu szybkoœæ gojenia siê ran znacznie wzrasta. Wzmacnia te¿ system immunologiczny i odpornoœæ na ból u¿ytkownika. + + + Biostymulator S³oñce + + + Opracowane przez naukowców urz¹dzenie wykorzystuj¹ce fale. S³u¿y do pracy w obszarach o du¿ej iloœci anomalii psionicznych. + + + Stymulator psioniczny Wyrocznia + + + Iniektor generacji B, wprowadzaj¹cy do krwiobiegu bojow¹ mieszankê podejrzanych substancji, która przyspiesza regeneracjê tkanek i uœmierza ból. + + + System regeneracyjny Feniks + + + Zintegrowany system, który monitoruje stan zdrowia u¿ytkownika i dostarcza potrzebne witaminy, adrenalinê lub substancje anaboliczne. + + + Instalacja systemu podtrzymywania ¿ycia + + + Ten emiter fal jest noszony na szyi. Jego budowa i zasada dzia³ania nie s¹ do koñca jasne, ale ma on silne dzia³anie uspokajaj¹ce. + + + Neurostymulator Odb³ysk + + + Zadaniem tego kompensatora kurka zamka jest amortyzacja czêœci si³y odrzutu, co poprawia skupienie strza³ów przy strzelaniu seri¹. + + + Kompensator kurka zamka + + + To jedna z najprostszych i najbardziej popularnych modyfikacji. Pozwala ona na zmniejszenie si³y potrzebnej do naciœniêcia spustu. Proste i przydatne. + + + Miêkki spust + + + Specjalny zestaw czêœci wykonanych z materia³ów odpowiednich dla danej broni. S¹ one kosztowne, ale wyd³u¿aj¹ jej cykl ¿ycia. + + + Kompozytowe czêœci mechanizmu strzelniczego + + + Pozwala na zwiêkszenie szybkostrzelnoœci kosztem celnoœci i niezawodnoœci. + + + Modyfikacja opóŸniacza spustu + + + Usuniêcie sprê¿yny bojowej pozwala na oddanie pierwszego strza³u pó³ sekundy wczeœniej. To niewiele, ale mo¿e ocaliæ ci ¿ycie. + + + Bezsprê¿ynowy mechanizm spustowy + + + Pokrycie ochronne chroni przed usterkami mechanizmu strzelniczego, zapobiegaj¹c niewypa³om. + + + Ochronne pokrycie czêœci mechanizmu strzelniczego + + + Bezzamkowe mocowanie pozwala na przyspieszenie automatycznego ³adowania, co pozwala na znacz¹ce zwiêkszenie szybkostrzelnoœci broni. + + + Bezzamkowe mocowanie mechanizmu strzelniczego + + + W systemie bezuderzeniowym pocisk nie jest uderzany przez kurek, ale przebijany, przez co proces strzelania przebiega du¿o ³agodniej. + + + Instalacja bezuderzeniowego mechanizmu strzelniczego + + + Spust jest odbezpieczany mechanicznie przy pierwszym strzale, a pozosta³e strza³y s¹ oddawane przy automatycznym odbezpieczeniu. + + + Podwójny mechanizm strzelniczy + + + To jedna z najprostszych i najbardziej popularnych modyfikacji. Pozwala ona na zmniejszenie si³y potrzebnej do naciœniêcia spustu. Proste i przydatne. + + + Miêkki spust + + + Wstêpne odbezpieczenie pozwala na zwiêkszenie celnoœci broni. + + + Mechanizm strzelniczy z czêœciowym wstêpnym odbezpieczeniem + + + Pozwala na u¿ycie identycznej si³y do poci¹gniêcia spustu przy wszystkich strza³ach, co u³atwia u¿ywanie broni. + + + Bezpieczny spust + + + Nowoczesna modyfikacja, która chroni broñ przed oderwaniem sekcji zamka. + + + Powiêkszona g³owica zamka + + + Modu³owy mechanizm strzelniczy pozwala na ³atwiejsz¹ konserwacjê i wymianê czêœci broni. U³atwia przy tym jej u¿ywanie. + + + Modu³owy mechanizm strzelniczy + + + Urz¹dzenie odbezpieczaj¹ce pozwala na zmniejszenie si³y potrzebnej do poci¹gniêcia za spust, co skutkuje zwiêkszon¹ celnoœci¹. + + + Instalacja urz¹dzenia odbezpieczaj¹cego + + + Nowy wynalazek, który pozwala z ³atwoœci¹ zmieniæ tryb pracy mechanizmu strzelniczego. Zwiêksza to ergonomikê broni i pozwala na dostosowanie jej do potrzeb u¿ytkownika. + + + "Podwójny" tryb strzelania + + + Po pierwszym strzale droga ruchu spustu niezbêdna do oddania kolejnych strza³ów zmniejsza siê o po³owê. + + + Mechanizm strzelniczy z krótk¹ drog¹ spustu + + + Dodatkowe si³owniki pozwalaj¹ na zwiêkszenie maksymalnego obci¹¿enia + + + Dodatkowe si³owniki + + + System ten dostarcza organizmowi lekarstw przeciwtê¿cowych i przeciwzapalnych oraz streptocydu. + + + Wbudowany system Lekarz Polowy + + + Przeznaczony do pracy w obszarach ska¿onych system wentylacji kombinezonu z filtrem prewencyjnym. + + + Wewnêtrzny system termoregulacyjny + + + Ergonomiczne ulepszenie: specjalne zaczepy przymocowane do kombinezonu sprawiaj¹, ¿e niesiony ³adunek wydaje siê l¿ejszy. + + + Kamizelka rozk³adaj¹ca obci¹¿enie + + + Butla z tlenem jest niezbêdna w obszarach ska¿onych substancjami chemicznymi lub radioaktywnymi. + + + Instalacja butli z tlenem + + + Instalacja dodatkowego pojemnika na artefakty. + + + Dodatkowy pojemnik na artefakty + + + System zaczepów pozwala na równomierne roz³o¿enie obci¹¿enia na ca³ym ciele. + + + System zaczepów rozk³adaj¹cych obci¹¿enie + + + Tylna rama zmniejsza obci¹¿enie ramion niesionym ³adunkiem, rozk³adaj¹c jego wagê na ca³e cia³o. Zwiêksza to maksymalny udŸwig. + + + Tylna rama rozk³adaj¹ca obci¹¿enie + + + System ten dostarcza organizmowi lekarstw przeciwtê¿cowych i antyseptyków oraz substancji stymuluj¹cych. Jest on domowej produkcji, ale raczej nie ma szkodliwych skutków ubocznych. + + + Wbudowany system Opieka + + + Ten system ³aduje specjaln¹ kratê ³adunkiem o tej samej polaryzacji, co anomalia. Pozwala to zmniejszyæ zagro¿enie z jej strony. + + + Elektrostatyczny system ochronny Ogoñcza + + + Impregnowana warstwa wewnêtrzna chroni przed zatruciem chemikaliami. + + + Impregnowana warstwa wewnêtrzna do ochrony przeciwchemicznej + + + Eksperymentalny system wspomagaj¹cy do biegów d³ugodystansowych. Nie jest u¿ywany poza Zon¹ ze wzglêdu na wysok¹ cenê i dyskusyjn¹ u¿ytecznoœæ. + + + Wbudowany system Atleta + + + Ten system usuwa trucizny oraz osad zbieraj¹cy siê w zag³êbieniach respiratora. + + + System usuwania trucizn Antidotum + + + Instalacja dodatkowego pojemnika na artefakty. + + + Dodatkowy, dwuprzedzia³owy pojemnik na artefakty. + + + System wsparcia bojowego wbudowany w kombinezon. Jest on rzadko u¿ywany, ale czasami wykorzystuje go Specnaz. Posiada wbudowany dozownik adrenaliny i œrodków wspomagaj¹cych krzepniêcie krwi. + + + System wsparcia polowego Wareg + + + W tym prototypowym systemie wsparcia bojowego projektanci zrezygnowali ze szkodliwych zastrzyków z adrenaliny, zastêpuj¹c je lekami przyspieszaj¹cym krzepniêcie krwi. + + + System wsparcia polowego Scyta + + + Ta doœæ kosztowna modyfikacja jest powszechna w broniach nowej generacji. + + + Instalacja sta³ego zamka + + + Wype³nienie sekcji zamka zapobiega rozpraszaniu energii, co zwiêksza p³askoœæ toru pocisku. + + + Wype³nienie sekcji zamka i dodanie wk³adek syntetycznych + + + Pomimo nazwy, modyfikacja ta polega na wymianie zamka, poniewa¿ to on musi znosiæ efekty uboczne wiêkszej szybkostrzelnoœci. + + + B³yskawiczny automatyczny mechanizm spustowy + + + Wylot gazów prochowych posiada blok, który porusza siê z identyczn¹ szybkoœci¹, absorbuj¹c czêœæ energii odrzutu. + + + Instalacja wylotu gazów prochowych z ruchomym blokiem + + + Drugi t³ok przesuwa przeciwwagê, kompensuj¹c impuls ruchu mechanizmu zamka. + + + Instalacja dodatkowego t³oka gazowego + + + Ochronne pokrycie zwiêksza niezawodnoœæ i, co wa¿niejsze, zapewnia hermetycznoœæ, chroni¹c przed rozpraszaniem energii. + + + Ochronne pokrycie sekcji zamka + + + Zadaniem pochy³ych wy¿³obieñ na komorze zamkowej jest zmniejszanie tarcia ruchomych czêœci i przechwytywanie ma³ych cz¹stek w celu ochrony sekcji zamka przed zabrudzeniem. + + + Dodanie pochy³ych wy¿³obieñ + + + Zmniejszenie œrednicy komory gazowej przy pomocy syntetycznych wype³niaczy znacz¹co zwiêksza szybkoœæ pocisku. + + + Ukierunkowanie energii gazów prochowych + + + Wracaj¹c do pozycji pocz¹tkowej, zamek przekierowuje powietrze do komory lufowej, co obni¿a jej temperaturê. + + + Wymuszone ch³odzenie + + + Zamek broni przesuwa siê wzd³u¿ lufy, co zapobiega ruchowi wylotu do góry. + + + Instalacja ruchomego zamka + + + Instalacja t³oka gazowego powstrzymuje gazy prochowe przed przedostawaniem siê do ramy zamka, co znacznie spowalnia brudzenie siê broni. + + + Instalacja t³oka gazowego + + + Ten system wykorzystuje czêœæ gazów prochowych do usprawnienia ruchu sekcji zamka. + + + System odzyskiwania energii gazów prochowych + + + Wymiana czêœci automatycznych to nie tyle ulepszenie t³oka gazowego, co raczej optymalizacja jego dzia³ania. Zwiêksza szybkostrzelnoœæ broni. + + + T³ok gazowy o krótkiej drodze ruchu + + + Zamek rolkowy jest czêsto u¿ywany w nowoczesnym uzbrojeniu. Pozwala na zmniejszenie odrzutu i poprawia skupienie strza³ów. + + + Instalacja systemu rolkowego z zamkiem pó³swobodnym + + + Absorbuj¹c czêœæ ciep³a wydzielanego przez broñ, poch³aniacze ciep³a zmniejszaj¹ zakres zmian temperatury w trakcie strzelania. + + + Poch³aniacze ciep³a + + + D³u¿sza droga ruchu t³oka gazowego zwiêksza nieco d³ugoœæ broni, ale pozwala te¿ znacz¹co zwiêkszyæ p³askoœæ toru pocisku. + + + D³uga droga ruchu t³oka gazowego + + + Ruchomy bufor rozprasza odrzut na wszystkich czêœciach broni, w ten sposób go os³abiaj¹c. + + + Instalacja specjalnego ruchomego bufora + + + Symetryczne wymuszone ch³odzenie lufy, nastêpuj¹ce dziêki wyrzutnikowi, chroni broñ przed przegrzaniem. + + + System symetrycznego wymuszonego ch³odzenia + + + Umo¿liwia zwiêkszenie szybkostrzelnoœci bez obci¹¿ania innych czêœci dodatkowym odrzutem. + + + Ruchoma sekcja zamka + + + Zwiêksza p³askoœæ toru pocisku dziêki usprawnieniu transferu energii gazów prochowych do naboju. + + + System zamykania lufy + + + Zmniejsza odrzut przez spowolnienie ruchów sekcji zamka. + + + System powolnego ruchu wstecznego sekcji zamka + + + Pokrycie chroni bronie przed zu¿yciem. + + + Ochronne pokrycie sekcji zamka + + + Zwiêksza p³askoœæ toru pocisku dziêki usprawnieniu transferu energii gazów prochowych do naboju. + + + System zamykania skrzywienia lufy + + + Ciê¿szy, zamkniêty zamek zapobiega usterkom sekcji zamka pistoletu. + + + Wzmocniony, zamkniêty zamek + + + Ma³y bufor, który przejmuje na siebie czêœæ odrzutu. + + + Polimerowy bufor odrzutu + + + Instalacja stalowej wk³adki pomaga zredukowaæ odrzut. + + + Instalacja wk³adki zamykaj¹cej ze spiralnym wy¿³obieniem + + + Wyd³u¿enie drogi ruchu zamka i odpowiednie wzmocnienie mechanizmu zwrotnego pozwala na zwiêkszenie p³askoœci toru pocisku. + + + Wyd³u¿enie drogi ruchu zamka + + + Krótka droga ruchu zamka pozwala na zwiêkszenie szybkostrzelnoœci bez poœwiêcania p³askoœci toru pocisku. + + + Skrócenie drogi ruchu zamka + + + D³uga droga ruchu zamka nadaje pociskowi wiêksz¹ energiê. + + + Wyd³u¿enie drogi ruchu lufy + + + Wymiana czêœci automatycznych to nie tyle ulepszenie t³oka gazowego, co raczej optymalizacja jego dzia³ania. Zwiêksza ona szybkostrzelnoœæ broni. + + + Instalacja systemu wykorzystuj¹cego energiê odrzutu o krótkiej drodze ruchu + + + Instalacja tego modu³u pozwala zwiêkszyæ skupienie strza³ów bez poœwiêcania szybkostrzelnoœci. + + + Po³¹czony dwusprê¿ynowy modu³ zwrotny + + + Dodatkowe otwory kompensacyjne znacz¹co os³abiaj¹ odrzut. + + + Zintegrowany kompensator odrzutu lufy + + + Modernizacja automatycznych czêœci pistoletu pozwala na strzelanie w trybie automatycznym. + + + Pe³noautomatyczny tryb strzelania + + + Modernizacja automatycznych czêœci pistoletu pozwala na strzelanie seriami po trzy pociski. + + + Tryb strzelania seriami po trzy pociski + + + Koszt + + + Nie mo¿na zainstalowaæ + + + Zainstalowano + + + Czy na pewno chcesz zainstalowaæ: + + + Aut. sys. namierzania + + + Aut. sys. namierzania + + + Celownik optyczny 5x + + + Celownik optyczny 6x + + + Skaner podczerwieni + + + Waga kam. kuloodpornej + + + Noktowizor 2 generacji + + + Noktowizor 3 generacji + + + Zaczep na cel. optyczny + + + Wbudowany t³umik + + + Granatnik podwieszany + + + Leczenie ran + + + Regeneracja + + + Noktowizor 1 generacji + + + Regulowany celownik + + + Celownik o wys. kontraœcie + + + Wzmacniacze serwomotorów + + + Trwa³oœæ kombinezonu + + + Nie wiadomo, na jakiej zasadzie dzia³a ta broñ. Nie mo¿na jej naprawiæ bez dodatkowych informacji o jej konstrukcji. + + + Technik nie mo¿e wykonaæ tej modyfikacji + + + Ta czêœæ jest ju¿ zmodyfikowana + + + Za ma³o pieniêdzy + + + Nie u¿ywa œrutu + + + Tryb ognia automatycznego + + + Tryb ognia krótk¹ seri¹ + + + Liczba pojemników + + + technik potrzebuje wódki + + + technik potrzebuje narzêdzi do podstawowych zastosowañ + + + technik potrzebuje narzêdzi do pracy precyzyjnej + + + technik potrzebuje narzêdzi kalibracyjnych + + + technik potrzebuje dodatkowych informacji + + + wymagane s¹ poprzednie modyfikacje + + + Pow³oka ochronna oparta na kryszta³ach szafiru Pancernik + + + Wzmocniona matryca tytanowo-berylowa + + + Dodatkowa pow³oka z w³ókna wêglowego + + + Warstwa spodnia z gumowanej tkaniny + + diff --git a/gamedata/configs/text/pol/st_land_names.xml b/gamedata/configs/text/pol/st_land_names.xml new file mode 100644 index 0000000..6912260 --- /dev/null +++ b/gamedata/configs/text/pol/st_land_names.xml @@ -0,0 +1,171 @@ + + + + Anomalia Pazur + + + Anomalia ¯elazny Las + + + Tartak + + + Stacja antenowa Krug + + + Zak³ad utylizacji odpadów + + + Anomalia Cyrk + + + Leœniczówka + + + Skadowsk + + + Spalone gospodarstwo + + + Anomalia Kocio³ + + + Bagno + + + Izumrudnoje + + + Szewczenko + + + Pog³êbiarka + + + DŸwigi portowe + + + Anomalia Sosnod¹b + + + Stacja benzynowa + + + Stara barka + + + Anomalia Szrama + + + Most Przemienienia Pañskiego + + + P³askowy¿ po³udniowy + + + Magazyny podstacji + + + Anomalia Popielisko + + + Wie¿a ch³odnicza + + + Podstacja + + + Anomalia Szuwary + + + Cementownia + + + Kopaczi + + + Janów + + + Kamienio³omy + + + Bunkier naukowców + + + Kompleks przeciwlotniczy Wo³kow + + + Zagajnik anomalii + + + Parking + + + Posterunek + + + Anomalia Bitumin + + + Wschodni tunel + + + Magazyn kontenerów + + + Kompleks wentylacyjny + + + L¹dowiska dla helikopterów + + + Anomalia Betonowa Wanna + + + Fabryka Jupiter + + + Kino Prometeusz + + + Port rzeczny + + + Stara stacja obs³ugi + + + Szko³a + + + Szpital + + + Centrum us³ugowe Jubilejny + + + Pralnia samoobs³ugowa + + + Przedszkole + + + Osiedle + + + Warzywniak + + + Dom towarowy + + + Ksiêgarnia + + + Anomalia Wulkan + + + Anomalia Winoroœl + + diff --git a/gamedata/configs/text/pol/st_mp_mapdesc.xml b/gamedata/configs/text/pol/st_mp_mapdesc.xml new file mode 100644 index 0000000..272acf3 --- /dev/null +++ b/gamedata/configs/text/pol/st_mp_mapdesc.xml @@ -0,0 +1,126 @@ + + + + Stacja pojazdów + + + Dziwne miejsce. Ten cichy budynek z pewnoœci¹ ma swoje sekrety, ale stalkerzy odwiedzaj¹ go z innego powodu - dziêki du¿ej iloœci mo¿liwych do znalezienia artefaktów, podjête ryzyko mo¿e siê op³acaæ. Myœl szybko i dzia³aj zdecydowanie, a szczêœcie z pewnoœci¹ bêdzie ci sprzyjaæ. + + + Dziwne miejsce. Ten cichy budynek z pewnoœci¹ ma swoje sekrety, ale stalkerzy odwiedzaj¹ go z innego powodu - du¿ej iloœci mo¿liwych do znalezienia artefaktów. + + + Sk³ad znajduj¹cy siê przy wejœciu do Zony. Znajduj¹ce siê w nim ci¹gniki, autobusy i ciê¿arówki nigdzie ju¿ nie pojad¹… Nie znaleziono tu jeszcze ¿adnych artefaktów, ale miejsce to jest popularne wœród bandytów, którzy poluj¹ na nowicjuszy dla ³upów. Kryj siê w budynkach i za pojazdami, uwa¿aj te¿ na wrogów na dachach! + + + Sk³ad znajduj¹cy siê przy wejœciu do Zony. Znajduj¹ce siê w nim ci¹gniki, autobusy i ciê¿arówki nigdzie ju¿ nie pojad¹… + + + Opuszczony sk³ad i przylegaj¹cy do niego teren. Mo¿na tu znaleŸæ wyposa¿enie i zapasy, jeœli siê dobrze poszuka. Uwa¿aj na potê¿ne anomalie i snajperów na dachu sk³adu - to œwietny punkt obserwacyjny, z którego widaæ ka¿d¹ zbli¿aj¹c¹ siê osobê. + + + Opuszczony sk³ad i przylegaj¹cy do niego teren. Uwa¿aj na potê¿ne anomalie i wrogich snajperów. + + + Tajemnicze i fascynuj¹ce miejsce. Basen zosta³ zbudowany do eksperymentów na kimœ lub na czymœ, ale nie wiadomo dok³adnie, jak mia³y one wygl¹daæ. Nie ma tu prawie ¿adnych artefaktów, wiêc jedyne, co przyci¹ga tutaj stalkerów, to pozosta³oœci dziwnych linii monta¿owych i urz¹dzeñ. Uwa¿aj na dachy i pamiêtaj o wyj¹tkowo wysokim poziomie promieniowania w tym rejonie. + + + Tajemnicze i fascynuj¹ce miejsce. Basen ten zosta³ zbudowany do eksperymentów na kimœ lub na czymœ, ale nie wiadomo dok³adnie, jak mia³y one wygl¹daæ. + + + Ta niebezpieczna czêœæ Mrocznej Doliny sk³ada siê z d³ugiej ulicy i opuszczonego instytutu. Kto wie, jaka wiedza by³a w nim kiedyœ przekazywana? Jedyne, czego mo¿na nauczyæ siê tu dzisiaj, to sztuka przetrwania! Zwracaj te¿ uwagê na dachy... + + + Ta niebezpieczna czêœæ Mrocznej Doliny sk³ada siê z d³ugiej ulicy i opuszczonego instytutu… + + + Ta posêpna, opuszczona fabryka jest miejscem spoczynku niezliczonych stalkerów. Goœci oczekuje na ka¿dym kroku chmara anomalii, co jednak nie powstrzymuje ich przed odwiedzinami - cenne artefakty stanowi¹ prawdziwy magnes. Uwa¿aj na promieniowanie! + + + Ta posêpna opuszczona fabryka jest miejscem spoczynku niezliczonych stalkerów. + + + Remiza stra¿acka, której ca³a za³oga zosta³a rzucona do ratowania CEJ w 1986 roku. Wie¿yczka jest doskona³ym punktem obserwacyjnym, pozwalaj¹cym mieæ na oku bli¿sze i dalsze otoczenie. Niewielu odwiedza górne piêtra budynków i piwnice, ale mo¿e to i dobrze. Od jakiegoœ czasu obecne w Zonie frakcje skacz¹ sobie do garde³, próbuj¹c opanowaæ t¹ strategiczn¹ pozycjê. + + + Remiza stra¿acka, której ca³a za³oga zosta³a rzucona do ratowania CEJ w 1986 roku. Stanowi doskona³¹ pozycjê taktyczn¹. + + + Czêœæ olbrzymiego wysypiska œmieci, gdzie po katastrofie w 1986 roku wyrzucono sterty odpadów radioaktywnych. Pe³na jest rozpadaj¹cych siê dŸwigów i ró¿nego sprzêtu. Inne atrakcje to stare, zniszczone budynki i wielki hangar. Bliskoœæ Kordonu i doœæ du¿a liczba artefaktów przyci¹ga stalkerów ¿¹dnych ³atwych ³upów. + + + Czêœæ olbrzymiego wysypiska œmieci, gdzie po katastrofie w 1986 roku wyrzucono sterty odpadów radioaktywnych. + + + Ma³a dzielnica tajemniczego miasta Limañsk - opuszczone bloki mieszkaniowe i niedokoñczony budynek miêdzy nimi. Po znalezieniu w tym miejscu kilku kosztownych artefaktów, wieœci b³yskawicznie rozprzestrzeni³y siê po ca³ej Zonie. Otwartych zosta³o kilka dróg do Limañska i od tego czasu strza³y nie cichn¹. + + + Ma³a dzielnica tajemniczego miasta Limañsk - opuszczone bloki mieszkaniowe i niedokoñczony budynek miêdzy nimi. + + + Zapomniana przez Boga i ludzi wieœ w g³êbi Zony. Ma³e, p³ytkie, rdzawe jeziorko i tuziny rozbitych pojazdów nape³niaj¹ ciê podœwiadomym strachem przed otaczaj¹c¹ rzeczywistoœci¹. Uwa¿aj na snajperów, ale pamiêtaj: Zona sprzyja odwa¿nym. + + + Zapomniana przez Boga i ludzi wieœ w g³êbi Zony. Ma³e, p³ytkie, rdzawe jeziorko i tuziny rozbitych pojazdów nape³niaj¹ ciê podœwiadomym strachem przed otaczaj¹c¹ rzeczywistoœci¹. + + + Opuszczona baza wojskowa z unieruchomionymi ciê¿arówkami i transporterami opancerzonymi oraz opuszczon¹ kwater¹ g³ówn¹ i barakami. Jej wygl¹d mo¿e myliæ: to prawdziwa kopalnia artefaktów, co oznacza, ¿e wróg mo¿e czaiæ siê za ka¿dym wêg³em. + + + Opuszczona baza wojskowa z unieruchomionymi ciê¿arówkami i transporterami opancerzonymi. + + + Ta stara wieœ to naprawdê z³owieszcze miejsce. Jeœli wystarczy ci odwagi, by tu przyjœæ, przygotuj siê na strza³ w g³owê na powitanie. Nie ma tu bezpiecznych miejsc, wiêc pamiêtaj o celowniku i t³umiku! + + + Ta stara wieœ to naprawdê z³owieszcze miejsce. Uda³o ci siê tu dotrzeæ, ale nie masz czasu na odpoczynek. + + + To nie basen - raczej krwawa ³aŸnia. Echa strza³ów, eksplozji i wrzasków umieraj¹cych wype³niaj¹ wy³o¿one kafelkami korytarze… Niewielu stalkerów wie, jak tu siê dostaæ, a jeszcze mniej wie, jak uciec. + + + To nie basen - raczej krwawa ³aŸnia. Echa strza³ów, eksplozji i wrzasków umieraj¹cych wype³niaj¹ wy³o¿one kafelkami korytarze. + + + Ma³a stacja kolejowa w pobli¿u fabryki Rostok. + + + Ma³a stacja kolejowa w pobli¿u fabryki Rostok, pe³na zardzewia³ych wagonów i lokomotyw, które zatrzyma³y siê na torach. Du¿a iloœæ artefaktów przyci¹ga odwa¿nych stalkerów ze wszystkich zak¹tków Zony. + + + Baza naprawcza w pobli¿u ma³ej wsi. Wszystkie dzia³aj¹ce pojazdy zosta³y zabrane do pomocy w zwalczaniu skutków katastrofy w Czarnobylu. Z czasem pozostawiony sprzêt zosta³ spl¹drowany w poszukiwaniu czêœci zamiennych. Obszar ten jest pe³en niebezpieczeñstw, takich jak zdradliwe bagna i ska¿one zaroœla, w których przy odrobinie szczêœcia mo¿na znaleŸæ coœ wartoœciowego. + + + Baza naprawcza w pobli¿u ma³ej wsi. Obszar ten jest pe³en niebezpieczeñstw, takich jak zdradliwe bagna i ska¿one zaroœla. + + + Sterty metalu rdzewiej¹ bezczynnie za betonowymi œcianami. Przed prze³omem wieków fabryka pracowa³a bez przerwy przy akompaniamencie socjalistycznych sloganów p³yn¹cych z g³oœników, ale zosta³a opuszczona dawno temu. + + + Stara, opuszczona fabryka: sterty metalu za betonowymi œcianami to wszystko, co po niej pozosta³o. + + + Centrum sportowe w Prypeci, zlokalizowane w pobli¿u opuszczonej szko³y. Praktykuje siê tu dziœ inny rodzaj sportu ni¿ w 1986 roku, inni s¹ te¿ uczestnicy rozgrywek. Stalkerów przyci¹ga tu w¹tpliwa s³awa, ³upy i artefakty… niektórzy z nich zostaj¹ tutaj na zawsze. + + + Centrum sportowe w Prypeci, zlokalizowane w pobli¿u opuszczonej szko³y. + + + Bardzo dziwne miejsce. Wielu œmieje siê ze stalkerów, którzy twierdz¹, ¿e je widzieli. Mimo to istnieje ono w rzeczywistoœci. Anomalie grawitacyjne rozdar³y ziemiê, tworz¹c kosmiczny krajobraz. Nad obszarem dominuj¹ trzy wielkie wie¿e, resztki sprzêtu wojskowego i lataj¹ce wyspy wyrwane z ziemi. + + + Bardzo dziwne miejsce. Anomalie grawitacyjne rozdar³y ziemiê, tworz¹c kosmiczny krajobraz. + + + Zanim Powinnoœæ zajê³a ten teren, by³y to peryferia fabryki Rostok. To upiorne, ale pe³ne artefaktów miejsce. Ka¿dy pusty hangar lub magazyn jest pe³en œmiertelnych niebezpieczeñstw. Zachowaj czujnoœæ i obserwuj bia³¹ wie¿ê... + + + Zanim Powinnoœæ zajê³a ten teren, by³y to peryferia fabryki Rostok. To upiorne, ale pe³ne artefaktów miejsce. + + + Niewielu odwa¿a zapuœciæ siê do opuszczonego miasta Prypeæ, niegdyœ zamieszkiwanego przez pracowników CEJ. Pomimo tego na ulicach miasta duchów niedawno rozleg³y siê odg³osy walki, toczonej miêdzy kinem „Prometeusz”, przystani¹ i domami na ulicy Kurczatowej. + + + W czêœci Prypeci miêdzy kinem „Prometeusz”, przystani¹ i domami na ulicy Kurczatowej wybuch³y zaciek³e walki miêdzy kilkoma osobami, które dotar³y do opuszczonego miasta. + + diff --git a/gamedata/configs/text/pol/st_mp_speechmenu.xml b/gamedata/configs/text/pol/st_mp_speechmenu.xml new file mode 100644 index 0000000..c77518f --- /dev/null +++ b/gamedata/configs/text/pol/st_mp_speechmenu.xml @@ -0,0 +1,57 @@ + + + + Wszyscy, do ataku! + + + Idê po artefakt! Os³aniaæ mnie! + + + Za mn¹! + + + Na razie pilnuj artefaktu. Jeszcze go nie bierz! + + + Trzymam pozycjê! + + + Trzymaæ pozycje! + + + Bierz artefakt! Bêdê ciê os³aniaæ! + + + Potrzebujê pomocy! + + + Nie mam pieniêdzy - kup wiêcej sprzêtu! + + + Nie. + + + Czysto! + + + Zg³oœ siê! + + + Odwrót! + + + Odnieœ artefakt! + + + Rozumiem. + + + Cicho! + + + Musimy trzymaæ siê razem. + + + Bierz artefakt! + + diff --git a/gamedata/configs/text/pol/st_mp_teamdesc.xml b/gamedata/configs/text/pol/st_mp_teamdesc.xml new file mode 100644 index 0000000..aef79a0 --- /dev/null +++ b/gamedata/configs/text/pol/st_mp_teamdesc.xml @@ -0,0 +1,15 @@ + + + + Anarchiœci Zony. Uznaj¹ Zonê za sanktuarium wolnoœci i uwa¿aj¹, ¿e wszelkie prawa, zasady i konwencje œwiata zewnêtrznego nie maj¹ tu zastosowania. Ich motto brzmi: „Rób, co chcesz, i pilnuj swojego nosa”. Frakcja Wolnoœæ zwalcza starania rz¹du o przejêcie kontroli nad Zon¹ i prowadzi wojnê z najemnikami. Jej cz³onkowie s¹ zwykle wyposa¿eni w radzieck¹ i rosyjsk¹ broñ. + + + Frakcja Wolnoœæ (wolni stalkerzy) + + + Grupa szukaj¹cych przygód zbirów z ca³ego œwiata. Nie gardz¹ najpodlejsz¹ robot¹. Ich motto brzmi: „Pieni¹dze nie œmierdz¹”. Dopóki ich us³ugi bêd¹ w cenie, nie zrezygnuj¹ z walki o ca³kowit¹ kontrolê nad polami artefaktów. Najemnicy s¹ zwykle wyposa¿eni w zachodni¹ broñ. + + + Frakcja Najemnicy (zbiry) + + diff --git a/gamedata/configs/text/pol/st_quests_general.xml b/gamedata/configs/text/pol/st_quests_general.xml new file mode 100644 index 0000000..1403c2a --- /dev/null +++ b/gamedata/configs/text/pol/st_quests_general.xml @@ -0,0 +1,18 @@ + + + + Uwaga! Emisja rozpocznie siê za: + + + Musisz natychmiast biec do najbli¿szego schronienia i ukryæ siê przed emisj¹. + + + Nie mo¿esz wychodziæ ze schronienia w trakcie emisji. + + + Emisja: znajdŸ schronienie + + + Emisja: czekaj w schronieniu + + diff --git a/gamedata/configs/text/pol/st_quests_jupiter.xml b/gamedata/configs/text/pol/st_quests_jupiter.xml new file mode 100644 index 0000000..548bc94 --- /dev/null +++ b/gamedata/configs/text/pol/st_quests_jupiter.xml @@ -0,0 +1,687 @@ + + + + D³ugi: zanieœ pieni¹dze bandytom + + + Wano jest winien bandytom pieni¹dze za kombinezon, ale nie mo¿e go sp³aciæ, bo odsetki rosn¹ zbyt szybko. Poprosi³ ciê o rozwi¹zanie tego problemu. + + + D³ugi: wróæ do Wano + + + Powiedz Wano, jak posz³a sp³ata jego d³ugu. + + + D³ugi: rozpraw siê z bandytami + + + Sp³ata d³ugów Wano przybra³a paskudny obrót. Zabij bandytów. + + + Zak³adnik: odbierz nagrodê od przyjació³ Mitaja + + + Mitaj zosta³ uwolniony. Spotkaj siê w barze z jego przyjació³mi, aby odebraæ nagrodê. + + + Zak³adnik: uwolnij Mitaja + + + Zak³adnik: powiedz Grizliemu, ¿e jesteœ gotowy + + + Musisz porozmawiaæ z Grizlim, zanim spróbujesz uwolniæ zak³adnika. + + + Zak³adnik: uwolnij Mitaja si³¹ + + + Musisz zabiæ bandytów, aby uwolniæ stalkera zwanego Mitajem. + + + Zak³adnik: spotkaj siê ze stalkerami + + + Stalkerzy pomog¹ ci uwolniæ zak³adnika. Musisz spotkaæ siê z nimi w nocy, aby wspólnie zaatakowaæ bandytów. + + + Zak³adnik: uzgodnij zap³atê okupu za uwolnienie Mitaja + + + Uzgodnij z dowódc¹ bandytów zap³atê okupu za uwolnienie stalkera zwanego Mitajem. + + + Uwolnij stalkera zwanego Mitajem, który zosta³ wziêty na zak³adnika przez bandytów. + + + Zak³adnik: wyprowadŸ Mitaja z obozu bandytów + + + Obóz bandytów jest zbyt niebezpieczny, ¿eby siê po nim krêciæ. Musisz odeskortowaæ Mitaja poza obóz. + + + Zak³adnik: porozmawiaj z Mitajem + + + Mitaj jest wzglêdnie bezpieczny. Porozmawiaj z nim na temat planu dalszego dzia³ania. + + + Droga do Prypeci: porozmawiaj z technikiem na temat tunelu + + + Znalezione przez ciebie dokumenty jasno stwierdzaj¹, ¿e pod fabryk¹ Jupiter znajduje siê podziemny tunel prowadz¹cy do Prypeci. W tunelu nie ma energii i jest on wype³niony gazem, a wejœcie zosta³o zablokowane. Musisz znaleŸæ technika, który potrafi w³¹czyæ generator i otworzyæ œluzê. + + + Modu³ pamiêci jest w rêkach eksperta. Musisz poczekaæ, a¿ zostanie odblokowany. + + + Samolot bezza³ogowy: odblokuj modu³ pamiêci + + + Samolot bezza³ogowy: odbierz modu³ pamiêci od Azota + + + Samolot bezza³ogowy: odbierz modu³ pamiêci od Nowikowa + + + Azot odblokowa³ modu³ pamiêci. Odbierz go, ¿eby zobaczyæ, jakie informacje zawiera. + + + Nowikow odblokowa³ modu³ pamiêci. Odbierz go, ¿eby zobaczyæ, jakie informacje zawiera. + + + Uda³o ci siê ocaliæ modu³ pamiêci z samolotu bezza³ogowego. Musisz go odblokowaæ, ¿eby dostaæ siê do zawartych w nim informacji. + + + Samolot bezza³ogowy: poczekaj, a¿ modu³ pamiêci zostanie odblokowany + + + Oaza: znajdŸ dowód + + + Oaza zosta³a odnaleziona i naprawdê ma lecznicze w³aœciwoœci. Musisz znaleŸæ jakiœ dowód, ¿eby dostarczyæ go naukowcom. + + + Oaza: zanieœ dowód naukowcom + + + Oaza zosta³a odnaleziona i naprawdê ma lecznicze w³aœciwoœci. Musisz zabraæ znaleziony tam artefakt do naukowców jako dowód. + + + Oaza: sprawdŸ, czy legenda jest prawdziwa + + + Oziorski, naukowiec z bunkra, poprosi³ ciê o odnalezienie Oazy, legendarnego miejsca w Zonie. Wed³ug plotek, powinny siê tam znajdowaæ jakieœ wody lecznicze, ale nikt tak naprawdê nie wie, czy ona istnieje. + + + Kopaczi: idŸ z Wujkiem Jarem + + + Wujek Jar potrzebuje pomocy w jakiejœ sprawie. IdŸ z nim do wioski Kopaczi. + + + Kopaczi: zabij najemników + + + Wygl¹da na to, ¿e Wujek Jar spodziewa³ siê przybycia najemników. Musisz ich zabiæ. + + + Kopaczi: trzymaj siê blisko Wujka Jara + + + Wujek Jar poprosi³ ciê o trzymanie siê blisko niego i siedzenie cicho. + + + Kopaczi: porozmawiaj z Wujkiem Jarem + + + Najemnicy nie ¿yj¹. Musisz porozmawiaæ z Wujkiem Jarem, aby wyjaœni³, co siê sta³o. + + + Okresowe emisje psioniczne: zabierz anormalny twór do naukowców + + + Zgodnie z umow¹, zabierz znalezion¹ próbkê do Hermana. Wygl¹da na to, ¿e ten przedmiot, czêœciowo przekszta³cony przez dzia³anie anomalii, jest Ÿród³em okresowych emisji psionicznych. + + + Okresowe emisje psioniczne: zbadaj Ÿród³o + + + Zbadaj tunele w poszukiwaniu jakiegoœ tworu wykazuj¹cego anomaliê. Naukowcy wierz¹, ¿e okresowe pole psioniczne ma Ÿród³o, które prawdopodobnie przypomina artefakt. + + + Okresowe emisje psioniczne: spotkaj siê z dru¿yn¹ Topola + + + Dru¿yna Topola wybra³a siê do tunelu, w którym wystêpuj¹ okresowe emisje psioniczne. Musisz siê tam z nimi spotkaæ. + + + Okresowe emisje psioniczne: porozmawiaj z Topolem + + + Do³¹cz do dru¿yny Topola id¹cej do tunelu, w którym wystêpuj¹ okresowe emisje psioniczne. Zgodnie z umow¹, stalkerzy bêd¹ ochraniaæ tunel, podczas gdy ty bêdziesz szukaæ tego, czego chc¹ naukowcy. + + + Musisz zabraæ wszystkie znalezione materia³y radiotechniczne do Azota. + + + Azot potrzebuje materia³ów radiotechnicznych. Mo¿esz mu daæ to, co ju¿ masz, lub postaraæ siê znaleŸæ coœ jeszcze. + + + Sprzêt radiowy: znajdŸ materia³y dla Azota + + + Azot potrzebuje materia³ów radiotechnicznych. Mówi, ¿e najlepiej poszukaæ ich w cementowni. + + + Kradzie¿: dowiedz siê, kto jest odpowiedzialny za kradzie¿ + + + Popytaj stalkerów w Janowie, czy nie widzieli kogoœ podejrzanego, kto móg³by ukraœæ coœ z prywatnej skrytki. + + + Kradzie¿: sprawdŸ na podstacji + + + Musisz sprawdziæ podstacjê, poniewa¿ w tamt¹ stronê skierowa³ siê podejrzany stalker, który mo¿e byæ odpowiedzialny za kradzie¿. + + + Kradzie¿: zabierz swoje rzeczy + + + Wszystkie przedmioty, które ukrad³ Sêk, powinny byæ w schowku w kana³ach za podstacj¹. + + + Nietypowa roœlina: zdob¹dŸ próbkê roœliny + + + Obszar pe³en nietypowej roœlinnoœci pojawi³ siê w pobli¿u krawêdzi kamienio³omów. Oziorski poprosi³ ciê o przyniesienie próbki roœlin do badañ. + + + Nietypowa roœlina: daj próbkê Oziorskiemu + + + Musisz zabraæ próbkê roœliny do Oziorskiego. W zamian Oziorski przekona Hermana, ¿eby da³ ci kombinezon naukowca. + + + Polowanie: zabij niezidentyfikowane mutanty + + + Grupa stalkerów napotka³a niezidentyfikowane mutanty w tunelach na pó³noc od fabryki Jupiter. Zbadaj ten teren i zabij mutanty. + + + Polowanie: odbierz od Trapera nagrodê za zabicie mutantów w tunelu + + + Mutanty w tunelu na pó³noc od fabryki Jupiter zosta³y zabite. Musisz poinformowaæ o tym Trapera i odebraæ swoj¹ nagrodê. + + + Hipoteza: umieœæ skaner w centrum osuwiska + + + Umieœæ skaner w centrum osuwiska, aby sprawdziæ hipotezê Oziorskiego. + + + Hipoteza: poczekaj na zakoñczenie eksperymentu + + + Skaner jest teraz aktywny i zacz¹³ rejestrowaæ obecnoœæ mutantów. Musisz poczekaæ na zebranie wystarczaj¹cej iloœci danych, by potwierdziæ lub obaliæ hipotezê. + + + Hipoteza: zabierz skaner + + + Zebrano wystarczaj¹c¹ iloœæ danych, by potwierdziæ hipotezê Oziorskiego. Zabierz skaner. + + + Hipoteza: daj skaner Oziorskiemu + + + Musisz daæ skaner Oziorskiemu. Zebrane dane powinny wystarczyæ, by potwierdziæ jego hipotezê. + + + Polowanie: zabij bagienne pijawki + + + Zaobserwowano grupê bagiennych pijawek na Mokrad³ach za cementowni¹. Miejscowi stalkerzy poprosili ciê o ich zabicie. + + + Polowanie: odbierz od Trapera nagrodê za zabicie pijawek + + + Bagienne pijawki s¹ martwe. Odbierz od Trapera nagrodê zaoferowan¹ przez miejscowych stalkerów. + + + Nocne polowanie: zabij chimerê + + + Chimery s¹ drapie¿nikami nocnymi. Nikt nie wie, gdzie ta ma swoje dzienne legowisko. Musisz j¹ zabiæ w nocy, gdy wychodzi na polowanie niedaleko kompleksu wentylacyjnego. + + + Nocne polowanie: powiedz Traperowi, ¿e chimera zosta³a zabita + + + Mordercza chimera nie ¿yje, a ³owca Lis zosta³ pomszczony. Powiedz o tym Traperowi. + + + Narzêdzia: przynieœ Azotowi narzêdzia + + + Azot poprosi³ ciê o zdobycie dwóch zestawów narzêdzi: jednego podstawowego i jednego do precyzyjnej pracy. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Azotowi narzêdzia + + + Azot poprosi³ ciê o zdobycie dwóch zestawów narzêdzi: jednego podstawowego i jednego do kalibracji. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Azotowi narzêdzia + + + Azot poprosi³ ciê o zdobycie zestawu narzêdzi podstawowych. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Azotowi narzêdzia + + + Azot poprosi³ ciê o zdobycie dwóch zestawów narzêdzi: jednego do precyzyjnej pracy i jednego do kalibracji. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Azotowi narzêdzia + + + Azot poprosi³ ciê o zdobycie zestawu narzêdzi do precyzyjnej pracy. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Azotowi narzêdzia + + + Azot poprosi³ ciê o zdobycie zestawu narzêdzi do kalibracji. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Azotowi narzêdzia + + + Azot poprosi³ ciê o zdobycie trzech zestawów narzêdzi: jednego podstawowego, jednego do precyzyjnej pracy i jednego do kalibracji. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Prypeæ 1: znajdŸ kombinezon z aparatem tlenowym o zamkniêtym obiegu + + + Poniewa¿ tunel Prypeæ 1 zosta³ wype³niony dwutlenkiem wêgla wymieszanym z jak¹œ nieznan¹ substancj¹, bêdziesz potrzebowaæ kombinezonu z aparatem tlenowym o zamkniêtym obiegu. + + + Prypeæ 1: zaprowadŸ W³óczêgê do Zulusa + + + Musisz zaprowadziæ W³óczêgê do Zulusa i przedstawiæ go jako nowego cz³onka dru¿yny. Zulus mo¿e nie byæ zbyt przyjazny, je¿eli wojownik w mundurze Monolitu pojawi siê u niego samotnie. + + + Prypeæ 1: porozmawiaj z W³óczêg¹ na temat kombinezonu ochronnego + + + Tunel Prypeæ 1 zosta³ wype³niony dwutlenkiem wêgla wymieszanym z jak¹œ nieznan¹ substancj¹. Musisz poinformowaæ W³óczêgê, ¿e aby przez niego przejœæ, bêdzie potrzebowa³ kombinezonu z aparatem tlenowym o zamkniêtym obiegu. + + + Prypeæ 1: zbierz ekipê na wyprawê do Prypeci + + + Azot móg³by otworzyæ œluzê tunelu Prypeæ 1, ale nie zgadza siê pójœæ do fabryki Jupiter bez ochrony. Zaleci³ te¿, ¿eby zebraæ kilku ludzi na przeprawê przez tunel. Masz ju¿ Zulusa, który zasugerowa³, ¿eby nowych ludzi wysy³aæ bezpoœrednio do niego. + + + Prypeæ 1: porozmawiaj z Zulusem na temat wyprawy do Prypeci + + + Azot móg³by otworzyæ œluzê tunelu Prypeæ 1, ale nie zgadza siê pójœæ do fabryki Jupiter bez ochrony. Zaleci³ te¿, ¿eby zebraæ kilku ludzi na przeprawê przez tunel. Zasugerowa³ ci rozmowê z Zulusem, który móg³by pomóc w sformowaniu dru¿yny. + + + Prypeæ 1: zaprowadŸ Soko³owa do Zulusa + + + Soko³ow zgodzi³ siê pójœæ do Prypeci. Móg³by zabraæ ze sob¹ kombinezon naukowca, gdy bêdzie opuszcza³ bunkier. ZaprowadŸ go do Zulusa i przedstaw jako nowego cz³onka dru¿yny. + + + Prypeæ 1: porozmawiaj z Soko³owem na temat kombinezonu ochronnego + + + Prypeæ 1: porozmawiaj z Oziorskim na temat kombinezonu dla Soko³owa + + + Soko³ow zgodzi³ siê nosiæ kombinezon naukowca dla ochrony, ale Herman raczej nie da mu zabraæ ¿adnego z bunkra. Porozmawiaj z Oziorskim - jest sympatyczniejszy i ³atwiej siê z nim dogadaæ. + + + Prypeæ 1: powiedz Soko³owowi o kombinezonie naukowca + + + Oziorski jest bardzo zadowolony z próbki roœlin. Poprosi³ ciê o przekazanie Soko³owowi, ¿e mo¿e odebraæ kombinezon naukowca od Hermana. + + + Tunel Prypeæ 1 zosta³ wype³niony dwutlenkiem wêgla wymieszanym z jak¹œ nieznan¹ substancj¹. Musisz poinformowaæ Soko³owa, ¿e aby przez niego przejœæ, bêdzie potrzebowa³ kombinezonu z aparatem tlenowym o zamkniêtym obiegu. + + + Prypeæ 1: zdob¹dŸ dla Wano pieni¹dze na kombinezon + + + Kombinezon, za który Wano by³ winien bandytom pieni¹dze, mia³ aparat tlenowy o zamkniêtym obiegu. Wano musia³ go zastawiæ, ¿eby sp³aciæ d³ug. Teraz potrzebuje 3000, ¿eby go z powrotem wykupiæ. + + + Prypeæ 1: zaprowadŸ Wano do Zulusa + + + Wano jest chêtny, by pójœæ do Prypeci. ZaprowadŸ go do Zulusa i przedstaw jako nowego cz³onka dru¿yny. Wano mo¿e po drodze wykupiæ swój kombinezon. + + + Prypeæ 1: porozmawiaj z Wano na temat kombinezonu ochronnego + + + Tunel Prypeæ 1 zosta³ wype³niony dwutlenkiem wêgla wymieszanym z jak¹œ nieznan¹ substancj¹. Musisz poinformowaæ Wano, ¿e aby przez niego przejœæ, bêdzie potrzebowa³ kombinezonu z aparatem tlenowym o zamkniêtym obiegu. + + + Flint, znany te¿ jako Sroka, to podstêpny sukinsyn. Musisz go zdemaskowaæ przed stalkerami na Zatonie i przed innymi frakcjami. To bêdzie dla niego niez³a nauczka. + + + Flint wyraŸnie siê popisuje i gada o rzeczach, których nawet nie widzia³ na oczy. Dobrze by³oby ujawniæ jego oszustwa. + + + Fa³szywe zas³ugi: rozpraw siê z Flintem + + + Flint przyw³aszcza sobie zas³ugi innych. Trzeba go nauczyæ, ¿eby uwa¿a³ na to, co gada. + + + Szpanerstwo Flinta przekracza wszelkie wyobra¿enie - porozmawiaj z nim i wyjaœnij mu wszystko tak, ¿eby zrozumia³ o co chodzi. + + + Flint, znany te¿ jako Sroka, to podstêpny sukinsyn. Musisz go zdemaskowaæ przed stalkerami na Zatonie i przed innymi frakcjami - to bêdzie najlepsza zemsta. + + + Badania nad anomaliami: odbierz skanery od technika + + + Odbierz skanery od Nowikowa. Herman chce zebraæ dane statystyczne na temat tworzenia siê artefaktów. ¯eby móg³ to zrobiæ, trzeba umieœciæ skanery w œrodku kilku anomalii. + + + Badania nad anomaliami: umieœæ skaner w anomalii + + + Badania nad anomaliami: odbierz swoj¹ nagrodê + + + Odbierz nagrodê obiecan¹ ci za umieszczenie skanerów w anomaliach. Teraz, gdy skanery s¹ ju¿ na miejscach, Herman mo¿e zacz¹æ zbieraæ dane na temat tworzenia siê artefaktów. + + + Umieœæ skaner w œrodku anomalii. Herman chce zebraæ dane statystyczne na temat tworzenia siê artefaktów. ¯eby móg³ to zrobiæ, trzeba umieœciæ skanery w œrodku kilku anomalii. + + + Kontrakt z naukowcami: przynieœ Garriemu artefakt zwany Kulebiakem + + + Garri potrzebuje artefaktu zwanego Kulebiakiem, aby wype³niæ swój kontrakt z naukowcami. Przynieœ mu ten artefakt. + + + Kontrakt z naukowcami: przynieœ Garriemu artefakt zwany Kotletem + + + Garri potrzebuje artefaktu zwanego Kotletem, aby wype³niæ swój kontrakt z naukowcami. Przynieœ mu ten artefakt. + + + Kontrakt z naukowcami: przynieœ Garriemu artefakty Kotlet i Kulebiak + + + Garriemu potrzebne s¹ dwa artefakty, Kotlet i Kulebiak, aby móg³ wype³niæ swój kontrakt z naukowcami. Przynieœ mu te artefakty. + + + Kontrakt z naukowcami: dostarczono artefakty + + + Garri ma oba artefakty i jego kontrakt zosta³ wype³niony. + + + Historia Powinnoœci: przeka¿ PDA za³o¿yciela Powinnoœci zainteresowanym + + + Uda³o ci siê znaleŸæ PDA za³o¿yciela Powinnoœci, który zgin¹³ w anomalii. Zabierz go do kogoœ, kto by³by zainteresowany ostatnimi chwilami ¿ycia lidera frakcji. + + + Aktywnoœæ anomalii: zbadaj teren u¿ywaj¹c ulepszonego detektora + + + Skanery naukowców zarejestrowa³y nietypow¹ aktywnoœæ na pó³noc od bunkra. Zbadaj ten teren u¿ywaj¹c ulepszonego detektora. + + + Ochrona naukowców: znajdŸ wiarygodnych ludzi + + + Bunkier naukowców jest niestrze¿ony. ZnajdŸ wiarygodnych ludzi do jego ochrony. + + + Ochrona naukowców: wróæ do Hermana po nagrodê + + + Uda³o ci siê znaleŸæ stra¿ników do bunkra naukowców. Wróæ do Hermana po nale¿n¹ ci nagrodê. + + + Ostatnie zmiany: znajdŸ dokumenty w fabryce Jupiter + + + Herman jest zainteresowany ostatnimi zmianami w fabryce Jupiter. ZnajdŸ dokumenty w czêœci administracyjnej zak³adu. + + + Ostatnie zmiany: zanieœ dokumenty Hermanowi + + + Znalezione dokumenty wskazuj¹, ¿e ca³a dokumentacja techniczna zosta³a przeniesiona poza fabrykê. To niewiele, ale Herman powinien siê o tym dowiedzieæ. + + + Ostatnie zmiany: zabierz dokumenty i PDA Czarnego do Hermana + + + Podczas twojego szperania w dokumentach, najemnicy przypuœcili atak. Wed³ug PDA znalezionego przy Czarnym, ich liderze, zostali wys³ani, by uniemo¿liwiæ naukowcom poszukiwanie dokumentów. Znalezione dokumenty wskazuj¹, ¿e ca³a dokumentacja techniczna zosta³a przeniesiona poza fabrykê. Przeka¿ tê informacjê Hermanowi i poka¿ mu PDA Czarnego. + + + Ocaleni z Monolitu: zapytaj na stacji Janów o schronienie + + + Grupa wojowników Monolitu uwolni³a siê spod uroku, którym by³a opêtana. Szukaj¹ teraz schronienia przed emisj¹ i mutantami. Musisz porozmawiaæ z mieszkañcami stacji Janów, by pozwolili dru¿ynie Monolitu ukryæ siê na niej. + + + ZaprowadŸ ludzi Powinnoœci odpowiedzialnych za rekrutacjê do by³ej za³ogi Monolitu. Je¿eli wojownicy Monolitu wst¹pi¹ do Powinnoœci, bêd¹ mogli schroniæ siê na stacji Janów przed emisj¹ i mutantami. + + + ZaprowadŸ ludzi Wolnoœci, odpowiedzialnych za rekrutacjê, do by³ej za³ogi Monolitu. Je¿eli wojownicy Monolitu wst¹pi¹ do Wolnoœci, bêd¹ mogli schroniæ siê na stacji Janów przed emisj¹ i mutantami. + + + Ocaleni z Monolitu: zaprowadŸ na miejsce odpowiedzialnych za rekrutacjê + + + Badania nad anomaliami: ochraniaj stalkerów + + + Wygl¹da na to, ¿e wykonywanie pomiarów w anomalii przyci¹gnê³o mutanty. Musisz ochraniaæ stalkerów, dopóki nie zbior¹ wszystkich potrzebnych danych. + + + Badania nad anomaliami: ochraniaj stalkerów + + + Wygl¹da na to, ¿e wykonywanie pomiarów w anomalii przyci¹gnê³o zombi z Kopaczi. Musisz ochraniaæ stalkerów, dopóki nie zbior¹ wszystkich potrzebnych danych. + + + Badania nad anomaliami: porozmawiaj z Hermanem + + + Pomiary w anomalii zosta³y ukoñczone - poinformuj o tym naukowców i odbierz nagrodê. + + + Badania nad anomaliami: porozmawiaj ze stalkerami + + + Porozmawiaj z dru¿yn¹ stalkerów odpowiedzialn¹ za pomiary - musicie zdecydowaæ, do której anomalii siê wybierzecie. + + + Badania nad anomaliami: porozmawiaj ze stalkerami + + + Wszystkie potrzebne pomiary zosta³y wykonane, mo¿esz wiêc razem z dru¿yn¹ wróciæ do bunkra naukowców. + + + Badania nad anomaliami: porozmawiaj ze stalkerami + + + Pomiary w anomalii zosta³y wykonane. Porozmawiaj z dru¿yn¹, dok¹d siê teraz wybierzecie. + + + Badania nad anomaliami: ochraniaj stalkerów + + + Herman zaoferowa³ ci pracê, polegaj¹c¹ na ochronie stalkerów, gdy ci bêd¹ wykonywaæ pomiary w anomaliach. + + + Ogoñcza 4: zbadaj miejsce katastrofy + + + Ogoñcza 4: znajdŸ przyczynê spalenia siê elektroniki + + + Zbadaj miejsce katastrofy Ogoñczy 4. + + + Musisz znaleŸæ Ÿród³o silnego wy³adowania elektrycznego, które uderzy³o w œmig³owiec Ogoñcza 4. + + + Ogoñcza 1: daj technikowi czarn¹ skrzynkê do odszyfrowania + + + Czarna skrzynka z Ogoñczy 1 przetrwa³a katastrofê. Musi zostaæ zabrana do technika, który j¹ zdeszyfruje, aby dostaæ siê do zawartych w niej informacji. + + + Ogoñcza 1: poczekaj na odszyfrowanie danych z czarnej skrzynki + + + Azot zgodzi³ siê zdeszyfrowaæ czarn¹ skrzynkê. Powiedzia³, ¿e zajmie to oko³o trzech godzin. Musisz poczekaæ, a¿ skoñczy. + + + Ogoñcza 1: wróæ do Azota po informacje z czarnej skrzynki + + + Azot powinien ju¿ skoñczyæ deszyfracjê. Spotkaj siê z nim, aby otrzymaæ informacje z czarnej skrzynki. + + + Ogoñcza 1: zbadaj miejsce katastrofy + + + Zbadaj miejsce katastrofy Ogoñczy 1. + + + Prypeæ 1: dostañ siê do Prypeci + + + Musisz przejœæ tunelem Prypeæ 1 i dotrzeæ do wojskowego punktu ewakuacyjnego w Prypeci. + + + Droga do Prypeci: zbadaj pracowniê chemiczn¹ w fabryce Jupiter + + + W pracowni chemicznej powinny znajdowaæ siê informacje na temat wype³nienia tunelu Prypeæ 1 jakimœ rodzajem gazu. + + + Droga do Prypeci: zbadaj czêœæ administracyjn¹ fabryki Jupiter + + + Przewodnik nie zna bezpiecznej drogi do Prypeci, ale zasugerowa³ ci, gdzie mo¿esz znaleŸæ informacje na temat podziemnych tuneli prowadz¹cych z fabryki Jupiter do miasta. Zacznij od czêœci administracyjnej. + + + Droga do Prypeci: zbadaj czêœæ laboratoryjn¹ fabryki Jupiter + + + Dokumenty znalezione w czêœci administracyjnej wspominaj¹ o przeniesieniu kompleksu produkcyjnego poza fabrykê. Informacje dotycz¹ce tej kwestii powinny znajdowaæ siê w czêœci laboratoryjnej. + + + Droga do Prypeci: sprawdŸ œluzê transportow¹ tunelu Prypeæ 1 + + + Wejœcie do tunelu znajduje siê za œluz¹ transportow¹. Zbadaj ten teren w poszukiwaniu jakichkolwiek informacji na temat tunelu. + + + Droga do Prypeci: zbadaj Departament 1 fabryki Jupiter + + + Informacje na temat tunelu Prypeæ 1 powinny znajdowaæ siê w Departamencie 1. Mog¹ byæ one bardzo przydatne, wiêc spróbuj tam poszukaæ. + + + Droga do Prypeci: zbadaj dzia³ dostaw fabryki Jupiter + + + Wnioskuj¹c z notatki w laboratorium, przeniesienie mia³o zostaæ przeprowadzone przez dzia³ dostaw, wiêc sprawdŸ równie¿ tam. + + + Droga do Prypeci: zbadaj warsztat naprawczy fabryki Jupiter + + + W dziale dostaw znajdowa³y siê informacje na temat strat podczas transportu czegoœ, co nazywano obiektem 62. Wed³ug dokumentacji, za tê kwestiê by³ odpowiedzialny warsztat naprawczy - sprawdŸ tam. + + + Droga do Prypeci: porozmawiaj z przewodnikiem + + + Z nagrania z czarnej skrzynki jednego ze œmig³owców wynika, ¿e jednostki wojskowe mia³y zgrupowaæ siê w punkcie ewakuacyjnym B28. Wed³ug map znalezionych w innym œmig³owcu bior¹cym udzia³ w misji, miejsce to znajduje siê w Prypeci. Musisz znaleŸæ sposób, by siê tam dostaæ - porozmawiaj o tym z przewodnikiem. + + + Magazyn Powinnoœci: zabierz, co ci siê nale¿y + + + Magazyn Powinnoœci: spotkaj siê z Morganem + + + Handlarz Morgan zaoferowa³ ci dostêp do magazynu Powinnoœci w zamian za milczenie na temat jego interesu. Zgodnie z umow¹, masz siê z nim spotkaæ niedaleko kamienio³omów. + + + Musisz otworzyæ bramê, aby przejœæ dalej. + + + Musisz otworzyæ drzwi, aby przejœæ dalej. + + + Musisz aktywowaæ zasilanie w bramie, aby przejœæ dalej. + + + Musisz odblokowaæ bramê, aby przejœæ dalej. Prawdopodobnie mo¿na to zrobiæ w sterowni. + + + Grupa badawcza: wynajmij odpowiednich ludzi + + + Cz³onkowie grupy badawczej pracuj¹cej dla naukowców zginêli. Musisz zatrudniæ nowych ludzi, aby kontynuowaæ badania. + + + Grupa badawcza: wróæ do Hermana po nagrodê + + + Uda³o ci siê znaleŸæ odpowiednich ludzi do nowej grupy badawczej. Mo¿esz wróciæ do Hermana, aby odebraæ nagrodê. + + + Prypeæ 1: wype³nij misjê Oziorskiego + + + Musisz wype³niæ misjê Oziorskiego dotycz¹c¹ nietypowej roœliny, aby zdobyæ kombinezon ochronny dla Soko³owa. + + + Azot potrzebuje materia³ów radiotechnicznych. Musisz je znaleŸæ w cementowni. + + + To Flint pozwoli³ Drzazdze zgin¹æ w anomalii. Porozmawiaj z nim i dowiedz siê, dlaczego to zrobi³. + + + Zemsta: pomœcij Drzazgê + + + Dowiedz siê, kto porzuci³ Drzazgê na œmieræ w anomalii, zabra³ artefakt i odszed³. Niestety, Drzazga nie zdo³a³ powiedzieæ, kto to by³. Wiadomo tylko, ¿e jest cz³onkiem Wolnoœci. + + + Podpu³kownik Szulga pozwoli³ ci zabraæ z magazynu Powinnoœci co tylko chcesz, o ile zdo³asz go odbiæ od oddzia³u Wolnoœci. + + + Loki pozwoli³ ci braæ z magazynu Powinnoœci co tylko chcesz, dopóki jest on w posiadaniu wojowników Wolnoœci. + + diff --git a/gamedata/configs/text/pol/st_quests_pripyat.xml b/gamedata/configs/text/pol/st_quests_pripyat.xml new file mode 100644 index 0000000..112bbae --- /dev/null +++ b/gamedata/configs/text/pol/st_quests_pripyat.xml @@ -0,0 +1,345 @@ + + + + Przedmiot 62: znajdŸ dokumenty w warsztacie testowym + + + Musisz znaleŸæ dokumenty dotycz¹ce przedmiotu 62. Wyjaœni¹ one, czy broñ ta mog³a zostaæ u¿yta do zestrzelenia helikopterów. + + + Niezidentyfikowana broñ: ukryj siê w budynku + + + Musisz ukryæ siê w budynku i odeprzeæ atak Monolitu. + + + Niezidentyfikowana broñ: znajdŸ informacje + + + Broñ jest niesprawna i nie wiadomo, w jaki sposób dzia³a. Musisz znaleŸæ technika, który zrozumie sposób jej dzia³ania. + + + Niezidentyfikowana broñ: zabij dowódcê dru¿yny Monolitu + + + Musisz zabiæ dowódcê dru¿yny Monolitu - to bojownik u¿ywaj¹cy niezidentyfikowanej broni. + + + Niezidentyfikowana broñ: przeszukaj zabitych bojowników Monolitu + + + Bojownicy Monolitu powinni mieæ niezidentyfikowan¹ broñ przy sobie - znajdŸ j¹. + + + Niezidentyfikowana broñ: porozmawiaj z Kardanem + + + Kardan pewnie ju¿ odchorowa³ kaca - czas porozmawiaæ z nim o niezidentyfikowanej broni. + + + Niezidentyfikowana broñ: poczekaj, a¿ Kardan odzyska przytomnoœæ + + + Kardan powinien wiedzieæ coœ o broni - musisz z nim porozmawiaæ, kiedy siê obudzi. + + + Karabin Gaussa: powiedz Kowalskiemu o broni + + + Musisz przekazaæ Kowalskiemu wszystko, co wiesz o przedmiocie 62. + + + Niezidentyfikowana broñ: do³¹cz do oddzia³u + + + Musisz do³¹czyæ do oddzia³u szturmowego w celu zdobycia broni. + + + Niezidentyfikowana broñ: podnieœ broñ + + + Musisz podnieœæ broñ dowódcy dru¿yny Monolitu. + + + Niezidentyfikowana broñ: zabierz broñ do Kowalskiego + + + Masz broñ - teraz musisz zabraæ j¹ do Kowalskiego i dowiedzieæ siê, czy to ona zestrzeli³a helikoptery. + + + Niezidentyfikowana broñ: weŸ udzia³ w zasadzce na bojowników Monolitu + + + Wojskowy oddzia³ zwiadowczy przygotowuje zasadzkê na dru¿ynê Monolitu. + + + Si³y Monolitu: spotkaj siê ze wsparciem + + + Kowalski przys³a³ wsparcie, które pomo¿e ci wyeliminowaæ dru¿ynê Monolitu zabarykadowan¹ w ksiêgarni. + + + Si³y Monolitu: pozb¹dŸ siê bojowników z ksiêgarni + + + Musisz wyeliminowaæ si³y Monolitu w budynku. Du¿e oddzia³y Monolitu s¹ zagro¿eniem dla obozu wojskowego. + + + Si³y Monolitu: zbadaj dziwn¹ konstrukcjê + + + W budynku znajdowa³o siê dziwne urz¹dzenie. Dowiedz siê o nim czegoœ wiêcej. + + + Laboratorium X8: znajdŸ dokumenty dotycz¹ce eksperymentów + + + Informacje przez ciebie znalezione odnosz¹ siê do centralnego laboratorium oznaczonego jako X8. Mo¿e ono zawieraæ dane na temat tajnych eksperymentów przeprowadzanych w Zonie. + + + Zaginiony oddzia³ zwiadowczy: znajdŸ dru¿ynê + + + Oddzia³ zwiadowczy wys³any przez Kowalskiego znikn¹³ po nadaniu dziwnego komunikatu. Musisz odkryæ, co siê sta³o. + + + Zaginiony wartownik: zbadaj miejsce, w którym zgin¹³ wartownik + + + Wartownik zachowywa³ siê bardzo dziwnie, wiêc musisz odkryæ przyczyny. + + + Zaginiony wartownik: znajdŸ wartownika + + + Jeden z ¿o³nierzy zagin¹³ z posterunku - musisz go odnaleŸæ i odkryæ przyczyny jego znikniêcia. + + + Zaginiony wartownik: zabij kontrolera + + + W pobli¿u zaginionego wartownika znajdowa³ siê kontroler - musi on zostaæ wyeliminowany. + + + Zak³ócenia radiowe: znajdŸ zaginiony oddzia³ + + + Oddzia³ szukaj¹cy Ÿród³a zak³óceñ radiowych zagin¹³. Twoim zadaniem jest jego odnalezienie. + + + Zak³ócenia radiowe: przeszukaj cia³a + + + Przeszukaj cia³a - mo¿e to pomóc w ustaleniu przyczyny zgonu. + + + Zak³ócenia radiowe: przeszukaj cia³o + + + Przeszukaj cia³o - mo¿e to pomóc w ustaleniu przyczyny zgonu. + + + Zak³ócenia radiowe: wysadŸ drzwi + + + Musisz wysadziæ drzwi u¿ywaj¹c materia³ów wybuchowych, aby dostaæ siê do budynku. + + + Zak³ócenia radiowe: zbadaj Ÿród³o dŸwiêku + + + Z lodówki dochodzi ha³as - brzmi, jakby ktoœ by³ w niej zamkniêty. Zbadaj to. + + + Zak³ócenia radiowe: usuñ Ÿród³o zak³óceñ + + + Wiesz ju¿, gdzie znajduje siê Ÿród³o zak³óceñ radiowych - teraz musisz je zniszczyæ. + + + Zak³ócenia radiowe: znajdŸ Ÿród³o zak³óceñ + + + W budynku znajduje siê Ÿród³o zak³óceñ radiowych - znajdŸ je. + + + Zak³ócenia radiowe: znajdŸ materia³y wybuchowe + + + Dru¿yna szukaj¹ca Ÿród³a zak³óceñ radiowych mia³a przy sobie materia³y wybuchowe. Musisz je znaleŸæ, aby dostaæ siê do budynku. + + + Zak³ócenia radiowe: dostañ siê do budynku przedszkola + + + ród³o sygna³u znajduje siê gdzieœ w budynku przedszkola, tak wiêc musisz dostaæ siê do œrodka. + + + Ewakuacja: os³aniaj ¿o³nierzy + + + Strie³ok mo¿e i jest martwy, ale ty nadal musisz doprowadziæ ¿o³nierzy do helikopterów. + + + Ewakuacja: os³aniaj Strie³oka + + + Kwatera g³ówna jest zainteresowana informacjami, które posiada Strie³ok. Musisz doprowadziæ go do helikopterów. + + + Ewakuacja: dostañ siê do helikopterów + + + Wszyscy zginêli - musisz sam dostaæ siê do helikopterów. + + + Ewakuacja: porozmawiaj z Kowalskim + + + Musisz porozmawiaæ z Kowalskim przed rozpoczêciem ewakuacji. + + + Ewakuacja: poinformuj Kowalskiego o swojej gotowoœci + + + Musisz poinformowaæ Kowalskiego o swojej gotowoœci do rozpoczêcia ewakuacji. + + + Ewakuacja: zaczekaj, a¿ emisja siê zakoñczy + + + Musisz poczekaæ, a¿ emisja siê zakoñczy. + + + Nieznany: zbadaj Ÿród³o sygna³u + + + Kiry³ow wykry³ dziwny sygna³ niedaleko bazy. Musisz zbadaæ jego Ÿród³o. + + + Nieznany: pod¹¿aj za sygna³em + + + Wspó³rzêdne sygna³u s¹ znowu dostêpne, wiêc pod¹¿aj za nimi. + + + Nieznany: zbadaj ostatni¹ znan¹ lokacjê sygna³u + + + Sygna³ ucich³ na dziedziñcu budynku, tak wiêc zbadaj jego ostatni¹ znan¹ lokalizacjê. + + + Nieznany: przygotuj siê na atak na bazê + + + Wróæ do bazy wojskowej i przygotuj siê na prawdopodobny atak. + + + Zak³ócenia radiowe: porozmawiaj z Kowalskim + + + Pu³kownik Kowalski pyta³ o ciebie. + + + Laboratorium X8: dostañ siê do szybu windy + + + Do wejœcia do podziemnego laboratorium pod centrum us³ugowym Jubilejny mo¿na dostaæ siê tylko przez szyb windy. + + + Laboratorium X8: znajdŸ generator + + + Zasilanie drzwi szybu windy zosta³o odciête. Aby je przywróciæ, musisz znaleŸæ generator awaryjny. + + + Laboratorium X8: zejdŸ do laboratorium + + + Musisz u¿yæ windy, aby dostaæ siê do laboratorium X8, znajduj¹cego siê pod centrum us³ugowym Jubilejny. + + + Jeden strza³: wyeliminuj pos³añca + + + Musisz wyeliminowaæ pos³añca. Bez niego najemnicy nie bêd¹ w stanie odnaleŸæ laboratorium. + + + Jeden strza³: poczekaj na ludzi klienta + + + Poczekaj na ludzi klienta i zabij ich dowódcê. Bez niego najemnicy nie bêd¹ w stanie odnaleŸæ laboratorium. + + + Jeden strza³: zabij dowódcê dru¿yny najemników + + + Musisz zabiæ dowódcê dru¿yny najemników. Bez niego bêd¹ zdezorganizowani i niegroŸni. + + + Jeden strza³: poczekaj, a¿ pojawi¹ siê najemnicy + + + Musisz poczekaæ, a¿ pojawi¹ siê najemnicy i zabij ich dowódcê. Bez niego bêd¹ zdezorganizowani i niegroŸni. + + + Jeden strza³: porozmawiaj z Kowalskim + + + Z³ó¿ raport o wynikach misji Kowalskiemu. + + + Laboratorium X8: opuœæ podziemny kompleks lub dalej szukaj dokumentów + + + Uda³o ci siê znaleŸæ dokumenty. Mo¿esz teraz opuœciæ laboratorium, ale mo¿liwe jest, ¿e w kompleksie znajduj¹ siê jeszcze inne wartoœciowe informacje. + + + Laboratorium X8: opuœæ podziemny kompleks lub dalej szukaj dokumentów + + + Uda³o ci siê znaleŸæ dokumenty. Mo¿esz teraz opuœciæ laboratorium, ale mo¿liwe jest, ¿e w kompleksie znajduj¹ siê jeszcze inne wartoœciowe informacje. + + + Laboratorium X8: opuœæ podziemny kompleks + + + Wygl¹da na to, ¿e uda³o ci siê znaleŸæ wszystkie dokumenty znajduj¹ce siê w laboratorium. Mo¿esz teraz opuœciæ podziemny kompleks. + + + Si³y monolitu: poczekaj na posi³ki + + + Musisz poczekaæ na posi³ki wys³ane przez Kowalskiego, aby wyeliminowaæ si³y Monolitu w ksiêgarni. + + + Cicha rozmowa: porozmawiaj z Kowalskim + + + Musisz porozmawiaæ z Kowalskim. Wygl¹da na to, ¿e ma coœ wa¿nego do powiedzenia. + + + Ewakuacja: utrzymaj siê przy helikopterach + + + Musisz os³aniaæ helikoptery do chwili ich startu. + + + Ewakuacja: ocuæ medyka + + + Medyk zosta³ pora¿ony przez nieznan¹ si³ê. Musisz jak najszybciej przywróciæ go do przytomnoœci. + + + Ewakuacja: wróæ do helikopterów + + + Musisz wróciæ do helikopterów, poniewa¿ mog¹ one wkrótce wystartowaæ. + + + Ewakuacja: jak najszybciej wróæ do helikopterów + + + Helikoptery s¹ gotowe do startu. Musisz natychmiast wejœæ na pok³ad jednego z nich - piloci nie mog¹ d³ugo czekaæ. + + diff --git a/gamedata/configs/text/pol/st_quests_zaton.xml b/gamedata/configs/text/pol/st_quests_zaton.xml new file mode 100644 index 0000000..cac93e3 --- /dev/null +++ b/gamedata/configs/text/pol/st_quests_zaton.xml @@ -0,0 +1,780 @@ + + + + Bezpieczne miejsce: dostañ siê do Skadowska + + + Jedynymi wzglêdnie bezpiecznymi miejscami w Zonie s¹ du¿e obozy. Najbli¿szym z nich jest Skadowsk - tam w³aœnie musisz siê skierowaæ. + + + Mapy terenu: znajdŸ kogoœ, kto interesuje siê mapami + + + Mapy terenu: zaoferuj mapy Pilotowi + + + Mo¿liwe, ¿e Pilot, miejscowy przewodnik, bêdzie zainteresowany mapami terenu pomiêdzy Zatonem i Jupiterem. + + + Ogoñcza 2: zbadaj miejsce katastrofy + + + Zbadaj miejsce katastrofy Ogoñczy 2. + + + Ogoñcza 5: zbadaj miejsce katastrofy + + + Ogoñcza 5: znajdŸ przyczynê spalenia siê elektroniki + + + Oddzia³ Ogoñczy: znajdŸ Ÿród³o wy³adowañ, które uderzy³y w dwa œmig³owce + + + Zbadaj miejsce katastrofy Ogoñczy 5. + + + Musisz znaleŸæ Ÿród³o silnego wy³adowania elektrycznego, które uderzy³o w œmig³owiec Ogoñcza 5. + + + Musisz znaleŸæ przyczynê spalenia siê elektroniki w Ogoñczach 4 i 5. Wygl¹da na to, ¿e zosta³y trafione przez silne wy³adowania elektryczne. + + + ¯ywnoœæ: zdob¹dŸ jedzenie dla najemników + + + Oddzia³ najemników z warsztatów podstacji poprosi³ ciê o przyniesienie szeœciu puszek miêsa, kawa³ków kie³basy lub chleba. + + + ¯ywnoœæ: zanieœ jedzenie najemnikom + + + Musisz zanieœæ zgromadzone jedzenie najemnikom w warsztatach podstacji. + + + Narzêdzia: zbadaj warsztaty podstacji + + + Mówi¹, ¿e w warsztatach podstacji mog¹ znajdowaæ siê narzêdzia. Mo¿e nawet znajdziesz te, których szuka technik. + + + Polowanie na chimerê: znajdŸ mutanta, dopóki œpi + + + Musisz znaleŸæ chimerê, zanim siê obudzi. + + + W poszukiwaniu Sroki: poinformuj Gontê + + + Wygl¹da na to, ¿e Sroka, stalker, który wystawi³ dru¿ynê Gonty, zosta³ odnaleziony. Do³¹czy³ do Wolnoœci i teraz zwie siê Flintem. + + + Polowanie na chimerê: zabij mutanta + + + Chimera nie œpi. Musisz j¹ zabiæ, zanim bêdzie za póŸno. + + + Polowanie na chimerê: spotkaj siê z Gont¹ w barze o 3 rano + + + Musisz spotkaæ siê z Gont¹ przed œwitem, aby do³¹czyæ do jego dru¿yny podczas polowania na chimerê. + + + Polowanie na chimerê: poinformuj Trapera + + + Poinformuj stalkera zwanego Traperem, ¿e polowanie na chimerê zakoñczy³o siê sukcesem. Powinien daæ ci nagrodê. + + + W poszukiwaniu Sroki: znajdŸ stalkera + + + Stalker zwany Srok¹ wystawi³ ludzi Gonty na atak chimery. Poprosili ciê o znalezienie tego gnojka. + + + Miejsca ewakuacji: zbadaj punkt B205 + + + Mapa znaleziona w jednym ze œmig³owców wskazywa³a miejsca ewakuacji. SprawdŸ, czy ¿o³nierze pojawili siê w punkcie B205. + + + Miejsca ewakuacji: zbadaj punkt B28 + + + Mapa znaleziona w jednym ze œmig³owców wskazywa³a miejsca ewakuacji. SprawdŸ, czy ¿o³nierze pojawili siê w punkcie B28 + + + Miejsce ewakuacji: znajdŸ wspó³rzêdne punktu B28 + + + W czarnej skrzynce jednego ze œmig³owców Ogoñcza znajdowa³o siê nagranie, w którym dowódca oddzia³u wyznaczy³ miejsce zbiórki. Jest nim punkt ewakuacyjny B28. Musisz okreœliæ jego wspó³rzêdne. + + + Miejsce ewakuacji: znajdŸ punkt B28 + + + Miejsce zbiórki ¿o³nierzy znajduje siê w Prypeci. ZnajdŸ sposób, by siê tam dostaæ. + + + Miejsca ewakuacji: zbadaj punkt B2 + + + Mapa znaleziona w jednym ze œmig³owców wskazywa³a miejsca ewakuacji. SprawdŸ, czy ¿o³nierze pojawili siê w punkcie B2. + + + Dziwne zjawisko: zanieœ artefakt Brodaczowi + + + ród³em dziwnego blasku by³ równie dziwny artefakt. Na pewno zainteresuje on Brodacza. + + + Dziwne zjawisko: popytaj stalkerów o artefakt + + + Stalkerzy mog¹ wiedzieæ coœ na temat dziwnego artefaktu lub poleciæ kogoœ, kto coœ wie. Porozmawiaj z nimi. + + + Dziwne zjawisko: znajdŸ Ÿród³o blasku w pog³êbiarce + + + Zauwa¿ono dziwny blask w pog³êbiarce. Brodacz poprosi³ ciê o znalezienie jego Ÿród³a. + + + Dziwne zjawisko: zabierz artefakt + + + ród³em dziwnego blasku by³ równie dziwny artefakt. Zabierz go ze sob¹. + + + Dziwne zjawisko: powiedz Brodaczowi o artefakcie + + + ród³em dziwnego blasku by³ równie dziwny artefakt. Mimo ¿e nie masz artefaktu, powiedz o nim Brodaczowi. + + + Œcie¿ka na p³askowy¿: wskocz do anomalii + + + Wygl¹da na to, ¿e droga na p³askowy¿ prowadzi przez anomaliê. Musisz w ni¹ wskoczyæ. + + + Œcie¿ka na p³askowy¿: znajdŸ sekretn¹ œcie¿kê Noego + + + W PDA Noego by³a wzmianka o jego w³asnej „sekretnej œcie¿ce" na p³askowy¿. Musisz j¹ znaleŸæ. + + + Œcie¿ka na p³askowy¿: dowiedz siê od Noego, jak siê tam dostaæ + + + Mówi¹, ¿e stalker znany jako Noe zna œcie¿kê na p³askowy¿. Musisz siê dowiedzieæ, jak siê tam dostaæ. + + + Zaginieni stalkerzy: przynieœ dowód udzia³u Wstrz¹sa + + + Musisz zabraæ PDA z nagraniami Wstrz¹sa do Skadowska i pokazaæ je Brodaczowi. Nagrania dowodz¹, ¿e medyk by³ odpowiedzialny za znikniêcia stalkerów. + + + Zaginieni stalkerzy: znajdŸ dowód udzia³u Wstrz¹sa + + + Musisz sprawdziæ, czy Wstrz¹s pozostawi³ jakiekolwiek dowody swojego udzia³u w znikniêciach stalkerów. + + + Ogoñcza 3: zbadaj miejsce katastrofy + + + Zbadaj miejsce katastrofy Ogoñczy 3. + + + Musisz przynieœæ Brodaczowi artefakt, ale nie masz ju¿ forów. Twoi konkurenci te¿ zaczêli go szukaæ. + + + Musisz przynieœæ Brodaczowi artefakt. Pamiêtaj: twoi konkurenci te¿ go szukaj¹. + + + Musisz przynieœæ Brodaczowi artefakt, ale wed³ug doniesieñ, inna grupa ju¿ go znalaz³a. Spróbuj namierzyæ sygna³ i wykonaæ zadanie, zanim zrobi¹ to twoi konkurenci. + + + Musisz przynieœæ Brodaczowi artefakt, ale inny grupa ju¿ to zrobi³a. Teraz dostaniesz za niego tylko po³owê zap³aty. + + + Musisz przynieœæ Brodaczowi artefakt. + + + Zamówienie na artefakt: przynieœ Grawi + + + Zamówienie na artefakt: przynieœ Oko + + + Zamówienie na artefakt: przynieœ B¹bel + + + Zamówienie na artefakt: przynieœ Muszlê + + + Zamówienie na artefakt: przynieœ Z³ot¹ rybkê + + + Zamówienie na artefakt: przynieœ P³omieñ + + + Zamówienie na artefakt: przynieœ Œwietlika + + + Zamówienie na artefakt: przynieœ Œnie¿ynkê + + + Musisz znaleŸæ artefakt dla Brodacza, ale nie masz ju¿ forów. Twoi konkurenci te¿ zaczêli go szukaæ. + + + Musisz znaleŸæ artefakt dla Brodacza. Pamiêtaj: twoi konkurenci te¿ go szukaj¹. + + + Musisz znaleŸæ artefakt dla Brodacza, ale wed³ug doniesieñ, inna grupa ju¿ go znalaz³a. Spróbuj namierzyæ sygna³ i wykonaæ zadanie, zanim zrobi¹ to twoi konkurenci. + + + Musisz znaleŸæ artefakt dla Brodacza, ale inna grupa ju¿ wype³ni³a polecenie. Teraz dostaniesz za niego tylko po³owê zap³aty. + + + Musisz znaleŸæ artefakt dla Brodacza. + + + Zamówienie na artefakt: znajdŸ Grawi + + + Zamówienie na artefakt: znajdŸ Oko + + + Zamówienie na artefakt: znajdŸ B¹bel + + + Zamówienie na artefakt: znajdŸ Muszlê + + + Zamówienie na artefakt: znajdŸ Z³ot¹ rybkê + + + Zamówienie na artefakt: znajdŸ P³omieñ + + + Zamówienie na artefakt: znajdŸ Œwietlika + + + Zamówienie na artefakt: znajdŸ Œnie¿ynkê + + + Kompas: znajdŸ Noego i dowiedz siê, gdzie mo¿esz zdobyæ ten rzadki artefakt + + + Musisz znaleŸæ Noego na starej barce i dowiedzieæ siê, gdzie mo¿esz zdobyæ rzadki artefakt - Kompas. Brodacz szuka tego artefaktu od d³ugiego czasu i jest w stanie du¿o za niego zap³aciæ. + + + Kompas: zanieœ artefakt Brodaczowi + + + Kompas: dowiedz siê od Noego, gdzie mo¿esz zdobyæ ten rzadki artefakt + + + Su³tan chce przechwyciæ artefakt, którego szuka Brodacz. Musisz znaleŸæ Noego na starej barce i dowiedzieæ siê, gdzie mo¿esz zdobyæ ten artefakt. + + + Kompas: zanieœ artefakt Su³tanowi + + + Artefakt, który da³ Ci Noe, to Kompas poszukiwany przez Su³tana. + + + Ciemne interesy: odbierz swoj¹ dolê od Brodacza + + + Odbierz od Brodacza swoj¹ dolê z jego wynagrodzenia. + + + Kusz¹cy interes: porozmawiaj z Su³tanem + + + Handlarz Sowa uwa¿a, ¿e Brodacz nie wywi¹zuje siê z umowy i sugeruje, by zg³osiæ siê po pomoc do Su³tana, bossa miejscowej mafii. + + + Ciemne interesy: zabierz stalkerom detektory + + + Musisz zrobiæ co w twojej mocy, by zabraæ prototypy detektorów stalkerom szukaj¹cym artefaktów dla Brodacza. Jeœli nie bêdzie mia³ detektorów, bêdzie musia³ przystaæ na warunki Su³tana. + + + Ciemne interesy: porozmawiaj z Su³tanem + + + Brodacz nie ma detektorów, wiêc trzeba porozmawiaæ z Su³tanem, by dowiedzieæ siê, czy rozwi¹za³ problem z jego pozosta³ymi dostawcami. + + + Ciemne interesy: zmuœ Brodacza, by pracowa³ dla Su³tana + + + Teraz, gdy Brodacz nie ma dostawców i detektorów, nie mo¿e nic zrobiæ na w³asn¹ rêkê - zmuœ go, by pracowa³ dla Su³tana. + + + Ciemne interesy: zdob¹dŸ informacje o aktualnych interesach Brodacza + + + Musisz dowiedzieæ siê, w jakie interesy jest w tej chwili zaanga¿owany Brodacz. Pomo¿e to odci¹æ jego Ÿród³a zaopatrzenia. + + + Ciemne interesy: zabierz stalkerom drugi detektor + + + Musisz zrobiæ co w twojej mocy, by zabraæ prototypy detektorów stalkerom szukaj¹cym artefaktów dla Brodacza. Jeœli nie bêdzie mia³ detektorów, bêdzie musia³ przystaæ na warunki Su³tana. + + + Kusz¹cy interes: przynieœ Nowikowowi trzy detektory Weles + + + Handlarz Sowa zaoferowa³ ci udzia³ w zyskownym przedsiêwziêciu. Twoim zadaniem jest odnalezienie trzech detektorów Weles i zaniesienie ich Nowikowowi do bunkra naukowców. + + + Kusz¹cy interes: poczekaj, a¿ Sowa dostanie detektory + + + Nowikow przyj¹³ detektory i obieca³ osobiœcie odes³aæ je Sowie. Musisz poczekaæ, a¿ skoñczy pracê z detektorami i dowiedzieæ siê o wynikach od Sowy. + + + Kusz¹cy interes: porozmawiaj z Sow¹ + + + Handlarz Sowa skontaktowa³ siê z tob¹ przez radio, by powiedzieæ ci, ¿e ma problemy i ¿e chce siê z tob¹ zobaczyæ. + + + Kusz¹cy interes: przekonaj Brodacza, by wywi¹za³ siê z umowy + + + Handlarz Sowa uwa¿a, ¿e Brodacz nie wywi¹zuje siê z umowy. Musisz z nim porozmawiaæ i przekonaæ go, by przesta³ ³amaæ jej warunki. + + + Kusz¹cy interes: za¿¹daj swojej doli od Sowy + + + Brodacz uwa¿a, ¿e nic nie jest Sowie winien - musisz dowiedzieæ siê, kto ma racjê, i za¿¹daæ zap³aty od tej osoby. + + + Sêk poprosi³ ciê o przyniesienie jego pude³ka. Ukry³ je w starym samochodzie Zaporo¿ec, który wpad³ do rozpadliny po trzêsieniu ziemi. Sêk boi siê pójœæ tam samemu, bo roi siê tam od snorków. + + + Masz pude³ko Sêka. Zanieœ je do w³aœciciela, by sprawiedliwie podzieliæ siê jego zawartoœci¹. + + + Legowisko pijawek: powiadom stalkerów + + + Musisz poinformowaæ stalkerów o legowisku pijawek pod stacj¹ antenow¹ Krug. + + + Legowisko pijawek: powiadom Brodacza + + + Musisz powiadomiæ Brodacza o legowisku pijawek znalezionym pod stacj¹ antenow¹ Krug, ¿eby móg³ zdecydowaæ, w jaki sposób chroniæ stalkerów. + + + Zaginieni stalkerzy: pod¹¿aj za G³uszcem + + + G³uszec poprosi³ ciê o zbadanie razem z nim opuszczonego budynku stacji antenowej. Dostrzeg³ pijawki i chce sprawdziæ, czy znajduje siê tam ³owca. + + + Zaginieni stalkerzy: dowiedz siê co siê sta³o + + + Wygl¹da na to, ¿e Wstrz¹s nie jest takim niewini¹tkiem, jak siê wydawa³o. Musisz odkryæ, co siê sta³o. + + + Zaginieni stalkerzy: znajdŸ G³uszca + + + Z jakiegoœ powodu G³uszec uda³ siê w stronê dŸwigów portowych - mo¿e dowiedzia³ siê czegoœ o zaginionych stalkerach. Poszukaj go tam. + + + Zaginieni stalkerzy: dowiedz siê, gdzie jest G³uszec + + + G³uszca nie ma tam, gdzie normalnie bywa. Zapytaj Brodacza, dok¹d poszed³. + + + Zaginieni stalkerzy: znajdŸ zaginionego ³owcê + + + G³uszec poprosi³ ciê o pomoc w poszukiwaniach zaginionego ³owcy. Mia³ on odnaleŸæ legowisko pijawek. Wed³ug aktualnych informacji, to pijawki s¹ odpowiedzialne za ostatnie znikniêcia stalkerów. + + + Zaginieni stalkerzy: wydostañ siê z legowiska pijawek + + + Uda³o ci siê odkryæ legowisko pijawek w piwnicach. Znajduj¹ siê one w jakimœ stanie odrêtwienia. Musisz siê st¹d wydostaæ, zachowuj¹c ciszê. + + + Zaginieni stalkerzy: spotkaj siê z G³uszcem + + + Prawdopodobnie nale¿y teraz porozmawiaæ z G³uszcem na temat poszukiwania zaginionego ³owcy. + + + Zaginieni stalkerzy: spotkaj siê póŸniej z G³uszcem + + + W budynku stacji antenowej nie by³o œladu po ³owcy Danile. Jednak G³uszec wydawa³ siê zak³opotany tym, co uda³o ci siê tam znaleŸæ. Poprosi³ ciê o spotkanie siê z nim póŸniej, aby bardziej szczegó³owo omówiæ tê kwestiê. + + + Zaginieni stalkerzy: spotkaj siê z G³uszcem + + + W miejscu, które wskaza³ G³uszec, by³a martwa pijawka i ¿adnych œladów ³owcy Dani³y. Wydaje siê jednak, ¿e G³uszec znalaz³ coœ interesuj¹cego i prosi ciê o towarzyszenie mu. + + + Jak siê okaza³o, pijawki nie mia³y nic wspólnego ze znikniêciami stalkerów - to by³a sprawka Wstrz¹sa, skadowskiego medyka. + + + Narzêdzia: przynieœ Kardanowi narzêdzia + + + Kardan poprosi³ ciê o zdobycie dwóch zestawów narzêdzi: jednego podstawowego i jednego do precyzyjnej pracy. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Kardanowi narzêdzia + + + Kardan poprosi³ ciê o zdobycie dwóch zestawów narzêdzi: jednego podstawowego i jednego do kalibracji. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Kardanowi narzêdzia + + + Kardan poprosi³ ciê o zdobycie zestawu narzêdzi podstawowych. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Kardanowi narzêdzia + + + Kardan poprosi³ ciê o zdobycie dwóch zestawów narzêdzi: jednego do precyzyjnej pracy i jednego do kalibracji. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Kardanowi narzêdzia + + + Kardan poprosi³ ciê o zdobycie zestawu narzêdzi do precyzyjnej pracy. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Kardanowi narzêdzia + + + Kardan poprosi³ ciê o zdobycie zestawu narzêdzi do kalibracji. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Narzêdzia: przynieœ Kardanowi narzêdzia + + + Kardan poprosi³ ciê o zdobycie trzech zestawów narzêdzi: jednego podstawowego, jednego do precyzyjnej pracy i jednego do kalibracji. Technik zap³aci ci za narzêdzia i bêdzie w stanie wykonaæ bardziej zaawansowane modyfikacje broni i pancerzy. + + + Obóz najemników: wynieœ wszystkie informacje, jakie uda ci siê znaleŸæ + + + Handlarz Sowa obieca³ przyzwoit¹ zap³atê za jakiekolwiek informacje z obozu najemników w zak³adzie utylizacji opadów. Interesuj¹ go plany najemników. + + + Obóz najemników: wynieœ wszystkie informacje, jakie uda ci siê znaleŸæ + + + Handlarz Sowa obieca³ przyzwoit¹ zap³atê za jakiekolwiek informacje z obozu najemników w zak³adzie utylizacji opadów. Interesuj¹ go plany najemników. + + + Trzej towarzysze: dowiedz siê czegoœ o losie Stoga + + + Kardan poprosi³ ciê o przekazanie przeprosin swojemu towarzyszowi, stalkerowi znanemu jako Stóg. Pok³ócili siê i Stóg odszed³ w nieznanym kierunku. + + + Trzej towarzysze: dowiedz siê czegoœ o losach Stoga i Kawalarza + + + Kardan poprosi³ ciê o przekazanie przeprosin swoim towarzyszom, stalkerom znanym jako Stóg i Kawalarz. Pok³ócili siê i jego towarzysze odeszli w nieznanym kierunku. + + + Trzej towarzysze: dowiedz siê czegoœ o losie Kawalarza + + + Kardan poprosi³ ciê o przekazanie przeprosin swojemu towarzyszowi, stalkerowi znanemu jako Kawalarz. Pok³ócili siê i Kawalarz odszed³ w nieznanym kierunku. + + + Specjalne zamówienie: odbierz towar + + + Towar zosta³ dostarczony - czas odebraæ go od ¯wawego. + + + Specjalne zamówienie: poczekaj na dostawê + + + Zamówienie zosta³o z³o¿one, teraz musisz poczekaæ, a¿ ¯wawy dostanie towar. + + + Reputacja: znajdŸ Sêka + + + Musisz znaleŸæ Sêka i zmusiæ go, ¿eby trzyma³ gêbê na k³ódkê. ¯wawy nigdy nie handlowa³ kradzionym towarem, podczas gdy Sêk wydaje siê byæ z zasady nieuczciwy. Ostatnio widziano go przy dŸwigach portowych. Mo¿e wci¹¿ tam jest. + + + Musisz znaleŸæ Sêka i zmusiæ go, ¿eby trzyma³ gêbê na k³ódkê. Sêka nie ma przy dŸwigach portowych, ale bandyci mog¹ wiedzieæ, gdzie go znaleŸæ. + + + Musisz znaleŸæ Sêka i zmusiæ go, ¿eby trzyma³ gêbê na k³ódkê. Wygl¹da na to, ¿e bandyci s¹ w to zamieszani, wiêc powinni wiedzieæ, gdzie go szukaæ. + + + Musisz znaleŸæ Sêka i zmusiæ go, ¿eby trzyma³ gêbê na k³ódkê. Na chwilê obecn¹ nie ma ¿adnych wskazówek, gdzie mo¿na go znaleŸæ. + + + Musisz znaleŸæ Sêka i zmusiæ go, ¿eby trzyma³ gêbê na k³ódkê. Wnioskuj¹c z PDA znalezionego przy jednym z bandytów, ludzie Su³tana szukaj¹ Sêka. Niestety, nie ma ¿adnych wskazówek, gdzie mo¿na go znaleŸæ. + + + Reputacja: dowiedz siê, gdzie znikn¹³ Sêk + + + Sêka nie ma tam, gdzie zwykle bywa³, musisz wiêc popytaæ miejscowych, czy widzieli, gdzie poszed³. + + + Musisz znaleŸæ Sêka i zmusiæ go, ¿eby trzyma³ gêbê na k³ódkê. Nie ma go tam, gdzie zwykle bywa³. Mo¿e Su³tan wie, gdzie go szukaæ. + + + Musisz znaleŸæ Sêka i zmusiæ go, ¿eby trzyma³ gêbê na k³ódkê. Nie ma go tam, gdzie zwykle bywa³. Mo¿e Brodacz wie, gdzie go szukaæ. + + + Reputacja: porozmawiaj z Sêkiem + + + Musisz znaleŸæ Sêka i zmusiæ go, ¿eby trzyma³ gêbê na k³ódkê. ¯wawy nigdy nie handlowa³ kradzionym towarem, podczas gdy Sêk wydaje siê byæ z zasady nieuczciwy. + + + Legowisko pijawek: znajdŸ szyb wentylacyjny + + + ZnajdŸ szyb wentylacyjny, aby wype³niæ legowisko pijawek truj¹cym gazem. + + + Legowisko pijawek: znajdŸ truj¹cy gaz + + + Bêdziesz potrzebowaæ truj¹cego gazu, aby zniszczyæ legowisko pijawek. Sowa powinien wiedzieæ, gdzie mo¿esz go zdobyæ. + + + Bêdziesz potrzebowaæ truj¹cego gazu, aby zniszczyæ legowisko pijawek. Sowa twierdzi, ¿e zbiorniki z gazem znajdziesz w opuszczonym konwoju wojskowym. + + + Legowisko pijawek: znajdŸ klucze do pojemnika + + + Znalezione dokumenty wspominaj¹ o kluczach do pojemnika, w którym znajduje siê zbiornik z gazem. Musisz je znaleŸæ. + + + Legowisko pijawek: odkryj, jak otworzyæ pojemnik, w którym jest butla z gazem + + + Pojemnik, w którym znajduje siê zbiornik z gazem, jest zamkniêty. Musisz znaleŸæ sposób, by go otworzyæ. + + + Legowisko pijawek: zainstaluj zbiornik z gazem + + + Zainstaluj zbiornik z gazem w systemie wentylacyjnym piwnic stacji antenowej. Gaz powinien pop³yn¹æ szybem wentylacyjnym i wype³niæ piwnicê, zabijaj¹c pijawki. + + + Legowisko pijawek: powiadom Brodacza, ¿e legowisko zosta³o zniszczone + + + Poinformuj Brodacza, ¿e uda³o ci siê zniszczyæ legowisko pijawek, zapewniaj¹c tym samym bezpieczeñstwo stalkerom ze Skadowska. + + + Legowisko pijawek: odkrêæ zawór + + + Odkrêæ zawór, aby gaz móg³ wype³niæ piwnicê z legowiskiem pijawek przez szyb wentylacyjny. + + + Legowisko pijawek: poczekaj, a¿ gaz zacznie dzia³aæ + + + Musisz siê upewniæ, ¿e gaz wype³ni³ legowisko i pijawki s¹ martwe. + + + Transakcja: spotkaj siê z bandytami ko³o stra¿nicy + + + Su³tan poprosi³ ciê o udzia³ w transakcji z jednym z handlarzy. Musisz towarzyszyæ jego ludziom, by zapewniæ im ochronê, gdyby coœ siê wydarzy³o. + + + Transakcja: spotkaj siê z handlarzem + + + Sowa zaproponowa³ ci pracê przy ochronie pewnego handlarza podczas transakcji. Oczywiœcie jest to szemrany interes i mo¿e nie pójœæ zbyt g³adko. + + + Transakcja: spotkaj siê ze stalkerami ko³o stra¿nicy + + + Spotkaj siê ze stalkerami ko³o stra¿nicy, aby pomóc im powstrzymaæ transakcjê pomiêdzy bandytami i handlarzem broni¹. + + + Transakcja: ochraniaj handlarza + + + Handlarz wyjaœni³ ci twoje zadanie - musisz go chroniæ podczas transakcji. + + + Transakcja: pods³uchaj rozmowê + + + Stalkerzy chc¹ pods³uchaæ rozmowê pomiêdzy bandytami i handlarzem broni¹. + + + Transakcja: przeszkodŸ w zakupie broni + + + Zrób co tylko siê da, ¿eby przeszkodziæ w transakcji pomiêdzy bandytami i handlarzem. + + + Transakcja: zlikwiduj œwiadków + + + Transakcja z handlarzem siê nie uda³a, wiêc musisz zlikwidowaæ wszystkich œwiadków. + + + Transakcja: ochraniaj handlarza + + + Musisz ochraniaæ handlarza. Zleci³ ci te¿ zlikwidowanie wszystkich œwiadków transakcji, ³¹cznie z jego klientami. + + + Transakcja: przeszukaj handlarza + + + Handlarz mo¿e mieæ wa¿ne informacje, które mog¹ siê przydaæ póŸniej. Zabierz mu je. + + + Transakcja: ochraniaj bandytów podczas transakcji + + + Stój na stra¿y i zapewniaj bandytom ochronê podczas negocjacji z handlarzem. + + + Transakcja: porozmawiaj z handlarzem + + + Transakcja z bandytami zosta³a zakoñczona, mo¿esz wiêc odebraæ swoj¹ nagrodê. + + + Transakcja: odbierz nagrodê od Brodacza + + + Brodacz obieca³ ci nagrodê, jeœli przeszkodzisz w transakcji pomiêdzy bandytami i handlarzem. Transakcja zosta³a zak³ócona, mo¿esz wiêc odebraæ swoj¹ nagrodê. + + + Transakcja: porozmawiaj z dowódc¹ bandytów + + + Musisz poinformowaæ dowódcê bandytów o gotowoœci do wziêcia udzia³u w transakcji. + + + Atak: zdecyduj, co zrobiæ + + + Atak: zaatakuj stalkerów + + + Atak: odbierz swoj¹ nagrodê + + + Atak na obóz zosta³ odparty, mo¿esz wiêc porozmawiaæ ze stalkerami i odebraæ swoj¹ nagrodê. Prawdopodobnie mieliby niez³e piek³o, gdyby nie zostali ostrze¿eni o ataku. + + + Grupa stalkerów postanowi³a zostaæ bandytami i rabowaæ swoich. Musisz zdecydowaæ, czy weŸmiesz udzia³ w ataku, ostrze¿esz stalkerów, czy nie bêdziesz siê w to mieszaæ. + + + Atak: poczekaj na uzgodnion¹ chwilê + + + Atak: Poczekaj na w³aœciw¹ chwilê + + + Niedostêpny schowek: zanieœ pude³ko Sêkowi + + + Transakcja: porozmawiaj z dowódc¹ oddzia³u stalkerów + + + Transakcja zosta³a udaremniona. Handlarz broni¹ nie ¿yje. Porozmawiaj z dowódc¹ oddzia³u stalkerów. + + + Zaginieni stalkerzy: powiedz ludziom w Skadowsku, co siê sta³o + + + Musisz otworzyæ pojemnik, u¿ywaj¹c znalezionych kluczy, i zabraæ zbiornik z gazem. + + + Legowisko pijawek: zabierz zbiornik z gazem z pojemnika + + + Atak: zaatakuj z³odziei + + + Zaatakowanie z³odziei od ty³u pomo¿e stalkerom odeprzeæ atak. + + + Atak: spotkaj siê ze z³odziejami + + + Przy³¹cz siê do z³odziei podczas ataku na obóz stalkerów. + + + Zabójstwo: przy³¹cz siê do z³odziei + + + Stalkerzy poprosili ciê o pomoc w odparciu ataku z³odziei. Przy³¹cz siê do z³odziei. Gdy rozpoczn¹ napad, bêdzie mo¿na bezkarnie zaatakowaæ ich od ty³u. + + + Z³odzieje powinni czekaæ przy Szewczence. Musisz siê z nimi spotkaæ, aby wzi¹æ udzia³ w ataku na stalkerów. + + + Poczekaj na spotkanie ze z³odziejami. Chc¹ zaatakowaæ obóz stalkerów po pó³nocy, dopóki jest ciemno. Uzgodnione miejsce spotkania to Szewczenko. + + + Atak: odbierz swoj¹ dolê + + + Atak na stalkerów zakoñczy³ siê sukcesem. Mo¿esz odebraæ swoj¹ dolê z ³upów. + + + Poczekaj na w³aœciwy moment, gdy z³odzieje bêd¹ rozproszeni przez atak. Wtedy mo¿esz napaœæ ich od ty³u i pomóc stalkerom z Szewczenki. + + + Ciemne interesy: zacznij pracowaæ dla Brodacza + + + Aby zabraæ prototypy detektorów stalkerom pracuj¹cym dla Brodacza, musisz wst¹piæ w ich szeregi. Dziêki temu dowiesz siê, gdzie s¹ twoi rywale. + + + Musisz wzi¹æ pojemnik i dostarczyæ go w³aœcicielowi. + + + Komputer pok³adowy Ogoñczy 2 zawiera³ mapy terenu pomiêdzy Zatonem i Jupiterem. ZnajdŸ kogoœ, kto móg³by zrobiæ z nich u¿ytek. + + + Œcie¿ka na p³askowy¿: porozmawiaj ze stalkerami + + + Wygl¹da na to, ¿e nie ma bezpoœredniej drogi na p³askowy¿. Popytaj miejscowych stalkerów, jak mo¿na siê tam dostaæ. + + + Artefakt, który da³ ci Noe, to Kompas, którego szuka Brodacz. + + diff --git a/gamedata/configs/text/pol/st_subtitles.xml b/gamedata/configs/text/pol/st_subtitles.xml new file mode 100644 index 0000000..4cef5b7 --- /dev/null +++ b/gamedata/configs/text/pol/st_subtitles.xml @@ -0,0 +1,156 @@ + + + + 26. kwietnia 1986 roku o godzinie 1:23 reaktor bloku 4 w Czarnobylu uleg³ zniszczeniu wskutek szeregu eksplozji. Radioaktywna chmura przesz³a nad europejsk¹ czêœci¹ ZSRR, Europ¹ Wschodni¹, Skandynawi¹ i w koñcu dotar³a do Ameryki. + + + Konsekwencje katastrofy okaza³y siê tak powa¿ne, i¿ rz¹d musia³ rozpocz¹æ ewakuacjê okolicznych miasteczek i wiosek. + + + Wokó³ elektrowni utworzono Strefê Zamkniêt¹ o promieniu 30 km, aby powstrzymaæ mieszkañców przed powrotem na ska¿ony teren. + + + Pomimo katastrofy elektrownia w Czarnobylu funkcjonuje nadal. Jej istnienie na niezamieszkanym terenie pozwoli³o Radzie Ministrów ZSRR za³o¿yæ w Strefie Zamkniêtej sieæ tajnych laboratoriów. + + + 11 czerwca 2006. W Strefie Zamkniêtej zap³onê³o oœlepiaj¹ce œwiat³o, rozœwietlaj¹c paruj¹ce chmury. Po chwili zupe³nej ciszy grom z jasnego nieba zatrz¹s³ ziemi¹. Wiêkszoœæ si³ rz¹dowych strzeg¹cych terenu zginê³a na miejscu. + + + Rok 2008. Naukowcy wci¹¿ nie s¹ w stanie wyjaœniæ, co zasz³o. Rzadkie ekspedycje do Zony zwykle koñcz¹ siê tragicznie, a ocalali opowiadaj¹ historie o zmutowanych zwierzêtach. + + + Do roku 2010 na teren Zony trafi³o wed³ug ró¿nych Ÿróde³ od 100 do 300 nieznanych osób. Nazywaj¹ siê stalkerami i utrzymuj¹ siê ze zbierania tworów zwanych artefaktami, które sprzedaj¹ za znaczne pieni¹dze. + + + Rok 2011. Pomimo kordonu wojskowego, fenomen stalkerów roœnie w si³ê. Podró¿uj¹ oni g³ównie po obrze¿ach Zony i nie zapuszczaj¹ siê na nieznany teren w centrum. Nieliczne próby zapuszczenia siê w g³¹b Zony spe³z³y na niczym. + + + Rok 2012. Stalker o imieniu Strie³ok rozwik³a³ tajemnicê Mózgozwêglacza, stworzonego przez ludzi emitera, który przez lata blokowa³ wejœcie do centrum Zony. Po jego wy³¹czeniu wszyscy stalkerzy ruszyli do Zony. Niektórzy z nadziej¹ znalezienia ¿y³y artefaktów, inni w poszukiwaniu Spe³niacza ¯yczeñ. + + + Rz¹d postanowi³ uruchomiæ operacjê wojskow¹ na szerok¹ skalê. Operacja Tor Wodny mia³a polegaæ na wykorzystaniu map pól anomalii, pozwalaj¹cych na dotarcie do centrum Strefy. Pomimo drobiazgowych przygotowañ operacja skoñczy³a siê pora¿k¹ i ¿aden ze œmig³owców nie wróci³ do bazy. + + + Major Diegtiariow, agent specjalny SBU, zostaje wys³any do Zony w celu zbadania znikniêcia œmig³owców. + + + Przebrany za stalkera, wyposa¿ony w standardowy karabin, racje ¿ywnoœciowe na dwa tygodnie i radio, rozpoczyna podró¿ do centrum Zony. + + + Rozmowy ze stalkerami okazuj¹ siê bezskuteczne… Nie maj¹ oni ¿adnych informacji lub te¿ nie chc¹ siê nimi podzieliæ… + + + Zona wykorzystuje ka¿d¹ okazjê, aby przypomnieæ majorowi, ¿e nie jest na wakacjach. Nie ma dnia, w którym nie zosta³by zaatakowany przez mutantów, lub, co gorsza, ludzi. + + + Równie¿ próby komunikacji z kwater¹ g³ówn¹ okazuj¹ siê niebyt owocne: jedyne pewne informacje to wspó³rzêdne piêciu rozbitych helikopterów. W promieniu kilku kilometrów od CEJ radio przestaje dzia³aæ. + + + Diegtiariow zostaje sam. + + + W nagrodê za przeprowadzenie œledztwa Diegtiariow otrzyma³ awans do stopnia pu³kownika oraz posadê koordynatora misji. Nie skorzysta³ z mo¿liwoœci pracy w kwaterze g³ównej i z³o¿y³ osobist¹ proœbê o przeniesienie do Zony w charakterze sta³ego obserwatora SBU. + + + Dostarczone przez Diegtiariowa informacje o powstawaniu urz¹dzeñ psionicznych zaalarmowa³y dowództwo SBU. Wszystkie dane o laboratoriach klasy X zosta³y usuniête z wojskowych archiwów i utajnione. Ca³y personel pracuj¹cy w Zonie otrzyma³ rozkaz nieujawniania informacji o badaniach pod ¿adnym pozorem. + + + Na podstawie dokumentacji technicznej obiektu 62 wykonano kilka eksperymentalnych próbek. Po serii testów zadecydowano nie wdra¿aæ broni do masowego u¿ytku z uwagi na wysoki koszt amunicji. Mimo to, nale¿a³oby za³o¿yæ, i¿ dalsze badania nad karabinem Gaussa trwaj¹. + + + Su³tan z gangiem opuœcili Skadowsk. Poczucie wzglêdnego bezpieczeñstwa wœród stalkerów doprowadzi³o do znacznego wzrostu liczby artefaktów sprzedawanych Brodaczowi. To z kolei prze³o¿y³o siê na rozkwit interesu, dziêki czemu cichy bar Skadowsk dorówna³ popularnoœci¹ lokalowi „100 Radów", chocia¿ mieœci siê prawie w centrum Zony. + + + Skadowsk sta³ siê siedliskiem bandytów. Chocia¿ wszystkich stalkerów ob³o¿ono podatkiem, liczba awantur na statku znacznie spad³a po przyk³adnym wyrzuceniu kilku nieokrzesanych goœci za burtê na œmieræ w emisji. Nie chc¹c oddawaæ czêœci zarobków przestêpcom, Brodacz zebra³ oddzia³ stalkerów i wyruszy³ w niezbadane zak¹tki Zony. Su³tan niepodzielnie zapanowa³ nad Skadowskiem. + + + Skadowsk sta³ siê domem dla ka¿dego, kto by³ w stanie do niego dotrzeæ. Zaciek³y opór stalkerów nie powstrzyma³ rabusiów przed regularnymi i ostatecznie nieudanymi próbami zaprowadzenia swoich porz¹dków na statku. Pomimo trwaj¹cego konfliktu Skadowsk ¿yje w³asnym ¿yciem. + + + Niestety d³ugo to nie trwa³o. Pijawki z le¿a ko³o Skadowska znalaz³y sposób wdarcia siê na statek. Gdy zaczê³y atakowaæ nawet w bia³y dzieñ, postanowiono przypuœciæ atak na ich gniazdo. Niestety myœliwi nie zdo³ali wedrzeæ siê do tuneli. Nied³ugo potem kolejna fala pijawek wybi³a wszystkich mieszkañców statku. + + + Po zniszczeniu legowiska pijawek nic ju¿ raczej nie zagrozi stanowi rzeczy na Skadowsku. Stary statek sta³ siê tymczasowym oœrodkiem stabilizacji w dynamicznie zmieniaj¹cym siê œwiecie zwanym Zon¹. + + + Wolnoœæ zdo³a³a zaskarbiæ sobie zaufanie stalkerów ze stacji Janów. Powinnoœæ przypuœci³a szturm w próbie odzyskania straconych terenów, a nied³ugo potem podpu³kownik Szulga zgin¹³ w wymianie ognia. Oddzia³ Powinnoœci nigdy nie pogodzi³ siê ze strat¹ dowódcy i wkrótce siê rozpad³. + + + Posi³ki i rosn¹ca popularnoœæ wœród stalkerów pozwoli³a Powinnoœci przepêdziæ si³y Wolnoœci ze stacji Janów. W wymianie ognia zgin¹³ Loki i resztka oddzia³u. + + + Na stacji Janów dosz³o do zawarcia kruchego pokoju pomiêdzy si³ami Wolnoœci i Powinnoœci. Strudzeni niekoñcz¹cym siê konfliktem wojownicy obu frakcji zaczêli opuszczaæ oddzia³y i do³¹czaæ do wolnych stalkerów. + + + Ekspedycja naukowa zorganizowana przez profesorów Hermana i Oziorskiego zakoñczy³a siê sukcesem. Dane, które zebrali, u³atwi³y rozwój prze³omowych leków i technologii. Dziêki ich odkryciu Ministerstwo Edukacji przeznaczy³o dodatkowe œrodki na badania w Zonie. + + + Profesorowie Herman i Oziorski zostali zmuszeni do zaniechania badañ w Zonie z powodu braku danych. Powróciwszy do œwiata zewnêtrznego obaj naukowcy zajêli siê prac¹ niezwi¹zan¹ z Zon¹. + + + Opowieœci Garriego o starciach ¿o³nierzy z niebezpieczeñstwami Prypeci zachêci³y stalkerów do przeczesywania wymar³ego miasta. Pomimo ci¹g³ych ataków Monolitu zdo³ali przej¹æ dawny obóz wojskowy, po czym zaczêli urz¹dzaæ coraz dalsze wypady w g³¹b miasta. + + + Opowieœci Garriego o losie wojskowego oddzia³u odstraszy³y stalkerów z Prypeci. Nieliczni, którzy zapuœcili siê w miasto, natknêli siê na niewyjaœnione zjawiska nadaj¹ce i tak wymar³emu miastu jeszcze bardziej ponury charakter. + + + Legenda Oazy przesta³a byæ legend¹. To¿samoœæ tych, którzy odkryli drogê do tej ukrytej anomalii, sta³a siê powszechnie poruszanym tematem wœród stalkerów. Mimo to liczba chêtnych do odnalezienia Oazy nie mala³a. Korzystali z tego faktu rabusie, którzy chêtnie zg³aszali siê na przewodników, by wyprowadzaæ stalkerów w pole i rabowaæ ich z dala od obozów. + + + Zorganizowane oddzia³y najemników wci¹¿ s¹ aktywne w Zonie. Agentom SBU ciê¿ko dalej ignorowaæ ich zainteresowanie tajnymi laboratoriami. Próby ustalenia to¿samoœci klienta, który wynaj¹³ najemników, spe³z³y na niczym. + + + Obszar wokó³ stacji Janów wci¹¿ przyci¹ga coraz wiêcej stalkerów. Nieobecnoœæ agresywnych mutantów i obfitoœæ anomalii spowodowa³a, i¿ obszar ten coraz czêœciej nazywa siê „zag³êbiem artefaktów". + + + Obszar wokó³ stacji Janów zyska³ reputacjê jednego z najniebezpieczniejszych miejsc w Zonie. Z wypadów do niego wraca coraz mniej stalkerów, którzy czêsto gin¹ z r¹k mutantów niedaleko od obozu. Jednym z zaginionych jest Traper, który wyruszy³ na swoje ostatnie, jak siê okazuje, ³owy na chimerê. + + + Zulus wróci³ do g³ównej bazy Powinnoœci w fabryce Rostok. Nikt nie wie o czym dyskutowa³ z dowódc¹, genera³em Woroninem, lecz kilka dni póŸniej zauwa¿ono go na czele wiêkszego oddzia³u zmierzaj¹cego do centrum Zony. + + + Pog³oski o losie Zulusa dotar³y do dowódcy Powinnoœci, genera³a Woronina. Ten, wbrew powszechnym przypuszczeniom, postanowi³ poœmiertnie uhonorowaæ Zulusa Srebrn¹ Tarcz¹, najwy¿szym odznaczeniem w armii Powinnoœci. + + + Wano wyruszy³ do kontrolowanych przez Wolnoœæ magazynów, gdzie jego radosna osobowoœæ i optymizm szybko da³y o sobie znaæ wœród tamtejszych ¿o³nierzy. W koñcu obj¹³ dowodzenie nad niewielk¹ grup¹ badaczy miejsc wystêpowania anomalii. + + + Stalkerzy ze stacji Janów do tej pory wspominaj¹ Wano, jego umiejêtnoœci i lekkoœæ ducha. Wszyscy zgadzaj¹ siê co do jednego: z jego szczêœciem szukanie drogi do Prypeci by³o ogromnym b³êdem. + + + W Zonie pojawi³a siê nowa grupa. Jej cz³onkowie s¹ dobrze wyszkoleni, lecz ich cele pozostaj¹ tajemnic¹. Plotki g³osz¹, i¿ niegdyœ nale¿eli do Monolitu. Ich przywódca znany jest jako W³óczêga. + + + Ma³o kto zauwa¿y³ znikniêcie W³óczêgi. Jego chêæ pomocy tym, którzy znaleŸli siê pod kontrol¹ Monolitu, zaprowadzi³a go prosto do grobu. + + + Porucznik Soko³ow dalej uczestniczy³ w misjach lotniczych nad Zon¹. W trakcie zwiadu nad Limañskiem jego œmig³owiec zestrzelili najemnicy. Dwa tygodnie póŸniej zosta³ uratowany przez patrol w pobli¿u Kordonu. Po miesi¹cu odszed³ z lotnictwa i rozpocz¹³ pracê w cywilnych liniach lotniczych. + + + Lista poleg³ych w operacji Tor Wodny wzbogaci³a siê o jeszcze jedno nazwisko: „Porucznik O.N. Soko³ow. Poleg³y w s³u¿bie ojczyŸnie”. + + + Sowa nawi¹za³ kontakty z klientami poza Zon¹. Handluje informacjami oraz, jeœli wierzyæ plotkom, regularnie sk³ada raporty SBU. + + + W trakcie wyj¹tkowo silnej emisji grupa stalkerów musia³a szukaæ schronienia na starej barce Noego. Gdy póŸniej na statek napad³a horda mutantów stalkerzy zgodnie uznali, i¿ barka doskonale nadaje siê do obrony. Jeszcze bardziej zadziwiaj¹ca okaza³a siê sfora m³odych nibypsów, które sam Noe poprowadzi³ do walki. + + + Poznawszy losy swoich przyjació³, Kardan porzuci³ marzenia o karierze stalkera. Przezwyciê¿y³ alkoholizm i przeniós³ siê do Janowa, gdzie za³o¿y³ warsztat na spó³kê z Azotem. Obaj mechanicy z ochot¹ spêdzaj¹ wolny czas na budowie pojazdu zdolnego do dzia³ania w Zonie. + + + Przezwyciê¿ywszy alkoholizm, Kardan opuœci³ Skadowsk. Wed³ug stalkerów poszed³ szukaæ swoich zaginionych przyjació³. Kilka dni póŸniej powróci³ ranny i napromieniowany. Gdy tylko jego rany siê zagoi³y po raz drugi i ostatni opuœci³ Zonê. + + + Strie³ok przekaza³ informacje o swoim pobycie w Czarnobylu dowódcom SBU. Uzyskawszy nowe dane rz¹d utworzy³ Instytut Badañ nad Czarnobylsk¹ Stref¹ Anomalii. Strie³ok przyj¹³ stanowisko g³ównego konsultanta naukowego. + + + Wiedza Strie³oka zaginê³a wraz z nim. Informacje zdobyte w Czarnobylu, które mog³yby pomóc w lepszym zrozumieniu Zony, na zawsze pozosta³y w jej granicach. Wygl¹da na to, ¿e Zona umie chroniæ swe tajemnice. + + + Gdy pu³kownik Kowalski, dowódca grupy Ogoñczy, powróci³ z Zony, musia³ wyjaœniaæ przyczyny klêski operacji Tor Wodny. Po d³ugotrwa³ym dochodzeniu i nieudanej próbie obarczenia go odpowiedzialnoœci¹, pu³kownik zosta³ honorowo zwolniony ze s³u¿by. + + + Pu³kownik Kowalski, dowódca grupy Ogoñczy, spocz¹³ nieopodal reszty swojego oddzia³u. Cia³a ¿o³nierzy poch³onê³a Zona, a o ich poœwiêceniu przypominaj¹ jedynie stare fotografie. + + diff --git a/gamedata/configs/text/pol/ui_st_credits.xml b/gamedata/configs/text/pol/ui_st_credits.xml new file mode 100644 index 0000000..c1ed2b5 --- /dev/null +++ b/gamedata/configs/text/pol/ui_st_credits.xml @@ -0,0 +1,684 @@ + + + + Sergey Chechin + + + Maciej Abramowicz + + + Armen Abroyan + + + Aktorzy + + + Testerzy + + + AMD/ATI + + + Roman Androshiuk + + + Animacja + + + Dzia³ graficzny + + + Dyrektor artystyczny + + + Nikita Atroshenko + + + Damian Bajorek + + + Mikhail Bastrykin + + + Kamil Bilinski + + + Krzysztof Binkowski + + + Arkadiusz Bochenek + + + Justin Boggs + + + Anatoly Bogush + + + Wojciech Borowy + + + Stanislaw Burtsau + + + Modele postaci + + + Aleksey Cherevatenko + + + Jerzy Chrul + + + Wojciech Ciemny + + + Muzyka + + + Dmitry “Abe” Davidyan + + + Aaron Davies + + + Alexander Demidenko + + + Dzia³ + + + programistów + + + Lukasz Derewonko + + + Ruslan Didenko + + + Yuri Doroshenko + + + Elena Dovgaliuk + + + Rafal Durajczyk + + + Petr Dushinsky + + + Maciej Dziarnowski + + + Sergey Eremenko + + + Yuri "Dark” Falchenko + + + Jakub Gabryel + + + Cezary Galach + + + Dzia³ projektantów gry + + + Programiœci rozgrywki + + + CENEGA (kontrola jakoœci) + + + Szczególne podziêkowania dla: + + + Filip Gerasimov + + + Grigory Hermann + + + Angelica Girich + + + Pawel Golubinski + + + Marcin Gorniak + + + Tomasz Goscicki + + + Programiœci grafiki + + + Holger Grun + + + Pawel Grzywaczewski + + + Sergiy Grygorovich + + + Marcin Gutowski + + + Dmitry Yasenev + + + Intel + + + Sergey Ivantsov + + + Norbert Jankowski + + + Alexander Kachaniuk + + + Dmitry Kalita + + + Aleksander Keska + + + Andrey “Darin” Kirienko + + + Lukasz Kobylanski + + + Andrey Kolomiets + + + Artur Komorek + + + Yuri Konstantinov + + + Maria Kotolovskaya + + + Alexander Kovach + + + Kirill Koval + + + Irina Krivchikova + + + Dmitry Krivets + + + Eugene Kuchma + + + Svetlana Kudrya + + + Sergey Kurbatov + + + Olga Kuzhel + + + Dmitry Kuzmenko + + + Aleksey Kuznetsov + + + Oleg Kuznetsov + + + Szymon Lazarski + + + G³ówny animator + + + G³ówny grafik + + + G³ówny projektant gry + + + G³ówny programista + + + G³ówni testerzy + + + G³ówni specjaliœci + + + Projektowanie poziomów + + + Korekta jêzykowa + + + Vladimir Litvinenko + + + Eric Lundgren + + + Sergey Maistrenko + + + Dmitry Macedon + + + Roman Malinkin + + + Kierownicy projektu + + + Alexander Maniliuk + + + Daniel Mankowski + + + Denis Matveenko + + + Maciej Mazurek + + + Piotr Mazurkiewicz + + + Darren McPhee + + + Igor Melnikov + + + Victor Merkulov + + + Damian Mielnik + + + Pavel Mikhailov + + + Konstantin Mironov + + + Serdeczne podziêkowania dla Olega Fomenko + + + i firmy BuntarMedia + + + za konsultacje w zakresie MOCAP + + + Vladimir Morev + + + Andrey Moroz + + + Dawid Mrozowski + + + Yuri Negrobov + + + Programista trybu wielu graczy + + + NVIDIA + + + Aleksey Omelchuk + + + Lukasz Osinski + + + Mikhail Parfeniuk + + + Eugene Pashin + + + Igor Pasichnyi + + + Bartosz Peas + + + Programista fizyki + + + Jacek Piotrowski + + + Alexander Plichko + + + Dzia³ PR + + + Dyrektor ds. PR + + + Mened¿erowie dzia³u PR + + + Sergey Prishepa + + + Producent + + + Kierownik projektu + + + Testy + + + Anton Ravin + + + Sebastian Rejent + + + Mateusz Rekorajski + + + Filip Resiak + + + Peter Ross + + + Ivan Rozin + + + Lukasz Ruminski + + + Denis Rutkovsky + + + Lukasz Rynkowski + + + Mened¿er ds. rozwoju firmy + + + Piotr Samborowski + + + Maria Shapunova + + + Sergey Shelest + + + Igor Sidorenko + + + Mikolaj Sitkiewicz + + + Yuri Skripal + + + Konstantin Slipchenko + + + Tomasz Sobotka + + + Produkcja dŸwiêku + + + Szczególne + + + podziêkowania dla: + + + Oleg Stalchuk + + + Liudmila Starodub + + + Vladimir Stavitsky + + + Pawel Stempien + + + Pawel Strzelczyk + + + Twórcy gry + + + Konstantin Stupivtsev + + + Obs³uga + + + klienta + + + Rafal Szekalski + + + Maciej Szumowski + + + Marcin Szwargolinski + + + Vladimir Tereshiuk + + + Sergey Terliuk + + + Tekstury + + + Dziêkujemy te¿ wszystkim + + + osobom, które przyczyni³y siê do ulepszenia gry: + + + Konstantin Morozkov + + + Yaroslav “Uncle Yar” Alexandrov + + + Dmitry “Comandor” Ivanov + + + Oleg Chernov + + + Ig. Valerian (Golovchenko) aka oVal + + + M. Bystrykhin + + + Eugene “Mulder” Khaletskiy + + + Pavel “Goon” Bolotov + + + Alexander “Leks” Abramov + + + Alexander Novikov + + + Alexander Poshtaruk, Andrey Oleshk + + + Eugene “KRANZ” Goncharenko + + + Sergey Dvuzhilny + + + Aleksey "Don Reba” Badalov + + + Sergey Dvuzhilny, Tolusha + + + Artem Zuev, aka BAC9-FLCL + + + Glot, Patriot, Mers + + + Tiger, Demesis, Kharon, Moby + + + Alexander Oleinik + + + Konstantin “Inquisitor” Kriuchkov + + + Alexander Shakhovsky, Igor Dolzhenko + + + Sergey “Tur” Leshenko + + + Dmitry “Hill” Gorban + + + Mikhail Kliuev + + + Sergey “Termite” Volchanov + + + Sergey Tikhomirov + + + Ilya Tolmachev + + + Jakub Trudzik + + + Projekt interfejsu + + + Yuri Uralsky + + + Denis “Tetri$Zs” Yusupov + + + RandyJ VanderHeyden + + + Vladimir Vazhinsky + + + Andrey Verpakhovsky + + + Alexander Vilkov + + + Anastassia Voskolovich + + + Andrzej Wardziak + + + Programista aplikacji internetowych + + + Dominik Wojcik + + + Lukasz Watroba + + + Eugene Yablon + + + Yuri Yatsenko + + + Eugene Yatsiuk + + + Oleg Yavorsky + + + Valentin Yeltyshev + + + Eugene Zaitsev + + + Andrey Zakoliukin + + + Marek Zdziarski + + + Michal Zegarski + + + Albert Zmudzki + + + Aleksey Zorin + + + Bartosz Zukowski + + + Victoria “Morrant” Yukhno + + + Sergey “ion” Kalintsev + + + Roman “RVCool” Kulikov + + + Maxim Smirnov + + + Omar Al-Shekhly + + + Roman =Marauder= Arhipov + + diff --git a/gamedata/configs/text/pol/ui_st_inventory.xml b/gamedata/configs/text/pol/ui_st_inventory.xml new file mode 100644 index 0000000..89474df --- /dev/null +++ b/gamedata/configs/text/pol/ui_st_inventory.xml @@ -0,0 +1,303 @@ + + + + Za ma³o pieniêdzy + + + Postaæ ma za ma³o pieniêdzy + + + $$ACTION_QUICK_USE_1$$ + + + $$ACTION_QUICK_USE_2$$ + + + $$ACTION_QUICK_USE_3$$ + + + $$ACTION_QUICK_USE_4$$ + + + Aktywuj artefakt + + + Za³ó¿ granatnik na + + + Za³ó¿ celownik na + + + Za³ó¿ t³umik na + + + Cena + + + Grupa: + + + Stan + + + Zdejmij granatnik + + + Zdejmij celownik + + + Zdejmij t³umik + + + Za³ó¿ kombinezon + + + Wyrzuæ + + + Wyrzuæ wszystko + + + Zjedz + + + kg + + + Przymocuj do paska + + + Przenieœ do plecaka + + + Przenieœ do okienka + + + Handlarza nie interesuj¹ takie przedmioty. + + + Nie mo¿na handlowaæ tak uszkodzonym przedmiotem. + + + Odtwórz + + + Sprzedaj przedmiot + + + Stan opancerzenia + + + Ska¿enie radioaktywne + + + Zdejmij kombinezon + + + Roz³aduj + + + U¿yj + + + Waga + + + Magazynek + + + Celnoœæ + + + Kup podstawow¹ amunicjê do pistoletu (Q) + + + Kup amunicjê do karabinu (W) + + + Leczenie ran + + + Anuluj + + + Nie mo¿na kupiæ broni + + + Ograniczenia iloœci + + + Obra¿enia + + + Domyœlne (F5) + + + Wstecz + + + Kup granatnik podwieszany do karabinu (D) + + + Kup granaty do granatnika podwieszanego (D) + + + Obs³uga + + + Teraz + + + Regeneracja zdrowia + + + Ciê¿ka + + + Kup ostatnio kupowany zestaw + + + Poprzednie (F4) + + + Pieni¹dze + + + Wymagane + + + Za ma³o pieniêdzy + + + OK + + + Waga ekwipunku + + + Ochr.: term. + + + Ochr.: chem. + + + Pancerz + + + Ochr.: prom. + + + Ochr.: elektr. + + + Ochr.: psion. + + + Odp. uderz. + + + Odzysk. energii + + + Zestaw 1 (F1) + + + Zestaw 2 (F2) + + + Zestaw 3 (F3) + + + Promieniowanie + + + Ograniczenie rangi + + + Szybkostrz. + + + Wyczyœæ (C) + + + Szturmowe + + + Zaspokoj. g³odu + + + Kup celownik optyczny do karabinu (S) + + + Sprzedaj wszystkie przedmioty z plecaka (X) + + + Strzelby + + + Kup t³umik do pistoletu (A) + + + Kup t³umik do karabinu (F) + + + Snajperskie + + + Czas + + + Ju¿ to masz + + + Us³ugi online dla gry S.T.A.L.K.E.R. nie s¹ dostêpne. + + + Nie mo¿na nawi¹zaæ po³¹czenia z serwerem g³ównym. + + + Ochrona: + + + Domyœlne + + + Kupiony zestaw zosta³ zapisany jako + + + £¹czna waga: + + + Pij + + + Odzyskiwanie energii + + + Krwawienie + + + Maksymalna waga + + + Zdrowie + + + Amunicja + + + Czas trwania + + + s + + + Umo¿liwia przetrwanie emisji + + + Zdejmij he³m + + + W³ó¿ he³m + + diff --git a/gamedata/configs/text/pol/ui_st_ixray.xml b/gamedata/configs/text/pol/ui_st_ixray.xml new file mode 100644 index 0000000..9c79e9e --- /dev/null +++ b/gamedata/configs/text/pol/ui_st_ixray.xml @@ -0,0 +1,62 @@ + + + + S.T.A.L.K.E.R.: Zew Prypeci + + + Menu g³ówne + + + Poziom: + + + zapis szybki + + + autozapis + + + + m + + + Odleg³oœæ uderzenia + + + + Otwórz baga¿nik ($$ACTION_USE$$) + + + U¿ywaæ ($$ACTION_USE$$) + + + + Wolny + + + + Autoprze³adowanie + + + + £adowanie tekstur wielow¹tkowych + + + Mapa cieni + + + 1024x1024 + + + 2048x2048 + + + 3072x3072 + + + 4096x4096 + + + Zawsze aktywny + + diff --git a/gamedata/configs/text/pol/ui_st_keybinding.xml b/gamedata/configs/text/pol/ui_st_keybinding.xml new file mode 100644 index 0000000..8df633d --- /dev/null +++ b/gamedata/configs/text/pol/ui_st_keybinding.xml @@ -0,0 +1,225 @@ + + + + PDA + + + Rozkaz ataku + + + Chód + + + Artefakt + + + Do ty³u + + + Lornetka + + + Menu handlu + + + Rozmowa + + + Rozmowa dru¿ynowa + + + Konsola + + + Lista kontaktów w PDA + + + Kucanie + + + W³¹cz/wy³¹cz kucanie + + + Detektor + + + W dó³ + + + Wyrzuæ + + + Strza³ + + + Nastêpny tryb strza³u + + + Poprzedni tryb strza³u + + + Do przodu + + + Granatnik podwieszany + + + Ogólne + + + Widok + + + Plecak + + + Ruch + + + Tryb wielu graczy + + + Broñ + + + Plecak + + + Skok + + + W lewo + + + Wychylenie w lewo + + + Krok w lewo + + + Mapa w PDA + + + Nastêpna broñ + + + Noktowizor + + + Pauza + + + PDA + + + Poprzednia broñ + + + Wyjœcie + + + Prze³aduj + + + Napraw + + + W prawo + + + Wychylenie w prawo + + + Krok w prawo + + + Ekran punktacji + + + Zrzut ekranu + + + Menu wyboru modelu + + + Sprint + + + Menu wyboru dru¿yny + + + Latarka + + + Aktywuj + + + W górê + + + U¿yj + + + Szybkie banda¿owanie + + + Szybkie u¿ycie apteczki + + + Rozpocznij g³osowanie + + + G³osuj + + + G³osuj przeciw + + + G³osuj za + + + Broñ 1 + + + Broñ 2 + + + Broñ 3 + + + Broñ 4 + + + Broñ 5 + + + Broñ 6 + + + Zmieñ typ amunicji + + + Poprzednia broñ tego typu + + + Przybli¿enie/oddalenie + + + Wiadomoœci g³osowe (1) + + + Wiadomoœci g³osowe (2) + + + Szybki dostêp 1 + + + Szybki dostêp 2 + + + Szybki dostêp 3 + + + Szybki dostêp 4 + + diff --git a/gamedata/configs/text/pol/ui_st_loadscreen.xml b/gamedata/configs/text/pol/ui_st_loadscreen.xml new file mode 100644 index 0000000..6e02f17 --- /dev/null +++ b/gamedata/configs/text/pol/ui_st_loadscreen.xml @@ -0,0 +1,474 @@ + + + + 100 WSKAZÓWEK, JAK PRZETRWAÆ W ZONIE + + + Strza³ w oko przeciwnika skutkuje jego natychmiastow¹ œmierci¹, niezale¿nie od poziomu jego pancerza. + + + AC-96/2 posiada unikatowy, dwustrza³owy tryb seryjny. W tym trybie oba pociski z serii trafiaj¹ dok³adnie w to samo miejsce. + + + Dwulufowe strzelby mog¹ wystrzeliæ z obu luf niemal jednoczeœnie. + + + Nie lekcewa¿ pistoletów. Moj¹ przyzwoit¹ si³ê ra¿enia i mog¹ byæ bardzo skuteczne przeciwko s³abo opancerzonym celom. + + + Karabiny snajperskie, z uwagi na p³askoœæ toru pocisku i celnoœæ, s¹ idealne do zabijania wrogów z du¿ej odleg³oœci. Nie s¹ jednak zbyt skuteczne na krótkim dystansie. + + + Strzelanie w ruchu charakteryzuje siê znacznie mniejsz¹ celnoœci¹ w porównaniu do strzelania ze stabilnej pozycji stoj¹cej lub podczas kucania. + + + W trudnych warunkach Zony zarówno broñ, jak i kombinezony ochronne szybko siê zu¿ywaj¹. Zu¿yte bronie s¹ mniej celne i mog¹ siê zacinaæ, a kombinezony daj¹ s³absz¹ ochronê. + + + Aby zrobiæ zrzut ekranu, wciœnij „$$ACTION_SCREENSHOT$$". + + + Artefakt lub nios¹cy go gracz pokazany jest na minimapie. Je¿eli artefakt jest daleko, strza³ka na minimapie wska¿e odpowiedni kierunek. + + + AC-96/2 posiada unikatowy, dwustrza³owy tryb seryjny. W tym trybie oba pociski z serii trafiaj¹ dok³adnie w to samo miejsce. + + + Dwulufowe strzelby mog¹ wystrzeliæ z obu luf niemal jednoczeœnie. + + + Nie lekcewa¿ pistoletów. Moj¹ przyzwoit¹ si³ê ra¿enia i mog¹ byæ bardzo skuteczne przeciwko s³abo opancerzonym celom. + + + Karabiny snajperskie, z uwagi na p³askoœæ toru pocisku i celnoœæ, s¹ idealne do zabijania wrogów z du¿ej odleg³oœci. Nie s¹ jednak zbyt skuteczne na krótkie dystanse. + + + W trudnych warunkach Zony zarówno broñ, jak i kombinezony ochronne szybko siê zu¿ywaj¹. Zu¿yte bronie s¹ mniej celne i mog¹ siê zacinaæ, a kombinezony daj¹ s³absz¹ ochronê. + + + Niektóre œrodki medyczne maj¹ wyj¹tkowe w³aœciwoœci. Na przyk³ad tabletki „Herkules" pozwalaj¹ ci przez jakiœ czas unieœæ wiêkszy ciê¿ar, podczas gdy blokery psioniczne wzmacniaj¹ odpornoœæ na emisje psioniczne. + + + Aby zrobiæ zrzut ekranu, wciœnij „$$ACTION_SCREENSHOT$$". + + + Wskazówka # + + + Wódka jest tani¹ alternatyw¹ dla leków przeciwpromiennych. To najprostszy sposób, by zredukowaæ wp³yw promieniowania na organizm. + + + Aby zobaczyæ szczegó³y na temat aktualnej misji, przytrzymaj „$$ACTION_SCORES$$". + + + Aby móc szukaæ artefaktów, potrzebujesz detektora. Najlepsze detektory czyni¹ szukanie ³atwiejszym i s¹ w stanie wykryæ wiêcej wartoœciowych artefaktów. + + + Stalkerzy nie wpuszczaj¹ do swoich obozów ludzi z broni¹ w rêku. Aby schowaæ broñ, wciœnij odpowiedni klawisz („$$ACTION_WPN_1$$", „$$ACTION_WPN_2$$", „$$ACTION_WPN_3$$", „$$ACTION_WPN_4$$"). + + + Mo¿esz zlokalizowaæ granice anomalii, rzucaj¹c œrubami. Aby wyj¹æ œrubê, wciœnij „$$ACTION_WPN_6$$". + + + Jedzenie nie tylko zaspokaja g³ód, ale równie¿ nieznacznie poprawia zdrowie. + + + Napoje energetyzuj¹ce tymczasowo przyœpieszaj¹ odzyskiwanie wytrzyma³oœci, co zwiêksza twoj¹ zdolnoœæ poruszania siê. + + + Niska wytrzyma³oœæ mo¿e ciê unieruchomiæ i wystawiæ na atak wrogów w kluczowych momentach. + + + Mo¿esz monitorowaæ stan swojej widocznoœci dziêki wskaŸnikom ha³asu i wykrycia umieszczonym w lewym górnym rogu ekranu. + + + Trzymanie detektora w jednej rêce nie uniemo¿liwia u¿ycia no¿a, pistoletu lub œruby za pomoc¹ drugiej rêki. + + + Niektóre œrodki medyczne zwiêkszaj¹ odpornoœæ organizmu na szkodliwe dzia³ania. U¿ywanie tych œrodków mo¿e ocaliæ ci ¿ycie podczas misji w okolicach, w których wystêpuj¹ anomalie. + + + Mo¿esz wywo³aæ podrêczne menu dla przedmiotów w plecaku, umieszczaj¹c kursor myszy nad danym przedmiotem i klikaj¹c prawym przyciskiem myszy. + + + Pomimo swoich u¿ytecznych w³aœciwoœci, wiêkszoœæ artefaktów jest radioaktywna. Efekt ten mo¿na zniwelowaæ, u¿ywaj¹c artefaktów poch³aniaj¹cych promieniowanie. + + + Nó¿ jest nieskuteczny przeciwko wrogom wyposa¿onym w broñ paln¹. U¿ywaj go w zwarciu lub w celu dyskretnego wyeliminowania przeciwnika. + + + Ciê¿ar, który nosisz, obni¿a twoj¹ wytrzyma³oœæ. Zbyt du¿y ciê¿ar ograniczy twoj¹ mobilnoœæ, a kompletne przeci¹¿enie unieruchomi ciê zupe³nie. + + + U¿ycie detektora to jedyny pewny sposób na wykrycie obecnoœci artefaktów na obszarach anomalii. + + + Wiêkszoœæ artefaktów jest niewidoczna podczas swoich wêdrówek po obszarach anomalii, dopóki nie wykryjesz ich za pomoc¹ detektora. + + + Mutanty s¹ bardziej aktywne w nocy, co wyjaœnia, dlaczego stalkerzy wol¹ poczekaæ do œwitu z wyruszeniem do Zony. + + + W przypadku silnego napromieniowania organizmu u¿yj leków przeciwpromiennych. Jeœli nie masz ¿adnych przy sobie, u¿yj apteczki, aby uporaæ siê z pierwszymi objawami, zanim dotrzesz do medyka. + + + Wiêkszoœæ stalkerów mo¿e oprowadziæ ciê po okolicy, ale tylko doœwiadczeni przewodnicy s¹ w stanie bezpiecznie i szybko zaprowadziæ ciê w bardziej odleg³e miejsca. Jedni i drudzy ka¿¹ sobie s³ono p³aciæ za us³ugê. + + + Sprzedawanie artefaktów to nie jedyny sposób na zarobienie gotówki. Pozbywanie siê niepotrzebnego sprzêtu te¿ mo¿e przynieœæ zyski. Pamiêtaj, ¿e handlarze z regu³y nie s¹ zainteresowani powa¿nie uszkodzonymi przedmiotami. + + + Aby zdemontowaæ t³umik, celownik lub podwieszany granatnik ze swojej broni, kliknij prawym przyciskiem myszy dan¹ broñ w swoim plecaku i wybierz odpowiednie polecenie z menu podrêcznego. + + + Jeœli chcesz siê poruszaæ najciszej, jak to tylko mo¿liwe, wciœnij „$$ACTION_ACCEL$$" aby chodziæ lub „$$ACTION_CROUCH$$" aby kucn¹æ. + + + Strzelba to broñ na krótkie dystanse. Im dalej od ciebie znajduje siê przeciwnik, tym mniej jest skuteczna. + + + Szukaj¹c schronienia przed ostrza³em z mniejszych broni, upewnij siê, ¿e chowasz siê za czymœ wytrzyma³ym. Deski i blacha, w przeciwieñstwie do betonowej œciany, nie zapewni¹ ci zbyt bezpiecznej kryjówki. + + + Strza³y w g³owê zadaj¹ krytyczne obra¿enia i dla wiêkszoœci wrogów s¹ œmiertelne. + + + Ka¿dy rodzaj mutanta w Zonie ma w³asny styl walki. WeŸ to pod uwagê, a bêdziesz mieæ du¿o wiêksz¹ szansê na prze¿ycie. + + + Mo¿esz ustawiæ odleg³oœæ, na jak¹ rzucisz granat, przytrzymuj¹c „$$ACTION_WPN_ZOOM$$". + + + Przeciwnicy mog¹ i bêd¹ u¿ywaæ granatów. Gdy zobaczysz symbol granatu, opuœæ natychmiast strefê wybuchu. + + + Rozbieg przed skokiem pozwala na pokonanie du¿ych dziur i szczelin. + + + Kluczowe wskaŸniki pokazuj¹ce zdrowie i wytrzyma³oœæ znajduj¹ siê w prawym dolnym rogu ekranu. + + + Zona ¿yje swoim w³asnym ¿yciem, co oznacza, ¿e zawsze istnieje ryzyko wpadniêcia na mutanty lub wrogich stalkerów w miejscach, które zosta³y ju¿ wyczyszczone. + + + W Zonie zachowaj czujnoœæ i nie polegaj na nieaktualnych informacjach. Gdy powrócisz na zbadany wczeœniej obszar anomalii, mo¿e siê okazaæ, ¿e poprzednio sprawdzona œcie¿ka nie jest ju¿ dostêpna. + + + Rozmowy ze zwyk³ymi stalkerami mog¹ dostarczyæ ci przydatnych informacji na temat nowych terenów i ostatnich wydarzeñ. + + + W obu przeznaczonych do tego miejscach mo¿esz umieœciæ któr¹kolwiek z broni. Pozwala to na stworzenie dogodnej kombinacji, na przyk³ad karabinu szturmowego ze strzelb¹ lub pistoletu z karabinem snajperskim. + + + Ka¿dy handlarz, na jakiego natrafisz w ró¿nych obozach stalkerów, oferuje swój w³asny, unikalny towar. Na przyk³ad medycy na pewno bêd¹ mieli najlepszy wybór œrodków medycznych. + + + Jeœli dotrzesz do obozu stalkerów z ran¹ lub zatruciem spowodowanym promieniowaniem, mo¿esz skorzystaæ z darmowej pomocy miejscowego medyka. + + + Mo¿esz zostawiæ swoje rzeczy w prywatnym schowku w obozie, aby unikn¹æ noszenia ze sob¹ niepotrzebnego sprzêtu. + + + Jeœli musisz poczekaæ na konkretn¹ godzinê, mo¿esz zdrzemn¹æ siê w obozie, by zabiæ czas. ¯eby to zrobiæ, znajdŸ miejsce do spania, wciœnij „$$ACTION_USE$$" i wybierz, jak d³ugo chcesz spaæ. + + + Noktowizor w twoim he³mie mo¿e zostaæ ulepszony do wersji nowej generacji. Zwiêkszy to znacz¹co zasiêg jego dzia³ania. + + + Gdy jesteœ w Zonie, zawsze miej przy sobie kilka zapasowych magazynków - na pewno siê przydadz¹. + + + Pamiêtaj, ¿eby regularnie zapisywaæ stan gry - zapobiegnie to koniecznoœci przechodzenia w kó³ko tych samych fragmentów. + + + Aby prawid³owo stosowaæ leki, warto znaæ ich dzia³anie. Zapoznaj siê z opisami leków, aby dowiedzieæ siê, jakie efekty powoduj¹. + + + U¿yj granatów, aby zaatakowaæ przeciwników bêd¹cych w ukryciu. WeŸ pod uwagê promieñ ra¿enia granatu, aby nie zraniæ sojuszników. + + + Aby wyrzuciæ przedmiot z plecaka, kliknij go prawym przyciskiem myszy i wybierz odpowiedni¹ czynnoœæ z menu podrêcznego. + + + Mo¿esz u¿yæ specjalnego ustawienia w menu opcji, aby gra zapisywa³a siê automatycznie w kluczowych miejscach. + + + Gdy wrócisz do obozu, napraw swój sprzêt, sprzedaj niepotrzebne ³upy i uzupe³nij zapasy amunicji i œrodków medycznych. + + + Aby zmniejszyæ szkodliwe dzia³anie anomalii podczas wypraw do Zony, u¿ywaj kombinezonu ochronnego i artefaktów lub za¿yj odpowiednie leki. + + + Oprócz broni i amunicji, przy cia³ach wrogów mo¿esz znaleŸæ wartoœciowe przedmioty, takie jak PDA z danymi. + + + Artefakty to nie tylko wartoœciowy ³up. Poza tym, ¿e s¹ lekkie i drogie, czêsto maj¹ te¿ bardzo u¿yteczne w³aœciwoœci. + + + Z uwagi na œrodowisko panuj¹ce w Zonie, wiele mutantów jest radioaktywnych. Zbli¿anie siê do nich bez odpowiedniej ochrony przed promieniowaniem jest bardzo niebezpieczne. + + + Aby zatamowaæ krwotok, mo¿esz u¿yæ banda¿a, wojskowej apteczki lub barwinków. Jeœli szybko sobie z nim nie poradzisz, krwawienie mo¿e powa¿nie uszkodziæ twoje zdrowie. + + + Niektóre bronie pozwalaj¹ na zainstalowanie celownika o dalekim zasiêgu. Mo¿esz go regulowaæ za pomoc¹ kó³ka myszy. + + + Przez niektóre miejsca nie mo¿na przejœæ nawet kucaj¹c. Aby przykucn¹æ najni¿ej, jak tylko siê da, wciœnij i przytrzymaj jednoczeœnie „$$ACTION_CROUCH$$" i „$$ACTION_ACCEL$$". + + + Aby zmniejszyæ prawdopodobieñstwo trafienia przez przeciwnika, prowadŸ wymianê ognia wychylaj¹c siê zza rogu. W tym celu przytrzymaj „$$ACTION_LLOOKOUT$$" lub „$$ACTION_RLOOKOUT$$". + + + Dziêki wbudowanemu mechanizmowi namierzania celu, twoja lornetka pozwala ci nie tylko lepiej siê przyjrzeæ daleko po³o¿onym obiektom, ale równie¿ zlokalizowaæ wrogów. Aby wyj¹æ lornetkê, wciœnij „$$ACTION_WPN_5$$". + + + Aby w³¹czyæ lub wy³¹czyæ latarkê, wciœnij „$$ACTION_TORCH$$". + + + Aby wyj¹æ œrubê, wciœnij „$$ACTION_WPN_6$$". + + + Je¿eli masz noktowizor przy swoim he³mie, mo¿esz go w³¹czaæ i wy³¹czaæ wciskaj¹c „$$ACTION_NIGHT_VISION$$”. + + + Wciœnij „$$ACTION_QUICK_USE_1$$", „$$ACTION_QUICK_USE_2$$", „$$ACTION_QUICK_USE_3$$", „$$ACTION_QUICK_USE_4$$", aby u¿yæ odpowiedniego przedmiotu ze swojego panelu szybkiego dostêpu. + + + Leki nie zaczynaj¹ dzia³aæ natychmiastowo, a efekt dzia³ania niektórych z nich utrzymuje siê doœæ d³ugo. + + + W twoim PDA przechowywana jest mapa, informacje na temat bie¿¹cych misji, prywatne statystyki oraz rejestr wiadomoœci. Aby otworzyæ PDA, wciœnij „$$ACTION_ACTIVE_JOBS$$". + + + ¯eby móc szukaæ artefaktów, musisz wyj¹æ detektor. Aby to zrobiæ, wciœnij „$$ACTION_SHOW_DETECTOR$$". + + + Aby w³¹czyæ pauzê, wciœnij „$$ACTION_PAUSE$$". + + + Aby skorzystaæ z szybkiego zapisu, wciœnij „$$ACTION_QUICK_SAVE$$". Wciœnij „$$ACTION_QUICK_LOAD$$", aby szybko wczytaæ ostatni szybki zapis. + + + Sprint to najszybszy sposób poruszania siê, ale równie¿ najbardziej mêcz¹cy. Wciœnij „$$ACTION_SPRINT_TOGGLE$$”, aby pobiec sprintem. + + + Strzelanie z celownikiem jest du¿o dok³adniejsze ni¿ strzelanie z biodra. Aby w³¹czyæ celownik, wciœnij „$$ACTION_WPN_ZOOM$$". + + + Jeœli masz granatnik podwieszany, mo¿esz siê prze³¹czaæ pomiêdzy nim i standardowym trybem strza³u wciskaj¹c „$$ACTION_WPN_FUNC$$". + + + Jeœli masz kilka rodzajów amunicji do u¿ywanej obecnie broni, mo¿esz prze³¹czaæ siê pomiêdzy nimi wciskaj¹c „$$ACTION_WPN_NEXT$$". + + + Aby prze³adowaæ broñ, zanim magazynek bêdzie pusty, wciœnij „$$ACTION_WPN_RELOAD$$". + + + Aby wyrzuciæ u¿ywan¹ obecnie broñ, wciœnij „$$ACTION_DROP$$". + + + Aby przeczekaæ emisjê, schroñ siê w solidnym budynku lub pod ziemi¹. Gdy emisja bêdzie siê zbli¿aæ, najbli¿sze schronienie bêdzie zaznaczone na twoim PDA. + + + Aby u¿yæ przedmiotu przy pomocy okienka szybkiego dostêpu, przeci¹gnij go ze swojego plecaka do jednego z okienek nad pojemnikami na artefakty. + + + Znak kropli krwi w prawym dolnym rogu ekranu informuje ciê o krwotoku i koniecznoœci jego zatamowania. Kolor znaku pokazuje, jak powa¿ny jest krwotok. + + + Symbol zagro¿enia promieniowaniem w prawym dolnym rogu ekranu ostrzega o napromieniowaniu organizmu. Gdy go zobaczysz, musisz za¿yæ leki przeciwpromienne. Kolor symbolu pokazuje, jak wysoki jest poziom napromieniowania. + + + Przy pomocy filtrów mo¿esz ukrywaæ i wyœwietlaæ ró¿ne rodzaje oznaczeñ na swoim PDA. Przyciski filtrów znajduj¹ siê ponad map¹, pod nazw¹ bie¿¹cej misji. + + + Artefakty zazwyczaj nie s¹ statyczne: maj¹ tendencjê do poruszania siê w obrêbie anomalii. Szalone próby pogoni za artefaktami w mgnieniu oka wpakuj¹ ciê na anomaliê. + + + Niektórzy stalkerzy mog¹ mieæ ci do zaoferowania informacje czy wyj¹tkowe towary. Mog¹ te¿ na przyk³ad zleciæ ci dostarczenie im konkretnych artefaktów. + + + Po emisji, na przeszukanych ju¿ wczeœniej obszarach anomalii mog¹ siê pojawiæ nowe artefakty. + + + W ka¿dej chwili mo¿esz zmieniæ poziom trudnoœci gry w menu opcji. + + + Technicy w obozach stalkerów mog¹ ulepszyæ twoje bronie, kombinezony i he³my. + + + Jeœli chcesz przetrwaæ, zawsze zwracaj uwagê na trzeszcz¹ce dŸwiêki wydawane przez twój licznik Geigera, które ostrzegaj¹ ciê przed promieniowaniem, oraz na sygna³y o zagro¿eniu ze strony anomalii, informuj¹ce, ¿e jesteœ blisko jednej z nich. + + + Twoje stosunki z ludŸmi bezpoœrednio wp³ywaj¹ na cenê oferowanych przez nich towarów i us³ug. Jeœli twoje stosunki s¹ z³e, nie licz na zni¿kê. Jeœli dogadujesz siê nieŸle, handlarz mo¿e nawet zaoferowaæ ci coœ specjalnego. + + + Mo¿esz roz³adowaæ znalezion¹ broñ w celu uzupe³nienia amunicji. Aby to zrobiæ, kliknij prawym przyciskiem myszy dan¹ broñ w swoim plecaku i wybierz odpowiedni¹ czynnoœæ z menu podrêcznego. + + + Zabijanie wrogów i zbieranie artefaktów przynosi ci punkty potrzebne, by awansowaæ na wy¿sz¹ rangê. Wraz ze wzrostem rangi, dostaniesz dostêp do nowych broni, pancerzy i wyposa¿enia. + + + Granatów dymnych u¿ywa siê, by ukraœæ artefakt lub ukryæ siê przed wrogiem. + + + Lewa czêœæ menu handlu zawiera piêæ zak³adek. Od góry do do³u: pistolety, broñ podstawowa, amunicja, pancerze oraz œrodki medyczne wraz z dodatkowym wyposa¿eniem. Po wybraniu ¿¹danej zak³adki zobaczysz przedmioty dostêpne przy twojej randze. + + + Prawa czêœæ menu handlu zawiera cztery okienka szybkiego kupowania. Wciœniêcie ikonki dyskietki zapisuje aktualny zestaw. Mo¿na go wczytaæ, wciskaj¹c odpowiedni numer. W czwartym okienku automatycznie zapisywany jest ostatnio zakupiony zestaw. + + + Jeœli masz wiêcej ni¿ jedn¹ broñ, mo¿esz prze³¹czaæ siê miêdzy nimi, wciskaj¹c na przemian „$$ACTION_WPN_2$$" albo „$$ACTION_WPN_3$$". + + + Aby aktywowaæ artefakt w celu utworzenia anomalii, wyci¹gnij go, wciskaj¹c „$$ACTION_ARTEFACT$$" i przytrzymuj¹c „$$ACTION_WPN_FIRE$$". Powsta³a anomalia jest niebezpieczna zarówno dla przeciwników, jak i dla gracza, który j¹ stworzy³. + + + Kombinezon naukowca pomo¿e ci przetrwaæ w anomaliach i obszarach radioaktywnych. + + + POLOWANIE NA ARTEFAKTY: Aby wygraæ, musisz przynieœæ do swojej bazy okreœlon¹ liczbê artefaktów. + + + Aby zdemontowaæ t³umik, celownik lub podwieszany granatnik ze swojej broni, kliknij prawym przyciskiem myszy dan¹ broñ w swoim plecaku i wybierz odpowiednie polecenie z menu podrêcznego. + + + Jeœli chcesz siê poruszaæ najciszej, jak to tylko mo¿liwe, wciœnij „$$ACTION_ACCEL$$" aby chodziæ lub „$$ACTION_CROUCH$$" aby kucn¹æ. + + + Strzelba to broñ na krótkie dystanse. Im dalej od ciebie znajduje siê przeciwnik, tym mniej jest skuteczna. + + + Szukaj¹c schronienia przed ostrza³em, upewnij siê, ¿e chowasz siê za czymœ wytrzyma³ym. Deski i blacha, w przeciwieñstwie do betonowej œciany, nie zapewni¹ ci zbyt bezpiecznej kryjówki. + + + Strza³y w g³owê zadaj¹ krytyczne obra¿enia i dla wiêkszoœci wrogów s¹ œmiertelne. + + + Szybkie poruszanie, skakanie i rany znacz¹co obni¿aj¹ twoj¹ wytrzyma³oœæ. + + + Mo¿esz ustawiæ odleg³oœæ, na jak¹ rzucisz granat, przytrzymuj¹c „$$ACTION_WPN_ZOOM$$". + + + Przeciwnicy mog¹ i bêd¹ u¿ywaæ granatów. Gdy zobaczysz symbol granatu, opuœæ natychmiast potencjaln¹ strefê wybuchu. + + + WSZYSCY PRZECIWKO WSZYSTKIM: Aby wygraæ, musisz zdobyæ najwiêksz¹ liczbê punktów za zabicia. + + + Rozbieg przed skokiem pozwala na pokonanie du¿ych dziur i szczelin. + + + Kluczowe wskaŸniki pokazuj¹ce zdrowie i wytrzyma³oœæ znajduj¹ siê w prawym dolnym rogu ekranu. + + + Minimapa pokazuje, z której strony znajduje siê artefakt. Je¿eli strza³ka wskazuje w górê, artefakt znajduje siê nad twoja obecn¹ pozycj¹. Je¿eli strza³ka wskazuje w dó³, znajduje siê on poni¿ej twojej obecnej pozycji. + + + Mo¿esz zabieraæ plecaki swoich przeciwników, aby zdobyæ dodatkow¹ gotówkê. Nadwy¿kê sprzêtu mo¿esz sprzedaæ w bazie. + + + Musisz za wszelk¹ cenê ochraniaæ cz³onka swojej dru¿yny, który niesie artefakt. + + + U¿yj granatów, aby zaatakowaæ przeciwników bêd¹cych w ukryciu. WeŸ pod uwagê promieñ ra¿enia granatu, aby nie zraniæ swoich sojuszników. + + + Mo¿esz komunikowaæ siê z dru¿yn¹ przy pomocy wiadomoœci g³osowych. Aby wejœæ do menu wiadomoœci g³osowych, wciœnij „$$ACTION_SPEECH_MENU_0$$" lub „$$ACTION_SPEECH_MENU_1$$". + + + GRA DRU¯YNOWA: Aby wygraæ, twoja dru¿yna musi zdobyæ wiêcej punktów za zabicia ni¿ dru¿yna przeciwna. + + + G³osowanie mo¿na rozpocz¹æ wciskaj¹c „$$ACTION_VOTE_BEGIN$$". + + + Aby zobaczyæ wyniki gry, wciœnij „$$ACTION_SCORES$$". + + + Aby odrodziæ siê po œmierci, wciœnij „$$ACTION_JUMP$$", gdy skoñczy siê czas oczekiwania. + + + Aby otworzyæ menu handlu, wciœnij „$$ACTION_BUY_MENU$$" w czasie pobytu w bazie. + + + Rozmowê ze wszystkimi mo¿na rozpocz¹æ wciskaj¹c „$$ACTION_CHAT$$". Aby prowadziæ rozmowê tekstow¹ tylko ze swoj¹ dru¿yn¹, wciœnij „$$ACTION_CHAT_TEAM$$". + + + Sprint to najszybszy sposób poruszania siê, ale równie¿ najbardziej mêcz¹cy. Wciœnij „$$ACTION_SPRINT_TOGGLE$$”, aby pobiec sprintem. + + + Strzelanie z celownikiem jest du¿o dok³adniejsze ni¿ strzelanie z biodra. Aby w³¹czyæ celownik, wciœnij „$$ACTION_WPN_ZOOM$$". + + + Jeœli masz granatnik podwieszany, mo¿esz prze³¹czaæ siê pomiêdzy nim i standardowym trybem strza³u, wciskaj¹c „$$ACTION_WPN_FUNC$$". + + + Jeœli masz kilka rodzajów amunicji do u¿ywanej obecnie broni, mo¿esz siê prze³¹czaæ pomiêdzy nimi, wciskaj¹c „$$ACTION_WPN_NEXT$$". + + + Aby prze³adowaæ broñ, zanim magazynek bêdzie pusty, wciœnij „$$ACTION_WPN_RELOAD$$". + + + ZDOBYCIE ARTEFAKTU: Aby wygraæ, musisz przynieœæ do swojej bazy okreœlon¹ liczbê artefaktów nale¿¹cych do wroga. + + + Aby wyrzuciæ u¿ywan¹ obecnie broñ, wciœnij „$$ACTION_DROP$$". + + + Aby zajrzeæ do plecaka, wciœnij „$$ACTION_INVENTORY$$". + + + Wiêkszoœæ broni ma kilka trybów strza³u. Aby prze³¹czaæ siê miêdzy trybami strza³u, wciœnij „$$ACTION_WPN_FIREMODE_NEXT$$" lub „$$ACTION_WPN_FIREMODE_PREV$$". + + + Przez niektóre miejsca nie da siê przecisn¹æ nawet w pozycji kucniêtej. Aby przykucn¹æ najni¿ej, jak tylko siê da, wciœnij i przytrzymaj jednoczeœnie „$$ACTION_CROUCH$$" i „$$ACTION_ACCEL$$". + + + Aby wyjrzeæ zza rogu, wciœnij „$$ACTION_LLOOKOUT$$" lub „$$ACTION_RLOOKOUT$$". Podczas wygl¹dania zza rogu nie mo¿esz strzelaæ. + + + ZDOBYCIE ARTEFAKTU: Aby zwróciæ skradziony artefakt do bazy, musisz zabiæ nios¹cego go przeciwnika, a nastêpnie podnieœæ przedmiot, wciskaj¹c „$$ACTION_USE$$". + + + POLOWANIE NA ARTEFAKTY: Mo¿esz zniszczyæ artefakt aktywuj¹c go. Aby to zrobiæ, wyci¹gnij artefakt wciskaj¹c „$$ACTION_ARTEFACT$$" i przytrzymaj „$$ACTION_WPN_FIRE$$". + + + Gdy niesiesz artefakt, nie mo¿esz biec. + + + Aby zajrzeæ do plecaka, wciœnij „$$ACTION_INVENTORY$$". + + + Aby naprawiæ przedmiot, musisz znaleŸæ technika i klikn¹æ przycisk naprawy po wybraniu przedmiotu na ekranie modyfikacji. Mo¿esz te¿ klikn¹æ dany przedmiot prawym przyciskiem myszy w tym samym oknie i wybraæ odpowiednie polecenie z menu podrêcznego. + + + Wiêkszoœæ broni ma kilka domyœlnych trybów strza³u. Mo¿esz kupowaæ modyfikacje, aby dodawaæ nastêpne. Aby prze³¹czyæ siê miêdzy trybami strza³u, wciœnij „$$ACTION_WPN_FIREMODE_NEXT$$" lub „$$ACTION_WPN_FIREMODE_PREV$$". + + + P³askoœæ toru pocisku wp³ywa na trajektoriê, a obs³uga warunkuje czas, potrzebny aby broñ powróci³a do pierwotnej pozycji po oddaniu strza³u. + + + Niektóre kombinezony maj¹ wbudowane he³my. U¿ywaj¹c takiego kombinezonu nie mo¿na korzystaæ z innych he³mów. + + + Ka¿da broñ ma niepowtarzalne w³aœciwoœci - celnoœæ, obs³ugê, obra¿enia i szybkostrzelnoœæ, co umo¿liwia ci wybór najbardziej odpowiedniego modelu. + + + Celnoœæ strza³u podczas ruchu wyraŸnie spada. Stañ lub przykucnij, aby j¹ zwiêkszyæ. + + + Napój energetyzuj¹cy tymczasowo przyœpiesza regeneracjê wytrzyma³oœci, co pozwala ci d³u¿ej biec. + + + W trybie „Wszyscy przeciwko wszystkim” masz nieograniczon¹ iloœæ amunicji. + + + Jednym z najczêstszych zagro¿eñ w Zonie jest promieniowanie. Silne napromieniowanie doprowadzi do pogorszenia zdrowia i, jeœli nie bêdzie odpowiednio leczone, mo¿e byæ œmiertelne. + + + Wyruszaj¹c na d³ugie wyprawy weŸ ze sob¹ coœ do jedzenia. Jeœli mocno zg³odniejesz, wp³ynie to bardzo negatywnie na odzyskiwanie wytrzyma³oœci. + + diff --git a/gamedata/configs/text/pol/ui_st_mm.xml b/gamedata/configs/text/pol/ui_st_mm.xml new file mode 100644 index 0000000..780bc0a --- /dev/null +++ b/gamedata/configs/text/pol/ui_st_mm.xml @@ -0,0 +1,936 @@ + + + + Bezchmurnie + + + Pochmurno + + + Œrednie + + + Maksymalne + + + Wysokie + + + Niskie + + + Minimalne + + + Noc + + + Deszczowo + + + TYP GRY + + + Mistrz + + + Nowicjusz + + + Weteran + + + IKONY + + + MAPA + + + Powrót przez aktywacjê + + + Zezwól na g³osowanie + + + Czas trwania anomalii (min) + + + Zdobycie artefaktu + + + Powstanie artefaktu + + + Liczba artefaktów + + + Trwa³oœæ artefaktów + + + Powrót artefaktu + + + Automatyczny balans dru¿yn + + + Automatyczna zmiana dru¿yn + + + DOSTÊPNE MAPY + + + Anuluj + + + Klucz + + + SprawdŸ klucz + + + Klient + + + Utwórz + + + Nieœmiertelnoœæ (sek.) + + + WskaŸnik nieœmiertelnoœci + + + Œmierci + + + Dedykowany + + + Nagrane filmy + + + Statystyki gracza + + + Nagraj film + + + Nagrywanie filmu + + + Puste + + + Filtry + + + Wymusz. odr. (sek.) + + + Limit fragów + + + Fragi + + + Czas opóŸnienia + + + Obra¿enia od sojuszników + + + WskaŸniki sojuszników + + + Imiona sojuszników + + + Pe³ne + + + Tryb + + + IP (host:port) + + + Internet + + + Po³¹cz + + + Sieæ lokalna + + + Dedykowany + + + Powtórz + + + Lista map + + + Limit graczy + + + Po³¹czenie sieciowe + + + Brak anomalii + + + Opcje + + + Has³o + + + Nazwa gracza: + + + Gracze + + + Liczba graczy + + + Serwer internetowy + + + Szybkie odœwie¿. + + + Wspó³czynnik zmiany + + + Odœwie¿ wszystkie + + + Posi³ki (sek.) + + + Opcje odradzania + + + WYBRANE MAPY + + + Serwer + + + Lista serwerów + + + W³aœciwoœci serwera + + + Info o serwerze + + + Serwer + + + Nazwa serwera + + + Ustawienia serwera + + + Obserwator + + + Pierwsza osoba + + + Swobodna kamera + + + Wolny widok + + + Trzecia osoba + + + Ustawienia obserwatora + + + Tylko dru¿yna + + + Pocz¹tkowa pogoda + + + Wynik + + + Limit czasu (min) + + + Rozgrzewka (sek.) + + + Opcje pogody + + + Brak ostrz. sojuszn. + + + Bez has³a + + + Brak programu Punkbuster + + + Z has³em + + + Sieæ lokalna + + + Internet + + + Fabryka Agroprom + + + PTA + + + Basen + + + Zmiana unikalnej nazwy powiod³a siê! + + + Mroczna Dolina + + + Fabryka Jantar + + + b³¹d po³¹czenia z serwerem statystyk + + + b³¹d po³¹czenia z serwerem logowania + + + Uwierzytelnianie powiod³o siê + + + Opuszczona wieœ + + + Magazyny wojskowe + + + nieprawid³owa nazwa + + + Basen + + + Stacja kolejowa + + + Fabryka Rostok + + + nieprawid³owa unikalna nazwa + + + Czy na pewno chcesz usun¹æ + + + Opuszczona fabryka + + + PING + + + GRACZE + + + Oœwietlenie statyczne + + + Pe³ne oœwietlenie dynamiczne + + + Rozsz. pe³ne oœwietlenie dynam. + + + Dynamiczne oœwietlenie obiektów + + + Rozsz. pe³ne oœw. dynam. (DX10) + + + NAZWA SERWERA + + + Polowanie na artefakty + + + Zdobycie artefaktu + + + Wszyscy przeciwko wszystkim + + + Filtr: + + + Wysoka + + + Niska + + + Œrednia + + + Wy³¹czona + + + Doœwiadczony + + + Legendarny stalker + + + Nowicjusz + + + Profesjonalista + + + Weteran + + + Gra dru¿ynowa + + + Czêstotliwoœæ 60 Hz + + + Akcja + + + Zaawansowane + + + Alternatywa + + + Filtrowanie anizotropowe + + + Zastosuj + + + Wstecz + + + Krew + + + Jasnoœæ + + + Anuluj + + + Aktualizacje + + + Kontrast + + + Sterowanie + + + Twórcy + + + Poka¿ odleg³oœæ do celu + + + Domyœlne + + + Usuñ + + + Czy na pewno chcesz usun¹æ ten plik? + + + Gêstoœæ trawy + + + Poziom trudnoœci + + + Przerwij po³¹czenie + + + Czy na pewno chcesz przerwaæ po³¹czenie? + + + G³êbokoœæ pola widzenia + + + Dynamiczny celownik + + + Dynamiczna muzyka + + + EAX + + + Pe³ny ekran + + + Gra + + + Korekcja gamma + + + Szczegó³owoœæ obiektów + + + Inwersja osi Y + + + Przycisk + + + Ustawienia klawiatury + + + Ostatni zapis + + + Odleg³oœæ oœwietlenia + + + Wczytaj + + + Wczytaj grê + + + Wyloguj siê z profilu + + + Mistrz + + + G³oœnoœæ efektów + + + Czu³oœæ myszy + + + Wyg³adzaj obiekty alfa-testowe + + + Optymalizuj wyg³adzanie + + + GRA WIELOOSOBOWA + + + Gra wieloosobowa + + + G³oœnoœæ muzyki + + + Zmiany wejd¹ w ¿ycie po ponownym uruchomieniu gry + + + Gra wieloosobowa + + + Nowa gra + + + Nowicjusz + + + Latarki bohaterów niezal. + + + OPCJE + + + Opcje + + + Odleg³oœæ cz¹steczek + + + Ustawienia jakoœci + + + WyjdŸ z gry + + + Zakoñcz grê + + + Czy na pewno chcesz zakoñczyæ grê? + + + Czy na pewno chcesz wyjœæ z gry? + + + Mapowanie szczeg. wypuk³. + + + Mapowanie reliefowe + + + Cienie od s³oñca + + + Cieñ trawy + + + Jakoœæ s³oñca + + + U¿ywaj DX10.1 + + + Wyg³adzanie pe³noekranowe + + + Mokre powierzchnie + + + Optymalizuj bufor geometryczny + + + Dym wolumetryczny + + + Renderowanie 2 + + + Typ renderowania + + + Rozdzielczoœæ + + + Powrót do gry + + + Zapisz + + + Zapisz grê + + + Poka¿ celownik + + + Poka¿ broñ + + + Podstawowy + + + Urz¹dzenie dŸwiêkowe + + + Miêkkie cz¹steczki + + + Miêkka woda + + + DŸwiêk + + + Jakoœæ dŸwiêku + + + Stalker + + + Jakoœæ cieni + + + Jakoœæ promieni s³onecznych + + + Wyg³adzanie krawêdzi + + + SI u¿ywa latarek + + + Szczegó³owoœæ tekstur + + + Identyfikacja bohaterów niezal. + + + Weteran + + + Grafika + + + Zasiêg widzenia + + + Œwiat³o wolumetryczne + + + Synchronizacja pionowa + + + Zmieñ unikaln¹ nazwê + + + Ten adres e-mail jest ju¿ u¿ywany + + + Przez internet + + + Przez sieæ lokaln¹ + + + DŸgniêcie w plecy + + + Przez wykrwawienie + + + Zabici przez wybuch + + + Trafienie w oko + + + Trafienie w g³owê + + + Wersja pliku stanu gry nie pasuje do wersji gry. + + + Zabici pod rz¹d + + + No¿em + + + Ostatni zestaw + + + Rozpocznij grê wieloosobow¹ + + + Nazwa + + + Zmieñ + + + Zestaw 1 + + + Zestaw 2 + + + Zestaw 3 + + + Reset + + + Sprzedaj ca³oœæ + + + Wersja + + + Prypeæ + + + Tryb kucania/wstawania + + + Autozapis + + + Szczegó³owe tekstury + + + Filmy + + + WejdŸ + + + WyjdŸ + + + Utwórz + + + Nieprawid³owy adres e-mail lub has³o + + + Nieprawid³owy profil + + + B³¹d po³¹czenia + + + Serwer chwilowo niedostêpny + + + Wymagane zalogowanie siê do profilu + + + B³¹d po³¹czenia + + + B³¹d po³¹czenia + + + B³¹d po³¹czenia + + + Nieprawid³owa nazwa profilu + + + Nieprawid³owe has³o + + + Nieprawid³owy unikalny pseudonim + + + Unikalny pseudonim jest ju¿ u¿ywany + + + Proszê najpierw zalogowaæ siê do profilu + + + Proszê najpierw wylogowaæ siê z profilu + + + B³¹d po³¹czenia z serwerem profili + + + Po utworzeniu profilu nie bêdzie mo¿liwe jego usuniêcie + + + Jakoœæ SSAO + + + Tryb SSAO + + + Domyœlny + + + HDAO + + + HBAO + + + Poka¿ interfejs + + + Unikalny pseudonim nie jest zarejestrowany. Proszê go zarejestrowaæ. + + + Unikalny pseudonim utraci³ wa¿noœæ. Proszê zarejestrowaæ go ponownie. + + + Stalker + + + maksymalnie wysokie + + + Rozsz. pe³ne oœw. dynam. (DX11) + + + Proszê siê zalogowaæ, aby po³¹czyæ siê z serwerem zewnêtrznym. + + + To ID GameSpy jest obecnie u¿ywane. Proszê u¿yæ innego ID GameSpy. + + + Nieprawid³owy adres e-mail + + + Nieprawid³owe has³o + + + Nie mo¿na u¿yæ ID GameSpy do po³¹czenia z serwerem lokalnym. Proszê u¿yæ trybu gry w sieci lokalnej. + + + Wyrzucono ciê z serwera. + + + Administrator ciê zbanowa³: + + + Serwer ciê zbanowa³. + + + Inform. o serwerze + + + Ten adres e-mail jest zbyt d³ugi. Nie mo¿na wprowadziæ wiêcej ni¿ 50 znaków. + + + Nieprawid³owy adres e-mail + + + Has³o jest za krótkie + + + Has³o jest za d³ugie + + + Nie znaleziono adresu e-mail + + + Nie ustawiono unikalnego pseudonimu + + + Unikalny pseudonim jest za d³ugi. Nie mo¿na wprowadziæ wiêcej ni¿ 30 znaków. + + + Unikalne imiê mo¿e zawieraæ tylko cyfry, litery alfabetu ³ac. i symbole spec.: "#$&'()*+-./:;<=>?@[]^_`{|}~ + + + Unikalny pseudonim nie mo¿e zawieraæ spacji + + + Unikalne imiê nie mo¿e zaczynaæ siê od cyfry lub symbolu: "@", "+", ":" lub ‘#’ + + + bardzo wysokie + + + Tesselacja + + + Zastosowaæ wprowadzone zmiany? Wszystkie zmiany bêd¹ anulowane za + + diff --git a/gamedata/configs/text/pol/ui_st_mp.xml b/gamedata/configs/text/pol/ui_st_mp.xml new file mode 100644 index 0000000..291bc59 --- /dev/null +++ b/gamedata/configs/text/pol/ui_st_mp.xml @@ -0,0 +1,742 @@ + + + + Artefakt + + + Sojusznik + + + Maks. ping + + + Profil + + + Tryby + + + Artefakt zosta³ zniszczony. + + + Powsta³ artefakt. Zanieœ go do bazy, ¿eby zdobyæ punkt. + + + Artefakt zosta³ utracony. + + + Artefakt jest w naszej bazie. + + + Artefakt jest w bazie wroga. + + + Artefakty + + + Artefakty + + + Automatyczny + + + Wstecz + + + 4. Zablokuj + + + Wed³ug anomalii + + + Anuluj + + + zdobywa artefakt + + + 5. Zmieñ mapê + + + 6. Zmieñ pogodê + + + + Zmieñ pogodê na + + + Rozmowa + + + Po³¹czono + + + Zabici + + + Opis + + + Roz³¹czono + + + WprowadŸ tekst do g³osowania + + + do³¹cza do gry + + + Remiza + + + (widok z pierwszej osoby) + + + fragi + + + Fragi + + + (swobodna kamera) + + + (widok z trzeciej osoby) + + + z + + + 7. Zmieñ tryb + + + Wysypisko + + + NAPRZÓD! + + + traci artefakt %s + + + nie ma ju¿ artefaktu + + + zabiera artefakt %s + + + Najemnicy + + + jest teraz + + + do³¹cza + + + 3. Wyrzuæ + + + Limañsk + + + Trwa wczytywanie nagród... + + + Trwa wczytywanie najlepszych wyników... + + + (wolny widok) + + + Opis mapy + + + Rozpocz¹³ siê mecz! + + + Stara wioska + + + Tryby + + + Nazwa + + + Dalej + + + Brak oddanych g³osów + + + Ping + + + Gracz %s wygrywa mecz! + + + Gracze + + + Wciœnij „strza³”, ¿eby prze³¹czyæ siê w tryb widza + + + Wciœnij „skok”, ¿eby kupiæ natychmiastowe odrodzenie + + + Wciœnij „skok”, ¿eby wybraæ skórkê + + + Wciœnij „skok”, ¿eby wybraæ dru¿yny + + + Wciœnij „skok”, ¿eby siê odrodziæ + + + Wciœnij „skok”, ¿eby rozpocz¹æ + + + Wciœnij ($$ACTION_BUY_MENU$$), ¿eby otworzyæ menu handlu + + + Masz: %d$. Mo¿esz kupiæ odrodzenie za: %d$. Kliknij „tak", ¿eby zap³aciæ. + + + Przygotuj siê... + + + Baza naprawcza + + + 1. Ponowne rozpoczêcie + + + 2. Szybkie ponowne rozpoczêcie + + + zwraca artefakt + + + zdobywa punkt + + + Wybierz gracza, który w g³osowaniu ma zostaæ zablokowany + + + Wybierz kategoriê g³osowania + + + Wybierz gracza, który w g³osowaniu ma zostaæ wyrzucony + + + Wybierz gracza, który w g³osowaniu ma zostaæ wyrzucony + + + Wybierz mapê do g³osowania + + + Nie mo¿na biegaæ z artefaktem + + + - Liczba + + + - Czas pobytu + + + - Czas odrodzenia + + + Anomalie + + + Czas trwania anomalii + + + Kiedykolwiek + + + Zdobyty artefakt + + + Artefakty: + + + Automatyczny balans dru¿yn + + + Automatyczna zamiana dru¿yn + + + BattlEye + + + Wy³. + + + W³. + + + - Pierwsza osoba + + + Wymuszone odrodzenie + + + Limit fragów + + + - Swobodny widz + + + - Swobodna kamera + + + Ostrza³ sojuszniczy + + + WskaŸniki sojuszników + + + Nicki sojuszników + + + Nieskoñczony + + + Niewidocznoœæ: + + + - WskaŸniki + + + - Czas + + + - Trzecia osoba + + + Rotacja map + + + Maks. ping + + + min + + + Nie + + + Odrodzenie + + + Gracze wrócili do baz + + + s + + + Nazwa serwera: + + + Bazy chronione + + + Tryby widza: + + + - Tylko dla dru¿yny + + + Limit czasu + + + Wersja: + + + G³osowanie + + + Rozgrzewka + + + Tak + + + Wybór skórki + + + Widz + + + WIDZOWIE + + + Centrum sportowe + + + Status + + + prze³¹cza siê do + + + Wolnoœæ + + + Wybór dru¿yny + + + Dru¿yna %s WYGRYWA! + + + Tekst + + + Czas do odrodzenia + + + Czas do rozpoczêcia: + + + Pozosta³y czas: %d:%d; zgoda: %.2f + + + Obóz treningowy + + + G³osy ZA - [$$ACTION_VOTE_YES$$]\nG³osy PRZECIW - [$$ACTION_VOTE_NO$$]\nWyniki - [$$ACTION_VOTE$$] + + + Przeciw + + + Za + + + Oddany g³os + + + Przeciw + + + Za + + + G³osowanie anulowane przez serwer! + + + G³osowanie '%s' rozpoczête przez %s. + + + G³osowanie siê rozpoczê³o! + + + 1. Bezchmurnie + + + 4. Pochmurno + + + 3. Noc + + + 2. Deszczowo + + + Cios w plecy! + + + Strza³ w g³owê! + + + Uda³o ci siê zdobyæ artefakt wroga. Zanieœ go do swojego artefaktu! + + + Uda³o ci siê zdobyæ artefakt. Aktywuj go, aby dostarczyæ go do bazy! + + + Masz teraz rangê: + + + To ty + + + Na tym serwerze nie mo¿na g³osowaæ. + + + Brak aktywnych g³osowañ. + + + Dozwolone jest tylko jedno aktywne g³osowanie. + + + Gotów + + + Wszyscy + + + Dru¿yna + + + G³osowanie nieudane! + + + G³osowanie udane! + + + Baza frakcji Wolnoœæ + + + Baza najemników + + + 2. Polowanie na artefakty + + + 4. Zdobycie artefaktu + + + 1. Wszyscy przeciwko wszystkim + + + Utwórz nowy profil + + + Uzyskiwanie profili konta + + + Witam + + + £¹czenie z profilem + + + Profil zosta³ pomyœlnie utworzony. Po³¹cz siê z nim. + + + Trwa weryfikowanie unikatowej nazwy... + + + Czy chcesz u¿yæ istniej¹cego profilu o nazwie + + + Odnaleziono konto. Trwa uzyskiwanie zarejestrowanych profili... + + + Masz ju¿ profil. Po³¹cz siê z nim. + + + Trwa weryfikowanie konta... + + + To unikalne imiê jest ju¿ u¿ywane. WprowadŸ inne imiê lub wybierz jedno z poni¿szej listy rozwijanej. + + + Has³a nie s¹ zgodne. + + + 3. Gra dru¿ynowa + + + Kopiuj ³¹cze + + + Wczytaj mapê + + + Opis + + + Niew³aœciwa lub uszkodzona mapa + + + Nie znaleziono mapy + + + Nagrody + + + Najlepsze wyniki + + + SprawdŸ + + + PotwierdŸ has³o + + + Adres e-mail + + + Zapomnia³eœ has³a? + + + Tworzenie profilu GameSpy + + + Has³o + + + Zapamiêtaj + + + Unikalne imiê + + + Pomyœlnie zmieniono unikatow¹ nazwê na: + + + Dru¿yna + + + Wolnoœæ + + + Najemnicy + + + Nowy profil + + + Logowanie do us³ugi GameSpy + + + zagraj + + + cofnij + + + zacznij ponownie + + + do pocz¹tku + + + do zabicia + + + do œmierci + + + do zdobycia artefaktu + + + do utraty artefaktu + + + do dostarczenia artefaktu + + + dowolny + + + Login + + + Zrzut ekranu (wszyscy) + + + Konfiguracja (wszyscy) + + + Limit pingu: + + + Limit pingu + + + Zrzut ekranu (wybrany ) + + + Konf. dla wybranego gracza + + + Wyrzuæ wybranego gracza + + + Zbanuj wybranego gracza + + + Restart + + + Szybki restart + + + Zmieñ pogodê + + + Szybkoœæ zmiany pogody + + + Zmieñ typ gry + + + Zmieñ ustawienia gry + + + Przerwij obecne g³osowanie + + + Limit czasu (0, 180) + + + Limit fragów (0, 1000) + + + Limit artefaktów (0,100) + + + Czas rozgrzewki (0, 3600) + + + Okres ochronny (0, 60 CTA) + + + Okr. ochronny (0, 600 T/DM) + + + OpóŸ. odrodzenia (-1, 3600) + + + Nieznany b³¹d profilu (kod:4) + + + 10 minut + + + 30 minut + + + 1 godzina + + + 6 godzin + + + 1 dzieñ + + + 1 tydzieñ + + + 1 miesi¹c + + + 3 miesi¹ce + + + Stale + + + Pseudonim jest za krótki + + + B³¹d profilu + + diff --git a/gamedata/configs/text/pol/ui_st_other.xml b/gamedata/configs/text/pol/ui_st_other.xml new file mode 100644 index 0000000..f18ae4e --- /dev/null +++ b/gamedata/configs/text/pol/ui_st_other.xml @@ -0,0 +1,501 @@ + + + + Anuluj + + + Nie + + + OK + + + Tak + + + le + + + Wróg + + + Œwietnie + + + Ma doœwiadczenie + + + Przyjaciel + + + Mapa Zony + + + Dobrze + + + Obojêtnie + + + Mistrz + + + Bonus za zdobyte PDA + + + Dozwolone jest tylko jedno aktywne g³osowanie. + + + Neutralny stosunek + + + Nowicjusz + + + Gra + + + U¿ywane + + + Poziom + + + Wczytywanie obiektów SI + + + Serwer: wczytywanie symulatora ¿ycia + + + Wczytywanie CFORM + + + Wczytywanie detali + + + Wczytywanie danych geometrycznych + + + Wczytywanie zapisanej gry + + + Wczytywanie stref i portali + + + Wczytywanie cieniowania + + + Wczytywanie przestrzennej bazy danych + + + Wczytywanie tekstur + + + Bezpoœr. adres IP + + + Brak aktywnego zadania + + + Za ma³o pieniêdzy + + + BN ma za ma³o pieniêdzy + + + Otwieranie strumienia + + + Buforowanie obiektów + + + rubli. + + + SERWER: ³¹czenie + + + SERWER: rozpoczynanie + + + Sprawdzanie klucza CD + + + Grafika + + + Strasznie + + + Naprawiæ + + + Nie mo¿na uruchomiæ funkcji Render 2 na tym komputerze + + + Frakcja + + + B³¹d po³¹czenia: klucz CD jest nieaktywny. Skontaktuj siê z dzia³em pomocy technicznej. + + + B³¹d po³¹czenia: klucz CD jest ju¿ w u¿yciu. + + + B³¹d po³¹czenia: niew³aœciwy klucz CD. + + + B³¹d po³¹czenia: nieprawid³owy host. + + + B³¹d po³¹czenia: nieprawid³owe has³o. + + + Dostêpna jest nowa poprawka.\n Wersja: %s\n Lokalizacja: %s\nCzy chcesz j¹ teraz pobraæ? + + + Brak nowych poprawek + + + B³¹d po³¹czenia: po³¹czenie odrzucone przez serwer. + + + B³¹d po³¹czenia: serwer jest pe³ny. + + + B³¹d po³¹czenia: inna wersja. + + + £¹czenie z serwerem g³ównym + + + dn. + + + B³¹d + + + B³¹d wczytywania + + + Plik o tej nazwie ju¿ istnieje. Czy chcesz go zast¹piæ? + + + Nazwa pliku jest pusta + + + godz. + + + U¿ytkownik zosta³ od³¹czony przez system ochrony BattleEye: + + + Od³¹czono. Powód: + + + WyjdŸ + + + Wczytanie tej gry spowoduje utratê niezapisanych danych. Czy chcesz kontynuowaæ? + + + min + + + mies. + + + Plecak + + + Parametry + + + Nie uda³o siê pobraæ poprawki. + + + Uda³o siê pobraæ poprawkê. Czy chcesz j¹ zainstalowaæ? + + + Cena + + + Ranga + + + Przychylnoœæ + + + Reputacja + + + s + + + Wybierz przynajmniej jedn¹ mapê + + + WeŸ wszystko + + + Pozosta³o + + + G³osowanie nieudane + + + Czy na pewno chcesz wyjœæ z gry? + + + £¹cznie + + + bardzo Ÿle + + + bardzo dobrze + + + Weteran + + + Naprawa + + + Napraw wybrany przedmiot + + + ... + + + przemieszczanie siê po obszarze + + + przejœcie z Zatonu do Janowa + + + przejœcie z Zatonu do Prypeci + + + przejœcie z Janowa do Zatonu + + + przejœcie z Janowa do Prypeci + + + przejœcie z Prypeci do Zatonu + + + przejœcie z Prypeci do Janowa + + + przejœcie z Prypeci do laboratorium X8 + + + przejœcie z laboratorium X8 do Prypeci + + + emisja + + + pocz¹tek gry + + + przybycie do Skadowska + + + zbadanie helikoptera Ogoñcza 1 + + + zbadanie helikoptera Ogoñcza 2 + + + zbadanie helikoptera Ogoñcza 3 + + + zbadanie helikoptera Ogoñcza 4 + + + zbadanie helikoptera Ogoñcza 5 + + + dotarcie do p³askowy¿u + + + dotarcie do p³askowy¿u + + + znalezienie drogi do Prypeci + + + Zulus do³¹cza do oddzia³u + + + Wano sp³aca d³ug + + + Wano do³¹cza do oddzia³u + + + zebranie anormalnej roœliny + + + Soko³ow do³¹cza do oddzia³u + + + W³óczêga do³¹cza do oddzia³u + + + skompletowanie oddzia³u + + + przybycie do tunelu + + + przybycie do Prypeci + + + zlokalizowanie si³ wojskowych + + + zdobycie niezidentyfikowanej broni + + + znalezienie oddzia³u zwiadowczego + + + nadejœcie posi³ków + + + zbadanie anteny + + + znalezienie zaginionego wartownika + + + zabicie kontrolera przy wartowniku + + + wejœcie do magazynu testowego + + + znalezienie dokumentacji do karabinu Gaussa + + + znalezienie martwego bojownika + + + wejœcie do przedszkola + + + uratowanie lekarza wojskowego + + + nawi¹zanie ³¹cznoœci z kwater¹ g³ówn¹ + + + rozpoczêcie ewakuacji Prypeci + + + dotarcie do helikopterów ewakuacyjnych + + + zakoñczenie ewakuacji + + + detektor mutantów + + + zap³acenie okupu za zak³adnika + + + uwolnienie zak³adnika + + + pomiary anomalii Popielisko + + + pomiary anomalii Szuwary + + + legowisko pijawek + + + przejœcie do Kopaczi + + + podejœcie do zak³adu utylizacji odpadów + + + atak na stalkerów + + + znalezienie pojemnika w schowku + + + polowanie na chimerê + + + znalezienie Oazy + + + rozpoczêcie operacji Jeden Strza³ + + + poszukiwanie Ÿród³a emisji psionicznej + + + dokumenty administracyjne + + + podejœcie do magazynu podstacji + + + transakcja przy leœniczówce + + + magazyn frakcji Powinnoœæ + + + znalezienie Ÿród³a dziwnego œwiat³a + + + znalezienie Zulusa + + + niebezpieczna jaskinia + + + Naprawa/modyfikacje + + + Kup + + + Sprzedaj + + + Handel + + + Zamknij okno ($$ACTION_USE$$) + + + Otwórz okno handlowania ($$ACTION_SPRINT_TOGGLE$$) + + + Otwórz okno naprawy i modyfikacji ($$ACTION_SPRINT_TOGGLE$$) + + + Przenieœ wszystkie przedmioty do plecaka ($$ACTION_SPRINT_TOGGLE$$) + + + Kup wybrane przedmioty + + + Sprzedaj wybrane przedmioty + + + start helikoptera ewakuacyjnego + + diff --git a/gamedata/configs/text/pol/ui_st_pda.xml b/gamedata/configs/text/pol/ui_st_pda.xml new file mode 100644 index 0000000..05bc09c --- /dev/null +++ b/gamedata/configs/text/pol/ui_st_pda.xml @@ -0,0 +1,279 @@ + + + + Czas + + + Wolny stalker + + + Wojskowy + + + Bandyta + + + Powinnoœæ + + + Naukowiec + + + Misje poboczne + + + Schowki + + + Wolnoœæ + + + Najemnik + + + Dziennik misji + + + Monolit + + + Mutant + + + kwiecieñ + + + sierpieñ + + + grudzieñ + + + luty + + + styczeñ + + + lipiec + + + czerwiec + + + marzec + + + maj + + + listopad + + + paŸdziernik + + + wrzesieñ + + + Wy³¹cz PDA + + + Rejestr wiadomoœci + + + Poka¿ historiê wiadomoœci + + + Mapa terenu + + + Poka¿ mapê Zony i dziennik misji + + + Statystyka + + + Poka¿ w³asn¹ statystykê + + + Bie¿¹cy czas: + + + Filtr daty + + + Poka¿ nowiny + + + Poka¿ dialogi + + + Legenda + + + Czas w Zonie: + + + Przetrwane emisje: + + + Wykonane misje: + + + Zabite mutanty: + + + Zabici stalkerzy: + + + Znalezione artefakty: + + + Znalezione schowki: + + + Ulubiona broñ + + + Najpotê¿niejszy zabity mutant + + + Miejsce: + + + Cel + + + Misja poboczna + + + Wrogowie + + + Przyjaciele + + + Przywódca frakcji + + + Misja g³ówna + + + Neutralni + + + Przewodnik + + + Schowki + + + Dowódca oddzia³u + + + Handlarz + + + Stalker + + + Rejestr wiadomoœci + + + Wyœrodkuj na graczu + + + Przesuñ w dó³ + + + Przesuñ w lewo + + + Poka¿ legendê + + + Przesuñ w prawo + + + Przesuñ w górê + + + Maksymalne oddalenie + + + Przybli¿enie + + + Oddalenie + + + Osi¹gniêcia + + + Wyœrodkuj mapê na misji + + + Wyœrodkuj mapê na misji + + + Zombi + + + skaluj + + + + skaluj - + + + Technik + + + Lekarz + + + Bie¿¹ce misje + + + Poka¿/ukryj misje + + + Osobista skrzynka + + + Zaton + + + Okolice fabryki Jupiter + + + Prypeæ + + + Tunel Prypeæ 1 + + + Laboratorium X8 + + + Obszary + + + Wa¿ne obiekty + + + Obszar + + + Skanery wykry³y artefakty: + + + Skanery nie wykry³y artefaktów + + + Schowek + + + Miejsce snu + + diff --git a/gamedata/configs/text/pol/ui_st_screen.xml b/gamedata/configs/text/pol/ui_st_screen.xml new file mode 100644 index 0000000..5fb37e0 --- /dev/null +++ b/gamedata/configs/text/pol/ui_st_screen.xml @@ -0,0 +1,348 @@ + + + + Otwórz skrytkê ($$ACTION_USE$$) + + + Wyczerpanie nie pozwala ci iœæ dalej + + + Nadmierne obci¹¿enie nie pozwala ci iœæ dalej + + + Otwórz drzwi ($$ACTION_USE$$) + + + Rozmawiaj ($$ACTION_USE$$) + + + Przeszukaj cia³o ($$ACTION_USE$$) + + + Przeszukaj cia³o ($$ACTION_USE$$)\nPrzeci¹gnij cia³o (SHIFT+$$ACTION_USE$$) + + + Zadanie wykonane: + + + Zadanie nie powiod³o siê: + + + Otrzymany przedmiot: + + + Otrzymane pieni¹dze: + + + Nowe zadanie: + + + Utracony przedmiot: + + + Utracone pieni¹dze: + + + Zadanie anulowane: + + + Nowe informacje o zadaniu: + + + Broñ siê zaciê³a. Musisz prze³adowaæ. + + + Przeszukaj skrzynkê ($$ACTION_USE$$) + + + Podnieœ przedmiot ($$ACTION_USE$$) + + + Przeszukaj samolot ($$ACTION_USE$$) + + + Drzwi siê zaciê³y + + + Drzwi s¹ zamkniête od œrodka + + + Sejf zamkniêty + + + Potrzebny jest kod + + + WprowadŸ kod ($$ACTION_USE$$) + + + Podnieœ roœlinê ($$ACTION_USE$$) + + + Ustaw skaner ($$ACTION_USE$$) + + + WeŸ skaner ($$ACTION_USE$$) + + + Supresor agresji Têcza\nmodel zewnêtrznego kompleksu emisji\nskala1:20 + + + U¿yj prze³¹cznika ($$ACTION_USE$$) + + + Zbadaj urz¹dzenie ($$ACTION_USE$$) + + + Pod³ó¿ ³adunki wybuchowe ($$ACTION_USE$$) + + + Odzyskaj ($$ACTION_USE$$) + + + Brak zasilania windy + + + W³¹cz generator ($$ACTION_USE$$) + + + Œpij + + + Nie mo¿esz spaæ! Gwa³townie krwawisz, a aktualny stopieñ napromieniowania zagra¿a twojemu ¿yciu. U¿yj lekarstw lub odwiedŸ medyka. + + + Nie mo¿esz spaæ! Gwa³townie krwawisz. U¿yj lekarstw lub odwiedŸ medyka. + + + Nie mo¿esz spaæ! Aktualny stopieñ napromieniowania zagra¿a twojemu ¿yciu. U¿yj lekarstw lub odwiedŸ medyka. + + + Œpij ($$ACTION_USE$$) + + + Uda³o ci siê zdobyæ osi¹gniêcie „Obroñca równowagi”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Ekspert systemów obronnych”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Detektyw”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Dyplomata”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Przyjaciel Powinnoœci”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Przyjaciel Wolnoœci”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Przyjaciel stalkerów”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Wys³annik sprawiedliwoœci”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Ekspert wysokiej technologii”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Handlarz informacjami”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Stra¿nik sekretów”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Szef”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Przywódca”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „£owca mutantów”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Jeden z nas”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Pionier”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Asystent”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „£owca artefaktów”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Doœwiadczony stalker”. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Bogaty klient”. + + + Autozapis… + + + Mo¿esz teraz wyj¹æ broñ. + + + Zamek szyfrowy ($$ACTION_USE$$) + + + W nagrodê za rozwi¹zanie tajemnicy zaginionych stalkerów w twojej skrytce na Skadowsku zosta³y umieszczone œrodki medyczne. + + + W nagrodê za pomoc Powinnoœci w twojej skrytce na stacji Janów umieszczony zosta³ kombinezon PS5-M Uniwersalna ochrona. + + + W nagrodê za pomoc Powinnoœci w twojej skrytce na stacji Janów umieszczony zosta³ kombinezon Pancerz Powinnoœci PSZ-9d. + + + W nagrodê za pomoc Wolnoœci w twojej skrytce na stacji Janów umieszczony zosta³ kombinezon Powiew Wolnoœci. + + + W nagrodê za pomoc Wolnoœci w twojej skrytce na stacji Janów umieszczony zosta³ kombinezon Stra¿nik wolnoœci. + + + Nie uda³o ci siê dotrzeæ do helikopterów i dru¿yna ewakuacyjna opuœci³a Zonê bez ciebie. + + + Czy na pewno chcesz opuœciæ Zonê? Powrót jest niemo¿liwy. + + + Koniec gry. + + + Naciœnij klawisz ($$ACTION_JUMP$$), aby wyjœæ do menu g³ównego. + + + Pauza + + + Gra zapisana + + + W nagrodê za pomoc w zdemaskowaniu Sroki w twojej skrytce na Skadowsku umieszczony zosta³ artefakt. + + + Musisz poczekaæ, a¿ dok zostanie uszczelniony. + + + Przyznano dostêp + + + JedŸ wind¹ do góry ($$ACTION_USE$$) + + + JedŸ wind¹ w dó³ ($$ACTION_USE$$) + + + Krytyczny poziom emisji psionicznych. Opuœæ natychmiast zagro¿ony obszar. + + + Niebezpieczny poziom promieniowania. Aby przejœæ dalej, niezbêdna jest ochrona. + + + Zbadaj helikopter ($$ACTION_USE$$) + + + Przeszukaj schowek ($$ACTION_USE$$) + + + g. + + + Wiadomoœæ + + + Drzwi zablokowane + + + Zamknij drzwi ($$ACTION_USE$$) + + + Drzwi zamkniête - obóz jest w stanie pogotowia + + + Drzwi zamkniête - musisz schowaæ broñ + + + Drzwi zamkniête + + + Brak zasilania drzwi + + + Otwórz drzwi ($$ACTION_USE$$) + + + Brama zablokowana + + + U¿yj karty dostêpu ($$ACTION_USE$$) + + + Wymagana karta dostêpu + + + Drzwi nie mo¿na otworzyæ z tej strony + + + - + + + Pojemnik jest zamkniêty. Aby go otworzyæ, potrzebne s¹ dwa klucze. + + + U¿yj klucza ($$ACTION_USE$$) + + + U¿yj kluczy ($$ACTION_USE$$) + + + Pojemnik jest zamkniêty. Aby go otworzyæ, potrzebny jest drugi klucz. + + + Otwórz pojemnik ($$ACTION_USE$$) + + + Mechanizm drzwi zosta³ zablokowany od œrodka. + + + Pod³¹cz zbiornik z gazem ($$ACTION_USE$$) + + + Uwaga! Zagro¿enie chemiczne! + + + Otwórz zawór ($$ACTION_USE$$) + + + Przeszukaj samochód ($$ACTION_USE$$) + + + Mo¿esz uzupe³niæ swój zapas œrodków medycznych, odwiedzaj¹c poruczników Rogowca i Kiry³owa. + + + Niedawno w Zonie nast¹pi³a emisja. + + + Uda³o ci siê zdobyæ osi¹gniêcie „Naznaczony przez Zonê". + + + W nagrodê za eliminacjê niebezpiecznych mutantów w twojej skrytce na stacji Janów zosta³a umieszczona amunicja. + + + Otrzymano wspó³rzêdne schowka, który ju¿ wczeœniej zosta³ odkryty. + + + Znaleziono schowek + + + Otrzymano wspó³rzêdne schowka + + + Naciœnij dowolny klawisz, aby rozpocz¹æ grê + + diff --git a/gamedata/configs/text/rus/ui_st_ixray.xml b/gamedata/configs/text/rus/ui_st_ixray.xml new file mode 100644 index 0000000..255d47f --- /dev/null +++ b/gamedata/configs/text/rus/ui_st_ixray.xml @@ -0,0 +1,427 @@ + + + + S.T.A.L.K.E.R.: Çîâ Ïðèïÿòè + + + Ãëàâíîå ìåíþ + + + Óðîâåíü: + + + áûñòðîå ñîõðàíåíèå + + + àâòîìàòè÷åñêîå ñîõðàíåíèå + + + + Òåíü îò ïðîòàãîíèñòà + + + Òåíü îò òðàâû + + + Òåíè íà ðóêàõ + + + Òåíè îò îáëàêîâ + + + Ìàñøòàá âèçóàëèçàöèè + + + FXAA + + + SMAA + + + TAA + + + Ìàñøòàáèðîâàíèå + + + Ñòàíäàðíîå (Ëèíåéíîå) + + + Öåëî÷èñëåííîå + + + DLSS + + + FSR2 + + + Intel XeSS + + + Ñâîáîäíûé + + + Ìíîãîïîò. çàãðóçêà òåêñòóð + + + Êàðòà òåíåé + + + 1024x1024 + + + 2048x2048 + + + 3072x3072 + + + 4096x4096 + + + Always Active + + + Îòêðûòü áàãàæíèê ($$ACTION_USE$$) + + + Èñïîëüçîâàòü ($$ACTION_USE$$) + + + ì + + + Äèñòàíöèÿ óäàðà + + + DoF ïðè ïåðåçàðÿäêå + + + DoF ïðè äèàëîãå + + + Ñ÷åò÷èê ôïñ + + + Ðåçêîñòü + + + Ôèëüòð. ïðîçðà÷íîñòè + + + GTAO + + + Âèíüåòêà + + + Õðîìàò. àáåððàöèÿ + + + Îòðàæåíèÿ íà âîäå + + + Êà÷åñòâî ìàñøòàá. + + + Ñãëàæèâàíèå + + + Êà÷åñòâî + + + Ñáàëàíñèðîâàííîå + + + Ïðîèçâîäèòåëüíîñòü + + + Óëüòðàïðîèçâîäèòåëüíîñòü + + + Ïîëüçîâàòåëüñêîå + + + Îáùèå íàñòðîéêè + + + Íàñòðîéêè ïîâåðõíîñòåé + + + Íàñòðîéêè ñãëàæèâàíèÿ è ìàñøòàáèðîâàíèÿ + + + Íàñòðîéêè îñâåùåíèÿ + + + Íàñòðîéêè ñîëíå÷íîãî ñâåòà + + + Ýôôåêòû + + + Ïîñòîáðàáîòêà + + + Íàñûùåííîñòü + + + âçÿòü + + + âçÿòü âñå + + + Ñëîæèòü âñå + + + Ïåðåìåñòèòü âñå âåùè + + + ïåðåìåñòèòü + + + ïåðåìåñòèòü âñ¸ + + + Óë. ïîëíîå îñâåùåíèå (DX10) + + + óëüòðà + + + % + + + ðàçîáðàòü + + + Binocular + + + Knife + + + BM16 + + + Groza + + + SVD + + + AK74 + + + LR300 + + + HPSA + + + PM + + + RG6 + + + RPG7 + + + Shotgun + + + AutoShotgun + + + Magazine + + + SVU + + + USP45 + + + VAL + + + Vintorez + + + Walther + + + Stat mgun + + + Bloodsucker + + + Boar + + + Dog + + + Flesh + + + PseudoDog + + + Burer + + + Cat + + + Chimera + + + Controller + + + Izlom + + + Poltergeist + + + PseudoGiant + + + Zombie + + + Snork + + + Tushkano + + + PsyDog + + + PsyDog (Phantom) + + + Artefact + + + Car + + + Smart terrain + + + Level changer + + + Actor (player) + + + Stalker + + + Helicopter + + + Space restrictor + + + Physics Object + + + Smart cover + + + Destroyable object + + + Hanging lamp + + + Ðàñøèðåííûå òåíè òðàâû + + + Îáú¸ìíûå ëóæè + + + Äàëüíîñòü âèäèìîñòè òðàâû + + + Ôîðìàò ñêðèíøîòîâ + + + .jpg + + + .tga + + + .png + + + Êëèåíò: Ñîåäèíåíèå ñ + + + Êëèåíò: Ñîçäàíèå + + + Êëèåíò: Ñèíõðîíèçàöèÿ + + + Ñîçäàíèå íîâîé èãðû + + + ßçûê + + + Ðóññêèé + + + English + + + ìàêñ. + + + âûêë. + + + âêë. + + + Êîíòàêòû + + + Êîíòàêòû + + + Ïîêàçàòü ñïèñîê êîíòàêòîâ ñòàëêåðîâ + + + ñíÿòü ðþêçàê + + + íàäåòü ðþêçàê + + + Ñèëà êà÷àíèÿ êàìåðû + + + Çàìåäëåíèå ïîñëå óðîíà + + + Ïðèöåëèâàíèå ïî êëèêó + + + Ïðîòèðàíèå ìàñêè + + + ×óâñòâèòåëüíîñòü ìûøè â UI + + diff --git a/gamedata/configs/text/rus/ui_st_mm.xml b/gamedata/configs/text/rus/ui_st_mm.xml new file mode 100644 index 0000000..527f055 --- /dev/null +++ b/gamedata/configs/text/rus/ui_st_mm.xml @@ -0,0 +1,936 @@ + + + + ßñíàÿ + + + Îáëà÷íàÿ + + + ñðåäíèå + + + ìàêñèìàëüíûå + + + âûñîêèå + + + íèçêèå + + + ìèíèìàëüíûå + + + Íî÷ü + + + Äîæäü + + + ÒÈÏ ÈÃÐÛ + + + ìàñòåð + + + íîâè÷îê + + + âåòåðàí + + + ÇÍÀ×ÊÈ + + + ÊÀÐÒÀ + + + Âîçâðàùåíèå àêòèâàöèåé + + + Ðàçðåøèòü ãîëîñîâàíèå + + + Âðåìÿ àíîìàëèè (ìèí.) + + + Çàõâàò àðòåôàêòà + + + Çàäåðæêà àðòåôàêòà + + + Êîë-âî àðòåôàêòîâ + + + Âðåìÿ àðòåôàêòà + + + Âîçâðàò àðòåôàêòà + + + Àâòîáàëàíñ êîìàíä + + + Àâòîñìåíà êîìàíä + + + ÄÎÑÒÓÏÍÛÅ ÊÀÐÒÛ + + + Îòìåíà + + + CD-key + + + ïðîâåðÿòü CD-key + + + Êëèåíò + + + Ñîçäàòü + + + Íåóÿçâèìîñòü (ñåê.) + + + Èíäèêàòîð íåóÿçâèìîñòè + + + Ñìåðòè + + + Âûäåëåííûé + + + ñïèñîê äåìî-ðîëèêîâ + + + ñòàòèñòèêà èãðîêîâ + + + Çàïèñûâàòü äåìî-ðîëèêè + + + Çàïèñü äåìî-ðîëèêîâ + + + Ïóñòûå + + + Ôèëüòðû + + + Ðîæäåíèå (ñåê.) + + + Ëèìèò ôðàãîâ + + + Ôðàãè + + + Âðåìÿ çàäåðæêè + + + Îãîíü ñîþçíèêà (ê.) + + + Èíäèêàòîðû ñîþçíèêîâ + + + Èìåíà äðóçåé + + + Ïîëíûå + + + Ðåæèì + + + IP/õîñò: ïîðò + + + Èíòåðíåò + + + Ñîåäèíèòüñÿ + + + Ëîêàëüíàÿ ñåòü + + + Íå âûäåëåííûå + + + Âîñïðîèçâåñòè + + + Ñïèñîê êàðò + + + Ìàêñ. èãðîêîâ + + + Ñåòåâîå ñîåäèíåíèå + + + Áåç àíîìàëèé + + + Îïöèè + + + Ïàðîëü + + + Èìÿ èãðîêà: + + + Èãðîêè + + + êîëè÷åñòâî èãðîêîâ + + + Èíòåðíåò-ñåðâåð + + + Îáíîâèòü îäèí + + + Êîýô. èçìåíåíèÿ + + + Îáíîâèòü âñ¸ + + + Ïîäêðåïëåíèå (ñåê.) + + + Îïöèè ðîæäåíèÿ + + + ÂÛÁÐÀÍÍÛÅ ÊÀÐÒÛ + + + Ñåðâåð + + + Ñïèñîê ñåðâåðîâ + + + Ñâîéñòâà ñåðâåðà + + + Èíôî ñåðâåðà + + + Ñåðâåð + + + Èìÿ ñåðâåðà + + + Íàñòðîéêè ñåðâåðà + + + Íàáëþäàòåëü + + + Îò ïåðâîãî ëèöà + + + Ñâîáîäíûé ïîë¸ò + + + Ñâîáîäíî-ïðèâÿçàííûé + + + Îò òðåòüåãî ëèöà + + + Íàñòðîéêè íàáëþäàòåëÿ + + + Òîëüêî äëÿ êîìàíäû + + + Ïîãîäà + + + ñ÷¸ò + + + Ëèìèò âðåìåíè (ìèí.) + + + Ðàçîãðåâ (ñåê.) + + + Îïöèè ïîãîäû + + + Áåç îãíÿ ïî ñâîèì + + + Áåç ïàðîëÿ + + + Áåç Punk Buster + + + Ñ ïàðîëåì + + + Ëîêàëüíàÿ ñåòü + + + Èíòåðíåò + + + Çàâîä «Àãðîïðîì» + + + ÀÒÏ + + + Áàññåéí + + + Óñïåøíîå èçìåíåíèå óíèêàëüíîãî íèêà! + + + Ò¸ìíàÿ Äîëèíà + + + Çàâîä «ßíòàðü» + + + îøèáêà ñîåäèíåíèÿ ñ ñåðâåðîì ñòàòèñòèêè + + + îøèáêà ñîåäèíåíèÿ ñ ëîãèí-ñåðâåðîì + + + Âû óñïåøíî àâòîðèçèðîâàëèñü + + + Çàáðîøåííàÿ äåðåâíÿ + + + Âîåííûå ñêëàäû + + + íåïðàâèëüíîå èìÿ + + + Áàññåéí + + + Æ/ä ñòàíöèÿ + + + Çàâîä «Ðîñòîê» + + + íåïðàâèëüíûé óíèêàëüíûé íèê + + + Âû äåéñòâèòåëüíî õîòèòå óäàëèòü + + + Çàáðîøåííàÿ ôàáðèêà + + + ÏÈÍà + + + ÈÃÐÎÊÈ + + + Ñòàòè÷íîå îñâåùåíèå + + + Ïîëíîå äèíàìè÷åñêîå îñâåùåíèå + + + Óëó÷øåííîå ïîëíîå îñâåùåíèå + + + Äèíàì. îñâåùåíèå îáúåêòîâ + + + Óë. ïîëíîå îñâåùåíèå (DX10) + + + ÈÌß ÑÅÐÂÅÐÀ + + + Îõîòà çà àðòåôàêòîì + + + Çàõâàò àðòåôàêòà + + + Âñå ïðîòèâ âñåõ + + + Ôèëüòð: + + + âûñîêî + + + íèçêî + + + ñðåäíå + + + îòêëþ÷åíî + + + îïûòíûé + + + ëåãåíäàðíûé ñòàëêåð + + + íîâè÷îê + + + ïðîôåññèîíàë + + + âåòåðàí + + + Êîìàíäà ïðîòèâ êîìàíäû + + + ×àñòîòà 60Ãö + + + Äåéñòâèå + + + Ðàñøèðåííûå + + + Àëüòåðíàòèâà + + + Ôèëüòðàöèÿ òåêñòóð + + + Ïðèìåíèòü + + + Íàçàä + + + Êðîâü + + + ßðêîñòü + + + Îòìåíà + + + Îáíîâëåíèÿ + + + Êîíòðàñò + + + Óïðàâëåíèå + + + Òèòðû + + + Äèñòàíöèÿ äî öåëè + + + Ïî óìîë÷àíèþ + + + Óäàëèòü + + + Âû äåéñòâèòåëüíî õîòèòå óäàëèòü ôàéë? + + + Ïëîòíîñòü òðàâû + + + Ñëîæíîñòü + + + Îòñîåäèíèòüñÿ + + + Âû äåéñòâèòåëüíî æåëàåòå îòñîåäèíèòüñÿ? + + + Ãëóáèíà ðåçêîñòè + + + Äèíàìè÷åñêèé ïðèöåë + + + Äèíàìè÷åñêàÿ ìóçûêà + + + EAX + + + Ïîëíûé ýêðàí + + + Èãðà + + + Ãàììà + + + Äåòàëèçàöèÿ îáúåêòîâ + + + Èíâåðòèðîâàòü ìûøü + + + Êíîïêà + + + Íàñòðîéêà êëàâèàòóðû + + + Ïîñë. ñîõðàíåíèå + + + Äàëüíîñòü îñâåùåíèÿ + + + Çàãðóçèòü + + + Çàãðóçèòü èãðó + + + Âûéòè èç ïðîôèëÿ + + + Ìàñòåð + + + Ãðîìêîñòü + + + ×óâñòâèòåëüíîñòü ìûøè + + + Ñãëàæèâàòü À-òåñòîâûå îáúåêòû + + + Îïòèìèçèðîâàòü ñãëàæèâàíèå + + + ÑÅÒÅÂÀß ÈÃÐÀ + + + Ñåòåâàÿ èãðà + + + Ãðîìêîñòü ìóçûêè + + + Èçìåíåíèÿ âñòóïÿò â ñèëó òîëüêî ïîñëå ïåðåçàãðóçêè èãðû + + + Ñåòåâàÿ èãðà + + + Íîâàÿ èãðà + + + Íîâè÷îê + + + Ñâåò ôîíàðèêîâ NPC + + + ÎÏÖÈÈ + + + Îïöèè + + + Äàëüíîñòü ÷àñòèö + + + Óñòàíîâêè êà÷åñòâà + + + Âûéòè â Windows + + + Çàâåðøèòü èãðó + + + Âû äåéñòâèòåëüíî æåëàåòå ïîêèíóòü èãðó? + + + Âû äåéñòâèòåëüíî õîòèòå âûéòè â Windows? + + + Äåòàëüíûé ðåëüåô + + + Steep parallax + + + Òåíü îò ñîëíöà + + + Òåíü òðàâû + + + Êà÷åñòâî ñîëíöà + + + Èñïîëüçîâàòü DX10.1 + + + Ïîëíîýêðàííîå ñãëàæèâàíèå + + + Íàìîêàíèå ïëîñêîñòåé + + + Îïòèìèçèðîâàòü ãåîìåòð. áóôåð + + + Îáú¸ìíûé äûì + + + Ðåíäåð-2 + + + Òèï ðåíäåðà + + + Ðàçðåøåíèå + + + Âîçâðàò ê èãðå + + + Ñîõðàíèòü + + + Ñîõðàíèòü èãðó + + + Ïîêàçûâàòü ïðèöåë + + + Ïîêàçûâàòü îðóæèå + + + Áàçîâûå + + + Çâóêîâîå óñòðîéñòâî + + + Ìÿãêèå ÷àñòèöû + + + Ìÿãêàÿ âîäà + + + Çâóê + + + Êà÷åñòâî çâóêà + + + Ñòàëêåð + + + Êà÷åñòâî òåíåé + + + Ñîëíå÷íûå ëó÷è + + + Ñãëàæèâàíèå + + + Èñïîëüçîâàíèå ôîíàðèêîâ AI + + + Êà÷åñòâî òåêñòóð + + + Ðàñïîçíàâàíèå NPC + + + Âåòåðàí + + + Âèäåî + + + Äàëüíîñòü âèäèìîñòè + + + Îáú¸ìíûé ñâåò + + + Âåðò. ñèíõðîíèçàöèÿ + + + Èçìåíåíèå óíèêàëüíîãî èìåíè... + + + òàêîé e-mail óæå èñïîëüçóåòñÿ + + + Ïî Èíòåðíåòó + + +  ëîêàëüíîé ñåòè + + + íîæîì â ñïèíó + + + îò ïîòåðè êðîâè + + + âçðûâîì + + + â ãëàç + + + â ãîëîâó + + + Âåðñèÿ ñîõðàíåííîãî ôàéëà íå ñîâïàäàåò ñ âåðñèåé èãðû + + + óáèéñòâ ïîäðÿä + + + íîæîì + + + Ïîñë. íàáîð + + + Âõîä â ñåòåâóþ èãðó + + + Èìÿ + + + Èçìåíèòü + + + Íàáîð 1 + + + Íàáîð 2 + + + Íàáîð 3 + + + Ñáðîñèòü + + + Ïðîäàòü âñ¸ + + + Âåðñèÿ + + + Ïðèïÿòü + + + Ðåæèì ñåñòü/âñòàòü + + + Àâòîñîõðàíåíèå + + + Äåòàëüíûå òåêñòóðû + + + Ðîëèêè + + + Âîéòè + + + Âûéòè + + + Ñîçäàòü + + + Íåâåðíûé e-mail èëè ïàðîëü + + + Íåâåðíûé ïðîôèëü + + + Îøèáêà ñîåäèíåíèÿ + + + Ñåðâåð âðåìåííî íåäîñòóïåí + + + Íåîáõîäèìî âîéòè â ïðîôèëü + + + Îøèáêà ñîåäèíåíèÿ + + + Îøèáêà ñîåäèíåíèÿ + + + Îøèáêà ñîåäèíåíèÿ + + + Íåâåðíîå èìÿ ïðîôèëÿ + + + Íåâåðíûé ïàðîëü + + + Íåâåðíûé óíèêàëüíûé íèê + + + Óíèêàëüíûé íèê óæå èñïîëüçóåòñÿ + + + Íåîáõîäèìî âíà÷àëå âîéòè â ïðîôèëü + + + Íåîáõîäèìî ñïåðâà âûéòè èç ïðîôèëÿ + + + Îøèáêà ñîåäèíåíèÿ ñ ñåðâåðîì ïðîôèëåé + + + Âû íå ñìîæåòå óäàëèòü ïðîôèëü ïîñëå åãî ñîçäàíèÿ + + + Êà÷åñòâî SSAO + + + Ðåæèì SSAO + + + ïî óìîë÷àíèþ + + + HDAO + + + HBAO + + + Ïîêàçûâàòü èíòåðôåéñ + + + Óíèêàëüíûé íèê íå çàðåãèñòðèðîâàí. Ïîæàëóéñòà, çàðåãèñòðèðóéòå åãî + + + Óíèêàëüíûé íèê óñòàðåë. Ïîæàëóéñòà, çàðåãèñòðèðóéòå åãî ñíîâà + + + ñòàëêåð + + + ìàêñ. âûñîêî + + + Óë. ïîëíîå îñâåùåíèå (DX11) + + + Ïîæàëóéñòà, àâòîðèçèðóéòåñü äëÿ âõîäà íà âíåøíèé ñåðâåð. + + + Ýòîò ïðîôèëü GameSpy ID â äàííûé ìîìåíò èñïîëüçóåòñÿ. Ïîæàëóéñòà, èñïîëüçóéòå äðóãîé ïðîôèëü GameSpy ID. + + + Íåâåðíûé Email + + + Íåâåðíûé ïàðîëü + + + Âû íå ìîæåòå èñïîëüçîâàòü ïðîôèëü GameSpy ID äëÿ âõîäà íà ëîêàëüíûé ñåðâåð. Ïîæàëóéñòà, èñïîëüçóéòå ðåæèì èãðû ïî ëîêàëüíîé ñåòè. + + + Âû áûëè âûáðîøåíû ñåðâåðîì. + + + Âû áûëè çàáëîêèðîâàíû àäìèíèñòðàòîðîì: + + + Âû áûëè çàáëîêèðîâàíû ñåðâåðîì + + + Èíôîðìàöèÿ î ñåðâåðå + + + E-mail ñëèøêîì äëèííûé. Âû ìîæåòå ââåñòè ìàêñèìóì 50 ñèìâîëîâ. + + + Íåêîððåêòíûé e-mail + + + Ïàðîëü ñëèøêîì êîðîòêèé + + + Ïàðîëü ñëèøêîì äëèííûé + + + E-mail íå íàéäåí + + + Óíèêàëüíûé íèê íå çàäàí + + + Óíèêàëüíûé íèê ñëèøêîì äëèííûé. Âû ìîæåòå ââåñòè ìàêñèìóì 30 ñèìâîëîâ. + + + Óíèêàëüíûé íèê ìîæåò ñîäåðæàòü òîëüêî öèôðû, áóêâû ëàòèíèöû è ñïåöèàëüíûå ñèìâîëû + + + Óíèêàëüíûé íèê íå ìîæåò ñîäåðæàòü ïðîáåëû + + + Óíèêàëüíûé íèê íå ìîæåò íà÷èíàòüñÿ ñ öèôðû èëè ñèìâîëîâ: '@', '+', ':' èëè '#' + + + î÷åíü âûñîêî + + + Òåññåëÿöèÿ + + + Ïðèìåíèòü ñäåëàííûå èçìåíåíèÿ? Âñå èçìåíåíèÿ áóäóò îòìåíåíû ÷åðåç + + diff --git a/gamedata/configs/text/spa/st_achievement.xml b/gamedata/configs/text/spa/st_achievement.xml new file mode 100644 index 0000000..0ac0958 --- /dev/null +++ b/gamedata/configs/text/spa/st_achievement.xml @@ -0,0 +1,372 @@ + + + + ¡Qué humillante debe ser para el enemigo que lo maten diez veces seguidas sin que tú sufras un rasguño! Pero no es que seas cruel: en el fondo, le ayudas a mejorar. + + + La cosecha + + + ¡Qué certero! Has matado a dos pájaros de un tiro. En concreto, de un tiro con tu fusil Gauss. + + + Dos de un tiro + + + Tu estrategia pausada y bien calculada ha resultado letal para el enemigo: has acertado dos blancos con dos disparos de tu escopeta de dos cañones en apenas un par de segundos. + + + 2 disparos, 2 muertes + + + Tú sí que sabes lo que es ser un stalker: ¡por algo eres el primer stalker legendario! + + + Triunfo social + + + ¿Intentas cortar un exoesqueleto con un cuchillo? Parece que te gusta marcarte metas imposibles y superarlas. + + + Abrelatas + + + Pensaban que te tenían acorralado, pero has liquidado a cinco enemigos. ¡Y eso que estabas a las puertas de la muerte! + + + Duro de pelar + + + ¡Qué derroche de adrenalina! Has aniquilado a tus enemigos con una ráfaga de balas. ¡5 muertes en 5 segundos! ¡Increíble! + + + Furia desatada + + + ¡Tremenda puntería! Has matado a dos enemigos disparándoles de frente y sigues vivo. + + + Buena vista + + + Deja que se escondan detrás de una esquina o que tiendan emboscadas: no podrán contigo. ¡Si hasta puedes acertar un blanco móvil sin ni siquiera apuntar! + + + Reflejos de lince + + + Déjale que corra: tus balas lo alcanzarán de todas formas. + + + Para al corredor + + + Has aniquilado a 20 enemigos uno detrás de otro y sigues vivo. ¡Menuda carnicería! + + + Masacre + + + Sí, eran 3 y tenían fusiles de francotirador, pero tu pericia terminó con ellos. + + + Tirador de precisión + + + Has demostrado al enemigo que se puede ganar sin necesidad de disparar una sola bala. ¡Deja a los demás que se comporten como bárbaros! + + + Mensajero de la paz + + + ¡La distancia no es un problema para un buen francotirador! Puedes dar en el blanco a 120 metros de distancia. + + + Puntería letal + + + Tu enemigo consiguió liquidarte, pero le dejaste una sorpresita: ¡una granada! + + + Para que no me olvides + + + Liquidaron a tus amigos y tu venganza ha sido terrible: 3 cadáveres enemigos por 3 amigos muertos. Es justo. + + + Vengador + + + Eres el ángel de la guardia de tu amigo. Lo has salvado 2 veces de un ataque mientras llevaba el artefacto. + + + Querubín + + + Has protegido tu honor y el de tu equipo consiguiendo puntos. + + + Honorable + + + ¿Sabes realmente dónde aparecerá el siguiente artefacto? ¡Porque lo has cogido a los pocos segundos de que se mostrase! + + + Intuición de stalker + + + Has tenido suerte: ¡has liquidado al enemigo con la última bala de tu cargador! Era él o tú, está claro. + + + Cabrón afortunado + + + Has matado a 8 enemigos seguidos. Toda una provocación, a ver cómo responde el adversario. + + + Lista negra + + + Has sobrevivido porque andas con cautela y mucho cuidado. No has muerto ni una sola vez durante el juego y has conseguido más de 15 puntos. + + + Paranoia + + + Haces tu trabajo sin llamar la atención y usando siempre un silenciador. ¿Por qué hacerle saber al enemigo de qué dirección surge su muerte? + + + Muerte silenciosa + + + Has acabado con tu enemigo derrotándolo y consiguiendo el doble de puntos que el puntuador líder. Ni más ni menos. + + + Superioridad aplastante + + + Tu valiente plan para conseguir el artefacto de inmediato ha sido un éxito. Has conseguido puntos para tu equipo en los tres primeros minutos de partida. + + + Ataque relámpago + + + No le has dejado a tu enemigo ni oler la victoria: has ganado sin que pudiese conseguir un solo artefacto. ¡Le has dado una lección de trabajo en equipo! + + + Ni un solo artefacto + + + Has conseguido la mejor puntuación en todas las áreas: has matado a más enemigos, has conseguido más artefactos y te han matado menos veces. ¡Sigue así! + + + Polifacético + + + ¡Tu manejo del cuchillo es tremendo! Has degollado a 3 enemigos en 20 segundos. ¡Eres una máquina de matar incluso desarmado! + + + Furia + + + Todo enemigo tiene un punto débil: tú lo has encontrado acertando en el ojo a un rival armado hasta los dientes con tu arma de cinto. + + + Talón de Aquiles + + + ¡Las balas enemigas no pueden contigo! ¡Has avanzado entre ellas como si nada y has acabado con el enemigo! + + + Más rápido que las balas + + + Estás dispuesto a investigar los acontecimientos más recientes en la Zona. Nos has permitido conocerla más fondo descubriendo nuevas formaciones anómalas antes desconocidas para la ciencia. + + + Precursor + + + Los stalkers te valoran más.\nEn compensación por tu trabajo, ahora te dejan munición en tu caja personal de la estación de Yanov. + + + No intentas evitar a los peligrosos mutantes, sino que les das caza. Los buenos cazadores gozan del reconocimiento de los stalkers. + + + Cazador de mutantes + + + Los stalkers te valoran más.\nComo muestra de respeto, ahora te dejan suministros médicos en tu caja personal de Skadovsk. + + + Has descubierto el secreto de la desaparición de stalkers en Skadovsk. Al final, la culpa no era de los mutantes, sino de un enemigo más peligroso: el hombre. Descubrir la verdad te ha hecho ganarte el respeto de los stalkers. + + + Detective + + + Los stalkers te valoran más.\nLe han pedido al comerciante Búho que te haga un descuento. \nAhora, Barbas te ofrecerá sus artefactos al mejor precio. + + + Has demostrado quién manda a los bandidos y a su líder Sultán, lo que te ha valido una gran popularidad entre los stalkers. Siempre serás bienvenido en Skadovsk. + + + Uno de los nuestros + + + Te has ganado el respeto de los bandidos.\nEl comerciante Búho te ha ofrecido un descuento por miedo a ser tu próxima víctima.\nSegún lo acordado, Barbas te pagará parte de sus ganancias. + + + Has ayudado a Sultán a zafarse de los stalkers y a tomar el control del negocio de Barbas. Ahora eres temido y respetado en Zaton. + + + Mandamás + + + Los stalkers han decidido entregar el botín de Urraca, fruto de mentiras y engaños, a alguien que lo merezca más. Ahora está en tu caja personal, en Yanov. + + + Has hecho justicia con esa escoria. Urraca engañó y mintió a muchos stalkers y ahora tendrá que pagar. + + + Mensajero de la justicia + + + Los stalkers te valoran más ahora.\nLos bandidos tratarán de darte caza allá donde te aventures en la Zona. + + + Has encontrado todos los artefactos que conocen los investigadores de la Zona. Te has ganado el respeto de los stalkers y la atención de los bandidos. + + + Cazador de artefactos + + + Cardán puede realizar una modificación única que te permitirá moverte rápidamente con exoesqueleto instalando potenciadores servomotores hidráulicos. + + + Cardán tiene todas las herramientas que pueda necesitar, lo que le permite realizar nuevas y complejas mejoras. + + + Experto en sistemas de armas + + + Azot puede realizar una modificación de casco táctico única: un escáner de infrarrojos que permite detectar a los humanos cercanos. + + + Azot tiene todas las herramientas que un técnico de la Zona podría soñar. Ahora puede realizar modificaciones avanzadas. + + + Experto en tecnología + + + Tu experiencia te permite encontrar artefactos poco comunes más a menudo. + + + Prácticamente no hay áreas accesibles por el centro de la Zona que no hayas visitado. Has presenciado casi todas las anomalías locales. + + + Stalker experimentado + + + Tus dotes de liderazgo mejoran la probabilidad de supervivencia de tu equipo. + + + Tenías un trabajo en equipo, así que formaste un pelotón y demostrarte que eres un líder. + + + Líder + + + Libertad, Deber, los stalkers libres y hasta los bandidos tienen que reconocer tus dotes de negociador y, por tanto, te valoran. + + + Sabes cómo resolver un problema pacíficamente. ¿Quién necesita la fuerza bruta cuando las palabras pueden zanjar una disputa? Eso sí, ojo con los que disparan antes de preguntar. + + + Diplomático + + + Llevas tanto tiempo trabajando con los científicos que casi podrías ser considerado su ayudante. Para todos los científicos del búnker, eres uno de los suyos. + + + Ayudante de investigación + + + Tus relaciones con Deber han mejorado. Si estás en apuros, sus soldados tratarán de ayudarte.\nAzot, el técnico que trabaja para Deber, te ofrece un descuento.\nTus relaciones con Libertad se han deteriorado.\El Hawaiano, comerciante cercano a Libertad, te cobrará todo más caro. + + + Has sido de gran ayuda a Deber, lo que te ha hecho ganarte el respeto de sus soldados y amigos. Sin embargo, no olvides que esta facción también tiene sus detractores. + + + Amigo de Deber + + + \nTus relaciones con Libertad han mejorado. Si estás en apuros, sus soldados tratarán de ayudarte.\nEl Hawaiano, comerciante cercano a Libertad, te ofrece un descuento.\nTus relaciones con Deber se han deteriorado.\Azot, el técnico que trabaja para Deber, te cobrará más por sus servicios. + + + Has sido de gran ayuda a Libertad, lo que te ha hecho ganarte el respeto de sus soldados y amigos. Sin embargo, no olvides que esta facción también tiene sus detractores. + + + Amigo de Libertad + + + Los stalkers de Yanov valoran el equilibrio de poder entre Deber y Libertad. Por eso, tanto el técnico como el comerciante te ofrecen ahora descuentos. + + + No te has aliado con ninguna facción y siempre has ido por libre. No te has ganado ningún enemigo, pero tampoco has hecho amigos. + + + Un tipo ecuánime + + + Los comerciantes te ofrecen cosas más caras e inusuales. + + + Aunque sabes lo que significa vivir con lo justo, ahora no te va mal. De hecho, en ocasiones te juntas con sumas considerables, y los comerciantes valoran a un cliente de tu talla. + + + Un cliente adinerado + + + Tras conseguir las notas, Strelok halló una nueva razón para vivir y perseguir su objetivo a toda costa. + + + Tu capacidad de previsión te impulsó a guardar las notas que encontraste en los escondites del grupo de Strelok hasta dar con su propietario. + + + Guardián de secretos + + + Has conseguido sobrevivir a una emisión sin cubrirte gracias a los anabióticos. Los efectos psíquicos son inciertos, pero percibes un silencio mental extraño. Parece que ya no oyes tus propias ideas constantemente. + + + Marcado por la Zona + + + El comerciante Búho te ofrece un descuento por ser su mejor informador y socio. + + + Cuando echas mano a algún dato, siempre encuentras a algún interesado. Obviamente, sabes cuánto pedir si vendes información a quien la necesita. + + + Traficante de información + + + Tus relaciones con los stalkers han mejorado. Si estás en apuros, tratarán de ayudarte.\nLos médicos de la facción han acordado venderte suministros médicos a precio de coste. + + + Siempre has ayudado a los stalkers con problemas. Aunque no es una facción muy unida, ahora cuentas con aliados en su hermandad extraoficial y te ayudarán en situaciones de combate y más. + + + Amigo de los stalkers + + + Diversas informaciones recientes permitieron a los profesores Hermann y Ozersky crear una nueva droga experimental en la Zona: un anabiótico. + + + Puedes sobrevivir a una emisión, incluso sin ayuda de fármacos, siempre que estés saludable. + + + Como estás siendo muy útil, el profesor Hermann te ofrece suministros médicos y equipo solo para personal del búnker a precio de coste.\nNovikov está tan habituado a trabajar contigo que solo te cobrará las piezas cuando realice modificaciones. + + diff --git a/gamedata/configs/text/spa/st_characters.xml b/gamedata/configs/text/spa/st_characters.xml new file mode 100644 index 0000000..ac9adc8 --- /dev/null +++ b/gamedata/configs/text/spa/st_characters.xml @@ -0,0 +1,336 @@ + + + + Jack + + + Vano + + + Ten. Cor. Shulga + + + Loki + + + El Hawaiano + + + Sueldahuesos + + + Senka + + + Zulu + + + Tío Yar + + + Topol + + + Mace + + + Licor + + + Serpiente + + + Buitre + + + Nitro + + + Trapper + + + Pedernal + + + General Tachenko + + + Ten. Bunchuk + + + Cor. Kosmach + + + Ten. Zakharchuk + + + Negro + + + Duplet + + + Cirujano + + + Calavera + + + Stake + + + Koshey + + + Cadáver + + + Strider + + + Blindaje + + + Hoz + + + Morsa + + + Dócil + + + Foma + + + Profesor Ozersky + + + Novikov + + + Profesor Hermann + + + Sgto. Shlyachin + + + Ten. Sergeev + + + Sgto. Valiushok + + + Sgto. Ostrovsky + + + Capitán Klimenko + + + Ten. Sokolov + + + Capitán Tarasov + + + Cor. Kovalsky + + + Ten. Podorozhny + + + Ten. Skelya + + + Sgto. Merkulov + + + Ten. Stetsenko + + + Sgto. Yarmoshuk + + + Ten. Rogovets + + + Ten. Smirnov + + + Strelok + + + Barchuk + + + Mayor Degtyarev + + + Enano + + + Shishak + + + Osopardo + + + Torba + + + Mitay + + + Ten. Gavrilenko + + + Kremen + + + Gaiduk + + + Garry + + + Ten. Kirillov + + + Serbin + + + Chacal + + + Nimble + + + Cangrejo + + + Garmata + + + Gonta + + + Mazo + + + Cresta + + + Búho + + + Urogallo + + + Danila + + + Sultán + + + Morgan + + + Knuckles + + + Espartaco + + + Barbas + + + Cardán + + + Duende + + + Roble + + + Pianista + + + Segador + + + Kirzach + + + Tanque + + + Careto + + + Hachuela + + + Atún + + + Noé + + + Piloto + + + Tremor + + + Ten. Drapei + + + Sub. Umerov + + + Snag + + + Hook + + + Ridge + + + Mirone + + + Barca + + + Petruha + + + Punzón + + + Mayor Chepurny + + + Brig. 1º Valentir + + + Sgto. 1º Morozov + + + Ten. 1º Smolyak + + + El disidente + + + Sargento Gazda + + + Capitán Furtez + + + Sarg. prim. Shveiko + + diff --git a/gamedata/configs/text/spa/st_dialog_manager.xml b/gamedata/configs/text/spa/st_dialog_manager.xml new file mode 100644 index 0000000..32013cf --- /dev/null +++ b/gamedata/configs/text/spa/st_dialog_manager.xml @@ -0,0 +1,993 @@ + + + + Hay un lugar en Zaton donde las anomalías de calor emergían de debajo del agua. Lo llamaban "el Caldero" porque sale vapor y todo eso del suelo. Si el vapor no te da miedo, piénsatelo dos veces. Los stalkers curtidos dicen que ese vapor es por lo menos tan peligroso como una anomalía de calor normal, si no más. Puede que la temperatura sea algo más alta, pero más constante. En cuanto a los artefactos, encontraron de los normales: de fuego. + + + Dicen que hay un sitio estupendo en la cantera con montones de artefactos, aunque tampoco falto de anomalías. Al fondo hay tantas burbujas causadas por las anomalías gaseosas que duelen los ojos hasta llevando una máscara de gas. + + + El Cenizal está en el viejo cementerio que hay cerca de Kopachy. Allí hay muchas anomalías térmicas y algún que otro zombi. La gente procura evitar ese sitio, pero a veces encuentran artefactos en él. + + + Dicen que se han encontrado artefactos en el aparcamiento. Aún quedan vehículos de cuando el primer desastre de Chernóbil; los medidores de radiación se disparan con ellos. También hay muchas anomalías eléctricas. + + + En la Arboleda Pútrida, donde la lluvia ácida ha combado los árboles. Quienes han estado allí dicen que está llena de anomalías de gas. Hay tanto gas en el aire que no se ve nada bien, pero si sabes lo que haces puedes encontrar los artefactos que buscas. + + + Si buscas artefactos, ve a por los de ácido. El mejor sitio para conseguirlos es el Baño de Cemento. No hay mucha competencia: a nadie le gusta ese sitio; está demasiado cerca del edificio Júpiter. + + + Un trozo de la carretera se hundió cerca de la central de Júpiter. Llamaron a ese sitio Bitumen, porque ahí fue donde se fundió el pavimento. Hay muchas anomalías en esa brecha, tanto térmicas como gravitatorias. Y como son dos tipos de anomalías, los artefactos también serán distintos. + + + Hay un puerto pequeño más allá de la cementera; lo llaman la Ciénaga. Ya no es más que una hedionda marisma, y el agua está plagada de anomalías de gas; aunque, más que agua, parece ácido. Se han encontrado artefactos allí, pero el lugar está infestado de monstruos. + + + Busca en la antigua cementera. Hay muchas anomalías, pero merece la pena. En algunos sitios es más fácil encontrar artefactos, pero también hay más competencia. Aquí solo tendrás que lidiar con hámsteres, y eso si bajas al sótano. + + + Deberías buscar por Roblepino. Es esa cosa que crece entre las colinas, por encima de las anomalías de gas. Todo el mundo lo llama así desde que un empollón descubrió que su corteza era una mezcla de roble y pino. Si vas a buscar artefactos por allí, necesitarás protección química. Y bastante munición; las colinas están llenas de perros. + + + No siempre hay que arrojarse a una anomalía para sacar un artefacto. Me han dicho que una vez encontraron un artefacto en campo abierto. Un stalker empezó a tener problemas con su detector y decidió cambiarle las pilas. Nada más hacerlo, el detector captó una señal y ¡bam!, se dio de bruces con un artefacto. Los hay con suerte, ¿eh? Así es la Zona: unas veces te quita y otras te da. + + + Varios stalkers veteranos me han contado que algunos artefactos se alejan de las anomalías. El detector empieza a pitar, pero cuando lo sacas no encuentras nada. Son artefactos "nómadas" que pasan junto a ti, pero no hay que perder tiempo buscándolos porque solo la Zona decide a quién entregárselos. + + + Nadie ha buscado artefactos en Pripyat aún. No conozco a nadie que lleve aquí el tiempo suficiente como para atreverse. + + + Ignoro si alguien conoce los mejores sitios. Pripyat apenas ha sido explorada. + + + Yo miraría en los túneles subterráneos. Dicen que hay un montón debajo de la ciudad. + + + No se sabe gran cosa de este sitio. Lo que cuenta Garry, más que nada. Dice que existe una parra gigante que brota de una anomalía ácida, y que es casi tan alta como un edificio de diez pisos. Igual se está quedando con nosotros, pero yo buscaría artefactos en esa parra. + + + El sitio más seguro es el pantano ácido. Está lleno de anomalías gravitatorias, pero son fáciles de encontrar. No pierdas de vista la superficie del agua, no hay forma de pasarlas por alto. Las anomalías de gas son más peliagudas, porque no hay aire que respirar. Y, créeme, es mejor procurar que no te salpiquen; corroen más que el ácido sulfúrico. + + + La granja quemada que hay sobre la colina está abarrotada de anomalías térmicas. Allí pueden encontrarse artefactos de fuego. Busca en los edificios: los artefactos estarán en el que tenga más anomalías después de una emisión. + + + Seguro que encuentras un montón en las cuevas que hay bajo la granja quemada. Si te paseas por la colina con un detector, no deja de pitar. Llegar hasta ellos es fácil, basta con saltar por el agujero; lo complicado es salir, porque hay muchas anomalías allí abajo. Sobre todo vórtices y ácidas. Incluso hay quien dice haber visto algo parecido a un cometa en ese agujero. No cabe duda de que es peligroso, pero eso significa que habrá todo tipo de artefactos. + + + ¿Has visto alguna anomalía Circo? Es una anomalía Trampolín enorme con dos cometas giratorios; todo un espectáculo. Pero más te vale mirarlo de lejos, porque quema con el infierno y emite montones de anomalías térmicas. También genera muchos artefactos, pero están vigilados por un poltergeist de fuego que churrusca a todo el que se acerca. + + + Si te interesan los artefactos gravitatorios, búscalos en la anomalía Colmillo. No tiene pérdida: las anomalías han arrancado de cuajo la mitad de la colina. Se abrieron varias cuevas en lo que quedaba de ella, y no tardaron en llenarse de snorks. Por suerte, no salen casi nunca. + + + En la Zona, colega, en la Zona. Tú no te rindas. + + + Buena pregunta. ¡Avísame cuando sepas la respuesta! + + + ¿Dónde, cuándo, por qué?... Recuerda: si encuentras una mina de oro, quédatela para ti. + + + ¿Dónde puedo encontrar artefactos? + + + Ya te lo he dicho. + + + No, no sé nada más. + + + Es todo lo que sé. Pregúntale a otro. + + + ¿Qué pasa, colega? + + + Saludos. + + + Hola, stalker. + + + Hola. + + + ¿Qué quieres? + + + ¿Qué? + + + Empieza a hablar. + + + ¡Buenas tardes, mayor! + + + ¡Buenas tardes! + + + Estoy escuchando, mayor. + + + Sí, hola. + + + ¿Qué? + + + ¿Qué tal, hombre? + + + Eh, stalker. ¿A qué vienen esas prisas? + + + Ey. + + + Eh, tío. + + + Ah, hola, camarada. + + + Hola. + + + ¡Eh! + + + ¡Ayúdame, tío! + + + Ayúdame, colega, me estoy muriendo... + + + ¡Necesito asistencia médica! + + + ¡Un botiquín, rápido! + + + Ayúdame, colega... ¡aaah, qué dolor! + + + Dame un botiquín... dámelo ya... + + + Tío... aagh... ¡ayúdame, hombre! + + + Oye, necesito un botiquín... rápido... + + + Ayúdame, stalker... Un botiquín, por favor... + + + ¡Me duele... socorro! + + + ¡Necesito un botiquín! + + + ¡Un botiquín! + + + ¿Has oído lo de esa planta de dragado que hay al este de Skadovsk? Dicen que hay algo raro que brilla por las noches... Es raro hasta para la Zona. No sé si merecerá la pena echarle un vistazo. Podría ser algo valioso, pero ¿tanto como para arriesgar mi pellejo? Ésa es la cuestión... + + + Por allí no hay nada más que trastos viejos. Fíjate en esa columna motorizada del puente Preobrazhensky; está todo oxidado, incluido el propio puente. A muchos les encantaría hurgar en esa zona, de no ser por los snorks y las anomalías... + + + ¿Te has enterado? Sultán quiere pisarle el negocio a Barbas. Skadovsk no es lo bastante grande para él, quiere una tajada aún mayor del pastel... ¡Pero no vamos a consentirlo! Barbas y nuestros chicos les dieron para el pelo. Los matones de Sultán no se asomarán por aquí. + + + Vaya, ¿te has enterado de lo último? Ese granuja de Sultán ha tomado medidas contra Barbas... ¡No sé lo que habrá hecho, pero le ha apretado las clavijas! ¿A dónde vamos a llegar? ¡Como sigan así, Skadovsk acabará convertido en un campamento de bandidos! + + + ¿Has oído hablar del Oasis? Dicen que es un lugar muy difícil de encontrar y que cuando por fin lo consigues resulta aún más difícil entrar en él. Por lo visto, allí hay un lago y si te bañas en él se curan todos tus males y heridas. Pero hablar por hablar es tontería. ¿Te has fijado en la cantidad de stalkers novatos que vienen aquí, al centro de la Zona? Algunos buscan artefactos, otros solo sienten curiosidad, pero la mayoría desea encontrar este Oasis. Dicen que está oculto en algún lugar de esta zona... + + + Dicen que la Zona está a punto de desaparecer... Alguien encontró el Oasis y se llevó su artefacto, el Corazón del Oasis. Y ahora la Zona va a desaparecer en otra dimensión y ningún stalker podrá escapar jamás... No, es coña, colega. Pero sí es verdad que han encontrado un artefacto nuevo. Los científicos están trasteando con él en su búnker. + + + ¿Has oído lo de Topol? Encontró otro estercolero en el que meter a sus chicos y, como era de esperar, fueron encantados. Pero cuando llegaron, un controlador les frió el poco cerebro que tienen. Ahora mismo estarían todos meándose encima en catres de hospital de no ser por un stalker que iba con ellos. Cuando Topol volvió en sí, el stalker estaba agazapado junto al controlador, cortándole las orejas. + + + ¿Has oído hablar del pueblo de Kopachy? Cuando el desastre original destruyó la central nuclear de Chernóbil, esa zona estaba tan mal que decidieron enterrar el pueblo entero. Ahora ya no hay casas allí, solo túmulos radiactivos. Dicen que ya daba miedo antes del incidente; tiemblo al pensar en lo que podría haber por allí hoy en día. Nadie se atreve a ir para comprobarlo. ¡Pero si se equivocan, podría ser el paraíso de los artefactos! + + + Solo dos stalkers en Yanov pueden sentir las emisiones. Nuestro médico Sueldahuesos y Zulu, antiguo miembro de Deber. Lo de "antiguo" en realidad es nuevo... Cuando Deber llegó a la estación de Yanov, ya había luchadores de Libertad allí, y las cosas no tardaron en ponerse feas. Ambas facciones sufrieron bajas; incluso hubo un par de stalkers que recibieron balas perdidas. Entonces Zulu les avisó de que se aproximaba una emisión. Deber y Libertad tuvieron que pactar una tregua y atrincherarse en la estación. Cuando pasó todo, Zulu dejó Deber y se instaló en la torre junto a la estación. + + + La gente cuenta todo tipo de historias raras; no te creas ni la mitad. Hoy en día, si pegas una patada a una piedra en la Zona salen cien charlatanes. Pero lo curioso es que algunos stalkers de la estación de Yanov afirman haber visto ovnis. Unos dicen que son como platillos volantes de unos cinco metros de diámetro. Otros afirman que parecen aviones porque eso es lo que son. Lo único seguro es que uno de los testigos es piloto y dice que no ha visto nada igual en toda su vida. + + + Últimamente no ganamos para disgustos. Los hombres buenos desaparecen uno detrás de otro, y luego encontramos sus cadáveres sin una sola gota de sangre. Tienen que ser esos malditos chupasangres. ¿Quién si no? ¡Me encantaría encontrar su guarida y llenarlos de plomo! Ya mismo tendremos que empezar a salir por parejas. + + + Tengo un nuevo trabajito para ti. Los tíos de Libertad le han echado el guante a la PDA del legendario fundador de Deber. ¿Y sabes qué? Resulta que engañó a sus hombres cuando les dijo que los líderes militares los habían abandonado en la Zona. ¡Se lo inventó para poder formar su propia facción! Pero los mierdas como esos no duran en la Zona. Nuestro héroe no tardó en toparse con una burbuja espacial y la palmó. Eso fue lo que pasó... ¡Y pensar que estuve a punto de alistarme en Deber! Que se las apañen sin mí. + + + El nuevo escuadrón de Deber ha aparecido de la nada. Piénsalo: un grupo de luchadores de Deber salen de Yanov y cuando vuelven son el triple. ¿Es que se clonan o qué? Aunque no te puedes esperar menos de Deber. ¡Lo único que los diferencia entre sí es el rango! + + + El nuevo escuadrón de Deber ha aparecido de la nada. Piénsalo: un grupo de luchadores de Deber salen de Yanov y cuando vuelven son el triple. ¡Parece como si echaran brotes o algo así! ¡Con toda la hierba que fuman, no me extrañaría que acabasen echando raíces y reproduciéndose como las plantas! + + + ¿Conoces a Gonta y sus muchachos? Cuando Danila desapareció e hirieron a Cangrejo, pasaron una mala racha, pero parece que ya se han recuperado. Se llevan muy bien con los científicos; hasta están recogiendo datos para ellos. Buen rollo, ¿eh? Un trabajo fácil y permisos oficiales prácticamente garantizados. + + + ¿Has oído hablar de los stalkers Mitay, Torba y Osopardo? Dicen que trabajan recogiendo datos para los científicos. ¿Para qué diablos los querrán? En mi opinión, esos empollones no pretenden nada bueno. En fin, al menos les va bien. Hasta puede que consigan sus permisos oficiales algún día. + + + ¿Conoces a Espartaco y a su gente? Pues ya no volverás a verlos por Skadovsk: ahora están vigilando el búnker de los científicos. Lógico, si pueden deshacerse de mutantes y mantienen a raya a los bandidos. La ciencia es una causa digna que requiere paz y tranquilidad. + + + ¿Has visto a esos mercenarios cuadrándose en la subestación? Últimamente no, ¿eh? Se han ido a Júpiter para proteger el búnker de los científicos. Antes había otros mercenarios vigilando aquello, pero por lo visto les pasó algo. ¡Yo creo que eso es bueno para el negocio! Unos mercenarios desaparecen y otros ocupan su lugar... Unas cuantas rondas más de lo mismo y Zaton estará libre de mercenarios al fin. + + + Se comenta que el búnker de los científicos está custodiado por los valerosos guerreros de Deber... Me pregunto qué les han prometido. ¿De verdad creen que esos batasblancas les van a pagar con armas de plasma para ir a cazar ratones al campo? Pobres ilusos... + + + Dicen que el búnker de los científicos está siendo custodiado por Libertad. ¿No temen que sus especímenes se volatilicen... literalmente? El lado positivo es que si alguien intenta atacar el búnker, ¡primero tendrían que pasar por una cortina de humo! ¡Jo, jo, jo! + + + ¿Has visto Júpiter, la central de radioelectrónica? Qué sitio más siniestro. Nadie sabe lo que pasa en su interior. Hay anomalías y mutantes como en todas partes... pero sigo sin atreverme a ir. Algo me dice que ese sitio es peligroso. + + + Oye, ¿no eres tú quien descubrió a ese médico de Skadovsk? Pues te lo agradezco de veras. Yo podría haber sido su próximo paciente... Todos creímos que eran los monstruos, pero parece que algunas personas pueden ser igual de malas. O pisas o te pisan; vaya mundo, ¿eh? + + + Debería preguntártelo yo a ti. Cuando te metiste en los túneles que hay bajo Júpiter, oímos rumores de que habías llegado al centro de la Zona. Se lió un buen follón; había al menos una docena de personas dispuestas a seguir tus pasos. Pero Nitro les quitó las ganas; dijo que las entradas a los túneles se habían cerrado y no se podían abrir. Hay algunos desesperados que quieren volarlas en pedazos, pero todavía no saben de dónde van a sacar la dinamita ni cómo van a respirar cuando estén ahí abajo. + + + ¿Has oído lo último de Garry, el stalker que solía trabajar para los científicos? Ya no es un intruso; ¡lo creas o no, ha conseguido un permiso oficial para estar en la Zona! Crees que debería haberse largado con su botín, ¿no? Pues qué va, el muy chiflado se fue a Pripyat. Todos pensamos que la palmaría como los demás, pero nada más lejos. Lo consiguió, pero su hazaña no sirve de mucho a los stalkers. Se topó con unos militares. No tuvo problemas gracias al permiso, pero el lugar sigue estando vedado para los demás stalkers. + + + Bueno... Libertad y Deber han vuelto a enfrentarse; esta vez ha sido por un alijo de suministros. Dicen que había equipo suficiente para pertrechar a tres divisiones de infantería. No sé de quién era, pero desde luego la lucha fue de campeonato. Se movilizaron todos los stalkers de Yanov, pero por suerte se mantuvieron al margen, de lo contrario esto sería una auténtica batalla campal. Creo que Deber se llevó la peor parte, porque ahora la zona está vigilada por escuadras de Libertad. + + + Libertad y Deber han vuelto a enfrentarse; esta vez por un alijo de suministros. Dicen que había equipo suficiente para pertrechar a tres divisiones de infantería. No sé de quién era, pero la lucha fue de campeonato. Se movilizaron todos los stalkers de Yanov, pero por suerte se mantuvieron al margen; si no, esto sería una batalla campal. Libertad se llevó la peor parte, porque ahora la zona está vigilada por escuadras de Deber. + + + Hace poco ocurrió algo. Un grupo de stalkers estaban explorando los túneles de Júpiter y se toparon con algo... más bien con alguien. Primero desenfundaron a toda leche y luego les empezó a caer encima todo tipo de trastos. No tienen ni idea de lo que pasó, pero perdieron a dos hombres allí dentro. + + + He oído que han encontrado una especie de mutante asqueroso en los túneles que hay al norte de Júpiter. Trapper envió a un stalker a investigar; resulta que era una guarida de zumbadores. Sí, "era", porque aquel stalker se los cargó a todos. Él solito... Te pareces a él, aunque era un poco más alto y siempre llevaba un lanzagranadas. + + + Es el fin de los stalkers... La Ciénaga no para de escupir monstruos. Varios stalkers los vieron en la cementera cargando con uno de los nuestros. Había por lo menos una docena y los cabrones eran enormes. Parecían chupasangres, pero eran el doble de grandes y mucho más rápidos. Esperemos que a Trapper se le ocurra cómo acabar con ellos... + + + ¿Has oído hablar de los chupasangres de pantano? ¿Los que hay en la Ciénaga? Pues son historia. Trapper fue a por ellos... Bueno, él no, contrató a unos stalkers. Dicen que reunió un grupo de unos diez hombres y peinaron el pantano cargándose a todo bicho viviente. Allí ya no queda ni una puñetera rana. + + + Cuando corrió la voz de que había una quimera por aquí, no tardó en aparecer alguien y cargársela. Los mutantes solían matar stalkers a puñados, pero parece que al fin estamos espabilando. Tengo entendido que el tipo era un cazador experto, y había matado a más monstruos que mosquitos tú y yo juntos en toda nuestra vida. + + + ¿Has visto a qué clase de individuos recluta Libertad hoy día? Conocí a un tal Pedernal que presumía de mil aventuras y trofeos... y resulta que no era más que escoria. Dejó que su compañero muriese en una anomalía y se largó con su botín. Luego salieron a relucir algunos de sus trapos sucios en Zaton: al parecer puso a un grupo de cazadores en bandeja a una quimera. Tenía un buen concepto de Libertad... ahora prefiero no afiliarme a ninguna facción antes que tener amigos así. + + + Pues se han cargado a una quimera en Zaton. Los muchachos de Gonta, ayudados por un stalker desconocido. Espera, fuiste tú, ¿no? ¿Por qué no me cuentas cómo fue? Por cierto, un millón de gracias; ¡un mutante antropófago menos del que preocuparse! + + + No sé si te interesará, pero por aquí hay un tal Noé, el tipo más grillado que te puedas encontrar. Tiene una barcaza destartalada... creo que se la construyeron varios ilegales en una semana. Ten cuidado con él, es de los que primero dispara y luego ni se molesta en preguntar. Yo lo mandaría a hacer puñetas. + + + ¿Conoces a un tal Nimble? Sí, un tipo escurridizo. Vende las mejores armas de por aquí, eso seguro. Me pregunto cómo las pasará tan fácilmente. ¿Cómo transportas una Vintar sin que nadie se dé cuenta? ¿Dónde la guardas? Ese tío es un puñetero mago, te lo digo yo. + + + Dicen que Sultán está de mierda hasta el cuello. Intentó cargarse a Barbas para quitarle el negocio, pero ha mordido más de lo que puede masticar y se ha atragantado. Ahora lo tiene chungo, su propia gente le mira mal. Lo cierto es que ha perdido bastante influencia. + + + Dicen que Sultán tiene a Barbas cogido por las pelotas y le está exprimiendo el negocio. Eso es bueno, y Sultán se ha vuelto influyente, pero lo mejor es que ahora podemos llevar Skadovsk a nuestro modo. Va a ser genial. ¿Quieres cubrirte ante una emisión? ¡No hay problema si pagas el peaje! + + + Eh, tío, ¿has oído hablar del Oasis? Imagina un sitio en el que todos tus males y heridas se curan al instante. Debe de tratarse de un truco o de magia... pero yo creo que es otra cosa. El Oasis está en boca de todos, pero ya nadie habla del Genio. Bueno, quizá el Oasis sea el deseo de alguien que se ha hecho realidad. + + + Los empollones dicen que se ha recuperado un artefacto en el Oasis. Y hay más: ¡dicen que cuando lo estudien emplearán su investigación para curar el cáncer! ¡Lo que yo te diga! + + + La misma mierda cada día... Todo el mundo cuenta historias sobre el centro de la Zona. Como ésa del Oasis, un sitio que restaura al instante toda tu energía y te cura cualquier herida. No es más que una sarta de pamplinas, pero al menos entretiene, sobre todo cuando te lo describen. Ay, ojalá existiese un lugar parecido... habríamos salvado a muchos de los nuestros. + + + He oído por radio macuto que han encontrado el Oasis. No creí que existiera, pero los hechos son los hechos. Encontraron un artefacto en él. Los científicos lo están estudiando; quizá puedan usarlo para fabricar algún dispositivo de curación ultrarrápida... Nos vendría la mar de bien. + + + Kopachy. Nada nuevo para la Zona, pero sí para mí. Imagina todo un pueblo hundido en el suelo, solo sobresalen los tejados... Su existencia se remonta a 1986... Las casas emitían tanta radiación que tuvieron que enterrarlas. Es escalofriante... + + + ¿Sabes cómo acabamos viviendo con Deber en Yanov? Fue por Zulu. Entonces estaba en Deber y tenía un don inaudito para detectar emisiones... Nosotros llegamos primero a Yanov; tras los stalkers, claro. Apenas tuvimos tiempo de encendernos un pitillo cuando aparecieron esos militares pegando tiros. La última vez que vi una matanza semejante fue hace más de un año, en el vertedero. Hubo montones de muertos en ambos bandos. Nuestro experto en emisiones fue uno de ellos, que Dios lo acoja en su seno. Y entonces Zulu dijo "¡Una emisión! ¡A cubierto!". ¿Qué íbamos a hacer, echarlos a patadas y dejar que muriesen? Aunque fueran de Deber, eran humanos. Así vivimos ahora: discutimos de vez en cuando, pero cuando llega una emisión nos sentamos juntos a esperar. Zulu dejó Deber. Ahora vive como ermitaño cerca de Yanov. + + + No es nada nuevo ni ningún secreto, pero Cardán, el técnico, acabará muriendo de una cirrosis. Dicen que empezó a beber cuando llegó a Skadovsk, solo de vez en cuando, para mitigar los efectos de la radiación. Pero cuando sus dos amigos murieron, se perdió en el fondo de la botella. Supongo que estaban muy unidos... + + + Te contaré una historia curiosa. Conozco a un tío que dice haber visto un ovni sobrevolando Yanov. La Zona vuelve tarumba a la gente, ¿sabes? Como si no bastara con poltergeists y controladores, ahora recurren a los viejos cuentos de platillos volantes. Por lo menos no hay majaras exorcizando malos espíritus del vodka. Imagina cómo sería: "¡Oh, Señor, libera esta bebida de los malos espíritus!"... Je, je, je. + + + ¿Has oído hablar del pueblo de Kopachy? Cuando el desastre original destruyó la central nuclear de Chernóbil, la zona estaba tan mal que decidieron enterrar el pueblo entero. Ahora ya no hay casas allí, solo túmulos radiactivos. Dicen que ya daba miedo antes del incidente; tiemblo al pensar en lo que podría haber por allí hoy en día. Nadie se atreve a ir para comprobarlo. + + + No es ninguna novedad, pero quizá no te hayas enterado. No convivimos con Libertad porque nos guste dormir calentitos. Son las circunstancias. Cuando llegamos aquí, Libertad cayó sobre nosotros... Hubo muchas bajas en ambos bandos, aunque poco a poco fuimos ganando terreno a esos anarquistas... Pero en el fragor del combate, Zulu percibió la llegada de una emisión. Él nunca se equivocaba... No tuvimos más remedio que hacer un alto el fuego. Lo que no entiendo es por qué Zulu se fue de Deber tras el incidente... + + + Hace poco nuestros exploradores informaron del avistamiento de un objeto volador no identificado sobre la estación de Yanov; un ovni, vaya. Antes de que sueltes una estupidez, un ovni no tiene por qué ser un platillo volante pilotado por marcianos. Hasta que alguien lo identifica puede ser cualquier cosa, desde un trozo de cartón hasta una sonda meteorológica, ¿Estamos? + + + Fuiste tú el que le trajo la PDA a Loki, ¿no? Tío, vaya movida. El legendario fundador de Deber, el general Tachenko, engañó a sus propios soldados como a chinos. Averió la radio para que no pudieran contactar con el exterior, formó su propio grupo de cabezas de chorlito... ¡y va y la palma como un subnormal en una condenada burbuja espacial! ¡Surrealista! + + + ¿Has visto al nuevo escuadrón de esos militares? No pueden ser refuerzos de su base; el adoctrinamiento todavía no ha hecho mella en su sentido común. Pero están muy bien entrenados para ser meros stalkers. A saber. ¿Serán de Monolith? ¡Sí, sé que parece un disparate! + + + ¿Has visto a nuestros nuevos soldados? Ah, que los has traído tú. Pues te has salido. Son alucinantes, aunque están algo tensos... Es igual, un par de meses con nosotros y se calmarán. Seguro que les gusta nuestra forma de vida y se vuelven como nosotros. + + + Tenemos reclutas nuevos: un escuadrón de antiguos soldados de Monolith. Nada de novatos, estos tíos están preparados. Aunque claro, todavía no se han hecho a la idea de que ya no pertenecen a Monolith. Pero no pasa nada, tenemos un cursillo de emergencia para arreglar eso y mucho más. + + + Dicen que Libertad ha reclutado soldados que pertenecían a Monolith. Cuesta creerlo, pero sí que tienen un nuevo escuadrón, y desde luego no son de fuera de la Zona. Supongo que están desesperados... o eso, o se les ha ablandado el cerebro con tanta droga. ¿Qué será lo próximo, una brigada de zombis? ¿Un batallón de zumbadores? + + + Pronto restauraremos la ley y el orden. Deber ha tomado posiciones cruciales. Nos hemos establecido en Yanov y hay un destacamento de guardias protegiendo el búnker de los científicos en todo momento. Ya es hora de que Libertad haga las maletas y se largue; los anarquistas no son bienvenidos aquí. + + + Ver para creer: Cardán está sobrio. ¿Te puedes creer que ha decidido dejarlo? La gente de Skadovsk le preguntó si había llamado al número de Alcohólicos Anónimos, pero él respondió: "El único número que he necesitado ha sido el sesenta y dos". + + + Creo que fuiste tú quien ayudó a nuestros muchachos a conseguir el trabajo de vigilantes de los científicos, ¿no? Te lo agradezco. Fue bueno ver a nuestros hombres en el búnker en vez de a esos mercenarios. + + + A ver... Nos estamos poniendo las botas con el escondrijo de Deber. Ahora lo usaremos para lo que fue ideado: como prisión para sonsacar a la escoria de Deber todos sus secretos. Je, je. Ah, gracias por el soplo sobre el sistema de alarma; sin refuerzos no habríamos durado mucho. + + + ¡Otra victoria para Deber! Esos anarquistas se han confiado demasiado. ¿Creían que podrían colarse en nuestro almacén secreto como si tal cosa? ¡Y un cuerno! Los cogimos por sorpresa y los aplastamos como a cucarachas. + + + Todos saben que los de Libertad son unos canallas, pero hemos descubierto algo sobre uno de esos pirados. En Libertad se hacía llamar Pedernal, pero antes era un stalker llamado Urraca. Al menos ése era su nombre cuando llegó a Zaton y casi consigue que unos mutantes se comieran a unos cazadores. Por su culpa estuvieron a punto de morir despedazados por una quimera; el muy cabrón aprovechó para desvalijarlos y huir a Yanov. Cuando se unió a Libertad, empujó a su compañero a una anomalía para quedarse con su artefacto. Así las gastan los de Libertad. + + + La nueva sensación en Zaton es el proyecto de construcción naval de un stalker llamado Noé. Experimentado, motivado y 100% pirado. Su última idea disparatada consiste en salvar a todos los stalkers del apocalipsis. Pretende hacerlo reformando una vieja barcaza para hacer un "arca". Chiflado, te lo digo yo. Si decides pasarte a verla, procura no ofender a Noé. Si no se cabrea, es bastante inofensivo. + + + ¿Conoces a Nimble? Ahora mismo está en Skadovsk. Es un verdadero profesional, puede conseguirte todo lo que necesites. Bueno, casi todo. Últimamente trabaja con armas y trajes, ¡pero siempre con lo mejor! Artículos de especialista, diseños experimentales, productos hechos a mano... Su género no es barato, pero es natural: la exclusividad se paga. + + + ¿Sabías que Piloto ha estado siguiendo una nueva ruta entre Zaton y Júpiter? Antes tardaba mucho porque tenía que subir la colina a pie y eludir las anomalías, pero ahora hace el viaje sin apenas sudar, como un paseo por el parque y en la mitad de tiempo. Piloto admite que el mérito no es suyo; fue un stalker quien le mostró la ruta en sus mapas. Por un precio, claro, pero tampoco te creas que fue muy elevado. + + + A decir verdad, no mucho. + + + Siempre hay algo nuevo en la Zona, mires donde mires. + + + Bueno, ahora estás aquí. Eso es una novedad, ¿no? + + + ¿Qué hay de nuevo en la Zona? + + + No se me ocurre nada más que pudiera interesarte. + + + Te lo diría con gusto, pero no he oído nada más. + + + Te he contado todo lo que sé. + + + Mmm... Quizá deberías preguntarle a Urogallo, en Skadovsk, si necesita ayuda; por lo visto, los stalkers desaparecen sin dejar rastro. Todo el mundo culpa a los chupasangres porque cuando encuentran los cadáveres no les queda una gota de sangre. Pero esto ya es demasiado... Casi todos los días desaparece alguien. Los chupasangres no actúan así... Urogallo ha contratado a un cazador experto para rastrear a estos monstruos. + + + Si un stalker necesita dinero, tiene dos alternativas: encontrar artefactos y venderlos a los comerciantes por 30 kopecks de rublo, o trabajar para los científicos. Siempre tienen algún encargo para los stalkers, ya sea procurándoles artefactos raros o cadáveres de mutantes. Pero por encima de todo, si les caes en gracia podrían darte un permiso para la Zona, oficial y legítimo. ¡Imagínate pasando por un control militar con su botín en la mochila y saludando! ¡Un sueño hecho realidad! En fin, el búnker de los científicos está al oeste de la estación Yanov. Ya han contratado a un stalker, quizá puedan contratar a otro como tú. + + + Tu éxito depende de lo que hagas. Si no te importa cazar mutantes, te lloverán las ofertas. Pásate por el sótano de Yanov y pregunta por Trapper; paga bien por limpiar la zona de mutantes, pero no dispares al primer pseudoperro que encuentres. Trapper paga por monstruos concretos que interfieren en la recuperación de artefactos o frecuentan los lugares que los stalkers utilizan para esconderse de las emisiones. + + + Los tipos como tú que vienen a Skadovsk suelen visitar a Barbas. Paga bien a cambio de artefactos... pero te diré algo: no tiene ojo para los negocios. No está dispuesto a compartir beneficios con los poderosos... y eso le acabará costando caro, ¿sabes lo que quiero decir? + + + Si necesitas pasta, habla con Búho. Vende todo lo que un hombre de verdad necesita en Skadovsk: información, armas, lo que sea. Si tienes algo valioso, como un documento o la PDA de un stalker, llévaselo a Búho y cobrarás. También puedes sacar más cumpliendo sus órdenes personales. Pregúntale si necesita que le hagan algún encargo. + + + Deberías hablar con Gonta, verás la historia que te cuenta. No hace mucho apareció una quimera en Zaton, así que Gonta y sus muchachos fueron a por ella. Se dividieron en dos grupos para seguirle el rastro y enviaron a uno de los cazadores a buscar la guarida de la chupasangre. Cuando por fin la encontraron andaban cortos de hombres, así que se les unió otro stalker, uno llamado Urraca. No sé exactamente cómo fue, pero parece que Urraca se largó en cuanto vio a la quimera. Gonta se salvó por los pelos y pudo sacar a uno de sus hombres, muy malherido. Pero la quimera anda suelta y necesitan gente para acabar con ella. + + + Eso es fácil: si quieres ganar pasta gansa, Sultán es tu hombre. Es el jefe local, si quieres ganarte bien la vida, te encontrará trabajo. + + + Si se te da bien la búsqueda de artefactos, habla con Barbas. Aquí todos le respetan. Es el único hombre de Skadovsk que te pagará bien por tus artefactos. Tiene contactos para sacarlos fuera de la Zona. Además, es un buen hombre, ¿sabes? Siempre está ahí para darte un consejo o un trabajo decente. + + + Hay un comerciante llamado Búho en Skadovsk, un tipo algo desagradable. Siempre se está quejando de que Barbas consigue todos los artefactos, pero si necesitas dinero ve a ver qué puede ofrecerte. Esa comadreja vende mucho más que munición. Puede darte información, venderte sus cosas, comprarte las tuyas y pagarte por todo lo que pueda interesarle. Ve a verle, está en la segunda cubierta de popa. Seguro que llegáis a un acuerdo. + + + Habla con Vano, suele estar en el bar de Yanov. Está metido en un apuro con unos bandidos; ha intentado saldar su deuda en varias ocasiones. Tiene experiencia y todo eso, es capaz de encontrar anomalías con los ojos cerrados... y aun así no para de meterse en líos. Más de uno le ha sugerido que se largue; la mafia no lo encontraría en la Zona. Pero es demasiado orgulloso para huir y no hay mucha gente dispuesta a ayudarle con su problema con los bandidos... + + + Déjate de trabajos, tío... Los bandidos están descontrolados; han capturado a Mitay y exigen un rescate. Mitay fue uno de los primeros stalkers de Yanov; él construyó este sitio para que la gente pudiera protegerse de las emisiones, y ahora que necesita ayuda nadie mueve ni un dedo. Libertad y Deber están demasiado ocupados sacándose los ojos mutuamente... ¡pero los demás deberían hacer algo! Ah, para qué engañarnos... Ni siquiera los hombres de Mitay saben cómo liberarlo. Si quieres ayudarles, habla con Osopardo; está en el bar de la estación. + + + Nitro, el técnico de Yanov, necesita materiales. Por si no lo sabías, se le dan muy bien las armas y la electrónica. Pero a veces el talento no basta; necesita materiales adecuados. El problema es que ya no queda nada en los sitios seguros, y los demás son demasiado peligrosos. Nitro espera encontrar a alguien dispuesto a correr el riesgo, pero seguro que paga generosamente. + + + Me han dicho que el tío Yar de la estación de Yanov andaba buscando un stalker para que le ayudase sin hacer preguntas. No entiendo por qué no se lo pide a sus colegas de Libertad... En fin, el viejo es de fiar, deberías hablar con él para ver si llegáis a un acuerdo. + + + Mmm... No conozco a nadie parecido. + + + A mí también me gustaría saberlo. + + + ¿Cómo demonios quieres que lo sepa? + + + ¿Sabes de alguien que pueda darme trabajo? + + + Eso ya me lo has preguntado. + + + No podría contarte nada nuevo. + + + Ya tienes mi respuesta. + + + Vale, olvídalo. + + + Me gustaría preguntarte una cosa. + + + Pregunta. + + + Pide por esa boca. + + + Dispara. + + + Te escucho. + + + ¡Socorro! + + + Toma este botiquín. + + + Lo siento, no tengo nada. + + + Entiendo. + + + ¿Qué tienes entre manos? + + + ¿Puedo acompañarte? + + + Claro. Cuantos más, mejor. + + + Lo siento, yo voy por libre. + + + Pues venga, vamos. + + + Tengo que ir a un sitio. ¿Me llevas a cambio de dinero? + + + Claro. ¿Adónde tienes que ir? Elige. + + + Vale, en marcha. + + + He cambiado de idea. + + + No, tengo asuntos importantes que atender. + + + Nada, estoy descansando. + + + No mucho, relajándome un poco. + + + ¿Qué crees que estoy haciendo? Nada, joder. + + + Persiguiendo a mutantes. + + + Ando tras un par de gilipollas. Panda de retrasados... + + + Siguiendo a unos mercenarios. Menudos cabronazos. + + + Voy tras un grupo de fanáticos. Soldados de Monolith, en concreto. + + + Ando tras unos zombis. Hay demasiada escoria suelta. + + + Vale. Te costará + + + ¿Sabes? Me lo he pensado mejor. + + + No tengo tanto. + + + Oh, nada, supongo. + + + Estoy siguiendo a unos mutantes. Alguien tiene que ponerlos en su sitio. + + + Voy tras unos matones de por aquí. + + + Ando tras unos mercenarios. Tienen una deuda pendiente. + + + Ando tras esos pirados de Monolith. + + + Intento localizar a unos morosos. + + + No hago nada ahora mismo. + + + Sigo a unos mutantes. Quiero echar a esa escoria de aquí. + + + Estoy de misión; sigo a un grupo de bandidos. + + + Los mercenarios son mi objetivo. Ando tras la pista de un grupo. + + + Sigo a un pelotón de Monolith. + + + Persigo a esos panolis... Esa gente de Libertad. + + + Busco artefactos. + + + No busco setas, precisamente... sino artefactos. + + + Ando buscando artefactos. + + + Me dirijo a la anomalía Caldero, la que está junto a la pequeña arboleda. + + + Voy hacia el lago norte. Quiero alejarme de la península una temporada. + + + Voy más allá del lago norte; por ahí hay un camping apañado. + + + Me dirijo al bosque que hay más allá del lago norte. + + + Voy a un pequeño bosque al oeste del aserradero. + + + Voy rumbo a la colina que hay al oeste del pantano. Ahí no hay ni rastro de la contaminación del pantano. + + + Me dirijo al complejo de la antena. Hay un sitio bonito al oeste de allí. + + + Voy al bosque que hay al oeste de Roblepino. Vente, si quieres, no me importa tener compañía. + + + A una arboleda entre el Bosque de Hierro y los talleres. + + + Hacia el gran puente. Se supone que hay un sitio seguro y solitario al este de ahí. + + + Rumbo a un aparcamiento, al sur de la vieja barcaza. + + + Nada especial, me gusta viajar. Iba a acampar en una colina al este de Skadovsk. + + + A una arboleda entre Izumrudnoye y la gasolinera. + + + A una bifurcación que hay junto a la planta de tratamiento de basuras. + + + A la anomalía Caldero. + + + Al puesto del guardabosques. Allí hay un bloque de edificios; ya lo habrás visto. Uno de ellos tiene calderas. No sé qué clase de negocio habrá dentro. + + + A una arboleda al oeste de la granja quemada. + + + A una arboleda al este de la anomalía Caldero. + + + A un montículo pasado el lago norte. + + + A una pequeña arboleda al sur de la granja quemada. + + + Voy rumbo al oeste de Skadovsk… De donde vienen los conductos. + + + Me dirijo a un punto intermedio entre Skadovsk y la planta de dragado. + + + A un pantano cerca de la vieja barcaza. + + + A un arroyo cerca de la anomalía Cicatriz. + + + A la gasolinera. + + + A los barrancos de Roblepino. + + + Quiero buscar artefactos en la anomalía Garra. + + + Me dirijo a una colina al oeste de la anomalía Caldero. + + + A la anomalía Bosque de Hierro. + + + Voy a la anomalía Bosque de Hierro a buscar artefactos. + + + Voy al pantano. No será fácil respirar con tanto gas, pero los artefactos que hay por allí compensan. + + + Me dirijo a los talleres de la subestación. Dicen que es un buen lugar para esconderse de las emisiones, así que voy a probar. + + + Hay un aserradero cerca, ¿sabes? Ése es mi destino. Quiero comprobar si hay algo de valor. + + + Me apetece tomarme un descanso en el complejo de Izumrudnoye. Ah, seguro que está muy bien... ¡para jabalíes y cerdos mutantes! ¡Ja, ja! Bueno, seguro que puedo acampar. + + + A un puente. Creo que viene marcado como Preobrazhensky en el mapa. + + + A la planta de dragado. Seguro que aún hay cosas de valor por ahí. + + + Me dirijo a la vieja barcaza. + + + Quiero pasar por la granja quemada, a ver si han aparecido objetos nuevos. + + + A la meseta sur. + + + A la grieta que hay junto a la gasolinera. + + + Voy al complejo de la antena de Krug. Necesito un lugar a salvo de emisiones. Lo malo es que dicen que hay muchos monstruos por allí. + + + Voy al complejo de la antena de Krug. Necesito un lugar a salvo de emisiones. Lo malo es que dicen que hay muchos monstruos por allí. + + + Voy a buscar artefactos cerca de Roblepino. Esperemos que no vengan memos a molestar. + + + Al pozo negro... Ya sabes, a la planta de tratamiento de basura. Es un buen sitio para huir de las emisiones. + + + Voy al embarcadero del lago norte. Una vez allí, ya veré. + + + Me dirijo al muelle, donde las grúas. No es mal sitio para acampar. + + + Tengo pensado ir a la anomalía Caldero a buscar artefactos. Espero que mi atuendo soporte esas temperaturas. + + + A la anomalía Cicatriz. + + + Quiero comprobar si mi equipo es ignífugo y buscar artefactos, todo ello en la anomalía Circo. + + + Al puesto del guardabosques. + + + Voy a acampar en Shevchenko. Está a salvo de emisiones y allí es difícil que ataquen los mutantes. + + + Voy a acampar en Shevchenko. Está a salvo de emisiones y allí es difícil que ataquen los mutantes. + + + Me dirijo al muelle, donde las grúas. No es mal sitio para acampar. + + + Quiero deshacerme de mi botín y refrescarme el gaznate. Skadovsk es el lugar idóneo. + + + Voy al punto de control del ejército, junto a la central de Júpiter. + + + Al almacén de contenedores. + + + Me dirigía a un enclave muy discreto entre el almacén de contenedores y el túnel sur. + + + A la estación de Yanov, a descansar por fin. + + + Al túnel que hay al norte de Kopachy. + + + Voy a un sitio espeluznante: el pueblo de Kopachy... o lo que queda de él. Sí, voy provisto de antirradiaciones y munición. ¡Voy a necesitarlo! + + + A la fábrica de cemento. Un buen punto de observación. ¡Nadie puede vigilarte desde arriba! + + + A la fábrica de cemento. Quiero echar un ojo al sótano. + + + A la subestación cerca de Yanov. + + + Me dirijo a un lugar cerca del túnel ferroviario sur. + + + Voy a un estanque refrescante, cerca de la central de Júpiter. + + + Voy al complejo Volkhov AA. Quiero cargarme a unos zombis. + + + Al búnker. Ya sabes, el del complejo Volkhov AA. + + + A la arboleda anómala cerca de la cantera. A ver si encuentro un par de artefactos. + + + Voy a la cantera, donde las furgonetas de los obreros. + + + Hay un sitio entre la cantera y la estación de Yanov. Quiero quedarme allí un tiempo. + + + Me dirijo al túnel este, el que pasa bajo la central de Júpiter. + + + A la anomalía Bitumen. A ver cómo aguanta mi traje el fuego. + + + Voy a la anomalía Plavni a buscar artefactos. Tengo suficiente antídoto; lo que me preocupa son los monstruos. + + + Al complejo de ventilación, entre la fábrica y el almacén de contenedores. ¿Por qué? Pues... Yo qué sé... + + + Voy a los talleres de Júpiter. A lo mejor averiguo a qué viene esa mala fama. + + + Voy al mismísimo fondo de la cantera. Los stalkers dicen que hay muchos artefactos por ahí. + + + Al aparcamiento de los vehículos viejos. Busco artefactos con anomalías eléctricas. + + + Hay un pequeño enclave situado entre el complejo Volkhov AA y el almacén de contenedores. Ése es mi destino. + + + Al búnker de los científicos. + + + A la torre de refrigeración, al noroeste de la estación de Yanov. + + + A la central de Júpiter, pero no tengo intención de entrar. Me pasaré por los edificios de administración, a ver qué opciones tengo. + + + Voy a la anomalía Cenizal, pasado Kopachy. + + + Voy a los talleres de Júpiter. Dicen que ha caído un helicóptero por esa zona; me gustaría ir a echarle un ojo. + + + Voy al tren dilapidado que hay entre el complejo Volkhov AA y el aparcamiento. + + + Voy al túnel sur para estar a salvo por si hay una emisión. + + + Voy a un sitio que hay entre Yanov y Kopachy. + + + Voy a un lugar que hay cerca del canal, al sur de la fábrica de cemento. + + + Voy a un lugar que hay cerca del canal, al norte de la central de Júpiter. + + + Voy a echar un vistazo a la cantera. + + + Voy a echar un vistazo a la cantera. + + + Voy a inspeccionar la zona que hay al norte de Yanov. + + + Hacia el complejo Volkhov AA. Hay un sitio estupendo para acampar entre el complejo y el pueblo de Kopachy. + + + Oh, viajo, sin más... Voy rumbo al almacén de contenedores. + + + Estoy supervisando la zona. Ahora iba a comprobar qué hay al sur del punto de control militar. + + + A la pista de aterrizaje, la que hay entre la fábrica y el almacén de contenedores. + + + Voy rumbo a un lugar al sur de la estación de Yanov, junto a las vías del tren. + + + A un sitio al norte de la estación de Yanov. + + + A la arboleda anómala. + + + A un lugar al sur del complejo AA. + + + Al estanque refrescante, justo al lado de la anomalía Baño de Cemento. + + + Voy a inspeccionar los alrededores de la central. + + + Voy a inspeccionar los alrededores de la central. + + + Al patio que hay tras la lavandería. + + + A la lavandería, el lugar más seguro de la zona. + + + Al hospital. Espero no cruzarme con esos lunáticos de Monolith de camino... + + + A la librería. He oído que es un lugar bastante protegido de las emisiones. + + + Voy a ver esa atracción local: el símbolo de la Amistad sin Fronteras. No está lejos de la librería. + + + A la vieja tienda de ultramarinos. No es que vayas a encontrar pan recién hecho, pero está bien para cobijarse de una emisión. + + + A la tienda de Berezka. + + + Al viejo jardín de infancia. + + + A la plaza del cine, cerca del monumento a Prometeo. + + + Iba a la escuela. Dicen que está plagada de monstruos, pero servirá en caso de que haya emisiones. + + + Iba a la vieja estación de servicio. Se supone que hay una anomalía en la primera planta y puede que también artefactos. + + + Estoy explorando esta parte de la ciudad. Ahora iba a la vieja tienda de ultramarinos. + + + Estoy explorando esta parte de la ciudad. Ahora iba a la vieja tienda de ultramarinos. + + + Estoy supervisando el área. Ahora quiero echar un ojo al edificio que hay tras el bloque de apartamentos. + + + Quiero registrar el centro de ocio público. Yubileiny, creo que se llama. + + + Ando buscando anomalías por aquí. He oído que hay una anomalía de fuego en un patio, al oeste del jardín de infancia. + + + Oh, nada, recorriendo la ciudad. Iba al bloque de apartamentos. + + + Oh, nada, recorriendo la ciudad. Iba al bloque de apartamentos. + + + Oh, nada, recorriendo la ciudad. Iba al bloque de apartamentos. + + + Ando de un lado para otro. Ahora iba al puerto fluvial. Espero no cruzarme a esos lunáticos de Monolith... + + + Ando buscado un lugar en Pripyat con montones de artefactos y sin monstruos ni soldados de Monolith. Je, je, ahora en serio, voy a comprobar una anomalía de la que me han hablado al sur del puerto fluvial. + + + Rumbo al cine Prometeo. + + + A la plaza del cine, cerca del monumento a Prometeo. + + + Quiero descansar un poco y recobrar el aliento. Hay un buen sitio en un patio, al norte del jardín de infancia, que sería perfecto. + + + Al sur del bloque de apartamentos. + + + Voy a un sitio que hay entre el jardín de infancia y el bloque de apartamentos. + + + Hay un sitio llamado la Cicatriz que parece haber sido arado a base de hachazos. Se han encontrado artefactos allí, pero cuando entras empiezan a pasar cosas muy raras. El cerebro se queda tan tocado que hasta olvidas cómo respirar, así que ni hablemos de intentar salir de ahí echando leches. + + + ¿Sabes dónde está la planta de dragado? Ha sufrido anomalías gravitatorias, pero eso no es grave para un stalker experimentado. Tú ve lanzando tornillos, como siempre. También hay radiación, tanto dentro como fuera. Es como un pequeño reactor de uranio enriquecido. + + + Aquí hay una vieja subestación llamada el Bosque de Hierro. Entenderás por qué cuando la veas. Hay quien dice haber encontrado varios artefactos tras una emisión. Tampoco es tan peligroso; hay anomalías eléctricas y algo de radiación... Por no hablar de los poltergeists. Si no te escondes a tiempo, te sepultan bajo cualquier mierda. + + + ¿Trabajo? No sé, la verdad... Pero si tienes ocasión de ayudar a Libertad, ve a ver a nuestro jefe a Yanov. Dirígete al ala sur y busca a Loki; así se llama. Recuerda, si crees en el progreso de la humanidad, en un bien supremo y en la importancia de los dones de la Zona, harás lo correcto. + + + Ni idea. Pero si encuentras algo que pueda sernos de ayuda para luchar contra la Zona y los que piensan que es un regalo y no una maldición, ve a ver al comandante de la expedición de Deber, el teniente coronel Shulga. Está al frente de la estación de Yanov, lo encontrarás en el ala norte. Una cosa está clara: los civiles que contribuyan a la victoria de Deber, recibirán una generosa recompensa. + + + Todo el mundo habla de las cosas inexplicables que ocurren en la vieja torre de refrigeración. Si sintonizas la frecuencia común, captarás señales de auxilio, como si algún pobre infeliz estuviera intentando salir de una anomalía. Pero cuando le pides sus coordenadas nunca responde. Y lo más raro de todo es el sonido; esa clase de distorsión es difícil de explicar. + + + Me dirijo a un lugar a medio camino entre Skadovsk y Shevchenko. + + + A Júpiter. No creo que pueda avanzar más. + + diff --git a/gamedata/configs/text/spa/st_dialogs.xml b/gamedata/configs/text/spa/st_dialogs.xml new file mode 100644 index 0000000..32a227a --- /dev/null +++ b/gamedata/configs/text/spa/st_dialogs.xml @@ -0,0 +1,978 @@ + + + + Oye, tengo que preguntarte algo... + + + Desembucha. + + + ¿Qué piensas de Nimble? + + + ¿Nimble? Un día de éstos le pillaré en un sitio tranquilo con la mercancía y le daré un buen repaso a ese gilipollas. + + + ¿Sabes algo del Oasis? + + + Bueno, me contaron una historia algo extraña una vez. Los chicos del vertedero empezaron a difundir un rumor sobre el paradero del Oasis, dando a entender que era real. Después se fueron a dicho lugar y se quedaron esperando. ¡Imagina! Se presentaron allí un montón de crédulos, tantos que los que empezaron con el rumor se fueron de la Zona poco después. ¿Y por qué no? Ya tenían la vida resuelta. Solo uno de ellos se quedó allí, un tipo llamado Yoga... + + + Que si vas allí, se curan todas tus enfermedades. La verdad es que suena bien: ¡adiós a la resaca y a las hemorroides! ¡Encuéntralo, monta allí un chiringuito y te forrarás! + + + No me interesa lo más mínimo ese tema. Eso solo se lo creen los perdedores, los hombres de verdad no creen en mierdas de ésas. Siempre que voy al bar, me veo rodeado de stalkers discutiendo sobre dónde está el Oasis. Y todos esos capullos aseguran saber el lugar exacto, que varía según cada versión. + + + ¿Conoces a un stalker llamado Urraca? + + + Claro. Con solo verlo te das cuenta de que es un gilipollas integral. Y varios stalkers me han dicho que es un cabronazo. Pero no sé dónde está... Tendrás que encontrarlo tú mismo. + + + No. Es la primera vez que escucho ese nombre, tío. + + + ¿Sabes quién puede haber robado cosas de una caja personal? + + + Una rata. Mejor pregunta a los jefes en Yanov, porque son famosos por cazar ratas. + + + ¿Quién podría ayudarme a desencriptar algo? + + + Me han dicho que a Nitro de Yanov se le da muy bien. Parece ser que cuando no trabajaba para Deber, le encargaron que piratease varias PDA de stalkers. Ah, qué tiempos aquellos... + + + No me hables de rollos científicos, tío. Para eso necesitas a un hacker. Conocí a uno en la trena, pero nunca más he vuelto a dar con uno. Cuando salí de allí, todavía le quedaban unos cinco años para salir... + + + Tengo la PDA del comerciante de Deber. ¿Conoces a alguien al que le pueda interesar? + + + Hay un comerciante en Skadovsk llamado Búho. Los chicos le llevan PDA de stalkers y paga bastante bien. Además no hace demasiadas preguntas, así que genial. + + + Pues cualquiera, tío. Piensa un poco: su bando enterrará vivo a ese capullo y las otras facciones montarán un follón que no veas, pero Búho de Zaton se encargará de que esa PDA se esfume. Eso sí, solo él sabrá dónde volverá a aparecer esa PDA, así que tú decides. + + + ¿Dónde puedo encontrar herramientas por aquí? + + + Si necesitas herramientas quirúrgicas, busca en hospitales y plantas de emergencia. Si buscas herramientas de construcción, ve a la cantera de Júpiter. Y si quieres herramientas pequeñas, busca en talleres antiguos. + + + ¿Y yo qué sé? No necesito herramientas para que los stalkers aflojen la pasta. Tranqui, que estoy de broma. + + + ¿Quién puede desbloquear un módulo de memoria? + + + ¡Buena pregunta! ¡Ésa es mi especialidad! ¡Ja! ¿Eres tonto, colega? Habla con un técnico o con un científico. ¿De verdad pensabas que yo controlo algo de ese tema? + + + Voy a serte sincero: la última vez que desbloqueé un módulo de memoria fue en el colegio. Y el módulo en cuestión era un puto disquete. Mejor dale la lata a algún experto en el tema. + + + ¿Quién podría abrir un contenedor de acero? + + + ¿Conoces a Cardán de Skadovsk? El otro día se pilló una cogorza y me empezó a perseguir con una palanca. Seguro que podría usar esa palanca para algo más interesante y romper todo lo que necesites. + + + Hasta yo podría hacerlo de tener las herramientas adecuadas. Pero entonces, ¿quién se encargaría de introducir equipo en la Zona con ellos? Habla con los técnicos, colega, eso se les da muy bien. + + + Estoy buscando a un stalker llamado Snag. ¿Sabes dónde puedo encontrarlo? + + + Pues no sé. Pregúntale a Sultán en Skadovsk. El jefe sabe dónde están todos los idiotas. + + + Sí, me han hablado de ese fracasado. Suele andar por Zaton, así que no lo encontrarás por aquí. + + + ¿Sabes algo de los helicópteros siniestrados? + + + ¿A quién le podría interesar información sobre el fundador de Deber? + + + ¡No se me ocurre nadie a quien no le interese! Esa información es una bomba, chaval. Lo mejor es que hables con Búho de Skadovsk: así ganarás pasta pero no te crearás enemigos. + + + No. Piensa un poco: tengo a Deber a un lado, a Libertad al otro y a los stalkers persiguiéndome. ¿Te parece que tengo tiempo para mirar al cielo? + + + Los chicos dicen que vieron uno colgando de los cables del Bosque de Hierro, pero ahí afuera vas a ver muchos más. Una de dos: o te encuentras con una anomalía o un poltergeist te machaca la cabeza. + + + Sí, unos colegas vieron cómo se estrellaba uno en la meseta, pero no hay forma de llegar allí. Decían que volaba tan raro que parecía que el piloto se había metido algo. + + + Me contaron que un helicóptero quiso jugar a ser submarino y se sumergió en un pantano. Como te imaginarás, se hundió rápidamente, el agua de allí no es que sea precisamente saludable: tiene un montón de veneno, compuestos químicos y vete a saber qué más. + + + ¿Has visto soldados por aquí? + + + ¿A quién le podría interesar un mapa del área entre Zaton y Júpiter? + + + A Piloto, supongo. Es el guía principal de esas zonas. Le vendría bien usar un mapa en vez de orientarse con las estrellas, que es lo que hace ahora. + + + Me han dicho que un escuadrón enemigo bajó por la meseta del sur directo al campamento de los mercenarios. Sospechaban que se iba a armar una buena, así que se piraron de allí corriendo. + + + Me han contado que esos gusanos del ejército querían coger algo del helicóptero que se les estrelló en el pantano. Imagina: cinco soldados dando saltos por el pantano, intentando no mojarse el uniforme. Decían tantos tacos que hasta un bandido se sonrojaría. + + + Un colega me dijo que un día escuchó disparos mientras perseguía a un stalker para conseguir su botín. Resulta que el ejército estaba enfrentándose a los mercenarios. Mi amigo se escondió y esperó a que terminasen, para entonces el stalker ya se había ido. Qué mala pata, ¿eh? + + + Un amigo mío presenció una escena bastante divertida. Imagina esa barca con un molino encima, al lado Noé gritando como un poseso y diez soldados intentando alejarse tanto como podían del perro de Noé. Mi amigo se moría de risa y se fue sin intervenir en aquel jaleo. + + + No, este lugar es bastante confuso: está lleno de gente armada hasta los dientes y no tengo tiempo para averiguar quiénes son militares y quiénes de Deber. + + + ¿Sabes cómo llegar a Pripyat? + + + ¿A quién podría contratar para proteger a los científicos? + + + ¡Ja! Los chicos y yo podemos hacerlo. ¡Les protegeremos como nadie! Los stalkers y los mutantes se cagarán de miedo con solo vernos y ni se acercarán, te lo aseguro. Afloja la pasta cada semana y somos tuyos. ¡Ah, y que no se te olvide el aguinaldo de Navidad! + + + Andando, tío. Ve hacia Júpiter y pregunta allí, porque no hay una ruta directa desde Zaton a Pripyat, es un hecho. + + + Oye, colega. ¿Tengo pinta de guía o algo así? ¿O quizás llevo tatuado en la frente "Pregúntame gilipolleces"? Habla con Piloto. A él le pagan por responder ese tipo de chorradas. + + + No. ¿Y qué iba a hacer yo allí, en un lugar en el que no hay stalkers a los que estafar? + + + ¿Sabes de alguien sin muchos compromisos que quiera mudarse a Pripyat? + + + Pripyat no es un sitio para hombres de verdad como nosotros. Está lleno de mutantes y anomalías, como el resto de la Zona... pero sin stalkers y botines. Cuando los stalkers se muden a Pripyat, danos un toque e iremos allí para mantener el orden natural de las cosas. + + + Ni idea, tío. Lo siento. + + + He encontrado un arma muy rara. ¿Sabes de alguien que me pueda dar información sobre ella? + + + Yo hablaría con los técnicos. Se supone que es su profesión y saben de estas cosas, ¿no? + + + No sé por qué, pero los stalkers de Skadovsk piensan que Cardán es un genio de la técnica. Habla con él si quieres. Aunque mi opinión es que es un viejo borracho. + + + ¿A quién podría contratar para tomar medidas para los científicos? + + + Eso tiene fácil respuesta: a nuestros chicos. Vale, no tienen estudios pero se cargarán a quién quieras y lo planearán todo a fondo. Después lo meterán en una tumba bonita y problema solucionado. + + + He encontrado un artefacto muy raro. ¿Quién me lo podría comprar? + + + ¿Un artefacto raro, dices? Déjame ver... Dámelo para que lo pueda ver mejor. Ja, relájate, chaval, estoy de broma. Pero yo de ti no andaría enseñando eso por ahí. Puede que te encuentres con alguien que vaya en serio. + + + Hay que tener valor para andar por ahí enseñando esa cosa. Tienes mi respeto. Te cuento: tienes que hablar con Barbas en Skadovsk. Todavía no sabemos cómo saca los artefactos de la Zona, así que no tendrás problema en venderle el tuyo. + + + He encontrado una guarida de chupasangres por aquí cerca. ¿Qué vamos a hacer? + + + ¿Que qué vamos a hacer? ¡Pues salir corriendo, claro! + + + Vale, olvídalo. + + + Oye, tengo que preguntarte algo... + + + Pregunta. + + + ¿Qué piensas de Nimble? + + + ¿Nimble? No me suena. Quizás es de otro escuadrón, no sé. + + + ¿Sabes algo del Oasis? + + + Es un cuento de los stalkers. A eso se dedican: ¡a inventarse tonterías y a creérselas! Yo de ti pasaría del tema. Si empiezas a tragarte estas cosas, terminarás creyendo que el Genio existe de verdad. + + + Ah, ¿ese lugar en el que las heridas se curan solas y tu energía se recupera de forma mágica? Tengo noticias para ti, amigo: no existe. Los stalkers se inventaron esa chorrada para que la Zona pareciese menos peligrosa de lo que en realidad es, pero lo cierto es que no hay lugares seguros en ella. Y más te vale tener los pies en la tierra cuando salgas ahí afuera, colega: los soñadores no duran mucho en la Zona. + + + Sí, y todos los artefactos valen su peso en oro y te los traen en bandeja de plata mientras te dan un masaje en los pies. Estoy de broma, claro. Dudo que exista, aunque ojalá fuese así. Podríamos crear hospitales allí sin necesidad de médicos. La gente llegaría y se curaría sin más. Buf, menuda fantasía. + + + ¿Conoces a un stalker llamado Urraca? + + + Ya me cuesta acordarme de toda la gente de Deber, ¿y me hablas de un stalker? Tienen su base en Skadovsk, pregunta allí. + + + No, qué va. + + + ¿Sabes quién puede haber robado cosas de una caja personal? + + + ¡Vaya! Eso nunca ocurriría en la base de Deber, pero este lugar está lleno de macarras de Libertad. Yo empezaría buscando por ahí. + + + ¿Quién podría ayudarme a desencriptar algo? + + + En la estación de Yanov hay un técnico llamado Nitro, es un especialista en electrónica. Una vez se me olvidó la contraseña de mi PDA, ¡y la hackeó en cinco segundos! + + + Tienes que ir a Yanov y buscar a Nitro, es un especialista en ese tema. + + + Tengo la PDA del comerciante de Deber. ¿Conoces a alguien al que le pueda interesar? + + + ¿Un comerciante de Deber? ¡Eso es imposible! Pero si tienes información, lo mejor es pasársela al teniente coronel Shulga y que él se encargue de todo. + + + ¿Dónde puedo encontrar herramientas por aquí? + + + Hay toda una central cerca de aquí. Seguro que la habrán saqueado por completo, pero yo de ti registraría los almacenes de la central de todas formas. + + + Yo de ti comenzaría mirando en los talleres antiguos. Puede que también encuentres algo en las tiendas. + + + Por aquí solo hay mutantes y anomalías. ¡Ja! Yo no buscaría en las anomalías, y los quemadores y controladores tampoco te van a ser de ayuda. + + + De hecho, hay un tren bajo el puente de aquí cerca. He visto esos trenes antes, solían transportar a personal técnico, así que es probable que encuentres algunas herramientas. + + + ¿Quién puede desbloquear un módulo de memoria? + + + Nitro. Es el único en la estación de Yanov que sabe algo de ese tema. + + + Necesitas un técnico. El único decente que hay por aquí es Nitro de Yanov. + + + ¿Quién podría abrir un contenedor de acero? + + + Dicen que hay un técnico entre los stalkers. Es un borracho pero sabe lo que hace. Habla con él. + + + Ja, podrías ir por ahí con una caja fuerte también. Nitro no va a poder ayudarte con eso. Si tuviese un cerrojo electrónico, sería otra cosa... + + + Estoy buscando a un stalker llamado Snag. ¿Sabes dónde puedo encontrarlo? + + + Pregunta a los stalkers: conocen a los suyos. No conozco a ese tal Snog o como se llame. + + + ¿Sabes algo de los helicópteros siniestrados? + + + ¿A quién le podría interesar información sobre el fundador de Deber? + + + A nuestro comandante, claro. Cuéntale todo lo que sepas a Shulga y Deber te lo agradecerá. + + + Sí, nuestros exploradores vieron un helicóptero militar descender sobre la pista de reserva que está junto a Júpiter. Le hicieron señas para que cambiase de ruta pero supongo que los pilotos estaban a otras cosas. Me pregunto si los soldados conseguirían salir del campo de minas. + + + Por aquí no. Nuestra presencia en esta área es limitada. Habla con los chicos que están cerca de Yanov. + + + Nuestra patrulla informó de que un helicóptero militar intentó hacer un aterrizaje forzoso cerca de la central de Júpiter. Por desgracia, el helicóptero se estrelló contra el tejado de los talleres. Dudo mucho que hubiese supervivientes: la patrulla no recibió ninguna señal de socorro después del accidente. + + + ¿Has visto soldados por aquí? + + + ¿A quién le podría interesar un mapa del área entre Zaton y Júpiter? + + + A alguien que le pueda dar algún uso. Por ejemplo, Piloto: es el guía de la ruta entre Yanov y Skadovsk, así que seguro que le interesará ese mapa. + + + ¿Soldados? No he visto ninguno por aquí, aunque tampoco paso mucho tiempo en esta zona. + + + Hace poco encontraron el cadáver de un soldado en el campo de minas. Supongo que iba en aquel helicóptero: llevaba a ocho personas, además de los pilotos; así que puede que consiguiesen salir, aunque nadie sabe dónde están. + + + Hay un soldado en el búnker de los científicos y lleva allí poco tiempo. No tengo más detalles. + + + El otro día vieron a un tipo con uniforme militar entrar en el edificio que está junto al complejo Volkhov AA. Aunque también podría ser un zombi al que confundieron con un soldado. + + + Los stalkers vieron una unidad militar cerca de la central de Júpiter. A juzgar por su descripción, pertenecía a las fuerzas especiales. Iban acompañados por un stalker no identificado y se dirigían a Pripyat. La descripción suena creíble, pero sé por experiencia que no hay que fiarse mucho de estas cosas. + + + ¿Sabes cómo llegar a Pripyat? + + + ¿A quién podría contratar para proteger a los científicos? + + + No encontrarán mejor protección que la de Deber. Ve a hablar con el teniente coronel Shulga en Yanov. Seguro que llegáis a un acuerdo. + + + No. Mientras tengan a gente de Libertad trabajando allí, no nos acercaremos a ese lugar. Escuchar a esos capullos contando chistes idiotas todo el día es peor que la muerte. + + + Ahora mismo Deber no tiene ningún motivo para saber cómo llegar a Pripyat, pero estamos recopilando información de todas formas. Algunas fuentes no contrastadas afirman que hay túneles bajo la central de Júpiter que lleva a Pripyat. Para corroborar esta información habría que registrar el área de la central al completo. + + + No. Si necesitas saberlo, es mejor que hables con un guía civil. Nuestros exploradores ya tienen bastante trabajo. + + + Nuestros exploradores suelen buscar en la zona rutas seguras para llegar a Pripyat, pero de momento no han encontrado nada. + + + ¿Sabes de alguien sin muchos compromisos que quiera mudarse a Pripyat? + + + La presencia de Deber en esta área es limitada. Habla con nuestra gente de Yanov. + + + Se comenta que los científicos tienen a un soldado en su búnker. Pero no sabe cómo salir de allí. Los científicos se pasan en el búnker entre doce y dieciocho meses, y él no va a llegar a la frontera de la Zona a pie y solo. Así que podría interesarle tu oferta. + + + Te sugiero que hables con gente en busca de aventuras. Por ejemplo, en la estación de Yanov hay un stalker llamado Vano. Le encanta meterse en toda clase de líos y además puede resultarte útil: podría escapar de una anomalía con los ojos cerrados. + + + Podrías empezar una campaña de reclutamiento en un manicomio. No, tengo una alternativa mejor: los soldados de Monolith. Por cierto, el otro día vi a un escuadrón de estos soldados cerca del complejo AA y seguro que se dirigían hacia Pripyat. En fin, tío, no me tomes en serio. + + + Busca voluntarios en Deber. Strider, por ejemplo. Todavía no le han asignado una misión, así que puede que el teniente coronel le deje irse contigo. + + + Todos saben que Deber cuenta con los mejores soldados... pero de momento tenemos otros objetivos. + + + He encontrado un arma muy rara. ¿Sabes de alguien que me pueda dar información sobre ella? + + + ¡Caray! ¡Menudo cañón! ¿Lo has hecho tú mismo o te lo has encontrado? Nunca había visto algo así... Pregunta a los técnicos. + + + ¿A quién podría contratar para tomar medidas para los científicos? + + + Qué pregunta más tonta: a Deber, claro está. Contamos con mucha gente experimentada y ya hemos trabajado con científicos en otras ocasiones. Habla con el teniente coronel Shulga. Seguro que podrá asignarte un escuadrón. + + + ¿Quién querría trabajar allí si Libertad protege el búnker? Esos putos pacifistas están tan colocados casi todo el tiempo, que lo más probable es que se disparasen entre ellos en vez de al enemigo. + + + He encontrado un artefacto muy raro. ¿Quién me lo podría comprar? + + + Todos los artefactos son raros, y te recomiendo que no andes por ahí con uno. Es mejor que lo dejes en manos de expertos. + + + Deberías enseñárselo a los stalkers, saben un montón de ese tema. O mejor aún, llévaselo a la persona a la que le venden los artefactos. + + + He encontrado una guarida de chupasangres por aquí cerca. ¿Qué vamos a hacer? + + + Los escuadrones de Deber no están realizando operaciones de limpieza en el área, así que la guarida tendrá que esperar. + + + Vale, olvídalo. + + + Oye, tengo que preguntarte algo... + + + Dispara. + + + ¿Qué piensas de Nimble? + + + No sé mucho sobre él. Mejor pregunta a los stalkers. Es uno de ellos, ¿no? + + + ¿Sabes algo del Oasis? + + + Muchas cosas. Es una historia bonita, lo admito. Un palacio entre las dunas, una isla envuelta en niebla, un castillo en el cielo... Shambhala, el Edén, el Oasis... Todos tenemos nuestro paraíso soñado, no les culpo. + + + Un stalker me contó una historia interesante. Creo que fue el primero en hablarme del Oasis. Decía que, según la leyenda, allí se curan todas tus heridas y te relajas hasta tal punto que te olvidas de que estás en la Zona. No he vuelto a ver a ese stalker desde... Poco después recordé que antes cojeaba un poco al andar. Pero cuando le vi, caminaba perfectamente y parecía muchísimo más joven. + + + Sí, los stalkers libres me dieron las coordenadas. Son diez grupos distintos de coordenadas. Si las unes, obtendrás un área desde el Cauterizador hasta la central de Chernóbil, y el bar de Yanov se encuentra cerca del centro. ¡Hasta sería posible que estemos en el Oasis ahora mismo, así que disfrútalo! + + + ¿Conoces a un stalker llamado Urraca? + + + No, no conozco a muchos stalkers libres por aquí. + + + ¿Urraca? No, pero me mola el nombre. + + + ¿Sabes quién puede haber robado cosas de una caja personal? + + + No, nadie de por aquí haría algo así. Conozco a un tipo que puede cogerte un poco de pan o beber un trago de tu bebida mientras no estás mirando, pero no hay ladrones propiamente dichos. + + + ¿Quién podría ayudarme a desencriptar algo? + + + Me han dicho que a Nitro de Yanov le apasionan las combinaciones y los algoritmos. Pero no estoy seguro del todo, nunca he hablado con él. Trabaja para Deber, así que no tiene mucho tiempo libre para hablar con gente como nosotros. + + + No soy ningún experto en nuestros expertos. Habla con nuestros chicos de Yanov cuando te pases por allí, ellos sí que saben del tema. + + + Tengo la PDA del comerciante de Deber. ¿Conoces a alguien al que le pueda interesar? + + + ¡Suena interesante! Yo se lo daría a Loki, nuestro líder en Yanov. Él se encarga de que los stalkers libres sepan a qué tipo de gente recluta Deber. + + + ¿Dónde puedo encontrar herramientas por aquí? + + + En la central, claro. ¿Dónde si no? No es un sitio muy animado, pero los almacenes seguro que te alegran el día. Son más seguros y no te costará encontrar herramientas decentes allí. + + + Buena pregunta, tío. A ver, ¿dónde encuentras herramientas fuera de la Zona? Si tienes medio cerebro, las compras en una tienda. Y si no, te compras un cerebro y herramientas en un taller, ¿no? Pues dentro de la Zona, lo mismo. ¡Es así de fácil, stalker! + + + ¿Herramientas? Oye, tío, ¿me hablas en clave o algo así? Aquí no hay cerdos, puedes hablar con claridad. Ah, ¿que lo decías en serio? Pues entonces no sé. + + + Me han dicho que uno de nuestros chicos buscaba herramientas y entró en el tren que hay bajo el puente. Parece ser que allí hay un Tesla. Eso sí, parece ser que no es un lugar muy agradable. ¿Por qué te estoy contando esto? Porque el chico vio muchas herramientas pero no se atrevió a llevarse ninguna. + + + ¿Quién puede desbloquear un módulo de memoria? + + + Novikov, del búnker de los científicos, puede hacerlo. Es rápido, eficaz y educado. También está Nitro en Yanov, el parásito de Deber. Es barato y cutre, pero creo que también podría hacerlo. + + + Un técnico cualificado, supongo. El de por aquí entiende más de mecánica, así que si no quieres cambiar el módulo de memoria de tu cañón estriado, es mejor que preguntes en Júpiter. + + + ¿Quién podría abrir un contenedor de acero? + + + Pues el otro día me recomendaron a Cardán de Skadovsk. Dicen que sabe lo que se hace, incluso estando borracho casi todo el tiempo. Seguro que te ayuda con ese contenedor. + + + ¿Hay alguien que se dedique a abrir contenedores de acero? Eso sí, no creo que pueda hacerlo Nitro, el técnico local. A él se le da mejor hackear aparatos electrónicos. + + + Estoy buscando a un stalker llamado Snag. ¿Sabes dónde puedo encontrarlo? + + + Ni idea. Habla con otros stalkers libres. + + + ¿Sabes algo de los helicópteros siniestrados? + + + ¿A quién le podría interesar información sobre el fundador de Deber? + + + Sin duda a Loki, nuestro líder en Yanov. Incluso si no sabe qué hacer con dicha información: lo importante es arrebatársela a Deber. ¡Imagínate la de cosas que podrían hacer con ella! Se me ponen los pelos de punta solo de pensarlo. + + + Sí. ¿Te has enterado de lo del helicóptero del campo de minas? Parece ser que los militares se estrellaron en la pista de aterrizaje de reserva, la misma en la que sus colegas colocaron minas hace seis años. Se dice que se estrellaron por pura estupidez, pero yo no lo tengo tan claro. Míralo de esta forma: allí no va nadie, así que cuando los chicos del ejército terminen su misión, volverán al helicóptero, lo arreglarán un poco y se largarán. Me gustaría saber en qué consistirá esa misión... + + + No soy de aquí, así que no tengo ni idea. Ven a vernos a Yanov. Nuestros chicos te contarán todo lo que quieras saber, e incluso todo lo que no quieras saber. + + + Sí. El otro día unos chicos vieron un helicóptero dando tumbos en el cielo. Y tampoco aterrizó muy bien: terminó estrellándose contra uno de los tejados de Júpiter. Los chicos dicen que atravesó el tejado y terminó dentro del edificio, arrastrando todo a su paso. + + + ¿Has visto soldados por aquí? + + + ¿A quién le podría interesar un mapa del área entre Zaton y Júpiter? + + + A Piloto, sin duda. Es el guía stalker principal de esta zona. Si quieres hablar de mapas con alguien, él es tu hombre. + + + Tranqui, colega. Aquí no hay polis, militares, ni soldados. Estás a salvo, todo lo que se puede estar en la Zona. + + + No, pero unos colegas me han dicho que vieron una unidad del ejército atravesando el campo de minas que está junto a la pista de aterrizaje. Mis colegas iban a ayudarlos, pero al final cambiaron de opinión. Los militares son imprevisibles, les puede dar el punto y pegarte un tiro por la espalda. + + + Yo no he visto ninguno, pero se dice que hay un militar en el búnker de los científicos. Según Ozersky, el biólogo, viajaba en el helicóptero que se estrelló contra la central. Se cachondean de él diciendo que los empollones del búnker lo han adoptado como mascota. + + + En persona no, pero los stalkers libres me han contado cosas. Dicen que vieron a un militar junto al complejo Volkhov AA. Quizás fuese un fantasma o un zombi... ¿Qué piensas tú? + + + No. Un colega decía que vio a siete soldados persiguiendo a un stalker libre más allá de la central de radio, en dirección a Pripyat. Por la Zona no circula nada de hierba últimamente, así que se lo habrán inventado, así de simple. + + + ¿Sabes cómo llegar a Pripyat? + + + ¿A quién podría contratar para proteger a los científicos? + + + A Libertad. Es decir, a nosotros. Trabajamos mucho con científicos, así que protegerlos es pan comido. Habla con Loki, nuestro jefe en Yanov. Seguro que le parecerá bien. + + + No sé, tío. Por lo que me han dicho, esos empollones han contratado a un escuadrón de Deber... Nos gustaría proteger a los científicos, pero ver todos los días las caras de estreñidos de los de Deber no nos apetece nada. + + + Dicen que se puede llegar desde Júpiter. Me refiero a la central, no al planeta. ¡Ja! ¡Eso ha tenido gracia, lo tienes que admitir! + + + Pues no tengo ni idea. Nunca tengo tiempo para ir allí. Pregunta a Piloto en el campamento, ¿vale? Es un stalker libre y conoce esa zona mejor que nadie. + + + Tío, si lo supiese ya me habría ido allí hace siglos. Me encantaría perder de vista a Deber, a los militares y todos estos enfrentamientos... + + + ¿Sabes de alguien sin muchos compromisos que quiera mudarse a Pripyat? + + + Lo siento, amigo. No conozco a nadie en Zaton. Mi consejo es que hables con nuestros chicos de Yanov. + + + ¿Conoces el búnker de los científicos? Pues ahora mismo tienen un problema. Por un lado Garry, el stalker, ha decidido irse a Pripyat y ahora el militar que está allí quiere hacer lo mismo. Garry es un solitario y presume de ello, pero el militar es justo lo que necesitas. + + + Vano de Yanov te podría servir. Es un tío legal y podría haberse unido a Libertad si hubiera querido. Pero creemos que no quiere enfrentarse a Deber... ni a nadie. Así es cómo ve él las cosas y nosotros lo respetamos. + + + Claro. Uno de nuestros chicos se encontró con un escuadrón cerca del lago seco y creo que te vendrían de maravilla. Conocen Pripyat al dedillo y parece que no están trabajando para nadie. Además, seguro que son valientes. ¡Por algo son soldados de Monolith! + + + Sí. Strider, el líder de nuestros nuevos reclutas... Creo que no está muy cómodo en nuestras filas. Sus chicos se han adaptado bien, pero él no está muy contento aquí. Habla con él: detesto ver a alguien en un sitio que no le corresponde. + + + No, ni idea. + + + He encontrado un arma muy rara. ¿Sabes de alguien que me pueda dar información sobre ella? + + + ¿Qué pasa, no venía con un manual? ¿No? Pues entonces, ni idea. + + + ¿A quién podría contratar para tomar medidas para los científicos? + + + Creo que nuestros chicos podrían hacerlo. En Libertad hay gente inteligente y, cuando no sabemos algo, preguntamos en el búnker. ¡Nos encantaría colaborar con la ciencia! Habla con Loki en Yanov; seguro que te dirá lo mismo. + + + A los chicos y a mí nos encantaría, pero Deber está protegiendo el búnker ahora mismo. Entrar a ver a los científicos ya es un problema, pero estar allí todo el día no creo que fuese muy saludable. + + + He encontrado un artefacto muy raro. ¿Quién me lo podría comprar? + + + Necesitas un coleccionista, tío. En Yanov no encontrarás ninguno. ¡Si hasta a algunos stalkers les da miedo entrar aquí! Mejor pregunta en Zaton, por allí las cosas están más tranquilas. + + + ¿Conoces a Barbas, el del bar del campamento de los stalkers libres? Compra artefactos y no paga mal. Es un buen tipo, lo mires por donde lo mires. La verdad es que es una pena que no trabaje para nosotros. + + + He encontrado una guarida de chupasangres por aquí cerca. ¿Qué vamos a hacer? + + + Tienes que avisar a los stalkers libres: su campamento principal está por aquí. Me parece bien preservar la fauna de la Zona, pero me preocupan más las vidas humanas. + + + Vale, olvídalo. + + + Oye, tengo que preguntarte algo... + + + Pregunta. + + + ¿Qué piensas de Nimble? + + + No tengo el gusto. Mejor habla con la gente de Skadovsk. + + + ¿Sabes algo del Oasis? + + + ¡He oído de todo sobre el Oasis! Es una leyenda, un mito... Cada stalker tiene una idea distinta sobre cómo es y cada uno dice que está en un sitio distinto. Es una pena que lo único que tienen en común esos sitios es que es casi imposible llegar a ellos. + + + Bueno, dicen que allí las heridas se curan al instante y que te recargas de energía en minutos... Que el Oasis acaba con todas las enfermedades, ¡incluso con el envenenamiento por radiación! Lo único que tengo claro es dónde está... ¿Quieres saberlo? ¡En el centro de la Zona! Pero que quede entre nosotros, ¡ni una palabra a nadie! + + + Me han dicho que los mutantes de por allí pasan a tu lado sin mirarte. También se comenta la existencia de un artefacto llamado El corazón del Oasis... Nadie sabe para qué sirve, pero una cosa está clara: no debes tocarlo. El que lo haga no podrá permanecer en la Zona por más tiempo... ¿El lugar? Tío, todos saben que está en Pripyat, debajo de la noria. ¿Dónde si no? + + + ¿Conoces a un stalker llamado Urraca? + + + Claro. Pero no tengo ni idea de dónde está. + + + Mmm. No me suena. + + + ¿Sabes quién puede haber robado cosas de una caja personal? + + + Eh, no. Habla con la gente mayor de Yanov, quizás puedan ayudarte. + + + ¿Quién podría ayudarme a desencriptar algo? + + + Nitro de Yanov, ¿quién si no? Le chifla toda esa mierda de las nuevas tecnologías. Mucho más que las armas. + + + Nadie que yo conozca. Pregunta en Yanov: allí tienen un experto en el tema. + + + Tengo la PDA del comerciante de Deber. ¿Conoces a alguien al que le pueda interesar? + + + ¿Conoces a Búho de Skadovsk? Seguro que le encantaría ponerle las manos encima. Le gustan ese tipo de cosas... + + + Había un tipo llamado Búho en Skadovsk, por Zaton. Compra información... Puede que le interese tu PDA. + + + ¿Dónde puedo encontrar herramientas por aquí? + + + Un stalker me dijo que su padre trabajó en los talleres de la subestación antes del 86. Decía que allí había todo tipo de equipo, así que seguro que también hay herramientas. Aunque supongo que ahora estarán todas oxidadas, pero pásate por allí de todas formas. + + + ¿Conoces el aserradero del bosque de la colina? Allí tendría que haber herramientas, a no ser que alguien se te haya adelantado. Aunque lo dudo: a medida que te adentras en ese lugar, te cagas de miedo y sales despavorido. Y no lo digo por la radiación, no... + + + La central de Júpiter está justo aquí y seguro que en ella hay herramientas. Aunque yo no me pasaría por allí ni loco, ese sitio me pone los pelos de punta. Mira en los almacenes de Júpiter, los que están al lado de la central. + + + Me han dicho que hay un par de sitios en Pripyat en los que puedes encontrar todo tipo de chatarra. Uno de ellos era un antiguo almacén soviético. Seguro que es el único lugar en el que vendían cosas útiles en aquellos tiempos. + + + ¿Y yo qué sé? Mira en talleres o tiendas antiguas, puede que encuentres algo útil. + + + La verdad es que el último sitio en el que vi herramientas decentes fue el búnker de Sidorovich, en el Cordón. Sí, tendrás que pagar por ellas, pero son nuevas y tampoco son caras. + + + Verás, colega: no me vine a la Zona para buscar herramientas. Ya me dirás para qué me serviría un martillo radiactivo. + + + Me han dicho que en la vieja estación de servicio se pueden encontrar cosas... Puede que también haya herramientas. Pero, como ocurre siempre, la única forma de conseguir buen material es llegando allí el primero. + + + Buena pregunta... Yo miraría en el viejo tren que está bajo el puente. No preguntes por qué. Mi instinto me dice que allí encontrarás algo. + + + ¿Quién puede desbloquear un módulo de memoria? + + + Déjame pensar. Bueno, seguro que Nitro de Yanov podría. Y luego también está Novikov, el técnico de los científicos; es todo un profesional. Tú decides, porque Nitro es mucho más barato. + + + Necesitas un técnico, pero el único que hay por aquí es Cardán. Aunque después de tantos años dándole a la botella, no sé qué tal se manejará con la electrónica más complicada. Yo de ti preguntaría por Júpiter: allí están los mejores expertos. + + + ¿Quién podría abrir un contenedor de acero? + + + Cardán de Skadovsk, supongo. Es una gozada verle forzar cerrojos. + + + Supongo que algún tipo de técnico. No creo que Nitro pudiese ayudarte: suena demasiado complicado para él. + + + ¿En Pripyat? Ja, ja. Mira, te aconsejo que te alejes un poco del centro de la Zona si quieres encontrar a alguien. + + + Estoy buscando a un stalker llamado Snag. ¿Sabes dónde puedo encontrarlo? + + + Habla con Barbas, el del bar de Skadovsk. Suele saber dónde andan los stalkers. + + + ¿Snag? ¿Y yo qué sé? Pregunta en Zaton, anda mucho por allí. + + + ¿Sabes algo de los helicópteros siniestrados? + + + ¿A quién le podría interesar información sobre el fundador de Deber? + + + Yo hablaría con Búho; comercia con información en Skadovsk. Seguro que le interesará información veraz sobre alguien tan legendario. + + + Yo mismo vi uno... No parecía que fuese a estrellarse pero volaba bastante mal: se movía de un lado a otro hasta que aterrizó en una meseta al sur de Zaton. Me pregunto si habrá sobrevivido alguien, pero no es fácil llegar allí. Aunque quizás Noé, el de la barca de chiflados, sepa algo... + + + Me contaron que varios helicópteros militares se estrellaron por aquí cerca... Hay distintas versiones, pero recuerdo una de ellas con claridad: vieron cómo el helicóptero se estrellaba en la pista de aterrizaje de reserva en la que los mismos militares pusieron minas en su día. ¿No te parece irónico? Como decía mi padre: "No caves la tumba de nadie, porque terminarás cayendo tú en ella". Muy cierto, ¿no? + + + Un colega me contó una historia: se fue al Bosque de Hierro en busca de artefactos y nada más llegar escuchó un gran estruendo a sus espaldas. Se dio la vuelta y vio cómo se acercaba un helicóptero a toda velocidad, arrastrando torres de alta tensión y todo tipo de basura a su paso. Mi amigo salió de allí pitando sin toparse con ninguna anomalía, cosa que me sorprende. No te costará mucho encontrar el Bosque de Hierro: se ve a millas de distancia. Eso sí, está lleno de putos poltergeists, así que ándate con cuidado. + + + Me han dicho que uno aterrizó en la meseta del sur, pero llegar allí no es nada fácil. También me han contado que alguien vio a Noé cerca de esa meseta, así que ese chiflado sabe cómo llegar. + + + No he visto nada pero se comenta que uno se estrelló contra la central... Aunque nadie quiere ir a comprobarlo, ese lugar es demasiado peligroso. + + + Un stalker me contó que vio varios helicópteros militares en una situación peligrosa. Uno tenía el motor en llamas y se adentró en un pantano lleno de anomalías. No es difícil llegar allí, pero ese pantano es una puta pesadilla. No es lugar para humanos, te lo aseguro. + + + ¿Has visto soldados por aquí? + + + ¿A quién le podría interesar un mapa del área entre Zaton y Júpiter? + + + A Piloto, ¿a quién si no? Es un guía, ¿no? Siempre está moviéndose entre Skadovsk y Yanov, así que esos mapas le vendrán fenomenal. + + + Esto no es Zaton ni Júpiter, así que aquí esos mapas no sirven de nada. Acércate a esos lugares y seguro que tendrás más suerte. + + + No he visto ninguno, pero me contaron la historia de unos soldados que bajaban por la meseta sur que está junto al sistema de alcantarillado. Al principio intentaron bajar con cables y cosas por el estilo, pero al final tuvieron que deslizar sus culos cuesta abajo, como en un trineo. Ja, ja. ¿No es genial hacer algo así en la Zona? + + + Escuché una conversación en Skadovsk sobre cinco o más militares que fueron vistos saliendo de un túnel de desagüe que está junto al pantano. Iban cubiertos de mierda de la cabeza a los pies, hasta el punto que costaba distinguirlos de los chupasangres del pantano. + + + En persona no, pero un amigo vio una unidad militar luchando contra un grupo de mercenarios junto a la estación de procesado. Mi amigo buscó un sitio cómodo para ver la batalla pero para entonces todo había acabado porque los militares se echaron atrás. No hubo bajas en ningún bando. Lo típico, ¿no? + + + Parece ser que alguien vio a unos diez militares cerca de la barca de Noé. Suponiendo que ese chiflado siguiese con vida, seguro que llegó a un acuerdo con ellos, es típico de él. Pero claro, nadie quiere preguntarle por ello: nunca sabes cómo va a reaccionar ese hijo de su madre. + + + Escuché una explosión por la noche y alguien de Yanov me dijo que vieron un militar muerto en el antiguo campo de minas, ante un helicóptero militar abandonado. Puede que no viesen nada en la oscuridad e intentasen aterrizar sobre las minas. Nadie sabe si sobrevivió alguien, pero dudo que fuese el único tripulante del helicóptero. + + + No he visto a ningún militar... pero se rumorea que hay uno que vive con los científicos. Por lo visto, un stalker llamado Garry lo encontró cuando fue al complejo de misiles a buscar a sus amigos. Pero el lugar estaba lleno de zombis poco amigables y Garry salvó al soldado de una muerte segura. + + + No, pero alguien dice haber visto a un militar cerca del complejo AA de Volkhov. Yo no me lo creo. O mienten o no saben distinguir un zombi de un soldado. + + + ¿Soldados? Me han hablado de una unidad militar con un stalker a la cabeza" que pasó junto a la central de Júpiter. Pero yo creo que es un chismorreo poco fiable. + + + ¿Sabes cómo llegar a Pripyat? + + + ¿A quién podría contratar para proteger a los científicos? + + + ¿Conoces a Espartaco y a su escuadrón? Sí, los stalkers de Zaton. Buena gente y buenos luchadores. Se han metido en mil movidas y ahí siguen. Sospecho que les gustaría eso de proteger a los científicos. + + + ¿Has visto al escuadrón de Hacha, junto a los talleres de la subestación de Zaton? Tienen sus cosas, como todos los mercenarios, pero al menos preguntan primero y disparan después. Seguro que si los contratas para este trabajo, los científicos se quedarán contentos y los stalkers se relajarán un poco. ¡Y todos contentos! + + + Pues... No me suena, lo siento. + + + Lo que tengo claro es que no hay forma de llegar allí desde Zaton. Todos los que se morían de ganas por ir a Pripyat tomaron la dirección de Júpiter, así que deberías preguntar por allí. + + + Se rumorea que existen unos túneles secretos que van por debajo de la central de Júpiter y llegan a Pripyat... Claro que esos rumores se cuentan siempre tras la segunda ronda, y Júpiter es un sitio infernal al que nadie se atreve a ir. + + + ¿Y yo qué sé, colega? ¿No tienes alguna pregunta más fácil? Mira, busca a Piloto y pregúntale a él. No creo que nadie más pueda ayudarte. + + + Ja. Si supiese ir a Pripyat, no estaría aquí. ¿Por qué te crees que me fui en dirección al centro de la Zona? ¡Pripyat está lleno de artefactos, colega! ¡El que llegue allí primero se va a pegar la vida padre! + + + ¿Sabes de alguien sin muchos compromisos que quiera mudarse a Pripyat? + + + No creo que encuentres a alguien así por aquí. Todos los que querían acercarse al centro de la Zona se fueron a Júpiter. Pregunta por allí. + + + ¿Conoces al militar que está con los científicos? Creo que no tendría mucho que perder si se fuese contigo. Los científicos no tienen pensado marcharse en breve y él no puede llegar al Cordón por sí solo, así que a lo mejor es tan tonto como para acompañarte hasta Pripyat. + + + ¿Conoces a Vano, de la estación de Yanov? Es un tipo honesto, un buen stalker y además se lo cree todo. Se le dan mejor las anomalías que las personas: siempre que está aquí, alguien intenta aprovecharse de él. + + + Escucha: alguien vio a un escuadrón junto al lago seco que está al sur del complejo AA... Parece ser que no eran los stalkers habituales de Libertad o Deber: ¡eran hombres de Monolith! Así que si quieres que alguien te acompañe a Pripyat, ¿quién mejor que ellos? Ja, ja. Te das cuenta de que te estoy tomando el pelo, ¿no? + + + ¿Conoces a Strider, el líder del nuevo escuadrón de Libertad? Si es así, ya sabrás que Yanov no es el mejor lugar para ese tío tan miserable. Coméntaselo, quizás le apetezca. + + + ¿Conoces a Strider, el líder del nuevo escuadrón de Deber? Si es así, ya sabrás que Yanov no es el mejor lugar para ese tío tan miserable. Coméntaselo, quizás le apetezca. + + + Mmm... No se me ocurre nadie. + + + He encontrado un arma muy rara. ¿Sabes de alguien que me pueda dar información sobre ella? + + + ¿Quién sabe? Yo preguntaría a un experto... A un técnico o algo así... + + + No te vendría mal preguntar a Cardán de Skadovsk, colega. Trafica con armas y no lo hace mal. Y a pesar de todo el alcohol que tiene en las venas, puede que todavía le funcione alguna neurona. + + + ¿A quién podría contratar para tomar medidas para los científicos? + + + ¿Conoces a Gonta, el cazador? Creo que él y sus chicos no pondrían pegas a trabajar para los científicos. Si los mutantes os molestan, Gonta y los suyos son justo lo que necesitáis para acabar con ellos. + + + ¿Conoces a Osopardo, Torba y Mitay, los stalkers de Yanov? ¡Trabajan como trío y son la bomba! Creo que son perfectos para ese tipo de trabajo... siempre que Mitay no se haya vuelto a meter en líos. + + + Ni idea, amigo. Ya tenemos bastantes líos aquí como para preocuparnos de los demás. + + + He encontrado un artefacto muy raro. ¿Quién me lo podría comprar? + + + No sé. A la gente de aquí no le gustan los experimentos. Pregunta en Zaton, está más cerca del borde de la Zona. + + + Yo se lo llevaría a Barbas, el del bar de Skadovsk. Dice que trabaja con coleccionistas del exterior, gente a la que le encantan las cosas raras. + + + He encontrado una guarida de chupasangres por aquí cerca. ¿Qué vamos a hacer? + + + Caray. Pues yo se lo contaría a Barbas. Porque mejor acabamos con ellos o ellos acabarán con nosotros. + + + Vale, olvídalo. + + + ¿Dónde está el campamento de stalkers más cercano? + + + ¿Eres idiota o qué? No sé nada de campamentos de stalkers, pero el campamento más cercano es Skadovsk. Te voy a dar las coordenadas, y gratis. Qué majo soy, ¿eh? + + + ¿Dónde está el campamento de stalkers más cercano? + + + Te paso las coordenadas a tu PDA... El único campamento cercano de por aquí es Skadovsk. + + + Hasta la próxima. + + + He oído hablar de algún que otro accidente... Nada concreto; lo de cotillear no es lo mío. Siento no ser de más ayuda. + + + Oye, ya tengo suficientes preocupaciones para que vengas con tus helicópteros. Supongo que estrellarse en helicóptero duele lo suyo pero, ¿qué más quieres que te diga? + + + ¿Pero qué dices, idiota? Tienes que fumar mucha mierda para ver helicópteros por aquí, porque los de verdad no tienen nada que hacer en este lugar. + + + ¿Eh? No, a mí déjame en paz con toda esa mierda. Esas cosas no me ayudan con mi misión de divulgar conocimientos, tú ya me entiendes. + + + Nuestra patrulla vio descender a los helicópteros, pero los detalles fueron transmitidos personalmente al teniente coronel. Es una cuestión de necesitar o no información, y yo no la necesito. + + + ¿Dónde puedo encontrar un traje con un módulo de respiración de ciclo cerrado? + + + Pues no sé decirte, pero con las monedas apropiadas puedes hacer maravillas, si sabes invertirlas. Habla con Nimble... Si llegáis a un acuerdo, te conseguirá lo que necesites. Espero que lo haga; no nos importaría perderlo de vista unos días en Skadovsk. + + + ¡Y yo qué sé! No llevo mucho por aquí. Será mejor que preguntes en Zaton. Nuestra gente de ahí tiene sus propias redes. + + + Ni idea. ¿Por qué? ¿Quieres meter las narices en alguna anomalía? Pues mira, si consigues artefactos, avísanos, que aparecemos en un abrir y cerrar de ojos... ¡para felicitarte por tu trabajo! ¡Ja, ja, ja! + + + ¿Dónde puedo encontrar un traje con un módulo de respiración de ciclo cerrado? + + + ¿Cómo voy a saberlo? Espera... Hay un tipo aquí, en Skadovsk... Dicen que puede conseguirte lo que le pidas. Está en la cubierta superior y se llama Nimble. + + + No, nadie va a venir hasta aquí con un traje extra de ese calibre. Mejor pregunta en Zaton, algo más parecido a un lugar civilizado. + + + No tengo ni idea de dónde podrías buscar... Ese tipo de traje escasea hasta entre los miembros de Deber. Los fabrican solo como distinción especial en combate o para operaciones extensas en áreas muy anómalas. + + + ¿Dónde puedo encontrar un traje con un módulo de respiración de ciclo cerrado? + + + He oído a algunos stalkers hablar de un tipo con contactos... Nimble o algo así. Puede conseguirte casi de todo. Ya sabes: equipo, armas... Mierdas de ésas, no droga. Anda por Skadovsk, si lo necesitas. + + + Buena pregunta... En Libertad no usamos de ésos. Yo en tu lugar les preguntaría a los stalkers de Zaton. Debe de haber alguien que se ocupe de esas cosas. + + + Je, ¿para qué necesitas esa chorrada? Luego, en acción, no sirve para nada. Aunque... supongo que puede ser útil. Facilita la respiración e impide que el sol te ciegue. Igual me agencio uno para mí. Eh, ¿dónde has dicho que podría conseguirlo? + + + ¿Dónde puedo encontrar un traje con un módulo de respiración de ciclo cerrado? + + + Bueno, yo apostaría por Nimble. Tercera cubierta en Skadovsk. Ese tipo puede conseguir hasta nieve en medio del puto desierto... aunque se lo sabe cobrar. + + + A ver, que piense... Había un tipo que se ocupaba de eso en Zaton. Nimble. Prueba a ver si sigue por ahí. Dicen que es especialista en objetos de alto nivel. + + + Oye, lo dices como quien habla de suministros de oficina o algo así... ¡A saber! Ese tipo de cosas escasean. Puedes darte con un canto en los dientes si das con uno. + + + Adiós. + + + Hasta luego. + + + Adiós. + + diff --git a/gamedata/configs/text/spa/st_dialogs_jupiter.xml b/gamedata/configs/text/spa/st_dialogs_jupiter.xml new file mode 100644 index 0000000..9bcfe8c --- /dev/null +++ b/gamedata/configs/text/spa/st_dialogs_jupiter.xml @@ -0,0 +1,3885 @@ + + + + ¿Qué quieres? + + + Tengo que hablar con Jack. Es por la deuda de Vano. + + + Pues sigue. + + + De acuerdo. + + + Solo estoy dando un paseo. + + + Esto no es un parque público. Largo. + + + ¿Sabes quién puede haber robado cosas de una caja personal? + + + Pues no, tengo bastante con mis problemas. Tú habrás perdido cosas materiales, pero yo podría perder la vida... + + + Robos, engaños... Tío, ¿en qué nos estamos convirtiendo? No he visto a nadie, pero seguro que quien lo hizo ya está lejos de aquí. + + + Vamos a ver a Zulu. + + + Claro. De paso vamos a ver al Hawaiano para recuperar mi traje. + + + En marcha. + + + Estaría bien, pero no quiero que me pille una emisión con los pantalones bajados. Esperemos un poco. + + + Necesitaremos un traje con un módulo de respiración de ciclo cerrado para llegar a Pripyat. + + + ¡Qué rabia, tío! Mi traje tiene uno: podrías meter la cabeza en un horno y seguir respirando. Pero se lo empeñé al Hawaiano. Si pudiera recuperarlo... Estoy pelado y necesitaríamos 5 de los grandes... + + + Yo podría darte el dinero del traje. + + + ¿Así, sin más? ¿En serio? + + + Toma tus 5 de los grandes. + + + Gracias, colega. Me has salvado el pellejo. ¡Ahora te seguiré adónde sea! + + + Te dejaría el dinero pero no tengo 5 de los grandes. + + + Estamos todos como tú, amigo. Te lo aseguro. + + + Lo pensaré. + + + Por supuesto... Es tu dinero, al fin y al cabo. + + + ¿Bueno, me lo vas a dar o no? + + + Estoy organizando un equipo para ir a Pripyat. ¿Te apuntas? + + + Tú me has ayudado, así que yo te ayudaré, amigo. + + + Me encantaría, tío. Pero no puedo irme de aquí sin saldar esta deuda. No estaría bien, y si nos encontrásemos con ellos, me matarían a balazos como a un perro. Esos cabrones no se andan con chiquitas... + + + Bueno, ¿listo para ir a Pripyat? + + + ¡Por supuesto que sí! + + + Pasa. ¿Qué quieres? + + + Has pagado la deuda. Ahora lárgate. + + + Eran unos cabrones arrogantes. Tuve que cargármelos. + + + He pagado el dinero, así que ya no estás en deuda. + + + ¡Jo! Gracias, tío. Nunca lo olvidaré. + + + No muy bien. Me han hecho pagar intereses. + + + Vaya. Pero a mí seguro que me habrían cobrado más, créeme. ¡Gracias por tu ayuda! Nunca lo olvidaré. + + + Todavía no he ido a verlos. + + + Corre antes de que te hagan pagar más. + + + Fui a verlos pero me piden intereses por la deuda. + + + ¿Se han vuelto locos o qué? Apenas pude reunir esa cifra... ¿Podrías convencerlos de que se olviden de los intereses? Te hará falta una buena arma, la fuerza es el único lenguaje que entienden. + + + ¿Qué me contaste sobre tu deuda? + + + Verás... Tenía un traje que se estaba quedando viejo, así que pensé en comprarme uno nuevo. Y poco después vi uno alucinante en una tienda, con su módulo de respiración de ciclo cerrado y todo. Pero no tenía dinero suficiente, así que Jack, el vendedor, me dijo: "No te preocupes, Vano. Ya me pagarás el resto cuando puedas". "Qué tipo más majo", pensé yo. + + + Vale. ¿Y qué pasó? + + + Vendí el traje viejo y le llevé la pasta a Jack. Y me dijo: "Genial, Vano. Pero, ¿qué hay de los intereses?". Pensé que tenía razón, reuní más pasta y se la llevé. Pero me dijo: "Mientras estabas fuera, el interés ha ido aumentando, Vano". Parece que aumenta a tal velocidad que me es imposible alcanzarlo. Tuve que empeñar el traje nuevo e incluso mis armas. + + + Bueno, ¿y? + + + Quiero pagarle el dinero que he ganado. No hay nada más importante que la reputación de Vano. Pero tengo miedo. ¿Podrías ir a ver a Jack y pagarle por mí? + + + Vale. + + + Eso sí, te recomiendo que lleves un arma potente. Demuéstrale que contigo no se juega, solo así te respetará. + + + Yo me encargo. + + + Estoy muy ocupado. + + + Ya he tenido suficiente. + + + Entonces, ¿puedes ir a ver a Jack y saldar mi deuda? + + + Vale, vale, no dispares. Pagaré tu deuda. Ah, perdona, te he confundido con otro... + + + ¿Qué tal te fue con los bandidos? + + + Hola, tío. ¡Me alegro de verte! + + + Eh. + + + Tenemos visita... Un stalker quiere hablar con Shishak. ¿Vienes a darle un regalo o quieres hablar con él de negocios? Desembucha, colega. + + + Pensaba que no ibas a volver. Bueno, ¿qué me traes? + + + ¿De qué más tenemos que hablar, stalker? + + + ¿Qué quieres? ¿Te pesa mucho el dinero del bolsillo? Podemos ayudarte con eso. + + + Tengo que hablar con tu jefe. + + + Mira, colega, no tengo tiempo para tonterías. ¡Fuera de mi vista! O te vas tú solito o te ayudo yo con mi escopeta. + + + Vale, vale. Me voy. + + + He venido a por el stalker prisionero. Quiero ver a tu jefe. + + + Mm, vale, pero no intentes nada raro si no quieres terminar mal. Sigue recto y cruza el pasillo que está entre los contenedores. ¿Entendido? + + + Sí. + + + Estoy aquí de paso. Ya me voy. + + + He venido a por el stalker prisionero. Quiero ver a tu jefe. + + + ¿Qué más quieres? ¡Piérdete! + + + De acuerdo. + + + Oye, capullo. ¿Me estás insultando? Tienes dinero para salvarle el culo al macarra de tu amigo, pero también tienes que pagarnos para que te dejemos pasar. ¡No me digas que no habías pensado en eso! + + + ¿De cuánto estamos hablando? Tengo que ir a la base, así que tenlo en cuenta. + + + ¡Anda que no tienes gracia! Esto no es una casa de putas, amigo. No hay lista de precios. ¡Vacía los bolsillos, cabrón! + + + Vale, toma. + + + Vale, me voy. + + + ¿Qué? ¿Quieres toda mi pasta? ¡Ni hablar! + + + He pagado el rescate. No hay nada más que hablar. + + + Vale, stalker, nos hemos ganado el sueldo. Vámonos. + + + Gracias, chicos. Hasta la próxima. + + + Espera. Puede que haya más bandidos escondidos. + + + Vale, nos vamos. El chico no lo consiguió, pero hemos hecho todo lo que hemos podido. + + + ¡Espera, no hemos terminado! + + + ¡Te pillé! + + + Ven a Pripyat conmigo. + + + Prefiero quedarme aquí de momento y evitar que Mitay se meta en problemas. + + + ¡Eh, stalker! Muchas gracias por rescatar a Mitay. Íbamos a montar un escuadrón juntos. Toma esto en señal de agradecimiento. + + + ¡Eh, stalker! Muchas gracias por rescatar a Mitay. Eres tremendo. ¡Has liquidado a todos esos bandidos tú solo! Toma esto en señal de agradecimiento. + + + ¡Eh, stalker! Muchas gracias por rescatar a Mitay. Yo tampoco pensaba que pagar el rescate fuese buena idea. Toma, seguro que te vendrá bien este dinero, en señal de agradecimiento. + + + ¡Eh, stalker! Muchas gracias por rescatar a Mitay. Yo tenía razón: ¡nunca te rindas ante los bandidos! Hay que pararles los pies, ¡y tú has tenido cojones para hacerlo! Toma, todos han cogido un trozo, así que no es gran cosa, pero te estamos muy agradecidos. + + + ¿Qué tal fue lo del rescate? + + + Estoy en ello. + + + Bueno, ¿qué tal? ¿Cuándo vas a darles caña a esos bandidos? + + + Pronto. + + + ¿Has cambiado de idea o te están dando problemas los bandidos? Bueno, haz lo que tengas que hacer, pero rápido. No queremos perder la paciencia ni que a Mitay le pase algo. + + + Me pongo a ello. Todo irá bien. + + + ¡Qué bueno ver a un profesional como tú, stalker! + + + Tío, hemos perdido a un buen tipo. Pobre Mitay... No hemos podido salvarlo. ¡Éramos muy amigos! + + + ¿Qué puedes hacer? + + + Ven a Pripyat conmigo. + + + Solo he venido aquí para estar con mis amigos. Voy a quedarme con ellos. + + + Oye, gracias por lo de Mitay. Estábamos a punto de pagar el rescate. Las cosas han salido muy bien... + + + Oye, gracias por lo de Mitay. ¿Cómo conseguiste convencerlos? Tío, tengo mucho que aprender de ti... + + + Oye, gracias por lo de Mitay. ¿Ves como tenía razón? Negociar es la clave del éxito. + + + Oye, gracias por lo de Mitay. Sigo pensando que lo mejor es negociar, pero como todo ha salido bien, estoy contento. + + + Lárgate. Ahora mismo no me apetece hablar contigo. + + + Vale, tranquilo. + + + ¡Hola, Don Profesional! + + + Pobre Mitay... Era tan solo un chiquillo... Tenía toda la vida por delante... + + + ¿Qué puedes hacer? + + + Genial, ya estamos todos aquí. Osopardo me ha hablado de ti... El plan es sencillo: los chicos se pondrán en posición de ataque en torno al perímetro y yo me cargaré al centinela desde mi posición. Ésa será la señal para comenzar el ataque. Tomad nota de nuestras posiciones y haced lo que veáis más apropiado. Seguro que todos tenéis claro lo que hay que hacer. ¿Listos? + + + Lo tendré en cuenta. Vamos. + + + Espera, déjame pensarlo. + + + ¿Te apetece viajar a Pripyat conmigo, Mitay? + + + Los científicos quieren contratar a gente. ¿Te gustaría trabajar para ellos? + + + ¿En qué consiste el trabajo? + + + Defender su búnker. + + + No, tío. Ya he tenido bastante con esos bandidos. Me quedaré aquí sentado relajándome. + + + Hacer mediciones en anomalías. + + + Mmm. Suena interesante. Ya he trabajado para los científicos y si además me lo pides tú... Claro que lo haré. Me iré con Osopardo y Torba al búnker. + + + Cuéntame cómo te secuestraron. + + + ¡Tío, no me lo recuerdes! Fue por mi culpa. Los bandidos me avisaron pero ya sabes... Empezaron a pedirme parte de mi dinero, pero la Zona no es de nadie. ¿Por qué iba a pagarles? + + + Los chicos y yo les dijimos que ni hablar, y al principio parecía que no iba a pasar nada. Pero los bandidos resultaron ser muy astutos y nos tendieron una emboscada. Yo fui tan tonto que me puse a buscar artefactos por mi cuenta, me sorprendieron por detrás y me ataron las manos antes de que pudiera sacar la pistola. Así fue como pasó todo. + + + ¡Gracias por pagar mi rescate! Nunca lo olvidaré. + + + ¡Gracias por rescatarme, stalker! Nunca lo olvidaré. + + + ¡Gracias por colaborar en el pago de mi rescate! + + + ¡Gracias por colaborar en mi rescate, stalker! + + + Gracias por la ayuda, stalker. Mis amigos te recompensarán cuando vuelvan. Regresemos a la base, será más rápido así. + + + En marcha. + + + Ve tú, yo me pasaré luego. Tengo cosas pendientes por aquí. + + + Tío, pensaba que me iba a morir aquí. Caray, ¿Osopardo y Torba han contratado a todos éstos? ¡Madre mía! No he visto un tiroteo así en mi vida. Bueno, ¿nos vamos? + + + Espera, puede haber más bandidos por aquí. + + + Sí. En marcha. + + + Tío, pensaba que no saldría de ésta... Vaya, ¡te has cargado a todos estos bandidos tú solo! Nadie me creerá cuando lo cuente... Bueno, ¿nos vamos? + + + Espera, puede haber más gente por aquí. + + + Sí. Vámonos ahora mismo. + + + ¡Gracias, stalker! Vámonos antes de que los bandidos cambien de idea. + + + En marcha. + + + ¡Hay que salir de aquí, rápido! + + + No podemos rendirnos a las exigencias de los bandidos. Este problema hay que solucionarlo por la fuerza. + + + ¡Exacto! Tengo unos colegas que estarían encantados de ayudarnos. También te pagaremos a ti, si no te importa trabajar en equipo. + + + Estoy listo. + + + ¡Genial! Conozco a un grupo de stalkers que trabajaban en una unidad especial de la policía. Te reunirás con ellos en el lugar convenido después de la 1:00. Te estarán esperando. + + + De acuerdo. + + + Torba tiene razón. No podemos comenzar un baño de sangre si tienen un rehén. Tenemos que negociar. + + + Mmm. Los dos tenéis razón. Lo único es que, si vamos Torba y yo, los bandidos no nos dejarán salir porque nos negamos a aceptar sus reglas. Dijeron que nos enterrarían vivos la próxima vez que nos viesen. Eso sí, si actuases como negociador... + + + Vale, lo haré. Dame el artefacto. + + + Cuidado. + + + Todo va a ir bien. + + + Podríamos estar discutiendo todo el día... Nuestro éxito depende de quien se ponga al mando de esto. Yo mismo me encargaré de esos cabrones. + + + Tío, no me esperaba esto... Buena suerte. + + + Volveré pronto. + + + Vale, pero necesito tiempo para prepararme. + + + Stalker, salva a nuestro colega Mitay, por favor. + + + ¿Qué ha pasado? + + + Mitay está metido en un buen lío... Los bandidos se empecinaron y nos pidieron un porcentaje de los artefactos que encontráramos los stalkers. Los mandamos a la mierda, porque los stalkers no le deben nada a nadie. En principio lo aceptaron, pero después tendieron una emboscada al pobre idiota mientras buscaba botines por su cuenta, y ahora nos piden un rescate por él. + + + ¿Qué vas a hacer? + + + Torba quiere pagar el rescate con un artefacto... Pero yo creo que no tendríamos que darles nada. Si lo hacemos, los stalkers estaremos trabajando para los bandidos. Propongo vender el artefacto, contratar un buen equipo y atacar su base. + + + Ya hablaremos luego de esto. + + + Bueno, ¿vas a ayudarnos a rescatar a Mitay? Torba sigue pensando que deberíamos pagar su rescate con un artefacto. Y yo insisto en que tenemos que atacar la base de los bandidos. Podríamos vender el artefacto y contratar a gente... Pero no hemos decidido qué hacer. + + + ¿Estás listo? Te daremos el artefacto para que pagues el rescate de Mitay y te esperaremos en el bar. + + + ¿Has ido a ver a los bandidos? + + + Todavía no, me estoy preparando. + + + Sí, pero no tengo mucho que contar. Cuando las cosas se aclaren os avisaré. + + + Estuve hace poco en el Oasis y encontré un artefacto. ¿Te interesa? + + + Ja, ¿en serio quieres que me crea eso? Me han contado mil cosas sobre el Oasis pero no conozco a NADIE que realmente haya estado allí. No te ofendas, pero no me lo trago. + + + Tengo documentos de la central de Júpiter. + + + Sí, cógelos todos. + + + Sí, coge la orden de evacuación. + + + Sí, coge las actas de las reuniones. + + + Sí, coge el horario de entregas. + + + Sí, coge la nota del taller de reparaciones. + + + Quizá la próxima vez. + + + ¿Quién ha podido robar cosas de una caja personal? + + + Mis hombres no, desde luego. Habrá sido alguien de Libertad. Si tuviésemos el control de Yanov no pasarían estas cosas. + + + Háblame de Deber. + + + ¿Qué quieres saber exactamente? + + + ¿Qué es lo que hacéis aquí? + + + Lo de siempre. Proteger a los stalkers de todo tipo de alimañas. Ya habrás visto que por aquí hay muchos mutantes y no son como los cachorritos que andan por el Cordón. Por ejemplo, anoche vi una quimera con mis propios ojos. Estaba oscureciendo, así que no pudimos cazarla. Pero no solo nos dedicamos a perseguir mutantes. También investigamos y conseguimos pruebas de los laboratorios abandonados antes de que esos cerdos de Libertad se hagan con ellas. + + + ¿Qué os trajo al centro de la Zona? + + + ¿Lo preguntas en serio? ¿Y qué haces tú aquí? Déjame que lo adivine: estamos aquí por la misma razón. El centro de la Zona siempre ha sido un objetivo inalcanzable, una solución a todas nuestras preguntas. Queríamos descubrir cómo se creó la Zona, y cómo se puede destruir. Es por eso que, en cuanto nos enteramos de que el Cauterizador se había desactivado, nos dirigimos hacia el centro. + + + ¿Y qué habéis descubierto? + + + Muchas cosas, pero es información confidencial. Solo puedo decirte que en la Zona hay más de lo que se ve a simple vista. Los tuyos creen que la Zona es un tumor que hay que extirpar. Por lo que he visto, prefiero pensar que la Zona es un organismo viviente y que nosotros no somos más que bacterias que viven en su interior. Aunque combinásemos las potencias militares de todo el planeta, no podríamos destruir la Zona. Por eso tenemos que usar un enfoque más inteligente: descubrir el motivo de la existencia de la Zona para después eliminarla. + + + ¿Y si no pudieseis eliminarla? + + + Pues entonces tendremos que pensar otra cosa, pero no hemos perdido las esperanzas. Tenemos que cumplir con nuestro deber y ser optimistas. + + + ¿Cómo terminaste en Deber? + + + Es una historia bastante aburrida, y no especialmente heroica. En cuanto apareció la Zona, un amigo llamado Lenya se vino a estudiarla. Yo era oficial del ejército y Lenya estaba en el servicio de inteligencia. No es que fuésemos tontos, pero terminamos metidos en un lío tremendo. Nos arrastramos durante horas, con las heridas sangrando, hasta que finalmente Deber nos recogió. Yo lo conseguí, pero Lenya no. Yo no tenía amigos en la Zona, así que decidí quedarme con Deber. Además, desde entonces le tengo manía a la Zona. + + + ¿Cómo es tu relación con Libertad? + + + Oficialmente estamos en guerra, pero la vida en el centro de la Zona tiene sus propias reglas. Aquí hay muy pocos lugares seguros, y ni Libertad ni Deber tienen muchos hombres. Por lo tanto, ¿qué sentido tiene que nos matemos los unos a los otros? Por eso existe una regla no escrita: mantenernos apartados. Aunque esta regla no se aplica en el exterior de Yanov: ahí fuera hay una verdadera guerra. + + + Vale, olvídalo. + + + Bueno, vale. + + + Quería hablar con Pedernal, un miembro de Libertad. + + + Paso de la gente de Libertad, siempre que se mantengan lejos de nosotros. + + + Pedernal, también conocido como Urraca, se dedica a tender trampas a los stalkers cazadores en Zaton para quedarse con todo su botín. + + + ¿Y qué? No me sorprende. Libertad está llena de basura de ese estilo. + + + Hay algo más: conocí a un stalker en la cantera. Antes de morir, me dijo que Pedernal lo abandonó en una anomalía y se largó con su botín. + + + Ya veo. Esos stalkers de mierda nunca olvidan... ni siquiera en Libertad. Gracias por la información, seguro que nos vendrá bien. + + + Ya sé bastantes cosas sobre él. De hecho, el muy idiota tiene el morro de presumir de haber hecho cosas que en realidad he hecho yo. + + + Eso supone un duro golpe para la reputación de Libertad. Gracias por la información. Seguro que nos vendrá bien. + + + De nada. + + + Vale, tú mismo. + + + Tengo la PDA de Morgan, tu oficial de suministros. + + + De acuerdo. + + + Lo pensaré. + + + De acuerdo. + + + De acuerdo. + + + A ver... Vaya, el muy cabrón hacía negocios por su cuenta y usaba nuestro nombre de tapadera. Si esto sale a la luz, nuestra reputación se irá al garete. ¿Qué tal si te compro esta PDA? Pagaré bien. ¿4.000, por ejemplo? + + + Es una acusación muy grave. Déjame ver la PDA. + + + Toma. + + + La verdad es que yo también sospechaba de él... Ahora sabré si tenía razón. ¡Gracias, stalker! Espero que no comentes con nadie lo que hemos hablado. Tengo una pequeña recompensa para ti, por haber salvado la reputación de Deber... + + + De momento me lo quedo. + + + Otro más... Muy interesante. Lo añadiré al archivo del caso. + + + Toma. + + + ¡Gracias! Aquí va una pequeña compensación por el trabajo. + + + Me lo quedo como recuerdo. + + + Conozco a un grupo de soldados que quieren unirse a Deber. + + + Siempre estamos buscando hombres buenos. Diles que vengan a hablar conmigo. + + + Hay un pequeño problema... fueron soldados de Monolith. + + + ¿Cómo que "fueron" soldados de Monolith? Que yo sepa, los soldados de Monolith, o lo son, o están muertos. No conozco a nadie que "haya sido" soldado de Monolith. + + + Parece ser que estaban controlados por alguien, porque no recuerdan nada de lo que les pasó desde que se fueron a Chernóbil. Ahora ya no son agresivos, y no saben qué hacer. + + + Ya, es bueno que no sean agresivos... Podría encargarles alguna misión sencilla y asegurarme de que están bien de la cabeza. Aunque no estoy seguro al 100%... ¿Podrías responder por ellos? + + + Sí. Tienen mi confianza. + + + Mmm. El problema es que tampoco me fío de ti... de momento. Lo siento. + + + Vale, pero recuerda que si meten la pata, pagarás por ello. El problema es que no podrán llegar a Yanov por su cuenta. Necesito que guíes a mis hombres hasta el escuadrón de Monolith. Hablarán con ellos y, si llegan a un acuerdo, pasarán a formar parte de Deber. Avísame cuando estés listo para salir. + + + No. No confío mucho en ellos. + + + No aceptamos a cualquiera en nuestra facción. + + + Estoy listo para guiar a tus hombres hasta el escuadrón de Monolith. + + + Bien. Te enviaré a dos soldados. + + + De acuerdo. + + + Hablemos más tarde, ahora no puedo. + + + ¡No! Tú harás lo que quieras, pero no permitiré que a mis hombres los alcance una emisión. + + + He encontrado la PDA del fundador de Deber. ¿Te interesa? + + + A ver... Vaya, así que fue así como ocurrió... Creo que los demás no deberían ver esto. De hecho, preferiría que nadie más viese esta PDA. Que la leyenda del creador de Deber siga como está. ¿Me venderías esta PDA? + + + Toma. + + + Gracias. Aquí tienes tu recompensa. + + + Me pensaré tu oferta. + + + Toma la PDA del fundador de Deber. + + + ¡Gracias! Me haces un gran favor. Toma tu recompensa. + + + Necesito soldados para trabajar con los científicos. ¿Puedes ayudarme? + + + Nos encanta ayudar a los científicos. ¿Qué hay que hacer? + + + Están buscando a gente para proteger su búnker. + + + Muy bien. Enviaré unos cuantos hombres. + + + Muy bien. Enviaré unos cuantos hombres. + + + Me gustaría ayudar, pero ya han contratado a gente de Libertad. Enviar un escuadrón nuestro tan solo complicaría una situación ya de por sí bastante tensa. + + + Estoy planeando un viaje a Pripyat. ¿Podrías dejarme unos cuantos hombres para esta misión? + + + ¡Andamos muy escasos de hombres! Habla con Strider: parece ser que no está a gusto en Deber, así que quizá quiera marcharse contigo. + + + ¡Andamos muy escasos de hombres como para enviar soldados a una misión imposible! + + + Habla rápido y vete más rápido aún. ¿Qué quieres? + + + Te escucho. + + + Me alegro de verte con vida. + + + Tengo documentos de la central de Júpiter. + + + Dudo mucho que aquí haya información interesante. Saquearon la central incluso antes de que llegasen los stalkers. Pero... mmm... he encontrado algo jugoso. Me gustaría enseñarle estos documentos a alguien. ¿Me los vendes? + + + Sí, cógelos todos. + + + Sí, coge la orden de evacuación. + + + Sí, coge las actas de las reuniones. + + + Sí, coge el horario de entregas. + + + Sí, coge la nota del taller de reparaciones. + + + Quizá la próxima vez. + + + ¿Quién ha podido robar cosas de una caja personal? + + + ¿Qué soy yo, un vigilante? ¡No me dedico a vigilar tu caja! Mis chicos no han sido, eso seguro. Nunca harían algo así. + + + Háblame de Libertad. + + + Es una larga historia. ¿Qué quieres saber? + + + ¿Qué es lo que hacéis aquí? + + + Nos aseguramos de que los oficiales no oculten nada a la gente de a pie. Ya sabes cómo es esto: en cuanto descubren un nuevo laboratorio o salen a la luz documentos sobre los secretos de la Zona, organizan de inmediato una operación militar y dejan el lugar más limpio que una patena. La única forma de descubrir las cosas es adelantándose a ellos. + + + ¿Qué os trajo al centro de la Zona? + + + Bueno, a los chicos les apetecía darse una vuelta por un sitio nuevo. Ahora en serio, es una oportunidad para descubrir cosas que no se habían visto antes. Ni el ejército ni los stalkers han estado aquí, así que te encuentras con cosas nuevas a cada paso que das. + + + ¿Has encontrado algo? + + + Un par de puertas cerradas y varios artefactos raros. + + + ¿Cómo terminaste en Libertad? + + + Era amigo de varios líderes de Libertad cuando todavía no existía la Zona. Bueno, por aquel entonces no eran líderes de nada, tan solo unos hippies. Así que cuando me trasladé a la Zona en busca de artefactos y me encontré con varias caras que me sonaban, pensé que era mejor lo malo conocido que lo bueno por conocer. + + + ¿Qué piensas de Deber? + + + Son idiotas, eso es lo que pienso. A ver, ¿por qué narices quieren destruir la Zona? No consume recursos valiosos ni se está haciendo más grande ni nada de eso. Podrían dedicarse a estudiarla a fondo: piensa en todos los descubrimientos científicos que podrían hacerse... Por ejemplo, el hombre nunca ha sido capaz de entender la antigravedad, ¿verdad? Y la Zona está repleta de dispositivos antigravitatorios. No me importaría echar a todos esos idiotas de allí, pero eso sería mucho jaleo. Por cierto, no te confundas por nuestras relaciones aquí en Yanov. Estamos en guerra... pero Yanov es territorio neutral, no sé si me explico. + + + Vale, olvídalo. + + + No hay problema. + + + Quería hablarte de uno de tus stalkers. + + + ¿Ah, sí? Pues dime. ¿No vendrás a darme un soplo sobre alguien? + + + Tu stalker Pedernal se hace llamar Urraca en Zaton. Los stalkers cazadores de allí lo están buscando porque los engañó y se quedó con su botín. + + + ¿Y esperas que me crea eso? + + + Escucha las historias que cuenta en el bar. Primero estafó a esos stalkers y ahora te miente a ti. + + + Vale, calma. Hablaré con Barbas, a ver qué me cuenta. Si su versión coincide con la tuya, nos encargaremos de Pedernal al más puro estilo Libertad. + + + Mmm. Me pregunto cómo pudo hacerse con el artefacto con tal rapidez. Supongo que la mitad de su historia era mentira. Hablaré con mis hombres. Si su versión coincide con la tuya, nos encargaremos de él al más puro estilo de Libertad. + + + De nada. + + + De acuerdo. + + + De acuerdo. + + + Lo pensaré. + + + Toma. + + + De acuerdo. + + + Conozco a un grupo de soldados que quieren unirse a Libertad. + + + Siempre nos interesa gente buena. Pueden unirse a nosotros si están preparados para ello. + + + Hay un pequeño problema... antes fueron soldados de Monolith. + + + ¿Eso es un "pequeño" problema? Prefiero mantenerme al margen de la gente de Monolith. No hay nada más que hablar. + + + Éstos son pacíficos. Parece ser que estaban controlados por alguien, porque no recuerdan nada de lo que les pasó desde que se fueron a Chernóbil. Ahora no saben qué hacer. + + + Lo siento, sigo escéptico. ¿Y si me estuvieses mintiendo? + + + Eh... Bueno, supongo que tampoco pasa nada si hablamos con ellos. Te enviaré un par de hombres para que los lleves hasta el escuadrón. Hablarán con ellos y, si todo va bien, tus soldados de Monolith podrán entrar en Libertad. + + + ¿Por qué no te vas al cuerno? Es increíble que estés dando a entender que en Libertad aceptamos todo tipo de escoria. + + + Quiero pedirte que aceptes a ese escuadrón de Monolith en Libertad. + + + Mis hombres están listos. + + + Vale, diles que me sigan. + + + Mejor más tarde. + + + Esperemos un poco. Las emisiones no son sanas. + + + He encontrado la PDA del fundador de Deber. ¿Te interesa? + + + Si contiene algo útil, sí. ¡Anda, esto sí que es interesante! Siguen difundiendo su propaganda de mierda por la Zona, pero ahora resulta que lo que cuentan es todo mentira. Tengo ganas de leer esto a fondo. Oye, te pagaré bien por esta PDA. + + + Toma. + + + Gracias. Aquí tienes la pasta. + + + Lo pensaré. + + + Toma la PDA del fundador de Deber. + + + Gracias. Aquí tienes la pasta. + + + Los científicos quieren contratar a gente. ¿Puedes enviarnos a alguien? + + + Depende. ¿Qué hay que hacer? + + + Proteger el búnker de los científicos. + + + Muy bien. Enviaré unos cuantos hombres. + + + Muy bien. Enviaré unos cuantos hombres. + + + Me gustaría ayudar, pero Deber ya está allí. Ya pasamos bastante tiempo con esos capullos en Yanov. Así que mejor que no, gracias. + + + ¿Podrías dejarme un escuadrón para ir a Pripyat? + + + Habla con Strider, el nuevo recluta. No está muy contento aquí, así que puede que se vaya contigo. + + + Si dispusiese de hombres suficientes, quizá. Pero no es el caso, ya tenemos bastante jaleo. + + + Bueno, ¿tú qué dices? + + + ¿Qué haces aquí? + + + ¡Me alegro de verte, tío! En Libertad me han hablado muy bien de ti. ¿Qué puedo hacer por ti? + + + He encontrado un objeto extraño en el túnel del ferrocarril. ¿Te interesa? + + + Eh... no. Es chatarra. Parece un artefacto, pero no tiene ningún efecto. Esa basura se la solemos regalar a los científicos. + + + He encontrado un objeto extraño en Zaton. ¿Te interesa? + + + ¿Y qué quieres que haga con él? Ni siquiera me interesan los artefactos normales... Enséñaselo a los científicos, pagan bien por chatarra como ésa. + + + Estoy buscando a gente para proteger el búnker de los científicos. ¿Sabes de alguien? + + + Nadie mejor para ello que Libertad. También puedes intentar algo con los stalkers, pero no son muy de fiar. Si te engañan, ¿cómo harás para encontrarlos? Y lo que no te recomiendo es que hables con Deber. Esos fanáticos solo sirven para cargarse mutantes y punto. + + + Estoy buscando gente que pueda recoger muestras para los científicos. ¿Sabes de alguien? + + + Claro. Habla con Loki, seguro que te ayudará. También puedes intentar algo con los stalkers, pero no son muy de fiar. + + + Alguien me ha robado cosas de una caja. ¿Sabes quién puede haber sido? + + + ¿En qué se está convirtiendo este lugar, tío? Dudo que fuese alguien de Deber porque tienen una disciplina muy estricta, incluso demasiado para mi gusto. Y en Libertad nadie quiere tu basura, así que tiene que haber sido un stalker. + + + El otro día conocí a un escuadrón de Monolith. + + + ¡Caray! Yo nunca he visto ninguno. Me han contado historias escalofriantes de esa gente. Dicen que los de Monolith son unos completos chiflados. Sería un combate duro, ¿no? + + + No hubo ningún combate. Son gente pacífica. Me dijeron que habían estado mucho tiempo con una venda en los ojos, pero que por fin volvían a ser ellos mismos. Pero ahora no saben qué hacer, así que estoy intentando que entren en una facción. + + + Vaya, qué interesante. Bueno, a los stalkers hay que descartarlos porque lo más probable es que les pegasen un tiro, teniendo en cuenta sus enfrentamientos anteriores... Prueba a hablar con Loki. Nadie los tocará si llevan uniformes de Libertad. + + + ¿A quién podría interesarle la verdad sobre el fundador de Deber? + + + Pues no sé, la verdad. Depende de lo mucho que se aleje de la versión oficial de Deber. Habla con Loki y él te dirá. + + + Tengo la PDA del oficial de suministros de Deber. ¿Te interesa? + + + Ni en un millón de años. Conozco a alguien que vende todo mucho más barato. Y además, no me interesa nada lo que me ofreces. + + + ¿Quién podría venirse a Pripyat conmigo? + + + ¿A Pripyat? ¡Vaya! Me encantaría dejarlo todo e irme contigo, pero tengo un montón de cosas que hacer... + + + ¿A Pripyat? ¡Caray! Pregúntale a Loki por si conoce a alguien. No creo que le diga que no a un buen hombre como tú. + + + ¿Vienes a refrescarte? No sirvo nada del otro mundo, pero este lugar es acogedor y agradable. + + + Tengo cualquier cosa que necesites. ¿Qué andas buscando? ¿Algo de comer? ¿Una copa? ¿O disparar un poco? + + + Estoy buscando a gente para proteger el búnker de los científicos. ¿Sabes de alguien? + + + Habla con los stalkers. Seguro que les gustaría trabajar para esos empollones. Entre otras cosas, porque tendrían un permiso especial para estar en la Zona. + + + Estoy buscando gente que pueda recoger muestras para los científicos. ¿Sabes de alguien? + + + Te recomiendo que no trabajes con stalkers sin experiencia. No encontrarán nada, incluso es posible que pierdan algo. + + + El otro día conocí a un escuadrón de Monolith y quería preguntarte algo. + + + Mmm. Normalmente, los que se cruzan con soldados de Monolith terminan con varios agujeros de más y sin pulso. Aunque tú pareces bastante saludable. Bueno, ¿qué quieres preguntarme? + + + Este escuadrón no es así. No he luchado, sino hablado con ellos. + + + ¿En serio? + + + Pues sí. Me han dicho que habían estado mucho tiempo con una venda en los ojos, y que ahora no saben qué hacer. Me han pedido consejo. + + + Mi consejo es que ni se acerquen a los stalkers, porque tienen demasiada memoria como para permitirles seguir con vida. Quizás podrías conseguir que entrasen en una facción, pero no sé si Deber o Libertad querrán tener algo que ver con ellos. + + + Tengo una PDA con la verdad sobre el fundador de Deber. ¿Te interesa? + + + No me van los cotilleos, ¿vale? Si quieres vender información, habla con Búho. Le encanta toda esa mierda. Y teniendo en cuenta el tipo de información, seguro que a Loki o a Shulga también les podría interesar. + + + Tengo la PDA del oficial de suministros de Deber. ¿Te interesa? + + + Sospecho que esta PDA me va a traer problemas con Deber y eso no me interesa. Es mejor que hables con Búho. + + + Necesito asistencia médica. + + + Déjame echar un vistazo... + + + Eso está mejor. + + + ¿Quién podría venirse a Pripyat conmigo? + + + Habla con un stalker llamado Vano. Es un tío tan honesto que siempre anda metido en líos. + + + Por aquí no hay mucha gente chiflada, colega. Mejor busca en otra parte. + + + ¿Necesitas medicinas o has venido a charlar un rato? + + + Alguien me ha robado cosas de una caja. ¿Sabes quién puede haber sido? + + + ¿Sabes cómo se llama ese stalker? + + + Creo que lleva poco tiempo aquí. ¿Cómo se llama ese cabrón? ¿Snob? ¿Snack? No, no... ¡No, se llama Snag! Sí, eso es, Snag. + + + ¿Qué tal, hermano? + + + Oye, tengo algo importante que contarte. + + + Genial. Primero tomemos un trago y después veamos qué es eso tan importante. + + + ¡Vale, tomemos algo! + + + No, ahora no me apetece beber. + + + Bueno, ¿y qué era eso que querías contarme? + + + Tengo pensado ir a Pripyat por el pasadizo que hay bajo la central de Júpiter. Nitro puede abrir la entrada. + + + Mmm. A Pripyat por un pasadizo subterráneo. Necesito otro trago para digerir eso. + + + Salud. + + + Qué bueno está esto. Oye, ¿no pensarás encargarte de esa misión tú solo? No, de eso nada: iré contigo. Y necesitaremos más gente. Un par de hombres de confianza nos vendrán muy bien en algo así... + + + Nitro me dijo que montase un escuadrón. + + + Sí, es una buena idea. ¡Otra ronda por el éxito de la misión! + + + ¡Hasta el fondo! + + + Puedo hacerlo solo. En Zaton me cargué una guarida de chupasangres sin ayuda. Un par de depósitos de gasolina y pan comido. + + + Brutal, tío. Un brindis: ¡porque siempre tengamos un depósito de gasolina a mano! + + + ¡Amén! + + + Gente de confianza, ¿eh? No sé, este lugar está lleno de carroña... El otro día conocí a un comerciante en Zaton, pero resultó que era de Deber... + + + Caray, así que Deber ahora se pudre por dentro, ¿eh? ¿Qué va a ser de este mundo? En fin, olvidemos las preocupaciones con otra copa. + + + Me rindo a tu sabiduría. Salud. + + + Mmm. Qué bueno, ¿eh? Un escuadrón es una buena idea. Necesitaremos al menos tres hombres. ¿Se te ocurre alguien? + + + Ya encontraré a alguien... También necesitaremos trajes con módulos de respiración de ciclo cerrado... + + + Sí, la seguridad es lo primero. Yo ya tengo un traje pero necesitamos los de los demás, y eso no es tarea fácil: esos trajes no son nada comunes por aquí. ¡Brindemos por que la búsqueda tenga éxito! + + + Salud. + + + ¿Conoces a ese tío tan raro que se llama Noé? Se encerró en una barca con todo tipo de cosas... Su forma de saludarte es abrirte dos agujeros con la escopeta. + + + Sí, hace mucho que no sé nada de él. Trabajé con él durante una época. Era buen luchador... Una pena que haya terminado así. ¡Brindemos por él y por su salud mental! + + + ¡Por Noah! + + + Me encontré con Vano en Yanov hace tiempo y aún no había conseguido saldar su deuda con los bandidos. Tuve que ayudar a ese pobre desgraciado... + + + Genial. El viaje será mucho más divertido con él. Y además puede encargarse de los suministros. ¡Por Vano! + + + ¡Y que lo digas, hermano! + + + Hay un soldado en el búnker de los científicos. No tiene nada que hacer allí, así que puede que se venga con nosotros. + + + Sí, un soldado nos vendría bien. Brindemos por que se una a nuestra causa. + + + Hace. + + + No te lo vas a creer, pero el otro día ayudé a un escuadrón de Monolith... Parece ser que de repente han recuperado la cordura y no saben qué hacer. Así que los ayudé y ahora están en Yanov. + + + Mmm. ¡Creo que el vodka se te ha subido a la cabeza! ¡Ja, ja! Normal: ¡está de muerte! + + + Y que lo digas. + + + Bueno, pues ya está: lo principal es que no nos perdamos bajo tierra... + + + No te preocupes. Tengo un plano. + + + Genial. Tomemos otra por el éxito de nuestra misión. + + + ¡Brindo por eso! + + + Relájate, tío. El otro día encontré ese oasis al que nadie sabe llegar. + + + Caray. Eres todo un explorador, colega. Contigo seguro que llegamos a Pripyat en un momento. Salud. + + + Salud. + + + ¡Hola! + + + Creo que ya tenemos gente suficiente. Podemos partir. + + + ¿Seguro? Otro par de manos no nos vendría mal. + + + Seguro. Vamos. + + + Tienes razón. Intentaré encontrar más gente. + + + Bien. Vámonos, tíos. + + + En marcha. + + + Está bien contar con soldados pero, ¿qué hay del tema de la protección? Necesitas un traje con un módulo de respiración de ciclo cerrado antes de irnos... No tengo ganas de cargar con tu cadáver, ya pesan bastante el cañón y las balas. + + + Sí, lo tengo. + + + Esperemos un poco. ¡Las emisiones son peligrosas! + + + ¿Dónde puedo encontrar soldados para nuestro escuadrón? + + + Pregunta por Júpiter. Los que están en Zaton no querrán irse a Pripyat. Necesitamos gente sin ataduras de ningún tipo y que quieran unirse a una misión desesperada. ¿Has conocido a alguien así? Gente que esté en deuda contigo o que no se haya asentado del todo... + + + Ya tenemos gente de sobra. Tampoco necesitamos un ejército. Usaremos tácticas de escuadrón. + + + ¿Qué piensas de Strider? + + + Los soldados de Monolith suelen ser temibles y fanáticos. Pero no sé cómo son sus ex soldados. Strider parece tranquilo por fuera, pero las apariencias engañan. + + + ¡Caray! Blindaje de Monolith. ¿De dónde diablos lo has sacado? + + + En el mismo paquete venía Strider, un antiguo soldado de Monolith. + + + No sabía que se podía ser "antiguo" soldado de Monolith. En fin, a ver qué sorpresas nos da este chico. + + + ¿Qué opinas de Sokolov? + + + Ese tipo lleva un traje interesante, de lo más científico. Hacía un par de años como mínimo que no veía uno así. + + + Es Sokolov, el copiloto del helicóptero militar que se estrelló. + + + Por la forma en que se comporta ya sospechaba que no era un científico. Un buen soldado nunca está de más. + + + ¿Cuánto hace que conoces a Vano? + + + Nos hemos visto en Los 100 Rads un par de veces. Dicen que es honrado, optimista y un buen stalker... Pero es demasiado inocente, y eso puede resultar fatal en la Zona. + + + Así que Vano se viene con nosotros, ¿eh? Genial, así cargará con nuestras cosas... Ja, ja. Tranquilo, hombre, era broma. + + + ¿Quién ha podido robar cosas de una caja personal? + + + ¿Te han robado algo? Vaya. No sé qué decir. Por aquí no he visto a nadie sospechoso. Si descubro algo, te lo diré. No queremos ratas en esta base. + + + Me han dicho que hubo un tiroteo por aquí hace poco... + + + Ah, fui yo. Había unos idiotas cerca de la torre que se pusieron a discutir y a gritar. Disparé un par de ráfagas con mi vieja ametralladora y echaron a correr hacia la subestación. Y así dejaron de darme la lata, je, je. + + + He decidido entregar al artefacto del Oasis. + + + Sabia decisión. Dámelo. + + + Toma. + + + Genial. Tengo que estudiar este milagro inmediatamente. Ah, por cierto. Gracias por tus servicios, aquí tienes la paga. + + + ¿Necesitas ayuda? + + + Gracias. Ya tenemos un escuadrón de stalkers a nuestro servicio. Aunque... Existe una teoría, o más bien una leyenda... ¿Has oído hablar del Oasis? + + + Intentaré encontrar el Oasis. + + + Lo siento, ahora mismo estoy muy ocupado. + + + No, no sé nada. + + + Pues escucha. Muchos hablan de él pero parece que nadie lo ha visto. Las aguas del Oasis son reconstituyentes. Si entras en ellas, tus heridas cicatrizan y recuperas toda la energía. Circulan rumores de todo tipo, a cada cual más increíble. Algunos dicen que lo han visto en sueños. Pero yo, como científico, me veo obligado a preguntar: "¿Cómo sabes que era de verdad el Oasis?" Si te animas a buscarlo... no puedo prometerte una gran recompensa. Pero si el Oasis existe de verdad, supondrá un gran avance en nuestra investigación. + + + He encontrado el Oasis. + + + ¿En serio? ¿Entonces existe? No quiero parecer un escéptico, pero... ¿me has traído algo como prueba? + + + Sí. He encontrado algo que parece un artefacto. + + + ¡Dámelo ahora mismo! + + + Toma. + + + Genial. Tengo que estudiar este milagro inmediatamente. Ah, por cierto. Gracias por tus servicios, aquí tienes la paga. + + + Lo siento. Creo que podría serme útil. + + + Qué egoísta eres. Por no decir irresponsable. Este artefacto posee propiedades desconocidas. ¿Qué harás mañana si te despiertas con las piernas paralizadas? ¿O si tu piel se vuelve verde? Te aseguro que es mejor que estos objetos estén en manos de un científico: al menos nosotros sabemos cómo protegernos bien. + + + No intentes asustarme. Me quedo el artefacto. + + + Vale, muy bien. Toma. + + + No. + + + ¿No? ¿Y qué pretendes que estudie entonces? ¿Sabes lo que diferencia a un científico del resto de personas? ¡Que para nosotros una teoría se demuestra con hechos! ¡Necesito pruebas! + + + Vale, enseguida vuelvo. + + + Ya he perdido mucho tiempo. No puedo volver. + + + Si la recompensa te da igual, piensa al menos en todos los avances médicos que supondría el Oasis. A no ser que me equivoque, el Oasis es en realidad una anomalía... así funcionan las cosas en la Zona. Y por tanto, ¡sería la primera anomalía con propiedades curativas! + + + ¿Qué te trae por aquí? + + + ¿Has visto a los mercenarios que nos protegían? + + + Me alegra encontrar a otra persona inteligente. ¿Qué puedo hacer por ti? + + + ¡Increíble! ¡Han asesinado en el exterior del búnker a los mercenarios que nos protegían! + + + Hermann, ¿qué sabes del Oasis? + + + ¿El Oasis? Ja. Es una mentira, así de sencillo. La gente desea creer en todo tipo de panaceas curativas, por eso creen en esos cuentos. De verdad, el Oasis no es más que el fruto de la imaginación desatada de alguien. + + + Mucha gente habla de ello. + + + Demasiada. Pero ninguno ha estado allí. Según mi punto de vista científico, solo existe aquello que se puede demostrar. + + + Entiendo... Gracias. + + + Vale, vamos. + + + Genial. Estaremos de vuelta antes de que termines de decir "chupasangre". ¡Ja! + + + Ya veremos. + + + Vale. Pero esperemos a que termine la emisión y después nos vamos. + + + Muy buenos días, stalker. Soy el Tío Yar. Supongo que vendrás cansado del viaje, ¿no? Come algo, ya que estás aquí. Has venido en muy buen momento, porque necesito ayuda. A mi edad hay cosas que no puedo hacer solo. Aunque cuando era joven... + + + ¿Has descansado? ¿Te apetece dar un paseo? Ayuda a este anciano... + + + ¿Qué tal todo? Cada vez te veo mejor... + + + ¿En qué consiste el trabajo? + + + Está chupado. Tienes que venir conmigo a Kopachy; no está lejos de aquí. Ya descubrirás el resto cuando lleguemos... + + + ¿Por qué no te ayudan tus amigos de Libertad? + + + No quiero molestarlos con esto. Nosotros dos nos apañaremos. + + + ¿Te vienes a Pripyat conmigo? + + + No. Si fuese más joven... Recuerdo que solía ir y venir de Siberia a pie, pero hoy en día prefiero los viajes cortos. Estoy ya muy mayor. + + + Cuídate. + + + Espera, ¿podría acompañarte a Yanov? No estaría mal tener alguien con quien hablar. + + + Gracias, pero prefiero ir solo. + + + Vamos a Yanov. + + + Gracias por ayudar a este anciano. Si tienes alguna pregunta, intentaré responderla lo mejor que pueda... + + + ¿Por qué no pediste ayuda a miembros de Libertad? + + + ¡No quiero que los mercenarios se enfaden con Libertad! Ya hemos tenido una guerra y no quiero otra. Es un asunto personal y no quiero involucrarlos. + + + ¿Qué ha pasado aquí? + + + Unos tipos vinieron a asesinarme... Estaba escondido entre los arbustos y de repente apareció un escuadrón de mercenarios. Su líder estaba hablando por su PDA sobre un laboratorio central de Pripyat, una orden urgente y tal y cual... Entonces pisé una rama sin querer y delaté mi presencia. Cogí el rifle y eché a correr, pero tenía el presentimiento de que vendrían a por mí. Hoy en día, ése es el precio que pagamos por escuchar una conversación sin querer. + + + Lo importante es no dejarte sorprender por nada. Sígueme sin hacer ruido... Si somos silenciosos y no nos movemos, todo será mucho más fácil. + + + De acuerdo. + + + Tenemos que salir de aquí. Ya hablaremos luego. + + + De acuerdo. + + + Estoy reuniendo un pelotón para ir a Pripyat. ¿Quieres acompañarme? + + + Suena bien... pero no, gracias. Los científicos me han prometido un permiso para estar en la Zona y además me pagan bien. Lo siento, pero me quedo aquí. + + + ¿Listos para tomar medidas de las anomalías? + + + Sí, siempre que nos cubras. ¿Qué anomalía tenemos que buscar? + + + Vamos a la Ciénaga. + + + Dejemos atrás el pueblo de Kopachy para llegar al Cenizal. + + + Espera, he cambiado de idea. No quiero salir ahora. + + + Ya estamos listos, pero deberíamos esperar a que terminase la emisión... + + + De acuerdo. + + + Medidas finalizadas. Vamos. + + + Yo tampoco quiero quedarme aquí. ¿Adónde vamos? + + + Vamos a la Ciénaga. + + + Dejemos atrás el pueblo de Kopachy para llegar al Cenizal. + + + Al búnker de los científicos. + + + Espera, déjame pensar. + + + ¿Listos para volver al búnker? + + + Lo estamos de sobra. + + + Pues entonces vamos. + + + Vale, dame solo un segundo... + + + Tengo un par de preguntas. + + + Dime, intentaré responderlas. + + + Creo que eso es todo. + + + Quería preguntarte por la misión de los científicos. + + + Ah, el túnel... Aquí hay algo, un artefacto extraño o algo por el estilo. Es un lugar muy raro. Al principio parecía tranquilo, pero empecé a notar algo... Además, está lleno de hámsteres pero no nos supondrán un gran problema. + + + ¿Habías estado aquí antes? + + + Sí, pero no avanzamos mucho. Vinimos a tomar medidas para Hermann y empezaron a salir hámsteres de todos lados. Cuando volvimos, los científicos se entusiasmaron con los resultados, pensé que iban a echar a volar. Nos pidieron que registrásemos el túnel por completo, pero me negué. Ahora que te han contratado, nosotros nos dedicamos solo a ofrecer protección. + + + Entiendo. + + + Bueno, no es la primera vez que tomamos medidas, así que todo irá bien. + + + ¿Dónde habíais tomado medidas antes? + + + Bueno, "medidas" nos viene un poco grande para lo que hacemos. Tan solo tomamos medidas reales una vez: en el campo psíquico anómalo de aquel puto túnel. Incluso esa vez, en cuanto encendimos los aparatos, comenzaron a salir hámsteres de todos los túneles. Mace salió de allí con vida por los pelos. + + + ¿No te parece extraño? + + + No, ¿por qué? En la Zona no quieren gente entrometida, así que es normal. Eso me contó una vez Ozersky; puedes comprobarlo hablando con él. Quizás sepa algo que no ha contado a los demás. + + + Entiendo. + + + Entiendo. + + + ¿Qué puedes contarme de la gente que vive en el búnker? + + + Bueno, son bastantes. Por un lado dos científicos: Hermann, el pez gordo, y Ozersky. Han contratado a Novikov, que se encarga de los asuntos técnicos y a Garry, el guía. Y después estamos nosotros: nos contrataron hace poco para tomar medidas y hacer otras tareas científicas. Ah, el otro día Garry trajo al búnker a un soldado. Eso es todo. + + + Háblame de Hermann. + + + Hermann es el jefe de esto. Es profesor de instituto, probablemente de alguno secreto... Organizó la expedición, por eso crearon este búnker aquí casi inmediatamente después de que se desactivase el Cauterizador cerebral. También fue quien nos contrató a Garry y a los demás. Paga bien e incluso nos ha prometido un permiso oficial para entrar en la Zona. + + + Cambiemos de tema. + + + Háblame de Ozersky. + + + Es un tío legal y simpático, además del número dos del grupo, aunque Hermann escucha sus consejos de vez en cuando. No sé mucho más sobre él. Es con Hermann con quien hablamos casi siempre. + + + Háblame de Novikov. + + + Es como un Einstein de vacaciones, tío. Sabe perfectamente lo que hace en materia de instalaciones técnicas; de hecho, es mejor que cualquiera que conozcas. No sé cómo ha terminado aquí pero está claro que la Zona no le es extraña: sabe mucho más de este lugar que nosotros. + + + Háblame de Garry. + + + Garry es un tipo genial, fue uno de los primeros en llegar aquí. Me dijo que a los científicos los dejaron aquí cuando él llegó, así que se unió a ellos en ese mismo instante. Últimamente se aburre mucho, porque no le gusta estar de brazos cruzados; pero tampoco puede irse hasta que termine su contrato con los científicos. Si quieres saber más, habla con él directamente. + + + Háblame del soldado. + + + Ja. Garry se lo encontró mientras huía de unos zombis. Tuvo suerte que se tratase de Garry, porque cualquier otro se lo habría cargado. Ahora nunca sale del búnker, y no lo culpo por ello. + + + ¿Qué hacen aquí los mercenarios? + + + Esos putos matones protegen el búnker. Vinieron un día, hablaron con Hermann y se quedaron. Tengo la impresión de que a Hermann tampoco le gustan mucho. Su líder se llama Negro, nombre muy acorde a su personalidad. + + + ¿Qué me puedes contar de esta área? + + + Bueno, hay una antigua base militar no muy lejos de aquí. Al norte está el pueblo de Kopachy y al este una estación de tren por la que andan los stalkers. Ah, también hay un tren en las vías cercanas. Un lugar nada divertido, te lo aseguro. + + + Háblame de la antigua base militar. + + + Pues no hay mucho que contar... Todo lo que había de valor se lo llevaron hace una eternidad. Y ahora solo quedan mutantes y zombis. También hay un pequeño búnker, que sirve para protegerse de una emisión. + + + Háblame del pueblo. + + + Bueno, no es exactamente un pueblo, más bien un grupo de colinas. Se enterró en el 86 para evitar que emitiese radiaciones. La gente ya no va a ese lugar porque no es saludable y además allí no hay nada de valor. + + + Háblame de la estación de tren. + + + ¿Puedes contarme algo del tren? + + + Bueno... Merece la pena visitar la estación de Yanov si no has estado nunca allí. Es un buen sitio para tomar una birra y conocer a otros stalkers. Además, es el único sitio seguro de este lugar, aparte de nuestro búnker. + + + Veo que tienes nuevo equipo. + + + Pues sí. ¡Ahora nos llamamos Equipo de investigación científica Iskra! Pero aunque ahora seamos científicos, no vamos a olvidarnos de vosotros, ja, ja. Mis "colegas" y yo hemos discutido a fondo sobre este tema y hemos llegado a la conclusión de que... ¡te has ganado esto, colega! Si te encuentras en una anomalía o te afecta una emisión, Dios no lo quiera, envíanos una nota de agradecimiento. ¡Recibiremos el mensaje, te lo aseguro! + + + Eh. + + + Hola. + + + Bueno, ¿nos vamos, o esperamos un poco? + + + ¡Pensaba que me iba a quedar para siempre en ese túnel, convertido en un zombi descerebrado! ¿En qué puedo ayudar al hombre que me ha salvado? + + + ¿Te apetece estirar las piernas? + + + ¡Eh, colega! + + + Estamos en deuda contigo. No lo olvidaré. + + + Tengo la sensación de que aquí no nos queda nada por hacer. ¡Larguémonos de este lugar! + + + Bueno, ¿qué le pasa a ese túnel? + + + Allí no hay ni una sola mota de polvo. Hermann dice que es por el Tesla, pero me cuesta creerlo. + + + Pregunta al jefe. No sé lo que puedo contarte y lo que no. + + + Dime lo que encontraste mientras medías el campo psíquico. + + + Vi pisadas en el suelo. Parecían humanas, pero, ¿quién iba a estar tan loco como para caminar descalzo en aquel lugar? + + + Tu mente se confunde y todo lo que ves comienza a adoptar esas formas raras. Es ese puto campo psíquico, ¿sabes? + + + ¿Qué encontraste bajo tierra? + + + Poca cosa, tan solo un par de hámsteres muertos. + + + Eh... Nada que no puedas encontrar en cualquier otra parte de la Zona. + + + ¿Estás bien? + + + ¡Muy bien, gracias! Te daré unas coordenadas como gesto de gratitud. Podrás quedarte con cualquier cosa que encuentres allí. No es un gran regalo, pero te lo hago con el corazón... + + + ¿Cómo te sientes? + + + ¡Muchas gracias, tío! No tengo palabras para agradecértelo... Toma las coordenadas de nuestro escondite, en señal de gratitud. + + + ¿Sigues con vida? + + + Gracias, nunca olvidaré esto. Toma las coordenadas de nuestro escondite. Te las mereces... + + + ¿Te funciona el cerebro? + + + Tío, he visto cada cosa en... Jamás podré olvidarlo... + + + ¿Volvemos al búnker? + + + ¡Claro! + + + Pues venga, vamos. + + + Ve tú primero. Nos vemos allí. + + + ¿Está el escuadrón listo para ir al túnel? + + + Cuando tú digas. + + + Ya. Vámonos. + + + Espera un poco. + + + Iré solo. Nos vemos allí. + + + Iré solo. Nos vemos allí. + + + No. No nos fiamos de ti y el tiempo es oro: o te vienes con nosotros o nos quedamos aquí. + + + En ese caso, vámonos. + + + En ese caso, tendréis que esperar. + + + Ni hablar... No podemos arriesgarnos durante una emisión. + + + Aquí estamos. + + + Bueno... ¿Manos a la obra? + + + Sí, claro. + + + Dame un segundo para orientarme. + + + ¿Qué demonios quieres? + + + Estoy de paso, nada más. + + + Vale, pues sigue caminando. + + + De acuerdo. + + + Relájate, idiota. + + + ¡No es asunto tuyo! + + + Ah, hola... + + + Nimble me ha dicho que eres un cabrón y un traidor. Seguro que has engañado a muchos stalkers... + + + ¿De qué hablas? ¡En mi vida he hecho algo así! ¡Nimble está mal de la cabeza! + + + ¿Qué les has contado a los bandidos sobre mí? ¿Por qué me estaban esperando junto a las grúas del muelle? + + + Me estás confundiendo con otro. ¡Yo no trato con bandidos! + + + Nimble me ha hablado de ti. Te aconsejo que me des el arma si no quieres que se compliquen las cosas. + + + ¿Qué te ha dicho? ¡No tengo nada que no sea mío! + + + Anda, lárgate... + + + ¡Ayúdame, colega! ¡Necesito un botiquín! + + + ¡Primero dime dónde están mis cosas! + + + Lo siento, tío. Necesitaba el dinero... Te lo contaré todo, ¡pero ahora ayúdame! En serio, ya paso de esas historias, ¡me he vuelto formal! + + + Vale, toma. + + + ¡Gracias, tío! Tus cosas están en mi escondite de las cloacas, bajo la subestación. + + + Entiendo. + + + No te creo. Y no te voy a dar el botiquín. + + + Toma. + + + No te lo pienso dar. + + + Gracias. No pensaba que fueses a ayudarme... + + + ¿A quién podría contratar para proteger a los científicos? + + + A Deber, claro. Son los mejores soldados de la Zona, ¿o no? Guardias de artillería pesada. ¿Qué tal te suena eso? + + + ¿No han contratado a gente de Libertad? En ese caso, no sé. Iba a recomendarte Deber, pero no se llevan muy bien con Libertad. + + + ¿A quién podría contratar para tomar medidas para los científicos? + + + Habla con Shulga. Sus hombres no es que sean ingenieros espaciales, pero hay algunos muy buenos. + + + ¿No han contratado ya a gente de Libertad? Si es así, el único consejo que puedo darte es que no contraten a soldados de Deber. + + + Cuando entramos en el paso subterráneo, el ascensor se estropeó... + + + Ja. Bajaste con el único generador que funciona. Y además, es el de seguridad. Conseguí que funcionase un poco y luego murió. Da las gracias a que no se fundiese a mitad de camino: ¡el ascensor no tiene salida de emergencia! + + + ¿Quién ha podido robar cosas de una caja personal? + + + ¡Diablos! Pues no sé. Solo puedo decirte que si Shulga estuviese al cargo en Yanov, eso nunca habría sucedido. + + + ¿Puedes forzar un contenedor de acero? + + + No me dedico a forzar cajas fuertes. El metal no es lo mío. Eso sí, para la electrónica soy un hacha. + + + Hay un grupo de soldados de Monolith pacíficos que buscan refugio. ¿Quién podría ayudarlos? + + + ¿Lo dices en serio? Si son como animales. Tengo claro que los stalkers no les harán ni caso. Más te vale hablar con Shulga. Si el teniente coronel les permite entrar en Deber, estarán a salvo. Incluso puede que encuentren algo útil que hacer. + + + ¿Puedes desencriptar una caja negra? + + + Déjame ver... Mmm, esto me va a llevar un tiempo: unas tres horas. Y no será barato. Voy a ponerme a ello y ya hablaremos. Date un paseo mientras trabajo, así podré concentrarme. + + + Déjame ver... Mmm, esto me va a llevar un tiempo: unas tres horas. Y no será barato. Voy a ponerme a ello y ya hablaremos. Mientras tanto, ¿por qué no buscas los componentes que necesito? Te ahorrarás algo de dinero. + + + ¿Qué? Todavía estoy en ello. ¡Esta caja es una puta pesadilla! + + + He terminado con tu caja negra. Menuda mierda de trabajo... + + + ¿Cuánto te debo? + + + 3.000, como mínimo. + + + Toma. + + + No tengo tanto. + + + Bueno, te haré un descuento si me traes los componentes. + + + Venga, no te cortes. + + + Demasiado caro... Me lo pensaré. + + + Te haré un descuento. Solo 2.850. + + + Te haré un descuento. Solo 2.700. + + + Te haré un descuento. Solo 2.550. + + + Te haré un descuento. Solo 2.400. + + + Te haré un descuento. Solo 2.250. + + + Te haré un gran descuento. Solo 2.100. + + + Te haré un gran descuento. Solo 1.950. + + + Te haré un gran descuento. Solo 1.800. + + + Te haré el mejor precio posible. Solo 1.650. + + + Je, je. Obviamente, no sé para qué necesitas la grabación. Pero teniendo en cuenta el precio, seguro que te será útil. + + + Ya veremos. + + + Sigo trabajando en la caja negra. ¿Por qué no haces algo útil y me traes esos componentes? + + + ¿Senka? Se me pegó cuando me dirigía a Zaton y no me ha dejado desde entonces. Es un borracho profesional con mucha experiencia. ¡Ja! Lo uso para encargarle recados. + + + ¿A quién le podría interesar información sobre el fundador de Deber? + + + Shulga, claro. Deber recuerda bien sus orígenes. Ya sabes lo que dicen: la historia se repite a no ser que la estudies... Lo importante es que esta información no llegue a manos de Libertad, porque seguro que la distorsionarían. No por maldad, simplemente porque andan cortos de memoria... + + + Te he traído herramientas. + + + Genial. ¿Cuáles son para mí? + + + Las de trabajo básico. + + + ¡Genial! Ahora solo necesito las de trabajo profesional y las de calibración. + + + Las de trabajo profesional. + + + ¡Genial! Ahora solo necesito las de trabajo básico y las de calibración. + + + Las de calibración. + + + ¡Genial! Ahora solo necesito las de trabajo básico y las de trabajo profesional. + + + Nada, por ahora. + + + ¡Genial! Tráeme herramientas de calibración y ya estoy. + + + ¡Genial! Tráeme herramientas de trabajo profesional y ya estoy. + + + ¡Genial! Tráeme herramientas de trabajo básico y ya estoy. + + + ¡Caray! ¿Dónde diablos las has encontrado? + + + Si necesitas herramientas, puedo conseguirlas. + + + Eso sería estupendo. Ahora mismo me siento como si estuviese trabajando en la Edad de Piedra, con hierro de soldar en vez de utensilios de chamán. Si tuviese herramientas, podría hacer trabajos mucho mejores y da por hecho que tú te beneficiarías de eso... + + + Vale, las buscaré. + + + He cambiado de idea. + + + Buena idea. Así podré hacer mejoras y tú ganarás pasta. + + + Tengo la PDA del comerciante de Deber. ¿Conoces a alguien al que le pueda interesar? + + + ¿Un comerciante en Deber? No jodas... Dale la PDA a Shulga, seguro que le interesará. Pero ni una palabra a Libertad, ¿vale? Usarán a ese capullo para arruinar el prestigio de toda una facción... + + + He encontrado unos documentos en los que se explica cómo llegar a Pripyat. + + + Déjame ver... Ah, sí, sí. En resumen, hay un paso subterráneo con el nombre de Pripyat 1, que va por debajo de la ciudad de Pripyat, con un tramo que termina en una puerta cerrada que está en la sección de transporte de la central de Júpiter. ¡Impresionante! Según las notas, la sección está sellada, llena de gas y sin electricidad. Creo que podría activar el generador y abrir la puerta. O intentarlo... + + + Pero no voy a cruzar Júpiter sin protección, y te recomiendo que no intentes siquiera bajar al subterráneo tú solo. Necesitas al menos dos personas más y trajes con módulos de respiración de ciclo cerrado; sin ello, no sobrevivirás ni un minuto allí abajo. Mira, Zulu vive en una torre que no está lejos de aquí. Habla con él. Si le caes bien, te contará cómo organizar un escuadrón. + + + Has hablado de materiales... + + + Sí. Encontrar materiales para usar con equipamiento de radio es casi imposible por aquí. He usado todo lo que he podido encontrar y aquí nadie vende ese tipo de materiales, porque las armas son un negocio mucho más rentable. De todas formas, me han dicho que puede que encuentres algo en la fábrica de cemento... + + + Toma, he encontrado los materiales. ¡He registrado la fábrica de cemento de arriba a abajo! + + + ¡Hala, tío! Estoy impresionado. Voy a anotarlo ahora mismo: ¡mano de obra gratis en todas las reparaciones y mejoras para mi stalker favorito! + + + He conseguido encontrar algunos de los materiales que querías. Toma. + + + ¡Genial! Te haré un montón de descuentos, amigo. + + + Puedo conseguirte los materiales. + + + ¡Eso sería estupendo! Si encuentras colofonio o condensadores, tráemelos. Diablos, incluso puedo pagarte por un poco de textolita. No puedo prometerte grandes sumas, pero tienes un descuento asegurado. + + + ¿Para qué necesitas los materiales? + + + Bueno, trabajo con armas y equipamiento porque de algo hay que vivir... Pero mi pasión son los aparatos de radio. ¡Es estupendo cuando juntas varias cosas y consigues que funcionen! Una vez construí un sistema de interferencias... Resultó muy útil. Lo activé cuando los anuncios de Los 100 Rads no me dejaban dormir. + + + ¿Por qué iba a ver materiales de radio en la fábrica de cemento? + + + La fábrica de cemento es tan solo un nombre. Dejó de fabricar cemento mucho antes de la catástrofe de Chernóbil. La gente se llevó todo lo que pudo y el edificio se empezó a usar para fabricar aparatos eléctricos. + + + He encontrado unos documentos en Júpiter. ¿Quieres verlos? + + + No hay nada interesante por aquí, solo papeleo administrativo... + + + Mmm... Aquí hay un par de cosas interesantes, pero no estoy seguro... Necesitamos toda la información. Prueba a buscar en los lugares que se mencionan en los documentos. + + + Necesito sin falta más materiales. ¿Cómo voy a trabajar con esto? Ah, hola. ¿Qué tal? + + + ¡Hola! ¿Necesitas algún trabajito técnico? Sigo sin materiales, pero puedo reparar tu equipo y hacer alguna que otra mejora pequeña. + + + Anda, hola. Oye, he estado pensando... Resulta que todos los materiales que necesito están cogiendo polvo en la fábrica de cemento... Solo de pensarlo me pongo enfermo. + + + ¡Hola! ¿Se te ha roto algo o has reunido pasta para una mejora? ¡Recuerda que te hago descuento de por vida! + + + ¡Hola, hermano! ¿Te ayudo en algo? ¡Recuerda que puedo hacerte los mejores precios posibles! + + + ¿Puedes desbloquear un módulo de memoria? + + + Creo que sí... Nunca lo he intentado, así que me llevará un mínimo de tres horas. Pero me apetece probar. Bueno, teniendo en cuenta todo esto, te haré un buen precio: solo 1.000. + + + No tengo prisa. ¡Trato hecho! + + + ¡Vale! Me pongo a ello. Vete a hacer tus cosas y en cuanto esté listo te aviso. + + + No tengo tanto. + + + Bueno, pues vuelve cuando reúnas el dinero. No puedo rebajarte el precio. + + + Lo pensaré. + + + Te he dicho que podré hacerlo en tres horas. 1.000 es muy buen precio. Yo de ti lo aceptaría. + + + ¿Has desbloqueado el módulo de memoria? + + + No, sigo en ello... No te preocupes, te avisaré cuando esté listo. + + + ¿Eh? ¿No tienes el módulo? Vaya, entonces no has visto a Senka: le dije que te lo llevase. Bueno, da igual. Además de lecturas del grosor de la capa de tierra y de la densidad de la vegetación, también contenía las coordenadas de tres radiofaros. Te las mandaré a tu PDA... + + + ¿Has intentado seguir a esas quimeras? + + + La que estaba herida se fue a Zaton; el grupo de Gonta la está siguiendo. Aunque parece ser que entre ellos no hay ningún cazador experimentado. Si les ayudas, te lo agradeceré. La otra quimera, la que asesinó a Fox... la he perdido. Es como si se la hubiese tragado la tierra. Pobre Fox, era un gran tipo. Pero la edad le ha pasado factura... + + + Bueno, has liquidado a la que estaba herida... Y la otra, la que asesinó a Fox... la he perdido. Es como si se la hubiese tragado la tierra. Pobre Fox, era un gran tipo. Pero la edad le ha pasado factura... + + + ¿A qué te dedicas? + + + Me llamo Trapper y hasta hace poco me dedicaba a cazar mutantes que suponían un peligro para los stalkers. Ahora recibo órdenes y se las transmito a los cazadores jóvenes. Les entreno y les enseño tácticas de caza... + + + Háblame sobre lo de cazar mutantes. + + + Bueno, hay que seguir distintos métodos. Los quemadores y los poltergeists requieren uno, los pseudogigantes y los controladores otro... Y las quimeras son harina de otro costal. + + + Háblame de los quemadores. + + + Los quemadores usan ataques gravitatorios. Si se te acercan mucho, te lanzarán por los aires. Y si están lejos, te lanzarán algún objeto. Lo mejor es mantenerte a una distancia media y no dejar de moverte, a no ser que te guste que te golpeen con un objeto pesado. ¡Pero procura conservar tu energía! Los quemadores usan impulsos gravitatorios directos para arrancarte el arma de las manos, sobre todo cuando estás cansado. + + + Háblame de los poltergeists. + + + Hay dos tipos de poltergeists. El primero utiliza la gravitación para lanzar objetos al enemigo y el segundo es el poltergeist de fuego, que quema a sus víctimas con llamas. Los cazadores con menos experiencia suelen intentar rodearlos para esquivar sus ataques... El truco está en que los poltergeists no ven ni oyen. Detectan los objetos que se mueven en el campo gravitatorio así que, con un poco de experiencia, sabrás que lo mejor es quedarte quieto en cuanto veas un poltergeist, disparar y después volver a pararte. Y así una y otra vez. + + + Háblame de los controladores. + + + Intentan poner tu mente en tu contra. Cuando caces a un controlador, es importante ponerte a cubierto, porque necesita verte para alterar tu mente. Además, son bastante lentos, así que usa una granada si tu vida corre peligro. + + + Háblame de las quimeras. + + + Son depredadores nocturnos muy peligrosos. Suelen esconderse en la oscuridad detrás de ti para saltarte por encima. Si piensas que hay una quimera cerca, vigila tus espaldas y las de tus amigos... + + + Háblame de los pseudogigantes. + + + Lo más complicado al cazar un pseudogigante es matarlo. Estas criaturas pueden soportar muchísimo daño sin ni siquiera pestañear... Solo te digo que lo mejor es usar una escopeta a corta distancia. Recuerda que los ataques de pseudogigantes pueden derribar cualquier cosa que no esté fija al suelo. Atácalos desde arriba y procura colocarte sobre algo que pueda resistir bien el daño. + + + Vale, olvídalo. + + + ¿Por qué ya no cazas? + + + Me estoy haciendo viejo, tío. Por eso mismo se murió Fox, mi gran amigo y compañero. Cazamos muchas bestias juntos, codo con codo... Pero un día nos encontramos con dos quimeras en Zaton, que no se veían por la Zona desde hacía un año y medio. Una tiró a Fox al suelo antes de que me diese tiempo a coger la escopeta. Malherí a la otra y se escaparon. ¡Espero que se consuman en las llamas del infierno! + + + ¿Quién ha podido robar cosas de una caja personal? + + + Mmm, no sé. Los cazadores no se suelen comportar así. Si te buscas problemas con mucha gente, es probable que no quieran malgastar munición cuando te esté atacando un chupasangre. + + + Medidas desesperadas para tiempos desesperados. Conociendo a los chupasangres, seguro que un par de ellos estaban fuera cazando... Pero ya no tienen una guarida a la que regresar, así que no supondrán un problema para los stalkers. + + + ¿Tienes más trabajo para mí? + + + Claro. El otro día, un escuadrón de stalkers entró en los túneles que están al norte de la central y se encontraron con una guarida de mutantes. Se quedaron tan sorprendidos que ni siquiera nos pudieron explicar qué tipo de mutantes eran, y dos stalkers no consiguieron salir de allí con vida. Eso hizo que en Yanov se asustasen mucho, así que han puesto una recompensa de 5.000 para quien consiga acabar con su guarida. Es una misión peligrosa, así que tú decides. ¿Lo harás? + + + Lo haré. + + + Eres muy valiente. Buena suerte, la necesitarás. + + + Ahora no. + + + Lo entiendo. No todo el mundo tiene pelotas para cargarse toda una guarida de mutantes. + + + Lo de antes. Hay mutantes no identificados en los túneles que están al norte de la central de Júpiter. La recompensa es de 5.000. ¿Te animas? + + + Ahora, a los stalkers les preocupan los mutantes de los túneles... + + + Los mutantes de los túneles eran enanos mutados. Y ahora son enanos mutados muertos. + + + Supongo que tienen que haber sido quemadores. Eso explicaría por qué en Yanov estaban tan emocionados con el tema. En fin, están muertos, así que la recompensa es tuya. + + + Supongo que tienen que haber sido quemadores... Los que mataron a dos stalkers hace poco. Eso explicaría por qué en Yanov ofrecían una recompensa por acabar con ellos. En fin, están muertos, así que la recompensa es tuya. + + + Estoy listo para liquidar a la quimera. + + + Genial. El cazador se la encontró cuando anochecía y se dirigía hacia el complejo de ventilación. Las quimeras son nocturnas y territoriales, así que es probable que fuera a su territorio de caza. Creo que en cuanto anochezca deberías buscar por esa zona. Aunque, recuerda que las quimeras están más activas de noche... Ten cuidado y que tengas buena caza. + + + La quimera está muerta. + + + ¡Gracias, muchas gracias! Has vengado a Fox y ahora podrá descansar en paz. Toma tu dinero, te lo has ganado. Y una cosa más... Toma mi escopeta. Tú me has dado algo mucho más importante: por fin un poco de paz... + + + Soy Trapper... No hace falta que te presentes. + + + ¿Qué te trae por aquí? + + + Gracias por venir. Necesito un cazador experimentado y de confianza y tú eres el mejor de Yanov. Después de todo lo que ha pasado, no puedo dejar que la quimera vuelva a escaparse... Voy a invertir todos mis ahorros en esto: 10.000. Quiero asegurarme de que el trabajo se haga bien. ¡Hay que vengar a Fox! + + + Te ruego que acabes con la quimera. Si no quieres liquidar a ese asesino mutante por Yanov, hazlo por el dinero... 10.000 es mucha pasta. + + + ¿Qué pasa con la quimera? El tiempo es oro: podría cambiar de territorio de caza. + + + ¡Me alegro de verte! ¿Alguna novedad? + + + ¿Tienes más trabajo para mí? + + + Por supuesto. En la Ciénaga han visto a un grupo de chupasangres de pantano, detrás de la fábrica de cemento. Parece que de momento no han salido del pantano, pero los stalkers quieren asegurarse de que se queden allí para siempre, no sé si me explico. El precio por todo el grupo es de 3.000. ¿Lo harás? + + + Lo haré. + + + Genial, ¡buena caza! + + + Ahora no. + + + Tú mismo. Tienes tiempo de cambiar de opinión antes de que se encarguen otros cazadores. + + + Lo mismo de antes... El grupo de chupasangres de pantano de la Ciénaga, detrás de la fábrica de cemento. La recompensa es de 3.000. ¿Te apuntas? + + + Ahora mismo, solo lo de los chupasangres de la Ciénaga... + + + He acabado con los chupasangres de pantano. + + + Ahora los stalkers podrán relajarse un poco. Toma, la cantidad acordada. + + + Sí, los stalkers se alegrarán de haberse librado de esos vecinos. Incluso ofrecían una recompensa de 3.000. Aquí tienes. + + + Gonta y yo hemos liquidado a la quimera de Zaton. + + + Gracias. Cuantas menos bestias de ésas anden por aquí, mejor. Y ahora, si pudieses encargarte de la otra... + + + Gracias por liquidar también a la segunda bestia. Así nos aseguramos de que no matará a más stalkers... + + + Dime cómo mataste al controlador. + + + Escucha y aprende, amigo mío... Me fui a mi escondite a recoger mi botín y, al llegar allí, vi a un controlador sentado sobre él. Cogí una rejilla metálica que estaba en el suelo y la usé como escudo mientras me acercaba a la bestia. Cuando el capullo me descubrió, ya le había vaciado medio cargador en la cabeza. Justo cuando empezaba a intentar controlarme, le di el toque final con la culata del fusil y así me lo cargué. + + + Háblame de los artefactos de la cantera. + + + ¡Ja! No hay mucho que contar, porque allí ya no queda casi nada. Tan solo las anomalías que Pedernal ha descubierto, y todos las conocen ya. + + + ¿Así que fuiste tú el que dejó morir a su amigo en la cantera? + + + ¡¿Qué?! + + + Es un farol, no puedes demostrar nada. Es tu palabra contra la de un miembro de Libertad... así que buena suerte. + + + Eso ya lo veremos. + + + Ninguna. + + + Gracias, adiós. + + + Háblame de los chupasangres de Zaton. + + + Cuando estaba en Zaton, los chupasangres hacían la vida imposible a los stalkers. Éstos intentaban mantener a raya a las bestias noche y día, pero no servía de nada. Decidí ayudarlos, así que cogí mi escopeta y me fui directo a la guarida de los chupasangres. Un poco después, un servidor puso fin al problema de los chupasangres de Zaton. + + + Seguro que ni siquiera sabes dónde está la guarida. + + + ¡Largo! + + + ¿Qué quieres? ¡Vete a dar por saco a otra parte! + + + Vete a paseo, colega. Es tu palabra contra la de un miembro de Libertad... así que buena suerte. + + + Eso ya lo veremos. + + + Gracias, adiós. + + + Háblame del atajo a Júpiter. + + + El guía solía dar un rodeo tremendo desde Zaton. Un día decidí seguir un camino recto. Lo intenté varias veces hasta que conseguí trazar un recorrido por entre las anomalías con rapidez. Después, le vendí la información al guía y ahora todo el mundo sigue mi ruta. + + + ¿Y si le preguntamos a Piloto quién le consiguió los mapas? + + + ¡Largo! + + + ¿Qué quieres? ¡Vete a dar por saco a otra parte! + + + No puedes demostrar nada. Es tu palabra contra la de un miembro de Libertad... así que buena suerte. + + + Eso ya lo veremos. + + + Gracias, adiós. + + + Háblame de tu viaje al Oasis. + + + Yo fui el primero en llegar allí. Es un lugar muy tranquilo y silencioso, sin mutantes ni anomalías. Y está repleto de artefactos. Coges lo que quieras y te largas. + + + Y una mierda. Yo he estado en el Oasis y no es ni de coña así. + + + ¡Largo! + + + ¿Qué quieres? ¡Vete a dar por saco a otra parte! + + + Vete a la mierda. Es tu palabra contra la de un miembro de Libertad... así que buena suerte. + + + Eso ya lo veremos. + + + Gracias, adiós. + + + Háblame de tu trabajo con los científicos. + + + El otro día estuve en su búnker. Se alegraron mucho de verme y me dijeron: "Pedernal, eres justo lo que necesitamos". Parece ser que quieren colocar sus dispositivos bajo las anomalías. Yo les dije que esto estaba chupado e hice todo lo que me pidieron sin problemas. Lo más complicado fue conseguir que me pagasen. + + + Deja de atribuirte méritos de otras personas. ¡Yo hice eso, no tú! + + + ¡Largo! + + + ¿Qué quieres? ¡Vete a dar por saco a otra parte! + + + Mentira... No puedes demostrar nada. Es tu palabra contra la de un miembro de Libertad... así que buena suerte. + + + Eso ya lo veremos. + + + Gracias, adiós. + + + Hola. ¿Tú también quieres escuchar mis historias? + + + ¿Quieres preguntarme algo? + + + ¿Qué quieres? + + + Joder, tío... Me muero... + + + Toma este botiquín. + + + Gracias, amigo. Pero no servirá de nada... Escucha... Estuve aquí con un miembro de Libertad... Encontramos un artefacto... Cuando nos íbamos, entré sin querer en una anomalía... Si me hubiese ayudado, podría haberme salvado... Pero cogió el artefacto y me dejó aquí... Dijo que iba a pedir ayuda... Encuéntralo. Quiero que la gente sepa que no es de fiar... + + + Lo encontraré. + + + No creo que pueda demostrar nada. + + + Apóyate en mi hombro. Buscaremos un médico. + + + Qué mala pata. Adiós. + + + Tengo algo para ti... + + + Una Bola de carne, para ti. + + + Gracias. Los científicos pagan bien, pero me interesa más el permiso. + + + ¡Muchas gracias, colega! Por fin podré irme a Pripyat. Solo necesito una forma de llegar allí. + + + Un Soldado. Toma. + + + Gracias. Los científicos pagan bien, pero me interesa más el permiso. + + + ¡Muchas gracias, colega! Por fin podré irme a Pripyat. Solo necesito una forma de llegar allí. + + + Una Bola de carne y un Soldado. Toma. + + + ¡Muchas gracias, colega! Por fin podré irme a Pripyat. Solo necesito una forma de llegar allí. + + + Ninguno. + + + ¿Es aburrido este lugar? + + + Has mencionado algo de tu contrato... + + + Sí, firmé uno con los científicos para hacer varios trabajos, pensando que sería algo sencillo. Pero el contrato concluye únicamente cuando se termine el trabajo, algo que no advertí en su momento. Los científicos me prometieron un permiso oficial para estar en la Zona al término del contrato. + + + He completado todas las cláusulas del contrato, excepto una. Tengo que encontrar todos los artefactos químicos que haya por aquí. ¡Pero no sabía que es imposible encontrar Bolas de carne o Soldados! De haber conseguido esos dos artefactos, me habría ido a Pripyat hace mucho tiempo, pero no puedo. + + + Quizás pueda ayudarte a encontrar esos artefactos. + + + Pues qué pena. + + + Sí... Una Bola de carne y un Soldado y me largo a Pripyat. + + + ¿Qué tiene de especial Pripyat? + + + Nadie sabe cómo llegar allí. Estamos en la Zona, así que no se puede ir directamente. Dicen que está hasta los topes de artefactos... La verdad es que circulan tantas leyendas sobre Pripyat que tengo mucha curiosidad por ese lugar. + + + Estoy reuniendo un pelotón para ir a Pripyat. ¿Me acompañas? + + + La verdad es que tenía pensado ir allí... pero solo. No es nada personal, es que no me gusta trabajar en equipo... + + + Ja, la verdad es que tengo planeado irme pronto a Pripyat... pero solo. No es nada personal, es que no me gusta trabajar en equipo... + + + Bienvenido al reino del aburrimiento. + + + ¡Tío, me muero de ganas por ir a Pripyat! + + + En cuanto descubra una forma de llegar a Pripyat, me iré allí sin perder un segundo. + + + ¡Aquí se está bien! ¡Es un buen lugar para disfrutar de la vida! + + + Me gusta sentirme seguro, sí. ¡Pero ojalá esto no fuera tan aburrido! + + + Quizás pueda ayudarte a encontrar esos artefactos. + + + ¿De verdad sabes llegar a Pripyat? + + + No, pero todo el mundo dice que está lleno de artefactos. Quiero intentar llegar allí. Soy un pionero: fui el primero en llegar a Júpiter. Pero siempre trabajo solo, no tengo tiempo para cuidar de los demás. + + + ¿Me llevarás a Júpiter? + + + Por supuesto. ¿Nos vamos ya? + + + Sí. + + + Todavía no. + + + Cuando termine la emisión. + + + ¿Me llevarás a Pripyat? + + + Lo intentaré por 5.000. ¡Me gusta este lugar! + + + Trato hecho. + + + No, gracias. + + + Vale, tú mismo. + + + No tengo tanto dinero. + + + Lo intentaré por 5.000. Esperemos a que termine la emisión. + + + ¿Puedes llevarme a Zaton? + + + No, tío. Es un lugar aburridísimo. Por allí anda Piloto: es perfecto para un trabajo tan seguro como aburrido. + + + Vale, puedo llevarte a Yanov por 3.000, y luego Piloto te llevará a Zaton. ¿Qué te parece? + + + De acuerdo. + + + No. + + + Tú verás. + + + No tengo suficiente dinero. + + + Vale, puedo llevarte a Yanov por 1.000 y luego Piloto te llevará a Zaton. ¿Qué te parece? + + + No, tío. Es un lugar aburridísimo. Por allí anda Piloto: es perfecto para un trabajo tan seguro como aburrido. Pregúntale después de la emisión. + + + Vale, puedo llevarte a Yanov por 3.000 y luego Piloto te llevará a Zaton... Cuando termine la emisión, claro. + + + Vale, puedo llevarte a Yanov por 1.000 y luego Piloto te llevará a Zaton... Cuando termine la emisión, claro. + + + Dicen que has cruzado los túneles, ¿es cierto? Yo también he venido desde Júpiter: encontré un pasadizo subterráneo. Puedo llevarte allí gratis si quieres. Me alegro de poder ayudar a las autoridades. + + + ¡Cuánto tiempo! Dicen que has cruzado los túneles, ¿es cierto? Yo encontré un pasadizo subterráneo. Puedo llevarte allí gratis si quieres. Me alegro de poder ayudar a las autoridades. + + + ¡Cuánto tiempo! Dicen que has cruzado los túneles, ¿es cierto? No te lo vas a creer, pero he conseguido completar mi contrato y conseguir el permiso... Y sin perder un segundo, me vine para acá y encontré un pasadizo subterráneo. Puedo llevarte allí gratis si quieres. Me alegro de poder ayudar a las autoridades. + + + ¡Cuánto tiempo! Dicen que has cruzado los túneles, ¿es cierto? Encontré un pasadizo subterráneo. Puedo llevarte allí gratis si quieres. Me alegro de poder ayudar a las autoridades. Por cierto, gracias por ayudarme a completar mi contrato con los científicos. He estado buscando por ahí y he encontrado esto. Toma, seguro que te será útil. + + + Topol, ¿por qué no proteges el búnker de los científicos? + + + Nos contrataron para realizar mediciones y recoger muestras. Ya casi nos podríamos considerar científicos. Y bueno, no es que tenga nada en contra del trabajo, pero no sé si podría enfrentarme a los nuevos enemigos de los empollones. No me apetece morir a manos de un mercenario. + + + ¡Estás en el sitio equivocado, colega! Y si no te largas, también estarás en el momento equivocado. + + + ¿Buscas problemas? ¡Lárgate de aquí o los encontrarás! + + + Piérdete, colega. ¿O quieres meterte en un lío? + + + ¿Qué vas a hacer ahora? + + + Nos vamos pronto a la estación de Yanov. Vente con nosotros si quieres. + + + Sí, me pilla de camino. Voy con vosotros. + + + No, no me pilla de camino. + + + Qué bien que nos los hayas traído. No habrían aguantado mucho solos. + + + Gracias por conseguir un acuerdo con Deber. + + + ¿Qué vas a hacer ahora? + + + Nos vamos pronto a la estación de Yanov. Vente con nosotros si quieres. + + + Sí, me pilla de camino. Voy con vosotros. + + + No, no me pilla de camino. + + + Has hecho lo correcto, amigo. Has ayudado a esa gente y nos has traído refuerzos. Gracias. + + + Gracias por conseguir un acuerdo con Libertad. + + + ¿Sabes quién puede haber robado cosas de una caja personal? + + + No sé. Aquí hay gente de todo tipo. Habla con Sueldahuesos, conoce a casi todo el mundo... + + + Vamos a ver a Zulu. + + + Vale. Espero que no me dispare en cuanto vea mi viejo blindaje. Tenemos que recogerlo de camino y devolver el que llevo puesto. + + + En marcha. + + + Espera. Las emisiones son peligrosas. Esperemos un poco. + + + ¿Qué ha pasado? + + + Pues... no recuerdo cómo llegamos aquí. Tan solo sé que formábamos un escuadrón de Monolith... y queríamos llegar al centro de la Zona. Allí está el Monolito; es un meteorito que nos insufló vida de otros planetas. Recuerdo que llegamos a la central de Chernóbil... Y a partir de ahí, el recuerdo se vuelve borroso. Recuerdo una luz brillante... cósmica y fría... y una voz nítida. Todo era... perfecto. Ahora no recuerdo lo que me ordenó la voz. Algunos años de mi vida se han borrado de mi memoria. Y al resto les pasa lo mismo. No sabemos qué hacer. Necesitamos protegernos de las emisiones... y de los mutantes. ¿Sabes de algún lugar donde podamos estar seguros? + + + Hay una base stalker cerca de aquí. Te la señalaré en un mapa. + + + No sé si será segura... De camino a Chernóbil, nos trataron con recelo... Es posible que después asesinásemos a algunos stalkers. ¿Sabes lo que piensa la gente de nuestra facción? Lo más probable es que abran fuego sobre nosotros. ¿Puedes ayudarnos? ¿Podrías contarles a los stalkers del campamento que ya no somos unos asesinos? ¿Podrías pedirles que nos acepten? + + + No hay problema. Hablaré con ellos la próxima vez que vaya a la base. + + + Lo siento, no puedo ayudaros. + + + ¿Qué tipo de ayuda necesitas? + + + Buscamos un lugar para protegernos de las emisiones... y de los mutantes. ¿Sabes de algún lugar seguro? + + + Vale. Hablaré con la gente de Yanov. + + + Lo siento, no puedo ayudaros. + + + Necesitarás un traje con módulo respiratorio de ciclo cerrado para llegar a Pripyat. + + + No hay problema. Conservo mi blindaje de Monolith y viene equipado con uno de esos módulos. Lo que pasa es que no puedo ponérmelo en Yanov. + + + Estoy reuniendo un pelotón para ir a Pripyat. ¿Me acompañas? + + + No me importaría... Tengo mucha curiosidad por saber qué nos ocurrió allí. Pero ahora no puedo ir. No puedo abandonar a mis compañeros y sé que no querrán venirse. Ya han pasado por bastantes suplicios. + + + Sí, iré contigo. Quiero saber qué nos ocurrió allí. Espero encontrar la respuesta en Pripyat. Voy a comentárselo a Loki, pero no creo que ponga pegas. + + + Sí, iré contigo. Quiero saber qué nos ocurrió allí. Espero encontrar la respuesta en Pripyat. Voy a comentárselo a Shulga, pero no creo que ponga pegas. + + + ¿Todo listo para irnos? + + + Sí. + + + Hola, stalker. ¿Puedes ayudarnos? + + + Hola. ¿Sabes si podemos ir a la base de stalkers? + + + No, sigo trabajando en ello... + + + Date prisa. Aquí podría sucedernos cualquier cosa. + + + Hola. Gracias por ayudarnos. + + + Hola. + + + ¿Qué tal va todo? + + + Todo va bien en el escuadrón, pero lo que realmente quiero es saber qué nos ha sucedido. + + + ¿Qué hacen aquí los mercenarios? + + + Deberías hablar con Hermann. Se encarga de todos los aspectos administrativos del laboratorio. Por lo que yo sé, los mercenarios han llegado a un acuerdo con Hermann para proteger el laboratorio, pero no tengo muchos más detalles sobre dicho acuerdo. Eso sí, han demostrado que son muy buenos soldados en numerosas ocasiones. + + + ¿Qué estás haciendo aquí? + + + Es una pregunta retórica, ¿no? Estamos investigando. ¿Quieres saber algo más concreto? + + + ¿Cuál es el objetivo de tu investigación? + + + No tenemos ningún objetivo específico en mente. Somos exploradores científicos, si nos quieres llamar así. Intentamos identificar las correlaciones entre determinados fenómenos, desarrollar teorías y probarlas o descartarlas. + + + ¿Qué sabes de la Zona? + + + De momento solo hay hipótesis... Creo que la Zona se creó como consecuencia de una nueva fuerza. Los campos electromagnéticos, las fuerzas físicas o las radiaciones no podrían haber cambiado la biosfera así. Algunas mutaciones sí pueden explicarse por la radiación. ¡Pero un cerdo normal necesitaría cientos, por no decir miles, de años para convertirse en mutante! Dentro de la Zona, esta mutación se produjo en apenas dos años. Es como si se hubiese alterado la información genética de los animales. Solo de pensarlo, me recorre un escalofrío por la espalda. + + + ¿Cuánto tiempo llevas en la Zona? + + + Menos de una semana. Me supuso un tremendo esfuerzo todo el papeleo para organizar esta expedición. De no haber sido por Hermann, todavía estaríamos esperando en la frontera de la Zona, mientras los stalkers se llevaban todos los objetos de valor. + + + Eso es todo lo que quería saber. + + + Ozersky, ¿por qué me ha contratado Hermann para proteger al escuadrón durante las mediciones? + + + Fue idea mía. Él no lo tenía claro, pero conseguí convencerlo. Mi investigación ha revelado que los efectos de nuestro equipo de ondas altas en campos anómalos producen un aumento de la agresividad en las especies mutantes cercanas, y además potencian sus niveles de actividad. En resumen, comienzan a buscar víctimas a las que asesinar. + + + Ozersky, tengo noticias. + + + ¿Sí? Te escucho. + + + Tenías razón. Los mutantes no nos dejaron un momento de respiro mientras realizábamos las mediciones, pero las cosas se calmaron en cuanto apagamos los aparatos. + + + ¿Qué? Si... Si mi hipótesis resulta ser correcta, es probable que los animales mutantes que hayan adquirido la habilidad de acceder a los campos informativos, puedan recibir telepáticamente señales del exterior... Señales artificiales. En todo caso... el extraño parecido entre las mutaciones y estos cambios típicos en las estructuras celulares... no es casualidad... + + + ¿Podrías ser más concreto? Y ya puestos, contarme algo que tenga sentido. + + + ¡No! Esto no son más que conjeturas. ¡Oh, qué maleducado soy! Muchas gracias por tu ayuda con nuestra investigación. + + + ¿Qué hace falta que te pase para que le pidas un traje a Hermann? + + + Un área llena de una planta anómala desconocida hasta el momento ha aparecido cerca de la cantera. Necesito una muestra de esa planta, pero los stalkers no quieren acercarse a ese lugar. Si consigues una de esas plantas, podría pedirle a Hermann que te premie con uno de esos trajes. + + + Encontraré la planta. + + + Muy bien. He subido las coordenadas de la anomalía a tu PDA. + + + Quizá la próxima vez. + + + Ven a verme si cambias de idea. + + + Hola, te he traído la planta que querías. ¿Me das el traje? + + + Genial. Ja, ja. A Sokolov se le ha ido de la lengua que el traje es para él. Pero da igual. Le enseñaré la planta a Hermann y seguro que te da el traje. Dile a Sokolov que venga a por él. + + + Puedo conseguirte nuevos guardias. + + + Muy amable por tu parte. Habla con Hermann de este asunto: entra dentro de sus responsabilidades. + + + Me gustaría comprobar mi resistencia al campo psíquico. + + + Ja. ¿Así que Hermann te ha enviado a verme? Vale. Te lo voy a explicar de la forma más sencilla posible. Para analizar correctamente tu resistencia a las emisiones psíquicas, necesitaré una investigación compleja y años de estudio. Y solo dispongo de un botiquín y un par de probetas sucias. + + + Entonces, ¿es imposible? + + + No tan rápido. No estamos hablando de un análisis completo. Para cumplir nuestro objetivo solo necesitamos comprobar la resistencia de tus neuronas a las emisiones psíquicas. Un examen elemental bastará. Bueno... parece que en tu cabeza está todo en orden. Es decir, que los niveles relativamente altos de emisiones psíquicas pueden afectarte sin que pierdas el sentido. + + + ¿Qué hay de la hipótesis sobre el aumento de las agresiones mutantes? + + + Tengo dos teorías al respecto. La primera es que la agresividad mutante puede verse provocada por la intrusión de personas en su territorio, algo completamente normal en muchas especies no mutantes, humanos incluidos. La segunda teoría es que los mutantes son capaces de recibir las emisiones activas de nuestros dispositivos de medición. Está claro que la segunda teoría es mucho más intrigante. + + + ¿Cómo se podría demostrar esto? + + + Habría que activar el dispositivo de medición en un área sin actividad mutante previa. Y el experimento debería realizarlo una única persona, para así minimizar el efecto de la intrusión humana. + + + He traído el escáner. + + + ¿Qué resultados has obtenido? + + + No sé muy bien qué información mostrará tu dispositivo, pero creo que tu hipótesis se ha demostrado. En cuanto activé el escáner, en menos de cinco minutos aparecieron varios snorks para atacarme. + + + Lo que yo pensaba. Por alguna razón, las teorías más indeseables suelen resultar ciertas. En cualquier caso, me alegro de que la hayas comprobado. Ahora tendremos que asegurarnos de que los escuadrones que realicen mediciones en dicha área están preparados para lo peor. + + + Estoy listo para confirmar o refutar la hipótesis. + + + Me alegro de que aún quede gente en el mundo dispuesta a sacrificarse por el bien de la ciencia. El mejor lugar para realizar el experimento es el derrumbamiento del extremo sur de la cantera. Es un área llena de anomalías gravitatorias que los mutantes suelen tratar de evitar. El dispositivo que te doy lleva integrado un sensor de detección de mutantes. Tras finalizar el experimento, podré ver en el dispositivo los efectos de los niveles de emisión en la agresividad de los mutantes. ¿Estás preparado? + + + Sí, lo haré. + + + Ahora no. + + + ¿Hay alguna forma de conseguir un traje científico? + + + Eso va contra el protocolo. Somos responsables de todo el equipo del que disponemos. De todas formas, conociendo a Hermann, es probable que haya encargado más cosas de las que necesitamos. Es posible que, en determinadas circunstancias, se le pueda convencer para desprenderse de un traje. + + + ¿Necesitas que descubra artefactos? + + + Me temo que no. Ya no encargamos misiones de búsqueda de artefactos a cualquiera. Hemos firmado un contrato con un buscador de artefactos con mucha experiencia y nos consigue todo lo que necesitamos. + + + Puedo conseguirte nuevos guardias. + + + Estupendo. La Zona nunca está en calma. Díselo a Hermann; es el que manda aquí. + + + Tienes que darme escáneres para buscar anomalías. + + + Toma. Tres, tal y como dijo Hermann. + + + Toma. Dos más, tal y como dijo Hermann. + + + ¿Cómo puedo conseguir un traje científico? + + + Hermann se encarga del inventario. Pero te ahorraré las molestias de preguntarle: no te dará ningún traje. Es mejor que hables con Ozersky. Está más relajado que Hermann y ejerce cierta influencia sobre él. + + + ¿Qué te trae por aquí? + + + Oye, ¿dónde están esos mercenarios que te protegían? + + + ¿Qué tal? + + + Escucha... Alguien se ha cargado a aquellos mercenarios que te protegían. No me caían especialmente bien, pero se han pasado con ellos... + + + ¡CS-3a! Genial. Es muy buen blindaje. Me trae viejos recuerdos... + + + ¿Puedes desbloquear un módulo de memoria? + + + Déjame ver... Sí, sin problemas, ya lo he hecho antes. No me llevará más de una hora. Lo haré por... mmm... 2.000. ¿Vale? + + + Trato hecho. + + + Estupendo. Te avisaré cuando haya terminado. + + + No tengo tanto dinero. + + + Mm. Bueno, pues ya sabes dónde encontrarme. Dudo que encuentres a alguien mejor que yo para este trabajo. + + + Lo pensaré. + + + Como ya te dije, lo haré en una hora por 2.000. + + + ¿Has desbloqueado el módulo de memoria? + + + No ha pasado una hora. Ya te dije que te avisaría cuando terminase. + + + Sí, aquí está. Ya puedes acceder a la información. + + + He encontrado un semiartefacto extraño. ¿Te interesa? + + + Claro. ¿Dónde lo has encontrado? + + + En Zaton, en la planta de dragado abandonada. + + + Trato hecho. + + + No gracias. Buscaré a otro comprador. + + + ¿Qué hacen aquí los mercenarios? + + + Los hemos contratado para proteger el laboratorio móvil. Antes de que me preguntes, te diré que no tuvimos más remedio que reclutarlos. Debido a una operación militar secreta, no disponemos de la protección adecuada para trabajar en el laboratorio. Si a esto añadimos que a los stalkers no les interesa otra cosa que buscar artefactos, no me quedó otra opción que contratar a mercenarios si quería que el laboratorio estuviese a salvo. + + + ¿Qué haces aquí? + + + Investigamos diversos fenómenos. + + + ¿Cuál es el objetivo de tu investigación? + + + Realizamos investigaciones fundamentales. No nos dedicamos a probar trajes, inventar drogas nuevas o cosas así. Intentamos encontrar una explicación a lo que vemos en la Zona. Si conseguimos descubrir los secretos que se esconden tras al menos un diez por ciento de los fenómenos que presenciamos aquí, el desarrollo de la tecnología global recibiría un impulso de lo más vivificante. + + + ¿Qué sabes de la Zona? + + + No mucho, si te soy sincero. Estamos comenzando a entender los mecanismos que provocan algunos de los fenómenos que nos encontramos. Desgraciadamente, estamos muy lejos de comprender la Zona como un sistema. Esto se complica aún más por el hecho de que la Zona está cambiando continuamente. No me refiero a la aparición de nuevas anomalías o pequeñeces por el estilo. Te hablo de cambios más serios que no se pueden apreciar a simple vista. Por ejemplo, el debilitamiento de un campo magnético. Lo más triste es que no sabemos adónde nos conduce todo esto: tan solo podemos sentarnos a esperar. + + + ¿Cuánto tiempo llevas en la Zona? + + + No mucho, una semana más o menos. Eso sí, he visitado el laboratorio de Sakharov. Lamento que no consiguiésemos poner en marcha esta expedición con mayor rapidez. Les he dicho muchas veces a los del ministerio de Educación que necesitaríamos dos laboratorios móviles perfectamente equipados que estuviesen listos en todo momento... Pero se limitan a asentir y poco más. Por su culpa casi perdemos la mayor oportunidad que la Zona nos ha ofrecido. + + + Entiendo. + + + ¿Tenemos algún tipo de información sobre los escáneres que coloqué en las anomalías? + + + ¿Qué anomalía en concreto te interesa? + + + La anomalía del aparcamiento. + + + ¡Sí, nuestros dispositivos indican la presencia de artefactos en esa anomalía! + + + Por desgracia, parece que no hay artefactos en esa anomalía. + + + La anomalía del Baño de Cemento + + + La anomalía de Bitumen + + + La anomalía de la Ciénaga + + + La anomalía del Cenizal + + + Eso es todo de momento. + + + Soy todo oídos. + + + Los últimos acontecimientos han dejado claro que nuestro equipo de investigación no está suficientemente preparado para realizar adecuadamente trabajo de campo. Por otra parte, tú conseguiste encargarte del controlador sin ayuda. ¡Impresionante! + + + ¿Qué quieres decir? + + + Que lo más lógico sería que al menos intentásemos contratar a un experto tan capacitado como tú. Nuestro grupo de ciencia necesita desesperadamente tu ayuda. Tenemos que realizar mediciones, colocar escáneres... + + + Continúa. + + + Estoy intentando encontrar la correlación entre las emisiones y la aparición de artefactos en anomalías. Tengo la teoría de que podremos pronosticar la siguiente emisión por medio del número y la calidad de artefactos que aparezcan. Para realizar cálculos concretos, necesito recoger estadísticas. Solo hay que colocar unos cuantos escáneres en varias anomalías de distintos tipos. + + + Lo siento, pero no me interesa. + + + Es una pena. Podrías haber ayudado a la ciencia. + + + Vale, te ayudaré. + + + ¡Excelente! Tienes que pedirle los escáneres a Novikov y colocarlos en las anomalías que aparecerán marcadas en tu PDA. Ven a verme cuando termines: tengo que hablar contigo de otro asunto referente a los escáneres y las mediciones. + + + Me lo pensaré y volveré más tarde. + + + He colocado los escáneres en las anomalías. + + + ¡Excelente! Ya tengo los primeros resultados. Espero con ansia la siguiente emisión para obtener las muestras estadísticas que necesitamos... + + + ¡Soy todo oídos! + + + Cuando me acerqué y saqué el detector científico, todo a mi alrededor empezó a transformarse, como si se estuviese comprimiendo. Tras unos instantes, ¡comenzaron a surgir de la nada cadáveres de stalkers! Y después terminó todo. + + + ¡Increíble! Está claro que la información es tremendamente escasa, así que poco podemos deducir de ella. Pero introduciremos esta descripción en nuestros registros. ¡Llamaremos a esta anomalía la Burbuja espacial! + + + Tienes nuevos guardias, ¿no? + + + Sí, son muy agradables. Nos sentimos muy seguros con ellos por aquí. Gracias por tu ayuda: aquí tienes tu recompensa. + + + Echa un vistazo a estos documentos. + + + A ver... No voy a preguntarte de dónde los has sacado, ¡pero son increíbles! Voy a hacer una copia... Ah, por cierto: toma una pequeña recompensa. + + + ¿Qué ha pasado con tus guardias? + + + No lo sé. ¡Han desaparecido sin más! + + + Tengo contactos en la Zona. Puedo conseguirte guardias nuevos. + + + ¡Eso sería estupendo! Les prestaremos total apoyo científico y los últimos desarrollos tecnológicos en compensación por su trabajo. ¡Y tú también obtendrás tu recompensa! + + + ¡Hecho! + + + ¡Qué ganas! + + + He cambiado de idea. + + + Pues qué pena. + + + Pues vaya. + + + ¿Algo más? + + + ¡Han asesinado a nuestros guardias! ¡Los han tiroteado a las puertas de nuestro búnker! + + + He encontrado unos documentos en la central de Júpiter. ¿Quieres verlos? + + + Son interesantes, pero no muy útiles. Gracias por tu trabajo. Si encuentras algo más, tráemelo. + + + Me han atacado unos mercenarios mientras buscaba documentos. Aquí está la PDA de su líder. + + + Caray. ¡Y yo que pensaba que estaban aquí para protegernos! Tendré que hablar de esto con mis superiores. Muchas gracias, joven. + + + Por desgracia, no contiene información interesante. + + + Sí. Tenemos que descubrir los últimos avances de la central de Júpiter. Necesito los documentos técnicos que demuestran estos avances. Lo más probable es que estén en el departamento de administración de la central. + + + Los buscaré y traeré lo que encuentre. + + + No, no puedo ayudarte con eso. + + + Te he traído los documentos de Júpiter. + + + Son interesantes, pero no muy útiles. Gracias por tu trabajo. Si encuentras algo más, tráemelo. + + + Me han atacado unos mercenarios mientras buscaba documentos. Aquí está la PDA de su líder. + + + Caray. ¡Y yo que pensaba que estaban aquí para protegernos! Tendré que hablar de esto con mis superiores. Muchas gracias, joven. + + + Intentaré encontrar la anomalía. + + + No tengo tiempo. + + + Vengo a hablarte de mi participación en tu investigación. + + + Sé que hablo en nombre de todo el equipo cuando digo que nos honraría que aceptases ayudar a la ciencia una vez más. ¿Qué te interesaría hacer? + + + Me gustaría colaborar haciendo mediciones. + + + ¿Te gustaría ayudarnos a realizar un examen externo completo? + + + Sí. Dime qué tengo que hacer. + + + No, tengo que pensar en ello de nuevo. + + + Me hablaste de colocar escáneres. + + + Estoy intentando encontrar la correlación entre las emisiones y la aparición de artefactos en anomalías. Tengo la teoría de que podremos pronosticar la siguiente emisión por medio del número y la calidad de artefactos que aparezcan. Para realizar cálculos concretos, necesito recoger estadísticas. Solo hay que colocar unos cuantos escáneres en varias anomalías de distintos tipos. + + + Vale, te ayudaré. + + + ¡Excelente! Tienes que pedirle los escáneres a Novikov y colocarlos en las anomalías que aparecerán marcadas en tu PDA. + + + Me lo pensaré y volveré más tarde. + + + Los escáneres de las anomalías están transmitiendo información. Solo tenemos que esperar los resultados. Si quieres, coloca más escáneres en las anomalías. Nunca está de más disponer de información extra, y te avisaremos cuando aparezcan artefactos en las anomalías. + + + De acuerdo. + + + ¡Excelente! Tienes que pedirle los escáneres a Novikov y colocarlos en las anomalías que aparecerán marcadas en tu PDA. + + + Me lo pensaré y volveré más tarde. + + + Por desgracia, tenemos una regla que nos impide asignar más de una tarea simultánea a la misma persona. Lo siento, pero debemos cumplirla. + + + ¿Tienes ya los resultados de las mediciones de los campos de anomalías del escuadrón al que protegí? + + + Quería añadir que tus mediciones atrajeron la atención de numerosos mutantes y zombis. Hemos invertido mucho tiempo y esfuerzos en luchar contra ellos. + + + Mmm. ¿Entonces crees que reaccionaron a los exámenes? Interesante. Bueno, en ese caso parece que se confirma la hipótesis de Ozersky: los mutantes pueden acceder telepáticamente a diversos campos. Creo que merece la pena comentárselo. Te doy esto como pago a tu trabajo. ¡Te lo has ganado! + + + Mmm. ¿Entonces crees que reaccionaron a los exámenes? Interesante. Bueno, en ese caso parece que se confirma la hipótesis de Ozersky: los mutantes pueden acceder telepáticamente a diversos campos. Deberías comentárselo a Ozersky. Lo siento mucho por los stalkers. Un porcentaje de nuestros modestos fondos se destinará a compensar a sus familias. Con el resto te pagaremos por tu trabajo. ¡Gracias! + + + ¿Hay alguna forma de conseguir un traje científico? + + + ¡No! El número de trajes está estrictamente limitado. ¡No puedo permitirme regalarlos! + + + ¿Qué querías decirme? + + + ¿Te has fijado en la gente que se encarga de proteger nuestro búnker? + + + Continúa. + + + No vas a creértelo, pero alguien ha asesinado a nuestros guardias. ¡Justo al lado de nuestro búnker! + + + ¿Necesitáis ayuda? + + + Ahora estamos intentando recoger un nuevo tipo de muestras. No cuentan con ningún efecto anómalo por sí mismas, pero los experimentos que realizamos nos han dado unos resultados increíbles. + + + Continúa... + + + Corta el rollo y dime lo que hay que hacer. + + + Vale. Los stalkers que encontraron el campo psíquico creen que contiene una guarida de mutantes. Yo no lo creo. ¡Salvo los controladores, ningún mutante podría sobrevivir en un campo psíquico intermitente! Tranquilo, nuestros hombres se encargarán de los mutantes. Te necesitamos porque el contacto habitual con campos psíquicos ha reducido la resistencia de nuestros stalkers a sus efectos. + + + A ver si lo he entendido: ¿quieres que entre en un campo psíquico desconocido y que consiga una muestra de algo que quizás ni siquiera está allí, y que si está, nadie sabe qué aspecto tiene? + + + ¡Exacto! Esta misión es fundamental para la ciencia en general y para nuestro equipo en particular. Tu ayuda será incalculable. Si tienes dudas, habla con Ozersky. Él realizará los análisis correspondientes para determinar tu resistencia a las emisiones psíquicas. También puedes preguntar lo que quieras a nuestros stalkers. Bueno, ¿quieres ayudar a la ciencia? + + + Sí. + + + ¿No lo sabes? Tu escuadrón de stalkers ha muerto. + + + Teniendo en cuenta que la última vez no te presentaste en el túnel, me resultará complicado convencer al equipo de que trabaje contigo. + + + Aquello fue un accidente. + + + Te creo, pero nuestro equipo de recogida de muestras está compuesto por gente muy peculiar: no debes decepcionarlos nunca. Volveré a hablar con ellos e intentaré convencerlos. Pero esta vez no me falles: necesito esa muestra. + + + Perdóname, pero tengo que decir que no. Tu equipo no está preparado para un campo psíquico intermitente. Te encontrarás con una muerte rápida y dolorosa, y no quiero cargar con eso en mi conciencia. + + + He conseguido la muestra. + + + ¿En serio? Déjame ver. ¡Me muero por verla! + + + He conseguido tu muestra. Resultó que había un controlador en el túnel. Intentó acabar con tu escuadrón y casi lo consigue. Pero pude matarlo antes de que lo hiciera. + + + ¡Eres increíble! Has acabado con un controlador y has salvado a los stalkers de un ataque psíquico... ¡De no saber que es cierto, jamás te creería! Excelente experiencia, y una muestra fantástica. Tu contribución a la ciencia es digna de mención. Te doy las gracias de mi parte, de la de mi equipo y de la de todos los científicos del mundo. + + + Por desgracia, un controlador atacó al escuadrón. Tuve que defenderme. El controlador está muerto, pero los stalkers también. + + + ¿Has dicho un controlador? Qué horror, ¿quién lo habría pensado? Lamento la muerte de esos valientes muchachos, que sirvieron con lealtad a la ciencia. Aunque técnicamente no eran científicos, hicieron por la ciencia más que muchos profesores. Muchas gracias, acepta esta humilde recompensa. + + + Por desgracia, un controlador atacó al escuadrón. Apenas conseguí salir con vida. + + + ¿Qué hacen aquí los mercenarios? + + + Interponerse en mi camino. Aunque es tan solo una opinión personal. Al principio no dejaban de pedirme que les arreglase esto o aquello... Pero ayer perdieron la poca vergüenza que les quedaba y comenzaron a preguntarme cómo funciona nuestro equipo. No alcanzo a comprender de qué les serviría saber eso para proteger nuestro búnker. + + + ¿Qué modificaciones puedes efectuar en el equipo? + + + Ya habrás notado que esto no es un complejo científico... No tenemos kevlar ni armas para piezas de repuesto. Aquí tan solo puedo arreglar blindajes personales o modificarlos con uno de mis inventos. Como podrás imaginarte, tengo muchísimo equipo de primera. + + + Gracias a ti y a la muestra que trajiste del campo psíquico, Ozersky consiguió idear algo para proteger a la gente de las emisiones. Y he convertido su idea en algo práctico... que puedo instalar en tu traje, si quieres. + + + Bueno, además de las mejoras habituales, puedo ofrecerte modificaciones de filtrado y de protección psíquica. Después de todo, existen gracias a tu ayuda... ¡Ozersky y Hermann están contentísimos! + + + Bueno, además de las mejoras habituales, puedo ofrecerte modificaciones de aislamiento y de protección psíquica. Después de todo, existen gracias a tu ayuda... ¡Ozersky y Hermann están contentísimos! + + + Tengo todo tipo de modificaciones: de aislamiento, de filtrado y de protección psíquica. Con un traje que tenga todas instaladas, podrás entrar en cualquier anomalía... e incluso salir. Por cierto, gracias por participar en la investigación de Hermann. Sin tu ayuda, no dispondría de todas estas opciones. + + + Háblame de tu búnker. + + + Mmm. ¿Qué quieres saber? + + + ¿Qué hacéis en el laboratorio? + + + No creo que Hermann ni Ozersky puedan responder a esa pregunta. Obviamente, allí se hacen todo tipo de investigaciones. Pero los resultados son más bien escasos. Podrías hablar de ello con Ozersky. Basándome en sus teorías, he inventado un par de modificaciones aceptables para trajes. + + + ¿Qué sabes de la Zona? + + + No hablo en un sentido científico, pero tengo mucha experiencia práctica en la Zona. Aquí lo único que tiene valor es lo que aumente tus probabilidades de supervivencia. En la Zona da igual si eres un bandido o un stalker que recoge artefactos para alimentar a su familia. Aquí solo sobreviven los que mejor se adaptan a la vida en la Zona. + + + ¿Cuánto tiempo llevas en la Zona? + + + Bastante. Al principio, buscaba artefactos, como todos, pero mi salud empezó a empeorar hasta que me di cuenta de que no podía seguir. Por suerte, aún me queda alguna neurona y no me resultó difícil encontrar trabajo. Me pasé casi un año con una facción formada por antiguos científicos. Eran buena gente... Una pena que muriesen en un intento por conseguir un objetivo confuso. Después pasé un tiempo vagando por la Zona y terminé trabajando para los científicos. De momento no tengo queja. + + + Eso es todo lo que quería saber. + + + Voy a entrar en el campo psíquico intermitente. ¿Algún consejo? + + + ¿Qué puedo decir? No creo que conozcas la teoría de los campos de energía informativos... Puedes estar seguro de que una breve exposición al campo psíquico no es peligrosa... al menos, a la larga. Pero no te relajes demasiado allí dentro. Los que infravaloran los campos psíquicos suelen terminar convertidos en zombis. + + + ¿Puedes forzar un contenedor de acero? + + + No creo. No tengo el equipo adecuado. Y va contra nuestras reglas de salud y de seguridad. + + + ¿Puedes desencriptar una caja negra? + + + Sí, pero no voy a hacerlo. Antes me dedicaba a eso... y no me gustaba. Demasiados líos... Los científicos ya me dan bastante trabajo. + + + ¿Qué tiene de especial el CS-3a? + + + ¿Aparte de que lo he diseñado yo? Es uno de los mejores trajes de la Zona. Por algo lo llevas puesto, ¿no? Es ligero, móvil y tiene un espeso blindaje personal en su centro. Le he añadido una protección contra anomalías. Es una pena que hoy en día escaseen los materiales. Pero, ¿qué quieres? Estamos en mitad de un pantano. En fin, con un par de arreglos, tendrías un traje de lo más moderno. Tengo mucho equipamiento de primera, así que eso no sería un problema. + + + ¿Trabajas para Búho? + + + No. El otro día me ayudó a conseguir algo... Un favor por un favor. + + + Búho me pidió que te trajese detectores. Aquí están. + + + Vale. Los usaré para un trabajo y después se los devolveré a Búho con los guías. El resto son asuntos personales entre Búho y tú. + + + ¡Oh! ¿Así que eres tú el que vende armas a los bandidos de Zaton? + + + Sshh. ¿Estás loco? ¿Cómo se te ocurre hablar de eso aquí? No nos conocemos de nada, ¿vale? + + + Entendido. + + + ¿Y si le contase al comandante lo de tu pequeño negocio paralelo? + + + ¿Qué le podrías contar? No tienes ninguna prueba. De hecho, tú fuiste el que liquidó a los testigos. Quedarás como un idiota si me acusas de algo sin pruebas. + + + He encontrado la PDA de unos mercenarios muertos. Contiene un contrato para asesinarme. Y el cliente eres tú... + + + Me tienes harto. A ver, dame esa PDA y a cambio te daré un arma excelente que solo utilizan los soldados de élite de Deber. ¿Qué te parece? + + + Vale, cogeré el arma. + + + Quédatela. ¡No necesito limosnas de una víbora traicionera! + + + Tengo otra PDA con un contrato para asesinarme. Y tú vuelves a ser el cliente. + + + Maldita sea... Esos putos mercenarios... No se puede confiar en ellos para nada, joder... Haremos lo siguiente: los mercenarios dejarán de buscarte y tú me dejarás en paz. Para compensar tus pérdidas, te llevaré al almacén secreto de Deber para que puedas llevarte todas las armas que puedas cargar. + + + Vale, bien pensado. + + + Bien, nos veremos allí. El escondite está junto a la cantera. + + + No pienso ir a ningún sitio. Tendrás que dármelo todo aquí mismo. + + + ¡Aquí no tengo nada, no soy tan idiota! O nos reunimos junto al escondite o te quedas sin nada. + + + No, gracias. + + + ¡No necesito limosnas de una víbora traicionera! + + + Quiero irme de la Zona. + + + ¿Seguro? No hay vuelta atrás. + + + Segurísimo. En marcha. + + + Bueno... De momento me quedo. + + + Veamos... Bueno, tienes el hígado más grande de lo que esperaba, pero eso es un riego laboral, ¿no? Aparte de eso, estás sano como una manzana. + + + Sería hasta normal si no resplandeciese... Da miedo, tal y como está ahora. Mira, echa un vistazo... Aunque dudo que disfrutes de las vistas. + + + Vale, como quieras. + + + ¿"Fueron" soldados de Monolith? Bueno, tú verás. ¿Responderás por ellos? + + + ¿"Fueron" soldados de Monolith? No, gracias. Paso de esa panda de fanáticos rabiosos. + + + Ja, buen chico. Más te vale cuidarte, y eso significa que no te olvides de tenerme bien untado. ¿Qué tienes para mí, un artefacto o los 15.000? + + + He traído un artefacto. + + + Vale; ¿cuál? + + + No tengo artefactos de ese valor. + + + Llama. + + + Pez de colores. + + + Luciérnaga. + + + Copo de nieve. + + + Em... Nada, por ahora. + + + Bueno, yo ya he dicho lo que tenía que decir. Ahora habla. + + + Hasta luego. + + + ¡Pues claro! Aún hay que estudiar el campo psíquico intermitente, y cuanto antes, mejor. Déjame hacerte una pregunta: ¿estás seguro de que esta operación es segura? Necesitamos tu ayuda para conseguir una muestra de prueba. ¿Vas a querer ayudar a la ciencia? + + + Puede que encuentre a gente válida para tu nuevo grupo de investigación. + + + ¿De verdad? Una ayuda así nos vendría de perlas y supongo que conllevaría beneficios. + + + Bien. Contrataré a la gente adecuada. + + + Lo pensaré un poco más. + + + Aquí tienes. Me topé con un controlador en ese túnel y lo maté. + + + ¡Eres increíble! Has matado a un controlador y conseguido lo que necesitábamos. ¡Me lo cuentan y no me lo creo! La experiencia es magnífica y la muestra, fantástica. Tu contribución a la ciencia es de lo más notoria. ¡En mi nombre y en el de todos los científicos, te ruego que aceptes mi más sincera gratitud! + + + Aquí tienes. Me topé con un controlador en ese túnel. Casi no lo cuento. + + + ¿Un controlador? Es terrible; ¿quién iba a pensarlo? Lo importante es que nos has traído la muestra y, por tanto, has hecho una notoria contribución a la ciencia. Gracias y, por favor, acepta esta modesta recompensa. + + + ¿Te gusta tu nuevo grupo de investigación? + + + Oh, todo correcto. Parecen jóvenes competentes. Toma, acepta esto. Tienes, em... madera para los recursos humanos. + + + ¿Qué tal, hermano? Claro que me alegro de verte, pero tampoco me importaría tener un ratito de intimidad. + + + He venido a por el stalker secuestrado. Quiero comprar su libertad. + + + Y quiero que se respete a los bandidos y nuestras reglas, colega. Pero tampoco quiero líos innecesarios. Con 15.000 o un artefacto valioso me bastará. Soy un hombre justo: no quiero más de lo que me corresponde. + + + Toma la pasta. + + + Bien... Respeto lo que haces. Llévate a ese perdedor y dile a los stalkers que la próxima vez el precio será mayor. + + + No llevo tanto encima. + + + Vale, qué novedad, no tienes una mierda. + + + De momento no tengo nada. Volveré más tarde. + + + Déjame ver... Bueno, no hay nada de importancia estratégica, pero nos puede venir bien. Te pago 500 por documento. ¿Trato hecho? + + + Vamos a ver... ¡Mierda! Esta información dañaría gravemente la reputación de Deber. Te la compro por 4.000. + + + Interesante... Bien, te pagaría 2.000 por eso. + + + Sí, pero el precio sigue siendo el mismo: 2.000. + + + Bien, hasta otra. + + + ¡Es terrible! ¿Qué puede haberles pasado? Mmm... Los mutantes son una posibilidad. Tendré que preguntarle a Ozersky qué tipo de monstruo puede ser... Mmm. No obstante, hay que estudiar el campo psíquico. Esta misión es fundamental para la ciencia en general y para nuestro equipo en particular. Necesitamos tu ayuda desesperadamente para conseguir una muestra. Si tienes dudas, ve a ver a Ozersky. Él realizará los análisis pertinentes para determinar tu resistencia a las emisiones psíquicas. Bueno, ¿quieres ayudar a la ciencia? + + + Me lo pensaré. + + + Nuestro equipo de investigación, formado por stalkers locales, encontró recientemente un campo psíquico altamente inusual. Según nuestras teorías y las mediciones efectuadas, la naturaleza de este campo tiene efectos psíquicos intermitentes, en vez de hacerlo de forma continua. + + + Por desgracia, nuestro equipo de investigación ha muerto. Hasta que encontremos un reemplazo, no podremos realizar experimento alguno. + + + Espera... ¿Serías tan amable de prestarme un momento de atención? + + + ¿Cuáles son los resultados del examen de la anomalía? + + + ¿Tienes más trabajo para mí? + + + Algo he oído. + + + Por desgracia, aún no he convencido a Hermann para que organice un equipo de búsqueda... Lo admito: los rumores acerca del fenómeno son demasiado contradictorios, pero algo me dice que el Oasis existe. Mi intuición rara vez falla, así que si das con él y me traes una prueba de su existencia, te estaría muy agradecido. + + + Lo buscaría, pero ya he estado en el Oasis. + + + Em... Estooo... Creo que no te he entendido. ¿Qué has dicho? + + + He venido a saldar la deuda de Vano. + + + Sí, lo recuerdo. No es poco lo que debe, y con los intereses asciende a 7.000. + + + Vale, toma. + + + Dile a Vano que ya no nos debe nada. + + + De acuerdo. + + + No tengo tanto dinero. + + + Vuelve cuando lo tengas. + + + El trato no incluía intereses. + + + ¿De qué estás hablando? ¿Me tomas por idiota? ¿Crees que dejo dinero sin cobrar intereses? Son 7.000 y fin de la historia. + + + Anda, piénsatelo bien. Tengo aquí mi arma y no me importa utilizarla. A ver, ¿qué vas a hacer fiambre y con tantos intereses? + + + ¡Vale, vale, calma, jefe! Seguro que podemos llegar a un acuerdo. Págame solo 5.000 y asunto zanjado. + + + Ja... ¡Métete ese arma de mierda por donde te quepa, imbécil! Son 7.000 con los intereses. Y punto. + + + ¿Ya no te acuerdas? Aún tengo el arma. + + + Prefiero liquidarte de gratis. + + + Me lo pensaré. + + + 7.000 con los intereses. + + + No estoy para trabajos importantes ahora mismo. A ver si me organizo un poco... No sé, igual hasta me voy a casa... busco trabajo y me olvido de estos condenados artefactos... No sé cómo dejar a Osopardo... y a Torla. Ahora estamos muy unidos y nos ayudamos. Yo qué sé, igual solo necesito descansar y reorganizar mis ideas. + + + No estoy para trabajos importantes ahora mismo. Voy a trabajar para los científicos y a organizarme un poco... No sé, igual hasta me voy a casa... Busco otro trabajo... Bah, yo qué sé... Necesito descansar y reorganizar mis ideas. + + + ¿Qué, con ganas de salvar a Mitay? Espero que no te importe trabajar con unos colegas que he contratado. + + + Tengo la PDA del comerciante de Deber, Morgan. ¿Te interesa? + + + Tengo una PDA que demuestra los contactos entre Morgan y los mercenarios. + + + Creo que me la voy a quedar. + + + ¡Sabía que al final prevalecerían tus ansias por hacer el bien en el mundo y colaborar con el avance de la ciencia! Muy bien, éste es el plan. Un grupo de investigación de stalkers se encargará de hacer las mediciones. Tu trabajo consistirá en escoltarlos; es decir, protegerlos y guiarlos por terrenos difíciles. Los stalkers te están esperando en el exterior. + + + Hola, stalker. ¿Te sorprende ver a un anciano por aquí? Ja, ja. Vine aquí con los chicos porque necesitaba un cambio de aires. Me dedico a reparar equipo, y hacer curaciones de vez en cuando... + + + Ya que estás aquí, ¿en qué puedo ayudarte? + + + ¿Cómo llegaste a Pripyat? + + + Garry me mostró el camino. Los stalkers llevaban tiempo queriendo venir aquí, pero no les apetecía vérselas con los soldados. En cuanto Garry nos contó que el ejército había sido derrotado, no me lo pensé dos veces y me vine. ¡No tengáis miedo, el tío Yar ha llegado! ¡Ja! + + + Necesito asistencia médica. + + + Deja que este anciano vea eso... + + + Ya está: sobrevivirás. Si se hincha, méate encima. Me han dicho que eso a veces funciona. + + + ¡Estás mejor que yo! ¿Le estás tomando el pelo a este anciano? Ja... + + + Bienvenido a mi humilde y alegre morada. ¿Buscas alegría, placer o ambas cosas por igual? + + + Bueno, los chicos siempre dicen que soy demasiado bueno, como una especie de hada madrina. Así que no te quejes mucho... La próxima vez no lo seré tanto. ¡Y ahora largo de aquí, pardillo! + + + Ya he estado allí. Los bandidos han muerto. + + + ¡Caray, eres tremendo! ¡Muchas gracias! Toma este dinero: lo iba a usar para pagar la deuda pero tú te lo mereces más. + + + ¡Caray, eres tremendo! ¡Muchas gracias! Toma este dinero: lo iba a usar para pagar la deuda pero tú te lo mereces más. + + + Nuestros escáneres han detectado una actividad inusual al norte de aquí. A tenor de los datos recibidos, creo que la formación anómala de ese lugar es inestable. Por desgracia, no puedo deducir nada más de esta información. Tenemos que realizar una investigación de campo. Solo puedo decir que los detectores normales de los stalkers no podrán registrar la anomalía. Hay que utilizar un Svarog, uno de nuestros inventos. + + + Los escáneres siguen detectando una actividad anómala inestable al norte de aquí. Si dispones de algo mejor que un detector normal de stalkers, como por ejemplo un Svarog, podrías intentar realizar una investigación de campo. + + + De momento, tan solo el del campo de la anomalía del pantano. A pesar de esto, Novikov ya le ha encontrado una aplicación práctica. Gracias por tu trabajo. Esperamos ansiosos la segunda entrega de los resultados. + + + De momento, tan solo el del campo de la anomalía que está más allá de Kopachy. A pesar de esto, Novikov ya le ha encontrado una aplicación práctica. Gracias por tu trabajo. Esperamos ansiosos la segunda entrega de los resultados. + + + Por supuesto. He recibido todos los resultados. Para serte sincero, el volumen de datos obtenido es tan grande que nos llevará semanas, por no decir meses, procesarlos correctamente. A pesar de esto, Novikov ya le ha encontrado una aplicación práctica. Muchas gracias por tu ayuda. + + + No, aquí no ha ocurrido nada parecido. Mmm... Aunque hace un rato me encontré con un tipo muy sospechoso. Fui a dar un paseo y en el camino de vuelta, vi a un stalker que se iba de Yanov. En cuanto me fichó, empezó a ponerse agresivo sin motivo aparente. Me dijo que sabía dónde vivía yo y cosas por el estilo. En su momento no le di mayor importancia: pensaba que estaba borracho. Pero quizás tenga algo que ver con lo que me cuentas. + + + ¿Adónde fue? + + + Hacia el noreste. Escuché unos disparos por allí, aunque eso es muy normal por aquí. Pregunta a Zulu: está en su torre día y noche, así que es posible que haya visto algo. + + + Hacia el noreste. Es posible que haya ido a la subestación. + + + Entiendo. + + + ¿Qué pasa, amigo? + + + ¿Qué tal te va? + + + No me va mal. Hombre, no es fácil pero conseguiremos irnos de aquí. ¡Juntos podemos hacer cualquier cosa! + + + ¿Qué tal te va? + + + Pues no sé. No me gusta estar aquí. Siento la necesidad de un cambio. Puede que me vaya pronto, espero que no te parezca mal. + + + He borrado del mapa la guarida de chupasangres de Zaton. + + + [continuar...] + + + [continuar...] + + + [continuar...] + + + [continuar...] + + + Necesito que alguien tome medidas de las anomalías. + + + Necesito que se tomen medidas de las anomalías. + + + ¿Quién es la bella durmiente? + + + ¿Has encontrado el artefacto? + + + ¡No lo sabes bien! Aquí no hay nada que hacer. Lo único que tenemos para divertirnos es un tablero de backgammon. Esto no es Pripyat... ¡Tío, me iré para allá en cuanto se acabe mi puto contrato! + + + [continuar...] + + + Puedes ir a la cantera, allí murió el disidente. Antes de fallecer, me dijo que Pedernal le robó su botín y que lo dejó morir en una anomalía. + + + Lo llamaban el disidente. Entró en una anomalía de gas y tú saliste corriendo con su artefacto. Como ves, logró contármelo todo antes de morir. + + + No te voy a preguntar de dónde lo has sacado. Vamos a ponerlo fácil: te compro esta PDA por 4.000. Siempre he tenido curiosidad por saber qué hace nuestro oficial de suministros cuando no trabaja... + + + Veamos... ¡Menuda mierda! Además de venderles nuestras armas, ¡le dio el almacén a Libertad! Maldita sea, tendremos que convocar una reunión del equipo ahora mismo. + + + Veamos... ¡No me lo puedo creer! Sabíamos lo del almacén y hasta pensábamos ir, pero no teníamos ni idea de la alarma porque ese imbécil no dijo nada. Un momento, tengo que avisar a los chicos. + + + Bueno, te daré los 4.000 por pura curiosidad. + + + Bueno, no es que sea un soldado de asalto pero maneja bien el arma. Siempre tiene esa cara tan avinagrada, como si no le dieran de comer nada más que limones. + + + He encontrado una extraña anomalía en una torre de refrigeración. + + diff --git a/gamedata/configs/text/spa/st_dialogs_pripyat.xml b/gamedata/configs/text/spa/st_dialogs_pripyat.xml new file mode 100644 index 0000000..5aec6bf --- /dev/null +++ b/gamedata/configs/text/spa/st_dialogs_pripyat.xml @@ -0,0 +1,906 @@ + + + + ¡Ja! ¡Así aprenderán! Gracias por ayudarme. Si no fuera por ti, esos cabronazos me habrían engullido enseguida. En fin, eres un buen stalker, después de todo... Siento lo del enfado, pero podrías haberme dicho antes que eras de la USS. + + + No pasa nada. Será mejor que vayamos al campamento militar. Es más seguro. + + + Sí, seguro que es mejor que andar merodeando solo por Pripyat. + + + Pues venga, vamos. + + + Tengo unos asuntos que finiquitar, pero tú puedes ir yendo. El campamento está en la lavandería. + + + Yo ya me largo. + + + Espera... Toma esto. Es la ametralladora más fiable de la Zona. + + + Espera, ¿ya no la necesitas? + + + Siempre llevo algo a mano para cargarme a un par de mutantes. Además, he decidido volver; Garry me va a llevar a Júpiter. Tú la necesitarás más. Llévatela y dale buen uso. + + + Que tengas buena suerte. + + + Gracias, es un arma estupenda. + + + ¡Ja! No es estupenda, es la mejor de la Zona. Está modificada, así que pesa un poco, pero no necesitarás correr si llevas un cañón de ese calibre. ¡Los que correrán serán tus enemigos! + + + Adiós. + + + ¡Bien! + + + ¿Sabes dónde ha ido Zulu? + + + Se fue... Me pidió que lo llevara a Júpiter y luego nos separamos cerca de la central. No me dijo adónde iba. + + + Espera... Me ha pasado algo malo que quiero compartir... Unos mercenarios me pidieron que los llevara a Pripyat. Al principio, me convencieron con una tentadora suma, pero pronto me di cuenta de que estaba de mierda hasta el cuello. No me quitaban ojo, amenazándome a punta de pistola. Aun así, logré escapar cuando nos aproximábamos a Pripyat, pero ahora estarán en la ciudad, así que ten cuidado. + + + ¿No oirías por casualidad de qué hablaban los mercenarios? + + + Un poco, sí. No tenían ninguna intención de dejarme con vida, así que no ocultaban sus planes. Hablaban sobre todo de reunirse con la gente del cliente, que iban a mostrarles el objeto y el propósito de su misión. + + + ¿Dónde tendrá lugar el encuentro? + + + Cerca, en el patio del bloque de apartamentos. + + + Gracias por la información. + + + Has mencionado a los mercenarios... ¿Pudiste oír de qué hablaban? + + + Un poco, sí. No tenían ninguna intención de dejarme con vida, así que no ocultaban sus planes. Hablaban sobre todo de reunirse con la gente del cliente, que iban a mostrarles el objeto y el propósito de su misión. + + + ¿Dónde tendrá lugar el encuentro? + + + Cerca, en el patio del bloque de apartamentos. + + + Tengo un acuerdo con los científicos acerca de un traje... Ve a ver a Hermann y él te contará. + + + Vale... ¿Dónde está el punto de encuentro? + + + Cerca de la estación de Yanov, en casa de Zulu. + + + ¡Está hasta arriba de stalkers! Mejor llévame tú, porque si aparezco yo por ahí verás la que se monta. Si me acompañas, no dispararán porque te conocen. + + + ¿A qué punto de evacuación fuiste? + + + Lo siento, no puedo hablar de ello. Es confidencial. + + + Vamos a ver a Zulu. + + + De acuerdo, pero antes hay que ir a ver a Hermann para hacernos con el traje de científico. + + + En marcha. + + + Yo iría... pero hay una emisión por allí. ¿Esperamos un poco? + + + ¿Cómo has acabado aquí? + + + Mi helicóptero se estrelló contra un taller de Júpiter y atravesó el tejado. Soy el único superviviente. Conseguí salir de la central de Júpiter y me dirigí al punto de extracción más próximo, pero no había nadie. Luego conocí a Garry y él me condujo al búnker. + + + Necesitarás un traje con módulo respiratorio de ciclo cerrado para llegar a Pripyat. + + + ¿Qué haces aquí? + + + Mis órdenes son dirigirme al punto de evacuación, pero la Zona es muy peligrosa. ¡Soy piloto, no guardia de asalto! Por eso espero aquí, con la esperanza de que me evacúen una vez completada la operación. + + + Estoy reuniendo un pelotón para ir a Pripyat. ¿Quieres acompañarme? + + + ¿A Pripyat? Pues sí, creo que sí... Puede que alguno de los nuestros haya sobrevivido y llegado allí... Hay un punto de evacuación en Pripyat, así que iré para allá. Nunca conseguiría llegar solo, pero estoy dispuesto a intentarlo con tu pelotón. + + + ¿Todo listo para irnos? + + + Supongo que así es. + + + Hola, stalker. + + + Eh. + + + Hola. + + + Hola, mayor. + + + ¿De dónde has sacado un uniforme militar? + + + Je... En fin, supongo que todo el mundo sabe ya que unos helicópteros militares se estrellaron... Soy el teniente Sokolov, copiloto de uno de ellos. + + + En cuanto al centinela... + + + Su señal procede de la vieja tienda de ultramarinos, pero no responde... A lo mejor ha perdido la radio. Llegados a este punto, es difícil estar seguro. Hay que localizarlo. + + + ¡Gracias, coronel! Creo que me apañaré. + + + En cuanto al centinela... + + + Pues... Todo es cosa de ese controlador... Eso fue probablemente lo que le ocurrió también al pelotón de reconocimiento. Los hizo dispararse entre sí. Esas criaturas son lo peor de la Zona y no nos han entrenado para combatirlas. El controlador nos ha pillado por sorpresa y hemos vuelto a perder hombres. + + + Al menos ya no hay que preocuparse por el controlador. + + + Espero que las cosas se calmen un poquito ahora... Agradezco la ayuda, mayor. Sospecho que esta misión habrá requerido una buena dosis de munición. Busca al teniente Kirillov y pídele que te envíe con el equipo necesario. + + + ¡Gracias, coronel! + + + No hay de qué preocuparse, coronel. Me ocuparé de ese mutante. + + + ¿Puede darme más detalles sobre la misión? + + + ¿Quién es él? + + + Si no damos pronto con el origen de la interferencia, no nos quedará más alternativa que esperar y morir. El primer ataque masivo de Monolith hará pedazos a los militares... y la operación acabará en fracaso total. + + + Intentaré dar con el origen lo antes posible. + + + ¿Y bien, mayor? ¿Has localizado el origen de la interferencia de radio? + + + No, sigo trabajando en ello... + + + Garry me habló del incidente con los mercenarios... + + + Sí, a mí también me lo contó. En cuanto Garry huyó, vino aquí por miedo a que lo siguiesen. Por suerte para él y para nosotros, los mercenarios no le siguieron el rastro... Estamos vigilando el lugar en el que los mercenarios y la gente del cliente tienen que reunirse, pero nada... Ojalá supiera lo que buscan aquí esos mercenarios. + + + Me han informado de que los mercenarios andan buscando un laboratorio secreto en Pripyat. + + + ¿Un laboratorio secreto en Pripyat? ¿De dónde has sacado esa información? + + + De la libreta de un mercenario de Zaton. También lo confirma lo que me contó un stalker llamado Tío Yar. + + + Mmm... ¿Y se sabe algo más? + + + Andan buscando el laboratorio central. Mientras investigaba, pude dar con las coordenadas. + + + Si esto es cierto, significa que tenemos otro enemigo, además de los zombis y los fanáticos... Hay que decidir cómo actuamos. + + + Hay que espiar el encuentro y eliminar al representante del cliente, si es posible. Así nos aseguraríamos de que nadie fuese al laboratorio X8 de momento. + + + No está mal pensado; aunque no averigüemos quién más está al tanto del laboratorio, al menos nos aseguraremos de que los mercenarios no vayan. Eso sí, los mercenarios reaccionarán rápido y serán una amenaza para nosotros. Hay que matar a ambos objetivos, si es posible. Ordenaré al teniente Kirillov que te acompañe. + + + De acuerdo. + + + Un momento; igual habría que elegir al otro objetivo. + + + Decide qué objetivo es el prioritario. + + + Tenemos que acabar con el líder mercenario. Ocúpate de él y el pelotón de mercenarios decapitado dejará de ser un problema. + + + Está bien pensado, pero es probable que el mensajero huya y revele la información sobre los laboratorios en otro punto, así que los mercenarios acabarían llegando. Lo idóneo es matar a ambos objetivos, si es posible. Ordenaré al teniente Kirillov que te acompañe. + + + No tengo tiempo para esto. + + + De la libreta de un mercenario de Zaton. + + + Es una historia que me contó Tío Yar, un stalker de la estación de Yanov. + + + Y los mercenarios... + + + Magnífico; ambos objetivos han sido abatidos. Ahora los mercenarios no se nos interpondrán y evitaremos intrusiones en el laboratorio. Quédate el fusil. Aquí tienes munición. + + + Bien, ahora que el líder ha muerto, los mercenarios no nos supondrán un problema, aunque viendo que la gente del cliente ha salido de ésta, igual les da por aparecer en el laboratorio. No hay que bajar la guardia. Quédate el fusil. Aquí tienes munición. + + + Bien, ahora que la persona que conocía el enclave del laboratorio ha muerto, los mercenarios no lo encontrarán, aunque dudo que se vayan a largar de Pripyat, lo que significa que seguimos bajo una amenaza constante. No hay que bajar la guardia. Quédate el fusil. Aquí tienes munición. + + + ¿Así que cambiaste de objetivo en el último momento? Bueno, no es mala decisión. Ahora que el líder ha muerto, los mercenarios no nos supondrán un problema, aunque viendo cómo se las apaña la gente del cliente, igual aparecen por el laboratorio. No hay que bajar la guardia. Quédate el fusil. Aquí tienes munición. + + + ¿Así que cambiaste de objetivo en el último momento? Bueno, no es mala decisión. Ahora que la persona que conocía el enclave del laboratorio ha muerto, los mercenarios no lo encontrarán, aunque dudo que se vayan a largar de Pripyat, lo que significa que seguimos bajo una amenaza constante. No hay que bajar la guardia. Quédate el fusil. Aquí tienes munición. + + + La cosa no ha ido tan bien. El líder mercenario está vivo, y también el tipo del cliente. Ahora que los mercenarios saben de nosotros, serán una amenaza aparte de la de las fuerzas de Monolith. Y por si fuera poco, ahora saben dónde está el laboratorio, así que es cuestión de tiempo que aparezcan por allí. No hay que bajar la guardia. Quédate el fusil. Aquí tienes munición. + + + Prepara a tus soldados, coronel. Estoy listo. + + + De acuerdo. Cubre a Strelok, mayor. Nosotros nos cuidaremos solitos. + + + Veamos... De todos nosotros, Strelok y tú sois los más experimentados en la Zona. La diferencia es que, mientras la experiencia de Strelok no es más que un rumor, la tuya es algo patente. Lo que trato de decir es que confío en ti, mayor. Vigila a Strelok; no quedamos muchos... + + + El pelotón está listo para la acción. Cuando tú digas, mayor. + + + Parece que esos pirados están muertos. Coge ese fusil y vámonos echando leches de aquí mientras podamos. + + + Por mí, perfecto. + + + Listo, vámonos. + + + Vale, el pelotón está listo. + + + En marcha. + + + Tendremos que esperar. No quiero perder hombres en la emisión. + + + Soy el capitán Tarasov. Puede que tenga el rango de mayor, pero yo estoy al mando aquí y eso significa que mis órdenes no se discuten. Las vidas de todos los del pelotón dependen de ello. EL plan es el siguiente: nos posicionamos en el ala oeste del hospital y esperamos a que aparezcan las fuerzas de Monolith. Tenemos que actuar rápido para no atraer atención innecesaria. + + + Entendido, en marcha. + + + Vale, el pelotón está listo. + + + En marcha. + + + Tendremos que esperar. No quiero perder hombres en la emisión. + + + Espere, capitán, aún no estoy listo. + + + ¿Alguna novedad sobre la interferencia? + + + He identificado numerosos orígenes, uno de ellos cerca. Si lo destruimos, quizá podamos comunicarnos con el cuartel general. + + + He descifrado las coordenadas del origen de la interferencia. Debe de tratarse de una alta frecuencia especializada, o incluso de un transmisor de microondas. + + + El dispositivo que destruisteis era el origen de la interferencia. Habrá montones de ellos, pero ya hemos establecido comunicación con el cuartel. + + + ¿Y la señal? + + + La señal no hace más que aparecer y desaparecer, pero cada vez que reaparece está más cerca de la base. + + + ¿Eso es todo? + + + Pues no; el caso es que la señal se transmite en frecuencias de uso muy poco común en comunicación por radio. + + + Entiendo. + + + Tome esta arma y munición... Puede relajarse, por ahora. Yo vigilaré la posición desde el otro lado y contactaré con usted en cuanto aparezcan. + + + De acuerdo. + + + Saludos. Soy el teniente Kirillov. Me encargo de mantener las armas y almacenar munición. + + + ¿Tienes munición? + + + Sí, el otro día nos colamos en un almacén de Monolith y estaba repleto de munición para todas las armas que hay en la Zona. No sé cómo conseguirán tanto armamento... Supongo que se la venderá uno de los guardias del perímetro. + + + ¿También puedes arreglarme el arma? + + + Pues claro. Nos han formado para reparar todo tipo de armamento. + + + Entiendo. + + + Saludos. + + + ¿De qué será este dolor de cabeza...? + + + Llegó el momento de la verdad; no sé si lo conseguiremos o no... + + + Necesito munición. + + + Sin problema. ¿Qué necesita, exactamente? + + + Munición de pistola 9x18... + + + Aquí tiene. ¿Algo más? + + + Toma. + + + Munición de pistola 9x19... + + + Munición de pistola 11,43x23... + + + Munición de escopeta. + + + Munición de fusil de asalto 5,45x39... + + + Munición de fusil de asalto 5,56x45... + + + Munición de fusil de asalto 9x39... + + + Munición de fusil de francotirador... + + + Munición de ametralladora. + + + No puedo darle más, mayor. El coronel ha ordenado guardar munición. + + + Vale, olvídalo. + + + Necesito granadas. + + + Perfecto. ¿De qué tipo? + + + Granadas de mano. + + + Toma. + + + Munición de lanzagranadas VOG-25. + + + Munición de lanzagranadas M209. + + + Bueno, es igual. + + + No puedo darle más, mayor. El coronel ha ordenado guardar munición. + + + Necesito asistencia médica. + + + Siempre es un placer ayudar. Veamos... + + + Ahí está, sano como una manzana. + + + ¿Cómo se encuentra después de lo ocurrido? + + + Ahora estoy bien... Estuve en estado de shock tras lo del jardín de infancia, pero en cuanto comenzó la emisión, me espabilé enseguida. + + + Saludos. + + + Lo principal es llegar a los helicópteros. + + + Necesito suministros médicos. + + + Veamos lo que tengo. A ver, hay esto... + + + Lo siento, no andamos sobrados; no puedo dar más. + + + Hemos seguido la señal de radio. + + + Sí. Me puse en contacto con un stalker llamado Guide. Él fue quien me dijo que viniera aquí por los túneles subterráneos. + + + ¿Quién es Guide? + + + Es un stalker legendario; dicen que puede llevarte a cualquier lugar de la Zona. Los del ejército tienen suerte de haberse topado con él; sin su ayuda, no hubiesen sobrevivido mucho. + + + ¿Cómo sabías que los militares estaban aquí? + + + Guide me lo dijo. Él fue quien trajo a Kovalsky y a su pelotón. + + + Entiendo. + + + ¿Qué información quieres revelar al gobierno? + + + Muchas cosas... Seguro que la información que tengo puede servir para destruir la Zona. Ojalá pudiese hacerlo solo... pero es un asunto complicado. La gente que comenzó todo ya no estaban al mando. Lo explicaré todo cuando salgamos de aquí. + + + ¿Qué viste en el sarcófago? + + + Es todo mentira... el Monolito, el Genio... Todo falso, un ardid para nublar la razón. Y los responsables se esconden en otro lugar. + + + ¿Sabes quién anda detrás de todo? + + + Puede que sí, puede que no... Ya no sé qué pensar... A pesar de todo, averigüé más de lo que ellos querían. + + + Vale, dejemos el tema. + + + Compartiré todo lo que sé, siempre que la información llegue a la gente adecuada. + + + He encontrado los escondites de tu grupo de camino aquí... + + + No sé cómo has conseguido dar con ellos... Debería de haber informes ahí dentro. ¿Los tienes? + + + Sí, encontré estas tres notas. + + + Gracias... Ghost y Fang eran mis amigos... Juntos conseguimos superar el Cauterizador y llegar a la central de Chernóbil. Por desgracia, ambos murieron. Al volver, nos separamos. Yo estaba herido y me quedé con el médico en los pantanos. No volví a verlos... Hasta mucho después, no supe que los mercenarios se habían cargado a Fang y que Ghost había muerto por fiarse de los científicos. Pero el pasado pasado está. Ahora sé qué hacer para asegurarme de que mis amigos no murieran en vano. + + + Sí, aquí tienes tu mensaje para Ghost. + + + Gracias... Ghost era mi amigo... Fang, él y yo conseguimos superar el Cauterizador y llegamos a la central de Chernóbil. Al volver de la central, nos separamos. Yo estaba herido y me quedé con el médico en los pantanos. No volví a verlos... Hasta mucho después, no supe que los mercenarios se habían cargado a Fang y que Ghost había muerto por fiarse de los científicos. + + + Sí, tome una nota de Fang para usted. + + + Gracias... Fang era mi amigo... Ghost, él y yo conseguimos superar el Cauterizador y llegamos a la central de Chernóbil. Al volver de la central, nos separamos. Yo estaba herido y me quedé con el médico en los pantanos. No volví a verlos... Hasta mucho después, no supe que los mercenarios se habían cargado a Fang y que Ghost había muerto por fiarse de los científicos. + + + Sí, aquí tienes tu mensaje para Fang. + + + Gracias... Fang era mi amigo... Ghost, él y yo conseguimos superar el Cauterizador y llegamos a la central de Chernóbil. Al volver de la central, nos separamos. Yo estaba herido y me quedé con el médico en los pantanos. No volví a verlos... Hasta mucho después, no supe que los mercenarios se habían cargado a Fang y que Ghost había muerto por fiarse de los científicos. + + + Sí, aquí tienes tu nota para Ghost y la que le escribiste Fang. + + + Ghost y Fang eran mis amigos... Juntos conseguimos superar el Cauterizador y llegamos a la central de Chernóbil. Al volver, nos separamos. Yo estaba herido y me quedé con el médico en los pantanos. No volví a verlos... Hasta mucho después, no supe que los mercenarios se habían cargado a Fang y que Ghost había muerto por fiarse de los científicos. + + + Sí, aquí tienes tu nota para Ghost y otra para Fang. + + + Ghost y Fang eran mis amigos... Juntos conseguimos superar el Cauterizador y llegamos a la central de Chernóbil. Al volver, nos separamos. Yo estaba herido y me quedé con el médico en los pantanos. No volví a verlos... Hasta mucho después, no supe que los mercenarios se habían cargado a Fang y que Ghost había muerto por fiarse de los científicos. + + + Sí, aquí está tu mensaje para Fang y otro de él para ti. + + + Gracias... Fang era mi amigo... Ghost, él y yo conseguimos superar el Cauterizador y llegamos a la central de Chernóbil. Al volver de la central, nos separamos. Yo estaba herido y me quedé con el médico en los pantanos. No volví a verlos... Hasta mucho después, no supe que los mercenarios se habían cargado a Fang y que Ghost había muerto por fiarse de los científicos. + + + Sí, pero, por desgracia, no los llevo encima. + + + Veamos... Mal asunto... En fin, probablemente superarías el examen médico del programa espacial, pero aparte de eso, tu estado de forma es pésimo. Je... + + + Vamos, mayor. Los de Monolith no esperan. + + + Mayor, hemos perdido un centinela: ha abandonado su puesto. La señal de su radiofaro procede de la tienda de ultramarinos pero no responde. Dios sabe lo que habrá pasado ahí. Quizá ha perdido la cabeza: el accidente de helicóptero le afectó mucho. ¿Podrías revisar la señal de radiofaro por mí? + + + Lo haré. + + + No te prometo nada. + + + Mayor, tenemos que encontrar a la unidad de reconocimiento. + + + El escuadrón de asalto y tú tenéis que llegar hasta el objeto A17. El Capitán Tarasov te indicará el lugar. El objetivo son dos alas de un hospital conectadas por un pasillo. Los soldados de Monolith están ahora mismo en el ala oeste. Tendrás que tenderles una emboscada desde el otro ala. Es muy probable que el más chiflado de todos lleve un rifle. + + + Probablemente es el líder del escuadrón. Los chicos vieron cómo les daba un sermón a sus soldados. ¡Literalmente! Ten cuidado: ¿quién sabe de lo que es capaz? + + + Recibido, coronel. + + + Saludos. Soy el coronel Kovalsky y estoy al mando de esta unidad. + + + Soy el mayor Degtyarev de la USS. He venido a investigar el fracaso de la Operación Puente. + + + Entiendo. Pues escuche, mayor. La Operación Puente se ha ido al garete, junto con nuestros helicópteros. La mitad de mis hombres están muertos y hemos perdido la comunicación con el cuartel general. Me intriga tanto como a ti el motivo de este fracaso. + + + ¿Alguna idea? + + + Solo se me ocurre que abatieran los helicópteros con algún arma de muchísima potencia que desconocemos. Los soldados de Monolith utilizaron una contra nosotros durante el primer asalto a la central de Chernóbil... Me gustaría apropiarme de esa arma para estudiarla. Si quieres pasar a la acción, seguimos los pasos del escuadrón de Monolith que lleva el arma, y el equipo de asalto está esperando mi señal para dar comienzo a la operación. ¿Qué me dices? + + + Acepto, siempre y cuando me facilites toda la información disponible y me ofrezcas completa libertad a la hora de proceder. + + + Tengo información sobre el arma no identificada, el fusil Gauss. + + + ¡Vaya! ¿Cómo funciona? ¿Puede usarse para derribar un helicóptero? + + + Técnicamente sí. Pero la aceleración habría dejado agujeros de bala en los helicópteros, y no encontramos ninguno. + + + Maldita sea... Entonces estamos en un callejón sin salida. No se me ocurren más ideas. Solo nos queda sentarnos en mitad de esta puta Zona y esperar a que vengan a por nosotros... Vale, dejo ya de quejarme. Vamos a preocuparnos por cosas que nos afectan ahora mismo. Gracias a ti sabemos que mantenernos a cubierto no nos va a proteger de esas balas aceleradas y eso ya es algo. Así que gracias, mayor. Te contactaré cuando tengamos alguna novedad. + + + Técnicamente sí, pero los Peces Raya 4 y 5 se estrellaron debido a errores electrónicos. Las balas aceleradas no pueden provocar algo así. + + + ¿Cómo va la operación? + + + El sargento Morozov ha muerto. Los soldados de Monolith nos tendieron una trampa, sacrificando a sus propios hombres. + + + ¡Cerdos! Es imposible que supiesen de nuestro plan... Así que hemos perdido a nuestro francotirador. ¿Y qué hay del objetivo de la operación? + + + Hemos tenido algunas bajas... Los soldados de Monolith nos tendieron una trampa, sacrificando a sus propios hombres. + + + ¡Cerdos! Es imposible que supiesen de nuestro plan... Así que hemos perdido a varios hombres. ¿Y qué hay del objetivo de la operación? + + + El escuadrón ha muerto... Los soldados de Monolith nos tendieron una trampa, sacrificando a sus propios hombres. + + + ¡Cerdos! Es imposible que supiesen de nuestro plan... Así que hemos perdido a Tarasov y a sus hombres. ¿Y qué hay del objetivo de la operación? + + + Tengo el arma. Se dañó durante el combate. + + + Así que no podemos saber si se usó para derribar los helicópteros. Escucha, mayor: tienes contactos entre los stalkers y es posible que ellos se hayan topado con el arma. Ellos tienen técnicos en sus filas. ¿Por qué no hablas con ellos? + + + De acuerdo. + + + Vale... Ah, por cierto: otro stalker ha llegado hasta aquí desde Júpiter. Habla con él si te apetece. + + + Aún estoy en ello. + + + Entiendo. Mayor, necesitamos el arma. Imagino que eres consciente de la importancia de este tema. + + + Ajá. + + + He encontrado tu nota en el complejo Volkhov AA. Toma. + + + Escucha... Bah, da igual. No creo que ninguno de nuestros hombres aparezca en ese lugar. Si ves a algún soldado por aquí, avísame. ¿Vale? Gracias de antemano. + + + Mayor... ¡Gracias a Dios! ¡Estoy salvado! + + + ¿Cómo has acabado aquí? + + + Eh... No recuerdo gran cosa. El miedo apenas me dejaba pensar y ni siquiera sé por qué tenía miedo; tan solo quería esconderme, así que eché a correr... Recuerdo calles y esquinas.... hasta que llegué a este agujero. La puerta estaba cerrada por fuera, y pensaba que me iba a morir aquí. ¿Cómo me has encontrado? Da igual, salgamos de aquí y acerquémonos a la base. Este lugar me pone los pelos de punta. + + + Vamos. + + + Hola. ¿Necesitas un médico? No soy cirujano, pero puedo extraer balas y coser heridas si es necesario. + + + Necesito información. + + + Pregunta. + + + Sobre la Operación Puente... + + + ¿Qué? + + + ¿Pasó algo fuera de lo común mientras los helicópteros estaban en el aire? + + + No hasta que se estrellaron. Seguíamos el plan a pies juntillas: despegamos 90 segundos antes de la emisión, activamos el sistema de protección y pusimos el piloto automático. Seguíamos la ruta más corta y segura, calculada con el mapa de anomalías. La visibilidad era nula pero eso no tendría que haber afectado a la misión porque el pasillo era muy ancho. Según el plan, tendríamos que haber llegado a la central en doce minutos y medio, pero a los nueve minutos perdimos contacto con Pez Raya 4 y después los demás empezaron a caer como moscas. + + + Tengo más preguntas sobre la operación... + + + ¿Sabes qué pasó con el resto de helicópteros? + + + No mucho. Pez Raya 2 y 4 son un misterio total. No sé dónde se estrellaron o qué ocurrió con sus tripulantes. Solo tengo información de los helicópteros en los que hubo supervivientes, así que tampoco esperes demasiados datos. Teníamos otras preocupaciones. + + + Háblame de Pez Raya 1. + + + ¿Cómo has llegado aquí? + + + Nos encontramos con un stalker cerca del campo de minas. Creo que el ruido de las explosiones lo alertó. Un tipo extraño... Se hacía llamar Guide. No nos hizo ninguna pregunta, tan solo se ofreció a llevarnos a Pripyat. Eso encajaba con nuestro plan, así que acepté. Le seguimos apuntándole con nuestras armas por si acaso, pero todo fue bien. No dijo ni una palabra hasta que llegamos a la ciudad y entonces desapareció sin avisarnos. Les dije a mis hombres que lo dejasen ir. + + + Háblame de Pez Raya 3. + + + El capitán Tarasov dice que los dos motores fallaron. Tuvieron que aterrizar en la colina que está cerca de la posición B2. Afortunadamente tuvieron un buen aterrizaje, pero el técnico no tuvo tiempo para identificar las causas de la avería: sufrieron un ataque de snorks y perdieron tres hombres. Los otros decidieron no quedarse: contactaron con Pez Raya 5 y fueron a su encuentro. Se enfrentaron a un escuadrón enemigo bien armado, pero consiguieron salir de allí sin sufrir bajas. + + + ¿Cómo llegaron a Pripyat? + + + Los soldados de Pez Raya 3 y 5 consiguieron reunirse no muy lejos del lugar donde se estrellaron los helicópteros, cerca de una especie de barcaza. Me dijeron que el hombre que vivía allí estaba como una regadera: cuando mis hombres intentaron detenerlo, ¡él intentó hacer lo mismo con ellos! ¡El pobre idiota pretendía enfrentarse a once hombres! Pero encontrarse a este stalker resultó de lo más provechoso, porque ambas partes llegaron a un acuerdo y el stalker los llevó hasta Pripyat casi sin incidentes. El único herido fue el teniente Stetsenko, que perdió un par de dedos de los pies en una anomalía gravitatoria que se encontró por el camino. + + + Háblame de Pez Raya 5. + + + Los dispositivos electrónicos se averiaron y Pez Raya 5 se estrelló en un pantano. Cinco hombres sobrevivieron al accidente. Pez Raya 3 se puso en contacto con ellos mientras sacaban su equipo del helicóptero. El líder del escuadrón, el mayor Neborsky, murió de camino al punto de encuentro. El pobre idiota murió a manos de un chupasangres cerca de la estación de exploración. El resto llegó a su destino sin problemas. Perdieron a otro hombre, el sargento primero Batyai, uno de sus francotiradores, cuando llegaron a Pripyat y se enfrentaron a unos soldados de Monolith. + + + ¿Cómo llegaron a Pripyat? + + + Los soldados de Pez Raya 3 y 5 consiguieron reunirse no muy lejos del lugar donde se estrellaron los helicópteros, cerca de una especie de barcaza. Me dijeron que el hombre que vivía allí estaba como una regadera: cuando mis hombres intentaron detenerlo, ¡él intentó hacer lo mismo con ellos! ¡El pobre idiota pretendía enfrentarse a once hombres! Pero encontrarse a este stalker resultó de lo más provechoso, porque ambas partes llegaron a un acuerdo y el stalker los llevó hasta Pripyat casi sin incidentes. El único herido fue el teniente Stetsenko, que perdió un par de dedos de los pies en una anomalía gravitatoria que se encontró por el camino. + + + No mucho. Pez Raya 2 es un misterio total. No sé dónde se estrelló o qué ocurrió con sus tripulantes. Lo más probable es que sepas más de Pez Raya 4 que yo. El teniente Sokolov, con el que has llegado hasta aquí, fue el único superviviente del accidente. Solo tengo información de los helicópteros en los que hubo supervivientes, así que tampoco esperes demasiados datos. Teníamos otras preocupaciones. + + + No mucho. Pez Raya 2 es un misterio total. No sé dónde se estrelló o qué ocurrió con sus tripulantes. Pregúntale al teniente Sokolov por Pez Raya 4: fue el único tripulante de ese helicóptero que llegó a Pripyat. Solo tengo información de los helicópteros en los que hubo supervivientes, así que tampoco esperes demasiados datos. Teníamos otras preocupaciones. + + + Necesito más información. + + + No tengo más preguntas. + + + ¿Cuál es la situación en Pripyat? + + + No puede ir peor. Pripyat está repleta de fanáticos de Monolith y de zombis. Las emisiones se suceden sin descanso y hay que tener cuidado con los mutantes y las anomalías. En fin, bienvenido al infierno. + + + ¿Cómo consigues equipo y provisiones? + + + Háblame de Monolith. + + + Son fanáticos, así de sencillo. No sé qué mosca les pica pero siempre andan buscando pelea. Nunca se echan atrás, incluso si tienen menos hombres o armas que sus rivales... y eso no es muy habitual en este lugar. Creo que reciben refuerzos de Chernóbil de forma regular. Que les den, ya hemos perdido a varios hombres por culpa de sus ataques... + + + ¿Has probado a interrogar a alguno? + + + Es inútil. Para empezar, luchan hasta morir. Uno de nuestros soldados consiguió atrapar a uno con vida porque quedó aturdido por una granada, pero no sirvió de nada. En un momento de descuido por nuestra parte, se golpeó la cabeza contra la pared con tal fuerza que escuchamos su cráneo romperse como una cáscara de huevo. + + + ¿Qué vas a hacer ahora? + + + No creo que sea posible seguir adelante con la Operación Puente. Tu presencia aquí lo confirma. Mi plan es mantener la base hasta que los helicópteros aparezcan. Tengo varias fechas de evacuación pensadas. + + + No llegarán más helicópteros hasta que descubramos por qué se estrellaron los Pez Raya. + + + Vaya... Pero entonces... ¡no podremos salir de aquí a pie! Dios sabe cuántas millas tiene esta mierda; y además la Zona está llena de stalkers que no son precisamente amigos nuestros. Así que solo podemos realizar nuestra propia investigación e intentar no diñarla. Mayor, creo que ahora mismo nuestros objetivos coinciden. + + + Ahora no. + + + Te escucho, mayor. + + + El único equipo que tengo es el que hemos traído. Ah, también hemos robado cosas de Monolith; munición sobre todo. En fin, tenemos que tener mucho cuidado con el reparto. Con la comida pasa igual: solo tenemos unas cuantas raciones y algo que cogimos del almacén de Monolith. + + + El único equipo que tengo es el que hemos traído. Ah, también hemos robado cosas de Monolith; munición sobre todo. En fin, tenemos que tener mucho cuidado con el reparto. Con las provisiones pasa igual, salvo que he hecho un pacto con Garry. Nos traerá comida enlatada si le dejamos quedarse en la base y hacemos la vista gorda cuando esté buscando artefactos. Tampoco es que tuviésemos otra opción. + + + Hemos vengado a nuestros hombres... Haz lo que tengas que hacer y volvamos. No quiero quedarme aquí por más tiempo. + + + No perdamos más tiempo, ¿de acuerdo? Quiero volver a la base ahora mismo... + + + De acuerdo. + + + ¡Allí está esa cosa tan extraña! ¿Para qué piensas que la usarán? Bah, da igual. Venga, colega. Haz lo que tengas que hacer y volvamos a la base. + + + ¿Has terminado? Yo voto por volver a la base y comer algo... + + + De acuerdo. + + + ¿Qué tal te va? + + + De pena. Está bien estar con los tuyos, pero no me gusta especialmente compartir este agujero con otra gente. + + + No te había visto antes. ¿Llevas poco tiempo aquí? + + + Sí. Soy el teniente Sokolov, copiloto del Pez Raya 4. + + + ¿Cómo has llegado aquí? + + + He venido con un stalker llamado Garry. Le pedí que me acompañase mientras se dirigía a Pripyat. ¡Fue un viaje tremendo, te lo aseguro! Menos mal que nos encontramos con nuestro equipo de reconocimiento nada más llegar a Pripyat. + + + ¿Qué le pasó al Pez Raya 4? + + + ¿Quién sabe? Tuve un mal presentimiento todo el rato... Volábamos con el piloto automático, el equipo estaba bien, y de pronto nuestro avión se convirtió en un trozo de chatarra metálica, con todos los aparatos electrónicos desactivados. El piloto y yo intentamos aterrizar en tierra firme pero no fue posible. Nos estrellamos contra el taller principal de la central de Júpiter, atravesando el tejado... Fui el único superviviente. + + + Necesito un blindaje personal. + + + Vale, primero te voy a dar el casco... Y ahora la armadura. Espero que sea de tu talla porque es la única que tenemos. La he reparado, así que se mantendrá bien. + + + Por supuesto, mayor. Dadas las circunstancias, no tengo otra opción. Por cierto, ve a ver al teniente Kirillov para que te dé equipo. + + + Sobre los helicópteros... + + + Dime. + + + Qué locura, tío. Seguro que Kirilov me pide luego una aspirina. + + + Esperar es lo peor. Te deprime más que cualquier otra cosa... + + + De acuerdo, mayor: los chicos están listos para partir. Visita a Rogovets y a Kirillov si necesitas abastecerte. Avísame cuando estés listo. + + + De acuerdo. + + + En marcha. + + + En ese caso necesitamos que sea muy bueno, como los que tienen los científicos; pero convencer a Hermann para que me lo dé no va a ser fácil. Creo que ese tipo preferiría hacerme ir como vine al mundo hasta el extremo de la Zona a que ocupara una valiosa estancia de su búnker. Supongo que podrías preguntarle a Ozersky. Es más amable y puede que acceda a mandarme con traje. + + + ¿Y bien, mayor? + + + [continuar...] + + + [continuar...] + + + Yo iba en ese helicóptero. En cuanto perdimos el contacto con Pez Raya 4, informé al resto del punto de evacuación designado en Pripyat; pensé que podríamos llegar andando hasta la central. Justo después, el helicóptero sufrió una sacudida y empecé a oler a quemado: el motor se había incendiado. Los pilotos consiguieron llevarnos hasta la pista de aterrizaje cercana a la central de Júpiter, pero ambos murieron al chocar. Perdimos al sargento Shlyachin porque la pista de aterrizaje resultó estar sembrada de minas. En Pripyat perdimos a otro soldado más, un teniente primero, mientras luchábamos contra soldados de Monolith por este edificio. + + diff --git a/gamedata/configs/text/spa/st_dialogs_zaton.xml b/gamedata/configs/text/spa/st_dialogs_zaton.xml new file mode 100644 index 0000000..05f0c6d --- /dev/null +++ b/gamedata/configs/text/spa/st_dialogs_zaton.xml @@ -0,0 +1,3117 @@ + + + + Había un extraño artefacto en la planta de dragado. Mira. + + + Interesante... Un semiartefacto. Aquí tienes; sé recompensar un trabajo bien hecho. Parece que tienes una buena formación. Ven a verme cuando necesites trabajo. Me suelen encargar determinados artefactos y los pagan bastante bien. + + + ¿Tienes trabajo para mí? + + + Algo tengo... Anoche los stalkers vieron una especie de resplandor extraño en la planta de dragado. Demasiado raro hasta para la zona. ¿Por qué no echas un ojo? + + + Lo haré. + + + Mucho cuidado por ahí. Te lo advierto, ese sitio está hasta arriba de radiación. No olvides tus medicamentos. Ya me lo agradecerás. + + + Ahora no. + + + Ya he asignado todas las misiones que tenía para hoy. + + + Tome este semiartefacto. + + + Aquí está tu parte del pastel; sé recompensar un trabajo bien hecho. Parece que tienes una buena formación. Ven a verme cuando necesite trabajo. Me suelen encargar determinados artefactos y los pagan bastante bien. + + + He recogido un extraño artefacto en la planta de dragado. ¿Quieres echar un ojo? + + + Interesante, un semiartefacto... Permíteme quitártelo de las manos. 3.000 parece un precio razonable. + + + He visto que alguien te ha traído el artefacto que encontré. + + + Lo siento, no pienso dejarme embaucar. Mis normas son sencillas: lo que me traen, lo pago. La Zona funciona así: mantener los ojos bien abiertos, actuar rápido y no fiarse de nadie que no esté a tiro. Pero para conseguir trabajo fijo, yo soy la persona indicada. Me encargan determinados artefactos y los pagan bastante bien. + + + ¿Qué artefactos necesitas? + + + Conseguiré un Gravi. + + + ¡Excelente! Qué rapidez. Aquí está la recompensa. + + + Conseguiré un Ojo. + + + Conseguiré una Burbuja. + + + Conseguiré una Concha. + + + Conseguiré un Pez de colores. + + + Conseguiré una Llama. + + + Conseguiré una Luciérnaga. + + + Conseguiré un Copo de nieve. + + + Puedo venderte un Gravi. + + + Aquí está pasando algo raro... Los chicos cogen pedidos y luego desaparecen... Esto me da malas vibraciones. Voy a cerrar la tienda. + + + Puedo venderte un Ojo. + + + Puedo venderte una Burbuja. + + + Puedo venderte una Concha. + + + Puedo venderte un Pez de colores. + + + Puedo venderte una Llama. + + + Puedo venderte una Luciérnaga. + + + Puedo venderte un Copo de nieve. + + + Entiendo. Ya volveré luego. + + + Los dos equipos que trabajan para mí han desaparecido. He decidido no aceptar más pedidos, por ahora. + + + Misión cumplida. + + + ¡Excelente! Aquí está la recompensa. + + + Allá va. Puede que no sea mucho, pero algo es algo. + + + Háblame de los pedidos de artefactos. + + + ¿A quién podría contratar para proteger a los científicos? + + + A mis chicos: Espartaco y su grupo. Últimamente andan por aquí. Algunos eran guardias de seguridad antes de venir a la Zona y otros provienen de fuerzas policiales, lo creas o no. Saben cómo empuñar un arma. Si están disponibles, harán un buen trabajo. + + + Me gustaría aconsejarte, pero en vista de los recientes acontecimientos... Los hombres de Espartaco pasaron a mejor vida. + + + ¿A quién podría contratar para tomar medidas para los científicos? + + + ¿Conoces a Gonta y sus hombres? Cuando no es temporada de caza, están... ejem... dispuestos a aceptar trabajillos. Sobre todo si no hay que disparar. Como ellos dicen, para entrenar puntería, siempre está la caza. + + + Ni idea, la verdad. Recomendaría a los hombres de Gonta, pero hace mucho que no sé nada de ellos. + + + Cuéntame cómo es la vida aquí. + + + Eso es demasiado general. Intenta hacer preguntas más específicas y te responderé lo mejor que sepa. + + + ¿Qué hacen aquí los stalkers? + + + Pregúntatelo a sí mismo. Vienen de Skadovsk y desembarcan para explorar el terreno y buscar artefactos, disparando a todos los que van a atosigarlos. Vuelven a Skadovsk a emborracharse y charlas... A descansar y relajarse antes de la siguiente incursión. Aunque cuando hay una emisión, la cosa cambia; nos limitamos a sentarnos quietecitos y a recordar a los que no pudieron ponerse a cubierto a tiempo. + + + ¿Quién condujo a los stalkers al centro de la Zona? + + + Una pregunta curiosa. Algunos fueron a descubrir la siguiente mina de oro de artefactos. Otros vinieron atraídos por los rumores sobre el Oasis. Otros querían dar con el Genio. Y luego están esos sentimientos humanos tan primitivos: la avaricia y la curiosidad. Cada cual tiene sus motivos. Tú también tendrás los tuyos. + + + ¿Cómo has acabado aquí? + + + Llegué con Urogallo tras la desactivación del Cauterizador, pero seguro que eso no es lo que quieres saber, ¿me equivoco? Lo mío son los artefactos, principalmente. Hay mucha baratija en el exterior; los clientes importantes quieren cosas raras. Por eso decidí montar un campamento de stalkers donde pudiesen acudir en busca de artículos valiosos. A ver, cuando un stalker vuelve con su botón, ¿qué es lo que necesita? Refrescarse el gaznate y contacto humano. Y de ahí el porqué de Skadovsk. + + + ¿Qué opinas de los bandidos? + + + Las cosas son como son. No tengo nada en su contra a bordo de Skadovsk mientras se comporten. Después de todo, no es muy habitual dar con auténticos capullos. Los hay que antes eran stalkers. ¿Quién sabe? Puede que alguno de esos cabronazos decida dejarse de gilipolleces si se lleva un buen balazo. La vida es una caja de sorpresas. + + + Nah, es igual. Olvídalo. + + + Si tú lo dices. + + + Oye, ¿ha aparecido algún militar por aquí? + + + Piensa un poquito. ¿Qué pintan esos militronchos en el campamento? Créeme: prefieren no oler este lugar ni de lejos. Muchos nos acordamos de lo que fue arrastrarnos por el barro en Cordón, mientras descargaban sus putas ametralladoras... + + + Háblame de la Brújula. + + + Ese artefacto es toda una leyenda. Dicen que no tiene efectos secundarios dañinos y que, si se sabe usar, puede salvarte de cualquier anomalía. No es de extrañar que los clientes se rifen algo así. El otro día, precisamente, alguien me dijo que Noé sabe algo al respecto. Es un stalker que vive al sur de aquí. + + + Bien, le haré una visita a Noé. + + + Lo pensaré. + + + Es un artefacto legendario, como te dije. Dicen que un stalker llamado Noé puede saber algo al respecto. Vive al sur de aquí. + + + Recogí un extraño artefacto cerca de Yanov. ¿Te interesa? + + + A ver, que eche un ojo... Pues sí que es raro, pero no creo que encuentre comprador. Te sugiero que vuelvas a Yanov y se lo enseñes a los científicos. Se les hace la boca agua con estos juguetitos. + + + Búho dice que no vas a cumplir tu parte del trato. + + + Lo dejamos muy clarito: me da detectores, los pongo en funcionamiento y él se lleva parte de los beneficios. Ya le he pagado dos detectores, así que estoy cumpliendo lo pactado a rajatabla. Eso es todo lo que acordé con el Búho. Si trabajas para él, puedes llevarte el tercer detector. No pienso comprarlo. + + + ¿Qué le cuento al Búho? + + + Supongo. + + + Yo en tu lugar no haría tratos con el Búho. Si quieres llenarte los bolsillos de forma rápida, puedo meterte en el mundo de la caza de artefactos. Dos o tres horas, lo suficiente para ganar a todos. Además, si te interesa, tengo un pedido especial. Necesito urgentemente un artefacto llamado Brújula. + + + Sultán consiguió interceptar la Brújula. + + + Ese cabronazo está mosqueado... En fin, da igual. Intenta volver a hablar con Noé. Según los últimos rumores, puede que sea... útil. + + + He encontrado una Brújula. Toma. + + + ¡Me has salvado la vida! Ahora puedo estar seguro de haberme metido en el bolsillo a un cliente importante. Corre el rumor de que Sultán quería birlarme el negocio. Se va a llevar un chasco, aunque merecido. Toma, para ti. Te lo has ganado. + + + Me niego a buscar una Brújula para ti. + + + Qué pena. En fin... + + + Sultán te manda un saludo. Por cierto, todos tus canales de suministro están cortados. + + + Es obvio quién es el que anda detrás de todo esto... En fin, no me voy de Skadovsk. Parece que no tengo más opción que trabajar para ti y para Sultán. Se llevará su parte de las ventas y tú vendrás todos días a por la tuya. El dinero estará listo. + + + Dame mi parte. + + + Ahí tienes. + + + Llegas pronto. Aún no tengo el dinero listo. + + + ¿Crees que Nimble negociará con material robado? + + + Lo dudo... Por lo que sé de él, prefiere dejar los asuntos turbios a otros. Un buen hombre de negocios valora su nombre y su reputación. La verdad es que nunca he oído a nadie decir nada malo de Nimble. + + + Estoy buscando a Snag. ¿Sabes dónde puedo encontrarlo? + + + La última vez que lo vi fue saliendo de un bar. Si no recuerdo mal la conversación, iba a las grúas del puerto. Igual quieres ir a echar un ojo. + + + Alguien planea atacar a un grupo de stalkers. Nuestra propia gente. + + + Vaya... Los bandidos se reproducen como conejos, ¿y ahora encima luchamos entre nosotros? + + + A mí me ofrecieron atacar el campamento que hay junto a Shevchenko por la noche. + + + Serán gilipollas... Hubiera estado bien que aceptaras. ¿Sabes por dónde voy? Así, podría avisar a mis hombres para que preparasen una cálida bienvenida a nuestros invitados. + + + De acuerdo. + + + Vale, ve a ver a esos capullos y yo hablaré con los chicos. + + + Lo siento, estás solo. + + + Tengo un artefacto del Oasis. ¿Te interesa? + + + ¿El Corazón del Oasis? Nah, creo que paso. La gente dice todo tipo de cosas... Igual es pura superstición, pero prefiero guardar las distancias. Creo que harías bien dándoselo a los científicos. Que lo estudien para que entendamos mejor cómo afecta a la gente. + + + ¿Eres nuevo por aquí? No pasa nada, te adaptarás enseguida. ¿Sabes? En la Zona se practica a base de bien. Soy Barbas, el camarero local. Si tienes alguna pregunta, me dices, ¿vale? + + + Adelante. + + + ¿Qué te parece ganarte un dinerillo buscando artefactos? + + + ¿Cómo va mi pedido? Recuerda: el stalker más rápido se lleva el premio gordo. + + + Llegas tarde; ya me ha traído ese artefacto otra persona. Pero ya que has cumplido, puedo pagarte. Aunque no tanto. + + + Acaba de surgir algo. Dicen que los bandidos planean comprar un lote de armas. Nuestros hombres quieren seguirlos y fastidiar la transacción. Agradeceríamos cualquier ayuda. + + + ¿Y bien? + + + ¿Qué hacen los mercenarios en la planta de tratamiento de basura? + + + Deberías permanecer al margen. No es asunto tuyo. + + + ¿Te gusta trabajar para los científicos? + + + Bastante. Me alegro de que hayas acudido a nosotros en concreto. Somos quienes mejor pueden proteger a los científicos. + + + Estoy reuniendo un pelotón para ir a Pripyat. ¿Me acompañas? + + + No. No puedo perder de vista a los científicos. Prueba a hablar con Sokolov; me parece recordar que iba a Pripyat. + + + No. No puedo perder de vista a los científicos... Estamos aquí para protegerlos. + + + Ejem... No; mi lugar está aquí, de momento. + + + ¿Te gustaría trabajar para los científicos? + + + Eso depende... ¿De qué se trata? + + + Defender su búnker. + + + Claro, y gracias por la oferta. + + + Hacer mediciones en anomalías. + + + Eso no es para nosotros. Pregunta mejor a los stalkers. + + + Mira, stalker. Me rugen las tripas y fastidiándome no haces más que empeorar las cosas... + + + Podría traerte comida... + + + ¡Ja! Venga, pues hazlo. Carne en conserva, salchichas y pan, seis de cada. No vayas a quedarte corto, que estamos que estamos famélicos. + + + He oído que puede haber herramientas por aquí. + + + Joder, ¡a saber! Pero podrías dejar de merodear. Ya tenemos bastante trabajo de por sí. No podemos ni mandar a nadie a por comida. + + + Joder, ¡a saber! Pero puedes rebuscar entre toda esta chatarra. Igual encuentras lo que buscas. + + + Aquí está la comida. + + + Vaya, había perdido la esperanza... Gracias. Será un buen almuerzo para los chicos. ¿Qué querías, entonces? ¿Rebuscar entre la chatarra? No te cortes, igual encuentras lo que buscas. ¡Pero guarda esa arma de una vez! + + + Vaya, había perdido la esperanza... Gracias. Será un buen almuerzo para los chicos. Oye, si quieres echar un ojo a la zona... adelante. ¡Pero guarda ese arma de una vez! + + + No eres bienvenido aquí. Éste es nuestro campamento y no pintas nada por aquí. Bastante tienen mis hombres con el hambre y los nervios... + + + Largo, porque los chicos están tan famélicos que les tiembla el pulso en el gatillo. + + + Oh, stalker... ¿Es algo importante? Si no, tengo que seguir trabajando. + + + Estoy listo para cazar. + + + Bien, en marcha. + + + En marcha. + + + Aún no es la hora. Vuelve a las tres de la mañana. + + + Entiendo. + + + Y nosotros... Excepto por la emisión. La quimera no estará dormida ahora. Supongo que tendremos que probar suerte otra noche. + + + Gonta ha muerto. ¿Cómo ha ocurrido...? ¿No te dirigirás a Yanov, por casualidad? Trapper, amigo de Gonta, está aquí. ¿Podrías decirle que la quimera está muerta? Yo me iré a casa, supongo. + + + Cuídate. + + + Largo de aquí. Gonta ha muerto, en parte por tu culpa. ¿Qué vamos a hacer ahora? + + + Cuídate. + + + Háblame de ti. + + + Soy Gonta, líder de los cazadores. Aniquilamos mutantes por dinero. También los capturamos vivos para experimentos científicos o por si alguien quiere una mascota exótica. Como decía Trapper, "Para cada animal, su bala". + + + Háblame de cazar mutantes. + + + Bueno, no soy el cazador más experimentado, pero sé un par de cosas sobre animales que corren en manada. Cerdos mutantes, jabalíes, perros ciegos, pseudoperros, snorks, hámsteres... Incluso sé algo de los chupasangres. + + + Háblame de los jabalíes y los cerdos mutantes. + + + Vale. Los cerdos mutantes son los más inofensivos de todos. Intentan no acercarse a los stalkers, pero contraatacan si tú los hostigas primero. Pero si hay un jabalí de por medio, la cosa se complica. Trescientos kilos de pura furia... Intenta apartarte si carga contra ti. Hay que usar el impulso en su contra. Una mole de ese calibre no se caracteriza por su agilidad, ¿me sigues? Esquívalo apartándote y llénalo de plomo. + + + Háblame de los perros ciegos y de los pseudoperros. + + + Los cánidos solitarios no son tan peligrosos, pero las manadas pueden ponerte en apuros. Solo atacan si están hambrientos... Pero lo malo es que eso es casi siempre. Si te enfrentas a toda una manada, trata de abatirlos desde un punto alto o arrasarán contigo, sobre todo si hay pseudoperros adultos entre ellos. No son mucho más duros que los ciegos, pero sí más astutos y peligrosos. Si uno de repente se convierte en manada, recuerda: te atacan fantasmas. El auténtico pseudoperro se quedará atrás y solo te soltará algún que otro mordisco. Trata de identificarlo. En cuanto muera el perro real, los fantasmas desaparecerán. + + + Háblame de los snorks. + + + Son restos humanos... Un snork solitario no es problema para un cazador experimentado: esperas a que te salte encima y lo coses a tiros en el aire. Pero cuando hay unos cuantos... Tienes que disparar lo más rápido que puedas esquivando los saltos. Como ya se lo saben, suelen atacar juntos. + + + Háblame de los hámsteres. + + + Es la pesadilla de todo cazador. Lo peor que puedes hacer es subestimarlos por su tamaño. Son increíblemente rápidos y ágiles, y siempre corren en manada. Cuando sientes docenas de dientecillos desgarrándote es cuando te lo tomas en serio y empiezas a disparar. Y ésa es la parte más terrorífica, porque es dificilísimo acertar. Por eso les digo a los stalkers que lleven una escopeta cargada. + + + Háblame de los chupasangres. + + + Son expertos cazadores con una excelente capacidad de disfraz. Cuando se camuflan, es casi imposible verlos. Si quieres cazar a un, prueba a asustarlo. Son más visibles cuando se mueven. Recuerda: un chupasangre tratará de acercarse sigilosamente por detrás y te echará los tentáculos al cuello. Es espeluznante, joder... Si tienes la mala suerte de toparte con un grupo de ellos, mucho ojo a la retaguardia. + + + Vale, olvídalo. + + + Si veo a Urraca, te informaré. + + + Te compensaré como es debido... Voy a desplumarlo. + + + ¿Qué te ha hecho Urraca? + + + Pues mira, una vez acudió a mí diciendo que no podía echar mano a su botín por un controlador. Nos faltaba un hombre, por aquel entonces. Nuestro explorador Danila se había escindido siguiendo a los chupasangres a su guarida, así que decidimos ayudar a Urraca a conseguir su botín para que luego se nos uniese. Solo tenía que vigilar a la quimera cerca de la guarida... + + + ¿Y qué ocurrió? + + + Lo que ocurrió fue... que el muy cerdo huyó con su botín y con el nuestro, ya de paso. Cuando apareció la quimera, fue toda una sorpresa. Garmata no tuvo tiempo de reaccionar, como es natural... Y en lugar de cazar a nuestra presa, acabé defendiendo a mis hombres. Al final, herí a la quimera, pero le pegó un buen tajo a Cangrejo y desapareció. Perdimos toda una semana de preparativos. + + + ¡Llevas la caza en la sangre! Aquí tienes un trofeo, te lo dedico. Como Trapper solía decir, la habilidad es tu principal arma. Por cierto, ¿no irás a Yanov? Estaría bien decirle a Trapper que la quimera está muerta. Yo, de momento, me quedo en Skadovsk, a ver si Cangrejo mejora. ¿Te vienes con nosotros? + + + Sí. En marcha. + + + No. Voy a dar un par de vueltas más por aquí. + + + Lo logramos. Este pequeño trofeo te lo dedico... La cosa podría haber ido mejor, pero no ha estado mal. Como decía Trapper, con experiencia, ¿quién necesita trampas? Por cierto, ¿no irás a Yanov? Estaría bien decirle a Trapper que la quimera está muerta. Yo, de momento, me quedo en Skadovsk, a ver si Cangrejo mejora. ¿Te vienes con nosotros? + + + Garmata ha muerto. La quimera nos ha salido cara. ¿No irás a Yanov? Deberíamos decirle a Trapper que la quimera está muerta. Yo, de momento, me quedo en Skadovsk, a ver si Cangrejo mejora. ¿Tú vas? + + + He encontrado a Danila. Está muerto. Lo mató al final Tremor. + + + ¡Joder! ¿Por qué siempre se van los mejores? Y ese Tremor... ¡será cabrón! Ha matado a Danila... ¡Era un buen tipo, joder! + + + ¿Crees que Nimble negociará con material robado? + + + ¿Material robado? ¿Qué te hace pensar algo así? Hace mucho que conozco a Nimble; hace mucho que le pido armas de forma regular. Buen género a buenos precios. La primera vez que lo oigo. Supongo que tendrá nuevos competidores desesperados que hacen correr rumores... + + + Estoy reuniendo un pelotón para ir a Pripyat. ¿Me acompañas? + + + Tengo un acuerdo con los científicos que debo cumplir. Además, no me apetece irme. Deberías hablar con Sokolov. No para de fastidiarme con que tiene que ir a Pripyat pero que no tiene agallas para ir solo. Menudo soldado está hecho... + + + Tengo un acuerdo con los científicos que debo cumplir. Además, no me apetece irme. Lo siento. + + + No, no me apetece. La caza está aquí. Sabes mejor que nadie la de mutantes que hay aún rondando por aquí. Suficientes para ocupar varias vidas de caza intensiva. + + + ¿Te gustaría trabajar para los científicos? + + + ¿En qué consiste el trabajo? + + + Defender su búnker. + + + No, gracias. Soy cazador, yo trabajo con mutantes, Y los mutantes no son una amenaza para el búnker. La gente sí, pero es distinto. + + + Hacer mediciones en anomalías. + + + ¿Por qué no? Podemos hacerlo. ¡Declaro oficialmente cerrada la temporada de caza! Será un buen descanso de la rutina; no sabes qué escalofríos cada vez que hay que salir... + + + No, ahora mismo no. Es por la caza; hay que ajustar cuentas con esa quimera. No podemos dejar que un mutante así de sanguinario ande suelto por la Zona, robándonos stalkers. + + + Lo que yo quiero ahora mismo es agarrarle el pescuezo a Urraca. Eso sí que me calmaría para poder hablar de trabajo contigo. + + + Más adelante. Ya tenemos suficiente entre manos. Tenemos que cargarnos a una quimera y que localizar a Urraca. No hay tiempo para más. + + + He encontrado a Urraca. Está en la estación de Yanov, haciéndose pasar por "Pedernal". + + + ¿Ese hijo de puta sigue vivo? Pues no será por mucho tiempo. Esto es para ti; agradezco la ayuda. Estoy deseando cogerle por banda. Pedernal, dices... + + + Sí, gracias. + + + Eh, ¿has visto a un tal Urraca? ¿Lo conoces? ¿No? Bueno, si te cruzas con esa escoria, por mí puedes meterle un tiro entre ceja y ceja. O dime dónde encontrarlo y yo te compensaré. + + + Vaya, hola. + + + ¡Espera! Hemos localizado a la quimera, así que no hay tiempo que perder. Cangrejo sigue mal, Danila no ha vuelto aún e ir a por la bestia los dos solos es una estupidez. Tenemos que ser tres. Tú eres un tipo válido. Localizaste a Urraca. ¿Y si vamos juntos a por esa apestosa quimera? + + + ¡Espera! Hemos localizado a la quimera, así que no hay tiempo que perder. Cangrejo sigue mal y Danila... En fin... Ir a por la bestia los dos solos es una estupidez. Tenemos que ser tres. Tú pareces un tipo válido. ¿Y si vamos juntos a por esa apestosa quimera? + + + Será un placer. + + + Como decía Trapper, cuando vas de caza, cazar es solo la mitad del trabajo. En fin, mira: tras una noche de caza, la quimera vuelve a su guarida sobre las tres de la mañana. Entonces caerá profundamente dormida, y será el momento de atacar. Cuando estés listo, ven a las tres de la mañana y probaremos suerte. Estaremos en el bar. + + + Lo pensaré. + + + Bueno; si te decides, pásate por el bar sobre las tres de la mañana. Es el momento en el que la quimera vuelve a su guarida a dormir. + + + Eh, ¿cómo andas? Pareces descansado. + + + Ah, estupendo. El mundo es un pañuelo. + + + ¡Tú dirás! Es la hora de atacar a la quimera. + + + ¿Te han entrado nervios por lo de la cacería? + + + Trapper me pidió que os ayudase a dar caza a la quimera. + + + Ya veo, tan visceral como siempre. La cosa es que por fin hemos localizado a la quimera. Por desgracia, Cangrejo sigue mal y Danila no ha vuelto... así que estamos los tres. Pero si Trapper te eligió, debes de ser buen cazador. Mira: tras una noche de caza, la quimera vuelve a su guarida sobre las tres de la mañana. Entonces caerá profundamente dormida y será el momento de atacar. Cuando estés listo, ven a las tres de la mañana y probaremos suerte. Estaremos en el bar. + + + ¿Me quieres dejar en ridículo? + + + Eso ya lo haces solito. Y los ridículos requieren educación. + + + Es igual. El mundo es pequeño y la Zona lo es aún más. Ya volverán a cruzarse nuestros caminos. + + + Venga... Largo de aquí. En Skadovsk no hay peleas que valgan. + + + Ya, vale. + + + Lo admito, me he equivocado, pero tú incumpliste las normas. + + + Ahí tienes la Zona, para ti. Venga, déjate ya de tanta charla. + + + Menudo idiota estará hecho si dejó escapar el artefacto. + + + Vale, no te pongas a llorar ahora. De todo se aprende. Y para que esta lección no se te olvide, te invito a una cerveza. Verás cómo te anima. + + + Yo nunca digo que no. + + + No, gracias. No me hace falta que me inviten. + + + ¡¿Pero qué cojones te has creído?! ¡Cierra el pico y quietecito! ¡Dame el artefacto, idiota! + + + Gilipollas. Quédate el artefacto... Ojalá se te atragante. + + + Que te jodan. + + + ¡Oye, colega! hay un artefacto con poderes curativos. Lo necesito ya. Un amigo mío está a punto de morir por esta condenada enfermedad. Nuestras medicinas son inútiles. Intenté hacerme con ese artefacto, pero me topé con una anomalía de gas. No lo habrás visto, ¿verdad? + + + Si tanto significa, ahí tienes. + + + ¡Gracias, hermano! No lo olvidaré. + + + Cuídate. + + + Tengo uno, pero lo necesito para mí. + + + ¡Oh, venga ya! Mi amigo... ¡se está muriendo! + + + En la Zona, hay que sobrevivir. Cuídate. + + + No, no lo he visto. Cuídate. + + + Ese artefacto no te hará ningún bien, puedes creerme. + + + Si tanto lo necesitas, aquí lo tienes. + + + ¡Gracias, hermano! No lo olvidaré. + + + Cuídate. + + + Ya veremos. + + + No tengo nada que hablar contigo. + + + ¿Por qué vives en este cubo de basura? + + + ¡Es un arca! Recuérdalo. ¡Lo harás, si quieres sobrevivir! Cuando venga una oleada, no te alejes. Aquí puede que sobrevivas. Ningún mutante conseguirá pasar. + + + Has hablado de una oleada... + + + ¡Sí, la oleada de mutantes que arrasará y despoblará la Zona! ¡Y a los pobres infelices que sobrevivan, les espera una emisión descomunal! Fulminará a todo ser vivo de la Zona... excepto a los que estén preparados. + + + ¿De dónde has sacado a este perro? + + + Es Lassie. Una monada... Si no fuese por ella, ya me habrían devorado por la noche hace tiempo. Malditos mutantes... ¡Los odio! En cuanto cierras los ojos, empiezan a acecharte con sus repugnantes garras, colmillos y tentáculos. + + + Necesito una Brújula. ¿Sabes dónde podría encontrarla? + + + Esa mierda no te salvará cuando los mutantes te ataquen por sorpresa. Anda, toma esto y desaparece de mi vista. + + + Gracias. + + + ¿Sabes algo de los helicópteros siniestrados? + + + Solo de uno de ellos: que está en la meseta en una zona plagada de snorks. Voy a disparar a unos cuantos cada dos o tres días. ¿Por qué me miras así? No puedo acabar con toda la guarida de una tacada. + + + ¿Cómo se va a la meseta? + + + Tú también quieres abatir a unos cuantos snorks, ¿eh? Genial... Yo te llevaré. + + + En marcha. + + + En otra ocasión. + + + Un stalker. + + + Ajá. ¿Qué buscas? + + + No te incumbe. + + + Yo te llevaré, pero quédate aquí por ahora. Hay una emisión, ¿entiendes? ¡Una emisión! + + + Yo he estado en la guarida. + + + ¿Sí? No hay modo de apaciguarlos. Cada vez hay más mutantes, ¡y un buen día atacarán! ¡Arrasarán con todos los de la Zona que no estén preparados! + + + Oye, em... ¿No tendrás una Brújula, por casualidad? + + + ¿Crees que eso te protegerá de una emisión? Je... ¡Pues cógela y largo! + + + Gracias. + + + ¿Quién eres? + + + Un stalker. Ya nos conocemos. + + + No me acuerdo. En fin, ¿qué necesitas? + + + Un stalker, sin más. + + + Ya veo. ¿Buscando refugio en el arca? Ponte cómodo. + + + No te incumbe. + + + Ah, eres tú. ¿Qué quieres? + + + ¿No tendrás por casualidad una Brújula de sobra? + + + Háblame de las anomalías. + + + Cuando te aproximes a una anomalía, ten en cuenta que hará mucho calor, el aire se llenará de gases tóxicos o se producirá un punto crítico de radiación. También pueden darse trastornos psíquicos, pero no voy a entrar en detalles. Depende de la naturaleza de la anomalía: calor, gas, electricidad... o gravedad, aunque espero que no te toquen de ésas. También hay anomalías móviles, pero eso es harina de otro costal. + + + Háblame de las anomalías de calor. + + + Si ves una especie de luz tenue, como el vapor que desprende el suelo en los días cálidos de verano, eso es una anomalía de calor. Al contacto, se prende una llama extremadamente abrasadora. Al principio, se creía que eran chorros de gas natural, pero esa teoría ya no se sostiene. + + + Háblame de las anomalías de gas. + + + Esta anomalía debe su nombre a los extraños y continuos procesos químicos que conlleva. Produce un ácido que corroe la piel en cuestión de segundos, así como gases tóxicos que te comen los pulmones a la misma velocidad. Por suerte, es fácil detectarlas al aire libre, pero cuando te adentras en un túnel oscuro... más te vale rezar. + + + Háblame de las anomalías eléctricas. + + + Un tipo de anomalía muy interesante que acumula una considerable cantidad de electricidad estática. Los stalkers suelen aprovecharse de que las anomalías eléctricas pueden descargarse con cualquier objeto metálico. Lanzan algo y pasan corriendo antes de que vuelva a cargarse. Yo prefiero rodearlas; la fase de recarga es demasiado rápida. + + + Háblame de las anomalías gravitatorias. + + + Son típicamente estacionarias. Cuando miras a un punto concreto y ves los objetos de atrás distorsionados, ahí está. Y más te vale guardar las distancias. Las tres variedades conocidas son de efecto instantáneo y se activan al contacto. Los Trampolines lanzan por los aires cualquier cosa, normalmente con fuerza. Los Vórtices hacen lo contrario: succionan y aplastan con una presión terrible para escupir fragmentos sueltos unos segundos después. Los Remolinos elevan a sus víctimas para hacerlas girar y destrozarlas. Son finales desagradables de cualquier modo... + + + Háblame de las anomalías móviles. + + + Personalmente, solo me he topado con un Cometa y un Tesla. El primero es una bola de fuego de un metro de diámetro, más o menos, pero te aseguro que el calor se nota a mucha más distancia. El otro es, a falta de una descripción mejor, un relámpago en forma de bola. Como una esfera de naturaleza eléctrica. Ambas anomalías se mueven constantemente, pero con un recorrido cerrado. Yendo con cuidado, es fácil rodearlas... pero no te desconcentres. + + + Vale, olvídalo. + + + Háblame de ti. + + + Por algo me llamo Piloto; solo uso rutas seguras. No tengo agallas para reunir artefactos ni para enfrentarme a bandidos, así que... Todo el mundo debería usar su talento para beneficio de otros. Y todo talento tiene un precio. + + + Háblame de las emisiones. + + + Tengo unos mapas de la zona entre Zaton y Júpiter. ¿Quieres echar un vistazo? + + + A ver... Caramba, son muy detallados. En nuestro trabajo, los detalles marcan la diferencia entre la vida y la muerte. ¡Bien! Según esto, hay una ruta segura justo entre Skadovsk y Yanov. Voy a copiarme los datos en mi PDA, si no te importa. Puedo ofrecerte un buen descuento. + + + ¿No necesitarás un guía? Ya sabes, que te indique cómo evitar las anomalías y te mantenga a salvo de emisiones. Piloto a tu servicio. + + + ¿Necesitas ayuda de un guía? + + + Me alegro de verte. ¿Qué puede hacer por ti el viejo Piloto? + + + ¿Otra vez de viaje? + + + Muy buenos días. No te gusta echar raíces, ¿eh? Estoy a tu disposición. + + + Hola. Si necesitas un guía, soy tu hombre. En cuanto la emisión remita. Entretanto, podemos matar el tiempo hablando de anomalías. + + + Me temo que, ahora mismo, no podría hacer gran cosa como guía. La emisión está en su plenitud. + + + ¿Cuánto por ir a la estación de Yanov? + + + Me temo que es un largo camino, así que el precio es 3.000. + + + Muy bien, en marcha. + + + No llevo tanto encima. + + + Aún no puedo irme. + + + Con tus mapas, solo 1.000. + + + Muy bien, en marcha. + + + No llevo tanto encima. + + + Aún no puedo irme. + + + Es un largo camino, así que el precio es de 3.000. Podemos irnos en cuanto la emisión remita. + + + Con tus mapas, solo 1.000, pero hay que esperar a que pase la emisión. + + + ¿Puedes llevarme a Pripyat? + + + No. Todo el mundo tiene su especialidad. ¿Ves a Garry ahí? Creo que podrá ayudarte. + + + No, personalmente no, pero por 6.000 puedo llevarte a la estación de Yanov y negociarlo todo con Garry. Desde ahí, él te llevará a Pripyat. ¿Qué te parece? + + + Vale, venga. + + + No llevo tanto encima. + + + Aún no puedo irme. + + + No, personalmente no, pero por solo 4.000 puedo llevarte a la estación de Yanov y negociarlo todo con Garry. Desde ahí, él te llevará a Pripyat. ¿Qué te parece? + + + Vale, venga. + + + No llevo tanto encima. + + + Aún no puedo irme. + + + No. Todo el mundo tiene su especialidad. ¿Ves a Garry ahí? Creo que podrá ayudarte cuando pase la emisión. + + + No, personalmente no, pero por 6.000 podría llevarte a la estación de Yanov y negociarlo todo con Garry. Desde ahí, él te llevará a Pripyat. En cuanto remita la emisión, claro. + + + No, personalmente no, pero por solo 4.000 podría llevarte a la estación de Yanov y negociarlo todo con Garry. Desde ahí, él te llevará a Pripyat. En cuanto remita la emisión, claro. + + + ¿Puedes llevarme a Pripyat? + + + ¿Pripyat? No. Ya tengo suficiente demanda con mi actual ruta, como para ocuparme de otra. Pero tengo un buen amigo que trabajaba en la central de Júpiter. Me dijo que hay unos túneles bajo la planta que llevan a Pripyat. No sabía mucho más, pero pensaba empezar a investigar en el departamento administrativo de la central. + + + No. Si quieres ir para allá, tendrás que buscar esos túneles que hay bajo la central de Júpiter. + + + ¿Cuánto por ir a Skadovsk? + + + Como hay que dar un rodeo, el precio es de 3.000. + + + Muy bien, en marcha. + + + Ando un poco justo ahora mismo. + + + Aún no puedo irme. + + + Con la nueva ruta, son solo 1.000. + + + Muy bien, en marcha. + + + Ando un poco justo ahora mismo. + + + Aún no puedo irme. + + + Como hay que dar un rodeo, el precio es de 3.000. Podemos irnos en cuanto la emisión remita. + + + Con la nueva ruta, solo 1.000, pero hay que esperar a que pase la emisión. + + + ¿Adónde puedes llevarme? + + + A la estación de Yanov, cerca de la central de Júpiter. Y luego de vuelta a Skadovsk. Prefiero conocer bien una ruta a presumir de saber muchas. + + + He desbaratado la transacción de armas de los bandidos. + + + Gracias. Me estremezco solo de pensar en los 90 con sus matones armados con lanzagranadas... Anda, toma. El dinero siempre viene bien. + + + Estoy buscando a Urogallo. Íbamos a reunirnos aquí. + + + Urogallo te dejó un mensaje. Dijo que se dirigía a las grúas del puerto. Y que sabía algo nuevo de los stalkers desaparecidos. + + + Urogallo ha muerto. Tremor lo mató, como a los demás stalkers... Y Tremor también ha muerto. + + + ¿Tremor? Maldita sea. Teníamos la serpiente delante de nuestras narices. Podría habernos pasado a cualquiera... O sea, que si Urogallo... Gracias, amigo. Has salvado a todo el campamento. Toma. + + + ¡¿Tremor?! Lo siento, amigo, no me lo trago. Si hubiese algún tipo de prueba, quizás... Pobre Urogallo. + + + Toma la PDA de Tremor. Contiene pruebas que demuestran su participación. + + + Maldita sea. Teníamos la serpiente delante de nuestras narices. Podría habernos pasado a cualquiera... O sea, que si Urogallo... Gracias, amigo. Has salvado a todo el campamento. Toma. + + + Te ayudaré a deshacerte de los bandidos. + + + Magnífico. Ve al puesto de guardabosques. Ahí están nuestros chicos. Ellos te informarán mejor. + + + ¿Qué sabes sobre Nimble? ¿Podría estar negociando con armas robadas? + + + No lo conozco mucho, pero dudo que esté metido en eso. Si comercias con mercancía ilegal, no coges pedidos por adelantado. + + + Sabía que acabarían desenmascarándome. Solo era cuestión de tiempo. + + + ¡¿Tremor?! ¿Me puedes explicar de qué va esto? + + + No pienso seguir escondiéndome. ¿Para qué? Ya lo sabéis, fui yo quien mató a Urogallo... Y a Danila y a los otros stalkers desaparecidos. + + + Vale, entendido. Basta de cháchara. + + + No has conseguido nada. ¡Nadie me atrapará nunca! + + + ¿Por qué lo hiciste? + + + Adicción a la hemoglobina. No se lo deseo a nadie. No hay forma de superarla. A veces te sientes capaz de estar un mes entero sin probar una gota de sangre. De hecho, me ha ocurrido, pero luego... Algo en tu interior estalla y necesitas desesperadamente compensar esa carencia. + + + ¿Cómo has conseguido mantenerlo en secreto? + + + Cuando trabajaba en la clínica de cirugía, era fácil ocultarlo. Siempre sobraba sangre de algún donante. Pero en la Zona era otra historia... Creía que este entorno tan hostil me haría dejar a un lado esta adicción, pero me equivocaba. Me entró más ansia que nunca y no podía pensar en otra cosa. Decidí hacer que los asesinatos pareciesen ataques de chupasangres. Normalmente, elegía a objetivos ya heridos. + + + ¿Y qué pasa con Danila y Urogallo? + + + Danila vino a ayudar tras el ataque de chupasangres. Estaba herido. Cuando Urogallo y él decidieron ir a cazar chupasangres, me di cuenta de que yo no iba a aguantar mucho. Aun así, intenté proteger mi secreto, pero mi determinación cedía por momentos. Luego, Urogallo se dio cuenta; entendió la situación e intentó matarme. Lo que nos lleva a este momento. Lo siento por esa gente, pero eso no les devolverá la vida. + + + Vale, entendido. Basta de cháchara. + + + No has conseguido nada. ¡Nadie me atrapará nunca! + + + Te escucho. + + + Hola, ¿necesitas ayuda? + + + Hola. + + + Necesito asistencia médica. + + + A ver, que eche un ojo... + + + Bueno, ya está. Puedes irte. + + + ¡Eh! ¿Tú también andas buscando artefactos? + + + ¡Oye! Recogiendo artefactos, ¿eh? Bueno, debería de haber para todos. + + + ¡Oye! Tú también quieres unos cuantos artefactos, ¿eh? + + + Hola. ¿Vas a llevarle ese artefacto a Barbas? + + + Puede que sí, puede que no. ¿A ti qué te importa? + + + Lo necesito. + + + Y yo... Pero te lo cambio por un arma nueva. Una avanzada. + + + Tengo una buena arma. ¿Hacemos el cambio? + + + Bien. + + + No, esto no vale. + + + Pues desaparece de mi vista. + + + De acuerdo. + + + Nada, la verdad. + + + ¿Qué sabes de Nimble? + + + Ah, pues no mucho... No hacemos negocios. Mientras él anda peinando la Zona en busca de la superarma definitiva, yo vendo cientos de las normales. Además, es bastante engreído. Se niega a tratar con los matones locales. Es un comerciante pésimo, lo cual me favorece, la verdad. + + + Barbas me contó que teníais un acuerdo distinto. + + + ¡Y una mierda distinto! ¡Ese cerdo seboso ya casi ni entra en sus pantalones! Habría que recordarle quién manda aquí... Oye, hay un tipo muy influyente en Zaton llamado Sultán. Hazle una visita; él te dirá qué hacer. + + + Iré a hablar con Sultán. + + + Déjate de sultanes. ¡Dame mi parte ya! + + + Em... Vale. Aquí está el dinero. Pero recuerda: Barbas te está engañando. + + + Necesito información. + + + ¿Qué quieres saber? + + + Necesito gas venenoso, y me han dicho que te pregunte a ti. + + + Pues sí. Te informo por 2.000. + + + Toma. + + + Pues mira: una vez, una columna de transporte militar cargada de gas se quedó por el camino. Nadie sabe qué ocurrió, pero los tanques de gas deberían seguir por ahí. ¿Todo claro? Sí, también debe de haber documentos. Si los encuentras, tráemelos e igual recuperas tu inversión. + + + Es demasiado para mí. + + + Tú verás. + + + ¿Dónde puedo encontrar a un stalker llamado Urraca? + + + Si quieres te aconsejo... por 1.000. + + + Toma. + + + Aquí no lo vas a encontrar, pero un pajarito me ha dicho que igual anda por Júpiter, tal vez cerca de la estación de Yanov. No olvides que quien deja situaciones complicadas, suele cambiar de nombre al irse a otro lado. Y es probable que también tenga otro aspecto. ¡La gente andará buscándolo entre stalkers! + + + Estoy buscando a Snag. ¿Sabes dónde puedo encontrarlo? + + + Te lo diré por 1.000. + + + Toma. + + + Snag es un idiota avaricioso; se ha dejado embaucar por gente peligrosa y eso no tiene vuelta atrás. Deberías buscarlo por Júpiter. No tiene otro sitio adonde ir y tú no eres el único que anda buscándolo. + + + ¿Qué sabes de los helicópteros siniestrados? + + + Mmm... Por aquí, todo el mundo sabe dónde cayeron. Uno está por la meseta sur, el segundo fue a parar al pantano y el tercero acabó en las torres de la subestación. ¿Qué sitio te interesa? + + + La meseta sur. + + + La subestación. + + + El pantano. + + + Eso es todo sobre los helicópteros. + + + Págame ya; me debes 200. + + + Toma. + + + Pues ese helicóptero cayó justo al lado de una cueva de snorks. Por lo que sé, los militares salieron de ahí. No todos, pero casi. Eliminaron a los mutantes y descendieron. Por cierto, si vas para allá arriba, puedo ofrecerte una buena escopeta y algo de munición para cargarte a esas bestias. El problema es que el único que sabe subir a esa meseta es el pirado de Noé. + + + Es demasiado para mí. + + + Tú verás. + + + Te lo diré por 200. + + + Toma. + + + Te lo diré por 200. + + + Toma. + + + Ahora mismo no. + + + ¿Tienes trabajo para mí? + + + En primer lugar, hay un pequeño trabajo con los científicos; en segundo, necesitamos información del campamento de mercenarios; y en tercero, el comerciante sigue necesitando protección. Hay mucho donde elegir. Tú mismo. + + + Háblame del trabajo con los científicos. + + + Tienes que encontrar tres detectores Veles y llevarlos al búnker de los científicos cerca de Júpiter. Cuando llegues allí, ve a hablar con Novikov. Dijo que iba a hacerles unos ajustillos. Cuando los detectores comiencen a dar beneficios, nos los repartimos por igual, ¿vale? Pues venga. Está chupado. + + + Trato hecho. + + + Quizá la próxima vez. + + + Háblame del campamento de los mercenarios. + + + Una especie de mercenarios apareció en la planta de tratamiento y me muero por saber qué andan tramando... Cuélate en su campamento y recaba toda la información que puedas sobre sus planes. PDA, documentos... Tráeme todo lo que encuentres, ¿entendido? Venga. Es un juego de niños, si no llamas la atención. + + + De acuerdo. + + + Ahora no. + + + Háblame de lo de proteger al comerciante. + + + El comerciante necesita guardias para un negocio. No tienes que hacer casi nada, solo quedarte ahí y hacer que todo parezca de fiar... ¿Entendido? El comerciante te estará esperando en el puesto de guardabosques para informarte. + + + De acuerdo. + + + Espera. + + + En otra ocasión. + + + Hay un trabajillo con los científicos. Eso por un lado y, por otro, necesito información del campamento de mercenarios. Tú eliges. + + + Hay un trabajillo con los científicos. Eso por un lado y, por otro, el comerciante sigue necesitando un guardia. Venga, elige. + + + Necesito que alguien consiga información del campamento de mercenarios. Eso por un lado y, por otro, el comerciante sigue necesitando un guardia. Venga, elige. + + + Un trabajillo con los científicos. Está chupado, en serio: "tráeme esto", "alcanza aquello"... + + + El comerciante sigue necesitando un guardia para una transacción comercial. No puede ser más fácil. + + + No hay más trabajos. + + + Creo que te puede interesar. + + + ¿Qué tienes? + + + La PDA de Noé. + + + ¿El chiflado de la barcaza? Te daré 1.000. + + + Trato hecho. + + + No, gracias. Me la quedo, por ahora. + + + Cuidado, no vaya a agujerearte el bolsillo... + + + La PDA de un mercenario llamado Hook. La encontré en la plata de tratamiento de basuras. + + + Te daré 1.000. + + + Trato hecho. + + + Muy interesante... Buen trabajo, stalker. + + + La PDA de un mercenario llamado Ridge. La encontré en la plata de tratamiento de basuras. + + + Te daré 1.000. + + + Trato hecho. + + + Una PDA con información de los alijos de Monolith. + + + Te daré 5.000. + + + Trato hecho. + + + La PDA de un hombre conectado con el cliente de los mercenarios. + + + Te daré 4.000. + + + Trato hecho. + + + La PDA de uno de los fundadores de Deber, el general Tachenko. + + + Te pagaré bien algo así: 2.500. + + + Trato hecho. + + + La PDA de un mercenario. + + + Te daré 1.000. + + + Trato hecho. + + + La PDA de Morgan. + + + Información sobre el comerciante de Deber que vende armas a diestro y siniestro. Para algo valdrá. Te pagaré 4.000. + + + Trato hecho. + + + Una nota del escondite del grupo de Strelok dirigida a Ghost. + + + Te daré 500. + + + Trato hecho. + + + Una nota del escondite del grupo de Strelok dirigida a Strelok. + + + Te daré 500. + + + Trato hecho. + + + Una nota del escondite del grupo de Strelok dirigida a Fang. + + + Te daré 500. + + + Trato hecho. + + + Documentos de la central de Júpiter, una carpeta con la orden de evacuación general. + + + Te daré 750. + + + Trato hecho. + + + Documentos de la central de Júpiter, una anotación en una libreta. + + + Te daré 750. + + + Trato hecho. + + + Documentos de la central de Júpiter, un programa de entregas. + + + Te daré 750. + + + Trato hecho. + + + Documentos de la central de Júpiter, una carta con el decreto para transportar el objeto 62 solo a través del paso subterráneo. + + + Te daré 750. + + + Trato hecho. + + + No. Con Sultán involucrado, prefiero no meterme. + + + Veamos... Sí, es buen material. ¿Me lo vendes? + + + Claro, a mí no me sirve de nada. + + + Una libreta del campo de mercenarios de la planta de tratamiento de basuras. + + + Te ofrezco 2.000. + + + Trato hecho. + + + Je... Llévaselo a Barbas o a los científicos. No me gusta la mercancía dudosa. No me atrae la idea de despertarme enfermo por las radiaciones. + + + Y ahí es donde debería estar. No me gusta asumir riesgos innecesarios. ¿Quién sabe? Puede que esa cosa origine un campo de anomalías a su alrededor a medianoche. ¿Por qué no se lo llevas a los científicos para que lo estudien o algo? + + + ¡Y yo tengo una cabeza nuclear en el armario de la cocina! Pero puedes reírte a costa de los científicos. ¡Les chiflan esas cosas! + + + La PDA de Snag. + + + Veamos... Mmm... Nada especial. Seguro que ya habrás limpiado ese escondite, así que te doy 200. + + + De acuerdo. + + + La PDA de uno del equipo de Sultán. + + + Interesante... Podría ser útil. Te daré 1.000. + + + De acuerdo. + + + El módulo de memoria de un vehículo aéreo no tripulado. + + + Un descubrimiento interesante... pero no te hará rico. ¿Quién sabe si seré el primero en leer la información que contiene? Te ofrezco 500. + + + Hecho. + + + Ahora mismo no. + + + Y esos detectores... + + + ¿Sí? + + + ¿Dónde puedo encontrarlos? + + + No sé; tú ve a buscarlos. + + + Tengo los detectores. + + + ¿Y qué haces aún aquí? Llévaselos a Novikov al búnker de los científicos, cerca de Júpiter. + + + Le he llevado los detectores a Novikov. + + + Genial. Ahora esperaremos a que les haga unos ajustes. Novikov prometió que nos los mandaría con alguien de confianza cuando acabase. + + + Tenemos problemas. Nuestro pequeño negocio está un poco en el aire. Novikov hizo un trabajo extraordinario con esos detectores: aumentó la distancia de funcionamiento, mejoró la sensibilidad y demás... Con estos detectores, puedes dar mil vueltas a los otros buscadores de artefactos. Cerré un acuerdo con Barbas para que los stalkers que contrate los usen. + + + ¿Y? + + + El acuerdo consistía en repartir el botín a partes iguales, pero los stalkers se negaron a traernos nuestra parte. Tienes que ir a ver a Barbas y convencerle de que cumpla. Tú también querrás tu parte, ¿no? + + + Necesito tu nuevo detector. + + + Ja. Y yo necesito un arma que lance pepinazos. Si tienes algo bueno y caro, te lo cambio. + + + Eso está hecho. + + + No, gracias. + + + Necesito tu nuevo detector. + + + ¿Es una amenaza? Yo también lo necesito, obviamente. + + + No lo entiendes, ¿verdad? El tuyo es el último. No me costó demasiado deshacerme de los otros dueños. + + + ¿Hiciste eso? ¿Te los cargaste? Anda, toma y déjame en paz. + + + Eh, ¿y si te vas a tomar por culo? + + + Igual en otro momento. Ahora te estoy pidiendo amablemente que me des el detector. + + + Y yo que te vayas a tomar por culo. + + + Stalker, ¿quieres dinero? + + + ¿En qué consiste el trabajo? + + + Verás, escondí un botín en un viejo Zaporozhets, pero hubo un terremoto y el coche quedó sepultado. He ido a echar un ojo y no parece inalcanzable, pero... em, hay mutantes. Ya sabes, snorks. Lo creas o no, no me dan miedo ni los controladores, pero esos condenados snorks me resultan demasiado espeluznantes y asquerosos. Si consigues recuperar un contenedor con cierre de seguridad, repartimos el botín. + + + Trato hecho. + + + Gracias, stalker. + + + ¿Éste es tu contenedor? + + + ¡Eh, sí! ¡Tú sí que sabes! + + + En otra ocasión. + + + Una pena... + + + No, ahora estoy muy ocupado. + + + Vale, como quieras. + + + ¿Y? ¿Alguna novedad? + + + ¿Qué quieres? ¿No ves que estoy ocupado? + + + ¡Eh, ésa es mi arma! ¿De dónde la has sacado, ladrón? Me la robaron el otro día. + + + ¿De qué estás hablando? La compré hace poco. + + + No sé cómo te habrás hecho con ella, pero es la que me robaron, así que, por favor, si no quieres que me enfade, dame el arma y aquí todos tan contentos. + + + Vale, aquí tienes. No quiero líos. + + + Dámela. + + + El arma es mía. + + + Conque sí, ¿eh? ¡Te lo advierto, tengo amigos! ¡Aquí todos me conocen! ¿Crees que durarás mucho en la zona con mala reputación, stalker? ¿Qué me dices, eh? ¡No esperes ayuda de nadie de por aquí, porque no recibirás una mierda! + + + ¡Que te den! + + + ¿Seguro que es tu arma? + + + Pues claro. No es que sea muy común en la Zona, ¿no? Es la mía, no cabe duda. + + + Has cometido un error. Desdícete y olvidemos este asunto. + + + ¿Qué? ¿Que yo he cometido un error? ¡Piensa antes de hablar, gilipollas! Si quieres guerra, todo el mundo estará de mi lado. Devuélveme el arma y todos tan contentos. Seré bueno y no le contaré ni una palabra a nadie. + + + ¡¿Qué?! ¿Se te ha ocurrido la idea de que te abra un agujero en la cabeza con la puta arma en este mismo instante? + + + Va, cálmate. Este intercambio se nos ha ido de las manos, pero ya me he tranquilizado. No te pongas así. Habré cometido un error. + + + En cuanto al contenedor... + + + ¿Lo has encontrado? + + + Aún estoy en ello. + + + He decidido no seguir buscándolo. + + + Una pena... + + + Bien, veamos... + + + Por supuesto, un segundo... + + + He decidido quedarme el contenedor. + + + ¡Serás...! ¡Ésta me la pagas, ya lo verás! + + + Aquí tienes el contenedor. + + + Vale, pues vamos a dividir el botín, ¿hace? + + + Hace. + + + A ver lo que tenemos por aquí... Mi vieja y letal Fora. Hace mucho, mi tío la modificó con sus propias manos. Es casi como una herencia familiar... Sí, me la tengo que quedar. + + + ¡No, dámela! + + + Eh, bueno, vale... + + + A ver qué más hay. + + + No, ya tienes suficiente. + + + A ver qué más hay. + + + Vale, para ti. ¿Qué más hay? + + + Bien... Veamos. Un excelente kit médico, incluso para plantar cara a un oso o un controlador. Para mí... + + + ¡Pues me vendría bien un kit médico! + + + Mmm... vale. + + + A ver qué más hay. + + + No, ya tienes suficiente. + + + A ver qué más hay. + + + Puedes quedártelo. ¿Qué más hay? + + + Vale... Caramba. Dudo que alguna vez hayas tenido en tus manos un arma así. Una AKM-74/2U mejorada. Le di a un tipo de Deber no sé cuántos botiquines para echarle el guante. Fue cuando Libertad dejó a un pelotón de Deber en tan mal estado que se quedaron sin medicamentos. Desde entonces, esta preciosidad me ha salvado la vida tres veces. Es para mí, no hay duda. + + + ¿Puedo quedármela? + + + Buf... Me parte el corazón, pero un trato es un trato. Para ti. + + + A ver qué más hay. + + + No, ya tienes suficiente. + + + A ver qué más hay. + + + Vale, para ti solito. ¿Qué más hay? + + + Ooooh... Una preciosa y valiosa pieza. ¡Este artefacto vale muchísimo! La conseguí en una anomalía, ¿sabes? Y no veas si me cagué de miedo... Es mi trofeo; me costó sangre, sudor y lágrimas. + + + Creo que lo necesito más que tú. + + + Me estás matando, tío... Anda, quédatelo. Espero que no olvides mi generosidad. + + + A ver qué más hay. + + + Ya tienes suficientes cosas. + + + A ver qué más hay. + + + Para ti. ¿Qué más? + + + Y por último, pero no por ello menos importante... Un excelente casco hecho a mano. Hace poco, llegó un stalker nuevo a Cordón, todo un artesano. Hizo un montón de cosas chulas antes de palmarla. Este casco es una de ellas. ¡Estas cosas no se suelen ver! Me lo quedo. + + + Mira, soy yo quien arriesgó su vida contra esa horda de snorks. Me merezco ese casco. + + + Bueno... Vale, está bien. Que lo disfrutes. + + + A ver qué más hay. + + + Ya tienes suficientes cosas. ¡Algo me tendré que quedar yo! + + + A ver qué más hay. + + + Vale, para ti. + + + Se acabó; ya no queda más botín. + + + Pues nada, hasta otra. + + + Ya está, pero no puedo dejar que te vayas con las manos vacías. ¡Toma mi pistola! + + + Buena suerte. + + + ¿A qué te dedicas? + + + Sirvo y protejo. Antes era investigador de la policía y aquí soy una especie de sheriff local. Vine con Barbas y luego él decidió montar un campamento. ¿Por qué seguir si, de todos modos, no conocíamos el camino a Pripyat? Aquí hay montones de artefactos, así que nos quedamos. + + + ¿A quién podría contratar para proteger a los científicos? + + + Tenemos unos cuantos buenos amigos. El grupo de Espartaco, por ejemplo. Son tipos válidos, auténticos profesionales, muchos con experiencia haciendo cumplir la ley. Si pueden, no encontrarás a nadie mejor. + + + Puede que, en el pasado, te hubiera dado algún nombre, pero ya nada. No le interesará a ningún stalker local. + + + ¿A quién podría contratar para tomar medidas para los científicos? + + + Hay un grupo de stalkers; Gonta es quien lleva el mando. Habla con él, puede que le interese. Les vendrá bien evadirse de tanto tirotear mutantes. + + + Si Gonta estuviese aquí con su grupo, te diría que hablases con él, pero como no es así... no se me ocurre nadie adecuado. + + + ¿Le has comprado armas a Nimble? ¿Sabes si comercia con material robado? + + + ¿Crees que es tan falso como para andarse con mierdas a mi espalda? No... Ni de coña. No creo que sea contrabandista. + + + Estoy buscando a Snag. ¿Sabes dónde puedo encontrarlo? + + + Snag... Claro que lo conozco. Menudo imbécil. Algunos de los chicos lo vieron en las grúas del puerto el otro día. Debe de ser su nuevo lugar favorito. Ve a mirar. + + + Hola, stalker. ¿Te apetece hacer un dinerillo ayudando a nuestro campamento? + + + Hola, stalker. ¿Sigues aquí? Como sigas a este paso, los chupasangres nos fulminarán a todos. + + + Luego hablamos. Tengo que ocuparme de otra cosa. + + + ¿Qué clase de trabajo puedes ofrecerme? + + + Éste es el tema: varios stalkers han desaparecido. Nadie ha oído ni una palabra de ellos, pero el otro día apareció un cuerpo. No tenía signos de violencia, pero no le quedaba ni una pizca de sangre. Tremor registró el cadáver; podrá informarte mejor. ¡Tiene que ser cosa de los chupasangres! Hablé con el cazador Danila y fue en busca de su guarida, pero desde entonces no se le ha visto el pelo. + + + ¿Qué quieres que haga? + + + Tienes que localizar la guarida y, si es posible, dar con Danila. Es un asunto peliagudo, pero sabré compensártelo, ¿vale? + + + De acuerdo. + + + Bien. De acuerdo, he marcado dos lugares para comprobar antes de nada. Las coordenadas están en tu PDA. Yo voy a hacer unos recados y luego a comprobar el otro sitio. Te informaré de lo que averigüe. + + + Trato hecho. + + + Creo que mejor paso. + + + Vuelve si cambias de idea. + + + No me interesa. + + + Lo mismo... Mientras haya una guarida de chupasangres por ahí, nos la jugamos. Y seguimos sin tener noticias del cazador Danila. ¿Nos ayudarías a solucionarlo? + + + Urogallo me dijo que registraste el cadáver de uno de los stalkers desaparecidos. ¿Crees que fue un chupasangre quien lo mató? + + + Pues sí... Como al resto de víctimas. No hay ninguna otra criatura capaz de hacer algo así, es decir, chupar toda la sangre a alguien hasta la última gota. Todas las pruebas apuntan a un ataque de chupasangres. ¿Qué otra conclusión puedo sacar? + + + Háblame de ti. + + + Soy médico. Cirujano cerebral. ¿Qué más quieres saber? Puedo extirpar un hipotálamo con la precisión de un láser, pero no he recibido ningún encargo en la Zona hasta el momento. Aquí no soy más que un médico del montón, de los que entienden de lo suyo. + + + Te escucho. + + + ¿Puedes desencriptar una caja negra? + + + Pues... la verdad es que no es mi especialidad. Todos esos gráficos y algoritmos... No me va mucho. Dame algo basado en física sencilla y te lo desencripto como si nada. Retoques por aquí, ajustes por allá y todo como la seda. + + + ¿Crees que Nimble negociará con material robado? + + + Eh, para el carro... ¿Nimble y material robado? No me lo trago. Cuando construí mi taller, Nimble fue el único que me ayudó. Y no me cobró ni una mísera moneda. Me da igual lo que digan: sé que Nimble es buena gente. + + + ¿Tienes trabajo para mí? + + + Ah, claro. Tengo unos cuantos trastos que no tengo tiempo de buscar. Así funciona esto de los cacharros: te quita mucho tiempo. Si me traes cosas útiles, te enseñaré lo que es hacer mejoras. Incluso harás algo de pasta. + + + Vale, no bajaré la guardia. + + + No, quizá luego. + + + Oh, claro. Necesito herramientas, ¿recuerdas? Yo consigo ayuda y tú, unas monedas. + + + ¿Puedes desbloquear un módulo de memoria? + + + No, que va, en eso no puedo ayudarte. La electrónica moderna y los ordenadores no son para mí. Mejor busca a alguien más joven. Maman eso desde que son canijos. + + + ¿Puedes forzar un contenedor de acero? + + + Eso está chupado. Servicio de primera por 500. + + + Toma. + + + A ver, déjame que me ocupe. Levanto esto, empujo aquí... ¡Y voilà! ¡Listo! No hay nada que yo no pueda abrir con una palanca y un martillo. + + + No tengo tanto. + + + Vuelve cuando lo tengas. ¡Yo de aquí no me muevo! + + + Lo pensaré. + + + Tengo priva. ¿Quieres probar? + + + No, ya no bebo. Cuando vi el objeto 62, pensé: "Ya está, me tiembla el pulso". La priva no hace más que joderte el cuerpo. No es nada saludable. Y si yo falto, ¿quién va a conseguirte munición para tu fusil Gauss? + + + Aquí tienes otra botella. + + + Tengo una tercera, si necesitas más. + + + Te he traído herramientas. + + + Estupendo. ¿Cuáles? + + + Las de trabajo básico. + + + ¡De fábula! Ahora solo necesito las de trabajo profesional y las de calibración. + + + Las de trabajo profesional. + + + ¡De fábula! Ahora solo necesito las de trabajo básico y las de calibración. + + + Las de calibración. + + + ¡De fábula! Ahora solo necesito las de trabajo básico y las de trabajo profesional. + + + Nada, por ahora. + + + Fantástico. Ahora, con unas herramientas de calibración, ya voy servido. + + + Fantástico. Ahora, con unas herramientas de trabajo profesional, ya voy servido. + + + Fantástico. Ahora, con unas herramientas de trabajo básico, ya voy servido. + + + ¡Fabuloso! ¡Así se hace! ¿Cuál es tu secreto? ¡Ja, ahora tengo de todo! ¡Observa cómo se hace una ametralladora a base de mecheros! + + + He traído planos y documentación del objeto 62. + + + ¡Lo has conseguido! ¡De fábula! Sabía que esos malnacidos no tendrían tiempo para destrozarlo todo. Mmmmm... Conque eso es lo que traman esos hijos de perra. ¡Bien! Tengo un par de horas para zanjar este asunto. Déjame el fusil Gauss; intentaré meterle mano. Espera aquí; ¡necesito un minuto para que esta preciosidad vuelva a la vida! + + + Necesito baterías para mi fusil Gauss. + + + Te hago precio de cliente predilecto: 2.000. + + + Ahí tienes. + + + Lo pensaré. + + + Ando un pelín justo ahora mismo. + + + ¿Has acabado con el fusil Gauss? + + + Sin pestañear. Sistema de alimentación despejado. Si empieza a dar guerra, tráemelo y lo reajusto. + + + Sigo trabajando en ello. Me gustan los trabajos artesanales. + + + Tengo un modelo de arma desconocido. + + + ¿Cómo que desconocido? A ver, que eche un vistazo... + + + Fíjate... ¿Habías visto algo parecido? + + + Ah, eres tú... Ha sido un auténtico infierno, je... Soñé que me traías algo del pasado... Menos mal que estoy sobrio como una cuba... + + + ¿No sería esta arma la de tu sueño? + + + Buf, vaya... No ha sido un sueño, después de todo. Este arma es un fusil Gauss, u objeto 62, como se lo ha llamado oficialmente. Fiu... Por aquel entonces, yo era empleado de la central de Júpiter. Diseñaba armas, si no recuerdo mal, "basadas en el principio de la aceleración de proyectiles por campo electromagnético". ¿Ves esos carretes? Los hice yo. Pero cancelaron el proyecto en 2004. No encontramos una fuente energética suficientemente compacta. + + + No es el primer disparo de este fusil. ¿Qué puede haber cambiado? + + + ¿Quién sabe? Para serte sincero, no me atrevería a meter un destornillador en esa batería. Hay daños mecánicos en el sistema de alimentación. Los planos nos vendrían bastante bien. El taller de pruebas en el que yo trabajaba se encargaba de la documentación de toda la producción. Puede que los papeles de este fusil Gauss sigan por ahí. Lo curioso es que sigo teniendo la llave magnética del taller. + + + ¿Me das la llave magnética? + + + Bueno, claro... ¿Por qué no? Intenta no perderla. Si me traes esos documentos, igual arreglo el arma. + + + Aquí tienes tu tarjeta de acceso, sana y salva. + + + Gracias. Me trae recuerdos de los viejos tiempos... + + + ¿Y? Em, bueno... Tráeme todas las armas averiadas que tengas, trajes llenos de agujeros y demás... No controlo mucho cuando estoy sobrio, pero probaré. + + + ¿Dónde estabas? Me tenías preocupado; te he buscado por todas partes. "¿Dónde está el stalker ése?", me decía... ¡Salud! + + + Eh, qué detalle haber venido. Ponte cómodo. ¿Me traes algo para arreglar o algo para beber? + + + ¡Eh! ¡De fábula! Las manos no me tiemblan, pero mi cabeza pide más. ¡Sírveme otro trago, joven! + + + ¡Un poco de brío! ¡Abre la siguiente botella! Bebamos por una causa común. Sí. El vodka me devuelve la inspiración, en serio. + + + Ojalá estuviese aquí Bromista, brindaríamos por Barge... En fin, que descanse en paz. Era un buen tipo, muy entregado. Duro como una roca. + + + Ojalá estuviese aquí Bromista, brindaríamos por Barge... En fin, que descanse en paz. Era un buen tipo, nunca te fallaba. Siempre cumplió su palabra. + + + Barge... Bromista... ¿Cómo ha podido ocurrir? Una cosa lleva a la otra y... + + + ¿Mmmm? ¿Qué tenemos aquí? Mañana me encargaré de las ametralladoras blindadas... Poca cosa, tranquilo. Tengo que echar un trago. + + + Ese número sesenta y dos... Me encantaría echar un ojo a los planos del circuito. + + + Una sabia elección, amigo. Hay que tener el arma en perfecto estado y si llevas una botella o dos encima, puedo mejorártela que ni te cuento. ¿Quieres que te cosa un paracaídas a la escopeta? Eso está hecho, je, je. + + + ¡Vaya, fíjate! ¡Han metido un artefacto electrostático en la batería! ¡Ja! ¡Sabía que había alguna movida rara! El principio es para tontos. ¡Ahora podré conseguir yo solito estas células! + + + ¿Necesitas alguna chapucilla? + + + Esto es un galimatías. Supongo que he perdido la práctica con los textos técnicos... + + + Sí, mira, vine a Zaton con dos amigos: Barge y Bromista... ¡Rebosábamos juventud y vitalidad! Estábamos deseando echar mano a montañas de artefactos. ¡Nos moríamos por ser los primeros, los más rápidos! Cuando vi esa mirada encendida, pensé que no acabarían bien. Es bonito hacer fortuna, claro, pero no a costa de lanzarse de cabeza a las fauces de un mutante. + + + ¿Y qué pasó? + + + Pues... andábamos por ahí una noche, bebiendo, y comenzamos a discutir sobre lo que íbamos a hacer: que si nos quedábamos, que si nos íbamos, que si adónde... Ninguno cedía y nos pusimos cabezotas. La cosa se calentó un poco y, cuando acabó la discusión, nos fuimos cada uno por nuestro lado. Les dije que aún no habían vivido nada... y alguna que otra cosa peor. Ay... Si pudiese volver a verlos, les pediría perdón. Volveríamos a estar juntos como antes y recordaríamos los viejos tiempos... + + + Puedo pedirle perdón a Barge de tu parte si me lo encuentro. + + + Eso estaría bien. + + + Puedo pedir perdón a tus amigos de tu parte si me los encuentro. + + + Eso estaría bien. + + + Puedo pedirle perdón a Bromista de tu parte si me lo encuentro. + + + Eso estaría bien. + + + He encontrado esta PDA. Echa un vistazo. + + + ¿Para qué necesito una PDA? ¿De quién es? + + + ¡¿Barge ha muerto?! ¡No puede ser! ¡Dios! Pero si no había quien pudiera con él... Oh, Barge... Descansa en paz. Espero que Bromista esté bien. + + + ¡¿Barge ha muerto?! ¡No puede ser! ¡Dios! Pero si no había quien pudiera con él... Oh, Barge... Y Bromista también... Descansad en paz. ¿Cómo ha podido ocurrir...? + + + ¡¿Han muerto?!... ¡No puede ser! ¡Dios! Pero si no había quien pudiera con Barge... Y Bromista... Oh... No volveremos a escuchar vuestros chistes. Descansad en paz. ¿Cómo ha podido ocurrir...? + + + ¿Puedes contestar a un par de preguntas? + + + Claro. + + + ¿Cuándo estará listo mi pedido? + + + Depende de lo complejo que sea. Suelo tardar un día, a veces menos. + + + Háblame de ti. + + + No hay mucho que contar. Lo he pasado bien y mal, como casi todo el mundo. Me he topado con un par de anomalías, unos bandidos me hicieron rehén... Vine a la Zona jovencito, hace mucho. Al principio, cogía encarguillos: antirradiaciones, munición antiblindaje, esa clase de cosas. Luego trabajé para Sidorovich... para compensarle por salvarme el culo. Mientras le sacaba las castañas del fuego, hice algunos contactos útiles y me establecí por libre en cuanto pude para empezar a encargarme de pedidos exclusivos. Hasta ahora, he salido airoso, pero siento que la suerte se me acaba. Y al mismo tiempo, no quiero zurrarme más por pasta. + + + Gracias, lo entiendo. + + + Será un placer ayudar. + + + ¡Me has vendido un arma robada! + + + ¿De qué estás hablando? No comercio con material robado. Yo negocio directamente. Si no me crees, habla con cualquiera de la base y te dirán que soy un comerciante honrado que nunca ha engañado a nadie. + + + Me encontré con un stalker que asegura que esta arma es suya. + + + ¿Y cómo se llama? + + + Snag. + + + ¿Y a ti qué más te da? + + + Me interesa. Alguien te está engañando, stalker. + + + Eso ya lo veremos. + + + Alguien te está engañando, stalker. + + + He venido a recoger mi pedido. + + + Aquí está tu Águila Esteparia. Ha resultado más difícil de lo que pensaba. Un aficionado a las pistolas mostró mucho interés y la he conseguido por los pelos. Fíjate: es un arma hecha a mano, ajustada pieza a pieza con una precisión incomparable. ¿Nunca has pensado cómo sería la pistola de francotirador perfecta? Pues así. Me debes 2.800 más. + + + Vale, aquí tienes. + + + Toma. Es un placer hacer negocios contigo. + + + No llevo tanto encima. + + + Vale, te guardaré el arma de momento. Espero que consigas dinero pronto. + + + No quiero comprarla. + + + Si te niegas a recoger el pedido, no me fiaré de ti la próxima vez. Tendré que incluir una tasa de riesgo en el precio y pedirte un adelanto aún mayor. + + + Aun así, no pienso quedarme el pedido. + + + Vale, como quieras. + + + Lo pensaré. + + + Claro, tú decides. Yo te guardaré el arma entretanto. + + + Aquí tienes tu Águila Esteparia de ultraprecisión. Me debes otros 2.800. + + + Contempla la Alpina, una auténtica belleza. Puedes dar por seguro que no hay otra pistola igual en la Zona. Un modelo único de una partida muy limitada encargada para una sola unidad especial. No fue fácil conseguirla; hasta tuve que recurrir a uno de mis socios del otro lado del océano. Tiene un cargador de gran capacidad, cañón de acero ultrarresistente y cuerpo de polímeros superfuertes. Dame los otros 2.800 y esta preciosidad es tuya. + + + Aquí está tu pistola Alpina con cargador de gran capacidad. Dame los otros 2.800 y esta preciosidad es tuya. + + + Mira, te presento a March. Esta pistola perteneció a un mercenario llamado Perrolobo. Es un arma compacta de gran calibre y corto retroceso con cerrojo ligero. Perrolobo era escoria, pero entendía de armas, eso hay que admitirlo. Dicen que su truco favorito era ir volándole los miembros a sus víctimas, para acabar con sus cabezas antes de que cayeran al suelo. En fin, que me debes 2.800. + + + Aquí tienes tu pistola March de fuego rápido. Me debes 2.800 más. + + + Aquí tienes: Cuchilla, un subfusil. Te digo una cosa: no te fíes de las apariencias. Es un modelo nuevecito que aún no se fabrica en serie. Un prototipo recién salido de la armería. Los diseñadores querían crear una nueva generación de arma de corto alcance: una combinación de gran calibre, disparo rápido y precisión. Me debes 8.000. + + + Aquí tienes: Cuchilla, un subfusil de fuego rápido. Me debes 8.000. + + + Aquí tienes una auténtica joya: Mosquetón. Una auténtica escopeta militar. Capaz de disparar fuego automático sin retroceso gracias a un sistema de absorción de sacudidas. 8.000 y es tuya. + + + Aquí está Mosquetón, una escopeta automática. 8.000 y es tuya. + + + Creo que es justo lo que necesitas. Fulminadora, toda una innovación. Iban a enviar todo el lote a África Central, pero me quedé una "muestra" como favor especial de unos amigos. Es una escopeta automática con cargador grande y un excelente índice de disparo. Tuya por solo 8.000. + + + Claro. Escopeta automática Fulminadora con un cargador de gran capacidad. Por 8.000. + + + Claro. Admira a Tormenta, subfusil y lanzagranadas, todo en uno. Este prototipo es una versión modificada de un arma convencional diseñada para unidades especiales que operan en la Zona. Innovación técnica punta para nuestros hermanos eslavos. 16.000 de los grandes y es tuya. + + + Claro. Aquí está Tormenta, un subfusil y lanzagranadas con cargador de gran capacidad por 16.000 más. + + + Aquí está: GP37, un innovador fusil de asalto. Preciso, fiable y práctico, como mira óptica integrada. Fue de un observador de la ONU. Vino con su grupo a la Zona para investigar. Sin embargo, la situación se complicó. 16.000 y el fusil es tuyo. + + + Aquí está: GP37, un innovador fusil de asalto. Vale 16.000. + + + Un segundo. Aquí tienes un fusil modular FT-200M, la niña bonita de los fabricantes de armas belgas. Preciso, versátil, útil para diestros y zurdos, viene con mira óptica y lanzagranadas. Lo conseguí de unos observadores de la ONU poco afortunados. Serán 16.000 más. + + + Aquí tienes un fusil modular FT-200M. Serán 16.000 más. + + + Aquí está Marea. Partiendo de un silencioso fusil de francotirador, fue específicamente diseñado para que los militares se enfrentaran a los zombis. Marea sacrifica cadencia de disparo por potencia de detención, lo que permite a un francotirador abatir uno a uno a los zombis sin revelar su posición. Pero claro, luego vieron que los stalkers se bastaban para detener a los zombis en la Barrera y no llegaron a fabricarlo en masa. Es tuyo por 16.000. + + + Aquí está Marea, un silencioso fusil de francotirador con mayor potencia de detención. Dame otros 16.000 y disfruta. + + + Mira, esto es un SVU2-A, un fusil de francotirador corto con una cadencia de disparo potenciada. Se lo compré a Mac, el legendario guardia de Libertad. Me juró que no hay otro igual en toda la Zona. Es un objeto exclusivo, al menos por aquí. Son 16.000. + + + Sí. Un SVU2-A, un fusil de francotirador corto con una cadencia de disparo potenciada. Son 16.000. + + + Claro, echa un vistazo a este Lince. Hecho a mano por un experto local ya fallecido, así que es único. Parece un fusil cualquiera, pero practica un poco de tiro al blanco y notarás la diferencia. Tiene una combinación perfecta de precisión y potencia de detención. Dame 16.000 más y esta preciosidad es tuya. + + + Sí, un Lince: un fusil francotirador de gran precisión y potencia. Dame 16.000 más y es tuyo. + + + Fíjate: he conseguido tachar todo de la lista. Un CS-3a con casco. El casco no es nada del otro mundo, pero permite instalar un complejo táctico móvil, que incluye un sistema de visión nocturna de gran calidad y un sensor de infrarrojos activo. El blindaje CS-3a es una auténtica belleza. Su excelente protección contra balas y anomalías sorprende en un elemento tan ligero y transportable. Todo te sale por 32.000. + + + Sí. Un conjunto de blindaje CS-3a con casco táctico por 32.000 en total. + + + Un traje SEVA especial para ti. Tal y como lo pediste: módulo de respiración de ciclo cerrado, resistente a temperaturas extremas, con circuito eléctrico protector y materiales externos anticorrosión. Además, lleva varios portaartefactos integrados. Ideal para un stalker. Dame los 24.000 que acordamos y es tuyo. + + + Toma, un traje SEVA. El precio es 24.000, tal y como acordamos. + + + Aquí tienes, un exoesqueleto de combate extraordinario. La mejor protección de la Zona contra balas, garras o fragmentos de granada. La única excepción son los vehículos blindados, aunque en esos casos también ayuda por su reducido peso... dentro de lo razonable, claro. 48.000 y es tuyo, incluidos defect.... Digo, baterías y servomotores. + + + Aquí tienes, un exoesqueleto de combate extraordinario. 48.000 y es tuyo. + + + Quiero hacer un pedido. + + + No hay problema. ¿Qué necesitas? + + + Una pistola. + + + Pues claro. Serán 3.500, pero necesito un adelanto de 700. + + + Vale, aquí tienes. + + + Me pondré en contacto contigo en cuanto el pedido esté listo. + + + No llevo dinero encima. + + + Bueno, pues vuelve cuando traigas pasta. + + + ¿Sabes? Me lo he pensado mejor. + + + Bien. Si te decides finalmente a hacer un pedido, aquí me tienes. + + + No eres un cliente muy fiable, así que la pistola te costará 4.200, de los cuales necesito que me adelantes 1.400. + + + Me temo que las mejores pistolas ya están agotadas. Si quieres una normalita, ve a ver a Búho. + + + Un arma de corto alcance. + + + Claro. El precio es 10.000 y necesitaré un adelanto de 2.000. + + + Te negaste a recoger tu último pedido, así que éste te costará 12.000, y necesito 4.000 por adelantado. + + + Mmm... Pues igual no puedo ayudarte. Hay demasiada demanda. + + + Un arma de asalto. + + + Algo de gran calibre con gran cadencia de disparo, de acuerdo... Yo cobro 20.000 normalmente y necesito un adelanto de 4.000. ¿Qué te parece? + + + Eres un cliente duro de roer. Tendré que cobrarte 24.000 y necesito 8.000 por adelantado. ¿Hecho? + + + Ahora es un mal momento. Los militares están complicando las cosas en Cordón. Alguien atacó su avanzadilla el otro día y ahora están aún más intratables. + + + Un arma de francotirador. + + + A ti puedo conseguirte lo mejor por solo 20.000, pero tendrás que darme un adelanto de 4.000. + + + Trabajar contigo conlleva cierto riesgo. Puedo prepararte el pedido por 24.000, pero tendrás que darme 8.000 por adelantado. + + + Lo siento, es difícil conseguir ese tipo de arma en este momento. Mi contacto para material de francotirador... digamos que está indispuesto. + + + Un traje blindado. + + + Sí, se me ocurre algo... adecuado. Te costará 40.000, pero tendrás que darme 8.000 por adelantado. + + + Sí, se me ocurre algo... adecuado. Te negaste a recoger tu último pedido, así que te costará 48.000 de los grandes y tendrás que darme 16.000 por adelantado. + + + No te voy a poder conseguir nada mejor que el último traje. Ése era único y de la mejor calidad. + + + Un traje con módulo de respiración de ciclo cerrado. + + + Un pedido especial... No será fácil de conseguir, ni mucho menos. Puedo intentar conseguirte una de esas preciosidades por 30.000, pero necesito 6.000 por adelantado. + + + Me dejaste tirado con el último pedido, así que esta vez debo pensármelo. Puedo intentar conseguirte una de esas preciosidades por 36.000, pero necesito 12.000 por adelantado. + + + Me maté para conseguirte uno la última vez. No creo que pueda repetirlo. + + + Un exoesqueleto. + + + Debes de haberle dado muchas vueltas. Puedo echar el guante a una versión de combate, pero te costará 60.000. Caro, sí, pero lo vale. Eso sí, que sepas que quiero 12.000 por adelantado. + + + No te portaste muy bien con el último pedido, así que esta vez te voy a pedir 72.000. Eso sí, que sepas que quiero 24.000 por adelantado. + + + Imposible. Desde que cerraron la fábrica, solo hay una forma de conseguir exoesqueletos: en cadáveres. Y ahí no me meto. + + + Ahora mismo no. + + + Lo siento. Tengo la tienda cerrada ahora mismo. Hay ciertos problemillas con los envíos. + + + Hola, soy Nimble. La gente acude a mí para conseguir armas únicas: modelos raros, prototipos... esas cosas. Y material de élite, las últimas innovaciones en trajes protectores y de combate. Compruebo cada artículo personalmente, así que la calidad está garantizada. + + + Hola. ¿Quieres hacer un pedido? + + + Hola. + + + Pronto llegará tu pedido. + + + El pedido está listo. Pasa a recogerlo. + + + ¡Eh! ¿Eres amigo de Snag? + + + Sí, lo conozco. + + + Me dijo que traías un botín... + + + No recuerdo haber quedado en eso. + + + Sí, claro. No somos las zorras de Snag, que no nos haga esperar. + + + Adiós. + + + ¡Te digo que no! + + + Piénsatelo bien. Si tienes dos dedos de frente, sabrás que conviene guardar las formas cuando estás en minoría. + + + ¡He dicho que no! + + + No, no lo conozco. + + + Ah... Maldita sea... Estoy malherido. Ayúdame, necesito un botiquín. No tengo mucho tiempo... + + + Toma este botiquín. + + + ¡Buf! Gracias, amigo. He estado a punto de palmarla en un Caldero. Esos perros mutantes se hubiesen alegrado... Toma mi detector. Puede que algún día te venga bien. Gracias por salvarme la vida, de verdad. Creo que me tomaré un respiro en la base. + + + Buena suerte. + + + ¡Buf! Gracias, amigo. He estado a punto de palmarla. Esos perros mutantes se hubiesen alegrado... Toma mi detector. Puede que algún día te venga bien. Gracias por salvarme la vida, de verdad. Creo que me tomaré un respiro en la base. + + + No puedo, lo necesito yo. + + + No tengo botiquines. + + + ¡Gracias de nuevo! Sin ti, ya estaría criando malvas... + + + ¡Stalker! ¡Rápido, ven a ayudar a Petrukha! ¡Mira ahí, al borde de la grieta! ¡Una anomalía se lo llevó por delante! ¡El traje no le sirvió de nada! Y yo no tengo. Petrukha y yo unimos nuestros fondos para comprar ése. ¡Si doy un paso más, será el fin! ¡Ayúdanos, por favor! + + + Vale, no te muevas. Lo intentaré. + + + Apañaos solitos. + + + Gracias por salvar a Petrukha. ¡Maldita sea, por qué no ahorraríamos para un traje mejor! + + + Fuera de mi vista. Has dejado morir a Petrukha... ¡Él sí que era un hombre, y no tú! + + + Hasta la próxima. + + + He limpiado la guarida de chupasangres. + + + Bien, has vengado a nuestros hermanos muertos. Dios los bendiga. Te has ganado esto. + + + He encontrado toda una guarida de chupasangres bajo el complejo de la antena. + + + Bien. Hay que eliminar esa guarida. Déjame pensar un segundo... ¡A saber cuántos chupasangres hay en esos túneles! A lo mejor deberíamos gasearlos. Recuerdo que Búho dijo no sé qué de unos tanques de gas. Habla tú con él, que no nos llevamos bien. Si consigues llegar al tanque de gas, conéctalo al sistema de ventilación del complejo de la antena y todo acabará en unos minutos. + + + Vale, eso haré. + + + Lo pensaré. + + + Ya tengo un tanque de gas. + + + Vaya... Tú sí que vales. + + + Ah, ahí está nuestro stalker. Te estábamos esperando. + + + ¿Cuál es el plan? + + + Vamos a una reunión. No tendrás mucho que hacer, o eso espero. Tú espera tranquilito. + + + De acuerdo. + + + Ja. Seguro que se han arrepentido. Buena puntería, stalker. Toma. + + + Buena suerte. + + + Serás fracasado... Mira que era fácil, y lo jodes todo. Piérdete. + + + Adiós. + + + ¿Qué prisa tienes? + + + Ninguna. + + + ¿Te envía Búho? + + + Sí. Me dijo que necesitabas ayuda. + + + Pues es cierto. Supongo que tú servirás. + + + Vale, ¿de qué se trata? + + + De protegerme durante una transacción comercial. + + + Puedo hacerlo. + + + Quédate cerca y cúbreme. + + + Entendido. + + + Solo hablaré con el jefe. + + + Tú verás. + + + Gracias, stalker. Me has sido de gran ayuda. Tenía la sensación de que esa panda de imbéciles lo jodería todo. ¡Los han seguido todo el camino! Toma, por las molestias. + + + Buena suerte. + + + Menudo vago estás hecho; eres un guardaespaldas pésimo, pero he prometido pagarte y lo haré. + + + Buena suerte. + + + Menudo vago estás hecho; eres un guardaespaldas pésimo, pero he prometido pagarte y lo haré. + + + Buena suerte. + + + ¿Qué quieres? No tengo nada que agradecerte. Casi no lo cuento. ¡Largo! + + + Buena suerte. + + + Eh, gracias por venir. Queremos acercarnos sigilosamente a los bandidos y espiarlos, a ver qué pasa. + + + Entiendo. + + + Gracias, stalker. Toma esto de nuestra parte. El camarero nos ha dejado tiesos. + + + Entiendo. + + + Háblame de tu vida. + + + No ha sido un camino de rosas, eso seguro... ¿Qué quieres saber, exactamente? + + + ¿Qué es lo que hacéis aquí? + + + Vigilamos a los stalkers. Tienes que admitir que sois críos más que hombres. Venís a la Zona con sueños estúpidos o para haceros los héroes, o porque la vida os trata mal. No os dais cuenta de lo que os aguarda aquí: la muerte. De esos nos ocupamos nosotros. Encontramos uno en el vertedero, cogemos sus cosas y lo mandamos de vuelta a Cordón. Los hay que se lo piensan mejor y vuelven al exterior, pero a los que tienen el cuajo de volver los ponemos bajo nuestra protección y les cobramos impuestos. En serio, nadie osa adentrarse en nuestro territorio; ni el ejército, ni los mercenarios, ni siquiera los mutantes. + + + ¿Qué os trajo al centro de la Zona? + + + Nuestras piernas. ¡Vinimos por los stalkers, claro está! Si no mantenemos el orden nosotros, esto es un auténtico caos. Consigues tu botín, lo guardas, pero ¿quién paga tus impuestos? Ya sabes, la paz y los impuestos de seguridad. Por ejemplo, si alguien saca partido de una anomalía mientras nosotros vigilamos, manteniendo a raya a los mutantes... Si todo sale bien, nos llevamos una parte... por mantener el orden. + + + ¿Cómo llegaste a ser jefe? + + + ¿Por dónde empiezo? Supongo que todo se remonta al instituto. Tenía un buen amigo, el mejor. Nos pasábamos el día fumando, bebiendo y todo eso. Pero él quería cada vez más emociones. Se metió en las drogas; un poco de hierba al principio, luego caballo y luego coca, cuando empezó a pillar algo de pasta. Le decía: "Toylan, tienes que dejar esa mierda antes de que sea demasiado tarde", pero no me escuchaba. Un día le dio un mal viaje y se acabó. Di con sus camellos y ajusté cuentas con ellos. Me hicieron una foto y ahí empezó el infierno: chirona, peleas de bandas, puñaladas... Salí, monté un negocio, me volvieron a trincar... Cuando volví a salir, dejé atrás toda esa mierda y le eché el ojo a la Zona. Pasé unos meses dejándome el pellejo y me gané un ascenso. Y aquí estoy, velando por la ley local. + + + ¿Qué opinas de los stalkers? + + + Son todos distintos, ¿no? Hay gamberros que no nos duran ni una semana, otros son curritos... y también hay tipos normales que la vida ha echado de ambos lados del Cordón. Nosotros desplumamos a los primeros y cobramos impuestos a los segundos. En cuanto a los últimos, nos conformamos con no cruzarnos mucho. Una pena que a veces no se distingan a simple vista... + + + Bah, no te preocupes. Olvídalo. + + + Como quieras. + + + Ahora Barbas trabajará para nosotros. + + + Ya sabes, hay que ordeñar a la vaca mientras sea nuestra; hazle una visita de vez en cuando para recordarle que pague su cuota. + + + Barbas tiene un pedido importante de un artefacto llamado Brújula. + + + Debemos interceptar ese artefacto. Barbas no se mojaría por una baratija cualquiera. Tengo la impresión de que la necesita para salvar el culo... Para mantenerse en el negocio, vamos. Tráeme la Brújula en cuanto la encuentres. + + + He encontrado la Brújula. Toma. + + + Me niego a buscar la Brújula para ti. + + + Eh, imbécil, a ver si te enteras. Si me dices que vas a hacer algo y luego me dejas tirado, pues como que no te voy a tener mucho aprecio. Y la gente que no me cae bien no suele disfrutar de la vida. ¿Lo captas? + + + Lo tendré en cuenta. + + + Conseguiré esos detectores de los stalkers. + + + Bien. Mientras tanto, me ocuparé de los otros canales de nuestro cliente. + + + Un pajarito me ha dicho que le has dado una Brújula a Barbas. Escúchame bien, capullo. Si me dices que vas a hacer algo y luego me dejas tirado, pues como que no te voy a tener mucho aprecio. Y la gente que no me cae bien no suele disfrutar de la vida. ¿Lo captas? + + + Lo tendré en cuenta. + + + Ahora Barbas no tiene detectores mejorados. + + + Maravilloso. Mientras estabas ausente, me he ocupado de cortarle sus otros canales. Ahora el cliente es nuestro, enterito. Ve a ver a Barbas y dile hola de parte de Sultán. + + + Barbas me debe dinero. Búho dijo que podrías ayudarme. + + + Supongo que sí... Mira lo que se me ocurre: arruinamos a Barbas, nos quedamos su chiringuito y tú te llevas tu dinero y parte del pastel. ¿Trato hecho? + + + Trato hecho. + + + Ahora tu misión es enterarte de qué tiene entre manos Barbas. Si cortamos sus canales de suministro, lo conseguiremos. + + + Lo pensaré. + + + Pero recuerda: pensar es malo para la salud. + + + ¿Crees que Nimble negociará con material robado? + + + ¿Nimble? No, a ése le faltan agallas. Búho es el traficante local de material ilegal. Compra todo lo que vendas sin hacer preguntas. + + + Estoy buscando a Snag. ¿Sabes dónde puedo encontrarlo? + + + Pues sí. Mis hombres lo vieron en las grúas del puerto hace cosa de dos días. Debería vaciarle los bolsillos por la pasta que me debe, pero siempre me olvido. + + + Tengo un trabajo para ti. Mis hombres van ver a un comerciante... Ya sabes, por negocios. Últimamente, la Zona es peligrosa, así que un arma extra vendrá bien. Asegúrate de que esa mierda vaya bien. + + + De acuerdo. + + + Bien. Mi gente se reunirá contigo cerca del puesto de guardabosques. Las coordenadas están en tu PDA. + + + Entiendo. + + + No me interesa. + + + ¿Qué coño haces aún aquí? Mueve el culo al puesto de guardabosques. + + + Ajá. + + + ¿Ya te has decidido? ¿Estás con nosotros o qué? + + + Estoy contigo. + + + Yo voy por libre. + + + Recuerda: soy Sultán. Todo lo que pasa aquí está bajo mi control o pronto lo estará. Si quieres vivir plácidamente, tienes que trabajar para mí. Si no, vivirás en la inmundicia. Así funciona el tema. + + + ¿Qué necesitas? + + + ¿Qué te trae por aquí? + + + ¿Y bien? + + + He matado a todos los stalkers. + + + Buf, vaya... Mierda, tú vas a machete. Vienes y te los cargas como si nada. ¿Para qué coño te he contratado? No nos has conseguido pasta, solo problemas. Cálmate un poco, tío, ¿me oyes? + + + ¿Te gusta trabajar para los científicos? + + + No está mal. De momento no hay problemas y todo parece en orden. Los científicos nos dieron algún material, así que nos va bien. + + + ¡Excelente! El trabajo es sencillo y está bien pagado. Nadie ha venido buscando a los científicos en este tiempo. Ni los monstruos. + + + Estoy reuniendo un pelotón para ir a Pripyat. ¿Me acompañas? + + + No... Pripyat no me pone tan cachondo como a los otros. Además, tenemos curro: proteger a los científicos. Igual quieres llevarte a ese soldado. Así podría buscar a sus colegas del ejército y a nosotros nos darías un respiro. Es un tipo legal, pero éste no es lugar para él. + + + No... Pripyat no me pone tan cachondo como a los otros. Además, tenemos curro: proteger a los científicos. + + + ¿Te gustaría trabajar para los científicos? + + + ¿En qué consiste el trabajo? + + + Defender su búnker. + + + Conque defender, ¿eh? No sería la primera vez. De acuerdo. Iremos hacia al búnker en cuanto estemos listos. + + + Hacer mediciones en anomalías. + + + Mediciones, ¿eh? ¿Tengo cara de médico de laboratorio? No es mi perfil. + + + Ya lo hablaremos luego. Hay demasiados matones rondando; hay que ponerlos en su sitio y, si se tercia, hablaremos de trabajo. + + + Venga, nos vamos pitando. ¡Se van a enterar! + + + De acuerdo. + + + Será mejor que nos pongamos a cubierto. ¡Una maldita emisión! + + + Larguémonos de aquí. ¡Se van a enterar! Tranquilidad, que todo saldrá bien. + + + Menuda zurra, ¿eh? Aquí tienes tu propina, amigo. Ya te avisaré si surgen más "negocios". + + + Buf, vaya... Mierda, tú vas a machete. Vienes y te los cargas como si nada. ¿Para qué coño te he contratado? No nos has conseguido pasta, solo problemas. Cálmate un poco, tío, ¿me oyes? + + + ¡¿Qué es lo que no entiendes?! ¡¿El sitio donde están los stalkers?! ¿Pero qué cojones es esto? Te has chivado, ¿no? ¡No ha podido ser nadie más! Mis hermanos no se han separado de mí... ¡Ahora te machacaremos a ti como íbamos a hacer con ellos! ¿Qué coño miras? ¡Vacía los bolsillos, imbécil! + + + Deberíamos ir... a la barca. + + + Ey, jefe. Lo siento, pero ahora no me apetece hablar. + + + Te ayudaré. + + + Magnífico. Prepararemos el encuentro como acordamos y tú te irás. Cuando vengan, les caerá una buena por todas partes. Asegúrate de guardar las distancias, no vayas a recibir fuego amigo. + + + De acuerdo. + + + No. Yo paso de eso. + + + Ey, stalker. Ahora estoy ocupado. Luego hablamos, ¿vale? + + + Gracias por avisar. A lo mejor te interesa nuestro plan. Es una buena oportunidad para disparar por la espalda a esos malnacidos. + + + Les tenderemos una emboscada. Cuando lo hagamos, dispara a esos cabronazos por detrás. + + + Esos mamones se pueden dar por muertos. Gracias por avisar. + + + Gracias por ayudarnos. + + + Hola. Oye, si no es urgente lo hablamos luego, ¿vale? + + + Hola. + + + He encontrado a Urraca. Estaba en la estación de Yanov, haciéndose pasar por Pedernal. Acabé con él. + + + ¿En serio? Qué pena... Me hubiera encantado aplastar personalmente a esa cucaracha. En fin, es una buena noticia. Aquí tienes; soy un hombre de palabra. + + + Gracias. + + + Quiero irme de la Zona. + + + ¿Seguro? No hay vuelta atrás. + + + Segurísimo. En marcha. + + + Bueno... De momento me quedo. + + + Vale, coge el dinero. No quiero bronca. + + + ¿Eh? ¡Dame todo lo que tengas, cabronazo! ¡Y piérdete y no aparezcas! + + + Me voy. + + + ¡Te digo que no! + + + Veamos... ¿Con tu salud? Pues si a ti te va mal, yo debo de estar muerto o algo... + + + Oye, hay un asunto urgente. Un comerciante que conozco quiere cerrar un trato, pero sus clientes son de los que causan problemas, así que va a contratar a un guardia de seguridad, por si acaso. ¿Te interesa? + + + Sí. + + + Vale. El comerciante te estará esperando en el puesto del guardabosques para informarte. + + + No mucho. + + + Tú verás. Si cambias de idea pronto, puede que aún estés a tiempo. + + + ¿Qué clase de trabajo puedes ofrecerme? + + + De los que dan dinero. Ahora piensa: ¿Por qué te lo pido a ti? Eres nuevo y sin contactos, pero si juegas tus cartas, podrías ganarte rápidamente el respeto de los locales. ¿Te digo lo que estoy pensando? + + + Sí, claro. + + + Muy bien, atención. Tenemos pensado extorsionar a unos stalkers de Barbas. Es pan comido. Bien entrada la noche, tú y tus hombres os acercáis a Shevchenko, y antes de que esos turistas se den cuenta de lo que ocurre, te los llevas a dar una vuelta. Para nosotros la pasta y para ti lo demás, ¿me sigues? Perfecto. ¿Ves a Knuckles ahí? Él te dará todos los detalles. + + + No mucho. + + + Vaya... Tómate tu tiempo y piénsatelo. Si sabes lo que te conviene, acabarás volviendo. + + + De los que te vienen bien si quieres ir a sitios. ¿Quieres saber qué estoy pensando? + + + Es la PDA de Barge. Encontré su cadáver en las cuevas bajo la colina. + + + La encontré junto a unos huesos, cerca de Roblepino. Es la PDA de Bromista. + + + ¡¿Su PDA?! ¡No puede ser! Buf, no sé cómo reaccionar... Bromista ha muerto... Ya no volveremos a escuchar tus chistes... Descansa en paz. Espero que Barge esté bien... + + + ¡¿Su PDA?! ¡No puede ser! Buf, no sé cómo reaccionar... Bromista también ha muerto... Ya no volveremos a escuchar tus chistes... Descansa en paz. Y Barge... ¿Cómo ha podido ocurrir...? + + + La PDA de Barge y la de Bromista. Una la encontré junto a un esqueleto, cerca de Roblepino, y la otra en un cadáver, en las cuevas bajo la granja quemada. + + + Para serte sincero, no hay mucho que contar. Las emisiones son especialmente peligrosas y casi siempre letales. Se nota cuando se aproximan gradualmente, por el cambio de tiempo, pero pasan poco después de alcanzar su punto crítico. Al primer signo de cercanía, corre a refugiarte a una cueva, o algo hecho de cemento, ladrillo o acero. Los hay como yo, a quienes nos duele la espalda cuando se avecina una emisión. En cuanto a su naturaleza, no puedo decirte nada útil. No tengo ni idea. + + + ¿Necesitas mercancía? ¿Información? ¿O eres tú quien vendes? + + + Sultán dice que planeas desplumar a los stalkers. Cuenta conmigo. + + + Genial. Preséntate en Shevchenko después de medianoche; estaremos esperándote. No vayas a aparecer por la mañana. + + + Ah, eres tú, hermano. ¿Qué habéis acordado Sultán y tú? + + + Pues... ve a la barcaza después de medianoche, pero antes de que salga el sol. Te estaremos esperando. + + + Será mejor que me quede contigo. Esperaremos a medianoche y entonces podrás enseñarme el camino a Shevchenko. + + + Perfecto, quédate. Llevarte a la barcaza no es ningún problema. + + + Pues... tengo que ocuparme de unos asuntos. + + + Tengo clientes importantes fuera de la Zona que habitualmente me encargan artefactos, y hay que entregárselos en un plazo determinado. Si me consigues lo que busco, te pagaré bien. Ten en cuenta que son pedidos muy importantes para mí; por eso intento encargárselos a varios agentes a la vez. Solo pago toda la recompensa a quien me lo trae primero. + + + Por la granja quemada. Mmm... ¿Quién eres, si puede saberse? + + + También llaman a ese lugar el Bosque de Hierro. El helicóptero se desplomó sobre las torres de electricidad. No sobrevivió ni un militar. Y aunque hubiesen sobrevivido, la habrían palmado enseguida. A esos poltergeists les encanta perseguir a gente en anomalías eléctricas. Y los muy cabrones responden al menor movimiento, como sabes. + + + Mira: cuando el helicóptero se desplomó, vieron a cinco soldados. Al parecer, hasta lograron salir del pantano por su propio pie. Llegar hasta ahí no es difícil; solo debes alejarte del agua y quedarte en terreno firme. Y también te hará falta protección química. Si tienes pensado ir para allá, cómprale al médico unos cuantos antídotos. + + + Qué pena que no estén aquí mis amigos Barge y Bromista... Nos lo pasábamos de puta madre. Éramos como hermanos, siempre cubriéndonos las espaldas. ¿Cómo ha podido ocurrir? Yo sigo aquí, pero ellos no. + + + Háblame de Bromista y de Barge. + + + Ya tengo algo de ahí. + + + Empieza a hablar... ¿Conseguiste algo para mí? + + + Bueno, eso lo explicaría todo. Lo conozco. Siempre ha sido un ladrón, pero la cosa se le ha ido de las manos últimamente. Estafar a los stalkers de esa manera... Alguien tendría que ponerlo en su sitio. + + + Necesito información sobre el campamento de mercenarios. No es tan duro como parece. + + + Vale, te esperaré. Recuerda que es un trabajo urgente: tiene que hacerse en dos días. + + + PDA del mensajero de Sultán. + + + No me interesa tanto. Te doy 500 por ella. + + + De acuerdo. + + + Prototipos de detectores. ¿Querrías comprármelos? + + + Documentos secretos. Los encontré en el puente que está junto a la columna motorizada. ¿Quieres verlos? + + + Un artefacto extraño. Lo encontré junto a la planta de dragado. + + + Un artefacto extraño. Lo encontré junto a la estación de Yanov. + + + Artefacto Corazón del Oasis. + + + Vamos. + + + Espera. + + + Un grupo de stalkers planea atracarte. Ten cuidado. + + + Cerdos... Muy bien, les daremos una cálida bienvenida. Mira, intenta convencerlos de que estás de su parte. Así nos ayudarás a acabar con ellos. Te recompensaremos bien por ello. + + + Me importa una mierda en lo que quedases. ¡Dame eso pero ya! + + + Vale, aquí tienes. + + + ¿Ah, no? Pues nos importa una mierda. ¡Danos eso, gilipollas! + + + Tranquilo... Toma. + + + Cerdos... Muy bien, les daremos una cálida bienvenida. Ayúdanos a acabar con ellos. Te recompensaremos bien por ello. + + + Menuda zurra, ¿eh? No te involucraste, así que no te llevarás tu parte. Ya te avisaré si surgen más "negocios". + + + Eres un inútil... No esperes una recompensa. Pero al menos has venido a hablar, eso ya es algo. + + + Hasta luego. + + + Oye. Ahora le apretaremos las tuercas a nuestro clientillo. Barbas les dio a sus stalkers unos detectores muy potentes diseñados para encontrar artefactos extraños. Tienes que unirte a ellos para conseguir que los detectores acaben en tu bolsillo, ¿me sigues? + + + No hay forma de dominarlo. Intenté reducir sus rutas de suministros pero ese granuja consiguió una Brújula igualmente. Parece que le va bien... por el momento. + + + [continuar...] + + + [continuar...] + + + [continuar...] + + + Urogallo ha muerto. Parece que Tremor estaba involucrado, pero él también está muerto. + + diff --git a/gamedata/configs/text/spa/st_generate_fnames.xml b/gamedata/configs/text/spa/st_generate_fnames.xml new file mode 100644 index 0000000..6aa8cdd --- /dev/null +++ b/gamedata/configs/text/spa/st_generate_fnames.xml @@ -0,0 +1,492 @@ + + + + Sanek + + + Shurik + + + Vadya + + + Vasyan + + + Vasek + + + Vityukha + + + Vetal + + + Vovan + + + Zhorka + + + Grishka + + + Grishko + + + Dimon + + + Lekha + + + Dimukha + + + Zheka + + + Fimka + + + Ilyukha + + + Kostyan + + + Mitka + + + Mikhal + + + Mikha + + + Mikhas + + + Kolyan + + + Tolyan + + + Pavlukha + + + Sashok + + + Stepka + + + Stepukha + + + Timokha + + + Felka + + + Yuras + + + Yashka + + + Andryukha + + + Tokha + + + Arkasha + + + Temka + + + Boryan + + + Bodya + + + Capitán + + + Teniente + + + Soldado raso + + + Andrey + + + Anton + + + Oleg + + + Roman + + + Aleksandr + + + Sergey + + + Anatoly + + + Yuri + + + Bohdan + + + Veniamin + + + Vitaly + + + Vladimir + + + Dimitri + + + Iván + + + Konstantin + + + Alexey + + + Sanya + + + Sanek + + + Arthur + + + Yashka + + + Yarik + + + Yara + + + Slava + + + Borya + + + Borka + + + Bohdan + + + Slavik + + + Vadim + + + Vadya + + + Vadik + + + Valik + + + Valera + + + Shurik + + + Vasya + + + Vaska + + + Vasko + + + Venya + + + Vitya + + + Vitka + + + Vitalik + + + Vlad + + + Vova + + + Vovka + + + Lenya + + + Seva + + + Sevka + + + Gena + + + Genka + + + George + + + Gosha + + + Zhora + + + Mark + + + Gleb + + + Grisha + + + Alex + + + Grishka + + + Grishko + + + Danya + + + Kiryukha + + + Danko + + + Dennis + + + Dima + + + Dimka + + + Dmitro + + + Zhenya + + + Leshka + + + Zhenka + + + Egor + + + Egorka + + + Fima + + + Vanya + + + Vanka + + + Igorek + + + Ilya + + + Kostya + + + Kostik + + + Tolik + + + Leva + + + Lenya + + + Lyonka + + + Max + + + Matvei + + + Mitya + + + Misha + + + Mishka + + + Nikita + + + Nik + + + Anton + + + Kolya + + + Oleg + + + Pasha + + + Pashka + + + Petro + + + Petya + + + Petka + + + Roma + + + Romka + + + Rostik + + + Toshka + + + Rus + + + Savva + + + Semyon + + + Sema + + + Serega + + + Rusik + + + Stepan + + + Stepa + + + Tima + + + Timka + + + Artem + + + Fedor + + + Fedya + + + Fedka + + + Filya + + + Filka + + + Edik + + + Yurka + + + Yurik + + + Yurko + + + Yasha + + + Sargento primero + + + Sargento + + diff --git a/gamedata/configs/text/spa/st_generate_snames.xml b/gamedata/configs/text/spa/st_generate_snames.xml new file mode 100644 index 0000000..3ff1cd4 --- /dev/null +++ b/gamedata/configs/text/spa/st_generate_snames.xml @@ -0,0 +1,4836 @@ + + + + Gris + + + Berserk + + + Podrido + + + Patty + + + Espía + + + Bisonte + + + Castor + + + Bulldog + + + Buey + + + Gorrión + + + Pájaro carpintero + + + Bestia + + + Brujo + + + Jorobado + + + Jabalí + + + Carpa + + + Canario + + + Chinche + + + Gruñón + + + Alce + + + Rata + + + Boa + + + Barrapán + + + Roto + + + John el Largo + + + Caos + + + Rayo + + + Cuchilla + + + Tambor + + + Chatarra + + + Tornillos + + + Dinamita + + + Órdago + + + Pala + + + Junta + + + Pato de feria + + + Cruz + + + Alquitrán + + + Calcetín + + + Palanqueta + + + Panadol + + + Pincho + + + Pistón + + + Níquel + + + Rabo + + + Letal + + + Cansino + + + Molar + + + As + + + Cincel + + + Mikado + + + Torpedero + + + Travesaño + + + Tachas + + + Pelotazo + + + Puños + + + Magullador + + + Renacuajo + + + Hacker + + + Khan + + + Koschei + + + Rambo + + + Guía turístico + + + Exterminador + + + Chapai + + + Genghis + + + Banana + + + Barrapán + + + Dedos de trapo + + + Papi + + + Spike + + + Compadre + + + Gangrena + + + Fallo técnico + + + Grado + + + Antílope + + + Fomare + + + Paria + + + Gelatina + + + Carbón + + + Órdago + + + Junta + + + Calcetín + + + Duende + + + Moro + + + Canuto + + + Fracasado + + + Ravioli + + + Chili + + + Rallador + + + Bola de sebo + + + Bizcocho + + + Gul + + + Rácano + + + Roto + + + Tacaño + + + Squint + + + Diablo + + + Tullido + + + Pataslargas + + + Contrahecho + + + Cheposo + + + Chaquetero + + + Tupé + + + Feroz + + + Compinche + + + Lugareño + + + Cieno + + + Campeón + + + Monóculo + + + Granuja + + + Holgazán + + + Sobrado + + + Zurullo + + + Difunto + + + Psicópata + + + Bocazas + + + Rasgado + + + Robatumbas + + + Ciego + + + Soplamocos + + + Gafapasta + + + Metro + + + Cadáver + + + Acuchillador + + + Orejotas + + + Bufón + + + Galgo + + + Flojo + + + Recio + + + Cascarrabias + + + Sabihondo + + + Robusto + + + Escudero + + + Sanguijuela + + + Artista + + + Estafador + + + Banquero + + + Vagabundo + + + Barón + + + Buhonero + + + Estrafalario + + + Sintecho + + + Contramaestre + + + Pigmeo + + + Bourbon + + + Burgués + + + Chófer + + + Ladrón + + + Rapado + + + Gánster + + + Mensajero + + + Conde + + + Tirano + + + Salvaje + + + Estrangulador + + + Consejero + + + Tahúr + + + Tramposo + + + Padrino + + + Veterano + + + Entrenador + + + Abalorio + + + Maníaco + + + Enterrador + + + Carnicero + + + Ninja + + + Verdugo + + + Macarra + + + Guerrillero + + + Pacifista + + + Peñón + + + Pirata + + + Pirómano + + + Príncipe + + + Bandolero + + + Kamikaze + + + Chuloputas + + + Tirano + + + Sicario + + + Trombón + + + Químico + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchitsky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Sinaev + + + Feigelman + + + Ledentsov + + + Alferov + + + Antipin + + + Blinov + + + Bogomolov + + + Vasilevich + + + Geshkenbein + + + Dyakonov + + + Erokhin + + + Zaikin + + + Zakharov + + + Ivchenko + + + Kabanov + + + Larin + + + Manko + + + Mironov + + + Stepanenko + + + Oganesyan + + + Chernodub + + + Shilov + + + Chirikov + + + Belyavin + + + Fadeev + + + Steklov + + + Andreev + + + Spirin + + + Balitsky + + + Abdurakhmanov + + + Altynnik + + + Barsak + + + Kireev + + + Scherbin + + + Kovalchuk + + + Koev + + + Kozlov + + + Kolontarev + + + Kolontar + + + Kondratenko + + + Korkin + + + Korneev + + + Baul + + + Kravchenko + + + Krivda + + + Krivokhatsky + + + Kuznetsov + + + Kuzmich + + + Kuzyakin + + + Kulchistky + + + Kuntsev + + + Kurvitz + + + Kucheruk + + + Bashakov + + + Kushnarev + + + Khaladze + + + Lavrik + + + Lavrov + + + Livshits + + + Lisichansky + + + Litvin + + + Lymarenko + + + Mazepa + + + Makarenko + + + Bashmakov + + + Maltsev + + + Mamaev + + + Merzlayev + + + Milchenko + + + Mironyuk + + + Mohrer + + + Kryga + + + Mostovoi + + + Muntyan + + + Mukhamedov + + + Beshevly + + + Myskov + + + Navrotsky + + + Nepritsky + + + Nikanorov + + + Nikeshin + + + Nikulin + + + Futzin + + + Nordiev + + + Nosan + + + Opolev + + + Binoev + + + Orlevich + + + Orlov + + + Petkevich + + + Petrenko + + + Petrov + + + Plokhenko + + + Podyachev + + + Polyanin + + + Poplavsky + + + Popov + + + Blinov + + + Portnykh + + + Prasolov + + + Prokopenko + + + Proskurin + + + Protsenko + + + Prudov + + + Pustovar + + + Puchek + + + Rabinovich + + + Radkevich + + + Bobrov + + + Rezun + + + Rogoza + + + Rodnyansky + + + Rotan + + + Rublev + + + Rudik + + + Rusanov + + + Rychagirsky + + + Savchenko + + + Savchuk + + + Bogdanov + + + Sagitov + + + Sviridov + + + Sedykh + + + Sereda + + + Sidorenko + + + Sidorov + + + Siniy + + + Sinitzyn + + + Skameika + + + Slutsky + + + Boiko + + + Smelov + + + Smoly + + + Sorokin + + + Statzura + + + Stepchin + + + Stychinsky + + + Sykula + + + Tarnavsky + + + Tatarchuk + + + Timchuk + + + Andreychuk + + + Boichenko + + + Boldeskul + + + Bondarev + + + Borisov + + + Brich + + + Bronshtein + + + Buryak + + + Buturin + + + Byalo + + + Valentinov + + + Andruschenko + + + Vasiliev + + + Veselov + + + Vinogradov + + + Vovnenko + + + Volanchuk + + + Volodar + + + Voloshin + + + Vorontsov + + + Vorokhaev + + + Vyushinsky + + + Anisiev + + + Galkin + + + Ganzyuk + + + Garkovenko + + + Garkusha + + + Georgov + + + Glebovsky + + + Gnatyuk + + + Goncharenko + + + Gordienko + + + Gorlevoy + + + Ardashev + + + Gorokhin + + + Goryunov + + + Grebenko + + + Gritzaenko + + + Gritzay + + + Gritzenkov + + + Grishachev + + + Grischuk + + + Gubar + + + Gunko + + + Babich + + + Gurevich + + + Denisenko + + + Dovgalyuk + + + Dombrik + + + Dotsenko + + + Drozdush + + + Dubenchuk + + + Dudorov + + + Duka + + + Dumko + + + Balan + + + Dunaev + + + Dyklov + + + Erofeev + + + Efremov + + + Zhabenko + + + Zhmyev + + + Zhurakovsky + + + Zabyagoda + + + Zagorodnyuk + + + Zamosenchuk + + + Baranov + + + Zarubin + + + Zakharin + + + Zvonnitsky + + + Zinoviev + + + Zozo + + + Zolotar + + + Zubarev + + + Zubkov + + + Ivanov + + + Ignatenko + + + Baranovsky + + + Izhenko + + + Ischuk + + + Kazakov + + + Kazantsev + + + Kandybabko + + + Kapuka + + + Kapustyanko + + + Katz + + + Kikabidze + + + Gatzula + + + Blanco + + + Verde + + + Inmortal + + + Oxidado + + + Romántico + + + Atroz + + + Cachas + + + Cuentacuentos + + + Ciego + + + Valiente + + + Soplamocos + + + Polémico + + + Vejestorio + + + Berserk + + + Gafapasta + + + Metro + + + Macabro + + + Desgarbado + + + Seco + + + Cabrón afortunado + + + Moteado + + + Bola de sebo + + + Belly + + + Cadáver + + + Roto + + + Enteradillo + + + Acuchillador + + + Orejotas + + + Enmascarado + + + Bufón + + + Flojo + + + Recio + + + Huesos + + + Cínico + + + Notas + + + Alegre + + + Cascarrabias + + + Alerta + + + Sabihondo + + + Robusto + + + Iniciado + + + Nativo + + + Aviador + + + Agente + + + Escudero + + + Sanguijuela + + + Compinche + + + Discípulo + + + Artista + + + Asceta + + + Estafador + + + Banquero + + + Bardo + + + Barón + + + Buhonero + + + Estrafalario + + + Corredor + + + Atleta + + + Guerrero + + + Sintecho + + + Contramaestre + + + Pigmeo + + + Bourbon + + + Burgués + + + Burócrata + + + Vándalo + + + Bárbaro + + + Conserje + + + Mordaz + + + Zahorí + + + Visitante + + + Vikingo + + + Chófer + + + Buzo + + + Jefe + + + Ladrón + + + Viajero + + + Loquero + + + Jinete + + + Bocazas + + + Gánster + + + Geólogo + + + Gladiador + + + Mensajero + + + Invitado + + + Conde + + + Porteador + + + Abuelo + + + Tránsfuga + + + Vendedor + + + Galgo + + + Dandi + + + Sustituto + + + Tirano + + + Salvaje + + + Diplomático + + + Doc + + + Doctor + + + Profesor + + + Estrangulador + + + Celador + + + Vagabundo + + + Consejero + + + Antiaéreo + + + Charlatán + + + Tahúr + + + Indio + + + Iroqués + + + Capitán + + + Tramposo + + + Payaso + + + Duque + + + Rojo + + + Rapado + + + Cosaco + + + Pinche + + + Brujo + + + Comanche + + + Rey + + + Padrino + + + Mercader + + + Fumador + + + Emisario + + + Entrenador + + + Veterano + + + Legionario + + + Curandero + + + Forester + + + Señor + + + Magnate + + + Abalorio + + + Maníaco + + + Marciano + + + Cantero + + + Mecánico + + + Figura + + + Enterrador + + + Moderador + + + Lechero + + + Carnicero + + + Mercenario + + + Afinador + + + Mandamás + + + Ninja + + + Operador + + + Maestro armero + + + Suertudo + + + Shah + + + Verdugo + + + Polaco + + + Macarra + + + Papito + + + Guerrillero + + + Clérigo + + + Pastor + + + Anciano + + + Labriego + + + Afortunado + + + Pacifista + + + Transportista + + + Silbato + + + Piloto + + + Pionero + + + Pirata + + + Carpintero + + + Pirómano + + + Bombero + + + Pantuflas + + + Emparrado + + + Subzero + + + Embajador + + + Cartero + + + Poeta + + + Príncipe + + + Profeta + + + Profesor + + + Saltador + + + Apicultor + + + Bestia de carga + + + Leal + + + Rabino + + + Chispas + + + Bandolero + + + Rastafari + + + Celador + + + Roquero + + + Minero + + + Samurái + + + Buscaminas + + + Ordenanza + + + Ojos saltones + + + Sacerdote + + + Secretaria + + + Gigoló + + + Farsante + + + Escita + + + Abrecaminos + + + Maquinista + + + Kamikaze + + + Criador + + + Salvavidas + + + Peñón + + + Deportista + + + Forastero + + + Estudiante + + + Juez + + + Hongo venenoso + + + Chuloputas + + + Contable + + + Patrullero + + + Bailarín + + + Tirano + + + Podrido + + + Regateador + + + Rebañador + + + Barrendero + + + Étnico + + + Turista + + + Sicario + + + Trombón + + + Quarterback + + + Francotirador + + + Químico + + + Oxidado + + + Verbal + + + Patty + + + Pintor + + + Cuidaovejas + + + Chamán + + + Pocero + + + Carbonero + + + Alguacil + + + Jefe + + + Erudito + + + Taxista + + + Jorobado + + + Espía + + + Electricista + + + Cadete + + + Pagano + + + Caimán + + + Anaconda + + + Mandril + + + Bisonte + + + Castor + + + Mantis + + + Orgulloso + + + Bulldog + + + Ardilla + + + Buey + + + Lechón + + + Gorrión + + + Grajo + + + Rata almizclera + + + Llantén + + + Carroñero + + + Grajo + + + Amargado + + + Manul + + + Ganso + + + Delfín + + + Dinosaurio + + + Zorzal + + + Pájaro carpintero + + + Erizo + + + Escarabajo + + + Liebre + + + Bestia + + + Trueno + + + Brujo + + + Uro + + + Pavo + + + Jabalí + + + Carpa + + + Canario + + + Chinche + + + Cobra + + + Mosquito + + + Semental + + + Matón + + + Gato + + + Cocodrilo + + + Saltamontes + + + Gruñón + + + Alce + + + Mamut + + + Elefante + + + Germen + + + Moscón + + + Hormiga + + + John el Largo + + + Tábano + + + Araña + + + Rata + + + Peregrino + + + Piraña + + + Pitón + + + Liebre + + + Búho + + + Halcón + + + Marmota + + + Blandengue + + + Tuza + + + Pececillo + + + Cucaracha + + + Tarántula + + + Hámster + + + Boa + + + Búho + + + Hurón + + + Gusano + + + Pocero + + + Pato de feria + + + Absoluto + + + Anomalía + + + Parachoques + + + Barrapán + + + Roto + + + Caos + + + Bola de fuego + + + Rayo + + + Cuchilla + + + Tambor + + + Cansino + + + Dónut + + + Aspiradora + + + Chatarra + + + Guijarro + + + Abanico + + + Helicóptero + + + Viento + + + Tornillos + + + Collar + + + Clavo + + + Pelirrojo + + + Renacuajo + + + Cartucho + + + Globo + + + Peñón + + + Granada + + + Niebla + + + Ataúd + + + Verano + + + Motor + + + Dinamita + + + Boquete + + + Dedos de trapo + + + Legal + + + Cierre + + + Recámara + + + Isótopo + + + Roca + + + Trampa + + + Hechicero + + + Karma + + + Ladrillo + + + Pegamento + + + Malabestia + + + Llave + + + Látigo + + + Órdago + + + Gorro + + + Parteleños + + + Whisky + + + Raíces + + + Guadaña + + + Espacio + + + Pala + + + Matojo + + + Junta + + + Cruz + + + Alquitrán + + + Gatillo + + + Calcetín + + + Palanqueta + + + Máquina + + + Diana + + + Motor + + + Bombeador + + + Hierro + + + Nocturno + + + Escopeta + + + Panadol + + + Paracaídas + + + Proyectil + + + Cinco + + + Pincho + + + Pistón + + + Masilla + + + Pólvora + + + Quincallero + + + Níquel + + + Cohete + + + Cornudo + + + Reactor + + + Hachuela + + + Colador + + + Rabo + + + Robot + + + Venado + + + Pica + + + Carbón + + + Matarratas + + + Bota + + + Sidra + + + Letal + + + Priva + + + Sacaojos + + + Cañón + + + Cofre + + + Hacha + + + Tonelete + + + Veloz + + + Molar + + + As + + + Nudos + + + Factor + + + Lámpara + + + Cincel + + + Junio + + + Ajo + + + Mikado + + + Azar + + + Bola de sebo + + + Torpedero + + + Espino + + + Armario + + + Travesaño + + + Bicho + + + Pulverizador + + + Barras + + + Tachas + + + Tornillos + + + Pelotazo + + + Rácano + + + Sabelotodo + + + Fang + + + Garra + + + Huesos + + + Puños + + + Caradura + + + Esqueleto + + + Colas + + + Cresta + + + Magullador + + + Gris + + + Tacaño + + + Hacker + + + Khan + + + Atleta + + + Pinocho + + + Zahorí + + + Voldemort + + + Homer + + + Dragón + + + Trueno + + + Gioconda + + + Squint + + + Fideo + + + Hombre de hojalata + + + Ícaro + + + Casanova + + + Koschei + + + César + + + Soldado + + + Kutuzov + + + Pocacosa + + + Bonaparte + + + Cerebrito + + + Nelson + + + Neptuno + + + Óscar + + + Prometeo + + + Pushkin + + + Viernes + + + Rambo + + + Roquefort + + + Guía turístico + + + Exterminador + + + Tarugo + + + Tinta + + + César + + + Chapaev + + + Chapai + + + Chebur + + + Cheburashka + + + Chingachgook + + + Genghis + + + Shtirlitz + + + Banana + + + Águila + + + Bizcochito + + + Barrapán + + + Papi + + + Spike + + + Compadre + + + Bulkin + + + Bulldozer + + + Amortiguador + + + Buñuelo + + + Chitón + + + Sable + + + Gangrena + + + Híbrido + + + Fallo técnico + + + Batería + + + Escocés + + + Grado + + + Gremlin + + + Antílope + + + Tío + + + Fomare + + + Carámbano + + + Paria + + + Kagor + + + Repollo + + + Carburo + + + Gelatina + + + Órdago + + + Comodoro + + + Rey + + + Junta + + + Calcetín + + + Diablo + + + Hielo + + + Duende + + + Moro + + + Madera + + + Espagueti + + + Maestro + + + Mutante + + + Canuto + + + Fracasado + + + Charca + + + Tullido + + + Detective + + + Ravioli + + + Chili + + + Correas + + + Comeyogures + + + Burbuja + + + Rallador + + + Zumbón + + + Ryazansky + + + Matarratas + + + Tullido + + + Colmenilla + + + Bizcocho + + + Tabaco + + + Fichaturnos + + + As + + + Calabacín + + + Gul + + + Trombón + + + Fantasma + + + Acróbata + + + Gris + + + Pataslargas + + + Coma + + + Contrahecho + + + Patoso + + + Espinazo + + + Cheposo + + + Arco iris + + + Chaquetero + + + Matorral + + + Tupé + + + Siniy + + + Lameculos + + + Feroz + + + Pocacosa + + + Estirado + + + Necro + + + Lugareño + + + Tumba + + + Cieno + + + Campeón + + + Narciso + + + Negro + + + Sinsangre + + + Perdedor + + + Bobo + + + Latoso + + + Llorica + + + Monóculo + + + Granuja + + + Holgazán + + + Paranoia + + + Sobrado + + + Teflón + + + Bribón + + + Zurullo + + + Difunto + + + Virtuoso + + + Simplón + + + Psicópata + + + Bestia de carga + + + Rasgado + + + Robatumbas + + + Chillón + + diff --git a/gamedata/configs/text/spa/st_items_artefacts.xml b/gamedata/configs/text/spa/st_items_artefacts.xml new file mode 100644 index 0000000..e3ce300 --- /dev/null +++ b/gamedata/configs/text/spa/st_items_artefacts.xml @@ -0,0 +1,153 @@ + + + + Este artefacto es un compuesto de formaciones orgánicas huecas; despide una sustancia gaseosa que puede neutralizar partículas radiactivas en el interior del cuerpo sin causarle daños. Dada su gran eficacia, este artefacto tiene mucha demanda. + + + Burbuja + + + Formación rojiza de fósiles vegetales comprimidos, tierra y restos animales. Neutraliza parcialmente venenos químicos. Emite radiación. + + + Sangre petrificada + + + Este artefacto se forma en zonas anómalas de intensa actividad térmica. Consume el exceso de calor, por lo que es frío al tacto. Emite radiación. + + + Este artefacto está hecho de una piedra similar al granito, alterada por una fuerza gravitatoria extrema que ha dado lugar a una formación cristalina para la cual la ciencia aún no ha encontrado explicación. Ofrece protección moderada contra emisiones psíquicas y es radiactiva. + + + Flor de piedra + + + Cristal + + + La composición de este artefacto incluye elementos electrostáticos, pero los científicos todavía no han identificado las condiciones físicas exactas necesarias para su formación. Es muy popular en la Zona, y tanto lugareños como visitantes la valoran por sus propiedades tonificantes, aunque su uso prolongado causa fatiga. Emite radiación. + + + Batería + + + Este artefacto solía considerarse basura, pues carecía de propiedades útiles. Sin embargo, los científicos descubrieron no hace mucho que, si se mantiene en contacto continuo con el cuerpo, estimula el sistema nervioso. Emite radiación. + + + Concha + + + Este artefacto continúa siendo un completo misterio para los científicos. No obstante, se sabe con certeza que las emisiones producidas por los impulsos de sus secciones más gruesas coagulan la sangre en las heridas abiertas, formando una especie de costra protectora. Uno de los efectos más evidentes es el aumento de la velocidad de recuperación. Emite radiación. + + + Abalorios de madre + + + Este potente artefacto electrostático absorbe la electricidad y luego la libera. El Destello puede proteger a su portador de descargas eléctricas de hasta 5.000 voltios. Emite radiación. + + + Destello + + + Este singular artefacto electrostático reverbera cuando capta ondas psíquicas. Los stalkers han aprendido a ajustar el artefacto para que reverbere en una fase opuesta a la fuente de la emisión, neutralizando así sus efectos parcial o totalmente. Emite radiación. + + + Claro de luna + + + Este artefacto es un brillante ejemplo de la familia electrostática. Suaviza las fluctuaciones de la densidad de los campos eléctricos. Emite radiación. + + + Bengala + + + Este artefacto, similar a un ojo humano, acelera considerablemente el metabolismo del cuerpo, haciendo que las heridas sanen más deprisa. Los stalkers más curtidos afirman que trae suerte. Emite radiación. + + + Ojo + + + Este artefacto se forma en zonas de gran actividad térmica. Despide potentes emisiones de infrarrojos que intensifican los procesos metabólicos, cerrando y curando heridas a ojos vista. Dada la extrema escasez de este artefacto, es sumamente valioso. Emite radiación. + + + Llama + + + Aunque la Bola de fuego es un artefacto térmico, puede manipularse sin miedo a quemaduras. Es muy preciado por su capacidad de mantener una temperatura de 23º C en un radio pequeño, sean cuales sean las condiciones del entorno. Emite radiación. + + + Bola de fuego + + + Artefacto relativamente escaso que se forma en zonas contaminadas con productos químicos. El Soldado es muy preciado por su capacidad de curar cualquier herida en cuestión de minutos. Por causas desconocidas, los científicos están propagando el rumor de que afecta al código genético del portador. Emite radiación. + + + Soldado + + + Luciérnaga + + + El Pez de colores es el resultado de la interacción entre un gran número de campos gravitatorios. Produce su propio campo de gravedad interno, que elimina el peso de todo lo que se encuentra dentro de su radio de acción. Reduce el peso de la carga acarreada, lo que explica que tenga tanta demanda. Emite radiación. + + + Pez de colores + + + El Gravi se forma a partir de sustancias metálicas expuestas a efectos gravitatorios prolongados. Esto le permite generar campos antigravitatorios; muchos stalkers lo utilizan para reducir el peso de sus mochilas. Emite radiación. + + + Gravi + + + A primera vista, este artefacto se parece al Soldado. Hay quien dice que realmente es un Soldado reforzado por la exposición a un potente campo eléctrico. Sus propiedades únicas incrementan considerablemente el tono muscular del portador. Emite radiación. + + + Copo de nieve + + + Este artefacto gravitatorio atrae y absorbe partículas radiactivas, reduciendo así los efectos de la radiación sobre el cuerpo. Es muy común en la Zona, y también se utiliza fuera de ella para curar el envenenamiento radiactivo en circunstancias excepcionales. + + + Medusa + + + Este artefacto orgánico está compuesto de tejido animal mutado y deforme. Cuando se coloca en una zona contaminada por sustancias químicas, la bola de carne transforma las sustancias del aire en un fluido mucoso. Emite radiación. + + + Bola de carne + + + Este reluciente artefacto genera un campo de baja gravedad. Los stalkers lo utilizan mucho en conjunción con el Gravi, otro artefacto similar, para aumentar su capacidad de carga. Emite radiación. + + + Estrella nocturna + + + Artefacto orgánico único con propiedades igualmente singulares. De algún modo aumenta la tasa de recuperación del cuerpo para sanar cualquier tipo de daño sin acelerar la acumulación de toxinas. Debido a su eficacia y su aspecto llamativo, es un valioso objeto de coleccionista. Emite radiación. + + + Alma + + + Este estrafalario artefacto aparece en lugares de actividad gravitatoria incrementada. Actúa como una esponja que absorbe elementos radiactivos; ofrece protección contra radiaciones externas y contra las partículas radiactivas que ya se hayan introducido en el cuerpo. + + + Torcedor + + + Brújula + + + Artefacto muy poco común (hace varios años que no se ve ninguno). Puede usarse para detectar brechas en campos de anomalías. Se cree que sirve para atravesar las anomalías más complejas sin sufrir daño alguno. Sin embargo, casi nadie sabe utilizarlo correctamente. + + + Corazón del Oasis + + + Este artefacto se encontró en el centro del legendario Oasis. Parece ser una planta cristalizada que ha adquirido las propiedades curativas del Oasis. Sin embargo, a diferencia del propio Oasis, este artefacto es extremadamente radiactivo. + + + La Luciérnaga altera campos desconocidos por la ciencia para acelerar la tasa de regeneración de los tejidos y órganos de los seres vivos, además de normalizar sus procesos metabólicos. Este artefacto puede curar a un stalker gravemente herido en cuestión de segundos. Por desgracia, es extremadamente escaso. Emite radiación. + + diff --git a/gamedata/configs/text/spa/st_items_equipment.xml b/gamedata/configs/text/spa/st_items_equipment.xml new file mode 100644 index 0000000..4ccc00d --- /dev/null +++ b/gamedata/configs/text/spa/st_items_equipment.xml @@ -0,0 +1,156 @@ + + + + Drogas antirradiación + + + Las drogas antirradiación de mexamina son muy comunes en la Zona. Cuando se usan, inducen una vasoconstricción periférica y privación de oxígeno, lo que ayuda a tratar y prevenir la exposición a la radiación. No tienen efectos secundarios graves, aunque pueden darse casos aislados de náuseas, mareos, calambres y dolores estomacales. + + + Venda + + + Venda elástica normal que detiene hemorragias y evita que las heridas se infecten. Si se trata de una hemorragia normal, basta con aplicar cuidadosamente el vendaje sobre la herida. Si es una hemorragia arterial, debe atarse rápidamente alrededor de la zona afectada. + + + Prismáticos militares reglamentarios con una ampliación máxima de 7.5 aumentos. Son muy útiles en la Zona, ya que permiten al usuario observarlo todo desde una distancia prudencial. + + + Prismáticos + + + Pan + + + No se conoce de la existencia de ningún panadero en la Zona, pero este pan no está contaminado ni es radiactivo; no solo está fresco, sino que es comestible. Hasta ahora no se ha quejado nadie. + + + Lata de "Desayuno para turistas" + + + Supuestamente, esta comida enlatada la saquearon unos stalkers de un almacén de suministros militares; es difícil decirlo, ya que no tienen etiqueta. Pero si la fecha de caducidad es correcta, aún se puede comer. + + + Detector Eco + + + Este anticuado detector de actividades anómalas emite una señal de alarma cuando capta partículas anómalas. Puede registrar la presencia de artefactos y medir la distancia a la que se encuentra el más cercano variando la frecuencia del sonido emitido por el detector. Para activar la modalidad de búsqueda de artefactos, basta con abrir el panel frontal. Debido a la sencillez de su diseño, este detector solo sirve para encontrar los artefactos más comunes. + + + Detector "Oso" + + + Detector Veles + + + Escáner detector científico de alta tecnología. Con sus tres cámaras de detección modernizadas, registra la posición de los artefactos en una pantalla especial. Cuando está cerrado, el dispositivo solo capta radiación y anomalías. Para activar la modalidad de búsqueda de artefactos, basta con abrir el panel frontal. En modo búsqueda, puede localizar todos los artefactos conocidos por la ciencia. + + + Prototipo de detector Svarog + + + Prototipo de escáner de anomalías de funcionalidad mejorada. Este dispositivo incluye un programa en su base de datos que identifica zonas estáticas de actividad anómala y localiza artefactos. La posición de estas zonas anómalas y artefactos se muestra en una pantalla especial. El modo de búsqueda de artefactos, que puede activarse abriendo el panel frontal, ha sido modificado para detectar formaciones anómalas actualmente desconocidas para la ciencia. + + + Linterna estándar acoplada a la cabeza. Es muy práctica para los stalkers a quienes sorprende la noche en el exterior, pero si no se utiliza con precaución puede llamar la atención de compañía no deseada. + + + Linterna + + + Anabióticos + + + Antídoto + + + La antitoxina IP2 es una droga compleja compuesta por varios antídotos, incluidos metoclopramida, piridoxina, tiamina, riboxina y otros productos farmacéuticos. Se usa para inyectar en el torrente sanguíneo una dosis de antibióticos que neutralizan venenos naturales e inhiben los artificiales. La IP2 no es muy popular en la Zona, ya que la mayoría de los stalkers utilizan máscaras de gas y trajes protectores, pero algunos guardan a buen recaudo un paquete de este antídoto. Sus efectos son duraderos. + + + Hércules + + + Vinca + + + Vikasolum ucraniano, el equivalente artificial de la vitamina K. El principal propósito de esta droga es incrementar la velocidad de coagulación de la sangre. Tiene mucha demanda entre los stalkers que quieren curarse cuanto antes de las heridas y laceraciones causadas por los mutantes. Los efectos de esta droga son duraderos. + + + Inhibidor psíquico + + + Droga que bloquea los impulsos nerviosos más impetuosos. Su consumo causa una pérdida emocional a corto plazo. Se usa exclusivamente en la Zona para contrarrestar los efectos de campos psíquicos anómalos. Los efectos de esta droga son duraderos. + + + Radioprotector + + + Bebida energ. de stalker + + + Usada por los stalkers en viajes largos sin oportunidad de descanso. Contiene carbohidratos de fácil digestión y drogas que estimulan la liberación de adrenalina en el torrente sanguíneo. + + + Una guitarra fiable. + + + Guitarra + + + Salchicha dietética + + + Para bien o para mal, esta salchicha de pollo y sucedáneo de soja suele ser desayuno y cena de un stalker, todo en uno. Gracias a su elevado contenido en conservantes puede conservarse durante mucho tiempo. + + + Botiquín de primeros auxilios + + + Botiquín militar + + + Botiquín especializado para practicar primeros auxilios a los heridos en combate. Incluye coagulantes con base de menadiona, analgésicos, antibióticos e inmunoestimuladores, así como instrumental para extraer balas y esquirlas del cuerpo. Es equipo reglamentario estándar del ejército, y a menudo lo utilizan las fuerzas de Deber. + + + Botiquín de un solo uso. Útil para tratar diversas heridas: laceraciones, magulladuras, quemaduras (normales o químicas) y varios tipos de envenenamiento. Tiene mucha demanda entre los stalkers. + + + Botiquín científico + + + Botiquín diseñado específicamente para la Zona. Incluye productos para el tratamiento de heridas, la prevención de envenenamiento radiactivo y la reducción del nivel de radiación presente en el organismo. A diferencia de otros botiquines, éste contiene vikasolum, batilolum y nafazolina. + + + No hay datos almacenados. + + + PDA + + + Vodka "El cosaco" + + + Destilado por GSC. Entra con suavidad y reduce considerablemente los efectos de la radiación. Debe disfrutarse con moderación. + + + Este novedoso detector de anomalías se usa para localizar formaciones anómalas y tiene un panel frontal de diodos que no solo indica su posición, sino que mide la distancia a la que se encuentran. Para activar la modalidad de búsqueda de artefactos, basta con abrir el panel frontal. Por desgracia, el dispositivo está programado con una lista anticuada de artefactos detectables. + + + Droga experimental desarrollada por el profesor Ozersky para equipos de investigación científica de la Zona. Contiene tetrodotoxina, conocida coloquialmente como "polvo zombi" debido a que inhibe completamente el sistema nervioso central del sujeto, permitiéndole sobrevivir a las emisiones sin protección. La droga no ha sido sometida a pruebas clínicas ni de campo, por lo que su eficacia es dudosa y es posible que tenga efectos secundarios. + + + Rayo + + + El principal componente de este producto es un andrógeno anabólico, un esteroide artificial de composición química parecida a la de la testosterona. Desarrolla los músculos, alivia la fatiga y mejora la circulación. Los stalkers suelen usarlo en incursiones largas para poder cargar con más peso. Los efectos de esta droga son duraderos. + + + Radioprotector Indraline B190, incluido en botiquines para el personal de centrales nucleares. En la Zona se utilizaba en lugar del hidrocloruro de cistamina, muy tóxico, pues su consumo repetido podía causar la muerte. Reduce los efectos de la radiación gamma en tejidos vivos. Es mejor ingerirlo antes de la exposición; sus efectos no son instantáneos, sí duraderos. + + + Harmónica + + + Para los amantes del blues y los románticos de la cárcel. + + diff --git a/gamedata/configs/text/spa/st_items_outfit.xml b/gamedata/configs/text/spa/st_items_outfit.xml new file mode 100644 index 0000000..88d7920 --- /dev/null +++ b/gamedata/configs/text/spa/st_items_outfit.xml @@ -0,0 +1,117 @@ + + + + Blindaje personal CS-3a + + + Blind. Deber PSZ-9d + + + PS5-M Protección universal + + + Exoesqueleto + + + Traje blindado Bulat + + + Este exoesqueleto ofrece una protección extraordinaria contra proyectiles y metralla a costa de sacrificar movilidad. Es vulnerable a la munición perforante. + + + Exoesqueleto + + + Traje blindado militar diseñado para operaciones de asalto. Ofrece una protección extraordinaria contra proyectiles de chaqueta metálica y metralla sin reducir la movilidad del usuario. Es vulnerable a la munición perforante. + + + Traje blindado militar + + + Gabardina de cuero negro normal y corriente. Su única función es abrigar al usuario por las noches o protegerlo del ocasional mordisco de perro. Aunque no es particularmente cómoda, los bandidos de la Zona suelen utilizarla a menudo porque les permite ocultarse en la oscuridad (o sencillamente porque mola más). + + + Gabardina de cuero + + + Traje SEVA + + + Traje blindado Berill-5M + + + Casco Sphere M12 + + + Casco de aluminio/titanio con cobertura de tela y capacidad para acoplar piezas metálicas adicionales y una máscara protectora. El Sphere M12 suele usarse en combinación con blindajes de Spetsnaz de la gama PSZ. Es muy popular en la Zona por su respirador y su dispositivo integrado de visión nocturna, además de ofrecer la mejor protección posible para la cabeza. Dispone de ranuras para dispositivos electrónicos. + + + Casco de acero + + + Casco militar terriblemente desfasado sin ningún aditamento. No ofrece protección contra anomalías ni radiación, pero puede desviar balas. Este casco nunca ha sido muy popular en la Zona, salvo en breves conflictos armados entre facciones. + + + Casco hermético + + + Casco ligero con un visor de cierre estanco diseñado como protección contra anomalías. A juzgar por su diseño, ha sido fabricado por los mismos Institutos de Investigación para la Defensa que hicieron el traje SEVA. Podría estar diseñado para usarlo en combinación con trajes militares en operaciones en zonas llenas de anomalías. + + + Máscara de gas + + + Máscara de gas corriente de plástico y goma, utilizada para filtrar el aire de partículas radiactivas y sustancias venenosas. Muy usada por novatos y veteranos de todas las facciones por su funcionalidad universal. No ofrece ninguna protección física. + + + Casco táctico + + + Modelo occidental de casco táctico sin camuflaje. Nadie sabe cómo llegó a la Zona. Ha sido diseñado para proporcionar superioridad estratégica a un líder de escuadrón sobre sus enemigos mediante numerosos dispositivos de rastreo y comunicación vía satélite, aunque en este en particular no han sido instalados. Posee varias capas de kevlar y componentes blindados para proteger sus sistemas electrónicos. Incluye respirador y dispositivo de visión nocturna de primera generación. + + + Traje Amanecer + + + Traje de guardia de Libertad + + + Este traje ligero de stalker ha sido fabricado por los artesanos de Libertad. El tejido ha sido tratado con Horizonte, una solución especial desarrollada por la facción a base de ensayo y error que incrementa su resistencia contra anomalías. Al igual que el traje Amanecer, el Viento de Libertad dispone de blindaje integrado y cavidades para artefactos. + + + Traje Viento de Libertad + + + Versión moderna del blindaje estándar de Deber, mejor equipada para los reclutas stalkers acostumbrados a las protecciones livianas. A diferencia de la gama PSZ, este blindaje ofrece buena protección contra anomalías y además puede detener una bala de pistola. No puede modificarse para añadirle un contenedor para artefactos, pero sí un sistema de apoyo para combate. + + + Este traje blindado militar está diseñado para operaciones de asalto en zonas de anomalías. Está formado por un traje blindado pesado PSZ-12p, un compensador integrado y una malla de protección. El blindaje proporciona una protección excelente contra balas y metralla, sin reducir demasiado la movilidad. No dispone de contenedores para artefactos. + + + Este traje, diseñado para realizar investigaciones en la Zona, combina un módulo respiratorio de ciclo cerrado y una capa de aislamiento externa que ofrece una protección excelente contra las anomalías. Dado que apenas protege de los impactos físicos, este traje no sirve de gran cosa contra balas y metralla. Dispone de un contenedor para artefactos. + + + Este traje, fabricado por uno de los Institutos de Investigación para la Defensa de Kiev, es una buena alternativa a otros improvisados. Aunque el blindaje integrado solo es capaz de detener balas de pistola, la protección contra anomalías y radiación es de las mejores. Es modificable y dispone de dos contenedores para artefactos. Es el favorito de muchos stalkers. + + + Este objeto incluye un blindaje personal de gama PS5 con rociador de berilio modificado para su uso en la Zona. Se ha diseñado para operaciones de asalto en zonas muy radiactivas, pero es muy poco eficaz en zonas con elevada actividad anómala. El traje llega a manos de los stalkers por el ejército, que los canjea por botines. No dispone de contenedores para artefactos. + + + Este traje de stalker, fabricado por amantes del bricolaje, es una combinación de material recauchutado, un revestimiento de plexiglás y un blindaje personal integrado. Aunque ni siquiera protege al usuario de balas de pistola, es muy popular por su bajo coste y posibilidades de modificación. Dispone de contenedores para artefactos. + + + Este traje de stalker, reforzado con un blindaje fabricado por artesanos de Libertad, combina funciones de combate y protección contra anomalías. Dispone de varias placas de blindaje y capas de kevlar que pueden detener una bala de pistola. El traje utiliza el raro y costoso compuesto Soberano para proteger contra anomalías. Dispone de contenedor para artefactos. + + + Esta versión antigua del traje de Deber es el blindaje Spetsnaz PSZ-9 modificado para la Zona. El traje puede detener una bala de fusil, pero tal grado de protección se paga con su peso, su volumen y su escasísima protección contra anomalías. No puede modificarse para añadirle una contenedor para artefactos, pero sí un sistema de apoyo para combate. + + + Utilizado anteriormente por escuadrones de asalto de Cielo Despejado. Tras la desaparición de esta facción, el blindaje sirve como recordatorio de que ni el mejor de los trajes protectores garantiza la seguridad a este lado del perímetro. Es capaz de detener una bala de pistola y de proteger a su portador de las anomalías. Dispone de contenedor para guardar artefactos. + + + Prototipo experimental de exoesqueleto militar. No llegó a fabricarse en serie por su elevado coste y defectos de diseño. Se sigue demandando gracias a su habilidad para soportar el peso del equipo transportado. Por eso, en ciertas instalaciones subterráneas del exterior de Ucrania se produce en pequeñas cantidades. Dispone de un contenedor para artefactos. + + + Traje SEVA + + diff --git a/gamedata/configs/text/spa/st_items_quest.xml b/gamedata/configs/text/spa/st_items_quest.xml new file mode 100644 index 0000000..91c3c10 --- /dev/null +++ b/gamedata/configs/text/spa/st_items_quest.xml @@ -0,0 +1,369 @@ + + + + Documentos con notas + + + Según los documentos, la orden del Departamento 1 de sellar la cerradura de transporte hizo que el paso subterráneo Pripyat 1 quedase inundado por una mezcla de dióxido de carbono y algún tipo de aditivo químico. En consecuencia, todo el personal debía vestir trajes de protección química con módulos respiratorios de ciclo cerrado. + + + Carta sobre envíos del objeto 62 + + + "Debido a la actividad de las anomalías, el transporte del objeto 62 al aire libre no es factible. Utilicen el paso subterráneo Pripyat 1 para la entrega. Se ha enviado al Departamento 1 el plan de entrega y el subsiguiente sellado del paso." + + + Carpeta con la orden + + + Los documentos mencionan la evacuación del personal de la central de Júpiter a unos laboratorios subterráneos. Supuestamente, este asunto se discutió en la sección del laboratorio. + + + Programa de entregas + + + "Programa de entregas del objeto 62: 07/14 – 20 unidades (una dañada); 07/21 – 32 unidades (2 dañadas); 07/28 – 26 unidades (una dañada). El talón de expedición sobre las unidades perdidas durante el transporte ha sido enviado al encargado de la central con copia al taller de reparaciones." + + + Hoja de libreta + + + Se ha tomado la siguiente decisión en la reunión: el departamento de entregas debe concentrarse en la evacuación del objeto 62. + + + Registro de actividades de Deber + + + "...18:30 – Completado cierre hermético de secciones del paso P-1. 19:00 – Completado cierre hermético de puertas del ferrocarril. Hubo que soldar puertas para sellarlas. 19:45 – Cerradura de transporte sellada. Se activó el generador de emergencia para operar el mecanismo de la cerradura de transporte porque el suministro de energía al paso subterráneo se había cortado. 20:00 – El laboratorio químico ha comenzado a bombear gas al paso. 22:00 – Completado sellado del paso subterráneo, documentos enviados al Departamento 1." + + + Plano del paso subterráneo + + + Plano del paso subterráneo Pripyat 1 que lo ubica bajo la ciudad de Pripyat. El documento tiene varias anotaciones: 1. Sellar cerradura de transporte. 2. Liberar el gas del laboratorio químico para sellar el paso. + + + Aislante alterado + + + Antes esto era un aislante, pero ahora casi se ha convertido en un artefacto inestable. Es probable que sea la fuente de las emisiones psíquicas intermitentes. + + + Lata de colofonio + + + Lata de colofonio utilizado para soldar. Es bastante raro en la Zona, lo que explica por qué los técnicos locales suelen utilizar cinta aislante para reparar el equipo averiado. + + + Paquete de condensadores + + + Un paquete de condensadores, componentes eléctricos básicos muy abundantes en la Zona porque se utilizan para mejorar artículos tecnológicos, aunque normalmente no se necesita esta capacidad. + + + Base de textolita + + + La textolita es uno de los componentes básicos de los circuitos impresos. La sensación de un técnico radioaficionado en relación con la textolita intacta es similar a la experimentada por un escritor ante una hoja de papel en blanco. + + + Caja de transistores + + + Una caja de transistores, semiconductores que generan, transforman y amplifican oscilaciones eléctricas. Los transistores son el sueño de todo técnico de radio de la Zona. + + + Bobina de alambre de cobre + + + El alambre de cobre es un conductor excelente y, al mismo tiempo, sirve como fuente de metal bajo de ley. Debido a esto último, estos alambres escasean mucho en la Zona. Todas las reservas de este material fueron encontradas, fundidas y enviadas a centros de reciclaje en la década de los 90. + + + Escáner detector de mutantes + + + Este dispositivo, basado en un escáner de actividad anómala ordinario, se ha combinado con un sensor detector de mutantes de corto alcance y un dispositivo de registro para almacenar resultados. Viene equipado con un interruptor de desactivación automática que se acciona tras recoger una determinada cantidad de datos. + + + Documentos administrativos + + + Una carpeta de documentos que contiene datos puramente administrativos. Según los documentos, toda la información técnica relacionada con el objeto 62 se envió al taller de pruebas por orden del laboratorio central. + + + PDA de Negro + + + Un mensaje que destaca entre los demás. El remitente es alguien llamado Chacal y dice así: "Mi contacto en el instituto de investigación recomienda que dirijas la expedición. Tendrá que contratar a tus chicos para proteger el búnker. Así lo tendrás todo más fácil. Recuerda, el cliente no quiere que los científicos consigan NINGUNA información sobre el manejo de los objetos clasificados como X. De ser así, no podremos abandonar la Zona. No me decepciones, Negro." + + + Caja negra + + + La caja negra del Pez Raya 1, intacta tras el accidente. Debería contener datos codificados sobre los últimos minutos de vuelo del aparato. + + + Explosivo plástico militar con un temporizador de 5 segundos. + + + Explosivos con temporizador + + + Rueda manipulada + + + PDA de Snag + + + La PDA contiene un mapa con una marca junto a la subestación que señala la existencia de un escondite, además de un par de fotos eróticas. Nada especial. + + + PDA de bandido + + + El último mensaje de la PDA dice así: "Coge a ese cabrón de Snag y tráelo aquí; tenemos cuentas pendientes que saldar. Me da igual dónde esté, encuéntralo. Y si ofrece resistencia, dale una lección. Sultán". + + + Esta PDA contiene detalles sobre clientes de Morgan, así como las coordenadas del almacén secreto de Deber del que sustrajo armas. Morgan vendió esas armas a mercenarios y contactó con alguien llamado Sultán. Para cubrir su rastro, decidió revelar la ubicación del almacén a Libertad. Su cómplice, Buitre, debía transmitirles esta información. La PDA menciona la existencia de un sensor que solo Morgan puede desactivar, y que alertará a Deber si alguien entra en el escondite. Esta información es de gran interés tanto para Deber como para Libertad. + + + PDA de Morgan + + + Hay una nota en el dorso de un antiguo documento: "Ghost, me llevo mis cosas. Gracias por el fusil de asalto, voy a necesitarlo. A cambio, te dejo algunos suministros médicos de Doctor. He logrado atrapar al mercenario que me seguía el rastro, así que ya no me hacen falta... espero. Voy a reunirme con Fang; ha logrado montar el descodificador. Si sales de ésta, nos encontraremos donde siempre. Strelok". + + + Nota para Ghost + + + Una nota en una hoja cuadriculada: "Strelok, he dejado el otro descodificador en nuestro escondite de Pripyat por si acaso. Ghost y yo nos vamos a Agroprom, así que dejamos aquí la munición que nos sobra. Cógela si la necesitas. ¡Buena caza! Fang." + + + Nota para Strelok + + + Hay una nota en el dorso de un antiguo documento: "Fang, no puedo seguir esperándote, hay todo un escuadrón pisándome los talones. Me voy solo al sarcófago. Te dejaré aquí mi arma de la suerte; de todos modos ya no me queda munición. Si no consigo regresar, dásela a Ghost. Si la cuida bien, ella cuidará de él. Cuídate tú también. Strelok". + + + Nota para Fang + + + Un módulo de memoria del aparato no tripulado. Novikov lo ha desbloqueado, así que ya tienes acceso a la información recopilada por el aparato. Entre otras cosas, contiene las coordenadas de tres radiofaros. + + + Módulo de memoria desbloqueado + + + Un módulo de memoria del aparato no tripulado. Sigue operativo a pesar del accidente, pero por desgracia está bloqueado. + + + Módulo de memoria bloqueado + + + Una vieja hoja de papel con la lista de turnos del centinela y los números 1421 debajo. Alguien ha escrito encima con un rotulador: "Teniente V. I. Sokolov. Tras el choque del helicóptero procedí al punto de evacuación B205. No se han efectuado intentos de evacuación en dos días, y es muy arriesgado mantener esta posición. Por tanto, he decidido abandonar el B205 y dirigirme al laboratorio móvil de la expedición científica. El laboratorio está al noreste del punto de evacuación." + + + Nota de Sokolov + + + Una planta que formaba parte de una arboleda, pero que ha sido transformada parcialmente por una anomalía. La arboleda reaccionó agresivamente a la intrusión, pero por ahora la planta parece inofensiva. + + + Planta anómala + + + El último mensaje recibido en la PDA es de Morgan. Básicamente, es un contrato para asesinar a un stalker llamado Degtyarev. Hay varias fotos adjuntas. Las últimas instrucciones de Morgan son borrar el mensaje después de haberlo leído. + + + PDA de mercenario + + + Este estuche contiene un detector de artefactos, una batería y un potente transmisor. El dispositivo escanea anomalías para determinar la cantidad y el tipo de artefactos que aparecerán. Toda esta información se transmite automáticamente al búnker de los científicos. + + + Escáner de actividad anómala + + + La última grabación de sonido de la PDA dice: \n"... Vayamos a donde vayamos, siempre acabamos en el mismo sitio. No hay forma de acostumbrarse a esta niebla... Es muy raro, Chepurny desapareció sin dejar rastro. ¿Habrá encontrado el modo de salir?... \nDía seis... No tenemos agua... El coronel ha perdido la chaveta, disparó a dos de los nuestros a quemarropa y se suicidó... Ahora estoy solo en esta maldita anomalía... Si no hubiera saboteado las comunicaciones con el cuartel general, podrían habernos rescatado... y Deber jamás habría existido. Me pregunto cómo habría ido todo... Bah, que le den. Ese capitán Tachenko murió hace mucho... y el general Tachenko de Deber seguirá sus pasos... Creo que es lo justo..."\nSe oye un disparo y la grabación termina. + + + PDA del general Tachenko + + + El manual describe cómo se usa el objeto 62. Las instrucciones hacen especial hincapié en que no se deben hacer ajustes por la trayectoria de la bala ni el viento, ya que no son factores importantes dentro del alcance efectivo del arma.\nEstos documentos no deben caer en manos ajenas, pues serían de gran interés para los analistas de la USS. + + + Manual del objeto 62 + + + La libreta contiene una descripción detallada del experimento de evaluación del efecto de un campo psíquico sobre un objeto en otro hemisferio. Un grupo de científicos del Caribe recibió la señal, pero estaba distorsionada. Había sido alterada de algún modo, como si alguien la hubiese corregido. Una posible explicación es que la teoría de la noosfera es correcta y los cambios se deben a ella.\nEstos documentos no deben caer en manos ajenas, pues serían de gran interés para los analistas de la USS. + + + Libreta con la descripción de un experimento + + + Estos documentos describen las prestaciones de la antena y su diferencia con los valores planificados. Hay una nota en el lado opuesto en la que se indica que los documentos fueron preparados en el laboratorio X10.\nEstos documentos no deben caer en manos ajenas, pues serían de gran interés para los analistas de la USS. + + + Emisor Arco Iris: prestaciones técnicas + + + Estos documentos hacen referencia a uno de los hallazgos paralelos de la investigación, concretamente al descubrimiento de que las criaturas vivas pueden generar emisiones psíquicas dirigidas. Como parte de la investigación llevada a cabo por el laboratorio X16, se cultivó un emisor de campo biológico (un cerebro gigante, básicamente).\nEstos documentos no deben caer en manos ajenas, pues serían de gran interés para los analistas de la USS. + + + Documentos de investigación + + + El informe detalla el estudio de las muestras biológicas enviadas por el laboratorio X18. Fueron sometidas a efectos de campos informativos de distinta intensidad. El informe describe meticulosamente la mutación de organismos vivos tras su exposición a las emisiones.\nEstos documentos no deben caer en manos ajenas, pues serían de gran interés para los analistas de la USS. + + + Informe sobre el estudio de las muestras + + + El documento hace referencia al traslado del equipo de investigación y de todo el material a otro laboratorio llamado X7, en el que se investigará todo lo relacionado con la influencia de la noosfera. El equipo de investigación está formado por N. A. Lebedev, E. F. Kalancha y V. I. Suslov.\nEstos documentos no deben caer en manos ajenas, pues serían de gran interés para los analistas de la USS. + + + Orden de transferencia + + + La última anotación de la PDA dice así: "He encontrado el generador de emergencia en la sexta planta, la sección técnica. He tardado dos horas en conseguir que funcione otra vez. Me encantaría encenderlo, pero Serbin me ha ordenado que espere hasta que traiga más gente". + + + PDA de Barchuk + + + Una llave magnética roja etiquetada como X8. + + + Llave de acceso X8 roja + + + La PDA contiene muchas anotaciones sin interés, pero una de ellas destaca entre las demás: el Monolito se comunica con el destinatario para ordenarle que consiga munición sobrante y la almacene en lugares ocultos a los no creyentes. Éstos deben señalarse con la marca del Monolito. En tiempos difíciles, los seguidores del Monolito se beneficiarán de su sabiduría... He comunicado la voluntad del Monolito a mis hermanos y les he dicho dónde han de guardar la munición..." + + + PDA de soldado de Monolith + + + Juego de herramientas infantiles. No sirve para trabajos de precisión, pero dada la escasez de herramientas en la Zona, podría resultar de utilidad para un técnico ahorrativo. + + + Herramientas para tareas básicas + + + Un juego de herramientas bastante completo. Parece cuidadosamente preparado por un técnico experto. A pesar de su antigüedad, las herramientas parecen en buen estado. + + + Herramientas para tareas de precisión + + + Un juego de herramientas profesionales para realizar ajustes en maquinarias. La nota que hay sobre el estuche indica que se fabricaron en Alemania. Contiene todo lo necesario para realizar casi cualquier ajuste y calibración. + + + Herramientas de calibración + + + Vieja llave magnética + + + La llave magnética de Cardán. Se utilizó para acceder al taller de pruebas del objeto 62. + + + Documentos sobre el objeto 62 + + + Describen el funcionamiento y las características técnicas del dispositivo electromagnético.\nHay una nota en los documentos en la que pone: "Estos documentos deben devolverse al X8, el laboratorio central. Tengo cosas que hacer; deberás entregarlo tú mismo. Utiliza la llave magnética en la estación de servicio de Pripyat Yubileiny para bajar al segundo piso del complejo subterráneo; te las apañarás desde allí. Adjunto tarjeta de acceso.\nN. Lebedev"\nEstos documentos no deben caer en manos ajenas; serían de gran interés para analistas de la USS. + + + Llave de acceso X8 amarilla + + + Orden n.º 562 + + + Orden interna n.º 423 + + + Llave A + + + Una llave normal etiquetada con la letra "A". + + + Llave B + + + Una llave normal etiquetada con la letra "B". + + + Una de las grabaciones parece especialmente descabellada: "¡Así que ahí es donde están esos putos mutantes! Se escaparon a la meseta pensando que Noé no los pillaría... No podían saber que he descubierto un atajo por la granja del norte. ¡Os vais a enterar, capullos!" + + + PDA de Noé + + + La libreta contiene mucha morralla, pero uno de los mensajes parece importante:\n"Montad un campamento junto a la planta de tratamiento de basura y todo el que vaya a participar en este trabajo se unirá a vosotros. No esperéis a Negro, él y los suyos estarán en Júpiter con otra misión. El ejército ha cancelado todos los vuelos hacia la Zona, así que un problema menos. Cuando los stalkers encuentren el modo de entrar en Pripyat, enviaremos un guía y el equipo del cliente nos dirá dónde está el laboratorio.\nChacal". + + + Libreta de mercenario + + + El último mensaje dice así:\n"Nos lo estamos pasando en grande junto a unos viejos talleres. He enviado a dos de mis muchachos a explorar el terreno para ti. Aunque pensándolo mejor, esperaremos aquí hasta que aparezca el mensajero del cliente; aquí el aire es más fresco.\nTesak" + + + PDA del mercenario Hook + + + PDA del mercenario Ridge + + + Una lata de un peligroso agente químico nervioso. + + + Lata de gas Perin B3 + + + La caja está cerrada y tiene una ingeniosa cerradura instalada. Hay algo dentro, a juzgar por su peso y por el ruido que hace al sacudirla. + + + Caja de acero + + + Nota en la PDA: "Estoy seguro de que el artefacto está en el árbol. Puedo subirme a él desde la colina, pero espero no encontrarme con mutantes. Es una pena que haya venido aquí solo, después de discutir con Cardán y Barge. Pero cuando regrese con el artefacto, les demostraré que tenía razón..." + + + PDA de Bromista + + + La última nota de la PDA deja claro que la persona que la escribió estaba molesta: "Cardán, ese viejo borracho. En cuanto toma una copa se convierte en un puto vago: “mejor nos tomamos todo con calma”, pero luego nos dice a Bromista y a mí que somos jóvenes y que no tenemos ni idea... Ja... Bromista es también una joya: de repente se enfada, coge su bolsa y desaparece. Mientras estaba intentando calmar a Cardán, se marchó a saber dónde. ¿Qué se supone que podía hacer yo? ¿Emborracharme con ese vejestorio? ¡No, gracias! Su vodka es un asco..." + + + PDA de Barge + + + Tremor tenía un diario en su PDA y su última entrada es la más interesante: "Grabación 12. Mi investigación está a punto de concluir... En el campamento comienzan a sospechar algo. Urogallo y Danila quieren cazar a los chupasangres. ¿Cuándo entrarán en razón? Necesito ordenar las probetas de sangre para encontrar las infectadas y esconder las otras... [rápido:] Viene alguien. [se detiene la grabadora y se vuelve a encender]. Grabación 13... probablemente la última. Primero ese cazador metomentodo y ahora Urogallo... No creo que me libre de ésta, vendrán a por mí, lo sé. Da igual: esta adicción a la hemoglobina me matará más tarde o más temprano. Prefiero morir de un balazo". + + + PDA de Tremor + + + Alto secreto. Orden n.º 562 del comandante del cuartel general encargado de la seguridad del objeto n.º 1 R. Yu. Didenko.\nLa unidad de protección química n.º 423 debe trasladarse del sector B103 al A19 para realizar pruebas con solución química Perin B3 en combate. El coronel P. P. Slavin, comandante de la unidad, es el responsable de las pruebas. El teniente coronel K. S. Valov, segundo al mando, es responsable del transporte y la seguridad. + + + Alto secreto. Orden del coronel P. P. Slavin.\nSegún esta orden, los miembros de la unidad de protección química n.º 423 deben familiarizarse con la siguiente información:\n1. Las llaves del contenedor de la solución química Perin B3 obran en poder del coronel P. P. Slavin (llave A) y el teniente coronel K. S. Vlasov (llave B).\n2. Orden del convoy, empezando por delante: vehículo del segundo al mando, vehículo de escolta n.º 8, transporte blindado n.º 1, vehículo de transporte n.º 1, transporte blindado n.º 3, vehículo de escolta n.º 2, vehículo del comandante de la unidad (P. P. Slavin).\nDeben entregarse copias de esta orden al teniente coronel K. S. Vlasov y al teniente mayor R. B. Nazarenku. + + + Una llave magnética amarilla etiquetada como X8.\nNadie debe apoderarse de ella, ya que permite acceder al laboratorio secreto. + + + PDA del mensajero de Sultán + + + El último mensaje enviado desde esta PDA es un archivo de sonido: "Sultán, le he dado una buena tunda a ese pardillo. ¡No volverá a darnos la lata!". + + + Antes era la rueda de la planta de dragado, pero ahora casi se ha convertido en un extraño artefacto. No posee propiedades notables, aparte del brillo que emite y de un poco de radiactividad. + + + El mensaje de la bandeja de entrada dice así:\n"He logrado arreglar el tema de las armas, y ese capullo avaricioso nos va a vender el material de su facción. Va a ser bastante barato, pero tendremos que ir echando leches a Júpiter.\nBuitre". + + diff --git a/gamedata/configs/text/spa/st_items_weapons.xml b/gamedata/configs/text/spa/st_items_weapons.xml new file mode 100644 index 0000000..e53f1dd --- /dev/null +++ b/gamedata/configs/text/spa/st_items_weapons.xml @@ -0,0 +1,567 @@ + + + + Munición de ACP .45 + + + El proyectil de calibre .45 de chaqueta metálica ha gozado de gran popularidad desde hace más de cien años gracias al gran peso de la bala y a su relativamente escasa carga de propulsión. El proyectil es algo lento, pero muy preciso y con un considerable poder de detención. + + + ACP .45 + + + Munición Hydrashock de ACP .45 + + + Este inusual proyectil de calibre ACP .45 tiene una camisa de punta blanda hueca y cuerpo de acero. Es una combinación de proyectil de punta blanda y perforante, por lo que disfruta de las ventajas de ambos tipos, aunque también sufre sus desventajas. + + + Hydro .45 + + + Munición de perdigones de 12x70 + + + Proyectiles estándar de calibre 12 rellenos con perdigones de 6 mm. Sumamente letales a distancias cortas. Solo pueden usarse con armas no estriadas. + + + Postas de 12x70 + + + Munición de postas de 12x76 + + + Estos pesados proyectiles de postas de calibre 12 suelen utilizarse en caza mayor, pero también son adecuados para otros usos. Más que perforar el blindaje, estos pesados cartuchos lo trituran. + + + Postas de 12x76 + + + Munición perforante de 5,45x39 mm + + + Proyectiles militares perforantes de calibre 5,45x39 7H22 para fusiles automáticos de los países del Pacto de Varsovia. Tienen una punta perforante de aleación dura. Muy eficaces contra blindajes personales. + + + 5,45x39 perforante + + + Munición de 5,45x39 mm + + + Munición militar perforante mejorada de calibre 5,45x39 7H10 para los fusiles automáticos de los países del Pacto de Varsovia. Es más eficaz que la munición de calibre 7,62 por su reducción del retroceso y sus 100 metros adicionales de alcance. + + + 5,45x39 + + + Munición perforante de 5,56x45 mm + + + Munición perforante militar de calibre 5,56x45 de la OTAN, clasificada en su índice SS190/M855, muy utilizada por las agencias de seguridad y servicios especiales occidentales. Eficaz contra blindajes personales. + + + 5,56x45 mm perforante + + + Munición de 5,56x45 mm + + + Munición estándar reglamentaria de la OTAN, de calibre 5,56x45, especialmente diseñada para fuego automático de precisión. Tiene excelentes prestaciones balísticas, pues ha sido diseñada partiendo de proyectiles de caza. Muy conocida por su índice SS109. + + + 5,56x45 + + + Munición de 7,62x54 mm 7H1 + + + Munición de francotirador de calibre 7,62 con una punta de acero diseñada especialmente para el fusil SVD. A diferencia de su equivalente para ametralladoras, la 7H1 proporciona una agrupación más precisa y una capacidad de penetración excelente. + + + 7,62x54 7H1 + + + Munición de 7,62x54 mm PP + + + Munición barata de calibre 7,62 para ametralladoras. Su diseño hace que no sea apta para fusiles de francotirador, por lo que se utiliza únicamente con la ametralladora RP-74. + + + 7,62x54 PP + + + Munición de 9x18 mm + + + Munición de camisa metálica con punta de acero y cuerpo de plomo. Ofrece un buen poder de detención, pero no es eficaz contra blindajes personales. + + + 9x18 + + + Munición 9x18 mm +P+ + + + Esta munición ofrece un poder de detención mejorado y su designación europea +P+ indica que se trata de proyectiles de sobrepresión con un aumento del 30% en la velocidad de disparo. Ineficaz contra blindajes personales. + + + 9x18 +P+ + + + Munición de camisa metálica de 9x19 mm + + + Munición básica de calibre 9x19 y camisa metálica con excelentes características y de producción barata. Es muy popular debido al hecho de que las convenciones internacionales prohíben el uso de munición expansiva en combate. Ineficaz contra blindajes personales. + + + 9x19 de camisa metálica + + + Munición de punta hueca de 9x19 mm + + + Munición de calibre 9x19 de punta hueca con carcasa expansiva que ofrece un gran poder de detención y una baja propensión a los rebotes. Utilizada por la policía y para defensa personal. Ineficaz contra blindajes personales debido a su bajo potencial de penetración. + + + 9x19 de punta hueca + + + Munición de 9x39 mm SP-6 + + + La SP-6 es munición subsónica para fusiles de asalto; tiene punta blanda y un cuerpo de acero macizo que sobresale del casquillo. Requiere el uso de un silenciador para efectuar disparos inaudibles. Utilizado por los servicios especiales de los países del Pacto de Varsovia. Eficaz contra blindajes personales. + + + 9x39 SP-6 + + + Munición de 9x39 mm SP-5 + + + La SP-5 es munición subsónica para fusiles de francotirador con casquillo bimetálico. Su cuerpo de acero tiene un hueco relleno de plomo en la parte posterior. Requiere el uso de un silenciador para efectuar disparos inaudibles. Utilizado por los servicios especiales de los países del Pacto de Varsovia. + + + 9x39 mm SP-5 + + + Baterías + + + Granada de M203 + + + Granada de 40 mm para el lanzagranadas M203. Este proyectil tiene un radio letal de 5 metros. También puede usarse con el lanzagranadas integrado FT-200M. + + + M203 + + + Cohete OG-7V + + + Cohete de fragmentación antipersona para el lanzagranadas RPG-7u. El principal propósito de este cohete es matar enemigos a cubierto que estén fuera del alcance de las granadas de mano. + + + OG-7V + + + Granada de VOG-25 + + + Granada de fragmentación estándar para el lanzagranadas acoplado GP-25 Koster. Este proyectil tiene una zona letal de 5 metros. La granada VOG-25 también puede usarse con el Tunder S14 y el lanzagranadas Bulldog 6 (similar a un revólver). + + + VOG-25 + + + Mira PSO-1m + + + Mira óptica fija de fabricación soviética con zoom de 5.0x y escalado de distancia. Se acopla a las armas mediante una cola de milano, lo normal en los países del Pacto de Varsovia. + + + Mira PSS-2x + + + Mira óptica fija con zoom de 5.0x y un visor térmico integrado para identificar fuentes de calor similares a las del cuerpo humano. Diseñado para las fuerzas especiales. Se acopla a las armas mediante una cola de milano. + + + Mira NSPU-3 + + + Mira fija con zoom de 5.0x, intensificador de imagen y visión nocturna, diseñada para el combate en entornos oscuros. Se acopla a las armas mediante una cola de milano. + + + Mira SUSAT 4x + + + Mira ajustable de largo alcance con zoom de 1.6–4x que dispone de ajuste automático para mejorar la eficacia de los disparos. Se acopla a las armas mediante el riel Picatinny estándar de la OTAN. + + + Mira fija con zoom de 4x producida principalmente en países occidentales. Se acopla a las armas mediante el riel Picatinny estándar de la OTAN. A menudo se usa para fuego de precisión con armas cortas a distancias medias y largas. + + + Mira SUSAT Crepúsculo x1.6 + + + Mira óptica SUSAT de alto contraste con zoom de 1.6x para el combate con poca luz. Se acopla a las armas mediante el riel Picatinny estándar de la OTAN. + + + Mira SUSAT Noche 4x + + + Mira fija con zoom de 4.0x y un dispositivo de visión nocturna para el combate en la oscuridad a larga distancia. Se acopla a las armas mediante el riel Picatinny estándar de la OTAN. + + + Mira SUSAT 1.6x + + + Mira óptica SUSAT con zoom de 1.6x para el combate a corta y media distancia. Se acopla a las armas mediante el riel Picatinny estándar de la OTAN. + + + Mira PSU-1 + + + Mira óptica con zoom de 2.7x para combate urbano a media distancia. Se acopla a las armas mediante una cola de milano. + + + Silenciador + + + Un eficaz silenciador que puede modificarse sobre la marcha según sea necesario. El cuerpo del silenciador que rodea el cañón contiene una fina malla metálica enrollada y la parte frontal está formada por diafragmas metálicos con agujeros para que pase la bala. Incluye adaptadores y selladores para la mayoría de las armas. Normalmente se usa para diezmar las filas enemigas discretamente. + + + Granada F1 + + + Granada de mano defensiva; su metralla puede perforar blindajes personales de grado medio. Su radio letal es de 7 metros. Los stalkers consiguen granadas F1 comerciando con los militares, que justifican su desaparición declarando que las han usado contra mutantes. + + + GP-25 Koster + + + Lanzagranadas de avancarga y disparo único que se acopla bajo el cañón de los fusiles de asalto fabricados por los países del Pacto de Varsovia. El mecanismo de disparo se amartilla solo, tiene un seguro manual y un dispositivo de bloqueo de disparo si se instala incorrectamente. Dispara granadas VOG-25. + + + M203 + + + Lanzagranadas M203 modificado con tres pulgadas menos de longitud. Se acopla a las armas por medio de un riel Picatinny. El mecanismo de acoplamiento puede cambiarse, razón por la cual este lanzagranadas es popular en todo el mundo. + + + Granada RGD-5 + + + Granada de mano ofensiva con un pequeño radio letal de 5 metros. La usan a menudo los stalkers para "ahumar" mutantes debido a su bajo coste. + + + Granada de humo + + + Granada de mano que sirve para desplegar pantallas de humo. Una vez arrojada, la pantalla de humo tarda 10 segundos en formarse. + + + Cuchillo + + + AC-96/2 + + + AKM-74/2 + + + AKM-74/2U + + + Martha + + + Escopeta recortada + + + Escopeta de caza con dos cañones paralelos recortados, más ligera y compacta que una escopeta normal. Es una de las armas más populares entre bandidos porque es fácil de ocultar y extremadamente eficaz a corta distancia. + + + Kora-919 + + + Águila Esteparia + + + Pistola fabricada a mano partiendo del diseño de la Cometa Negra. Sus componentes han sido ajustados hasta alcanzar una precisión increíble en una pistola de estas características. + + + Cometa Negra + + + FT-200M + + + Fora-12 + + + GP37 + + + Fusil Gauss + + + Tunder S14 + + + Este fusil de asalto con lanzagranadas (similar a la gama AKM) se desarrolló para unidades de respuesta rápida. Sus diferencias son la munición de calibre 9x39, el cargador detrás del gatillo y sus opciones de configuración. Es muy apreciado por stalkers militares por su capacidad para matar enemigos con blindajes personales o usando coberturas improvisadas en combate urbano a distancia, además de por su gran poder de detención. + + + Tormenta + + + Versión experimental de un fusil de asalto con lanzagranadas integrado, modificación rusa del Tunder S14 estándar. Ha sido diseñada específicamente para las unidades que operan en la Zona. Es conocido por la gran capacidad de su cargador. + + + HPSS-1m + + + Versión modificada de una pistola de la primera mitad del siglo XX; este modelo es tan fiable, potente y preciso como el original. Las pistolas de este modelo tienen una merecida reputación como las mejores del siglo XX, y tienen mucha demanda en la Zona. + + + IL 86 + + + TRs 301 + + + Víbora 5 + + + Este subfusil se ha hecho popular en todo el mundo gracias a su fiabilidad, sencillez de manejo y precisión. Durante las últimas décadas, el Víbora 5 ha sido utilizado por fuerzas especiales y unidades de policía de todo el mundo. Dada su abundancia en el mercado negro global, no es de extrañar que haya acabado en la Zona. + + + Frasier + + + Prototipo de subfusil basado en el excelente Víbora 5. Diseñado como arma de vanguardia para el combate cuerpo a cuerpo, goza de un calibre superior, mejor precisión y mayor cadencia de disparo. + + + PB-1s + + + RP-74 de Zulu + + + El anterior propietario de esta arma fue Zulu. Presenta ciertas mejoras, como un cargador de más capacidad y un mecanismo retráctil particularmente fiable. Estas modificaciones han aumentado el peso del arma, pero eso no supuso ningún problema para su anterior propietario. + + + PMm + + + PMm honorífica + + + Antigua PMm entregada a Degtyarev como recompensa por "ejecutar con éxito órdenes sumamente peligrosas, así como por su valor y coraje en el cumplimiento del deber". + + + Fulminadora + + + Bulldog-6 + + + Este lanzagranadas con aspecto de revólver está provisto de seis cañones de avancarga y ánima estriada, idénticos al de los lanzagranadas acoplados. El tambor también es de avancarga. Muy utilizado para neutralizar posiciones de fuego enemigas; en campo abierto, también se usa para atacar posiciones fijas artilladas o eliminar monstruos especialmente resistentes. + + + RP-74 + + + Esta ametralladora de cinta es una modificación portátil con un complejo sistema de alimentación de dos fases. A pesar de su baja precisión y excesivo peso, tiene varios admiradores en la Zona. Se utiliza principalmente para rechazar fuerzas enemigas en conflictos entre facciones y para despejar guaridas de mutantes. + + + RPG-7u + + + SIP-t M200 + + + Alpina + + + Modelo exclusivo de la pistola SIP-t M200. Forma parte de una pequeña edición limitada producida para una unidad de fuerzas especiales sin identificar. El modelo dispone de un cargador de gran capacidad, un cañón de acero muy resistente y un receptor de polímero ultraduradero. + + + SGI-5k + + + Fusil de asalto relativamente nuevo que ha despertado admiración en todo el mundo, pese a no tener un diseño muy "moderno". Las armas de esta gama se encuentran entre las mejores de su clase, y son conocidas por su fiabilidad, precisión y sencillez de manejo.Aunque es difícil de encontrar en la Zona, los stalkers más experimentados pagan grandes sumas de dinero para encargarlos al exterior. + + + SGI-5k de Strelok + + + Fusil de asalto SGI-5k de factura suiza. Aunque no es nuevo, resulta evidente que su anterior propietario lo ha cuidado mucho: el arma ha sido desmontada y vuelta a montar con todos los componentes mejorados y ajustados para optimizar su rendimiento y aumentar su poder de detención. Han grabado la letra "S" en la culata, junto a 16 muescas. + + + SPSA-14 + + + SPSA-AUT + + + La escopeta SPSA-AUT de amartillado automático solo se fabrica en los talleres de Deber. Está pensada para eliminar grupos numerosos de mutantes. Su mecanismo de alimentación mejorado garantiza una elevada cadencia de disparo, y la capacidad de su cargador se ha incrementado a 10 proyectiles. Dispara munición de calibre 12x70. + + + Mosquetón + + + Escopeta militar diseñada específicamente para unidades de asalto partiendo del modelo SPSA-14. Puede efectuar disparos en modo automático, igual que su predecesora, pero compensa mejor el retroceso gracias a un equilibrado sistema de absorción de sacudidas. + + + SVDm-2 + + + Fusil militar de francotirador que lleva más de cincuenta años en el mercado y goza de una merecida reputación por su excepcional fiabilidad y sencillez de uso. Suele utilizarlo el ejército para mejorar el alcance efectivo de sus unidades, pero los stalkers lo respetan por sus propiedades perforantes, que les permite atravesar el pellejo de los mutantes y los blindajes militares. + + + Lince + + + Versión del fusil de francotirador SVDm-2 ensamblada a mano. Su aspecto es idéntico, pero proporciona una combinación ideal de precisión y poder de detención. + + + SVUmk-2 + + + SVU2-A + + + Este fusil de francotirador recortado con cadencia de disparo mejorada es el próximo paso en la evolución del SVUmk-2. El arma pertenecía a Max, el legendario guardia de Libertad. + + + Escopeta de caza + + + Esta escopeta de caza de cañones superpuestos es extremadamente común y ofrece mejor protección contra mutantes que una pistola, gracias a su precisión y potencia de detención. La utilizan sobre todo los novatos en las afueras de la Zona. + + + Arma no identificada + + + Arma desconocida, cuyo mecanismo de disparo aún no se ha determinado. Parece defectuosa; no hace nada al apretar el gatillo. + + + UDP Compacta + + + Su intachable fiabilidad y durabilidad, combinadas con una precisión excelente, son las principales características de esta arma. Entre sus desventajas se encuentra su considerable tamaño, un centro de gravedad relativamente elevado y un cerrojo enorme, que dificultan tenerla oculta pero no eclipsan sus cualidades positivas. Es especialmente popular entre los veteranos de la Zona. + + + March + + + Pistola compacta de gran calibre con un mecanismo de cerrojo de recorrido corto y poco peso. Pertenecía a un mercenario llamado Perrolobo. Parece ser una pistola UDP Compacta modificada. + + + SA Avalancha + + + Vintar BC + + + Fusil de francotirador militar especial diseñado para efectuar tiros de precisión silenciosos y sin fogonazo en operaciones especiales donde la detección del tirador puede ser crítica. El Vintar BC posee una gran capacidad perforante y poder de detención, y está equipado con una mira óptica integrada de precisión. Pese al reducido tamaño de su cargador, muchos stalkers lo tienen en alta estima. + + + Marea + + + Arma producida para unidades militares partiendo del diseño del fusil de francotirador silencioso. Posee mayor poder de detención que su predecesor, el Vintar BC, en detrimento de su cadencia de disparo, lo que permite al tirador eliminar a sus enemigos uno a uno sin revelar su posición. + + + Walker P9m + + + Rastreadora 13 + + + Escopeta occidental de ánima lisa extremadamente popular en todo el mundo por su sorprendente fiabilidad y velocidad de recarga. Los cazadores de la Zona la valoran especialmente por su funcionalidad. Todas sus piezas están bañadas en un compuesto anticorrosión. + + + Depredadora + + + Escopeta de corredera fabricada a medida; pertenecía a Trapper. El único requisito del cazador respecto a esta arma fue que pudiera matar a un depredador de un solo disparo. Esta filosofía se basaba en la creencia de que, por mucha gente que haya matado, un animal sigue siendo un animal, y por tanto no debe sufrir. + + + Baterías caseras + + + Mira SUSAT Merat + + + Fusil de asalto moderno desarrollado como heredero del AKM 74/2. La principal diferencia es su modalidad de disparo de alta velocidad en ráfagas de dos proyectiles, que le permite disparar dos balas en el mismo sitio exacto a distancias de hasta 100 metros. Esto aumenta considerablemente la posibilidad de alcanzar al objetivo en comparación al modo de disparo individual, lo que mejora su letalidad, poder de detención y potencial perforante. + + + Esta arma, de 1974, marcó el punto en que los países del Pacto de Varsovia adoptaron la munición de pequeño calibre y bajo impulso. El AKM-74/2 es el sucesor del fusil de asalto más popular; el freno de su boca es mayor que el de su predecesor, reduciendo su ya controlable retroceso. Esto le da más precisión y agrupación de disparos, sobre todo si se dispara tiro a tiro o en ráfagas cortas. Es sencillo y fiable como su anterior versión. + + + Aunque tiene el tamaño y el peso de un subfusil y comparte su función táctica, esta arma está clasificada como fusil de asalto porque su mecanismo interno es idéntico al del AKM 74/2. Esta arma es célebre por su movilidad en combate cuerpo a cuerpo y su elevada capacidad de penetración; sus inconvenientes son su escaso alcance efectivo (pese al gran alcance de sus proyectiles), tendencia a sobrecalentarse y elevada propensión al rebote. + + + Versión mejorada de una clásica arma semiautomática, que destacó en los principales conflictos armados del siglo XX y ha entrado con buen pie en el nuevo milenio. Decenas o incluso cientos de empresas de todo el mundo fabrican el arma original y numerosas modificaciones. La única desventaja del arma es la escasa capacidad de su cargador, pero está compensado más que de sobra por su potente munición. + + + El pistolón definitivo: voluminoso, pesado y sumamente letal. Diseñada como arma especializada para caza media y mayor y para competiciones de tiro en las que había que disparar contra blancos de acero a distancias superiores a los 50 metros. Su limitado uso en la Zona se atribuye a su precio, peso y tamaño, que duplican a los de otras pistolas. + + + Esta arma de aspecto futurista con el cargador detrás de la empuñadura es en realidad un sistema modular fabricado en serie, compuesto por un sistema informático de control de disparos y un lanzagranadas de 40 mm. Pese a su aspecto voluminoso es muy ergonómica, fácil de usar y goza de buenas prestaciones. + + + Pistola de factura ucraniana usada principalmente por agencias gubernamentales. Ofrece más precisión, ergonomía y capacidad de cargador que la PMm. Estas pistolas llegaron a la Zona en grandes cantidades gracias a la venta de armas defectuosas con errores técnicos de cálculo en los diseños de los primeros modelos. Pese a ello, la pistola tiene mucha demanda entre stalkers por sus excelentes prestaciones de combate. + + + Recién llegado a la familia de los fusiles de asalto occidentales, que se distingue de los modelos automáticos anteriores con mecanismos de cerrojo semiabierto; éste es más parecido a los fusiles de asalto estadounidenses accionados por gas y posee un sistema de pistones por gas de recorrido corto. Estos cambios hacen que el fusil sea el ejemplo perfecto de arma moderna: ligera, fiable y ergonómica. + + + Los numerosos defectos detectados en este fusil provocaron que se remodelase, y las armas decomisadas acabaron en el mercado negro de la Zona. Sus ventajas son la mira integrada con zoom de 4x, una elevada precisión para disparo individual y una tecnología de mejoras bastante decente. En fuego automático, su precisión se reduce bastante y sus mecanismos internos básicos se vuelven poco fiables. + + + Un nuevo hito en el desarrollo de esta conocida gama estadounidense. Se han aplicado cambios en la mitad superior de la pieza de acero formada por el cañón, el tubo de gas y el mecanismo de cerrojo, reduciendo el peso del arma y mejorando su ergonomía y sistema de gas. Es muy fiable, aunque dada su propensión a ensuciarse no es apropiada para las difíciles condiciones de la Zona. + + + Esta pistola fue desarrollada en la segunda mitad del siglo XX partiendo del modelo de la PMm para ser usada por fuerzas especiales y unidades de exploración. La parte frontal del cañón está cubierta por un silenciador, mientras que el mecanismo de cerrojo está acortado, por lo que el resorte de la corredera ha tenido que instalarse en la empuñadura del arma. Aunque en teoría obsoleta, sigue siendo muy eficaz en las manos apropiadas. + + + Este legado soviético es la pistola más habitual en la Zona, y una de las mejores armas cortas de autodefensa disponibles. Es pequeña, muy fiable, fácil de usar y no requiere mucho mantenimiento. Al mismo tiempo, adolece de varias desventajas, como su corto alcance, escasa precisión y bajo poder de detención. Además, comparada con las pistolas modernas de su clase es demasiado pesada y tiene un cargador pequeño. + + + Escopeta de combate no estriada, de diseño parecido al de un revólver con una potencia de fuego tremenda, ideal para unidades militarizadas. Cuenta con cargador de gran tamaño y una cadencia de disparo elevada, pero su gran peso, volumen y tiempo de recarga son sus desventajas. Es poco habitual en la Zona. Se utiliza para despejar espacios cerrados llenos de mutantes. + + + Este lanzagranadas de los 60 llegó a la Zona procedente de polvorines militares. Es un lanzador de disparo único y ánima lisa, sin retroceso y con tubo de lanzamiento de retrocarga. Cuenta con mira óptica PGO-7 con zoom de 2.7x. Aunque no suele ser muy usada por los stalkers debido a su tamaño y peso, dado su poder de destrucción y su facilidad de uso, ha encontrado admiradores en la Zona. + + + Único modelo de fabricación en serie que queda de una pistola de renombre mundial. Este arma tiene una merecida reputación por su ergonomía y precisión. Aunque su cargador es pequeño, su mecanismo funciona como un reloj suizo. Su otra ventaja es la potente munición que utiliza. Algunos creen que la SIP-t M200 es la mejor pistola de calibre ACP .45 que se ha fabricado en serie y tiene muchos seguidores entre los stalkers y mercenarios. + + + Esta escopeta automática especial de ánima lisa fue diseñada en la segunda mitad del siglo XX y dispone de mecanismos de disparo de corredera y amartillado automático. La policía y las tropas de asalto la utilizan con usos diversos. Aunque fiable y flexible, también es bastante pesada, compleja y costosa. Aun así, es bastante popular en la Zona, especialmente entre los stalkers que buscan una protección eficaz contra mutantes. + + + Versión modernizada del fusil de francotirador SVDm-2, con un diseño compacto de cargador trasero realizado a petición de las fuerzas de respuesta rápida. Ofrece mayor precisión en fuego rápido y es bastante más ligero, pero su precisión en disparo individual a corto y medio alcance es similar al de su predecesor. Sus prestaciones le han granjeado la admiración de innumerables stalkers. + + + Versión modificada del silencioso fusil de francotirador Vintar BC. Fue diseñado como arma para fuerzas especiales. Su principal propósito es proporcionar fuego eficaz contra enemigos con protecciones personales modernas sin revelar la posición del usuario. Gracias a su silenciador integrado y a sus pesadas balas subsónicas de calibre 9x39, el ruido y fogonazo emitidos al disparar se han reducido al mínimo. + + + Conocido como el objeto 62, este fusil de última tecnología e increíble precisión fue desarrollado en los laboratorios secretos del interior de la Zona. El arma acelera sus balas a una velocidad extremadamente elevada por medio de un sistema electromagnético, ofreciendo un poder de detención asombroso y apenas retroceso. El arma funciona con fragmentos encapsulados de artefactos incluidos en sus baterías. + + + Las pistolas Martha gozan de reputación como armas fiables en todo el mundo, aunque son bastante aparatosas. La utilizan las fuerzas armadas y policiales del otro lado del océano, además de diversas organizaciones militares y de orden público. Esta pistola es igualmente popular en los bajos fondos gracias a su potente munición y a la capacidad del cargador. Las Martha que se encuentran en la Zona suelen estar desfasadas. + + + Excelente pistola occidental conocida por su fiabilidad, su cargador de gran capacidad y su notable precisión, además de encontrarse entre las pistolas más ergonómicas de su clase. Es una de las pistolas más utilizadas en la Zona por los novatos y los profesionales que se la pueden permitir. + + + Baterías que utilizan un fragmento encapsulado de Destello como fuente de energía. Fabricadas con equipo de alta tecnología. + + + Estas células de baja capacidad emplean fragmentos encapsulados de Destello como fuente de energía. Su baja capacidad se debe a la producción improvisada y a la falta de equipo especializado. + + diff --git a/gamedata/configs/text/spa/st_items_weapons_upgrades.xml b/gamedata/configs/text/spa/st_items_weapons_upgrades.xml new file mode 100644 index 0000000..eb776b7 --- /dev/null +++ b/gamedata/configs/text/spa/st_items_weapons_upgrades.xml @@ -0,0 +1,2022 @@ + + + + Trayectoria + + + Calibre + + + Retroceso + + + Fiabilidad + + + Mira réflex 1.6x + + + Mira óptica 4x + + + Silenciador + + + acoplamiento bajo cañón + + + Peso + + + La rosca del cañón permite montar un silenciador en el arma. + + + Roscado externo del cañón + + + Instalación de un soporte para acoplar miras ópticas. + + + Soporte óptico + + + Instalación de un soporte para acoplar un lanzagranadas debajo del cañón. + + + Soporte para lanzagranadas acoplados + + + Sustituye el cargador estándar por otro más grande. + + + Capacidad de cargador incrementada + + + Alteración compleja e integrada de las piezas mecánicas y automatizadas del arma que le permiten disparar un calibre distinto en detrimento de su fiabilidad. + + + Cambio de calibre a 5x45 + + + Alteración compleja e integrada de las piezas mecánicas y automatizadas del arma que le permiten disparar un calibre distinto en detrimento de su fiabilidad. + + + Cambio de calibre a 5x56 + + + Alteración compleja e integrada de las piezas mecánicas y automatizadas del arma que le permiten disparar un calibre distinto en detrimento de su fiabilidad. + + + Cambio de calibre a 9x18 + + + Alteración compleja e integrada de las piezas mecánicas y automatizadas del arma que le permiten disparar un calibre distinto en detrimento de su fiabilidad. + + + Cambio de calibre a 9x19 + + + Aumenta la capacidad del cargador sin incrementar la longitud de la pieza del arma. + + + Aumento de la capacidad del cargador + + + Una caja para munición hecha de policarbonato, más liviana pero con mayor capacidad, que compensa parte del incremento en el peso del arma. + + + Capacidad de caja de munición aumentada + + + Una mayor cantidad de placas de titanio mejora considerablemente la durabilidad del blindaje. + + + Placas de aluminio/titanio adicionales + + + Placas reforzadas que duran mucho más, aunque no son tan resistentes. + + + Placas de kevlar + + + Esta aleación de aluminio y titanio reduce el peso del titanio empleado en el blindaje personal. + + + Placas de aluminio y titanio + + + Normalmente, el titanio es demasiado pesado para usarlo en blindajes personales, pero en ocasiones se utiliza en los exoesqueletos. + + + Componentes de titanio macizo + + + Reemplazar el metal por fibra de carbono reduce el peso del blindaje personal sin sacrificar su fiabilidad. + + + Sustitución de piezas de blindaje personal con fibra de carbono + + + El kevlar es uno de los materiales más usados en los blindajes personales. + + + Placas de kevlar + + + El policarbonato puede detener una bala de pistola, aun siendo tan ligero como el plástico. + + + Placas de policarbonato + + + Las placas cerámicas no duran mucho, pero son más fiables que el kevlar porque poseen mayor capacidad para anular la inercia de las balas. + + + Instalación de placas cerámicas + + + Simples placas de acero cosidas a una gabardina. + + + Placas de acero + + + Una capa cerámica exterior puede desviar balas perforantes que impacten en cierto ángulo y reducir a un fino polvo las que impactan de forma directa. + + + Capa exterior de blindaje cerámico + + + Una capa de blindaje interior adicional por si la exterior resulta dañada. + + + Capa doble de placas protectoras + + + Blindaje con una capa interior que dispersa la energía cinética del impacto sobre una superficie mayor. + + + Elemento de compensación añadido + + + El armazón es capaz de detener una bala de pistola si el blindaje principal resulta dañado. + + + Armazón blindado adicional + + + Las láminas más finas del blindaje se disponen en capas para incrementar su resistencia al desgaste. + + + Protección segmentada + + + Aunque añadir más placas no mejora la protección, sí garantiza una durabilidad superior. + + + Segunda capa de refuerzo + + + Estas placas móviles protegen las articulaciones de disparos. + + + Instalación de placas protectoras móviles para las articulaciones + + + Un armazón de aluminio más liviano para las placas de blindaje que sustituye al de acero. + + + Armazón ligero de aluminio + + + Los separadores más gruesos reducen la fuerza que ejercen las balas al impactar en el blindaje personal. + + + Aumento de grosor de separadores de cuero + + + Una capa cerámica adicional con refuerzo de silicio. + + + Placas de cerámica reforzadas + + + El uso de materiales más ligeros reduce el peso del blindaje personal. + + + Instalación de componentes sintéticos y plásticos más ligeros + + + Aunque las placas de titanio macizo son demasiado pesadas para el blindaje de un soldado de infantería, los potentes servos de un exoesqueleto pueden con su peso. + + + Coraza de titanio + + + El SBK-RKhZ.m.II es el segundo modelo de este traje de combate especial que ofrece protección radioquímica. + + + Traje de protección estanco SBK-RKhZ.m.II + + + Esta ardua y laboriosa mejora no es muy popular, aunque ha salvado alguna que otra vida. + + + Cota de malla confeccionada + + + La modificación Escama consiste en varias placas cerámicas superpuestas que impiden que el impacto alcance de lleno al usuario. + + + Modificación de cerámicas deflectoras Escama + + + Una vez tratado con Soberano, el traje se vuelve prácticamente invulnerable a los daños mecánicos y el rasgado del tejido. + + + Tratamiento con compuesto aglutinante Soberano + + + Las placas cerámicas suavizan considerablemente el impacto de las balas al convertirlas en fragmentos quebradizos. + + + Aplicación de capa cerámica a placas + + + Las matrices reforzadas que utilizan berilio en vez de aluminio constituyen una de las formas más fiables de proteger a los soldados de infantería. + + + Las placas cerámicas suavizan considerablemente el impacto de las balas al convertirlas en fragmentos quebradizos. + + + Capa cerámica sobre placas + + + La fibra de carbono es uno de los materiales más duraderos y resistentes; incluso se utiliza en la construcción de aviones. + + + Revestimiento combinado de múltiples capas cerámicas y de polímero. + + + Revestimiento mixto de placas + + + Tecnología doméstica y uno de los últimos desarrollos en el campo de la protección personal: el cultivo de zafiros artificiales. + + + El ajuste de los componentes permite que el arma pueda usarse mucho más tiempo sin riesgo de encasquillamiento. + + + Ajuste de componentes + + + La tendencia a usar componentes de plástico no solo merece la pena, sino que se ha convertido en una mejora bastante popular. + + + Componentes de polimaterial + + + El mecanismo de disparo de bajo impulso reduce el retroceso respecto a versiones anteriores. + + + Mecanismo de disparo de bajo impulso + + + Al situar firmemente el proyectil en el momento de ser disparado, la bala vuela en línea recta hasta alcanzar al objetivo. + + + Instalación de unidad de posicionamiento de proyectil + + + Los sistemas de encaje por rodillo suelen usarse en armas porque reducen el retroceso y mejoran la agrupación de disparos. + + + Cerrojo semilibre con sistema de rodillo + + + La instalación de un cilindro de gas adicional reduce la carga del arma, lo que a su vez incrementa significativamente su cadencia de disparo. + + + Instalación de cilindro de gas adicional + + + El motor de gas se usa en escopetas de amartillado automático para dispararlas en modalidad semiautomática. + + + Instalación de motor de gas + + + El rociador protector impide el encasquillamiento del arma debido a averías del mecanismo. + + + Rociador protector de componentes + + + Cada vez que se efectúa un disparo, una pieza desplaza el cañón hasta la posición de cerrado mediante un movimiento longitudinal de la empuñadura frontal. + + + Sistema de cierre del cañón + + + El sistema automático por inercia convierte el mecanismo de corredera de las escopetas normales en un mecanismo de amartillado automático. + + + Instalación de sistema automático por inercia + + + Los módulos de compensación unificada del retroceso son una de las mejores soluciones tecnológicas para reducir el retroceso de las armas. + + + Módulo de compensación unificada del retroceso + + + La biela automática mejora la precisión del arma. + + + Instalación de una biela automática + + + Un contrapeso activo situado en el mecanismo del cerrojo compensa parcialmente el retroceso. + + + Instalación de contrapeso activo + + + La instalación de piezas adicionales de rodillo reduce el retroceso. + + + Instalación de sistema de compensación de retroceso mediante rodillo + + + Sustitución del mecanismo de cerrojo del arma por un diseño más apropiado que mejora la cadencia de disparo. + + + Sistemas de disparo de cerrojo abierto + + + Cuando se dispara el arma, el armazón del contrapeso oscila en la dirección opuesta al cerrojo, haciendo que disparar la ametralladora no resulte tan incómodo. + + + Instalación de contrapeso de regulación automática + + + Se instala un contrapeso como componente adicional en el cuerpo del arma para reducir el retroceso aplicando una fuerza opuesta. + + + Instalación de un contrapeso móvil + + + La tendencia a usar componentes de polímero no solo merece la pena, sino que se ha convertido en una mejora bastante popular. + + + Componentes de polímero resistentes a los impactos para elementos automáticos + + + Instalación de un mecanismo especial para proteger el arma de la suciedad. + + + Regulador de gas automático de dos posiciones + + + Un componente especial sella herméticamente el cañón para incrementar la presión cuando se efectúa un disparo. + + + Instalación de dispositivo de cierre del cañón + + + La sincronización se consigue mediante un engranaje que mejora la trayectoria de los proyectiles. + + + Sincronización del movimiento de la biela + + + Componente instalado en la parte trasera del cuerpo del arma que reduce la velocidad del cerrojo. Mejora la eficacia de los disparos apuntados. + + + Mecanismo de reducción de inercia + + + Componente especial instalado en el mecanismo del cerrojo para suavizar su movimiento y reducir el retroceso. + + + Dispositivo de reducción de la velocidad de compensación del retroceso + + + Mejora integrada que normalmente se aplica a fusiles de francotirador debido al considerable incremento del peso del arma. + + + Sistema integrado de amortización de retroceso + + + Instalación de un mecanismo de componentes móviles que incrementa la velocidad de inserción de proyectiles en la recámara mientras se dispara el arma. + + + Alimentación automática de munición + + + Mejora de los componentes automáticos del arma que requiere la sustitución de varias piezas. Mejora la precisión. + + + Sistema equilibrado libre de impactos + + + Componente sintético situado inmediatamente delante de la zona del recorrido del cerrojo que la comprime considerablemente para mejorar la precisión del disparo. + + + Adición de dispositivo de parada + + + Conexión que fija la posición del cañón; si éste se mueve, se abren orificios de compensación adicionales. + + + Instalación de pieza de "compensación inteligente" + + + Modernización que suaviza el mecanismo del gatillo (de vital importancia para francotiradores). + + + Instalación de mecanismo de regulación de liberación del gatillo + + + Este componente permite al tirador sentir el instante en que se dispara el proyectil, mejorando así la precisión del disparo. + + + Instalación de gatillo de preaviso + + + Los sistemas de encaje por rodillo suelen usarse en las armas occidentales porque reducen el retroceso y mejoran la agrupación de disparos. + + + Cerrojo semilibre con sistema de rodillo + + + Un mecanismo especial absorbe parte del impacto al disparar, haciendo que resulte más cómodo disparar el arma. + + + Sistema de amortización de disparos + + + Dado que los fusiles de francotirador requieren un mantenimiento más exhaustivo que las armas normales, pueden mejorarse con dispositivos de regulación por gas de tres posiciones. + + + Instalación de dispositivo automático de regulación por gas de tres posiciones + + + El rociador impide que se disperse la energía, incrementando así la inercia de las balas. + + + Ajuste de piezas automáticas mediante rociador + + + La instalación de un mecanismo de bielas permite disparar el fusil de francotirador en modo automático. + + + Mecanismo de bielas + + + El dispositivo de parada afecta al mecanismo de compensación de retroceso, mejorando la precisión. + + + Instalación de dispositivo de parada + + + La sustitución del cañón normal por otro más largo mejora la precisión y la trayectoria de los proyectiles. + + + Cañón alargado + + + La ausencia de cámaras de gas y soporte para el cañón en la empuñadura frontal ejerce un efecto positivo en la precisión. + + + Instalación de cañón flotante + + + Esta modificación se instala para reducir el daño causado por un exceso de cambios en la cadencia de disparo del arma. + + + Instalación de cañón con aletas de refrigeración + + + La sustitución de una pieza anticuada por otra más moderna reduce el retroceso. + + + Compensación optimizada del freno de boca + + + La instalación de un cañón con roscas adicionales mejora la velocidad de la bala y la precisión del arma, pero incrementa considerablemente el retroceso. + + + Instalación de roscas adicionales en el cañón + + + Este cañón está pensado para aumentar el radio letal en combate cercano, por lo que no es adecuado para fuego de precisión. La simplificación del interior estriado del cañón mejora la cadencia de disparo. + + + Instalación de cañón con ánima estriada simplificada + + + El estriado poligonal del ánima mejora la precisión. + + + Instalación de cañón con estriado poligonal + + + Reduce el calentamiento del cañón y aumenta la cadencia de fuego. + + + Estriado sinusoidal de la recámara del cañón + + + Recambio especial del cañón para armas de buena trayectoria que mejora su precisión. + + + Estriado de cañón de fusil de francotirador + + + Los materiales de alta durabilidad reducen el desgaste del cañón del arma. + + + Cañón de aleación de alta durabilidad + + + El tratamiento de la superficie interna del cañón lo protege de daños mecánicos. + + + Tratamiento del cañón + + + El engrosado sintético de la cavidad del cañón mejora considerablemente la agrupación de disparos. + + + Engrosado sintético del cañón + + + La sustitución del cañón normal por otro más largo mejora la trayectoria de los proyectiles. + + + Secciones de cañón más largas + + + La introducción de canales de ventilación de gas en el cañón no solo impide que acumule suciedad, también redirige parte del retroceso hacia el cañón. + + + Canales longitudinales de ventilación de gas + + + La sustitución del cañón normal por otro más largo mejora la trayectoria de los proyectiles. + + + Sección de cañón alargado + + + Este rociado impide que el cañón se sobrecaliente, elimina los defectos de fábrica y aumenta en gran medida el ciclo vital del cañón. + + + Aplicación de rociador protector al interior del cañón + + + El sistema de equilibrado del cañón incluye varios pistones móviles que estabilizan el arma cuando se empuña. + + + Sistema de equilibrado del cañón + + + La parte estriada del cañón impide que se disparen perdigones, pero el aumento de precisión lo compensa. + + + Cañones de ánimas estriadas + + + El engrosado con polimateriales incrementa la presión del cañón, aumentando así la velocidad de las balas. + + + Engrosador dinámico del cañón + + + La perforación cilíndrica del cañón ayuda a mejorar la cadencia de disparo sin afectar a la precisión. + + + Perforación cilíndrica del cañón + + + Cuando se dispara, un contrapeso activo se traslada simultáneamente a la boca del cañón para compensar parte del retroceso. + + + Instalación de contrapeso activo en la funda del cañón + + + La sustitución de un cañón normal por otro más largo mejora la precisión y la trayectoria, pero reduce la cadencia de fuego. + + + Sección larga del cañón + + + La perforación del cañón reduce el retroceso descargando los gases por orificios especiales. + + + Sección perforada del cañón + + + Un cañón recortado más tecnológico mejora la cadencia de disparo del arma sin sacrificar trayectoria ni precisión. + + + Sección recortada del cañón + + + El cromado mejora el ciclo vital del cañón. + + + Cromado de la cara interna del cañón + + + Los separadores absorben parte del retroceso. + + + Instalación de separadores de goma + + + Una pieza estriada simplificada es útil para combates a corta distancia en los que prima la cadencia de fuego sobre la precisión. + + + Instalación de cañón con ánima estriada simplificada + + + La instalación de un cañón con roscas adicionales mejora la velocidad de la bala y la precisión del arma, pero incrementa considerablemente el retroceso. + + + Instalación de roscas adicionales en el cañón + + + Aligerar el peso del cañón y reduce considerablemente el retroceso. + + + Traslado del compensador/reductor de fogonazo del cañón al cuerpo + + + Reduce el calentamiento del cañón y aumenta la cadencia de fuego sin sacrificar trayectoria. + + + Estriado sinusoidal del cañón + + + El estriado poligonal mejora la precisión de los fusiles de francotirador. + + + Instalación de cañón con estriado poligonal + + + El potenciador neumático incrementa la velocidad de disparo transformando parte del retroceso en presión dentro del cañón. + + + Instalación de potenciador neumático + + + Dispositivos motrices adicionales que incrementan la capacidad máxima de carga. + + + Servomotores adicionales + + + Innovación de los técnicos de Libertad, los primeros en sustituir el metal por fibra de carbono para reducir el peso de los exoesqueletos. + + + Sustitución de piezas metálicas por fibra de carbono + + + El blindaje protege de disparos precisos los componentes más importantes del exoesqueleto. + + + Blindado del aparato de tracción + + + El sistema de movimiento fluido incorpora resortes y articulaciones reforzadas que permiten al usuario utilizar el peso del exoesqueleto para facilitar las funciones motrices. + + + Sistema de movimiento fluido Shagohod + + + Esta modificación distingue a los exoesqueletos de tercera generación de los de cuarta. Permite correr a toda velocidad con el exoesqueleto. + + + Instalación de potenciadores hidráulicos en aparatos de tracción + + + La capa de tejido impide que las zonas blandas se dañen en caso de impacto contra el blindaje. + + + Capa de tejido compensatorio + + + Los engrosadores de silicio son más eficaces que sus contrapartidas de goma y absorben mejor los impactos. + + + Engrosadores compensatorios de silicio + + + Los tejidos, grampas y engrosadores se sustituyen por materiales sintéticos más livianos para reducir el peso. + + + Polímeros y materiales sintéticos más ligeros + + + La capa de caucho impide que las zonas blandas se dañen en caso de impacto contra el blindaje. + + + Capa de caucho compensatoria + + + Subcapa protectora en caso de que el tejido principal se desgarre. + + + Múltiples capas de policarbonato, silicio y fibra de carbono por si el blindaje principal es perforado. + + + Separadores protectores de polímero + + + Este traje estanco de Libertad es útil para localizar artefactos en zonas de anomalías. + + + Traje de protección contra anomalías Expansión + + + Una capa hermética de materiales sintéticos por si la capa externa es dañada. + + + Capa sintética + + + Varios ajustes ergonómicos fabricados con goma que permiten conservar la movilidad aun vistiendo blindajes voluminosos. + + + Traje ergonómico de goma + + + El constantán proporciona aislamiento contra electricidad y tiene un punto de fusión muy elevado. + + + Aislantes térmicos de constantán + + + El plomo es una defensa eficaz contra la radiación, ya que absorbe los tres tipos existentes. + + + Adición de plomo al traje + + + Protección básica contra la lluvia y las sustancias cáusticas que puedan entrar en contacto con la piel. + + + Traje de lona + + + Los tejidos tratados con fluidos ignífugos son populares entre los stalkers que buscan artefactos de fuego. + + + Tejido tratado con sustancia ignífuga + + + Los separadores de magnesio protegen al usuario de riesgos térmicos. + + + Separadores de placas de magnesio + + + Una simple capa interna de plástico puede proteger al usuario de riesgos químicos y eléctricos. + + + Capa interna hermética de plástico + + + Los tejidos, grampas y engrosadores se sustituyen por materiales sintéticos más livianos para reducir el peso. + + + Sustitución de tejidos por materiales sintéticos + + + El plexiglás absorbe dos tipos de radiación y es mucho más ligero que el plomo. + + + Capa interna de plexiglás contra la radiación + + + Protección fiable contra riesgos químicos y eléctricos. + + + Capa interna hermética de plástico flexible + + + Una fina capa de constantán basta para aislar contra la electricidad. + + + Capa interna aislante con base de constantán + + + La fibra de vidrio se utiliza en los trajes de los equipos de salvamento para desastres naturales. + + + Protección térmica de fibra de vidrio + + + El tejido impregnado evita el envenenamiento químico. + + + Malla corporal impregnada + + + El caucho ofrece protección básica contra exposiciones breves a la radiación. + + + Malla corporal de caucho + + + Los stalkers lo usan en sus trajes para aumentar su durabilidad. + + + Armazón protector de alta durabilidad Escudo + + + El níquel es lo bastante ignífugo como para ser usado en separadores de blindaje. + + + Traje ignífugo con separadores de níquel + + + Esta aleación de níquel y magnesio se usa en los blindajes para proteger contra descargas eléctricas. + + + Traje aislante con separadores de manganina + + + Traje estanco con una capa anticorrosión y blindaje de kevlar. + + + Traje blindado integrado Segunda Piel + + + Traje fabricado con polímeros no especificados utilizados anteriormente por el instituto de investigación de Kiev para desarrollar el traje Ecólogo. Cavidades rellenas de bismuto. + + + Traje de polímero Ecólogo con separadores de bismuto + + + La malla de plomo ofrece una protección total contra radiación y riesgos químicos sin perder movilidad. + + + Traje de plexiglás Salvavidas con malla de plomo flexible + + + Desarrollo autóctono que apareció tras el desastre de Chernóbil. Utilizado en exoesqueletos para impedir averías electrónicas. + + + Traje Evacuador con separadores de plomo + + + Mira de asalto para combate a corta distancia. + + + Mira réflex 1.6x + + + Mira óptica para combate a media y larga distancia. + + + Mira óptica 4.0x + + + Mira óptica para combate a larga distancia. + + + Mira óptica 5.0x + + + Mira óptica para combate a larga distancia. + + + Mira óptica 6.0x + + + Modificación practicada en armas de asalto con miras réflex: consiste en una simple mejora del contraste del espectro amarillo. Vital para combatir en edificios mal iluminados y durante el amanecer. + + + Mejora del contraste de la mira + + + Un visor térmico permite al usuario detectar e identificar fuentes de calor. + + + Selección automática de objetivo + + + Los dispositivos de visión nocturna han salvado a muchos francotiradores. + + + Instalación de dispositivo de visión nocturna + + + Esta modificación permite que la mira pueda ajustarse fácilmente a la distancia de disparo. + + + Mira ajustable para el cálculo de distancias + + + Las culatas neumáticas reducen el retroceso de las ráfagas. + + + Culata neumática + + + Una hombrera móvil reduce considerablemente el impacto del retroceso sobre el cuerpo. + + + Instalación de hombrera compensatoria + + + Culata moderna que tiene en cuenta la naturaleza específica de la fisiología humana. + + + Culata ergonómica + + + Al disparar el arma, el cañón libera parte de los gases en la cavidad que hay tras el cerrojo, garantizando así que se detenga suavemente al desplazarse hacia atrás. + + + Instalación de amortiguador de gas con mecanismo de cerrojo + + + El alargamiento parcial de la pieza del cerrojo en la culata aumenta la trayectoria, pero también el retroceso. + + + Alargamiento del amortiguador de impacto de la pieza del cerrojo + + + Instalación de una pieza móvil en la culata que ejerce contrapeso cuando se dispara el arma. + + + Contrapeso móvil + + + Un soporte mayor aumenta la precisión. + + + Aumento del tamaño del soporte + + + Un muelle amortiguador de retroceso elimina parte de la incómoda sensación experimentada al disparar una ametralladora empuñada. + + + Resorte amortiguador de retroceso integrado + + + Instalar un amortiguador de gas por cerrojo en la culata absorbe y elimina gran parte del retroceso. + + + Amortiguador de gas con mecanismo de cerrojo adicional + + + Esta pieza recauchutada suele incluirse de serie en las culatas de los fusiles de francotirador de gran calibre. + + + Pieza de culata compensatoria + + + Culata ajustable con una almohadilla para la mejilla, útil para disparar desde cualquier posición. + + + Culata ajustable con almohadilla para la mejilla + + + Pieza de culata para armas de gran calibre con mucho retroceso. + + + Amortiguador de retroceso hidráulico en culata + + + Los filtros activos resisten las sustancias químicas más corrosivas. + + + Filtros activos + + + La banda cerrada ha demostrado ser una excelente protección parcial contra emisiones psíquicas directas. + + + Banda de protección psíquica de pares de rejillas de acero + + + Una máscara empleada en zonas con aire contaminado o temperaturas extremas (demasiado altas o bajas para respirar). + + + Aplicación de revestimiento protector + + + Aplicación de revestimiento protector + + + Un filtro con un revestimiento anticorrosivo reforzado y una capa adicional para extraer sustancias tóxicas. + + + Filtro para trabajar en zonas contaminadas + + + Una máscara de plexiglás ofrece cierta protección contra radiación. + + + Revestimiento de plexiglás + + + Una máscara de plexiglás ofrece cierta protección contra radiación. + + + Mascarilla hecha de plexiglás + + + Aparato respirador para bloqueo total de toxinas. + + + Mascarilla impregnada + + + Esta matriz de berilio y aluminio ofrece una protección excelente sin aumentar el peso del casco de forma significativa. + + + Placas de berilio y aluminio + + + La matriz de berilio y titanio garantiza una protección más eficaz sin aumentar el peso de forma significativa. + + + Placas de berilio y titanio + + + Estos filtros mejorados regulan el nivel de oxígeno por muy contaminado que esté el entorno. + + + Instalación de filtros mejorados para tareas científicas + + + Protección psíquica de alta tecnología, supuestamente inventada por un científico llamado Sakharov. + + + Instalación de banda Psicodomo + + + Armazón de aleación que protege de daños térmicos y eléctricos. + + + Blindaje facial de constantán Ave de Trueno + + + Blindaje adicional que aumenta la durabilidad del casco. + + + Armazón de casco blindado reforzado + + + Un filtro con revestimiento purificador adicional y sistema para desechar toxinas. + + + Respirador reforzado para condiciones extremas + + + Instalación de un dispositivo de visión en la oscuridad para operaciones nocturnas o con poca iluminación. + + + Dispositivo de visión nocturna de primera generación + + + Este sistema activa un mecanismo de respiración de ciclo cerrado si el aire está contaminado con partículas radiactivas o químicas. + + + Sistema de aviso contra riesgos radiactivos y químicos + + + Mascarilla de purificación por vapor + + + Instalación de un dispositivo de visión nocturna más avanzado para operar en completa oscuridad. + + + Dispositivo de visión nocturna de segunda generación + + + Un visor térmico permite al usuario detectar e identificar fuentes de calor. + + + Selección automática de objetivo + + + Dispositivo científico de ondas desarrollado para trabajar en zonas anómalas con emisiones psíquicas. + + + Estimulante psíquico Oráculo + + + Instalación de un dispositivo de visión nocturna más avanzado para operar en completa oscuridad. + + + Dispositivo de visión nocturna de tercera generación + + + Las partículas de aire ionizadas recorren los electrodos del sistema en dirección opuesta a los electrones, creando así un viento iónico. + + + Sistema de refrigeración Viento Iónico + + + El escáner de infrarrojos permite detectar humanos en las inmediaciones. + + + Escáner de infrarrojos + + + Sistema de protección de ondas psíquicas y seguridad psicológica, modelo cuatro. + + + Sistema de combate SPB – VPZ.m.IV + + + El muelle reforzado aumenta la velocidad de las balas. + + + Muelle de retroceso reforzado + + + La instalación de engrosadores en las piezas móviles del mecanismo hace que el cañón se desvíe menos del objetivo al disparar. + + + Compensador del mecanismo de retroceso + + + Instalación de un resorte adicional con muelle invertido para reducir el retroceso sin sacrificar la trayectoria. + + + Muelle de retroceso adicional + + + Rociador protector que aumenta la fiabilidad, y lo que es más importante, garantiza el aislamiento, impidiendo así que la energía se disipe. + + + Rociador protector para el mecanismo de retroceso + + + Las bielas de titanio resisten una cadencia de fuego más alta que las normales. + + + Bielas de titanio para el mecanismo de retroceso + + + Un elemento sintético instalado en las bielas garantiza que se muevan correctamente, incrementando así la precisión. + + + Elemento equilibrador añadido + + + El engrosado del manguito incrementa la presión del cañón, aumentando así la velocidad de las balas. + + + Engrosador del manguito del mecanismo de retroceso + + + Conexión que se abre por acción de los gases y se cierra por el propio mecanismo de retroceso, y que permite aprovechar parte de la energía del gas para operar dicho mecanismo. + + + Instalación de conexión de distribución + + + El mecanismo de retroceso se sustituye por una versión más potente compuesta por dos bielas maestras y resortes que incrementan la cadencia de disparo. + + + Conversión a sistema de dos bielas + + + Canales especiales de salida para los gases alrededor del tambor del ama; reducen el retroceso. + + + Uso de energía de gas + + + Se instalan levas diagonales en el tambor para acelerar la rotación del mecanismo que utiliza energía de gas. + + + Instalación de levas diagonales en el tambor + + + Esta típica modificación europea reduce el peso sin menoscabar la fiabilidad. + + + Culata de polímero resistente a los impactos + + + Un cuerpo duradero permite que los fusiles de asalto se usen periódicamente en combate sin apenas desgaste. + + + Cuerpo de aleación de alta durabilidad + + + Instalación de un simple lastre en la parte delantera del cuerpo del arma para reducir el retroceso. + + + Instalación de contrapeso en la caja de acero + + + La instalación de fundas ayuda a modificar la cadencia de fuego del arma, lo que produce un incremento de temperatura que debe controlarse. + + + Funda de enfriamiento adicional + + + La forma del arma es más cómoda e incluye una empuñadura para dispararla en movimiento sin problema. + + + Cuerpo ergonómico + + + Modificación aplicada exclusivamente a cañones de armas con el cargador tras el gatillo, para simplificar el mantenimiento. + + + Cuerpo modular + + + Este rociado impide que el cañón se sobrecaliente, elimina los defectos de fábrica y aumenta en gran medida el ciclo vital del cañón. + + + Pulido del cuerpo mediante surcos y rociado de cavidades + + + En la empuñadura inclinada del arma se instala una pieza móvil de poco peso para compensar el retroceso y estabilizarla. + + + Empuñadura inclinada + + + La cavidad que hay dentro de la empuñadura reduce el peso del arma. + + + Empuñadura inclinada + + + Versión más ligera de la culata normal. + + + Culata más ligera + + + El peso del arma se reduce usando un polimaterial más liviano. + + + Culata de polímero resistente a los impactos + + + Se añade una pieza maciza al arma para reducir el retroceso. + + + Instalación de un contrapeso + + + Una empuñadura más moderna y cómoda que simplifica el manejo del arma. + + + Empuñadura ergonómica + + + Una empuñadura compensatoria reduce el retroceso. + + + Empuñadura compensatoria + + + Una culata más moderna y cómoda que simplifica el manejo del arma. + + + Culata ergonómica + + + Revestimiento especial que protege el arma de los elementos. + + + Revestimiento anticorrosivo + + + El absorbedor de mercurio se instala en la culata del arma y consume parte del retroceso cuando se dispara. + + + Absorbedor de retroceso de mercurio + + + Este contrapeso móvil de impulso se desplaza desde el cerrojo cuando se dispara el arma, absorbiendo así parte del retroceso. + + + Instalación de contrapeso de impulso + + + El cambio de material reduce el daño causado al cañón por sobrecalentamiento desigual, lo que permite aumentar la cadencia de disparo del arma. + + + Aleaciones de alta durabilidad resistentes al calor + + + Importante modificación que protege el arma de la temperatura externa al disparar. + + + Instalación de fundas de regulación térmica + + + Las aletas son una mejora tecnológica que requiere una precisión extrema para evitar el sobrecalentamiento en ciertas zonas del cañón. + + + Aletas externas para el cañón + + + Sustitución del cañón por una versión más moderna que ofrece un aumento considerable en la precisión. + + + Cambio de la geometría del cañón + + + Un armazón caro para que el arma dure mucho tiempo. + + + Armazón de titanio + + + Este armazón es más fiable que el compuesto. + + + Armazón de acero macizo + + + La sustitución técnica del armazón de pistola por otro más ligero no afecta a su fiabilidad. + + + Armazón de pistola de polímero + + + Una empuñadura más moderna y cómoda que simplifica el manejo del arma. + + + Empuñadura ergonómica + + + Una empuñadura compensatoria reduce el retroceso. + + + Empuñadura compensatoria + + + Estas solapas protegen el arma de impactos y suciedad. + + + Engrosadores protectores del cuerpo + + + Cambio en la zona posterior que ofrece un diseño más ergonómico de la empuñadura. + + + Empuñadura con parte posterior recta + + + La posibilidad de elegir la longitud más adecuada de la empuñadura permite un diseño más ergonómico. + + + Empuñadura ajustable + + + Esta modificación solo es posible si se ha instalado un muelle de retroceso en la empuñadura. + + + Instalación de compensador del muelle de retroceso + + + La posibilidad de elegir la placa más adecuada para la empuñadura permite un diseño más ergonómico. + + + Empuñadura modificada con placas reemplazables + + + La funda evita un desgaste prematuro en las armas que se usan a menudo. + + + Instalación de funda de acero perforada + + + Pieza más tecnológica y con mejor absorción de retroceso que las utilizadas en las armas automáticas normales. + + + Freno de boca de compensación eficaz + + + Un cañón más moderno y apropiado para disparos de precisión a distancias muy largas. + + + Instalación de una sección de cañón pesado con estriado poligonal + + + Los surcos longitudinales de la sección del cañón impiden que se sobrecaliente y se llene de suciedad. + + + Surcos longitudinales de la sección del cañón + + + Silenciador y supresor de fogonazo integrados; esenciales para disparos silenciosos. + + + Instalación de silenciador integrado + + + El estriado sinusoidal de la recámara del cañón suele aplicarse a armas de asalto para aumentar su cadencia. + + + Estriado sinusoidal de la recámara del cañón + + + Desarrollado por uno de los institutos de investigación de Kiev. Inyecta pequeñas dosis de adrenalina en el torrente sanguíneo de forma periódica. Puede ser peligroso, pero también salvarte la vida en caso de emergencia. + + + Inyector de adrenalina Furia + + + Un sistema para desechar o condensar las toxinas acumuladas en el filtro purificador. + + + Sistema de eliminación de venenos + + + Este pequeño emisor de ondas desarrollado por Cielo Despejado va montado sobre la espalda y estimula la coagulación de la sangre. + + + Estimulante sanguíneo Rayo + + + Sistema que suministra electricidad al exterior del traje, repeliendo partículas radiactivas y químicas. + + + Sistema antipolvo integrado + + + Inyector de segunda generación que inocula un agente coagulador en el organismo si la presión sanguínea se reduce significativamente. + + + Inyector de hemoglobina Hidra + + + Este sistema previene la fatiga optimizando la temperatura corporal. + + + Instalación de sistema de regulación térmica + + + Este emisor de ondas va montado sobre el pecho y aumenta considerablemente la velocidad de recuperación, la fuerza del sistema inmunológico y el umbral de dolor del usuario. + + + Bioestimulante Sol + + + Dispositivo científico de ondas desarrollado para trabajar en zonas anómalas con emisiones psíquicas. + + + Estimulante psíquico Oráculo + + + Inyector de tercera generación que inocula una mezcla de dudoso contenido en el organismo, estimulando la regeneración de tejidos y mitigando el dolor. + + + Sistema de restauración Fénix + + + Sistema integrado que monitoriza la salud del usuario y le inyecta vitaminas, adrenalina o sustancias anabólicas según sea necesario. + + + Instalación de sistema de soporte vital + + + Este emisor de ondas va montado sobre el cuello, y aunque se desconoce su mecanismo, ejerce un fuerte efecto calmante. + + + Neuroestimulador reflexivo + + + La función del compensador del percutor del cerrojo es absorber parte del retroceso para mejorar la agrupación de disparos en ráfagas. + + + Compensador del percutor del cerrojo + + + Una de las modificaciones más simples y populares consiste en reducir la resistencia del gatillo. Sencilla y útil. + + + Liberación sensible del gatillo + + + Selección especial de piezas fabricadas con diversos materiales específicos para cada arma. Puede que no sea barata, pero prolonga el ciclo vital del arma. + + + Piezas compuestas del mecanismo de disparo + + + Permite un incremento de la cadencia de disparo a cambio de sacrificar precisión y fiabilidad. + + + Dispositivo de retraso del gatillo + + + La extracción del resorte permite efectuar el primer disparo medio segundo antes. Quizá no sea mucho, pero te puede salvar la vida. + + + Liberación del gatillo sin resorte + + + El rociador protector impide el encasquillamiento del arma debido a averías del mecanismo de disparo. + + + Rociador protector para el mecanismo de disparo + + + El anclaje sin cerrojo aumenta la capacidad de carga automática, mejorando considerablemente la cadencia. + + + Anclaje del mecanismo de disparo sin cerrojo + + + El mecanismo sin impactos perfora el proyectil en lugar de golpearlo, usando un percutor especial que suaviza considerablemente el disparo. + + + Instalación de mecanismo de disparo sin impacto + + + El gatillo se arma al apretarlo por primera vez, y todos los demás disparos se efectúan de forma automática. + + + Mecanismo de disparo de doble pulsación + + + Una de las modificaciones más simples y populares consiste en reducir la resistencia del gatillo. Sencilla y útil. + + + Liberación sensible del gatillo + + + El prearmado parcial permite mejorar la precisión. + + + Mecanismo de disparo con prearmado parcial + + + Permite aplicar la misma presión sobre el gatillo desde el primer disparo hasta el último, mejorando así el manejo del arma. + + + Dispositivo de liberación segura + + + Modificación moderna que impide la separación de la sección del cerrojo del resto del arma. + + + Cabezal del cerrojo de mayor tamaño + + + El mecanismo de disparo modular facilita el mantenimiento, la sustitución de piezas y el manejo del arma. + + + Mecanismo de disparo modular + + + Reduce considerablemente la cantidad de presión requerida sobre el gatillo, mejorando así la precisión. + + + Instalación de pieza de armado + + + Nuevo desarrollo tecnológico que consiste en un simple ajuste para cambiar el mecanismo de disparo. Se trata de otro paso más para mejorar la ergonomía y facilitar la personalización. + + + Modalidad de disparo doble + + + Una vez efectuado el primer disparo, solo se requiere media acción del gatillo para cada disparo adicional. + + + Mecanismo de disparo de corto recorrido + + + Dispositivos motrices adicionales que incrementan la capacidad máxima de carga. + + + Servomotores adicionales + + + Este sistema suministra sustancias antitetánicas, antiinflamatorias y antisépticas. + + + Sistema integrado de medicina de campaña + + + Sistema de ventilación del traje con un filtro de prevención para trabajar en zonas contaminadas. + + + Sistema de regulación térmica interna + + + Mejora ergonómica: las monturas especiales acopladas al traje reducen el peso aparente de la carga acarreada. + + + Chaleco de distribución del peso + + + Los tanques de oxígeno son necesarios para adentrarse en zonas contaminadas por partículas químicas o radiactivas. + + + Instalación de tanque de oxígeno + + + Instalación de cavidad adicional para artefactos. + + + Cavidad adicional para artefactos + + + Este sistema de monturas distribuye equitativamente el peso cargado sobre todo el cuerpo. + + + Monturas de distribución del peso + + + El armazón dorsal alivia el peso de la carga sobre los hombros distribuyéndolo por todo el cuerpo, aumentando así la capacidad máxima de carga. + + + Armazón dorsal de distribución del peso + + + Este sistema suministra sustancias antisépticas, antitetánicas y estimulantes. Es casero, pero no parece perjudicial para el organismo. + + + Sistema integrado de asistencia médica + + + Dispone de una rejilla especial con una carga idéntica a la de las anomalías para minimizar su amenaza. + + + Sistema de contramedidas electrostáticas Pez Raya + + + La capa interna impregnada debería evitar envenenamientos químicos. + + + Capa interna impregnada de protección química + + + Modelo experimental de sistema para competir en maratones; no se usa fuera de la Zona debido a su elevado coste y dudosas aplicaciones. + + + Sistema integrado de atleta + + + Este sistema elimina las toxinas y la condensación de las cavidades respiratorias. + + + Sistema de eliminación de toxinas Antídoto + + + Instalación de cavidad adicional para artefactos. + + + Cavidad doble adicional para artefactos + + + Sistema de combate integrado en todo el traje. Casi no lo usa nadie aparte del Spetsnaz. Tiene un sistema incorporado que inyecta adrenalina y coagulantes. + + + Sistema de campaña Varyag + + + Los diseñadores de este prototipo de sistema de combate prefirieron desechar la inyección intrusiva de adrenalina, sustituyéndola por sustancias coagulantes. + + + Sistema de campaña Esquife + + + Esta modificación es bastante cara, pero suele aplicarse a las armas de nueva generación. + + + Instalación de cerrojo macizo + + + El engrosado de la sección del cerrojo impide que la energía se disipe, lo que mejora la trayectoria. + + + Engrosado de la sección del cerrojo con piezas sintéticas + + + Pese a su nombre, lo que se sustituye es el cerrojo, pues debe resistir el efecto de una mayor cadencia de fuego. + + + Liberación automática rápida + + + El extractor de gas tiene un bloque que se mueve a la misma velocidad, absorbiendo parte del retroceso. + + + Instalación de extractor de gas con un bloque móvil + + + Un segundo pistón desplaza el contrapeso para compensar el impulso del mecanismo del cerrojo. + + + Instalación de pistón de gas adicional + + + Rociador protector que aumenta la fiabilidad, y lo que es más importante, garantiza el aislamiento, impidiendo así que la energía se disipe en exceso. + + + Rociador protector de la sección del cerrojo + + + La función de los surcos del cuerpo el arma es reducir la fricción y atrapar partículas pequeñas, evitando así la contaminación del mecanismo del cerrojo. + + + Instalación de surcos longitudinales + + + Reducir el diámetro de la cámara de gas con engrosadores sintéticos aumenta la velocidad de las balas. + + + Energía de gas dirigida + + + En su recorrido hasta su posición inicial, el cerrojo redirige el aire a través de la recámara del cañón para enfriarlo. + + + Enfriamiento forzado + + + El cerrojo se desliza a lo largo del cañón, impidiendo que la boca del arma se eleve. + + + Instalación de cerrojo deslizante + + + La instalación de un pistón de gas impide que entre gas en la pieza del cerrojo, lo que reduce considerablemente la suciedad del arma. + + + Instalación de pistón de gas + + + Este sistema acumula parte de los gases usando la sección del cerrojo para mejorar su movimiento. + + + Sistema de recolección de energía de gas + + + La sustitución de las piezas automáticas es más una optimización que una mejora del pistón de gas. Ofrece un aumento considerable en la cadencia de disparo. + + + Pistón de gas de recorrido corto + + + Los sistemas de encaje por rodillo suelen usarse en las armas modernas porque reducen el retroceso y mejoran la agrupación de disparos. + + + Cambio a sistema de rodillo con cerrojo semilibre + + + Absorbiendo parte del calor, las piezas reducen la temperatura del arma mientras se dispara. + + + Piezas absorbedoras de calor + + + El aumento del recorrido del pistón aumenta ligeramente la longitud del arma, pero mejora mucho su trayectoria. + + + Pistón de gas de recorrido largo + + + Distribuye equitativamente el retroceso por toda el arma cuando dispara, haciendo que sea menos pronunciado. + + + Instalación de amortiguador especial de piezas móviles + + + El enfriamiento simétrico de una parte del cañón se debe a la instalación de un eyector que impide que el arma se caliente. + + + Sistema de enfriamiento forzado uniforme + + + Aumenta la cadencia de disparo sin sobrecargar otras piezas con un retroceso adicional. + + + Sección de cerrojo móvil + + + Mejora la trayectoria facilitando la transferencia del impulso a la bala. + + + Sistema de cierre del cañón para la sección del cerrojo + + + Suaviza el retroceso ralentizando el movimiento del cerrojo. + + + Sistema de ralentización de cerrojo + + + El rociador protege las armas de un desgaste prematuro. + + + Rociador protector de la sección del cerrojo + + + Mejora la trayectoria facilitando la transferencia del impulso a la bala. + + + Sistema de cierre sesgado del cañón + + + Un cerrojo cerrado más pesado que impide que la sección del cerrojo de la pistola falle. + + + Cerrojo reforzado y cerrado + + + Pequeño amortiguador que absorbe parte del retroceso. + + + Amortiguador de retroceso de polímero + + + La instalación de un separador de acero ayuda a reducir el retroceso. + + + Instalación de un separador de cierre con surcos espirales + + + La trayectoria se mejora aumentando el movimiento del cerrojo y reforzando el mecanismo de retroceso. + + + Movimiento del cerrojo mejorado + + + El recorrido corto aumenta considerablemente la cadencia de disparo sin perder trayectoria. + + + Configuración de cerrojo de recorrido corto + + + El recorrido largo imprime más energía a las balas. + + + Configuración de cerrojo de recorrido largo + + + La sustitución de las piezas automáticas es más una optimización que una mejora del pistón de gas. Ofrece un aumento considerable en la cadencia de disparo. + + + Configuración de uso de energía del retroceso de recorrido corto + + + La instalación de este módulo mejora considerablemente la agrupación sin perder velocidad de disparo. + + + Módulo de retroceso combinado de doble resorte + + + La introducción de orificios de compensación adicionales reduce significativamente el retroceso. + + + Compensador integrado de elevación del cañón + + + Modernización de las piezas automáticas de la pistola ideal para el fuego automático. + + + Modalidad de fuego automático + + + Mejora de las piezas automáticas de la pistola ideal para disparar ráfagas de tres proyectiles. + + + Modalidad de ráfaga de tres disparos + + + Coste + + + No se puede instalar + + + Instalada + + + Confirma que quieres instalar: + + + Sel. autom. de objetivo + + + Sel. autom. de objetivo + + + Mira óptica 5x + + + Mira óptica 6x + + + Escáner de infrarrojos + + + Peso blindaje personal + + + Disp. visión noct. 2 gen. + + + Disp. visión noct. 3 gen. + + + Soporte para mira óptica + + + Silenciador integrado + + + Lanzagranadas acoplado + + + Curación de heridas + + + Restauración de salud + + + Disp. visión noct. 1 gen. + + + Mira ajustable + + + Mira de alto contraste + + + Poten. servomotores + + + Durabilidad del traje + + + No está claro cómo funciona el arma. No puedes repararla sin información adicional sobre su diseño. + + + El técnico no puede realizar esta modificación + + + Esta pieza ya ha sido modificada + + + No tienes suficiente dinero + + + No usa disparos + + + Modo fuego automático + + + Modo ráfaga de 3 disparos + + + Número de contenedores + + + el técnico necesita vodka + + + el técnico necesita herramientas para tareas básicas + + + el técnico necesita herramientas de trabajo profesional + + + el técnico necesita herramientas de calibración + + + el técnico necesita datos adicionales + + + se necesitan modificaciones anteriores + + + Revestimiento protector Armadillo con base de cristales de zafiro + + + Matriz de titanio y berilio reforzada + + + Revestimiento adicional de fibra de carbono + + + Subcapa de tejido de caucho + + diff --git a/gamedata/configs/text/spa/st_land_names.xml b/gamedata/configs/text/spa/st_land_names.xml new file mode 100644 index 0000000..01c39a4 --- /dev/null +++ b/gamedata/configs/text/spa/st_land_names.xml @@ -0,0 +1,171 @@ + + + + Anomalía Garra + + + Anomalía Bosque de hierro + + + Aserradero + + + Complejo de la antena de Krug + + + Planta de tratamiento de basura + + + Anomalía Circo + + + Puesto de guardabosques + + + Skadovsk + + + Granja quemada + + + Anomalía Caldero + + + Pantano + + + Izumrudnoye + + + Shevchenko + + + Planta de dragado + + + Grúas del muelle + + + Anomalía Roblepino + + + Estación de servicio + + + Vieja barcaza + + + Anomalía Cicatriz + + + Puente Preobrazhensky + + + Meseta sur + + + Talleres de la subestación + + + La anomalía del Cenizal + + + Torre de refrigeración + + + Subestación + + + Anomalía Plavni + + + Fábrica de cemento + + + Kopachy + + + Yanov + + + Cantera + + + Búnker de los científicos + + + Complejo Volkhov AA + + + Arboleda anómala + + + Aparcamiento + + + Punto de control + + + La anomalía de Bitumen + + + Túnel este + + + Almacén de contenedores + + + Complejo de ventilación + + + Pistas de aterrizaje + + + La anomalía del Baño de Cemento + + + Central de Júpiter + + + Cine Prometeo + + + Puerto fluvial + + + Vieja estación de servicio + + + Colegio + + + Hospital + + + Estación de servicio de Yubileiny + + + Lavandería + + + Jardín de infancia + + + Bloque de apartamentos + + + Tienda de ultramarinos + + + Almacén + + + Librería + + + Anomalía Volcán + + + Anomalía Parra + + diff --git a/gamedata/configs/text/spa/st_mp_mapdesc.xml b/gamedata/configs/text/spa/st_mp_mapdesc.xml new file mode 100644 index 0000000..cb5e03b --- /dev/null +++ b/gamedata/configs/text/spa/st_mp_mapdesc.xml @@ -0,0 +1,126 @@ + + + + Estación de vehículos + + + Un lugar muy extraño. Este silencioso edificio parece guardar muchos secretos, pero los stalkers vienen aquí por otra razón: en esta peligrosa zona se encuentran numerosos artefactos. Piensa y actúa con rapidez y seguro que la suerte estará de tu parte. + + + Un lugar muy extraño. Este silencioso edificio parece guardar muchos secretos, pero los stalkers vienen aquí por otra razón: sus numerosos artefactos. + + + Un almacén que está a la entrada de la Zona. Sus tractores, autobuses y camiones se han detenido para siempre... Aquí todavía no se ha encontrado ningún artefacto, pero el lugar es popular entre los saqueadores, que se dedican a perseguir novatos para asesinarlos y quedarse con su botín. Ponte a cubierto en los edificios o detrás de los vehículos, y ten cuidado con los enemigos de los tejados. + + + Un almacén que está a la entrada de la Zona. Sus tractores, autobuses y camiones se han detenido para siempre... + + + Edificio de almacenes abandonados y territorio adyacente. Aquí se pueden encontrar provisiones y equipo, pero buscando mucho. Cuidado con las poderosas anomalías y los francotiradores del tejado del almacén: es una gran posición de ventaja ya que desde allí puede controlarse todo al área. + + + Edificio de almacenes abandonados y territorio adyacente. Cuidado con las poderosas anomalías y los francotiradores enemigos. + + + Un lugar fascinante y enigmático. Este estanque se construyó para realizar experimentos con personas y objetos, aunque su fin concreto sigue siendo un misterio. No hay artefactos, así que los stalkers solo se acercan por aquí en busca de extraños componentes y dispositivos. Vigila bien los tejados y recuerda que los niveles de radiación de esta área son extremadamente elevados. + + + Un lugar fascinante y enigmático. Este estanque se construyó para realizar experimentos con personas y objetos, aunque su fin concreto sigue siendo un misterio. + + + Esta peligrosa zona del Valle Oscuro se compone de una larga calle y de un instituto desierto. ¿Quién sabe las materias que se impartirían allí? Hoy en día, solo se puede aprender a sobrevivir. Ah, y echa un vistazo a los tejados... + + + Esta peligrosa zona del Valle Oscuro se compone de una larga calle y de un instituto desierto... + + + Esta fábrica siniestra y abandonada es el lugar de descanso de numerosos stalkers. Un sinfín de anomalías esperan a los visitantes a cada paso, pero eso no es impedimento para que mucha gente se acerque a este lugar, atraída como un imán por sus valiosos artefactos. ¡Cuidado con la radiación! + + + Esta fábrica siniestra y abandonada es el lugar de descanso de numerosos stalkers. + + + El parque de bomberos que se empleó a fondo para intentar salvar del desastre a la central nuclear de Chernóbil en 1986. La torre es una posición de ventaja excelente, desde el que se controlan los alrededores. Muy pocos suben a los pisos de arriba de los edificios, y es posible que tengan una buena razón para no hacerlo. Las facciones de la Zona llevan un tiempo enzarzadas en una batalla en esta área, para conseguir la mejor posición estratégica. + + + El parque de bomberos que se empleó a fondo para intentar salvar del desastre a la central nuclear de Chernóbil en 1986. La estación es una excelente posición táctica. + + + Parte de un enorme vertedero, en el que se volcaron montones de desechos radiactivos tras la catástrofe de 1986. La zona está llena de grúas oxidadas y equipamientos varios. Otros atractivos de la zona son los edificios abandonados y un enorme hangar. Por su proximidad al Cordón y su relativa abundancia de artefactos, suele ser visitada por muchos stalkers que buscan presas fáciles. + + + Parte de un enorme vertedero, en el que se volcaron montones de desechos radiactivos tras la catástrofe de 1986. + + + Un pequeño distrito de la enigmática ciudad de Limansk, con bloques de apartamentos abandonados y un edifico a medio construir entre ellos. La noticia de la aparición de varios artefactos caros en esta área corrió como la espuma por toda la Zona. Se construyeron varias carreteras hacia Limansk, y desde entonces los tiroteos no han cesado. + + + Un pequeño distrito de la enigmática ciudad de Limansk, con bloques de apartamentos abandonados y un edifico a medio construir entre ellos. + + + Un pueblo abandonado por la mano de Dios en lo más profundo de la Zona. Un lago pequeño, poco profundo y en desuso, repleto de vehículos abandonados. Este ambiente escalofriante te recordará que estás en la Zona. Cuidado con los francotiradores, pero recuerda: en la Zona triunfan los valientes. + + + Un pueblo abandonado por la mano de Dios en lo más profundo de la Zona. Un lago pequeño, poco profundo y en desuso, repleto de vehículos abandonados. Este ambiente escalofriante te recordará que estás en la Zona. + + + Una base militar abandonada con camiones y transporte blindado en desuso, barracas y cuarteles generales arrasados. Pero no te dejes engañar por su aspecto desértico: es una auténtica mina de oro de artefactos y, por tanto, puede haber un enemigo detrás de cada esquina. + + + Una base militar abandonada con camiones y transporte blindado en desuso, barracas y cuarteles generales arrasados. + + + Este antiguo pueblo es un lugar de lo más siniestro. Si tienes valor suficiente para entrar aquí, es posible que te den la bienvenida con un tiro en la cabeza. En ninguno de sus lugares estarás a salvo, así que confía en tu mira y en tu silenciador. + + + Este antiguo pueblo es un lugar de lo más siniestro. Si has llegado hasta aquí, no tendrás ni un momento de descanso. + + + Esto no es un estanque: es más bien un baño de sangre. Escucharás ecos de balas, explosiones y alaridos de agonía por todos sus pasillos de baldosas... Pocos stalkers saben cómo llegar y muchos menos han podido salir. + + + Esto no es un estanque: es más bien un baño de sangre. Escucharás ecos de balas y explosiones por sus pasillos de baldosas. + + + Una pequeña estación de tren cercana a la fábrica de Rostok. + + + Una pequeña estación de tren cercana a la fábrica de Rostok, llena de vagones y locomotoras oxidadas y detenidas para siempre en sus vías. Su gran abundancia de artefactos atrae a los stalkers más valientes de todos los rincones de la Zona. + + + Una base de reparaciones en las proximidades de un pequeño pueblo. Todos los vehículos en funcionamiento fueron confiscados tras el desastre de Chernóbil. Con el tiempo, el resto del equipamiento ha sido saqueado como piezas de repuesto. El área está llena de peligros, como pantanos y juncos radiactivos. Si tienes suerte, puede que encuentres algo realmente valioso. + + + Una base de reparaciones en las proximidades de un pequeño pueblo. El área está llena de peligros, como pantanos y juncos radiactivos. + + + Montones de metales oxidados ocultos tras paredes de cemento. Antes del cambio de siglo, la central funcionaba a pleno rendimiento mientras sus altavoces arengaban a los trabajadores con eslóganes socialistas. Pero el edificio lleva mucho tiempo abandonado. + + + Una central abandonada: solo quedan montones de metales oxidados ocultos tras paredes de cemento. + + + Un polideportivo de Pripyat, no muy lejos de la escuela abandonada. Los deportes que se practican por aquí han cambiado mucho desde 1986, así como el número de deportistas entusiastas. Los stalkers suelen venir aquí atraídos por la dudosa fama del lugar, sus botines y sus artefactos. A veces se quedan aquí para siempre. + + + Un polideportivo deportivo de Pripyat, no muy lejos de la escuela abandonada. + + + Un lugar muy extraño. Muchos se reían de los stalkers que afirmaban haberlo visto, pero sí es verdad que existe. Las anomalías gravitatorias han arrasado el suelo hasta crear un paisaje extraterrestre. Tres enormes torres dominan el área; también hay restos de equipo militar e islas flotantes de tierra que sobresalen del suelo. + + + Un lugar muy extraño. Las anomalías gravitatorias han arrasado el suelo hasta crear un paisaje extraterrestre. + + + Los restos de la fábrica de Rostok, antes de que Deber se asentase aquí. Es un lugar siniestro que, sin embargo, alberga numerosos artefactos. Cada hangar o almacén vacío está lleno de peligros mortales. Ten muchísimo cuidado y fíjate bien en la torre blanca... + + + Los restos de la fábrica de Rostok, antes de que Deber se asentase aquí. Es un lugar siniestro que, sin embargo, alberga numerosos artefactos. + + + Pocos se atreven a adentrarse en la ciudad desierta de Pripyat, antiguo hogar de los trabajadores de la central de Chernóbil. A pesar de esto, se han producido salvajes tiroteos en las calles de la ciudad muerta, en una pequeña parte de la ciudad comprendida entre el cine Prometeo, el muelle y las casas de la calle Kurchatova. + + + Se han producido salvajes tiroteos en las calles de la ciudad muerta, en una pequeña parte de la ciudad comprendida entre el cine Prometeo, el muelle y las casas de la calle Kurchatova. + + diff --git a/gamedata/configs/text/spa/st_mp_speechmenu.xml b/gamedata/configs/text/spa/st_mp_speechmenu.xml new file mode 100644 index 0000000..cadcec9 --- /dev/null +++ b/gamedata/configs/text/spa/st_mp_speechmenu.xml @@ -0,0 +1,57 @@ + + + + ¡Atacad todos! + + + ¡Voy a por el artefacto! ¡Cúbreme! + + + ¡Sígueme! + + + De momento protege el artefacto. ¡No lo cojas todavía! + + + ¡Mantengo mi posición! + + + ¡Mantened posiciones! + + + ¡Coge el artefacto! ¡Yo te cubro! + + + ¡Necesito ayuda! + + + No tengo dinero. ¡Cómprame equipo! + + + No. + + + ¡Nadie a la vista! + + + ¡Informa! + + + ¡Retirada! + + + ¡Devuelve el artefacto! + + + Bien. + + + ¡Cállate! + + + No os separéis. + + + ¡Coge el artefacto! + + diff --git a/gamedata/configs/text/spa/st_mp_teamdesc.xml b/gamedata/configs/text/spa/st_mp_teamdesc.xml new file mode 100644 index 0000000..63258ef --- /dev/null +++ b/gamedata/configs/text/spa/st_mp_teamdesc.xml @@ -0,0 +1,15 @@ + + + + Los anarquistas de la Zona. Dicen que la Zona es un santuario de libertad y consideran que todas las leyes, normas y convenciones del exterior no son válidas aquí. Su lema es "haz lo que quieras y ocúpate de tus asuntos". Libertad hace frente a los intentos del gobierno por controlar la Zona y está en lucha con los mercenarios. Sus miembros están equipados principalmente con armas de fuego soviéticas y rusas. + + + Facción Libertad (stalkers libres) + + + Estos matones aventureros vienen de todo el mundo y aceptan los trabajos más sucios. Su lema es: "El dinero es lo primero". Luchan por el control total de los artefactos de la Zona, siempre que siga habiendo demanda. Los mercenarios están equipados principalmente con armas occidentales. + + + Facción de los mercenarios (los matones) + + diff --git a/gamedata/configs/text/spa/st_quests_general.xml b/gamedata/configs/text/spa/st_quests_general.xml new file mode 100644 index 0000000..fbebf30 --- /dev/null +++ b/gamedata/configs/text/spa/st_quests_general.xml @@ -0,0 +1,18 @@ + + + + ¡Atención! La emisión comenzará en: + + + Busca el lugar más cercano para guarecerte inmediatamente de la emisión. + + + No debes salir de tu refugio mientras dure la emisión. + + + Emisión: ponte a cubierto + + + Emisión: espera a cubierto + + diff --git a/gamedata/configs/text/spa/st_quests_jupiter.xml b/gamedata/configs/text/spa/st_quests_jupiter.xml new file mode 100644 index 0000000..c8dfafa --- /dev/null +++ b/gamedata/configs/text/spa/st_quests_jupiter.xml @@ -0,0 +1,687 @@ + + + + Deudas: lleva el dinero a los bandidos + + + Vano debe dinero a los bandidos por un traje y no puede saldar la deuda porque los intereses se han disparado. Te ha pedido que le soluciones la papeleta. + + + Deudas: regresa junto a Vano + + + Cuéntale a Vano cómo has zanjado su deuda. + + + Deudas: habla con los bandidos + + + Las negociaciones por la deuda de Vano se han complicado. Acaba con los bandidos. + + + Rehén: pide la recompensa a los amigos de Mitay + + + Mitay ha sido liberado. Reúnete con sus amigos en el bar para recibir tu recompensa. + + + Rehén: libera a Mitay + + + Rehén: habla con Osopardo para asegurarte de que está listo + + + Debes hablar con Osopardo antes de intentar liberar al rehén. + + + Rehén: libera a Mitay por la fuerza + + + Debes eliminar a los bandidos para liberar al stalker Mitay. + + + Rehén: reúnete con los stalkers + + + Los stalkers te ayudarán a liberar al rehén. Tienes que reunirte con ellos por la noche para atacar todos juntos a los bandidos. + + + Rehén: acuerda el precio del rescate de Mitay + + + Acuerda con el líder de los bandidos el rescate a pagar por el stalker llamado Mitay. + + + Libera a un stalker llamado Mitay que ha sido capturado por los bandidos. + + + Rehén: saca a Mitay del campamento de los bandidos + + + Quedarse en el campamento de los bandidos es demasiado peligroso. Debes escoltar a Mitay fuera del campamento. + + + Rehén: habla con Mitay + + + Mitay está relativamente seguro. Discute con él vuestro próximo paso. + + + Camino a Pripyat: habla con el técnico sobre el paso subterráneo + + + Los documentos que has encontrado señalan la existencia de un paso subterráneo hacia Pripyat situado bajo la central de Júpiter. No hay energía en el paso, está lleno de gas y la entrada ha sido bloqueada. Debes encontrar un técnico que pueda activar el generador y abrir la cerradura de entrada. + + + El módulo de memoria está en manos expertas. Tienes que esperar a que lo desbloqueen. + + + Aparato no tripulado: desbloquea el módulo de memoria + + + Aparato no tripulado: recupera el módulo de memoria que le diste a Nitro + + + Aparato no tripulado: recupera el módulo de memoria que le diste a Novikov + + + Nitro ha desbloqueado el módulo de memoria. Deberías recuperarlo para ver la información que contiene. + + + Novikov ha desbloqueado el módulo de memoria. Deberías recuperarlo para ver la información que contiene. + + + Has logrado recuperar un módulo de memoria del aparato no tripulado. Debes desbloquearlo para acceder a su información. + + + Aparato no tripulado: espera a que el módulo de memoria sea desbloqueado + + + Oasis: consigue pruebas + + + El oasis ha sido encontrado, y realmente tiene propiedades curativas. Tienes que encontrar pruebas para los científicos. + + + El oasis: lleva las pruebas a los científicos + + + El oasis ha sido encontrado, y realmente tiene propiedades curativas. Como prueba, tienes que llevarles a los científicos el artefacto que has encontrado. + + + El oasis: comprueba si la leyenda es cierta + + + Ozersky, el científico del búnker, te ha pedido que busques el oasis, un lugar legendario dentro de la Zona. Según los rumores hay un manantial de aguas curativas en él, pero nadie sabe con certeza si existe o no. + + + Kopachy: acompaña al tío Yar + + + El tío Yar necesita ayuda con un asunto. Ve al pueblo de Kopachy con él. + + + Kopachy: elimina a los mercenarios + + + Parece que el tío Yar había previsto la llegada de los mercenarios. Debes eliminarlos. + + + Kopachy: no te separes del tío Yar + + + El tío Yar te ha pedido que te quedes junto a él sin hacer ruido. + + + Kopachy: habla con el tío Yar + + + Los mercenarios están muertos. Deberías hablar con el tío Yar para que te explique lo que ha pasado. + + + Emisiones psíquicas intermitentes: lleva la formación anómala a los científicos + + + Llévale a Hermann la muestra que has encontrado. Este objeto medio transformado por la exposición a las anomalías parece ser el origen de las emisiones psíquicas intermitentes. + + + Emisiones psíquicas intermitentes: investiga el origen + + + Investiga el túnel en busca de alguna formación anómala. Los científicos creen que el campo psíquico intermitente tiene un origen, probablemente similar a un artefacto. + + + Emisiones psíquicas intermitentes: reúnete con el escuadrón de Topol + + + El escuadrón de Topol fue al túnel de las emisiones psíquicas intermitentes. Debes reunirte con ellos allí. + + + Emisiones psíquicas intermitentes: habla con Topol + + + Acompaña al escuadrón de Topol al túnel de las emisiones psíquicas intermitentes. Los stalkers vigilarán el túnel mientras tú buscas lo que quieren los científicos. + + + Deberías llevarle a Nitro todo el material de radio que has encontrado. + + + Nitro necesita material de radio. Puedes darle lo que ya tienes o ir a buscar más. + + + Equipo de radio: encuentra materiales para Nitro + + + Nitro necesita material de radio. Dice que deberías buscarlo en la fábrica de cemento. + + + Robo: descubre quién ha sido el responsable del robo + + + Pregúntale a los stalkers de Yanov si han visto a alguien sospechoso que podría haber robado el contenido de una caja personal. + + + Robo: investiga la subestación + + + Tienes que investigar la subestación; el stalker presuntamente responsable del robo se dirigía hacia allí. + + + Robo: coge tus cosas + + + Todos los objetos robados por Snag deberían estar en su escondite de las cloacas, detrás de la subestación. + + + Planta anómala: consigue una muestra de la planta + + + Una zona llena de vegetación anómala ha aparecido junto al borde de la cantera. Ozersky te ha pedido que obtengas una muestra para su investigación. + + + Planta anómala: dale la muestra a Ozersky + + + Debes llevarle la muestra de la planta a Ozersky. A cambio, Ozersky convencerá a Hermann de que te entregue un traje científico. + + + Cacería: elimina a los mutantes no identificados + + + Un grupo de stalkers se ha topado con mutantes no identificados en los túneles que hay al norte de la central de Júpiter. Investiga la zona y elimina a los mutantes. + + + Cacería: cobra la recompensa que ofrecía Trapper por matar a los mutantes del túnel + + + Los mutantes de los túneles del norte de la central de Júpiter han sido eliminados. Deberías informar a Trapper y cobrar tu recompensa. + + + Hipótesis: coloca el escáner en el centro del derrumbamiento + + + Coloca el escáner en el centro del derrumbamiento para corroborar la hipótesis de Ozersky. + + + Hipótesis: espera a que termine el experimento + + + El escáner ha sido activado y está empezando a captar la presencia de mutantes. Debes esperar a que se haya recabado suficiente información para confirmar o refutar la hipótesis. + + + Hipótesis: coge el escáner + + + Se han obtenido suficientes datos para confirmar la hipótesis de Ozersky. Coge el escáner. + + + Hipótesis: dale el escáner a Ozersky + + + Debes darle el escáner a Ozersky. Los datos obtenidos deberían bastar para confirmar su hipótesis. + + + Cacería: mata a los chupasangres de pantano + + + Un grupo de chupasangres de pantano ha sido avistado en la Ciénaga, detrás de la fábrica de cemento. Los stalkers locales te han pedido que los elimines. + + + Cacería: cobra la recompensa que ofrecía Trapper por matar a los chupasangres de pantano + + + Los chupasangres de pantano están muertos. Deberías hablar con Trapper para cobrar la recompensa ofrecida por los stalkers locales. + + + Cacería nocturna: mata a la quimera + + + Las quimeras son depredadores nocturnos; nadie sabe dónde se oculta ésta durante el día. Mátala por la noche, cuando salga a cazar junto al complejo de ventilación. + + + Cacería nocturna: dile a Trapper que la quimera está muerta + + + La quimera asesina está muerta; el cazador Fox ha sido vengado. Díselo a Trapper. + + + Herramientas: llévale herramientas a Nitro + + + Nitro te ha pedido que le consigas dos juegos de herramientas: uno para tareas básicas y otro para tareas de precisión. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Nitro + + + Nitro te ha pedido que le consigas dos juegos de herramientas: uno para tareas básicas y otro de calibración. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Nitro + + + Nitro te ha pedido que le consigas un juego de herramientas para tareas básicas. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Nitro + + + Nitro te ha pedido que le consigas dos juegos de herramientas: uno para tareas de precisión y otro de calibración. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Nitro + + + Nitro te ha pedido que le consigas un juego de herramientas para tareas de precisión. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Nitro + + + Nitro te ha pedido que le consigas un juego de herramientas de calibración. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Nitro + + + Nitro te ha pedido que le consigas tres juegos de herramientas: uno para tareas básicas, otro para tareas de precisión y otro de calibración. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Pripyat 1: encuentra un traje con un módulo de respiración de ciclo cerrado + + + Necesitas un traje con módulo de respiración de ciclo cerrado para atravesar el paso subterráneo Pripyat 1; está inundado de dióxido de carbono mezclado con una sustancia desconocida. + + + Pripyat 1: lleva a Strider ante Zulu + + + Debes llevar a Strider ante Zulu y presentarlo como nuevo miembro del escuadrón. Zulu podría no tomarse a bien la visita de un soldado vestido con un traje del Monolito. + + + Pripyat 1: habla con Strider sobre un traje protector + + + El paso subterráneo Pripyat 1 está inundado de dióxido de carbono mezclado con una sustancia desconocida. Debes decirle a Strider que necesitará un traje con un módulo de respiración de ciclo cerrado para pasar. + + + Pripyat 1: organiza un escuadrón para ir a Pripyat + + + Nitro podría abrir la cerradura del paso de Pripyat 1, pero se niega a entrar en la central de Júpiter sin protección. Te ha recomendado que reúnas a varios hombres para atravesar el paso subterráneo. Ya tienes a Zulu, y él te ha sugerido que le envíes nuevos reclutas. + + + Pripyat 1: habla con Zulu sobre ir a Pripyat + + + Nitro podría abrir la cerradura del paso de Pripyat 1, pero se niega a entrar en la central de Júpiter sin protección. Te ha recomendado que reúnas a varios hombres para atravesar el paso subterráneo. Sugiere que hables con Zulu para que te ayude a reunir un escuadrón. + + + Pripyat 1: lleva a Sokolov ante Zulu + + + Sokolov ha accedido a ir a Pripyat y podría llevarse un traje científico del búnker. Deberías llevarlo ante Zulu y presentarlo como nuevo miembro del escuadrón. + + + Pripyat 1: habla con Sokolov sobre un traje protector + + + Pripyat 1: habla con Ozersky sobre un traje para Sokolov + + + Sokolov está dispuesto a protegerse con un traje científico, pero Hermann no dejará que se lo lleve del búnker. Deberías hablar con Ozersky; es más simpático y receptivo. + + + Pripyat 1: habla con Sokolov sobre el traje científico + + + Ozersky está muy contento con la muestra de planta. Te ha pedido que le digas a Sokolov que Hermann le dejará llevarse el traje científico. + + + El paso subterráneo Pripyat 1 está inundado de dióxido de carbono mezclado con una sustancia desconocida. Debes decirle a Sokolov que necesitará un traje con un módulo de respiración de ciclo cerrado para pasar. + + + Pripyat 1: consíguele dinero a Vano para el traje + + + El traje que Vano debe pagar a los bandidos tiene un módulo de respiración de ciclo cerrado. Vano tuvo que empeñarlo para saldar sus deudas, y necesita 3.000 para recuperarlo. + + + Pripyat 1: lleva a Vano ante Zulu + + + Vano está dispuesto a ir a Pripyat. Debes llevarlo ante Zulu y presentarlo como nuevo miembro del escuadrón. Vano puede recuperar su traje por el camino. + + + Pripyat 1: habla con Vano sobre un traje protector + + + El paso subterráneo Pripyat 1 está inundado de dióxido de carbono mezclado con una sustancia desconocida. Debes decirle a Vano que necesitará un traje con un módulo de respiración de ciclo cerrado para pasar. + + + Pedernal, alias Urraca, es un cabrón escurridizo. Debes revelar su paradero a los stalkers de Zaton o a otras facciones. Así aprenderá. + + + Está claro que Pedernal está presumiendo de cosas que ni siquiera ha visto. Estaría bien dejarlo en evidencia delante de todos. + + + Afirmaciones falsas: encárgate de Pedernal + + + Es evidente que Pedernal se está llevando el mérito por los logros de otros. Debe aprender a morderse la lengua. + + + Pedernal se está pasando con sus alardes; deberías hablar con él y hacerle ver tu opinión. + + + Pedernal, alias Urraca, es un cabrón escurridizo. Debes revelar su paradero a los stalkers de Zaton o a otras facciones; sería una buena venganza. + + + Investigación de anomalías: consigue los escáneres del técnico + + + Dile a Novikov que te entregue los escáneres. Hermann quiere obtener datos sobre la formación de anomalías, y para eso hay que colocar los escáneres en el centro de varias de ellas. + + + Investigación de anomalías: coloca el escáner en la anomalía + + + Investigación de anomalías: cobra la recompensa + + + Cobra la recompensa que te prometieron por colocar escáneres en las anomalías. Ahora que están en posición, Hermann podrá recabar los datos que quería. + + + Coloca el escáner en el centro de la anomalía. Hermann quiere obtener datos sobre la formación de anomalías, y para eso hay que colocar los escáneres en el centro de varias de ellas. + + + Contrato con los científicos: lleva el artefacto Kolobok a Garry + + + Garry necesita el artefacto Kolobok para cumplir su contrato con los científicos. Llévaselo. + + + Contrato con los científicos: lleva el artefacto Trozo de carne a Garry + + + Garry necesita el artefacto Trozo de carne para cumplir su contrato con los científicos. Llévaselo. + + + Contrato con los científicos: lleva los artefactos Trozo de carne y Kolobok a Garry + + + Garry necesita los artefactos Trozo de carne y Kolobok para cumplir su contrato con los científicos. Llévaselos. + + + Contrato con los científicos: artefactos entregados + + + Garry tiene ambos artefactos; su contrato ha sido cumplido. + + + Historia de Deber: dale la PDA del fundador de Deber a quien pueda interesar + + + Has encontrado la PDA personal del fundador de Deber, que murió en la anomalía. Deberías dársela a quien puedan interesar los últimos instantes del líder de la facción. + + + Actividad anómala: investiga el lugar usando un detector mejorado + + + Los escáneres de los científicos han captado una actividad inusual al norte del búnker. Investiga esa zona usando un detector mejorado. + + + Proteger a los científicos: encuentra gente de confianza + + + El búnker de los científicos está indefenso. Debes encontrar gente de confianza para protegerlo. + + + Proteger a los científicos: regresa junto a Hermann para cobrar la recompensa + + + Has encontrado guardias para el búnker de los científicos. Deberías regresar junto a Hermann para cobrar la recompensa merecida. + + + Últimas innovaciones: encuentra los documentos en la central de Júpiter + + + Hermann está interesado en las últimas innovaciones de la central de Júpiter. Encuentra los documentos en la sección administrativa. + + + Últimas innovaciones: llévale los documentos a Hermann + + + Los documentos que has encontrado indican que todos los registros técnicos han sido trasladados. Aunque no es mucho, deberías darle la información a Hermann. + + + Últimas innovaciones: llévale los documentos y la PDA de Negro a Hermann + + + Unos mercenarios nos atacaron mientras buscabas los documentos. Según la PDA que le cogiste a Negro, su líder, fueron contratados para evitar que los científicos consiguieran esos documentos. Por otro lado, los datos que has obtenido indican que los registros técnicos fueron trasladados fuera de la central. Deberías comunicárselo a Hermann y enseñarle la PDA de Negro. + + + Supervivientes del Monolito: habla con los habitantes de Yanov sobre el refugio + + + Un escuadrón de soldados del Monolito se ha liberado del embrujo que los había poseído. Están buscando un refugio donde protegerse de emisiones y mutantes. Tienes que hablar con los habitantes de la estación de Yanov para que permitan a los soldados refugiarse allí. + + + Lleva a los oficiales de reclutamiento de Deber al anterior escuadrón del Monolito. Si se unen a Deber, podrán protegerse de las emisiones y los mutantes en la estación de Yanov. + + + Lleva a los oficiales de reclutamiento de Libertad al anterior escuadrón del Monolito. Si se unen a Libertad, podrán protegerse de las emisiones y los mutantes en la estación de Yanov. + + + Supervivientes del Monolito: lleva a los oficiales de reclutamiento al anterior escuadrón del Monolito + + + Investigación de anomalías: protege a los stalkers + + + Parece que la medición de datos en la anomalía ha atraído a varios mutantes. Debes proteger a los stalkers hasta que hayan obtenido los datos requeridos. + + + Investigación de anomalías: protege a los stalkers + + + Parece que la medición de datos en la anomalía ha atraído a varios zombis de Kopachy. Debes proteger a los stalkers hasta que hayan obtenido los datos requeridos. + + + Investigación de anomalías: habla con Hermann + + + Ya se han obtenido todas las medidas de la anomalía. Informa a los científicos y cobra tu recompensa. + + + Investigación de anomalías: habla con los stalkers + + + Habla con el escuadrón de stalkers responsable de la obtención de medidas; tienes que decidir a qué anomalía dirigirte. + + + Investigación de anomalías: habla con los stalkers + + + Ya se han obtenido todas las medidas de la anomalía; puedes volver al búnker de los científicos con el escuadrón. + + + Investigación de anomalías: habla con los stalkers + + + Se han obtenido medidas de la anomalía; habla con el resto del escuadrón para saber adónde ir ahora. + + + Investigación de anomalías: protege a los stalkers + + + Hermann te ha ofrecido trabajo protegiendo a los stalkers mientras recogen datos en las anomalías. + + + Pez Raya 4: investiga el lugar del accidente + + + Pez Raya 4: averigua por qué se han quemado los aparatos + + + Investiga el lugar del accidente del Pez Raya 4. + + + Debes encontrar el origen de la potente descarga eléctrica que alcanzó al helicóptero Pez Raya 4. + + + Pez Raya 1: dale la caja negra a un técnico para que la desencripte + + + La caja negra del Pez Raya 1 sigue intacta. Debes llevársela a un técnico para que te la desencripte y puedas acceder a los datos que contiene. + + + Pez Raya 1: espera a que se complete el desencriptado de la caja negra + + + Nitro ha accedido a desencriptar la caja negra. Dijo que tardaría unas tres horas. Debes esperar a que termine. + + + Pez Raya 1: vuelve junto a Nitro para obtener la información de la caja negra + + + Nitro ya debería haber terminado de desencriptar la caja negra. Ve a verle para averiguar qué contiene. + + + Pez Raya 1: investiga el lugar del accidente + + + Investiga el lugar del accidente del Pez Raya 1. + + + Pripyat 1: ve a Pripyat + + + Debes atravesar el paso subterráneo Pripyat 1 y alcanzar el punto de evacuación militar de Pripyat. + + + Camino a Pripyat: investiga el laboratorio químico de la central de Júpiter + + + En el laboratorio químico debería haber información que explique por qué se inundó el paso subterráneo Pripyat 1 con una especie de gas. + + + Camino a Pripyat: investiga la sección administrativa de la central de Júpiter + + + El guía no conoce ninguna ruta segura a Pripyat, pero te ha indicado dónde buscar información sobre los túneles subterráneos que conectan la central de Júpiter con la ciudad. Deberías empezar por la sección administrativa. + + + Camino a Pripyat: investiga la sección del laboratorio de la central de Júpiter + + + Los documentos que has encontrado en la sección administrativa mencionan la evacuación del personal de la central de Júpiter. Los registros de este procedimiento deberían estar en la sección del laboratorio. + + + Camino a Pripyat: comprueba la cerradura de transporte del paso subterráneo Pripyat 1 + + + La entrada al paso subterráneo se halla tras el cierre de transporte. Busca información sobre el paso en esta zona. + + + Camino a Pripyat: investiga el Departamento 1 de la central de Júpiter + + + En el Departamento 1 debería haber información sobre el paso subterráneo Pripyat 1. Deberías buscarla, podría resultarte útil. + + + Camino a Pripyat: investiga el departamento de entregas de la central de Júpiter + + + A juzgar por la nota del laboratorio, los encargados de la evacuación fueron los miembros del departamento de entregas; deberías buscar allí también. + + + Camino a Pripyat: investiga el taller de reparaciones de la central de Júpiter + + + El departamento de entregas tenía información sobre las pérdidas ocurridas durante el transporte de algo denominado objeto 62. Según los informes, los del taller de reparaciones tenían que encargarse de ello; deberías ir a mirar. + + + Camino a Pripyat: habla con el guía + + + Según la grabación de la caja negra de uno de los helicópteros, las unidades del ejército tenían que encontrarse en el punto de evacuación B28. A juzgar por los mapas hallados en el otro helicóptero que participó en la misión, este punto está en Pripyat. Tendrás que encontrar un modo de llegar hasta allí; habla con el guía. + + + Almacén de Deber: coge lo que te has ganado + + + Almacén de Deber: reúnete con Morgan + + + El comerciante Morgan te ha proporcionado acceso al almacén de Deber como pago por tu silencio. Tienes que reunirte con él junto a la cantera. + + + Debes abrir la puerta para continuar. + + + Debes abrir la puerta para continuar. + + + Debes activar la corriente de la puerta para continuar. + + + Debes desbloquear la puerta para continuar. Probablemente puedas hacerlo desde la sala de control. + + + Grupo de investigación: contrata a la gente adecuada + + + Un grupo de trabajo que trabajaba para los científicos ha perecido. Tienes que formar un nuevo grupo para que la investigación siga. + + + Grupo de investigación: vuelve con Hermann para recoger la recompensa + + + Has encontrado a la gente adecuada para un nuevo grupo de investigación. Ahora vuelve con Hermann y recoge tu recompensa. + + + Pripyat 1: completa la misión de Ozersky + + + Tienes que completar la misión de Ozersky en la planta anómala y conseguir un traje protector para Sokolov. + + + Nitro necesita material de radio. Lo encontrarás en la fábrica de cemento. + + + Fue Pedernal quien dejó morir al disidente en la anomalía. Habla con él y averigua por qué lo hizo. + + + Retribución: venga al disidente + + + Encuentra a quien dejó morir al disidente en la anomalía y después se marchó con su artefacto. Por desgracia, el disidente no logró decir de quién se trataba, solo se sabe que pertenece a Libertad. + + + El teniente coronel Shulga te ha permitido llevarte cualquier equipo que quieras del almacén de Deber si consigues cogerlo. + + + Loki te ha permitido llevarte cualquier equipo que quieras del almacén de Deber mientras lo controlen los soldados de Libertad. + + diff --git a/gamedata/configs/text/spa/st_quests_pripyat.xml b/gamedata/configs/text/spa/st_quests_pripyat.xml new file mode 100644 index 0000000..a3a403f --- /dev/null +++ b/gamedata/configs/text/spa/st_quests_pripyat.xml @@ -0,0 +1,345 @@ + + + + Objeto 62: busca documentos en el taller de pruebas + + + Tienes que buscar documentos relacionados con el objeto 62. Estos documentos deberían aclarar si el arma pudo haber sido usada para derribar los helicópteros. + + + Arma no identificada: ponte a cubierto en el edificio + + + Debes resguardarte en el edificio y rechazar el ataque del Monolito. + + + Arma no identificada: busca información + + + El arma no funciona, y no comprendes su mecanismo. Tienes que encontrar a un técnico que pueda sacar algo en claro de ella. + + + Arma no identificada: mata al líder del escuadrón del Monolito + + + Debes matar al líder del escuadrón del Monolito (el que está usando el arma no identificada). + + + Arma no identificada: registra los cadáveres de los soldados del Monolito + + + Los soldados de Monolith deberían tener el arma no identificada en su poder; encuéntrala. + + + Arma no identificada: habla con Cardán + + + Cardán ya debe de haberse recuperado de la resaca; es hora de hablar con él sobre el arma no identificada. + + + Arma no identificada: espera a que Cardán recupere el sentido + + + Probablemente Cardán sepa algo del arma; tendrás que hablar con él cuando despierte. + + + Fusil Gauss: habla con Kovalsky sobre el arma + + + Tienes que contarle a Kovalsky todo lo que has averiguado sobre el objeto 62. + + + Arma no identificada: únete al escuadrón + + + Tienes que unirte al escuadrón especial para capturar el arma entre todos. + + + Arma no identificada: recoge el arma + + + Tienes que recoger el arma del líder del escuadrón de Monolito. + + + Arma no identificada: llévale el arma a Kovalsky + + + Ya tienes el arma, ahora debes enseñársela a Kovalsky para averiguar si pudieron usarla para derribar los helicópteros. + + + Arma no identificada: participa en la emboscada al Monolito + + + La unidad de reconocimiento del ejército va a tender una emboscada al escuadrón del Monolito. Deberías ayudarles. + + + Fuerzas del Monolito: reúnete con los refuerzos + + + Kovalsky te ha enviado refuerzos para eliminar al escuadrón del Monolito atrincherado en la tienda de libros. + + + Fuerzas del Monolito: despeja la tienda de libros + + + Tienes que eliminar a todas las fuerzas del Monolito que hay en el edificio. Las unidades numerosas son un riesgo para el campamento militar. + + + Fuerzas del Monolito: investiga la extraña construcción + + + Había un extraño dispositivo en el edificio. Investígalo. + + + Laboratorio X8: busca documentos que hablen de los experimentos + + + La información que has encontrado menciona un laboratorio central denominado X8. Allí podría haber información sobre los experimentos secretos realizados en la Zona. + + + Unidad de reconocimiento desaparecida: encuentra al escuadrón + + + La unidad de reconocimiento enviada por Kovalsky desapareció tras una extraña comunicación. Debes encontrarla para averiguar qué ha sucedido. + + + Centinela desaparecido: investiga la zona donde murió el centinela + + + El centinela se comportaba de forma extraña; deberías investigar el motivo. + + + Centinela desaparecido: encuentra al centinela + + + Uno de los soldados se ha ausentado de su puesto; tienes que encontrarlo y averiguar por qué lo ha hecho. + + + Centinela desaparecido: mata al controlador + + + Había un controlador cerca del centinela desaparecido; debe ser eliminado. + + + Interferencia de radio: encuentra el escuadrón perdido + + + El escuadrón que buscaba el origen de la interferencia de radio ha desaparecido; tienes que encontrarlo. + + + Interferencia de radio: registra los cadáveres + + + Registra los cadáveres para determinar la causa de su muerte. + + + Interferencia de radio: registra el cadáver + + + Registra el cadáver para determinar la causa de su muerte. + + + Interferencia de radio: revienta la puerta + + + Tendrás que volar la puerta usando explosivos para abrirte paso al interior del edificio. + + + Interferencia de radio: investiga el sonido + + + Oyes un ruido procedente del interior de la nevera; parece que hay alguien encerrado dentro. Compruébalo. + + + Interferencia de radio: elimina el origen de la interferencia + + + Has encontrado el origen de la interferencia de radio; tienes que destruirlo. + + + Interferencia de radio: encuentra el origen de la interferencia + + + Hay una fuente de interferencia en el edificio: encuéntrala. + + + Interferencia de radio: encuentra los explosivos + + + El escuadrón que buscaba el origen de la interferencia llevaba explosivos. Úsalos para despejar la entrada del edificio. + + + Interferencia de radio: entra en el jardín de infancia + + + La señal procede del interior del jardín de infancia, así que tendrás que entrar. + + + Evacuación: cubre a los militares + + + Puede que Strelok esté muerto, pero aún tienes que ayudar al ejército a llegar hasta los helicópteros. + + + Evacuación: cubre a Strelok + + + El CG está interesado en la información que Strelok puede ofrecer. Debes llevarlo hasta los helicópteros. + + + Evacuación: llega hasta los helicópteros + + + Todo el mundo ha muerto; tendrás que llegar tú solo a los helicópteros. + + + Evacuación: habla con Kovalsky + + + Tienes que hablar con Kovalsky antes de que empiece la evacuación. + + + Evacuación: dile a Kovalsky que estás listo + + + Deberías informar a Kovalsky de que estás listo para la evacuación. + + + Evacuación: espera que termine la evacuación + + + Tienes que esperar al final de la evacuación. + + + Desconocido: investiga el origen de la señal + + + Kirillov ha identificado una extraña señal no muy lejos de la base. Tienes que investigar el origen de esta señal. + + + Desconocido: sigue la señal + + + Las coordenadas de la señal vuelven a estar disponibles; síguelas. + + + Desconocido: investiga la última posición conocida de la señal + + + La señal se desvaneció en el patio del edificio; investiga la última posición conocida de la señal. + + + Desconocido: prepárate para el ataque a la base + + + Regresa a la base militar y prepárate para un posible ataque. + + + Interferencia de radio: habla con Kovalsky + + + El coronel Kovalsky ha preguntado por ti. + + + Laboratorio X8: entra en el hueco del ascensor + + + La entrada al laboratorio subterráneo está bajo la estación de servicio de Yubileiny. La única forma de acceder a él es por el hueco del ascensor. + + + Laboratorio X8: encuentra el generador + + + Las puertas del hueco del ascensor no tienen energía.Tendrás que encontrar y activar el generador de emergencia para abrirlas. + + + Laboratorio X8: baja al laboratorio + + + Tienes que usar el ascensor para bajar al laboratorio X8, que está bajo la estación de servicio de Yubileiny. + + + Un disparo: elimina al mensajero + + + Debes eliminar al mensajero. Si muere, los mercenarios no podrán encontrar el laboratorio. + + + Un disparo: espera al equipo del cliente + + + Espera a que aparezca el equipo del cliente y mata a su líder. Si muere, los mercenarios no podrán encontrar el laboratorio. + + + Un disparo: mata al líder del escuadrón mercenario + + + Debes matar al líder del escuadrón mercenario. Si muere, los mercenarios se desbandarán y no supondrán una amenaza tan grande. + + + Un disparo: espera a que aparezcan los mercenarios + + + Debes esperar a que aparezcan los mercenarios y matar a su líder. Si muere, los mercenarios se desbandarán y no supondrán una amenaza tan grande. + + + Un disparo: habla con Kovalsky + + + Informa a Kovalsky del resultado de la misión. + + + Laboratorio X8: sal del complejo subterráneo o sigue buscando documentos + + + Has encontrado documentos y ya puedes irte del laboratorio, aunque puede haber más documentación en el complejo. + + + Laboratorio X8: sal del complejo subterráneo o sigue buscando documentos + + + Has encontrado documentos y ya puedes irte del laboratorio, aunque puede haber más documentación en el complejo. + + + Laboratorio X8: sal del complejo subterráneo + + + Parece que has reunido todos los documentos del laboratorio. Ya puedes irte del complejo subterráneo. + + + Fuerzas de Monolith: espera a los refuerzos. + + + Tienes que esperar a los refuerzos enviados por Kovalsky para eliminar a las fuerzas de Monolith de la librería. + + + Conversación tranquila: habla con Kovalsky + + + Tienes que hablar con Kovalsky. Parece que tiene algo importante que contarte. + + + Evacuación: resiste junto a los helicópteros + + + Debes proteger los helicópteros de los ataques enemigos hasta que puedan despegar. + + + Evacuación: reanima al médico + + + Parece que unas fuerzas sin identificar han vuelto a herir al médico. Reanímalo cuanto antes. + + + Evacuación: vuelve a los helicópteros + + + Debes volver a los helicópteros porque podrían despegar en cualquier momento. + + + Evacuación: vuelve a los helicópteros cuanto antes + + + Los helicópteros están listos para despegar. Debes montarte en uno inmediatamente, los pilotos no pueden esperar mucho. + + diff --git a/gamedata/configs/text/spa/st_quests_zaton.xml b/gamedata/configs/text/spa/st_quests_zaton.xml new file mode 100644 index 0000000..eb7e928 --- /dev/null +++ b/gamedata/configs/text/spa/st_quests_zaton.xml @@ -0,0 +1,780 @@ + + + + Un lugar seguro: llega hasta Skadovsk + + + Los únicos lugares relativamente seguros de la Zona son los campamentos de gran tamaño. El más próximo es Skadovsk y hacia allí debes dirigirte. + + + Mapas del lugar: encuentra a alguien interesado en los mapas + + + Mapas del lugar: ofrécele los mapas a Piloto + + + Es posible que Piloto, el guía local, esté interesado en los mapas de la zona comprendida entre Zaton y Júpiter. + + + Pez Raya 2: investiga el lugar del accidente + + + Investiga el lugar del accidente del Pez Raya 2. + + + Pez Raya 5: investiga el lugar del accidente + + + Pez Raya 5: averigua por qué se han quemado los aparatos + + + Escuadrón de Peces Raya: encuentra el origen de la descarga que derribó a los dos helicópteros + + + Investiga el lugar del accidente del Pez Raya 5. + + + Debes encontrar el origen de la potente descarga eléctrica que alcanzó al helicóptero Pez Raya 5. + + + Debes averiguar qué fue lo que quemó los aparatos de los Peces Raya 4 y 5. Parece que fueron alcanzados por potentes descargas eléctricas. + + + Comida: consigue comida para los mercenarios + + + El escuadrón mercenario de los talleres de la subestación te ha pedido que les lleves seis latas de carne, salchichas troceadas o pan. + + + Comida: llévales la comida a los mercenarios + + + Debes llevarles a los mercenarios de los talleres de la subestación la comida que has conseguido. + + + Herramientas: investiga los talleres de la subestación + + + Dicen que podría haber herramientas en los talleres de la subestación. Hasta puede que encuentres los que busca el técnico. + + + Caza de la quimera: encuentra al mutante mientras duerme + + + Tienes que encontrar a la quimera antes de que despierte. + + + En busca de Urraca: informa a Gonta + + + Parece que han encontrado a Urraca, el stalker que se la jugó al escuadrón de Gonta. Se ha unido a Libertad y ahora se hace llamar Pedernal. + + + Caza de la quimera: mata al mutante + + + La quimera está despierta; deberías matarla antes de que sea demasiado tarde. + + + Caza de la quimera: reúnete con Gonta en el bar a las 3 a.m. + + + Deberías reunirte con Gonta antes del amanecer para unirte a su escuadrón y cazar a la quimera. + + + Caza de la quimera: informa a Trapper + + + Deberías informar al stalker llamado Trapper de que la caza de la quimera ha tenido éxito. Él te recompensará. + + + En busca de Urraca: encuentra al stalker + + + Un stalker llamado Urraca engañó al escuadrón de Gonta para que se topara con una quimera. Te han pedido que encuentres a ese bastardo. + + + Puntos de evacuación: investiga la posición B205 + + + El mapa que encontraste en uno de los helicópteros señala la ubicación de puntos de evacuación. Deberías comprobar si los soldados han ido a la posición B205. + + + Puntos de evacuación: investiga la posición B28 + + + El mapa que encontraste en uno de los helicópteros señala la ubicación de puntos de evacuación. Deberías comprobar si los soldados han ido a la posición B28. + + + Puntos de evacuación: encuentra las coordenadas de la posición B28 + + + La caja negra de uno de los Peces Raya tenía una grabación en la que el comandante del escuadrón designaba un punto de encuentro. Se trata del punto de evacuación B28; tendrás que averiguar cuáles son las coordenadas. + + + Puntos de evacuación: ve a la posición B28 + + + La posición en la que debían encontrarse los soldados se halla en Pripyat. Encuentra el modo de llegar. + + + Puntos de evacuación: investiga la posición B2 + + + El mapa que encontraste en uno de los helicópteros señala la ubicación de puntos de evacuación. Deberías comprobar si los soldados han ido a la posición B2. + + + Extraño fenómeno: llévale el artefacto a Barbas + + + El origen del extraño brillo era un peculiar artefacto. Seguro que a Barbas le interesa. + + + Extraño fenómeno: pregunta a los stalkers sobre el artefacto + + + Puede que los stalkers sepan más sobre el extraño artefacto, o tal vez te indiquen quién puede ayudarte. Deberías hablar con ellos. + + + Extraño fenómeno: busca el origen del brillo en la planta de dragado + + + Se ha avistado un extraño brillo en la planta de dragado. Barbas te ha pedido que investigues su origen. + + + Extraño fenómeno: coge el artefacto + + + El origen del extraño brillo era un peculiar artefacto. Deberías cogerlo. + + + Extraño fenómeno: habla con Barbas sobre el artefacto + + + El origen del extraño brillo era un peculiar artefacto. Aunque no tienes el artefacto, deberías hablarle a Barbas de él. + + + Ascenso a la meseta: salta al interior de la anomalía + + + Parece que el camino a la meseta pasa a través de la anomalía. Tendrás que saltar a su interior. + + + Ascenso a la meseta: encuentra el atajo de Noé + + + En la PDA de Noé hay una referencia a un "atajo secreto" hacia la meseta. Tienes que encontrarlo. + + + Ascenso a la meseta: averigua cómo hace Noé para llegar hasta ella + + + Dicen que un stalker llamado Noé conoce un camino hasta la meseta. Tienes que averiguar cómo llegar. + + + Stalkers desaparecidos: vuelve con pruebas de la implicación de Trémolo + + + Debes ir a Skadovsk con la PDA que contiene las grabaciones de Trémolo y enseñársela a Barbas. En ellas queda claro que el médico fue el responsable de la desaparición de los stalkers. + + + Stalkers desaparecidos: busca pruebas de la implicación de Trémolo + + + Debes comprobar si Trémolo ha dejado alguna prueba de su implicación en la desaparición de los stalkers. + + + Pez Raya 3: investiga el lugar del accidente + + + Investiga el lugar del accidente del Pez Raya 3. + + + Tienes que llevarle el artefacto a Barbas, pero el margen de tiempo que te dieron de ventaja ha expirado y tus competidores también lo estarán buscando. + + + Tienes que llevarle el artefacto a Barbas. Recuerda que tus competidores también lo están buscando. + + + Tienes que llevarle el artefacto a Barbas, pero otro grupo ha anunciado que ya ha encontrado uno. Deberías rastrear la señal e intentar completar el trabajo antes que tus competidores. + + + Tienes que llevarle el artefacto a Barbas, pero otro grupo ya lo ha hecho. Ahora solo recibirás la mitad de la recompensa. + + + Tienes que llevarle el artefacto a Barbas. + + + Pedido de artefactos: regresa con un Gravi + + + Pedido de artefactos: regresa con un Ojo + + + Pedido de artefactos: regresa con una Burbuja + + + Pedido de artefactos: regresa con una Concha + + + Pedido de artefactos: regresa con un Pez de colores + + + Pedido de artefactos: regresa con una Llama + + + Pedido de artefactos: regresa con una Luciérnaga + + + Pedido de artefactos: regresa con un Copo de nieve + + + Tienes que encontrarle el artefacto a Barbas, pero el margen de tiempo que te dieron de ventaja ha expirado y tus competidores también lo estarán buscando. + + + Tienes que encontrarle el artefacto a Barbas. Recuerda que tus competidores también lo están buscando. + + + Tienes que encontrarle el artefacto a Barbas, pero otro grupo ha anunciado que ya ha encontrado uno. Deberías rastrear la señal e intentar completar el trabajo antes que tus competidores. + + + Tienes que llevarle el artefacto a Barbas, pero otro grupo ya ha completado el pedido. Ahora solo recibirás la mitad de la recompensa. + + + Tienes que encontrarle el artefacto a Barbas. + + + Pedido de artefactos: encuentra un Gravi + + + Pedido de artefactos: encuentra un Ojo + + + Pedido de artefactos: encuentra una Burbuja + + + Pedido de artefactos: encuentra una Concha + + + Pedido de artefactos: encuentra un Pez de colores + + + Pedido de artefactos: encuentra una Llama + + + Pedido de artefactos: encuentra una Luciérnaga + + + Pedido de artefactos: encuentra un Copo de nieve + + + Brújula: localiza a Noé y averigua dónde puedes encontrar el artefacto poco común + + + Tienes que buscar a Noé en la vieja barcaza y averiguar dónde puedes encontrar el artefacto Brújula. Barbas lleva mucho tiempo buscándolo y está dispuesto a pagar bien por él. + + + Brújula: llévale el artefacto a Barbas + + + Brújula: pregunta a Noé dónde puedes encontrar el artefacto poco común + + + Sultán quiere interceptar el artefacto que está buscando Barbas. Tienes que localizar a Noé en la vieja barcaza y averiguar dónde está el artefacto. + + + Brújula: llévale el artefacto a Sultán + + + El artefacto que te ha dado Noé es la Brújula que buscaba Sultán. + + + Un negocio turbio: pídele tu parte a Barbas + + + Deberías pedirle a Barbas que te dé tu tajada. + + + Un negocio tentador: habla con Sultán + + + El comerciante Búho cree que Barbas no respeta el acuerdo, y te ha sugerido que pidas ayuda a Sultán, el jefe criminal local. + + + Un negocio turbio: quítale los detectores a los stalkers + + + Debes hacer lo posible por quitarles los prototipos de detectores a los stalkers que buscan artefactos para Barbas. Sin detectores, no tendrá más remedio que aceptar las condiciones de Sultán. + + + Un negocio tentador: habla con Sultán + + + Barbas ya no tiene detectores; deberías hablar con Sultán para averiguar si ha resuelto su problema con los demás proveedores de Barbas. + + + Un negocio turbio: obliga a Barbas a trabajar para Sultán + + + Ahora que Barbas se ha quedado sin detectores y proveedores, no podrá hacer nada por sí solo; oblígale a trabajar para Sultán. + + + Un negocio turbio: averigua en qué anda metido Barbas + + + Tienes que averiguar en qué chanchullos anda metido Barbas actualmente; así podrás cortar sus vías de suministro. + + + Un negocio turbio: quítales el segundo detector a los stalkers + + + Debes hacer lo posible por quitarles los prototipos de detectores a los stalkers que buscan artefactos para Barbas. Sin detectores, no tendrá más remedio que aceptar las condiciones de Sultán. + + + Un negocio tentador: llévale a Novikov tres detectores Veles + + + El comerciante Búho te ha ofrecido participar en un lucrativo negocio. Tienes que encontrar tres detectores Veles y llevárselos a Novikov al búnker de los científicos. + + + Un negocio tentador: espera a que Búho consiga los detectores + + + Novikov ha aceptado los detectores y ha prometido devolvérselos al mismo Búho. Tienes que esperar a que termine de trabajar con ellos y luego preguntarle a Búho por los resultados. + + + Un negocio tentador: habla con Búho + + + El comerciante Búho ha contactado contigo por radio para decirte que tiene problemas y que quiere verte. + + + Un negocio tentador: convence a Barbas para que respete el acuerdo + + + El comerciante Búho cree que Barbas no respeta el acuerdo. Tienes que hablar con él y convencerlo de que no lo siga incumpliendo. + + + Un negocio tentador: pídele una tajada a Búho + + + Barbas opina que no le debe nada a Búho; tienes que averiguar quién tiene razón y exigirle tu parte. + + + Snag te ha pedido que le lleves su estuche. Lo escondió en un viejo coche Zaporozhets que se cayó a una grieta durante un terremoto. Snag tiene miedo de bajar a la grieta porque está llena de snorks. + + + Tienes el estuche de Snag; deberías llevárselo a su dueño para repartiros su contenido. + + + Guarida de chupasangres: informa a los stalkers + + + Tienes que informar a los stalkers sobre la guarida de chupasangres que hay bajo el complejo de la antena de Krug. + + + Guarida de chupasangres: informa a Barbas + + + Debes contarle a Barbas que has encontrado una guarida de chupasangres bajo el complejo de la antena de Krug; tendrá que tomar medidas para proteger a los stalkers. + + + Stalkers desaparecidos: sigue a Urogallo + + + Urogallo te ha pedido que le ayudes a investigar el edificio abandonado del complejo de la antena. Ha visto chupasangres y quiere comprobar si el cazador está allí. + + + Stalkers desaparecidos: averigua qué ha ocurrido + + + Parece que Tremor no es tan inocente como parecía. Debes averiguar qué ha sucedido. + + + Stalkers desaparecidos: encuentra a Urogallo + + + Urogallo fue a las grúas del muelle por alguna razón; quizá descubrió algo sobre los stalkers desaparecidos. Deberías buscarlo allí. + + + Stalkers desaparecidos: averigua dónde está Urogallo + + + Urogallo no está en el lugar de costumbre. Deberías preguntarle a Barbas dónde ha ido. + + + Stalkers desaparecidos: encuentra al cazador desaparecido + + + Urogallo te ha pedido que le ayudes a encontrar al cazador que desapareció mientras buscaba la guarida de los chupasangres; según informes recientes, estas criaturas son las responsables de las desapariciones. + + + Stalkers desaparecidos: sal de la guarida de los chupasangres + + + Has descubierto una guarida de chupasangres en el sótano; sus inquilinos parecen estar sumidos en una especie de trance. Debes salir cuanto antes y en silencio. + + + Stalkers desaparecidos: reúnete con Urogallo + + + Quizá deberías reunirte con Urogallo para planear la búsqueda del cazador desaparecido. + + + Stalkers desaparecidos: reúnete con Urogallo más tarde + + + No había rastro del cazador Danila en el edificio del complejo de la antena. Sin embargo, Urogallo parece perplejo por lo que encontraste y te ha pedido que te reúnas con él más tarde para discutir el asunto. + + + Stalkers desaparecidos: reúnete con Urogallo + + + En el lugar que te indicó Urogallo hay un chupasangre muerto, pero ni rastro del cazador Danila. No obstante, parece que Urogallo ha encontrado algo interesante y te ha pedido que te reúnas con él. + + + Los chupasangres no tenían nada que ver con las desapariciones de stalkers; fue Tremor, el médico de Skadovsk. + + + Herramientas: llévale herramientas a Cardán + + + Cardán te ha pedido que le consigas dos juegos de herramientas: uno para trabajos básicos y otro para trabajos profesionales. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Cardán + + + Cardán te ha pedido que le consigas dos juegos de herramientas: uno para trabajos básicos y otro de calibración. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Cardán + + + Cardán te ha pedido que le consigas un juego de herramientas para trabajos básicos. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Cardán + + + Cardán te ha pedido que le consigas dos juegos de herramientas: uno para trabajos profesionales y otro de calibración. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Cardán + + + Cardán te ha pedido que le consigas un juego de herramientas para trabajos profesionales. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Cardán + + + Cardán te ha pedido que le consigas un juego de herramientas de calibración. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Herramientas: llévale herramientas a Cardán + + + Cardán te ha pedido que le consigas tres juegos de herramientas: uno para trabajos básicos, otro para trabajos profesionales y otro de calibración. Te pagará por ellas, y podrá realizar modificaciones más avanzadas en armas y blindajes. + + + Campamento de mercenarios: coge toda la información que puedas encontrar + + + El comerciante Búho te pagará bien por los datos que encuentres en el campamento de mercenarios de la planta de tratamiento de basura. Está interesado en sus planes. + + + Campamento de mercenarios: coge toda la información que puedas encontrar + + + El comerciante Búho te pagará bien por los datos que encuentres en el campamento de mercenarios de la planta de tratamiento de basura. Está interesado en sus planes. + + + Tres camaradas: averigua qué ha sido de Barge + + + Cardán quiere que pidas disculpas en su nombre a su camarada, un stalker llamado Barge. Mantuvieron una discusión y se marchó sin decir adónde. + + + Tres camaradas: averigua qué ha sido de Barge y Bromista + + + Cardán quiere que pidas disculpas en su nombre a sus camaradas, los stalkers llamados Barge y Bromista. Tuvieron una discusión y se marcharon sin decir adónde. + + + Tres camaradas: averigua qué ha sido de Bromista + + + Cardán quiere que pidas disculpas en su nombre a su camarada, un stalker llamado Bromista. Mantuvieron una discusión y se marchó sin decir adónde. + + + Pedido especial: recoge la mercancía + + + La mercancía ha sido entregada; reúnete con Nimble para hacerte con ella. + + + Pedido especial: espera a que se produzca la entrega + + + El pedido se ha formulado, ahora deberías esperar a que Nimble consiga la mercancía. + + + Reputación: encuentra a Snag + + + Tienes que encontrar a Snag y obligarlo a mantener la boca cerrada. Nimble no ha trabajado nunca con mercancía robada, pero para Snag es el pan de cada día. Lo vieron por última vez en las grúas del muelle; quizá siga allí. + + + Tienes que encontrar a Snag y obligarlo a mantener la boca cerrada. No estaba en las grúas del muelle, pero quizá los bandidos sepan dónde se esconde. + + + Tienes que encontrar a Snag y obligarlo a mantener la boca cerrada. Parece que los bandidos están implicados, seguramente saben dónde se encuentra. + + + Tienes que encontrar a Snag y obligarlo a mantener la boca cerrada. Por el momento no tienes ni idea de dónde puede estar. + + + Tienes que encontrar a Snag y obligarlo a mantener la boca cerrada. A juzgar por la PDA que le cogiste a uno de los bandidos, los hombres de Sultán están buscando a Snag. Por desgracia nadie sabe dónde se esconde. + + + Reputación: averigua dónde se ha ocultado Snag + + + Snag no está en el sitio de siempre; deberías preguntarle a los lugareños si saben adónde ha ido. + + + Tienes que encontrar a Snag y obligarlo a mantener la boca cerrada. No está en el sitio de siempre. Puede que Sultán sepa dónde está. + + + Tienes que encontrar a Snag y obligarlo a mantener la boca cerrada. No está en el sitio de siempre. Puede que Barbas sepa dónde está. + + + Reputación: habla con Snag + + + Tienes que encontrar a Snag y obligarlo a mantener la boca cerrada. Nimble no ha trabajado nunca con mercancía robada, pero para Snag es el pan de cada día. + + + Guarida de chupasangres: encuentra el pozo de ventilación + + + Encuentra el pozo de ventilación para inundar la guarida de los chupasangres con gas venenoso. + + + Guarida de chupasangres: busca gas venenoso + + + Necesitarás gas venenoso para destruir la guarida de los chupasangres. Búho debería saber dónde encontrarlo. + + + Necesitarás gas venenoso para destruir la guarida de los chupasangres. Búho afirma que en el convoy militar abandonado hay varias latas. + + + Guarida de chupasangres: encuentra las llaves del contenedor + + + Los documentos que has encontrado mencionan las llaves de un contenedor de latas de gas. Tienes que encontrarlas. + + + Guarida de chupasangres: halla el modo de abrir el contenedor de latas de gas + + + El contenedor de latas de gas está cerrado con llave. Tienes que hallar el modo de abrirlo. + + + Guarida de chupasangres: coloca la lata de gas + + + Pon la lata de gas en el sistema de ventilación del sótano del complejo de la antena. El gas entrará por el pozo de ventilación y matará a todos los chupasangres. + + + Guarida de chupasangres: informa a Barbas de la destrucción de la guarida + + + Informa a Barbas de que has destruido la guarida de los chupasangres para garantizar la seguridad de los stalkers de Skadovsk. + + + Guarida de chupasangres: gira la válvula + + + Gira la válvula para que el gas venenoso se cuele por el pozo de ventilación e inunde la guarida. + + + Guarida de chupasangres: espera a que el gas surta efecto + + + Tienes que asegurarte de que el gas llena la guarida y mata a todos los chupasangres. + + + Transacción: reúnete con los bandidos junto a la estación de guardabosques + + + Sultán te ha pedido que participes en una transacción con un comerciante. Tienes que acompañar a sus hombres y cubrirlos si ocurre algo. + + + Transacción: reúnete con el comerciante + + + Búho te ha encargado que protejas a un comerciante durante una transacción. Es evidente que se trata de un chanchullo y es posible que no salga del todo bien. + + + Transacción: reúnete con los stalkers junto al puesto de guardabosques + + + Reúnete con los stalkers junto al puesto de guardabosques y ayúdalos a frustrar la transacción entre los bandidos y el comerciante de armas. + + + Transacción: protege al comerciante + + + El comerciante te ha explicado tu trabajo: protegerlo durante la transacción. + + + Transacción: espía la conversación + + + Los stalkers quieren oír la conversación entre los bandidos y el comerciante de armas. + + + Transacción: interrumpe la venta de armas + + + Haz lo que sea necesario para interrumpir la transacción entre los bandidos y el comerciante. + + + Transacción: elimina a los testigos + + + La transacción no ha salido bien; tienes que eliminar a todos los testigos. + + + Transacción: protege al comerciante + + + Tienes que proteger al comerciante. También te ha ordenado que elimines a todos los testigos de la transacción (incluidos sus clientes). + + + Transacción: busca al comerciante + + + El comerciante podría tener información importante que te sería de utilidad más adelante. Deberías aceptarla. + + + Transacción: cubre a los bandidos durante la transacción + + + Permanece atento y proporciona cobertura a los bandidos mientras negocian con el comerciante. + + + Transacción: habla con el comerciante + + + Se ha completado la transacción con los bandidos; ve a cobrar tu recompensa. + + + Transacción: pídele tu recompensa a Barbas + + + Barbas prometió recompensarte si interrumpías la transacción de los bandidos y el comerciante. Ahora que has frustrado la venta, puedes ir a cobrar tu recompensa. + + + Transacción: habla con el líder de los bandidos + + + Tienes que informar al líder de los bandidos de que ya estás listo para participar en la transacción. + + + El golpe: decide lo que vas a hacer + + + El golpe: ataca a los stalkers + + + El golpe: cobra tu recompensa + + + El ataque al campamento ha sido rechazado; ya puedes hablar con los stalkers para cobrar tu recompensa. De no haber sido advertidos del ataque, lo habrían pasado muy mal. + + + Un grupo de stalkers ha recurrido al bandidaje y a asaltar a sus propios camaradas. Debes decidir entre unirte al asalto, advertir a los demás stalkers o no involucrarte. + + + El golpe: espera al momento acordado + + + El golpe: espera al momento adecuado + + + Escondite inalcanzable: llévale el contenedor a Snag + + + Transacción: habla con el líder del escuadrón de stalkers + + + La transacción ha sufrido un sabotaje. El comerciante de armas ha muerto. Habla con el líder del escuadrón de stalkers. + + + Stalkers desaparecidos: informa a los de Skadovsk sobre lo sucedido + + + Tienes que abrir el contenedor con las llaves que encontraste y sacar el tanque de gas envenenado. + + + Guarida de chupasangres: saca el tanque de gas del contenedor + + + El golpe: ataca a los ladrones + + + Atacar a los ladrones por la retaguardia ayudará a los stalkers a repeler su asalto. + + + El golpe: reúnete con los ladrones + + + Únete a los ladrones para atacar el campamento stalker. + + + El golpe: únete a los ladrones + + + Unos stalkers te han pedido que les ayudes a rechazar el ataque de los ladrones. Debes unirte a los ladrones, así podrás atacarlos con total impunidad desde la retaguardia. + + + Los ladrones deberían estar esperando en Shevchenko. Tienes que reunirte con ellos para participar en el asalto a los stalkers. + + + Espera para reunirte con los ladrones. Quieren atacar el campamento stalker después de medianoche, en la oscuridad. El punto de encuentro acordado es Shevchenko. + + + El golpe: consigue tu parte + + + El ataque a los stalkers ha tenido éxito; deberías cobrar tu parte del botín. + + + Espera al momento adecuado para pillar a los ladrones distraídos por el ataque. Después podrás atacarlos por detrás para ayudar a los stalkers de Shevchenko. + + + Un negocio turbio: comienza a trabajar para Barbas + + + Para robar prototipos de detectores a los stalkers que trabajan para Barbas, tendrás que infiltrarte entre ellos. Así podrás averiguar quiénes son tus competidores. + + + Tienes que coger el contenedor y llevárselo a su dueño. + + + El ordenador de a bordo del Pez Raya 2 tenía mapas de la zona comprendida entre Zaton y Júpiter. Deberías buscar a alguien que los necesite. + + + Ascenso a la meseta: habla con stalkers + + + Parece que no hay una ruta directa a la meseta. Pregunta a los stalkers del lugar por otros caminos para llegar allí. + + + El artefacto que te ha dado Noé es la Brújula que quiere Barbas. + + diff --git a/gamedata/configs/text/spa/st_subtitles.xml b/gamedata/configs/text/spa/st_subtitles.xml new file mode 100644 index 0000000..3135faa --- /dev/null +++ b/gamedata/configs/text/spa/st_subtitles.xml @@ -0,0 +1,156 @@ + + + + En la mañana del 26 de abril de 1986, el reactor del bloque de energía 4 de la central nuclear de Chernóbil quedó destruido tras una gran explosión térmica. El viento desplazó la nube radiactiva resultante por toda la URSS y también por Europa e incluso América. + + + Las ramificaciones de este desastre son tan graves que el gobierno de la Unión Soviética se ve obligado a evacuar de urgencia a los residentes de las ciudades y pueblos cercanos. + + + Las áreas contaminadas en un radio de 30 kilómetros en torno a la central nuclear se convierten en una zona de exclusión poderosamente protegida. + + + La operación de Chernóbil continúa con la construcción de un sarcófago reforzado con cemento sobre los restos de la central. La existencia de una fuente masiva de energía, junto con el hecho de que el área ha quedado deshabitada, se traduce en la creación de una red de laboratorios secretos. + + + 10 de junio de 2006. Un destello cegador ilumina la Zona, una explosión de luz seguida de un segundo de silencio total mientras varias nubes se evaporan en el cielo. Después, un trueno sacude el suelo. La mayor parte de los soldados del gobierno que protegen el perímetro fallecen al instante. + + + 2007. Los científicos siguen sin explicarse lo sucedido. Las escasas expediciones que se adentran en la Zona suelen terminar en tragedia, y los supervivientes afirman haber visto seres mutantes con increíbles habilidades. + + + 2009. Según diversos estudios, en la Zona viven entre 100 y 300 individuos desconocidos. Se llaman a sí mismos stalkers y se dedican a recoger formaciones anómalas denominadas artefactos, que después venden a cambio de considerables sumas de dinero. + + + 2010. A pesar de los cordones militares que rodean el perímetro, el fenómeno de los stalkers se multiplica. Pero éstos se mueven principalmente por los límites de la Zona. Todos los escasos intentos de adentrarse en la Zona han fracasado. + + + 2012. El stalker Strelok resuelve el secreto del Cauterizador cerebral, un poderoso emisor capaz de destruir mentes humanas, y logra desactivarlo. Después, todos los stalkers se dirigen al centro de la Zona; algunos con la esperanza de encontrar un arsenal de artefactos, otros en busca del Genio. + + + En estas circunstancias tan inestables, el consejo de defensa y de seguridad nacional de Ucrania decide poner en marcha una operación inminente especial, conocida como la Operación Puente. Docenas de helicópteros transportan soldados hacia Chernóbil, moviéndose por los cielos por medio de mapas de campos de anomalías. A pesar de lo meticuloso de los preparativos, la operación es un fracaso y ningún helicóptero regresa de la misión. + + + El mayor Degtyarev, agente especial de la USS y antiguo stalker experimentado, es enviado a la Zona para investigar el fracaso de la operación. + + + El mayor, equipado con un fusil de asalto, víveres para dos semanas y una radio para comunicarse con el cuartel general, comienza su viaje al centro de la Zona. + + + Habla con varios stalkers pero sin resultado. Ninguno tiene información o no la quiere compartir. + + + La Zona dista mucho de ser un complejo turístico. No pasa un solo día sin que el mayor sea atacado por los mutantes o, peor aún, la gente. + + + Las comunicaciones con el cuartel general son, como mínimo, poco útiles: la única información veraz disponible son las coordenadas de los cinco helicópteros estrellados. Estando a varios kilómetros de la central, la radio del mayor se avería. + + + Degtyarev se queda solo. + + + Como premio por completar con éxito la investigación, Degtyarev es premiado con un ascenso anticipado al cargo de coronel. Pero éste rechaza ocupar un cómodo puesto de oficina y en su lugar solicita ser enviado a la Zona como observador permanente del servicio de seguridad. + + + La información de Degtyarev sobre los dispositivos psíquicos pone en alerta a sus superiores. Toda la información de los laboratorios X se elimina de los archivos militares y se clasifica como altamente confidencial. Todo el personal de la USS presente en la Zona recibe órdenes de no revelar los datos descubiertos en los laboratorios bajo ningún concepto. + + + Se realizaron varios experimentos tomando como base diversos documentos técnicos sobre el objeto 62. Tras una serie de pruebas, se decidió no seguir adelante con el despliegue a gran escala del arma dado el alto coste de munición que supondría. De todas formas, existen pruebas de que todavía se sigue trabajando en el desarrollo del fusil Gauss. + + + Tras fracasar en su intento de capturar la nave, Sultán y su grupo abandonaron Skadovsk. Esto creó un ambiente de relativa seguridad entre los stalkers, pero también un aumento desmesurado del número de artefactos vendidos a Barbas, impulsando la popularidad de su negocio. Skadovsk se hizo tan famoso como Los 100 Rads. + + + El grupo de Sultán se estableció con fuerza en Skadovsk, y la nave se convirtió en una base de bandidos. Barbas se negó a seguir pagando un porcentaje de sus beneficios y montó un grupo de stalkers para explorar las regiones vírgenes de la Zona. Los intentos por parte de los stalkers para recuperar el control de la nave cesaron rápidamente tras echar por la borda a varios individuos problemáticos para dar ejemplo y dejarlos morir en las emisiones. + + + Skadovsk siguió siendo el hogar de todos aquellos que tuvieron la suerte de llegar allí. Los bandidos intentaron imponer su "ley" en la nave, pero los stalkers los mantuvieron a raya y se instauró una frágil tranquilidad en la nave. + + + Por desgracia, esta situación no duró mucho tiempo. Los chupasangres de una guarida cercana a Skadovsk consiguieron llegar a la nave y empezaron a atacar a plena luz del día. Se organizó una misión para acabar con el problema, pero fracasó en su intento de despejar los túneles. Poco después, una oleada de chupasangres aniquiló a todos los residentes de la nave. + + + Tras la destrucción de la guarida de chupasangres, los mutantes no consiguieron cambiar significativamente la situación de Skadovsk. Por un breve tiempo, la vieja nave se convirtió en un punto de relativa estabilidad en el mundo siempre cambiante de la Zona. + + + Libertad se ganó la confianza de los stalkers de la estación de Yanov. Deber organizó un ataque para intentar recuperar el territorio perdido, pero el teniente coronel Shulga murió poco después en un tiroteo. El escuadrón de Deber se disolvió poco después de perder a su líder. + + + Gracias a los refuerzos y a la creciente popularidad de Deber entre los stalkers, su escuadrón liberó a la estación de Yanov de las garras de Libertad. Tras una salvaje batalla, Loki y su escuadrón fueron aniquilados. + + + En la estación de Yanov se creó un equilibrio muy frágil entre los escuadrones de Libertad y Deber. Hartos de luchar sin descanso, muchos soldados abandonaron sus facciones para unirse a los stalkers libres. + + + La expedición organizada por los profesores Hermann y Ozersky fue todo un éxito. Los datos recopilados ayudaron en el desarrollo de nuevos y exclusivos dispositivos y drogas, por lo que las subvenciones a programas de investigación en la Zona aumentaron considerablemente. + + + La expedición científica organizada por los profesores Hermann y Ozersky no reunió datos suficientes y fue cancelada. Los profesores regresaron al mundo exterior para dedicarse a otras actividades. + + + Las historias de Garry sobre la lucha del ejército contra los peligros de Pripyat despertaron mucho interés, y pronto varios grupos comenzaron a explorar la ciudad fantasma. A pesar de los constantes ataques de Monolith, los stalkers consiguieron hacerse con el antiguo campamento enemigo, y desde allí organizaron ataques a la ciudad, de forma lenta pero constante. + + + Las historias de Garry sobre el final del ejército desanimaron a los stalkers en su intento por entrar en Pripyat. Los pocos que lo intentaron vieron fenómenos inexplicables y aterradores que añadieron más toques sombríos a su ya de por sí oscura leyenda. + + + La leyenda del Oasis dejó de serlo. La identidad de los que consiguieron llegar a la anomalía secreta se convirtió en tema de conversación habitual entre los stalkers. Muchos aventureros siguieron intentando encontrar el Oasis, algo de lo que se aprovecharon los bandidos, que se ofrecían a guiar a los novatos hacia dicho lugar para tenderles una trampa una vez lejos de sus compañeros stalkers. + + + Los escuadrones de mercenarios siguen activos en la Zona. Su creciente interés en los laboratorios secretos los puso en el punto de mira de los operativos de la USS. Sin embargo, fracasaron todos los intentos por descubrir la identidad del cliente que pagaba a los mercenarios. + + + El área en torno a la estación de Yanov sigue atrayendo a un número creciente de stalkers. La ausencia de mutantes peligrosos y la abundancia de áreas anómalas ha provocado que muchos se refieran a dicha zona como “la cueva del tesoro”. + + + El área en torno a la estación de Yanov se convirtió en uno de los lugares más peligrosos de la Zona. Cada vez menos stalkers regresaban de sus incursiones en ella; muchos morían a manos de los mutantes sin haberse alejado siquiera de sus campamentos. Entre ellos está Zveroboi, que murió en su última cacería, mientras perseguía a una quimera. + + + Zulu volvió a la base principal de Deber de la central de Rostok. Nadie sabe de qué discutió con el líder de Deber, el general Voronin, pero poco después le vieron dirigiendo un gran escuadrón de camino al centro de la Zona. + + + Los rumores sobre el final de Zulu llegaron a oídos del líder de Deber, el general Voronin. Para sorpresa de muchos, Voronin decidió premiarle de forma póstuma con el escudo de plata, la máxima condecoración. + + + Vano se trasladó a los almacenes militares controlados por Libertad. Su personalidad alegre y optimista le hizo tan popular como se merecía. Terminó dirigiendo a un grupo de investigadores de áreas anómalas. + + + Los stalkers de la estación de Yanov se siguen acordando del talento natural y de la bondad de Vano. Todos parecen estar de acuerdo en que Vano cometió un grave error al intentar buscar el camino hacia Pripyat, y que por eso tuvo tan triste final. + + + Se creó en la Zona un grupo nuevo de stalkers, bien entrenado pero sin objetivos claros. Se rumoreaba que estaba formado por antiguos soldados de Monolith. Su líder se llama Strider. + + + Pocos echaron en falta a Strider, la única persona que intentó entender y ayudar a los que cayeron bajo el influjo del monolito. + + + El teniente segundo Sokolov siguió volando por toda la Zona y su avión fue abatido por mercenarios en Limansk. Dos semanas más tarde fue recogido por una patrulla cerca del Cordón. Sokolov cambió los aviones de combate por los vuelos civiles poco después. + + + A la lista de bajas durante la Operación Puente se ha añadido un nuevo nombre: “Teniente segundo O.N. Sokolov. Fallecido en combate.” + + + Búho contactó con clientes del exterior de la Zona. Intercambia información y, de ser ciertos los rumores, uno de sus mejores clientes es la USS. + + + Unos stalkers se vieron obligados a cobijarse en la vieja barcaza de Noé durante una emisión especialmente poderosa. Poco después, la barca fue asaltada por una horda de snorks y los stalkers se dieron cuenta de que ese lugar era una fortaleza pequeña pero sólida. También se sorprendieron con la manada de pseudocachorros que el mismo Noé azuzó contra los snorks. + + + Tras enterarse del final de sus amigos, Cardán abandonó su carrera como stalker. Superó su alcoholismo y se fue a Yanov, donde se alió con Nitro para crear un taller de reparaciones. Ambos técnicos dedicaron todo su tiempo libre a construir un vehículo que pudiese moverse por el entorno implacable de la Zona. + + + Tras superar su alcoholismo, Cardán se fue de Skadovsk. Los stalkers dicen que se marchó a buscar a sus amigos. Regresó unos días más tarde, herido e intoxicado por la radiación. En cuanto se curaron sus heridas, se fue de la Zona para siempre. + + + Strelok pasó a los comandantes de la USS la información que consiguió en la central de Chernóbil. Esto provocó que el gobierno crease un instituto de investigación del área anómala de Chernóbil. Strelok ocupó el puesto de asesor científico del instituto. + + + Los descubrimientos de Strelok desaparecieron con él. La información que encontró en la central de Chernóbil habría servido para comprender mejor los misterios de la Zona, pero se quedó para siempre en sus confines. La Zona sabe guardar sus secretos. + + + Cuando el coronel Kovalsky, comandante del grupo Pez Raya, regresó de la Zona, informó a sus superiores sobre los motivos del fracaso de la Operación Puente. Tras una investigación y el intento fallido por parte del alto mando de convertirlo en cabeza de turco, le concedieron una baja honrosa. + + + El coronel Kovalsky, comandante del grupo Pez Raya, pereció junto a gran parte de su escuadrón. Sus cuerpos desaparecieron en la Zona, y como prueba de su sacrificio tan solo quedan unas viejas y amarillentas fotografías en un museo militar. + + diff --git a/gamedata/configs/text/spa/ui_st_credits.xml b/gamedata/configs/text/spa/ui_st_credits.xml new file mode 100644 index 0000000..a2e2043 --- /dev/null +++ b/gamedata/configs/text/spa/ui_st_credits.xml @@ -0,0 +1,684 @@ + + + + Sergey Chechin + + + Maciej Abramowicz + + + Armen Abroyan + + + Actores + + + Control de calidad + + + AMD/ATI + + + Roman Androshiuk + + + Animación + + + Departamento de gráficos + + + Dirección de gráficos + + + Nikita Atroshenko + + + Damian Bajorek + + + Mikhail Bastrykin + + + Kamil Bilinski + + + Krzysztof Binkowski + + + Arkadiusz Bochenek + + + Justin Boggs + + + Anatoly Bogush + + + Wojciech Borowy + + + Stanislaw Burtsau + + + Modelos de personajes + + + Aleksey Cherevatenko + + + Jerzy Chrul + + + Wojciech Ciemny + + + Composición + + + Dmitry “Abe” Davidyan + + + Aaron Davies + + + Alexander Demidenko + + + Departamento + + + de programación + + + Lukasz Derewonko + + + Ruslan Didenko + + + Yuri Doroshenko + + + Elena Dovgaliuk + + + Rafal Durajczyk + + + Petr Dushinsky + + + Maciej Dziarnowski + + + Sergey Eremenko + + + Yuri "Dark” Falchenko + + + Jakub Gabryel + + + Cezary Galach + + + Departamento de diseño del juego + + + Programación del juego + + + CENEGA QA + + + Agradecimientos especiales a + + + Filip Gerasimov + + + Grigory Hermann + + + Angelica Girich + + + Pawel Golubinski + + + Marcin Gorniak + + + Tomasz Goscicki + + + Programadores de gráficos + + + Holger Grun + + + Pawel Grzywaczewski + + + Sergiy Grygorovich + + + Marcin Gutowski + + + Dmitry Yasenev + + + Intel + + + Sergey Ivantsov + + + Norbert Jankowski + + + Alexander Kachaniuk + + + Dmitry Kalita + + + Aleksander Keska + + + Andrey “Darin” Kirienko + + + Lukasz Kobylanski + + + Andrey Kolomiets + + + Artur Komorek + + + Yuri Konstantinov + + + Maria Kotolovskaya + + + Alexander Kovach + + + Kirill Koval + + + Irina Krivchikova + + + Dmitry Krivets + + + Eugene Kuchma + + + Svetlana Kudrya + + + Sergey Kurbatov + + + Olga Kuzhel + + + Dmitry Kuzmenko + + + Aleksey Kuznetsov + + + Oleg Kuznetsov + + + Szymon Lazarski + + + Jefe de animación + + + Jefe de grafismo + + + Jefe de diseño del juego + + + Jefe de programación + + + Jefe de control de calidad + + + Jefe de expertos + + + Diseño de niveles + + + Revisión + + + Vladimir Litvinenko + + + Eric Lundgren + + + Sergey Maistrenko + + + Dmitry Macedon + + + Roman Malinkin + + + Jefes de proyecto + + + Alexander Maniliuk + + + Daniel Mankowski + + + Denis Matveenko + + + Maciej Mazurek + + + Piotr Mazurkiewicz + + + Darren McPhee + + + Igor Melnikov + + + Victor Merkulov + + + Damian Mielnik + + + Pavel Mikhailov + + + Konstantin Mironov + + + Agradecimientos especiales a Oleg Fomenko + + + y BuntarMedia + + + por sus consejos para la captura de movimiento + + + Vladimir Morev + + + Andrey Moroz + + + Dawid Mrozowski + + + Yuri Negrobov + + + Programación multijugador + + + nVidia + + + Aleksey Omelchuk + + + Lukasz Osinski + + + Mikhail Parfeniuk + + + Eugene Pashin + + + Igor Pasichnyi + + + Bartosz Peas + + + Programación de física + + + Jacek Piotrowski + + + Alexander Plichko + + + Departamento de relaciones públicas + + + Dirección de relaciones públicas + + + Jefes de relaciones públicas + + + Sergey Prishepa + + + Producción + + + Jefe de proyecto + + + Pruebas + + + Anton Ravin + + + Sebastian Rejent + + + Mateusz Rekorajski + + + Filip Resiak + + + Peter Ross + + + Ivan Rozin + + + Lukasz Ruminski + + + Denis Rutkovsky + + + Lukasz Rynkowski + + + Coordinador de desarrollo empresarial + + + Piotr Samborowski + + + Maria Shapunova + + + Sergey Shelest + + + Igor Sidorenko + + + Mikolaj Sitkiewicz + + + Yuri Skripal + + + Konstantin Slipchenko + + + Tomasz Sobotka + + + Producción de sonido + + + Agradecimientos + + + especiales para + + + Oleg Stalchuk + + + Liudmila Starodub + + + Vladimir Stavitsky + + + Pawel Stempien + + + Pawel Strzelczyk + + + Créditos + + + Konstantin Stupivtsev + + + Servicio + + + al cliente + + + Rafal Szekalski + + + Maciej Szumowski + + + Marcin Szwargolinski + + + Vladimir Tereshiuk + + + Sergey Terliuk + + + Texturas + + + Y a todos los que nos habéis ayudado + + + a que este juego fuese aún mejor: + + + Konstantin Morozkov + + + Yaroslav “Uncle Yar” Alexandrov + + + Dmitry “Comandor” Ivanov + + + Oleg Chernov + + + Ig. Valerian (Golovchenko) alias oVal + + + M. Bystrykhin + + + Eugene “Mulder” Khaletskiy + + + Pavel “Goon” Bolotov + + + Alexander “Leks” Abramov + + + Alexander Novikov + + + Alexander Poshtaruk, Andrey Oleshk + + + Eugene “KRANZ” Goncharenko + + + Sergey Dvuzhilny + + + Aleksey "Don Reba” Badalov + + + Sergey Dvuzhilny, Tolusha + + + Artem Zuev, alias BAC9-FLCL + + + Glot, Patriot, Mers + + + Tiger, Demesis, Kharon, Moby + + + Alexander Oleinik + + + Konstantin “Inquisitor” Kriuchkov + + + Alexander Shakhovsky, Igor Dolzhenko + + + Sergey “Tur” Leshenko + + + Dmitry “Hill” Gorban + + + Mikhail Kliuev + + + Sergey “Termite” Volchanov + + + Sergey Tikhomirov + + + Ilya Tolmachev + + + Jakub Trudzik + + + Diseño de la interfaz + + + Yuri Uralsky + + + Denis “Tetri$Zs” Yusupov + + + RandyJ VanderHeyden + + + Vladimir Vazhinsky + + + Andrey Verpakhovsky + + + Alexander Vilkov + + + Anastassia Voskolovich + + + Andrzej Wardziak + + + Programación del sitio Web + + + Dominik Wojcik + + + Lukasz Watroba + + + Eugene Yablon + + + Yuri Yatsenko + + + Eugene Yatsiuk + + + Oleg Yavorsky + + + Valentin Yeltyshev + + + Eugene Zaitsev + + + Andrey Zakoliukin + + + Marek Zdziarski + + + Michal Zegarski + + + Albert Zmudzki + + + Aleksey Zorin + + + Bartosz Zukowski + + + Victoria “Morrant” Yukhno + + + Sergey “ion” Kalintsev + + + Roman “RVCool” Kulikov + + + Maxim Smirnov + + + Omar Al-Shekhly + + + Roman =Marauder= Arhipov + + diff --git a/gamedata/configs/text/spa/ui_st_inventory.xml b/gamedata/configs/text/spa/ui_st_inventory.xml new file mode 100644 index 0000000..7794664 --- /dev/null +++ b/gamedata/configs/text/spa/ui_st_inventory.xml @@ -0,0 +1,303 @@ + + + + No tienes suficiente dinero + + + El personaje no tiene dinero suficiente + + + $$ACTION_QUICK_USE_1$$ + + + $$ACTION_QUICK_USE_2$$ + + + $$ACTION_QUICK_USE_3$$ + + + $$ACTION_QUICK_USE_4$$ + + + activar artefacto + + + activar lanzagranadas + + + montar mira en + + + montar silenciador en + + + Precio + + + Grupo: + + + Condición + + + quitar lanzagranadas + + + quitar mira + + + quitar silenciador + + + poner traje + + + soltar + + + soltar todo + + + comer + + + kg + + + poner en cinturón + + + poner en mochila + + + poner en ranura + + + Al comerciante no le interesan estos objetos. + + + El objeto está demasiado estropeado para venderlo. + + + jugar + + + vender objeto + + + Estado del blindaje + + + Contaminación radiactiva + + + quitar traje + + + descargar + + + usar + + + Peso + + + Tam. carg. + + + Precisión + + + Comprar munición básica para pistola (Q) + + + Comprar munición para fusil (W) + + + Cura de heridas + + + Cancelar + + + No se puede comprar el arma + + + Restricciones de cantidad + + + Daño + + + Predeterminado (F5) + + + Atrás + + + Comprar lanzagranadas acoplado para fusil (D) + + + Comprar granadas para lanzagranadas acoplado (E) + + + Manejo + + + Ahora + + + Restaurar salud + + + Pesadas + + + Comprar la última combinación comprada + + + Anterior (F4) + + + Dinero + + + Necesario + + + No tienes suficiente dinero + + + Aceptar + + + Peso de carga + + + Prot. térm. + + + Prot. quím. + + + Blindaje + + + Prot. rad. + + + Prot. eléc. + + + Prot. psíq. + + + In. imp. + + + Recup. energía + + + Equipo 1 (F1) + + + Equipo 2 (F2) + + + Equipo 3 (F3) + + + Radiación + + + Restricción de rango + + + Cad. disp. + + + Borrar (C) + + + Fusiles asalto + + + Elim. hambre + + + Comprar mira telescópica para fusil (S) + + + Vender todos los objetos de la mochila (X) + + + Fusiles + + + Comprar silenciador para pistola (A) + + + Comprar silenciador para fusil (F) + + + Francotirador + + + Tiempo + + + Ya tienes uno + + + Los servicios en línea de S.T.A.L.K.E.R. no están disponibles. + + + No se puede conectar al servidor principal. + + + Protección: + + + Predeterminado + + + Combinación comprada guardada como + + + Peso total: + + + bebida + + + Recuperación de energía + + + Hemorragia + + + Peso máximo + + + Salud + + + Munición + + + Duración + + + seg. + + + Te permite sobrevivir a una emisión + + + llevar casco + + + quitarse casco + + diff --git a/gamedata/configs/text/spa/ui_st_keybinding.xml b/gamedata/configs/text/spa/ui_st_keybinding.xml new file mode 100644 index 0000000..0b0d26a --- /dev/null +++ b/gamedata/configs/text/spa/ui_st_keybinding.xml @@ -0,0 +1,225 @@ + + + + PDA + + + Orden de ataque + + + Caminar + + + Artefacto + + + Atrás + + + Prismáticos + + + Menú de compra + + + Chat + + + Chat de equipo + + + Consola + + + Contactos en PDA + + + Agacharse + + + Cambiar a agacharse + + + Detector + + + Abajo + + + Soltar + + + Disparar + + + Siguiente modalidad de disparo + + + Anterior modalidad de disparo + + + Adelante + + + Lanzagranadas acoplado + + + General + + + Dirección + + + Mochila + + + Movimiento + + + Multijugador + + + Arma + + + Mochila + + + Saltar + + + Izquierda + + + Inclinarse a la izquierda + + + Desp. lateral izquierdo + + + Mapa en PDA + + + Arma en la siguiente ranura + + + Dispositivo de visión nocturna + + + Pausa + + + PDA + + + Arma en la anterior ranura + + + Atrás + + + Recargar + + + Arreglar + + + Derecha + + + Inclinarse a la derecha + + + Desp. lateral derecho + + + Puntos + + + Captura de pantalla + + + Menú de selección de modelos + + + Correr + + + Menú de selección de equipos + + + Linterna + + + Activar + + + Arriba + + + Usar + + + Vendaje rápido + + + Botiquín rápido + + + Comenzar a votar + + + Votar + + + Votar "No" + + + Votar "Sí" + + + Arma 1 + + + Arma 2 + + + Arma 3 + + + Arma 4 + + + Arma 5 + + + Arma 6 + + + Cambiar munición + + + Previsualizar arma de este tipo + + + Zoom + + + Mensajes de voz (1) + + + Mensajes de voz (2) + + + Ranura de acceso rápido 1 + + + Ranura de acceso rápido 2 + + + Ranura de acceso rápido 3 + + + Ranura de acceso rápido 4 + + diff --git a/gamedata/configs/text/spa/ui_st_loadscreen.xml b/gamedata/configs/text/spa/ui_st_loadscreen.xml new file mode 100644 index 0000000..7ed5c1d --- /dev/null +++ b/gamedata/configs/text/spa/ui_st_loadscreen.xml @@ -0,0 +1,474 @@ + + + + 100 CONSEJOS PARA SOBREVIVIR EN LA ZONA + + + Si disparas a un enemigo en el ojo lo matarás en el acto, sea cual sea su nivel de blindaje. + + + El AC-96/2 puede configurarse para disparar ráfagas de dos balas que impactan en el mismo punto del objetivo. + + + Las escopetas de dos cañones pueden disparar con ambos casi simultáneamente. + + + No subestimes las pistolas. Ofrecen un poder de detención considerable y pueden resultar muy eficaces contra objetivos poco protegidos. + + + Los fusiles de francotirador son ideales para eliminar enemigos desde lejos gracias a su trayectoria y precisión. Son menos eficaces a corta distancia. + + + Si disparas mientras te mueves, la precisión es mucho menor que si lo haces inmóvil o arrodillado. + + + Las armas y los trajes protectores se desgastan rápidamente en el entorno hostil de la Zona. Las armas desgastadas son menos precisas y suelen fallar, y los trajes desgastados protegen menos. + + + Para hacer una captura de pantalla, pulsa "$$ACTION_SCREENSHOT$$". + + + El artefacto (o el jugador que lo lleva) aparece en el minimapa. Si está demasiado lejos, verás una flecha que indica la dirección en la que se encuentra. + + + El AC-96/2 puede configurarse para disparar ráfagas de dos balas que impactan en el mismo punto del objetivo. + + + Las escopetas de dos cañones pueden disparar con ambos casi simultáneamente. + + + No subestimes las pistolas. Ofrecen un poder de detención considerable y pueden resultar muy eficaces contra objetivos poco protegidos. + + + Los fusiles de francotirador son ideales para eliminar enemigos desde lejos gracias a su trayectoria y precisión. Son menos eficaces a corta distancia. + + + Las armas y los trajes protectores se desgastan rápidamente en el entorno hostil de la Zona. Las armas desgastadas son menos precisas y suelen fallar, y los trajes desgastados protegen menos. + + + Algunos productos médicos tienen propiedades únicas. Por ejemplo, las píldoras Hércules te permiten acarrear más peso temporalmente, mientras que los inhibidores psíquicos te ayudan a resistir las emisiones psíquicas. + + + Para hacer una captura de pantalla, pulsa "$$ACTION_SCREENSHOT$$". + + + Consejo n.º + + + El vodka, una alternativa sencilla y barata a los medicamentos antirradiación, reduce los efectos de la radiación en el cuerpo. + + + Para acceder a información detallada sobre la misión en curso, mantén "$$ACTION_SCORES$$". + + + Necesitas un detector para buscar artefactos. Los mejores detectores facilitan las búsquedas y detectan cosas más valiosas. + + + Los stalkers no permiten el paso a sus campamentos gente con armas a la vista. Para esconder tu arma, pulsa la tecla apropiada ("$$ACTION_WPN_1$$", "$$ACTION_WPN_2$$", “$$ACTION_WPN_3$$", "$$ACTION_WPN_4$$"). + + + Puedes localizar los límites de una anomalía lanzando tornillos. Para sacar un tornillo, pulsa "$$ACTION_WPN_6$$". + + + Además de saciar el hambre, comer aumenta ligeramente tu nivel de salud. + + + Las bebidas energéticas mejoran momentáneamente la recuperación de resistencia, incrementando tu movilidad potencial. + + + Una baja resistencia puede dejarte inmóvil y vulnerable ante el enemigo en momentos cruciales. + + + Puedes ver lo oculto que estás con los indicadores de ruido y de detección enemiga situados en la parte superior izquierda de la pantalla. + + + Llevar un detector en una mano no te impide usar un cuchillo, una pistola o un tornillo con la otra. + + + Ciertos productos médicos aumentan la resistencia a los efectos nocivos. Usarlos puede salvarte la vida en áreas anómalas. + + + Para abrir el menú contextual y acceder a objetos de tu mochila, sitúa el cursor sobre el elemento necesario y pulsa el botón derecho del ratón. + + + La mayoría de los artefactos, además de tener efectos positivos, emiten radiaciones que puedes compensar usando otros que las absorban. + + + El cuchillo no sirve de nada contra enemigos con armas de fuego. Úsalo en el combate cuerpo a cuerpo o para matar sigilosamente. + + + El peso que lleves encima reduce tu resistencia. Un peso excesivo limitará tu movilidad, y, si te cargas demasiado, no podrás ni moverte. + + + Un detector es lo único fiable para comprobar si hay artefactos en áreas anómalas. + + + La mayoría de los artefactos permanecen invisibles en las áreas anómalas hasta que los identificas con el detector. + + + Los mutantes son más activos de noche, lo que explica por qué los stalkers prefieren esperar a que sea de día para adentrarse en la Zona. + + + Si has estado muy expuesto a radiaciones, usa medicamentos antirradiación. Si no tienes, usa botiquines para tratar los primeros síntomas hasta que des con un médico. + + + Casi cualquier stalker puede llevarte a un sitio cercano, pero solo un guía experimentado puede conducirte de forma rápida y segura a lugares lejanos. Eso sí, te cobrará un ojo de la cara. + + + Vender artefactos no es el único modo de hacer dinero: deshacerte de equipo innecesario también puede ser muy lucrativo. Ten en cuenta que los comerciantes no suelen estar interesados en artículos muy dañados. + + + Para desmontar un silenciador, una mira o un lanzagranadas acoplado de un arma, haz clic con el botón derecho en ella cuando esté en la mochila y selecciona la acción pertinente del menú contextual. + + + Si quieres moverte sin hacer ruido, pulsa "$$ACTION_ACCEL$$" para andar o "$$ACTION_CROUCH$$" para agacharte. + + + Las escopetas son armas de corto alcance. Cuanto más lejos tengas a un enemigo, menos efectivas serán. + + + Para cubrirte de disparos de armas de fuego pequeñas, escóndete tras algo sólido. A diferencia de los muros de cemento, las tablas de madera y las placas de metal no son seguras. + + + Los disparos a la cabeza son muy dañinos y letales para casi cualquier enemigo. + + + Cada tipo de mutante en la zona tiene sus propias características de combate. Tenlo en cuenta y tendrás más opciones de sobrevivir. + + + Para ajustar lo lejos que lanzas una granada, mantén "$$ACTION_WPN_ZOOM$$". + + + Los enemigos utilizan granadas. Cuando veas un indicador de granada, abandona el radio letal de inmediato. + + + Acelerar antes de un salto te permite salvar grandes distancias. + + + Los indicadores clave que muestran tu salud y tu resistencia están situados en la parte inferior derecha de la pantalla. + + + La Zona tiene vida propia, lo que significa que siempre te puedes encontrar mutantes o stalkers enemigos en lugares que ya hayas despejado. + + + Muy atento en la Zona; no te fíes de datos anteriores. Al volver a un área anómala que ya hayas explorado, puedes descubrir que el sendero que conocías ya no existe. + + + Hablar con los stalkers puede proporcionarte información útil sobre áreas o eventos nuevos. + + + Puedes usar cualquier arma en ambas ranuras, lo que te permite crear combinaciones flexibles, como fusil de asalto/escopeta, o pistola/fusil de francotirador. + + + Cada comerciante de los campamentos de stalkers ofrece su propia mercancía única. Por ejemplo, los médicos pueden facilitarte los mejores productos médicos. + + + Si llegas a un campamento de stalkers estando herido o intoxicado por radiaciones, puedes acudir gratuitamente al médico local. + + + Puedes dejar tus cosas en una caja personal en el campamento para no llevar encima trastos innecesarios. + + + Si tienes que esperar a una determinada hora, puedes echarte una siesta en el campamento para pasar el rato. Busca una zona de descanso, pulsa "$$ACTION_USE$$" y elige cuánto quieres dormir. + + + Puedes mejorar el dispositivo de visión nocturna de tu casco. La versión avanzada aumentará considerablemente su alcance. + + + Cuando andes por la Zona, lleva a mano un par de cargadores de sobra. Igual te vienen bien. + + + Recuerda guardar la partida de vez en cuando para no tener que jugar las mismas escenas una y otra vez. + + + Para usar los medicamentos apropiados, es útil conocer su efecto. Consulta las descripciones para informarte. + + + Usa granadas para atacar a los enemigos a cubierto. Ten en cuenta su radio de impacto para no herir a tus aliados. + + + Para desechar un objeto de tu mochila, haz clic con el botón derecho encima del objeto y selecciona la acción pertinente del menú contextual. + + + Puedes usar una función especial del menú de opciones para guardar tu progreso en determinados puntos claves de la partida. + + + Al volver al campamento, conviene arreglar tu equipo, vender el botín que no necesites y reabastecerte de munición y suministros médicos. + + + Para reducir los efectos dañinos de áreas anómalas durante incursiones a la Zona, usa un traje protector, artefactos o toma el medicamento adecuado. + + + Además de armas y munición, en los cadáveres enemigos puedes encontrar cosas valiosas como una PDA con información. + + + Los artefactos no son solo un valioso botín; además de ser ligeros y caros, suelen tener efectos muy beneficiosos. + + + Debido al entorno de la Zona, muchos mutantes son radioactivos. Acercarte a ellos sin la protección adecuada es extremadamente peligroso. + + + Puedes usar una venda, un botiquín militar o medicamentos de Vinca para detener una hemorragia. Si no te das prisa, tu salud pude verse muy perjudicada. + + + Algunas armas te permiten instalar una mira de largo alcance. Para ajustar el alcance, pulsa "$$ACTION_NEXT_SLOT$$" o "$$ACTION_PREV_SLOT$$". + + + Hay lugares por los que no podrás pasar ni siquiera estando agachado. Para agacharte lo máximo posible, mantén "$$ACTION_CROUCH$$" y "$$ACTION_ACCEL$$" simultáneamente. + + + Para reducir las posibilidades de resultar herido, dispara apoyado contra las esquinas. Para ello, mantén "$$ACTION_LLOOKOUT$$" o "$$ACTION_RLOOKOUT$$". + + + Gracias al mecanismo integrado de ubicación de objetivos, los prismáticos no solo te permitirán ver perfectamente objetos lejanos, sino también localizar a enemigos. Para sacarlos, pulsa "$$ACTION_WPN_5$$". + + + Para encender o apagar la linterna, pulsa "$$ACTION_TORCH$$". + + + Para sacar un tornillo, pulsa "$$ACTION_WPN_6$$". + + + Si tienes un dispositivo de visión nocturna acoplado al casco, puedes activarlo y desactivarlo pulsando "$$ACTION_NIGHT_VISION$$". + + + Pulsa "$$ACTION_QUICK_USE_1$$", "$$ACTION_QUICK_USE_2$$", "$$ACTION_QUICK_USE_3$$" o "$$ACTION_QUICK_USE_4$$" para usar el objeto correspondiente del panel de acceso rápido. + + + Los medicamentos no son de efecto inmediato, aunque algunos duran mucho. + + + Tu PDA contiene un mapa, información sobre las misiones en curso, estadísticas personales y un registro de mensajes. Para abrirla, pulsa "$$ACTION_ACTIVE_JOBS$$". + + + Tienes que sacar el detector para buscar artefactos. Para ello, pulsa "$$ACTION_SHOW_DETECTOR$$". + + + Para detener el juego, pulsa "$$ACTION_PAUSE$$". + + + Para guardar rápido, pulsa "$$ACTION_QUICK_SAVE$$". Pulsa "$$ACTION_QUICK_LOAD$$" para cargar el último archivo guardado. + + + Correr es el modo más rápido de moverse, pero también el que más cansa. Pulsa "$$ACTION_SPRINT_TOGGLE$$" para correr. + + + Si apuntas, serás más preciso que disparando sin más. Para apuntar, pulsa "$$ACTION_WPN_ZOOM$$". + + + Si tienes un lanzagranadas acoplado, puedes cambiar el modo de disparo de normal a granadas pulsando "$$ACTION_WPN_FUNC$$". + + + Si tienes varias clases de munición para el arma en uso, puedes cambiar de una a otra pulsando "$$ACTION_WPN_NEXT$$". + + + Para recargar el arma antes de agotar el cargador, pulsa "$$ACTION_WPN_RELOAD$$". + + + Para desechar el arma equipada, pulsa "$$ACTION_DROP$$". + + + Para aguardar a que pase una emisión, refúgiate en un edificio fiable o subterráneo, Cuando se aproxime una emisión, verás marcado en tu PDA el punto más cercano. + + + Para usar un objeto mediante acceso rápido, arrástralo de la mochila a una de las cuatro ranuras sobre los contenedores para artefactos. + + + Si ves una gota de sangre en la esquina inferior derecha de la pantalla, es que sufres una hemorragia y debes detenerla. El color del símbolo varía según la gravedad. + + + Un símbolo de peligro por radiación te alerta de que estás expuesto a radiaciones. Cuando eso ocurra, usa medicamentos antirradiación. El color del símbolo indica el nivel de exposición sufrido. + + + Puedes ocultar y mostrar diferentes marcadores en el mapa de tu PDA utilizando filtros. Los botones para filtrar se encuentran arriba del mapa, bajo la misión actual. + + + Los artefactos no suelen ser estáticos, sino que tienden a moverse en un área anómala. Si persigues como loco un artefacto acabarás metido en una anomalía en poco tiempo. + + + Algunos stalkers pueden ofrecer servicios como facilitarte información y productos exclusivos, o conseguirte artefactos. + + + Tras una emisión, pueden aparecer nuevos artefactos en áreas anómalas que ya hayas explorado. + + + Puedes cambiar la dificultad del juego cuando quieras en el menú de opciones. + + + Los técnicos de los campamentos de stalkers pueden mejorar tus armas, trajes y cascos. + + + Si quieres sobrevivir, permanece atento a los chirridos del contador Geiger, que te avisarán de las radiaciones, y a la señal de peligro por anomalía, que te indica que te aproximas a una anomalía. + + + Tu relación con la gente tiene repercusión directa en el precio de los artículos y los servicios. Si no te llevas bien con alguien, no esperes ningún descuento. Sin embargo, si tienes buen trato, puede que hasta te ofrezca algo especial. + + + Puedes descargar las armas que encuentres para conseguir más munición; haz clic con el botón derecho en el arma dentro de tu mochila y selecciona la acción precisa en el menú contextual. + + + Matando a enemigos y consiguiendo artefactos reunirás los puntos necesarios para aumentar de rango. Al subir de rango, puedes acceder a nuevas armas, blindajes y equipo. + + + Las granadas de humo sirven para robar un artefacto u ocultarse. + + + A la izquierda del menú de compra verás cinco pestañas. De arriba abajo: pistolas, armas principales, equipo, munición y suministros médicos. Al seleccionar una, verás todos los elementos accesibles a tu rango. + + + El menú de compra de la pantalla tiene 4 ranuras de compra rápida. Pulsa el icono del disco para guardar una combinación o el número pertinente para cargar dicha combinación. La cuarta ranura es para guardar la última combinación adquirida. + + + Si tienes más de un arma, puedes cambiar de una a otra pulsando repetidamente "$$ACTION_WPN_3$$". + + + Puedes activar un artefacto para crear una anomalía. Para ello, saca el artefacto pulsando "$$ACTION_ARTEFACT$$" y mantén "$$ACTION_WPN_FIRE$$". La anomalía que aparezca será tan peligrosa para tus enemigos como para ti. + + + Un traje de científico te ayudará a sobrevivir en anomalías y áreas radioactivas. + + + CAZA DE ARTEFACTOS: para ganar, debes llevar un determinado número de artefactos a tu base. + + + Para desmontar un silenciador, una mira o un lanzagranadas acoplado de un arma, haz clic con el botón derecho en ella cuando esté en la mochila y selecciona la acción pertinente del menú contextual. + + + Si quieres moverte sin hacer ruido, pulsa "$$ACTION_ACCEL$$" para andar o "$$ACTION_CROUCH$$" para agacharte. + + + Las escopetas son armas de corto alcance. Cuanto más lejos tengas a un enemigo, menos efectivas serán. + + + Para cubrirte de disparos de armas de fuego pequeñas, escóndete tras algo sólido. A diferencia de los muros de cemento, las tablas de madera y las placas de metal no son seguras. + + + Los disparos a la cabeza son muy dañinos y letales para casi cualquier enemigo. + + + Los movimientos acelerados, los saltos y las heridas minan mucho tu resistencia. + + + Para ajustar lo lejos que lanzas una granada, mantén "$$ACTION_WPN_ZOOM$$". + + + Los enemigos utilizan granadas. Cuando veas un indicador de granada, abandona el radio letal de inmediato. + + + COMBATE A MUERTE: consigue más puntos letales que nadie para ganar. + + + Acelerar antes de un salto te permite salvar grandes distancias. + + + Los indicadores clave que muestran tu salud y tu resistencia están situados en la parte inferior derecha de la pantalla. + + + El minimapa indica la dirección del artefacto. Si la flecha señala arriba, el artefacto está por encima de tu posición actual. Si señala abajo, está por debajo. + + + Puedes recoger mochilas enemigas para reunir dinero extra. El equipo que te sobre, véndelo en la base. + + + Cubre a toda costa al miembro de tu equipo que cargue con los artefactos. + + + Usa granadas para atacar a los enemigos a cubierto. Ten en cuenta su radio de impacto para no herir a tus aliados. + + + Puedes comunicarte con tu equipo mediante mensajes de voz. Para acceder al menú de esa opción, pulsa "$$ACTION_SPEECH_MENU_0$$" o "$$ACTION_SPEECH_MENU_1$$". + + + COMBATE A MUERTE EN EQUIPO: para ganar, tu equipo deberá conseguir más puntos letales que el enemigo. + + + Para iniciar una votación, pulsa "$$ACTION_VOTE_BEGIN$$". + + + Para ver las puntuaciones del juego, pulsa "$$ACTION_SCORES$$". + + + Para reaparecer, pulsa "$$ACTION_JUMP$$" una vez finalizado el periodo de espera. + + + Para abrir el menú de compra, pulsa "$$ACTION_BUY_MENU$$" en el interior de la base. + + + Puedes abrir el chat general pulsando "$$ACTION_CHAT$$". Para comunicarte únicamente con tu equipo, pulsa "$$ACTION_CHAT_TEAM$$". + + + Correr es el modo más rápido de moverse, pero también el que más cansa. Pulsa "$$ACTION_SPRINT_TOGGLE$$" para correr. + + + Si apuntas, serás más preciso que disparando sin más. Para apuntar, pulsa "$$ACTION_WPN_ZOOM$$". + + + Si tienes un lanzagranadas acoplado, puedes cambiar el modo de disparo de normal a granadas pulsando "$$ACTION_WPN_FUNC$$". + + + Si tienes varias clases de munición para el arma en uso, puedes cambiar de una a otra pulsando "$$ACTION_WPN_NEXT$$". + + + Para recargar el arma antes de agotar el cargador, pulsa "$$ACTION_WPN_RELOAD$$". + + + CAPTURA DEL ARTEFACTO: para ganar, debes llevar un determinado número de artefactos enemigos a la base. + + + Para desechar el arma equipada, pulsa "$$ACTION_DROP$$". + + + Para mirar en tu mochila, pulsa "$$ACTION_INVENTORY$$". + + + Casi todas las armas tienen varios modos de disparo. Para cambiar de uno a otro, pulsa "$$ACTION_WPN_FIREMODE_NEXT$$" o "$$ACTION_WPN_FIREMODE_PREV$$". + + + Hay lugares por los que no podrás pasar ni siquiera estando agachado. Para agacharte lo máximo posible, mantén "$$ACTION_CROUCH$$" y "$$ACTION_ACCEL$$" simultáneamente. + + + Para asomarte por una esquina, pulsa "$$ACTION_LLOOKOUT$$" o "$$ACTION_RLOOKOUT$$". En esta posición, no puedes disparar. + + + CAPTURA DEL ARTEFACTO: para devolver un artefacto robado a tu base, tienes que matar al enemigo que lo lleve y recogerlo pulsando "$$ACTION_USE$$". + + + CAZA DE ARTEFACTOS: puedes destruir el artefacto activándolo. Para ello, sácalo pulsando "$$ACTION_ARTEFACT$$" y mantén "$$ACTION_WPN_FIRE$$". + + + No puedes correr con el artefacto a cuestas. + + + Para mirar en tu mochila, pulsa "$$ACTION_INVENTORY$$". + + + Para reparar un arma, traje o casco, busca un técnico, selecciona el objeto en la pantalla de modificación y haz clic en el botón de reparación. + + + Casi todas las armas tienen varios modos de disparo predeterminados y también puedes comprar modificaciones para añadir más modos. Para cambiar de uno a otro, pulsa "$$ACTION_WPN_FIREMODE_NEXT$$" o "$$ACTION_WPN_FIREMODE_PREV$$". + + + La trayectoria del arma afecta a la dirección de las balas, y el manejo establece el tiempo que tarda la mira en volver a su posición inicial tras el disparo. + + + Algunos trajes llevan cascos integrados y no es posible combinarlos con otros cascos. + + + Cada arma tiene sus propios valores de precisión, manejo, daño y cadencia de disparo. Elige la que más que te convenga de una amplia selección. + + + La precisión de disparo se ve mermada considerablemente cuando te mueves. Quédate quieto o agáchate para mejorarla. + + + Esta bebida energética acelera la recuperación de energía temporalmente y te permite esprintar más tiempo. + + + En el modo Combate a muerte tendrás munición ilimitada. + + + Uno de los peligros más comunes de la Zona es la radiación. Una exposición prolongada minará tu salud y puede ser mortal si no se trata adecuadamente. + + + Lleva comida en las largas incursiones. Si llegas a pasar mucha hambre, tu recuperación de resistencia se verá afectada. + + diff --git a/gamedata/configs/text/spa/ui_st_mm.xml b/gamedata/configs/text/spa/ui_st_mm.xml new file mode 100644 index 0000000..9b987bd --- /dev/null +++ b/gamedata/configs/text/spa/ui_st_mm.xml @@ -0,0 +1,936 @@ + + + + Despejado + + + Nublado + + + medio + + + máximo + + + alto + + + bajo + + + mínima + + + Noche + + + Lluvia + + + TIPO DE PARTIDA + + + maestro + + + principiante + + + veterano + + + ICONOS + + + MAPA + + + Volver por activación + + + Permitir votación + + + Tiempo anomalía (min.) + + + Captura del artefacto + + + Desfase del artefacto + + + Número de artefactos + + + Tiempo de artefacto + + + Devolver artefacto + + + Equilibrio de equipos automático + + + Cambio de equipo automático + + + MAPAS DISPONIBLES + + + Cancelar + + + Clave del CD + + + comprobar clave del CD + + + Cliente + + + Crear + + + Invulnerabilidad (seg.) + + + Indicador de invulnerabilidad + + + Muertes + + + Dedicado + + + Lista de demos + + + estadísticas del jugador + + + Grabar demo + + + Grabación de demo + + + Vacíos + + + Filtros + + + Reaparición forzada (seg.) + + + Límite de vidas + + + Vidas + + + Tiempo de desfase + + + Daño de aliado + + + Indicadores de aliados + + + Nombres de aliados + + + Llenos + + + Modo + + + IP/host:puerto + + + Internet + + + Conectar + + + LAN + + + En lista + + + Repetir + + + Lista de mapas + + + Límite de jugadores + + + Conexión de red + + + Sin anomalías + + + Opciones + + + Contraseña + + + Nombre del jugador: + + + Jugadores + + + número de jugadores + + + Servidor de Internet + + + Actualizar ráp. + + + Cambiar coeficiente + + + Actualizar todo + + + Refuerzos (seg.) + + + Opciones de reaparición + + + MAPAS SELECCIONADOS + + + Servidor + + + Lista de servidores + + + Propiedades del servidor + + + Info. servidor + + + Servidor + + + Nombre del servidor + + + Ajustes del servidor + + + Espectador + + + Primera persona + + + Cámara libre + + + Bloqueada libre + + + Tercera persona + + + Ajustes de espectador + + + Solo equipo + + + Tiempo inicial + + + puntos + + + Límite de tiempo (min.) + + + T. calentamiento (seg.) + + + Opciones meteorológicas + + + Sin fuego amigo + + + Sin contraseña + + + Sin PunkBuster + + + Sin contraseña + + + LAN + + + Internet + + + Fábrica de Agroprom + + + Estación de vehículos + + + Estanque + + + ¡Apodo cambiado con éxito! + + + Valle Oscuro + + + Fábrica de Yantar + + + error al conectarte al servidor de estadísticas + + + error al conectarte al servidor de inicio de sesión + + + Autorización completada + + + Pueblo abandonado + + + Almacenes militares + + + nombre incorrecto + + + Estanque + + + Estación de tren + + + Fábrica de Rostok + + + apodo incorrecto + + + Confirma que quieres eliminar + + + Fábrica abandonada + + + PING + + + JUGADORES + + + Iluminación estática + + + Iluminación dinámica completa + + + Ilumin. dinámica completa mejorada + + + Iluminación dinámica de objetos + + + Ilum. din. completa mejor. (DX10) + + + NOMBRE DEL SERVIDOR + + + Caza de artefactos + + + Captura del artefacto + + + Batalla campal + + + Filtro: + + + alto + + + bajo + + + medio + + + no + + + experimentado + + + stalker legendario + + + principiante + + + profesional + + + veterano + + + Juego en equipo + + + Frecuencia 60 Hz + + + Acción + + + Avanzado + + + Alternativo + + + Filtro anisotrópico + + + Aplicar + + + Atrás + + + Sangre + + + Brillo + + + Cancelar + + + Actualizac. + + + Contraste + + + Controles + + + Créditos + + + Distancia del objetivo + + + Predeterminado + + + Borrar + + + ¿Seguro que quieres borrar este archivo? + + + Detalle de la hierba + + + Dificultad + + + Desconectar + + + ¿Seguro que quieres desconectarte? + + + Profundidad de campo + + + Punto de mira dinámico + + + Música dinámica + + + EAX + + + Pantalla completa + + + Partida + + + Gamma + + + Detalles de objetos + + + Invertir ratón + + + Botón + + + Configuración del teclado + + + Último guardado + + + Distancia de iluminación + + + Cargar + + + Cargar partida + + + Salir del perfil + + + Maestro + + + Volumen efectos + + + Sensibilidad del ratón + + + Suavizado de objetos de pruebas alfa + + + Optimizar el suavizado + + + MULTIJUGADOR + + + Multijugador + + + Volumen de la música + + + Los cambios tendrán efecto después de reiniciar el juego. + + + Multijugador + + + Nueva partida + + + Principiante + + + Linternas de los PNJ + + + OPCIONES + + + Opciones + + + Distancia de partículas + + + Ajustes de calidad + + + Salir a Windows + + + Salir de la partida + + + ¿Seguro que quieres salir de la partida? + + + ¿Seguro que quieres salir a Windows? + + + Nivel de detalles + + + Paralaje empinado + + + Sombras solares + + + Sombra de la hierba + + + Calidad del sol + + + Usar DX10.1 + + + Suavizado de pantalla completa + + + Superficies húmedas + + + Optimizar buffer geométrico + + + Humo volumétrico + + + Render 2 + + + Tipo de Render + + + Resolución + + + Volver a la partida + + + Guardar + + + Guardar partida + + + Mostrar punto de mira + + + Mostrar arma + + + Básicas + + + Dispositivo de sonido + + + Suavizado de partículas + + + Suavizado del agua + + + Sonido + + + Calidad de sonido + + + Stalker + + + Calidad de las sombras + + + Rayos de sol + + + Antialiasing + + + La IA usa linternas + + + Detalle de las texturas + + + Identificación de PNJ + + + Veterano + + + Vídeo + + + Distancia de visión + + + Luz volumétrica + + + Sincronización vertical + + + Cambiar apodo + + + Este correo ya se está usando + + + A través de Internet + + + A través de LAN + + + apuñalado por la espalda + + + desangrado + + + en una explosión + + + en el ojo + + + en la cabeza + + + La versión del archivo guardado no concuerda con la versión del juego. + + + racha de muertes + + + cuchillo + + + Último equipo + + + Entrar en multijugador + + + Nombre + + + Cambio + + + Equipo 1 + + + Equipo 2 + + + Equipo 3 + + + Restablecer + + + Vender todo + + + Versión + + + Pripyat + + + Modo agachado/de pie + + + Autoguardando + + + Texturas detalladas + + + Películas + + + Entrar + + + Salir + + + Crear + + + Contraseña o correo incorrecto + + + Perfil incorrecto + + + Error de conexión + + + Servidor no disponible actualmente + + + Se necesita iniciar sesión con un perfil + + + Error de conexión + + + Error de conexión + + + Error de conexión + + + Perfil incorrecto + + + Contraseña incorrecta + + + Apodo incorrecto + + + Este apodo ya está en uso + + + Inicia sesión primero con tu perfil + + + Cierra sesión primero con tu perfil + + + Error al conectarte al servidor de perfiles + + + No podrás borrar el perfil después de crearlo. + + + Calidad SSAO + + + Modo SSAO + + + predeterminado + + + HDAO + + + HBAO + + + Mostrar interfaz + + + El apodo no está registrado. Regístralo. + + + El apodo ha caducado. Vuelve a registrarlo. + + + stalker + + + máximo + + + Ilum. din. completa mejor. (DX11) + + + Inicia sesión para conectar con el servidor externo. + + + Este perfil de GameSpy se está usando en este momento. Usa otro perfil de GameSpy. + + + Correo incorrecto + + + Contraseña incorrecta + + + No puedes usar un perfil de GameSpy para conectar a un servidor local. Usa el modo de juego LAN. + + + Has sido expulsado por el servidor. + + + El administrador te ha inhabilitado: + + + El servidor te ha inhabilitado. + + + Información del servidor + + + El correo es demasiado largo. No puede contener más de 50 caracteres. + + + Correo incorrecto + + + La contraseña es demasiado corta. + + + La contraseña es demasiado larga. + + + Correo no encontrado + + + Apodo no configurado + + + El apodo es demasiado largo. No puede contener más de 30 caracteres. + + + El apodo solo puede contener números, letras del alfabeto latino y los siguientes símbolos especiales: "#$&'()*+-./:;<=>?@[]^_`{|}~ + + + El apodo no puede contener espacios. + + + El apodo no puede empezar con un número ni cualquiera de los siguientes símbolos: "@", "+", ":" o "#" + + + muy alto + + + Mosaico + + + ¿Aplicar cambios? Todos los cambios serán revertidos en + + diff --git a/gamedata/configs/text/spa/ui_st_mp.xml b/gamedata/configs/text/spa/ui_st_mp.xml new file mode 100644 index 0000000..61af62d --- /dev/null +++ b/gamedata/configs/text/spa/ui_st_mp.xml @@ -0,0 +1,741 @@ + + + + Artefacto + + + Amigable + + + Ping máx. + + + Perfil + + + Modos + + + El artefacto se ha destruido. + + + Ha aparecido el artefacto. Tráelo a la base para obtener un punto. + + + El artefacto se ha perdido. + + + El artefacto está en nuestra base. + + + El artefacto está en la base enemiga. + + + Artefactos + + + Artefactos + + + Selección auto. + + + Atrás + + + 4. Inhabilitar + + + Por anomalía + + + Cancelar + + + ha capturado el artefacto + + + 5. Cambiar mapa + + + 6. Cambiar tiempo + + + Cambiar el tiempo a + + + Chat + + + Conectado + + + Muertes + + + Descripción + + + Desconectado + + + Escribir texto para la votación + + + se unió a la partida + + + Parque de bomberos + + + (Vista en primera persona) + + + vidas + + + Vidas + + + (Cámara libre) + + + (Vista en tercera persona) + + + con + + + 7. Modo + + + Vertedero + + + ¡ADELANTE! + + + ha perdido%s el artefacto + + + ha perdido el artefacto + + + tiene%s el artefacto + + + Mercenarios + + + ahora es + + + se ha unido a + + + 3. Soltar + + + Limansk + + + Cargando tus premios... + + + Cargando tus récords... + + + (Bloqueada libre) + + + Descripción del mapa + + + ¡La partida ha comenzado! + + + Pueblo antiguo + + + Modos + + + Nombre + + + Siguiente + + + No han votado + + + Ping + + + ¡%s ha ganado la partida! + + + Jugadores + + + Pulsa Disparar para cambiar al modo Espectador + + + Pulsa Saltar para comprar una reaparición instantánea + + + Pulsa Saltar para seleccionar un aspecto + + + Pulsa Saltar para seleccionar los equipos + + + Pulsa Saltar para aparecer + + + Pulsa Saltar para comenzar + + + Pulsa ($$ACTION_BUY_MENU$$) para acceder al menú de compra + + + Tienes %d$. Puedes reaparecer por %d$. Haz clic en Sí para pagar. + + + Listo... + + + Taller de reparaciones + + + 1. Reiniciar + + + 2. Reinicio rápido + + + ha devuelto el artefacto + + + ha conseguido un punto + + + Seleccionar jugador para exclusión por votación + + + Seleccionar categoría de votación + + + Seleccionar jugador para expulsión por votación + + + Seleccionar jugador para expulsión por votación + + + Seleccionar mapa para votar + + + No puedes correr con el artefacto + + + - Número + + + - T. perman. + + + - T. reaparición + + + Anomalías + + + Periodo de anomalías + + + Cualquier momento + + + Artefacto capturado + + + Artefactos: + + + Equilibrio de equipos automático + + + Cambio de equipo automático + + + BattlEye + + + Desactivado + + + Activado + + + - Primera persona + + + Reaparición forzada + + + Límite de vidas + + + - Vuelo libre + + + - Vista libre + + + Fuego amigo + + + Indicadores de aliados + + + Nombres de aliados + + + Infinito + + + Invisibilidad: + + + - Indicadores + + + - Tiempo + + + - Tercera persona + + + Rotación mapa + + + Ping máx. + + + min. + + + No + + + Reaparecer + + + Los jugadores han vuelto a las bases + + + seg. + + + Nombre del servidor: + + + Bases protegidas + + + Modos Espectador: + + + - Solo equipo + + + Límite de tiempo + + + Versión: + + + Votación + + + Calentamiento + + + + + + Selección de aspecto + + + Espectador + + + ESPECTADORES + + + Polideportivo + + + Estado + + + ha cambiado a + + + Libertad + + + Selección de equipo + + + ¡El equipo %s ha ganado! + + + Texto + + + Tiempo para reaparecer + + + Tiempo para empezar: + + + Tiempo restante: %d:%d; Votos positivos: %.2f + + + Campo de entrenamiento + + + Votar A FAVOR-[$$ACTION_VOTE_YES$$]\nVotar en contra -[$$ACTION_VOTE_NO$$]\nResultados-[$$ACTION_VOTE$$] + + + No + + + + + + Ha votado + + + No + + + + + + ¡Votación cancelada por el servidor! + + + Votación '%s' iniciada por %s. + + + ¡Ha comenzado la votación! + + + 1. Despejado + + + 4. Nublado + + + 3. Noche + + + 2. Lluvia + + + ¡Apuñalado! + + + ¡Disparo a la cabeza! + + + Tienes el artefacto enemigo, ¡llévalo a tu base! + + + Tienes el artefacto. ¡Actívalo para llevarlo a tu base! + + + Ahora tu rango es + + + Eres tú + + + Las votaciones no están disponibles en este servidor. + + + No hay votaciones activas. + + + Solo se permite una votación activa. + + + Listo + + + A todos + + + Al equipo + + + ¡Error al votar! + + + ¡Éxito al votar! + + + Base de Libertad + + + Base de mercenarios + + + 2. Caza de artefactos + + + 4. Captura del artefacto + + + 1. Batalla campal + + + Crear un nuevo perfil + + + Obteniendo perfiles de cuenta + + + Hola + + + Conectando con el perfil + + + Perfil creado con éxito. Inicia sesión. + + + Verificando el apodo... + + + ¿Quieres usar el perfil ya existente con el nombre + + + Cuenta encontrada. Obteniendo perfiles registrados... + + + Ya tienes un perfil. Inicia sesión con él. + + + Verificando cuenta... + + + Este apodo ya está en uso. Elige uno de la lista desplegable de abajo o escribe uno nuevo. + + + ¡Las contraseñas no coinciden! + + + 3. Juego en equipo + + + Copiar vínculo + + + Cargar mapa + + + Descripción + + + Mapa incorrecto o dañado + + + Mapa no encontrado + + + Premios + + + Récords + + + Comprobar + + + Confirmar contraseña + + + Correo + + + ¿Sin contraseña? + + + Página de creación de perfil en GameSpy + + + Contraseña + + + Recordar + + + Apodo + + + Has conseguido cambiar el apodo a + + + Equipo + + + Libertad + + + Mercenarios + + + Nuevo perfil + + + Autorización del perfil de GameSpy + + + jugar + + + retroceder + + + reiniciar + + + al comienzo + + + al asesinato + + + a la muerte + + + a la captura del artefacto + + + a la pérdida del artefacto + + + a la entrega del artefacto + + + cualquiera + + + Iniciar sesión + + + Capturar pantalla + + + Config. para todos + + + Límite de ping: + + + Límite de ping + + + Jugador sel. en pantalla + + + Config. jugador selec. + + + Expulsar jugador selec. + + + Inhab. jugador selec. + + + Reiniciar + + + Reinicio rápido + + + Cambiar tiempo + + + Veloc. cambio tiempo + + + Cambiar tipo de partida + + + Cambiar conf. partida + + + Detener la votación actual + + + Límite de tiempo (0, 180) + + + Límite de vidas (0, 1.000) + + + Límite artefactos (0, 100) + + + Tiempo calent. (0, 3.600) + + + T. prot. reg. (0, 60 CTA) + + + T. prot. reg. (0, 600 T/DM) + + + Tiempo reg. (-1, 3.600) + + + Error de perfil desconocido (código: 4) + + + 10 minutos + + + 30 minutos + + + 1 hora + + + 6 horas + + + 1 día + + + 1 semana + + + 1 mes + + + 3 meses + + + Permanentemente + + + El apodo es demasiado corto. + + + Error de perfil + + diff --git a/gamedata/configs/text/spa/ui_st_other.xml b/gamedata/configs/text/spa/ui_st_other.xml new file mode 100644 index 0000000..e3119a6 --- /dev/null +++ b/gamedata/configs/text/spa/ui_st_other.xml @@ -0,0 +1,501 @@ + + + + Cancelar + + + No + + + Aceptar + + + + + + Malo + + + Enemigo + + + Excelente + + + Experimentado + + + Amigo + + + Mapa de la Zona + + + Bien + + + Indiferente + + + Maestro + + + Bonificación de PDA + + + Solo se permite una votación activa. + + + Neutral + + + Principiante + + + Partida + + + Usado + + + Nivel + + + Cargando objetos IA + + + Servidor: cargando simulador activo + + + Cargando CFORM + + + Cargando detalles + + + Cargando geometría + + + Cargando partida guardada + + + Cargando sectores y portales + + + Cargando shaders + + + Cargando base de datos espacial + + + Cargando texturas + + + IP directa + + + Tarea inactiva + + + No tienes suficiente dinero + + + El PNJ no tiene dinero suficiente + + + Abriendo secuencia + + + Buscando objetos con antelación + + + escombros. + + + SERVIDOR: conectando + + + SERVIDOR: iniciando + + + Validando clave del CD + + + Vídeo + + + Terrible + + + Arreglar + + + No es posible ejecutar Render 2 en el PC + + + Facción + + + Error de conexión: clave del CD desactivada. Contactar con el servicio de atención al cliente. + + + Error de conexión: clave del CD en uso + + + Error de conexión: clave del CD no válida + + + Error de conexión: host no válido + + + Error de conexión: contraseña no válida + + + Nuevo parche disponible.\n Versión: %s\n Localización: %s\n¿Descargar ahora? + + + No hay nuevos parches disponibles + + + Error de conexión: conexión rechazada por el servidor + + + Error de conexión: servidor lleno + + + Error de conexión: versión diferente + + + Conectando con servidor principal + + + Días + + + Error + + + Error de carga + + + Ya existe un archivo con este nombre. ¿Quieres sobrescribirlo? + + + El archivo no tiene nombre + + + Horas + + + Desconectado por el sistema de protección de BattleEye: + + + Desconectado. Razón: + + + Salir + + + Si cargas esta partida, se perderán los datos no guardados. ¿Continuar? + + + min. + + + meses + + + Mochila + + + Parámetros + + + No es posible descargar el parche + + + El parche se ha descargado correctamente. ¿Quieres instalarlo? + + + Precio + + + Rango + + + Actitud + + + Reputación + + + seg. + + + Selecciona al menos un mapa + + + Coger todo + + + Restante + + + Error al votar + + + ¿Seguro que quieres salir del juego? + + + Total + + + muy mala + + + muy buena + + + Veterano + + + Arreglar + + + Reparar el objeto seleccionado + + + ... + + + moviéndose en una zona + + + moviéndose de Zaton a Yanov + + + moviéndose de Zaton a Pripyat + + + moviéndose de Yanov a Zaton + + + moviéndose de Yanov a Pripyat + + + moviéndose de Pripyat a Zaton + + + moviéndose de Pripyat a Yanov + + + moviéndose de Pripyat a X8 + + + moviéndose de X8 a Pripyat + + + emisión + + + comienzo de la partida + + + llegada a Skadovsk + + + Pez Raya 1 registrado + + + Pez Raya 2 registrado + + + Pez Raya 3 registrado + + + Pez Raya 4 registrado + + + Pez Raya 5 registrado + + + llegando a la meseta + + + llegada a Yanov + + + camino a Pripyat encontrado + + + Zulu se une al escuadrón + + + Deuda de Vano saldada + + + Vano se une al escuadrón + + + planta extraña recogida + + + Sokolov se une al escuadrón + + + Strider se une al escuadrón + + + pelotón reunido + + + llegada al paso subterráneo + + + llegada a Pripyat + + + fuerzas militares localizadas + + + arma no identificada capturada + + + pelotón de reconocimiento encontrado + + + refuerzos recibidos + + + "antena" registrada + + + centinela desaparecido encontrado + + + controlador cercano al centinela asesinado + + + taller de pruebas alcanzado + + + documentación de fusil Gauss encontrada + + + cadáver de soldado encontrado + + + entrada al jardín de infancia + + + médico militar rescatado + + + comunicaciones con el cuartel general establecidas + + + evacuación de Pripyat iniciada + + + helicópteros de evacuación alcanzados + + + evacuación completada + + + detector de mutantes + + + rescate pagado + + + rehén liberado + + + medidas de la anomalía del Cenizal + + + medidas de la anomalía Plavni + + + guarida de chupasangres + + + enviado a Kopachy + + + acercamiento a la planta de tratamiento de basura + + + stalker alcanzado + + + contenedor encontrado en el escondite + + + caza de la quimera + + + Oasis encontrado + + + Operación Un disparo iniciada + + + búsqueda del origen de las emisiones psíquicas + + + documentos administrativos + + + acercamiento al taller de la subestación + + + trato junto al puesto de guardabosques + + + almacén de Deber + + + origen del extraño brillo encontrado + + + Zulu encontrado + + + cueva peligrosa + + + Reparaciones/modificaciones + + + Comprar + + + Vender + + + Intercambiar + + + Cerrar ventana ($$ACTION_USE$$) + + + Abrir ventana de intercambio ($$ACTION_SPRINT_TOGGLE$$) + + + Abrir ventana de reparaciones y modificaciones ($$ACTION_SPRINT_TOGGLE$$) + + + Mover todos los objetos a tu mochila ($$ACTION_SPRINT_TOGGLE$$) + + + Comprar los objetos seleccionados + + + Vender los objetos seleccionados + + + despegue del helicóptero de evacuación + + diff --git a/gamedata/configs/text/spa/ui_st_pda.xml b/gamedata/configs/text/spa/ui_st_pda.xml new file mode 100644 index 0000000..aa1f07b --- /dev/null +++ b/gamedata/configs/text/spa/ui_st_pda.xml @@ -0,0 +1,279 @@ + + + + Tiempo + + + Stalker libre + + + Militar + + + Bandido + + + Deber + + + Científico + + + Misiones secundarias + + + Escondites + + + Libertad + + + Mercenarios + + + Registro de misiones + + + Monolith + + + Mutante + + + Abril + + + Agosto + + + Diciembre + + + Febrero + + + Enero + + + Julio + + + Junio + + + March + + + Mayo + + + Noviembre + + + Octubre + + + Septiembre + + + Desactivar PDA + + + Registro de mensajes + + + Mostrar historial de mensajes + + + Mapa del área + + + Mostrar mapa de la Zona y registro de misiones + + + Estadísticas + + + Ver estadísticas personales + + + Hora actual: + + + Filtro de fecha + + + Mostrar noticias + + + Mostrar diálogos + + + Leyenda + + + Tiempo en la Zona: + + + Emisiones superadas: + + + Misiones completadas: + + + Mutantes muertos: + + + Stalkers muertos: + + + Artefactos encontrados: + + + Escondites encontrados: + + + Arma favorita + + + Mutante más fuerte asesinado + + + Posición: + + + Objetivo + + + Misión secundaria + + + Enemigos + + + Amigos + + + Líder de la facción + + + Misión principal + + + Neutrales + + + Guía + + + Escondites + + + Comandante de pelotón + + + Comerciante + + + Stalker + + + Registro de mensajes + + + Centrado en el jugador + + + Moverse hacia abajo + + + Moverse hacia la izquierda + + + Mostrar leyenda + + + Moverse hacia la derecha + + + Moverse hacia arriba + + + Alejar imagen al máximo + + + Zoom + + + Alejar la imagen + + + Logros + + + Centrar mapa en la misión + + + Centrar mapa en la misión + + + Zombi + + + escala + + + + escala - + + + Técnico + + + Médico + + + Misiones actuales + + + Mostrar/ocultar misiones + + + Caja personal + + + Zaton + + + Área en torno a Júpiter + + + Pripyat + + + Paso subterráneo Pripyat 1 + + + Laboratorio X8 + + + Zonas + + + Objetos importantes + + + Zona + + + Los escáneres han detectado artefactos: + + + Los escáneres no han detectado ningún artefacto + + + Escondite + + + Zona de descanso + + diff --git a/gamedata/configs/text/spa/ui_st_screen.xml b/gamedata/configs/text/spa/ui_st_screen.xml new file mode 100644 index 0000000..cf34f31 --- /dev/null +++ b/gamedata/configs/text/spa/ui_st_screen.xml @@ -0,0 +1,348 @@ + + + + Abrir caja personal ($$ACTION_USE$$) + + + Estás agotado; no puedes moverte + + + Vas demasiado cargado; no puedes moverte + + + Abrir puerta ($$ACTION_USE$$) + + + Hablar ($$ACTION_USE$$) + + + Registrar cuerpo ($$ACTION_USE$$) + + + Registrar cuerpo ($$ACTION_USE$$)\nArrastrar cuerpo (MAYÚS+$$ACTION_USE$$) + + + Misión completada: + + + Misión fallida: + + + Objeto recibido: + + + Dinero recibido: + + + Nueva misión: + + + Objeto perdido: + + + Dinero perdido: + + + Misión cancelada: + + + Misión actualizada: + + + El arma se ha atascado. Recárgala. + + + Registrar caja ($$ACTION_USE$$) + + + Coger objeto ($$ACTION_USE$$) + + + Registrar avión ($$ACTION_USE$$) + + + Puerta atascada + + + La puerta está cerrada por dentro + + + Caja cerrada + + + Se necesita código + + + Introducir código ($$ACTION_USE$$) + + + Coger planta ($$ACTION_USE$$) + + + Configurar escáner ($$ACTION_USE$$) + + + Coger escáner ($$ACTION_USE$$) + + + Supresor de agresión de arco iris\nmodelo de complejo de emisiones externas\nescala 1:20 + + + Activar interruptor ($$ACTION_USE$$) + + + Examinar dispositivo ($$ACTION_USE$$) + + + Colocar explosivos ($$ACTION_USE$$) + + + Recuperar ($$ACTION_USE$$) + + + El ascensor no tiene corriente. + + + Activar generador ($$ACTION_USE$$) + + + Dormir + + + ¡No puedes dormir! Te estás desangrando gravemente y te has expuesto a las radiaciones. Necesitas medicinas o un médico. + + + ¡No puedes dormir! Te estás desangrando gravemente. Necesitas medicinas o un médico. + + + ¡No puedes dormir! Te has expuesto a las radiaciones. Necesitas medicinas o un médico. + + + Dormir ($$ACTION_USE$$) + + + Has conseguido el logro Un tipo ecuánime. + + + Has conseguido el logro Dominio de las armas. + + + Has conseguido el logro Detective. + + + Has conseguido el logro Diplomático. + + + Has conseguido el logro Amigo de Deber. + + + Has conseguido el logro Amigo de Libertad. + + + Has conseguido el logro Amigo de los stalkers. + + + Has conseguido el logro Mensajero de la justicia. + + + Has conseguido el logro Experto en tecnología. + + + Has conseguido el logro Traficante de información. + + + Has conseguido el logro Guardián de secretos. + + + Has conseguido el logro Mandamás. + + + Has conseguido el logro Líder. + + + Has conseguido el logro Cazador de mutantes. + + + Has conseguido el logro Uno de los nuestros. + + + Has conseguido el logro Precursor. + + + Has conseguido el logro Ayudante de investigación. + + + Has conseguido el logro Cazador de artefactos. + + + Has conseguido el logro Stalker experimentado. + + + Has conseguido el logro Cliente adinerado. + + + Autoguardando... + + + Ya puedes soltar el arma. + + + Código de bloqueo ($$ACTION_USE$$) + + + Se han añadido medicinas en la caja personal del Skadovsk por resolver el misterio de los stalkers desaparecidos. + + + Se ha añadido un traje blindado universal PS5-M en la caja personal de Yanov por ayudar a Deber. + + + Se ha añadido un traje blindado PSZ-9d de Deber en la caja personal de Yanov por ayudar a Deber. + + + Se ha añadido un traje Viento de Libertad en la caja personal de Yanov por ayudar a Libertad. + + + Se ha añadido un traje de guardia de Libertad en la caja personal de Yanov por ayudar a Libertad. + + + No lograste llegar a los helicópteros y el equipo de evacuación se ha ido de la Zona sin ti. + + + ¿Listo para irte de la Zona? No hay vuelta atrás. + + + Partida terminada. + + + Pulsa ($$ACTION_JUMP$$) para volver al menú principal. + + + Pausa + + + Partida guardada + + + Se ha añadido un artefacto a la caja personal del Skadovsk por ayudar a desenmascarar a Urraca. + + + Tienes que esperar a que el muelle se vuelva estanco. + + + Acceso garantizado + + + Subir en el ascensor ($$ACTION_USE$$) + + + Bajar en el ascensor ($$ACTION_USE$$) + + + Nivel crítico de emisión psíquica. Sal del área de peligro inmediatamente. + + + Niveles de radiación peligrosos. Necesitas protección para seguir. + + + Examinar helicóptero ($$ACTION_USE$$) + + + Registrar escondite ($$ACTION_USE$$) + + + h + + + Mensaje + + + Puerta bloqueada + + + Cerrar puerta ($$ACTION_USE$$) + + + Puerta cerrada: campamento en alerta + + + Puerta cerrada: guarda el arma + + + Puerta cerrada + + + La puerta no tiene corriente + + + Abrir puerta ($$ACTION_USE$$) + + + Puerta bloqueada + + + Usar tarjeta de acceso ($$ACTION_USE$$) + + + Se necesita tarjeta de acceso + + + La puerta no puede abrirse por este lado + + + - + + + El contenedor está cerrado. Necesitas dos llaves para abrirlo. + + + Usar llave ($$ACTION_USE$$) + + + Usar llaves ($$ACTION_USE$$) + + + El contenedor está cerrado. Necesitas la segunda llave para abrirlo. + + + Abrir contenedor ($$ACTION_USE$$) + + + El mecanismo de la puerta está bloqueado desde dentro. + + + Conectar tanque de gas ($$ACTION_USE$$) + + + ¡Aviso! ¡Riesgo químico! + + + Girar válvula ($$ACTION_USE$$) + + + Registrar coche ($$ACTION_USE$$) + + + Visita a los tenientes Rogovets y Kirillov para que te den provisiones y munición. + + + Una emisión se acaba de producir en la Zona. + + + Has conseguido el logro Marcado por la Zona. + + + Se ha añadido munición a la caja personal de Yanov por eliminar a los mutantes peligrosos. + + + Recibidas coordenadas del escondite que ya ha sido descubierto. + + + Escondite encontrado + + + Recibidas coordenadas del escondite + + + Pulsa cualquier tecla para jugar + + diff --git a/gamedata/configs/ui/actor_menu.xml b/gamedata/configs/ui/actor_menu.xml new file mode 100644 index 0000000..1a5530b --- /dev/null +++ b/gamedata/configs/ui/actor_menu.xml @@ -0,0 +1,504 @@ + + + ui_inGame2_demo_player_info_window + + + + + + +
+ + ui_inGame2_inventory_back + +
+ + + ui_inGame2_left_side + + + + + + + + + + ui_st_community + + + + + + ui_st_rank + + + + + + ui_st_reputation + + + + + + + + + + + + + + + + + + ui_st_community + + + + + + ui_st_rank + + + + + + ui_st_reputation + + + + + + ui_st_relation + + + + + + + + + + + + + + + + + + + + + + + + ui_inGame2_weapon_highlighter + + + + + ui_inGame2_inventory_status_bar + + + + + + + + + ui_inGame2_weapon_highlighter + + + + + ui_inGame2_inventory_status_bar + + + + + + + + + + + + + + + + + ui_inGame2_inventory_status_bar + + + + + + + ui_inGame2_armor_highlighter + + + + + + + + ui_inGame2_detector_highlighter + + + + + + + + + ui_inGame2_helmet_highlighter + + + + ui_inGame2_inventory_status_bar + + + + + + + + + + + + ui_inGame2_quick_item_highlighter + + + ui_inGame2_artefakt_highlighter + + + + quick_use_str_1 + + + quick_use_str_2 + + + quick_use_str_3 + + + quick_use_str_4 + + + + ui_total_weight + + + + + + + + + + ui_total_weight + + + + + + + + ui_inGame2_center_trade_devider + + + + + + + + + + + ui_inGame2_center_trade_devider + + + + + + + + + + + ui_inGame2_artefact_blocker + + + + ui_inGame2_helmet_blocker + + + + + + + + + + + + + + + + + + + + + + + trade_buy_button + ui_inGame2_inventory_button + ui_st_buy + + + + + + + + + + trade_sell_button + ui_inGame2_inventory_button + ui_st_sell + + + + + + + + + + takeall_button + ui_inGame2_big_inventory_button + ui_st_take_all + + + + + + + + + + putall_button + ui_inGame2_big_inventory_button + ui_st_put_all + + + + + + + + + + exit_button + ui_inGame2_big_inventory_button + ui_inv_exit + + + + + + + + + + interface\inv_open + interface\inv_close + interface\inv_slot + interface\inv_belt + interface\inv_ruck + interface\inv_properties + interface\inv_drop + interface\inv_attach_addon + interface\inv_detach_addon + interface\inv_slot + + + + + ui_inGame2_hint_wnd_main_window + + + + + + + + + + ui_inGame2_hint_wnd_main_window + + + + + + + + st_ui_health_sensor + + + ui_inGame2_inventory_health_bar + + + + + + st_ui_bleeding_sensor + + ui_inGame2_bleeding_inv_green + + + ui_inGame2_bleeding_inv_yellow + + + ui_inGame2_bleeding_inv_red + + + + + st_ui_main_sensor + + ui_inGame2_radiation_inv_green + + + ui_inGame2_radiation_inv_yellow + + + ui_inGame2_radiation_inv_red + + + + + ui_inv_outfit_radiation_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_chemical_burn_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_shock_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_burn_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_telepatic_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_wound_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_fire_wound_protection + + 99 + + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_power_restore + + + ui_inGame2_inventory_progress_bar + + + + +
diff --git a/gamedata/configs/ui/actor_menu_16.xml b/gamedata/configs/ui/actor_menu_16.xml new file mode 100644 index 0000000..43d4e60 --- /dev/null +++ b/gamedata/configs/ui/actor_menu_16.xml @@ -0,0 +1,510 @@ + + + ui_inGame2_demo_player_info_window + + + + + + +
+ + ui_inGame2_inventory_back + + + ui_inGame2_widescreen_sidepanels_right + +
+ + + ui_inGame2_left_side + + ui_inGame2_widescreen_sidepanels_left + + + + + + + + + + + ui_st_community + + + + + + ui_st_rank + + + + + + ui_st_reputation + + + + + + + + + + + + + + + + + + ui_st_community + + + + + + ui_st_rank + + + + + + ui_st_reputation + + + + + + ui_st_relation + + + + + + + + + + + + + + + + + + + + + + + + ui_inGame2_weapon_highlighter + + + + + ui_inGame2_inventory_status_bar + + + + + + + + + ui_inGame2_weapon_highlighter + + + + + ui_inGame2_inventory_status_bar + + + + + + + + + + + + + + + + + ui_inGame2_inventory_status_bar + + + + + + + ui_inGame2_armor_highlighter + + + + + + + + ui_inGame2_detector_highlighter + + + + + + + + + ui_inGame2_helmet_highlighter + + + + ui_inGame2_inventory_status_bar + + + + + + + + + + + + + ui_inGame2_quick_item_highlighter + + + ui_inGame2_artefakt_highlighter + + + + quick_use_str_1 + + + quick_use_str_2 + + + quick_use_str_3 + + + quick_use_str_4 + + + + ui_total_weight + + + + + + + + + + ui_total_weight + + + + + + + + ui_inGame2_center_trade_devider + + + + + + + + + + + ui_inGame2_center_trade_devider + + + + + + + + + + + ui_inGame2_artefact_blocker + + + + ui_inGame2_helmet_blocker + + + + + + + + + + + + + + + + + + + + + + trade_buy_button + ui_inGame2_inventory_button + ui_st_buy + + + + + + + + + + trade_sell_button + ui_inGame2_inventory_button + ui_st_sell + + + + + + + + + + takeall_button + ui_inGame2_big_inventory_button + ui_st_take_all + + + + + + + + + + putall_button + ui_inGame2_big_inventory_button + ui_st_put_all + + + + + + + + + + exit_button + ui_inGame2_big_inventory_button + ui_inv_exit + + + + + + + + + + interface\inv_open + interface\inv_close + interface\inv_slot + interface\inv_belt + interface\inv_ruck + interface\inv_properties + interface\inv_drop + interface\inv_attach_addon + interface\inv_detach_addon + interface\inv_slot + + + + + ui_inGame2_hint_wnd_main_window + + + + + + + + + + ui_inGame2_hint_wnd_main_window + + + + + + + + st_ui_health_sensor + + + ui_inGame2_inventory_health_bar + + + + + + st_ui_bleeding_sensor + + ui_inGame2_bleeding_inv_green + + + ui_inGame2_bleeding_inv_yellow + + + ui_inGame2_bleeding_inv_red + + + + + st_ui_main_sensor + + ui_inGame2_radiation_inv_green + + + ui_inGame2_radiation_inv_yellow + + + ui_inGame2_radiation_inv_red + + + + + ui_inv_outfit_radiation_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_chemical_burn_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_shock_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_burn_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_telepatic_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_wound_protection + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_fire_wound_protection + + 99 + + + + ui_inGame2_inventory_progress_bar + + + + + + ui_inv_outfit_power_restore + + + ui_inGame2_inventory_progress_bar + + + + +
diff --git a/gamedata/configs/ui/actor_menu_item.xml b/gamedata/configs/ui/actor_menu_item.xml new file mode 100644 index 0000000..0807f84 --- /dev/null +++ b/gamedata/configs/ui/actor_menu_item.xml @@ -0,0 +1,399 @@ + + + + ui_inGame2_hint_wnd_main_window + + + + + + + + + + + + + + + + + + + + + + + ui_inGame2_hint_wnd_Information + + + + + ui_inGame2_hint_wnd_Properties + + + ui_wp_prop_tochnost + + + ui_wp_prop_ergonomics + + + ui_wp_prop_damage + + + ui_wp_prop_skorostrelnost + + + ui_wp_propery_07 + + + + ui_inv_accuracy + + + ui_inv_handling + + + ui_inv_damage + + + ui_inv_rate_of_fire + + + + + ui_inGame2_hint_wnd_bar_alfa_line + + + ui_inGame2_hint_wnd_bar + + + + + + + ui_inGame2_hint_wnd_bar_alfa_line + + + ui_inGame2_hint_wnd_bar + + + + + + + ui_inGame2_hint_wnd_bar_alfa_line + + + ui_inGame2_hint_wnd_bar + + + + + + + ui_inGame2_hint_wnd_bar_alfa_line + + + ui_inGame2_hint_wnd_bar + + + + + + + ui_ammo_count + + + + + + + ui_ammo_types + + + + + + + + + + + ui_inGame2_hint_wnd_Properties + + + ui_wp_prop_damage + + + ui_wp_prop_ergonomics + + + ui_wp_prop_distantion + + + ui_inv_damage + + + ui_inv_handling + + + ui_inv_dist + + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + + + + + + + + + + + + +#include "ui\af_params.xml" +#include "ui\booster_params.xml" + + + + + + ui_inGame2_hint_wnd_main_window + + + + + + + + + + + + + + + + + + + + + ui_inGame2_hint_wnd_upgrades + + + + + + + + + + ui_item_count_back + + + + + ui_icons_newPDA_perssign_h + + + + ui_upgrade_arrow2 + + + + ui\ui_ix-ray_team_logo + + + + + + + + + ui_inGame2_inventory_item_status_bar + + + ui_inGame2_inventory_item_status_bar + + + + + + + + + + ui_inGame2_hint_wnd_Properties + + + + ui_am_prop_thermo + + + + ui_inGame2_hint_wnd_bar_alfa_line + + + ui_inGame2_hint_wnd_bar + + + + + + + + + + + ui_am_prop_electro + + + + ui_inGame2_hint_wnd_bar_alfa_line + + + ui_inGame2_hint_wnd_bar + + + + + + + + + + + ui_am_prop_chem + + + + ui_inGame2_hint_wnd_bar_alfa_line + + + ui_inGame2_hint_wnd_bar + + + + + + + + + + + ui_am_propery_09 + + + + ui_inGame2_hint_wnd_bar_alfa_line + + + ui_inGame2_hint_wnd_bar + + + + + + + + + + + ui_am_propery_11 + + + + ui_inGame2_hint_wnd_bar_alfa_line + + + ui_inGame2_hint_wnd_bar + + + + + + + + + + + ui_am_prop_damage + + + + ui_inGame2_hint_wnd_bar_alfa_line + + + ui_inGame2_hint_wnd_bar + + + + + + + + + + + ui_am_propery_01 + + + + ui_inGame2_hint_wnd_bar_alfa_line + + + ui_inGame2_hint_wnd_bar + + + + + + + + + + + + diff --git a/gamedata/configs/ui/actor_menu_item_16.xml b/gamedata/configs/ui/actor_menu_item_16.xml new file mode 100644 index 0000000..a594322 --- /dev/null +++ b/gamedata/configs/ui/actor_menu_item_16.xml @@ -0,0 +1,385 @@ + + + + ui_inGame2_hint_wnd_main_window + + + + + + + + + + + + + + + + + + + + + + + ui_inGame2_hint_wnd_Information + + + + ui\ui_magnifier + + + + + ui_inGame2_hint_wnd_Properties + + + ui_wp_prop_tochnost + + + ui_wp_prop_ergonomics + + + ui_wp_prop_damage + + + ui_wp_prop_skorostrelnost + + + ui_wp_propery_07 + + + ui_inv_accuracy + + + ui_inv_handling + + + ui_inv_damage + + + ui_inv_rate_of_fire + + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + ui_ammo_count + + + + + + + ui_ammo_types + + + + + + + + + + + ui_inGame2_hint_wnd_Properties + + + ui_wp_prop_damage + + + ui_wp_prop_ergonomics + + + ui_wp_prop_distantion + + + ui_inv_damage + + + ui_inv_handling + + + ui_inv_dist + + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + + + + + + + + + + + + +#include "ui\af_params_16.xml" +#include "ui\booster_params_16.xml" + + + + + + ui_inGame2_hint_wnd_main_window + + + + + + + + + + + + + + + + + + + + + ui_inGame2_hint_wnd_upgrades + + + + + + + + + + ui_item_count_back + + + + + ui_icons_newPDA_perssign_h + + + + ui_upgrade_arrow2 + + + + ui\ui_ix-ray_team_logo + + + + + + + + + ui_inGame2_inventory_item_status_bar_16 + + + ui_inGame2_inventory_item_status_bar_16 + + + + + + + + + + ui_inGame2_hint_wnd_Properties + + + + ui_am_prop_thermo + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + + + + + ui_am_prop_electro + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + + + + + ui_am_prop_chem + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + + + + + ui_am_propery_09 + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + + + + + ui_am_propery_11 + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + + + + + ui_am_prop_damage + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + + + + + ui_am_propery_01 + + + + ui_inGame2_hint_wnd_bar_alfa_line_16 + + + ui_inGame2_hint_wnd_bar_16 + + + + + + + + + + + + diff --git a/gamedata/configs/ui/af_params.xml b/gamedata/configs/ui/af_params.xml new file mode 100644 index 0000000..4c8f922 --- /dev/null +++ b/gamedata/configs/ui/af_params.xml @@ -0,0 +1,136 @@ + + + ui_inGame2_hint_wnd_Properties + + + + ui_am_condition + + + + + + + + + ui_am_propery_05 + + + + + + + + + + ui_am_propery_09 + + + ui_am_prop_radio_restore + + + + + + + + ui_am_prop_satiety_restore_speed + + + + + + + + + + ui_am_propery_07 + + + + + + + + + + ui_am_prop_restore_bleeding + + + + + + + + + + + ui_am_prop_thermo + + + + + + + + + + ui_am_prop_electro + + + + + + + + + + ui_am_propery_09 + + + + + + + + + + ui_am_propery_11 + + + + + + + + + + ui_am_prop_chem + + + + + + + + + + ui_am_prop_artefact + + + + + + + + + + ui_am_propery_08 + + + + + + + + diff --git a/gamedata/configs/ui/af_params_16.xml b/gamedata/configs/ui/af_params_16.xml new file mode 100644 index 0000000..960e8c3 --- /dev/null +++ b/gamedata/configs/ui/af_params_16.xml @@ -0,0 +1,136 @@ + + + ui_inGame2_hint_wnd_Properties + + + + ui_am_condition + + + + + + + + + ui_am_propery_05 + + + + + + + + + + ui_am_propery_09 + + + ui_am_prop_radio_restore + + + + + + + + ui_am_prop_satiety_restore_speed + + + + + + + + + + ui_am_propery_07 + + + + + + + + + + ui_am_prop_restore_bleeding + + + + + + + + + + + ui_am_prop_thermo + + + + + + + + + + ui_am_prop_electro + + + + + + + + + + ui_am_propery_09 + + + + + + + + + + ui_am_propery_11 + + + + + + + + + + ui_am_prop_chem + + + + + + + + + + ui_am_prop_artefact + + + + + + + + + + ui_am_propery_08 + + + + + + + + diff --git a/gamedata/configs/ui/backend/arrowstepper.xml b/gamedata/configs/ui/backend/arrowstepper.xml new file mode 100644 index 0000000..e9979d3 --- /dev/null +++ b/gamedata/configs/ui/backend/arrowstepper.xml @@ -0,0 +1,7 @@ + + + ui_date_bt_left + ui_date_bt_right + ui_inGame2_opt_slider_bar + 30 + diff --git a/gamedata/configs/ui/backend/combobox.xml b/gamedata/configs/ui/backend/combobox.xml new file mode 100644 index 0000000..d2f9474 --- /dev/null +++ b/gamedata/configs/ui/backend/combobox.xml @@ -0,0 +1,9 @@ + + + ui_inGame2_combobox_linetext + ui_inGame2_combobox_linetext + ui_inGame2_combobox_line + ui_inGame2_combobox + ui_inGame2_combobox_arrow + 20 + diff --git a/gamedata/configs/ui/backend/cursor.xml b/gamedata/configs/ui/backend/cursor.xml new file mode 100644 index 0000000..89714e9 --- /dev/null +++ b/gamedata/configs/ui/backend/cursor.xml @@ -0,0 +1,6 @@ + + + + ui\ui_ani_cursor + + diff --git a/gamedata/configs/ui/backend/custom_spin.xml b/gamedata/configs/ui/backend/custom_spin.xml new file mode 100644 index 0000000..60aa648 --- /dev/null +++ b/gamedata/configs/ui/backend/custom_spin.xml @@ -0,0 +1,10 @@ + + + ui_inGame2_spin_box + ui_inGame2_spin_box_button_top + ui_inGame2_spin_box_button_bottom + 20 + 11 + 8 + 2 + \ No newline at end of file diff --git a/gamedata/configs/ui/backend/custom_spin_horz.xml b/gamedata/configs/ui/backend/custom_spin_horz.xml new file mode 100644 index 0000000..a6e0182 --- /dev/null +++ b/gamedata/configs/ui/backend/custom_spin_horz.xml @@ -0,0 +1,10 @@ + + + ui_inGame2_edit_box + ui_inGame2_spin_box_button_horz_top + ui_inGame2_spin_box_button_horz_bottom + 20 + 12 + 19 + 1 + \ No newline at end of file diff --git a/gamedata/configs/ui/backend/hud_target.xml b/gamedata/configs/ui/backend/hud_target.xml new file mode 100644 index 0000000..0606038 --- /dev/null +++ b/gamedata/configs/ui/backend/hud_target.xml @@ -0,0 +1,10 @@ + + + hud\cursor + ui\cursor + + + + + + \ No newline at end of file diff --git a/gamedata/configs/ui/backend/trackbar.xml b/gamedata/configs/ui/backend/trackbar.xml new file mode 100644 index 0000000..0b007d1 --- /dev/null +++ b/gamedata/configs/ui/backend/trackbar.xml @@ -0,0 +1,7 @@ + + + ui_inGame2_opt_slider_box + ui_inGame2_opt_slider_bar + 1 + 1 + diff --git a/gamedata/configs/ui/booster_params.xml b/gamedata/configs/ui/booster_params.xml new file mode 100644 index 0000000..b70f54b --- /dev/null +++ b/gamedata/configs/ui/booster_params.xml @@ -0,0 +1,166 @@ + + + ui_inGame2_hint_wnd_Properties + + + + + ui_am_propery_05 + + + + + + + + + + ui_am_propery_09 + + + + + + + + + + + ui_am_prop_satiety_restore_speed + + + + + + + + + + ui_am_prop_Vibros + + + + + + + + + + ui_am_propery_07 + + + + + + + + + + ui_am_prop_restore_bleeding + + + + + + + + + + ui_am_propery_09 + + + + + + + + + + ui_am_propery_11 + + + + + + + + + + ui_am_prop_chem + + + + + + + + + + ui_am_prop_thermo + + + + + + + + + + ui_am_prop_electro + + + + + + + + + + ui_am_propery_09 + + + + + + + + + + ui_am_propery_11 + + + + + + + + + + ui_am_prop_chem + + + + + + + + + + ui_am_propery_08 + + + + + + + + + + ui_am_prop_time_period + + + + + + + diff --git a/gamedata/configs/ui/booster_params_16.xml b/gamedata/configs/ui/booster_params_16.xml new file mode 100644 index 0000000..71a7475 --- /dev/null +++ b/gamedata/configs/ui/booster_params_16.xml @@ -0,0 +1,166 @@ + + + ui_inGame2_hint_wnd_Properties + + + + + ui_am_propery_05 + + + + + + + + + + ui_am_propery_09 + + + + + + + + + + + ui_am_prop_satiety_restore_speed + + + + + + + + + + ui_am_prop_Vibros + + + + + + + + + + ui_am_propery_07 + + + + + + + + + + ui_am_prop_restore_bleeding + + + + + + + + + + ui_am_propery_09 + + + + + + + + + + ui_am_propery_11 + + + + + + + + + + ui_am_prop_chem + + + + + + + + + + ui_am_prop_thermo + + + + + + + + + + ui_am_prop_electro + + + + + + + + + + ui_am_propery_09 + + + + + + + + + + ui_am_propery_11 + + + + + + + + + + ui_am_prop_chem + + + + + + + + + + ui_am_propery_08 + + + + + + + + + + ui_am_prop_time_period + + + + + + + diff --git a/gamedata/configs/ui/car_panel.xml b/gamedata/configs/ui/car_panel.xml new file mode 100644 index 0000000..06eb027 --- /dev/null +++ b/gamedata/configs/ui/car_panel.xml @@ -0,0 +1,40 @@ + + + + + ui_car_panel_back + + + + ui_inGame2_inventory_progress_bar + + + + + ui_inGame2_inventory_progress_bar + + + + + + ui_car_panel_engine + + + ui_car_panel_engine + + + + + + ui_car_panel_light + + + ui_car_panel_light + + + + + + + + \ No newline at end of file diff --git a/gamedata/configs/ui/car_panel_16.xml b/gamedata/configs/ui/car_panel_16.xml new file mode 100644 index 0000000..06eb027 --- /dev/null +++ b/gamedata/configs/ui/car_panel_16.xml @@ -0,0 +1,40 @@ + + + + + ui_car_panel_back + + + + ui_inGame2_inventory_progress_bar + + + + + ui_inGame2_inventory_progress_bar + + + + + + ui_car_panel_engine + + + ui_car_panel_engine + + + + + + ui_car_panel_light + + + ui_car_panel_light + + + + + + + + \ No newline at end of file diff --git a/gamedata/configs/ui/maingame.xml b/gamedata/configs/ui/maingame.xml new file mode 100644 index 0000000..f0cd903 --- /dev/null +++ b/gamedata/configs/ui/maingame.xml @@ -0,0 +1,230 @@ + +
+ + + + + + + + + + + + ui_hud_icon_weapon + + + + ui_microphone_icon + + + + + + + + + + + + + + + ui_inGame2_shield_Psy + + + + ui_inGame2_shield_Radiation + + + + ui_inGame2_shield_biological + + + + ui_inGame2_shield_blood + + + + ui_inGame2_shield_force + + + + ui_inGame2_shield_health + + + + ui_inGame2_shield_stamina + + + + ui_inGame2_shield_radiation_cleanup + + + + + ui_hud_icon_goodmode + + + + ui_hud_icon_artefact + + + + + + + + + ui_hud_icon_PDA + + + + + + detectors\contact_1 + + + + counter + ui_item_count_back + + + + ui_inGame2_Patroni_HUD_active_items_icon + + + + + counter + ui_item_count_back + + + + ui_inGame2_Patroni_HUD_active_items_icon + + + + + counter + ui_item_count_back + + + + ui_inGame2_Patroni_HUD_active_items_icon + + + + + counter + ui_item_count_back + + + + ui_inGame2_Patroni_HUD_active_items_icon + + + + quick_use_str_1 + + + quick_use_str_2 + + + quick_use_str_3 + + + quick_use_str_4 + + + + + + + + + + + + ui_inGame2_Patroni_HUD_main_window + + + + ui_inGame2_Patroni_HUD_red_bar + + + + + + ui_inGame2_Patroni_HUD_blue_bar + + + + + ammo + + + + fmj + + + + ap + + + + gr + + + + + + + + + + + diff --git a/gamedata/configs/ui/maingame_16.xml b/gamedata/configs/ui/maingame_16.xml new file mode 100644 index 0000000..2acd010 --- /dev/null +++ b/gamedata/configs/ui/maingame_16.xml @@ -0,0 +1,242 @@ + +
+ <_auto_static x="512" y="384" width="115" height="115" alignment="c" stretch="1" heading="1" xform_anim="xfrom_rotate_3sec" xform_anim_cyclic="1"> + ui_icons_newPDA_Crclbig_h + +
+ + + + + + + + + + + + ui_hud_icon_weapon + + + + ui_microphone_icon + + + + + + + + + + + + + + + ui_inGame2_shield_Psy + + + + ui_inGame2_shield_Radiation + + + + ui_inGame2_shield_biological + + + + ui_inGame2_shield_blood + + + + ui_inGame2_shield_force + + + + ui_inGame2_shield_health + + + + ui_inGame2_shield_stamina + + + + ui_inGame2_shield_radiation_cleanup + + + + + ui_hud_icon_goodmode + + + + ui_hud_icon_artefact + + + + + + + + + ui_hud_icon_PDA + + + + + + detectors\contact_1 + + + + counter + ui_item_count_back + + + + ui_inGame2_Patroni_HUD_active_items_icon + + + + + counter + ui_item_count_back + + + + ui_inGame2_Patroni_HUD_active_items_icon + + + + + counter + ui_item_count_back + + + + ui_inGame2_Patroni_HUD_active_items_icon + + + + + counter + ui_item_count_back + + + + ui_inGame2_Patroni_HUD_active_items_icon + + + + quick_use_str_1 + + + quick_use_str_2 + + + quick_use_str_3 + + + quick_use_str_4 + + + + + + + + + + + ui_inGame2_Patroni_HUD_main_window + + + + + ui_inGame2_Patroni_HUD_red_bar + + + + + + ui_inGame2_Patroni_HUD_blue_bar + + + + + ammo + + + + fmj + + + + ap + + + + gr + + + + + + + + + + +
diff --git a/gamedata/configs/ui/map_desc.xml b/gamedata/configs/ui/map_desc.xml new file mode 100644 index 0000000..7acad3c --- /dev/null +++ b/gamedata/configs/ui/map_desc.xml @@ -0,0 +1,49 @@ + + + + ui_inGame2_Mp_screen_main_window + + + mp_map_desc + + + ui_inGame2_Mp_screen_map_window + + + ui_inGame2_Mp_screen_mapinfo_window + + + ui_TV_descr_e + + + + ui\ui_noise + + + + + + + + ui_inGame2_Mp_bigbuttone + mp_next + + + + + + + + + + ui_inGame2_Mp_bigbuttone + mp_spectator + + + + + + + + + diff --git a/gamedata/configs/ui/map_desc_16.xml b/gamedata/configs/ui/map_desc_16.xml new file mode 100644 index 0000000..d64dc5d --- /dev/null +++ b/gamedata/configs/ui/map_desc_16.xml @@ -0,0 +1,49 @@ + + + + ui_inGame2_Mp_screen_main_window + + + mp_map_desc + + + ui_inGame2_Mp_screen_map_window + + + ui_inGame2_Mp_screen_mapinfo_window + + + ui_TV_descr_e + + + + ui\ui_noise + + + + + + + + ui_inGame2_Mp_bigbuttone + mp_next + + + + + + + + + + ui_inGame2_Mp_bigbuttone + mp_spectator + + + + + + + + + \ No newline at end of file diff --git a/gamedata/configs/ui/map_spots.xml b/gamedata/configs/ui/map_spots.xml new file mode 100644 index 0000000..ed510bf --- /dev/null +++ b/gamedata/configs/ui/map_spots.xml @@ -0,0 +1,838 @@ + + +#include "ui\map_spots_mp.xml" +#include "ui\map_spots_relations.xml" +#include "ui\map_spots_complex.xml" + + + ui_hud_map_arrow + + + ui_hud_map_arrow + + + + ui_hud_map_arrow + + + ui_hud_map_arrow + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + + ui_icons_mapPDA_persBig_e + + + ui_icons_newPDA_SmallBlue + ui_mini_sn_spot_below + ui_mini_sn_spot_above + + + + + + + + ui_icons_mapPDA_persBig_h + + + ui_icons_newPDA_SmallGreen + ui_mini_sn_spot_below + ui_mini_sn_spot_above + + + + + + + + ui_icons_mapPDA_mark_t + + + ui_icons_newPDA_SmallRed + ui_mini_sn_spot_below + ui_mini_sn_spot_above + + + + + ui_pda2_hl_quest_base + + + + ui_pda2_hl_quest_base + + + + ui_pda2_hl_quest_base + + + + + + + + ui_icons_newPDA_man + + + + + + + ui_icons_newPDA_manArrow + + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + + + ui_inGame2_PDA_icon_secret + + + ui_inGame2_PDA_icon_secret + + + + + + + + + ui_mapQuest_gold + + + ui_sm_mapQuest_gold + + + + + + + + ui_mapQuest_gold + + + ui_sm_mapQuest_gold + + + + + + + + ui_mapQuest_gold + + + ui_sm_mapQuest_gold + + + + + + + + ui_alife_combat + + + + + + + + + ui_minimap_point + + + + + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + + + + + + + + ui_pda2_pt_territory + + + + + + + + ui_pda2_pt_territory + + + + + + + ui_pda2_pt_territory + + + + + + + ui_pda2_base + + + ui_mmap_base + + + + + + + ui_pda2_pt_science + + + + + + ui_pda2_pt_resource + + + + + + + ui_pda2_pt_territory + + + + + + ui_pda2_pt_territory + + + + + + + ui_pda2_base + + + ui_mmap_base + + + + + + + ui_pda2_pt_science + + + + + + ui_pda2_pt_resource + + + + + + + ui_pda2_pt_territory + + + + + + ui_pda2_pt_territory + + + + + + + ui_pda2_base + + + ui_mmap_base + + + + + + + + ui_pda2_pt_science + + + + + + ui_pda2_pt_resource + + + + + + + + ui_pda2_pt_territory + + + + + + ui_pda2_pt_territory + + + + + + + ui_pda2_base + + + ui_mmap_base + + + + + + + + ui_pda2_pt_science + + + + + + ui_pda2_pt_resource + + + + + + + + + + + + + ui_pda2_squad_leader + + + ui_minimap_squad_leader + + + + + + + + ui_pda2_squad_leader + + + ui_minimap_squad_leader + + + + + + + + + ui_pda2_squad_leader + + + ui_minimap_squad_leader + + + + + + + + ui_pda2_squad_leader + + + ui_mmap_squad_leader + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ui_inGame2_PDA_icon_Primary_mission + + ui_pda2_stask_last_02 + + + + + ui_inGame2_PDA_icon_Primary_mission + + ui_mmap_stask_last_02 + + storyline_task_spot_below + storyline_task_spot_above + + + + + + + + + ui_inGame2_PDA_icon_Secondary_mission + + ui_pda2_stask_last_02 + + + + + ui_inGame2_PDA_icon_Secondary_mission + + ui_mmap_stask_last_02 + + secondary_task_spot_below + secondary_task_spot_above + + + + + + + + ui_pda2_stask_last_01a + + + + + + + ui_pda2_stask_last_01a + + + + + + + + + + + ui_pda2_hl_seq_quest2 + + + + + + + + + + ui_inGame2_PDA_icon_Stalker_machanik + + + ui_inGame2_PDA_icon_Stalker_machanik_small + + + + + + + + ui_inGame2_PDA_icon_Stalker_Trader + + + ui_inGame2_PDA_icon_Stalker_Trader_small + + + + + + + + ui_inGame2_PDA_icon_Stalker_guide + + + ui_inGame2_PDA_icon_Stalker_guide_small + + + + + + + + ui_inGame2_PDA_icon_Stalker_VIP + + + ui_inGame2_PDA_icon_Stalker_VIP + + + + + + + + ui_inGame2_PDA_icon_Stalker_Medic + + + ui_inGame2_PDA_icon_Stalker_Medic_small + + + + + + + + ui_inGame2_PDA_icon_Actor_Box + + + ui_inGame2_PDA_icon_Actor_Box_small + + + + + + + + ui_inGame2_PDA_icon_Place_to_rest + + + ui_inGame2_PDA_icon_Place_to_rest_small + + + + + + + + ui_inGame2_PDA_icon_location + + + + + + + ui_pda2_stask_last_01 + + + + + + + ui_pda2_stask_last_01 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gamedata/configs/ui/map_spots_16.xml b/gamedata/configs/ui/map_spots_16.xml new file mode 100644 index 0000000..4c4d368 --- /dev/null +++ b/gamedata/configs/ui/map_spots_16.xml @@ -0,0 +1,832 @@ + + +#include "ui\map_spots_mp.xml" +#include "ui\map_spots_relations.xml" +#include "ui\map_spots_complex.xml" + + + ui_hud_map_arrow + + + ui_hud_map_arrow + + + + ui_hud_map_arrow + + + ui_hud_map_arrow + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + + ui_icons_mapPDA_persBig_e + + + ui_icons_newPDA_SmallBlue + ui_mini_sn_spot_below + ui_mini_sn_spot_above + + + + + + + + ui_icons_mapPDA_persBig_h + + + ui_icons_newPDA_SmallGreen + ui_mini_sn_spot_below + ui_mini_sn_spot_above + + + + + + + + ui_icons_mapPDA_mark_t + + + ui_icons_newPDA_SmallRed + ui_mini_sn_spot_below + ui_mini_sn_spot_above + + + + + ui_pda2_hl_quest_base + + + + ui_pda2_hl_quest_base + + + + ui_pda2_hl_quest_base + + + + + + + + ui_icons_newPDA_man + + + + + + + ui_icons_newPDA_manArrow + + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + ui_pda2_exit_point + + + + + + + + + ui_inGame2_PDA_icon_secret + + + ui_inGame2_PDA_icon_secret + + + + + + + + + ui_mapQuest_gold + + + ui_sm_mapQuest_gold + + + + + + + + ui_mapQuest_gold + + + ui_sm_mapQuest_gold + + + + + + + + ui_mapQuest_gold + + + ui_sm_mapQuest_gold + + + + + + + + ui_alife_combat + + + + + + + + + ui_minimap_point + + + + + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + ui\ui_common + + + + + + + + + + + + + + ui_pda2_pt_territory + + + + + + + + ui_pda2_pt_territory + + + + + + + ui_pda2_pt_territory + + + + + + + ui_pda2_base + + + ui_mmap_base + + + + + + + ui_pda2_pt_science + + + + + + ui_pda2_pt_resource + + + + + + + ui_pda2_pt_territory + + + + + + ui_pda2_pt_territory + + + + + + + ui_pda2_base + + + ui_mmap_base + + + + + + + ui_pda2_pt_science + + + + + + ui_pda2_pt_resource + + + + + + + ui_pda2_pt_territory + + + + + + ui_pda2_pt_territory + + + + + + + ui_pda2_base + + + ui_mmap_base + + + + + + + + ui_pda2_pt_science + + + + + + ui_pda2_pt_resource + + + + + + + + ui_pda2_pt_territory + + + + + + ui_pda2_pt_territory + + + + + + + ui_pda2_base + + + ui_mmap_base + + + + + + + + ui_pda2_pt_science + + + + + + ui_pda2_pt_resource + + + + + + + + + + + + + ui_pda2_squad_leader + + + ui_minimap_squad_leader + + + + + + + + ui_pda2_squad_leader + + + ui_minimap_squad_leader + + + + + + + + + ui_pda2_squad_leader + + + ui_minimap_squad_leader + + + + + + + + ui_pda2_squad_leader + + + ui_mmap_squad_leader + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ui_inGame2_PDA_icon_Primary_mission + + ui_pda2_stask_last_02 + + + + + ui_inGame2_PDA_icon_Primary_mission + + ui_mmap_stask_last_02 + + storyline_task_spot_below + storyline_task_spot_above + + + + + + + + + ui_inGame2_PDA_icon_Secondary_mission + + ui_pda2_stask_last_02 + + + + + ui_inGame2_PDA_icon_Secondary_mission + + ui_mmap_stask_last_02 + + secondary_task_spot_below + secondary_task_spot_above + + + + + + + + ui_pda2_stask_last_01a + + + + + + + ui_pda2_stask_last_01a + + + + + + + + + + + ui_pda2_hl_seq_quest2 + + + + + + + + + + ui_inGame2_PDA_icon_Stalker_machanik + + + ui_inGame2_PDA_icon_Stalker_machanik_small + + + + + + + + ui_inGame2_PDA_icon_Stalker_Trader + + + ui_inGame2_PDA_icon_Stalker_Trader_small + + + + + + + + ui_inGame2_PDA_icon_Stalker_guide + + + ui_inGame2_PDA_icon_Stalker_guide_small + + + + + + + + ui_inGame2_PDA_icon_Stalker_VIP + + + ui_inGame2_PDA_icon_Stalker_VIP + + + + + + + + ui_inGame2_PDA_icon_Stalker_Medic + + + ui_inGame2_PDA_icon_Stalker_Medic_small + + + + + + + + ui_inGame2_PDA_icon_Actor_Box + + + ui_inGame2_PDA_icon_Actor_Box_small + + + + + + + + ui_inGame2_PDA_icon_Place_to_rest + + + ui_inGame2_PDA_icon_Place_to_rest_small + + + + + + + + ui_inGame2_PDA_icon_location + + + + + + + ui_pda2_stask_last_01 + + + + + + + ui_pda2_stask_last_01 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gamedata/configs/ui/pda_character.xml b/gamedata/configs/ui/pda_character.xml new file mode 100644 index 0000000..21a19c0 --- /dev/null +++ b/gamedata/configs/ui/pda_character.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + ui_st_community + + + + + + + + + ui_st_reputation + + + + + + + + + ui_st_relation + + + + + + + + ui_st_rank + + + + + + + + + ui\ui_pda_contacts_online + + + + ui\ui_pda_horizontal_line + + + + + diff --git a/gamedata/configs/ui/pda_character_16.xml b/gamedata/configs/ui/pda_character_16.xml new file mode 100644 index 0000000..ac346a6 --- /dev/null +++ b/gamedata/configs/ui/pda_character_16.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + ui_st_community + + + + + + + + + ui_st_reputation + + + + + + + + + ui_st_relation + + + + + + + + ui_st_rank + + + + + + + + + ui\ui_pda_contacts_online + + + + ui\ui_pda_horizontal_line + + + + + diff --git a/gamedata/configs/ui/pda_contacts_new.xml b/gamedata/configs/ui/pda_contacts_new.xml new file mode 100644 index 0000000..ad40aee --- /dev/null +++ b/gamedata/configs/ui/pda_contacts_new.xml @@ -0,0 +1,35 @@ + + + + + + + ui_inGame2_pda_buttons_background + + + + ui_inGame2_pda_ranking_icon_over + + + + + <text font="letterica16" r="100" g="100" b="100">Contacts</text> + + ui_inGame2_pda_ranking_center_caption + + + + ui_inGame2_pda_ranking_icon_over + + + + ui_inGame2_pda_ranking_center_caption + + + + + + + + + diff --git a/gamedata/configs/ui/pda_contacts_new_16.xml b/gamedata/configs/ui/pda_contacts_new_16.xml new file mode 100644 index 0000000..f908fb9 --- /dev/null +++ b/gamedata/configs/ui/pda_contacts_new_16.xml @@ -0,0 +1,35 @@ + + + + + + + ui_inGame2_pda_buttons_background + + + + ui_inGame2_pda_ranking_icon_over + + + + + <text font="letterica16" r="100" g="100" b="100">Contacts</text> + + ui_inGame2_pda_ranking_center_caption + + + + ui_inGame2_pda_ranking_icon_over + + + + ui_inGame2_pda_ranking_center_caption + + + + + + + + + diff --git a/gamedata/configs/ui/pda_spot.xml b/gamedata/configs/ui/pda_spot.xml new file mode 100644 index 0000000..6634b63 --- /dev/null +++ b/gamedata/configs/ui/pda_spot.xml @@ -0,0 +1,22 @@ + + + + ui_inGame2_message_box + + + + + + ui_inGame2_edit_box_2 + + + + ui_inv_ok + ui_inGame2_Mp_bigbuttone + + + + ui_inv_cancel + ui_inGame2_Mp_bigbuttone + + \ No newline at end of file diff --git a/gamedata/configs/ui/pda_spot_16.xml b/gamedata/configs/ui/pda_spot_16.xml new file mode 100644 index 0000000..dc6f358 --- /dev/null +++ b/gamedata/configs/ui/pda_spot_16.xml @@ -0,0 +1,22 @@ + + + + ui_inGame2_message_box + + + + + + ui_inGame2_edit_box_2 + + + + ui_inv_ok + ui_inGame2_Mp_bigbuttone + + + + ui_inv_cancel + ui_inGame2_Mp_bigbuttone + + \ No newline at end of file diff --git a/gamedata/configs/ui/talk.xml b/gamedata/configs/ui/talk.xml new file mode 100644 index 0000000..8f6c7ef --- /dev/null +++ b/gamedata/configs/ui/talk.xml @@ -0,0 +1,87 @@ + + +
+ + ui_inGame2_dialog_main_window + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/gamedata/configs/ui/talk_16.xml b/gamedata/configs/ui/talk_16.xml new file mode 100644 index 0000000..f96d834 --- /dev/null +++ b/gamedata/configs/ui/talk_16.xml @@ -0,0 +1,87 @@ + +
+ + ui_inGame2_dialog_main_window + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/gamedata/configs/ui/textures_descr/mod_ui_icons_npc_ixray.xml b/gamedata/configs/ui/textures_descr/mod_ui_icons_npc_ixray.xml new file mode 100644 index 0000000..0106ba0 --- /dev/null +++ b/gamedata/configs/ui/textures_descr/mod_ui_icons_npc_ixray.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/gamedata/configs/ui/textures_descr/ui_actor_multiplayer_menu_screen.xml b/gamedata/configs/ui/textures_descr/ui_actor_multiplayer_menu_screen.xml new file mode 100644 index 0000000..d328015 --- /dev/null +++ b/gamedata/configs/ui/textures_descr/ui_actor_multiplayer_menu_screen.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gamedata/configs/ui/textures_descr/ui_ixray_ex.xml b/gamedata/configs/ui/textures_descr/ui_ixray_ex.xml new file mode 100644 index 0000000..8e41078 --- /dev/null +++ b/gamedata/configs/ui/textures_descr/ui_ixray_ex.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gamedata/configs/ui/textures_descr/ui_microphone.xml b/gamedata/configs/ui/textures_descr/ui_microphone.xml new file mode 100644 index 0000000..ad9f3aa --- /dev/null +++ b/gamedata/configs/ui/textures_descr/ui_microphone.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/gamedata/configs/ui/textures_descr/ui_mm_loading_screen.xml b/gamedata/configs/ui/textures_descr/ui_mm_loading_screen.xml new file mode 100644 index 0000000..625e677 --- /dev/null +++ b/gamedata/configs/ui/textures_descr/ui_mm_loading_screen.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/gamedata/configs/ui/textures_descr/ui_npc_monster.xml b/gamedata/configs/ui/textures_descr/ui_npc_monster.xml new file mode 100644 index 0000000..90b5f9e --- /dev/null +++ b/gamedata/configs/ui/textures_descr/ui_npc_monster.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gamedata/configs/ui/ui_custom_msgs.xml b/gamedata/configs/ui/ui_custom_msgs.xml new file mode 100644 index 0000000..e76469d --- /dev/null +++ b/gamedata/configs/ui/ui_custom_msgs.xml @@ -0,0 +1,228 @@ +
+ + + + ui_hud_timer_games + + + + + + + + + car\trabantnoise + + + + act\act_controller_hit + + + + act\act_controller_hit1 + + + + controller\controller_blood_01 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + st_autosave + + + + + + + + gun_jammed + + + + can_use_weapon_now + + + + cant_walk + + + + cant_walk_weight + + + + st_not_enough_money + + + + st_not_enough_money_npc + + + + ui\ui_cm_connection_error + + + cur_num + + + + + ui\ui_cm_connection_error + + + cur_num + + + + + ui\ui_cm_connection_error + + + cur_num + + + + + ui\ui_cm_connection_error + + + cur_num + + + + + + + ui_sega_healph + + + + + ui_sega_healph + + + + + ui_hud_timer_games + + + + + + + + + ui_hud_timer_games + + + + ui_hud_points_count + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + intro\intro_back + + +
diff --git a/gamedata/configs/ui/ui_game_fmp.xml b/gamedata/configs/ui/ui_game_fmp.xml new file mode 100644 index 0000000..c72a34b --- /dev/null +++ b/gamedata/configs/ui/ui_game_fmp.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/gamedata/configs/ui/ui_game_fmp_16.xml b/gamedata/configs/ui/ui_game_fmp_16.xml new file mode 100644 index 0000000..d26fd15 --- /dev/null +++ b/gamedata/configs/ui/ui_game_fmp_16.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/gamedata/configs/ui/ui_keybinding.xml b/gamedata/configs/ui/ui_keybinding.xml new file mode 100644 index 0000000..5afdef6 --- /dev/null +++ b/gamedata/configs/ui/ui_keybinding.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gamedata/configs/ui/ui_mm_loading_screen.xml b/gamedata/configs/ui/ui_mm_loading_screen.xml new file mode 100644 index 0000000..f155ab1 --- /dev/null +++ b/gamedata/configs/ui/ui_mm_loading_screen.xml @@ -0,0 +1,38 @@ + + + + ui_mm_loading_screen + + + + + + + + ui_mm_loading_progress_bar + + + + ui_mm_loading_progress_bar + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gamedata/configs/ui/ui_mm_loading_screen_16.xml b/gamedata/configs/ui/ui_mm_loading_screen_16.xml new file mode 100644 index 0000000..5e2a498 --- /dev/null +++ b/gamedata/configs/ui/ui_mm_loading_screen_16.xml @@ -0,0 +1,44 @@ + + + + ui_mm_loading_screen + + + ui_mm_loading_left_widepanel + + + ui_mm_loading_right_widepanel + + + + + + + + ui_mm_loading_progress_bar + + + + ui_mm_loading_progress_bar + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gamedata/configs/ui/ui_mm_main.xml b/gamedata/configs/ui/ui_mm_main.xml new file mode 100644 index 0000000..31f1b94 --- /dev/null +++ b/gamedata/configs/ui/ui_mm_main.xml @@ -0,0 +1,117 @@ + + + + ui\video_voroni_crop + + + ui\video_water_crop + + + ui_inGame2_background + + + + + + + ui_inGame2_slider + + ui_magnifier3 + -5 + + + + + + + + + + + +#include "ui\ui_mm_mp_tabclient.xml" +#include "ui\ui_mm_mp_tabserver.xml" +#include "ui\ui_mm_mp_taboptions.xml" +#include "ui\ui_mm_mp_tabdemo.xml" +#include "ui\ui_mm_mp_tabprofile.xml" + + + ui_tablist_textbox + + + + mm_mp_create + ui_inGame2_Mp_bigbuttone + + + + mm_mp_load_demo + ui_inGame2_Mp_bigbuttone + + + + ui_inGame2_Mp_bigbuttone + + + + mm_mp_join + ui_inGame2_Mp_bigbuttone + + + + mm_mp_cancel + ui_inGame2_Mp_bigbuttone + + + + ui_patch_back + + + + mm_mp_progress + + + + + ui_patch_progress + + + + + mm_mp_cancel + ui_button_ordinary + + + + + + + diff --git a/gamedata/configs/ui/ui_mm_mp_16.xml b/gamedata/configs/ui/ui_mm_mp_16.xml new file mode 100644 index 0000000..b35fbd3 --- /dev/null +++ b/gamedata/configs/ui/ui_mm_mp_16.xml @@ -0,0 +1,173 @@ + + + + + ui_inGame2_mp_background + + + ui_st_mp_experience_grow + + + ui_inGame2_main_window + + + ui_inGame2_widescreen_panel_left + + + ui_inGame2_widescreen_panel_right + + + ui_inGame2_GameSpy_logo + + + + + + ui_inGame2_edit_box_1 + + + mm_mp_cd_key + + + + ui_inGame2_edit_box_2 + + + + mm_online_mode + + + + + + + + +#include "ui\ui_mm_mp_tabclient_16.xml" +#include "ui\ui_mm_mp_tabserver_16.xml" +#include "ui\ui_mm_mp_taboptions_16.xml" +#include "ui\ui_mm_mp_tabdemo_16.xml" +#include "ui\ui_mm_mp_tabprofile_16.xml" + + + ui_tablist_textbox + + + + mm_mp_create + ui_inGame2_Mp_bigbuttone + + + + mm_mp_load_demo + ui_inGame2_Mp_bigbuttone + + + + mm_mp_join + ui_inGame2_Mp_bigbuttone + + + + mm_mp_delete_demo + ui_inGame2_Mp_bigbuttone + + + + mm_mp_cancel + ui_inGame2_Mp_bigbuttone + + + + ui_patch_back + + + + mm_mp_progress + + + + + ui_patch_progress + + + + + mm_mp_cancel + ui_button_ordinary + + + + + + + + \ No newline at end of file diff --git a/gamedata/configs/ui/ui_mm_mp_tabclient.xml b/gamedata/configs/ui/ui_mm_mp_tabclient.xml new file mode 100644 index 0000000..9c07f90 --- /dev/null +++ b/gamedata/configs/ui/ui_mm_mp_tabclient.xml @@ -0,0 +1,145 @@ + +
+ + + + ui_inGame2_servers_list_frame + + + + + + + +
+ +
+ + + ui_inGame2_servers_list_button + + + ui_inGame2_servers_list_button_devider + + + + + + + + ui_inGame2_edit_box + + st_mp_gsfilter + + + + + mm_mp_server_prop + ui_inGame2_servers_list_button + + + mm_mp_players + ui_inGame2_servers_list_button + + + mm_mp_frags + ui_inGame2_servers_list_button + + + mm_mp_deaths + ui_inGame2_servers_list_button + + + + + + ui_inGame2_servers_list_frame + + + + + + ui_inGame2_servers_list_frame + + +
+ + + ui_inGame2_text_leyer_1 + + mm_mp_network_connection + + + + + ui_inGame2_text_leyer + + mm_mp_server_list + + + + + ui_inGame2_text_leyer_2 + + mm_mp_filters + + + + + ui_inGame2_checkbox + mm_mp_empty + + + + ui_inGame2_checkbox + mm_mp_full + + + + ui_inGame2_checkbox + mm_mp_withpassword + + + + ui_inGame2_checkbox + mm_mp_withoutpassword + + + + ui_inGame2_checkbox + mm_mp_withoutfriendlyfire + + + + ui_inGame2_checkbox + mm_mp_listenservers + + + + + + + + + + st_mp_direct_ip + ui_inGame2_button + + + mm_mp_refresh + ui_inGame2_button + + + mm_mp_quickrefresh + ui_inGame2_button + + + mm_mp_serverinfo + ui_inGame2_button + + + diff --git a/gamedata/configs/ui/ui_mm_mp_tabclient_16.xml b/gamedata/configs/ui/ui_mm_mp_tabclient_16.xml new file mode 100644 index 0000000..2d1c93d --- /dev/null +++ b/gamedata/configs/ui/ui_mm_mp_tabclient_16.xml @@ -0,0 +1,145 @@ + +
+ + + + ui_inGame2_servers_list_frame + + + + + + + +
+ +
+ + + ui_inGame2_servers_list_button + + + ui_inGame2_servers_list_button_devider + + + + + + + + ui_inGame2_edit_box + + st_mp_gsfilter + + + + + mm_mp_server_prop + ui_inGame2_servers_list_button + + + mm_mp_players + ui_inGame2_servers_list_button + + + mm_mp_frags + ui_inGame2_servers_list_button + + + mm_mp_deaths + ui_inGame2_servers_list_button + + + + + + ui_inGame2_servers_list_frame + + + + + + ui_inGame2_servers_list_frame + + +
+ + + ui_inGame2_text_leyer_1 + + mm_mp_network_connection + + + + + ui_inGame2_text_leyer + + mm_mp_server_list + + + + + ui_inGame2_text_leyer_2 + + mm_mp_filters + + + + + + + + + + ui_inGame2_checkbox + mm_mp_empty + + + + ui_inGame2_checkbox + mm_mp_full + + + + + ui_inGame2_checkbox + mm_mp_withpassword + + + + ui_inGame2_checkbox + mm_mp_withoutpassword + + + + ui_inGame2_checkbox + mm_mp_withoutfriendlyfire + + + + ui_inGame2_checkbox + mm_mp_listenservers + + + + + st_mp_direct_ip + ui_inGame2_button + + + mm_mp_refresh + ui_inGame2_button + + + mm_mp_quickrefresh + ui_inGame2_button + + + mm_mp_serverinfo + ui_inGame2_button + + diff --git a/gamedata/configs/ui/ui_mm_mp_taboptions.xml b/gamedata/configs/ui/ui_mm_mp_taboptions.xml new file mode 100644 index 0000000..0ec680d --- /dev/null +++ b/gamedata/configs/ui/ui_mm_mp_taboptions.xml @@ -0,0 +1,277 @@ + +
+ + ui_inGame2_servers_list_frame + + + ui_inGame2_servers_list_frame + + + ui_inGame2_servers_list_frame + + + + ui_inGame2_servers_list_button + + mm_mp_network_connection + + + + ui_inGame2_servers_list_button + + mm_mp_respawnoptions + + + + ui_inGame2_servers_list_button + + mm_mp_serverlist + + + + ui_inGame2_servers_list_button + + mm_mp_weatheroptions + + + + ui_inGame2_servers_list_button + + mm_mp_spectator_options + + + + ui_inGame2_servers_list_button + + mm_mp_demosave_options + + + + + ui_inGame2_checkbox_t + + mm_mp_publicserver + + + + ui_inGame2_checkbox_d + + mm_mp_publicserver + + + + + ui_inGame2_checkbox + + mm_mp_publicserver + + + + mm_mp_max_ping + + + + + + + ui_inGame2_checkbox + + mm_mp_spectator + + + + + + + ui_inGame2_checkbox + + mm_mp_allowvoting + + + + + + + + + + + + + + + + + + + mm_mp_damageblock + + + + + + + + ui_inGame2_checkbox + + mm_mp_damageblockindicator + + + + mm_mp_artret_time + + + + + + + + ui_inGame2_checkbox + + mm_mp_actret_time + + + + mm_mp_friendlyfire + + + + + + + mm_mp_fraglimit + + + + + + + mm_mp_timelimit + + + + + + + mm_mp_artefstay + + + + + + + mm_mp_artefnum + + + + + + + mm_mp_artefdelay + + + + + + + ui_inGame2_checkbox + + mm_mp_pda_hunt + + + ui_inGame2_checkbox + + mm_mp_autoteambalance + + + ui_inGame2_checkbox + + mm_mp_autoteamswap + + + ui_inGame2_checkbox + + mm_mp_friendlyindicators + + + ui_inGame2_checkbox + + mm_mp_friendlynames + + + ui_inGame2_checkbox + + mm_mp_noanomalies + + + + mm_mp_anomalytime + + + + + + + mm_mp_warmuptime + + + + + + + mm_mp_startweather + + + + + + + + + mm_mp_rateofchange + + + + + + + ui_inGame2_checkbox + mm_mp_spectator_teamonly + + + + ui_inGame2_checkbox + mm_mp_spectator_freefly + + + + ui_inGame2_checkbox + mm_mp_spectator_firsteye + + + + ui_inGame2_checkbox + mm_mp_spectator_lookat + + + + ui_inGame2_checkbox + mm_mp_spectator_freelook + + + + + + + ui_inGame2_checkbox + + mm_mp_demosave + + + diff --git a/gamedata/configs/ui/ui_mm_mp_taboptions_16.xml b/gamedata/configs/ui/ui_mm_mp_taboptions_16.xml new file mode 100644 index 0000000..7f70ac1 --- /dev/null +++ b/gamedata/configs/ui/ui_mm_mp_taboptions_16.xml @@ -0,0 +1,277 @@ + +
+ + ui_inGame2_servers_list_frame + + + ui_inGame2_servers_list_frame + + + ui_inGame2_servers_list_frame + + + + ui_inGame2_servers_list_button + + mm_mp_network_connection + + + + ui_inGame2_servers_list_button + + mm_mp_respawnoptions + + + + ui_inGame2_servers_list_button + + mm_mp_serverlist + + + + ui_inGame2_servers_list_button + + mm_mp_weatheroptions + + + + ui_inGame2_servers_list_button + + mm_mp_spectator_options + + + + ui_inGame2_servers_list_button + + mm_mp_demosave_options + + + + + ui_inGame2_checkbox_t + + mm_mp_publicserver + + + + ui_inGame2_checkbox_d + + mm_mp_publicserver + + + + + ui_inGame2_checkbox + + mm_mp_publicserver + + + + mm_mp_max_ping + + + + + + + ui_inGame2_checkbox + + mm_mp_spectator + + + + + + + ui_inGame2_checkbox + + mm_mp_allowvoting + + + + + + + + + + + + + + + + + + + mm_mp_damageblock + + + + + + + + ui_inGame2_checkbox + + mm_mp_damageblockindicator + + + + mm_mp_artret_time + + + + + + + + ui_inGame2_checkbox + + mm_mp_actret_time + + + + mm_mp_friendlyfire + + + + + + + mm_mp_fraglimit + + + + + + + mm_mp_timelimit + + + + + + + mm_mp_artefstay + + + + + + + mm_mp_artefnum + + + + + + + mm_mp_artefdelay + + + + + + + ui_inGame2_checkbox + + mm_mp_pda_hunt + + + ui_inGame2_checkbox + + mm_mp_autoteambalance + + + ui_inGame2_checkbox + + mm_mp_autoteamswap + + + ui_inGame2_checkbox + + mm_mp_friendlyindicators + + + ui_inGame2_checkbox + + mm_mp_friendlynames + + + ui_inGame2_checkbox + + mm_mp_noanomalies + + + + mm_mp_anomalytime + + + + + + + mm_mp_warmuptime + + + + + + + mm_mp_startweather + + + + + + + + + mm_mp_rateofchange + + + + + + + ui_inGame2_checkbox + mm_mp_spectator_teamonly + + + + ui_inGame2_checkbox + mm_mp_spectator_freefly + + + + ui_inGame2_checkbox + mm_mp_spectator_firsteye + + + + ui_inGame2_checkbox + mm_mp_spectator_lookat + + + + ui_inGame2_checkbox + mm_mp_spectator_freelook + + + + + + + ui_inGame2_checkbox + + mm_mp_demosave + + + diff --git a/gamedata/configs/ui/ui_mm_opt.xml b/gamedata/configs/ui/ui_mm_opt.xml new file mode 100644 index 0000000..8956fe7 --- /dev/null +++ b/gamedata/configs/ui/ui_mm_opt.xml @@ -0,0 +1,830 @@ + + + + + ui\video_window + + + + ui_inGame2_opt_background + + + + + + + + + ui_inGame2_opt_main_window + + ui_inGame2_opt_buttons_frame + + + + + ui_mm_apply + ui_inGame2_Mp_bigbuttone + + + + + + + ui_mm_cancel + ui_inGame2_Mp_bigbuttone + + + + + + + + + + + + + + + + + + + + ui_mm_renderer + + + + + + + + + + + + ui_mm_quality_presets + + + + + + + + + + + + ui_mm_resolution + + + + + + + + + + + + ui_mm_gamma + + + + + + + ui_mm_contrast + + + + + + + ui_mm_brightness + + + + + + + ui_mm_fullscreen + + + ui_inGame2_checkbox + + + + + ui_mm_vsync + + + ui_inGame2_checkbox + + + + + ui_rs_device_active + + + ui_inGame2_checkbox + + + + + ui_mm_screenshot_format + + + + + + + + + + + + ui_mm_advanced + ui_inGame2_button + + + + + + + + + + + + + ui_mm_vis_distance + + + + + + + ui_mm_geometry_lod + + + + + + + ui_mm_detail_density + + + + + + + ui_mm_grass_distance + + + + + + + ui_mm_texture_quality + + + + + + + ui_mm_anisotropic + + + + + + + ui_mm_r_scale_mode + + + + + + + + + + + + ui_mm_r_scale_preset + + + + + + + + + + + + ui_mm_vid_scale + + + + + + + ui_mm_cas_sharpening + + + + + + + ui_mm_supersample + + + + + + + + + + + + + + + ui_inGame2_servers_list_button + + + + ui_mm_r2_sun + + + ui_inGame2_checkbox + + + + + ui_mm_r1_detail_textures + + + ui_inGame2_checkbox + + + + + ui_mm_r2_detail_bump + + + ui_inGame2_checkbox + + + + + ui_mm_r2_steep_parallax + + + ui_inGame2_checkbox + + + + + ui_mm_r2_sun_quality + + + + + + + + + + + + ui_mm_r2_details_shadows + + + ui_inGame2_checkbox + + + + + ui_mm_lights_details + + + ui_inGame2_checkbox + + + + + ui_mm_r_actor_shadow + + + ui_inGame2_checkbox + + + + + ui_mm_r4_hud_shadows + + + ui_inGame2_checkbox + + + + + ui_mm_hashed_alpha_test + + + ui_inGame2_checkbox + + + + + ui_mm_r2_cloud_shadows + + + ui_inGame2_checkbox + + + + + ui_mm_r3_dynamic_wet_surfaces + + + ui_inGame2_checkbox + + + + + ui_mm_r3_volumetric_smoke + + + ui_inGame2_checkbox + + + + + ui_mm_puddles + + + ui_inGame2_checkbox + + + + + ui_mm_light_distance + + + + + + + ui_mm_r__smap_size + + + + + + + + + + + + ui_mm_npc_torch + + + ui_inGame2_checkbox + + + + + ui_mm_sun_quality + + + + + + + ui_mm_mt_tex_load + + + ui_inGame2_checkbox + + + + + ui_mm_sun_shafts + + + + + + + + + + + + ui_mm_ssao_text + + + + + + + + + + + + + ui_mm_vignette + + + ui_inGame2_checkbox + + + + + ui_mm_aberration + + + ui_inGame2_checkbox + + + + + ui_mm_saturation + + + ui_inGame2_checkbox + + + + + ui_mm_sslr_water + + + ui_inGame2_checkbox + + + + + ui_mm_soft_water + + + ui_inGame2_checkbox + + + + + ui_mm_soft_particles + + + ui_inGame2_checkbox + + + + + ui_mm_dof + + + ui_inGame2_checkbox + + + + + ui_mm_dof_reload + + + ui_inGame2_checkbox + + + + + ui_mm_dof_talk + + + ui_inGame2_checkbox + + + + + ui_mm_volumetric_light + + + ui_inGame2_checkbox + + + + + ui_mm_r4_enable_tessellation + + + ui_inGame2_checkbox + + + + + ui_mm_simply + ui_inGame2_button + + + + + + + + + ui_mm_master_volume + + + + + + + ui_mm_music_volume + + + + + + + ui_mm_snd_device + + + + + + + + + + + + ui_mm_eax + + + ui_inGame2_checkbox + + + + + ui_mm_dynamic_music + + + ui_inGame2_checkbox + + + + + + ui_mm_difficulty + + + + + + + + + + + + + ui_mm_lang + + + + + + + + + + + + + ui_mm_bobbing_factor + + + + + + + ui_mm_hit_slowmo + + + ui_inGame2_checkbox + + + + + ui_mm_wpn_aim_toggle + + + ui_inGame2_checkbox + + + + + ui_mm_show_crosshair + + + ui_inGame2_checkbox + + + + + ui_mm_dyn_crosshair + + + ui_inGame2_checkbox + + + + + ui_mm_show_weapon + + + ui_inGame2_checkbox + + + + + ui_mm_crosshair_distance + + + ui_inGame2_checkbox + + + + + ui_mm_tips + + + ui_inGame2_checkbox + + + + + ui_mm_crouch_toggle + + + ui_inGame2_checkbox + + + + + ui_mm_important_save + + + ui_inGame2_checkbox + + + + + ui_st_disable_hud + + + ui_inGame2_checkbox + + + + + ui_rs_fps_show + + + ui_inGame2_checkbox + + + + + + ui_mm_mouse_sense + + + + + + + ui_mm_mouse_sense_ui + + + + + + + ui_mm_invert_mouse + + + ui_inGame2_checkbox + + + + + ui_inGame2_servers_list_button + + ui_mm_keyboard_setup + + + + + + ui_inGame2_servers_list_button + + ui_mm_action + + + + ui_inGame2_servers_list_button + + ui_mm_key + + + + ui_inGame2_servers_list_button + + + ui_inGame2_empty_frameline_15 + + ui_mm_alternative + + + + + ui_inGame2_servers_list_frame + + + + + + + + + + + + + + + ui_mm_default + ui_inGame2_button + + + + + + + + ui_patch_back + + + + mm_mp_progress + + + + + ui_patch_progress + + + + + mm_mp_cancel + + + + ui_button_ordinary + + diff --git a/gamedata/configs/ui/ui_mm_opt_16.xml b/gamedata/configs/ui/ui_mm_opt_16.xml new file mode 100644 index 0000000..2a047a5 --- /dev/null +++ b/gamedata/configs/ui/ui_mm_opt_16.xml @@ -0,0 +1,833 @@ + + + + ui_inGame2_opt_background + + + ui\video_window + + + ui_inGame2_opt_left_widepanel + + + ui_inGame2_opt_right_widepanel + + + + + + + + ui_inGame2_opt_main_window + + ui_inGame2_opt_buttons_frame + + + + + ui_mm_apply + ui_inGame2_Mp_bigbuttone + + + + + + + ui_mm_cancel + ui_inGame2_Mp_bigbuttone + + + + + + + + + + + + + + + + + + + + ui_mm_renderer + + + + + + + + + + + + ui_mm_quality_presets + + + + + + + + + + + + ui_mm_resolution + + + + + + + + + + + + ui_mm_gamma + + + + + + + ui_mm_contrast + + + + + + + ui_mm_brightness + + + + + + + ui_mm_fullscreen + + + ui_inGame2_checkbox + + + + + ui_mm_vsync + + + ui_inGame2_checkbox + + + + + ui_rs_device_active + + + ui_inGame2_checkbox + + + + + ui_mm_screenshot_format + + + + + + + + + + + + ui_mm_advanced + ui_inGame2_button + + + + + + + + + + + + + ui_mm_vis_distance + + + + + + + ui_mm_geometry_lod + + + + + + + ui_mm_detail_density + + + + + + + ui_mm_grass_distance + + + + + + + ui_mm_texture_quality + + + + + + + ui_mm_anisotropic + + + + + + + ui_mm_r_scale_mode + + + + + + + + + + + + ui_mm_r_scale_preset + + + + + + + + + + + + ui_mm_vid_scale + + + + + + + ui_mm_cas_sharpening + + + + + + + ui_mm_supersample + + + + + + + + + + + + + + + ui_inGame2_servers_list_button + + + + ui_mm_r2_sun + + + ui_inGame2_checkbox + + + + + ui_mm_r1_detail_textures + + + ui_inGame2_checkbox + + + + + ui_mm_r2_detail_bump + + + ui_inGame2_checkbox + + + + + ui_mm_r2_steep_parallax + + + ui_inGame2_checkbox + + + + + ui_mm_r2_sun_quality + + + + + + + + + + + + ui_mm_r2_details_shadows + + + ui_inGame2_checkbox + + + + + ui_mm_lights_details + + + ui_inGame2_checkbox + + + + + ui_mm_r_actor_shadow + + + ui_inGame2_checkbox + + + + + ui_mm_r4_hud_shadows + + + ui_inGame2_checkbox + + + + + ui_mm_hashed_alpha_test + + + ui_inGame2_checkbox + + + + + ui_mm_r2_cloud_shadows + + + ui_inGame2_checkbox + + + + + ui_mm_r3_dynamic_wet_surfaces + + + ui_inGame2_checkbox + + + + + ui_mm_r3_volumetric_smoke + + + ui_inGame2_checkbox + + + + + ui_mm_puddles + + + ui_inGame2_checkbox + + + + + ui_mm_light_distance + + + + + + + ui_mm_r__smap_size + + + + + + + + + + + + ui_mm_npc_torch + + + ui_inGame2_checkbox + + + + + ui_mm_sun_quality + + + + + + + ui_mm_mt_tex_load + + + ui_inGame2_checkbox + + + + + ui_mm_sun_shafts + + + + + + + + + + + + ui_mm_ssao_text + + + + + + + + + + + + + ui_mm_vignette + + + ui_inGame2_checkbox + + + + + ui_mm_aberration + + + ui_inGame2_checkbox + + + + + ui_mm_saturation + + + ui_inGame2_checkbox + + + + + ui_mm_sslr_water + + + ui_inGame2_checkbox + + + + + ui_mm_soft_water + + + ui_inGame2_checkbox + + + + + ui_mm_soft_particles + + + ui_inGame2_checkbox + + + + + ui_mm_dof + + + ui_inGame2_checkbox + + + + + ui_mm_dof_reload + + + ui_inGame2_checkbox + + + + + ui_mm_dof_talk + + + ui_inGame2_checkbox + + + + + ui_mm_volumetric_light + + + ui_inGame2_checkbox + + + + + ui_mm_r4_enable_tessellation + + + ui_inGame2_checkbox + + + + + ui_mm_simply + ui_inGame2_button + + + + + + + + + ui_mm_master_volume + + + + + + + ui_mm_music_volume + + + + + + + ui_mm_snd_device + + + + + + + + + + + + ui_mm_eax + + + ui_inGame2_checkbox + + + + + ui_mm_dynamic_music + + + ui_inGame2_checkbox + + + + + + ui_mm_difficulty + + + + + + + + + + + + + ui_mm_lang + + + + + + + + + + + + + ui_mm_bobbing_factor + + + + + + + ui_mm_hit_slowmo + + + ui_inGame2_checkbox + + + + + ui_mm_wpn_aim_toggle + + + ui_inGame2_checkbox + + + + + ui_mm_show_crosshair + + + ui_inGame2_checkbox + + + + + ui_mm_dyn_crosshair + + + ui_inGame2_checkbox + + + + + ui_mm_show_weapon + + + ui_inGame2_checkbox + + + + + ui_mm_crosshair_distance + + + ui_inGame2_checkbox + + + + + ui_mm_tips + + + ui_inGame2_checkbox + + + + + ui_mm_crouch_toggle + + + ui_inGame2_checkbox + + + + + ui_mm_important_save + + + ui_inGame2_checkbox + + + + + ui_st_disable_hud + + + ui_inGame2_checkbox + + + + + ui_rs_fps_show + + + ui_inGame2_checkbox + + + + + + ui_mm_mouse_sense + + + + + + + ui_mm_mouse_sense_ui + + + + + + + ui_mm_invert_mouse + + + ui_inGame2_checkbox + + + + + ui_inGame2_servers_list_button + + ui_mm_keyboard_setup + + + + + + ui_inGame2_servers_list_button + + ui_mm_action + + + + ui_inGame2_servers_list_button + + ui_mm_key + + + + ui_inGame2_servers_list_button + + + ui_inGame2_empty_frameline_15 + + ui_mm_alternative + + + + + ui_inGame2_servers_list_frame + + + + + + + + + + + + + + + ui_mm_default + ui_inGame2_button + + + + + + + + ui_patch_back + + + + mm_mp_progress + + + + + ui_patch_progress + + + + + mm_mp_cancel + + + + ui_button_ordinary + + diff --git a/gamedata/configs/ui/ui_mp_admin_menu.xml b/gamedata/configs/ui/ui_mp_admin_menu.xml new file mode 100644 index 0000000..bd3dbbd --- /dev/null +++ b/gamedata/configs/ui/ui_mp_admin_menu.xml @@ -0,0 +1,305 @@ + + + + ui_inGame2_screen_4 + + + + + + + + ui_inGame2_inventory_button + mm_mp_cancel + + + + + + + + ui_inGame2_inventory_button + mm_mp_refresh + + + ui_inGame2_inventory_button + ui_mp_am_screen_all + + + ui_inGame2_inventory_button + ui_mp_am_config_all + + + ui_mp_am_ping_limit + + + + + + ui_inGame2_inventory_button + ui_mp_am_set_ping_limit + + + ui_inGame2_inventory_button + ui_mp_am_screen_selected + + + ui_inGame2_inventory_button + ui_mp_am_config_selected + + + ui_inGame2_inventory_button + ui_mp_am_kick_selected + + + + + + + + + + ui_inGame2_inventory_button + ui_mp_am_ban_selected + + + + + ui_inGame2_inventory_button + mp_back + + + + ui_inGame2_inventory_button + ui_mp_am_restart + + + ui_inGame2_inventory_button + ui_mp_am_fast_restart + + + ui_inGame2_inventory_button + ui_mp_am_change_weather + + + ui_inGame2_inventory_button + ui_mp_am_change_game_type + + + ui_inGame2_inventory_button + ui_mp_am_change_game_limits + + + ui_inGame2_inventory_button + ui_mp_am_stop_cur_voting + + + + + ui_inGame2_inventory_button + Clear + + + ui_inGame2_inventory_button + Cloudy + + + ui_inGame2_inventory_button + Rain + + + ui_inGame2_inventory_button + Night + + + + + + ui_inGame2_inventory_button + ui_mp_am_set_change_rate + + + + + ui_inGame2_inventory_button + st_deathmatch + + + ui_inGame2_inventory_button + st_team_deathmatch + + + ui_inGame2_inventory_button + st_capture_the_artefact + + + ui_inGame2_inventory_button + st_artefacthunt + + + ui_inGame2_inventory_button + st_freemp + + + + + + ui_inGame2_edit_box_1 + + + ui_inGame2_inventory_button + ui_mp_am_set_time_limit + + + + ui_inGame2_edit_box_1 + + + ui_inGame2_inventory_button + ui_mp_am_set_frag_limit + + + + ui_inGame2_edit_box_1 + + + ui_inGame2_inventory_button + ui_mp_am_set_art_limit + + + + ui_inGame2_edit_box_1 + + + ui_inGame2_inventory_button + ui_mp_am_set_warm_up_time + + + ui_inGame2_checkbox + + mm_mp_spectator_firsteye + + + ui_inGame2_checkbox + + mm_mp_spectator_freefly + + + ui_inGame2_checkbox + + mm_mp_spectator_freelook + + + ui_inGame2_checkbox + + mm_mp_spectator_lookat + + + ui_inGame2_checkbox + + mm_mp_spectator_teamonly + + + + ui_inGame2_edit_box_1 + + + ui_inGame2_inventory_button + ui_mp_am_set_invincible_time + + + + ui_inGame2_edit_box_1 + + + ui_inGame2_inventory_button + ui_mp_am_set_damage_block_time + + + + ui_inGame2_edit_box_1 + + + ui_inGame2_inventory_button + ui_mp_am_set_reinforcement_time + + + ui_inGame2_checkbox + + mm_mp_allowvoting + + + ui_inGame2_checkbox + + mm_mp_damageblockindicator + + + ui_inGame2_checkbox + + mm_mp_friendlynames + + + ui_inGame2_checkbox + + mm_mp_friendlyindicators + + + ui_inGame2_checkbox + + mp_si_afbearer_cant_sprint + + + + + + + + + ui\ui_noise + + + ui_inGame2_Mp_screen_map_window + + + + + + mp_si_maprotation + ui_inGame2_inventory_button + + + diff --git a/gamedata/fonts/editors/robotomono.ttf b/gamedata/fonts/editors/robotomono.ttf new file mode 100644 index 0000000..fc0ff94 --- /dev/null +++ b/gamedata/fonts/editors/robotomono.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d9a1fa4dfe5a5deea780f6513996141425ef782d7cc5665d4d459146fd3a71c +size 87236 diff --git a/gamedata/fonts/eng/arial.ttf b/gamedata/fonts/eng/arial.ttf new file mode 100644 index 0000000..67d4d92 --- /dev/null +++ b/gamedata/fonts/eng/arial.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9b76220a5be42ead4733611e417cd65c5fd8aeaa33eb56576ac378a37d130a1 +size 1036584 diff --git a/gamedata/fonts/eng/arialbd.ttf b/gamedata/fonts/eng/arialbd.ttf new file mode 100644 index 0000000..07fb567 --- /dev/null +++ b/gamedata/fonts/eng/arialbd.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:766f06ac8761f82f25d032a220e89438f6064591af9915061f20b949efdedf69 +size 980756 diff --git a/gamedata/fonts/eng/arialbi.ttf b/gamedata/fonts/eng/arialbi.ttf new file mode 100644 index 0000000..b6287a7 --- /dev/null +++ b/gamedata/fonts/eng/arialbi.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e432c1b3568bd207e30e3d52d41e6431ea53a679eb52dd79b1a36aa6a4f3b994 +size 721144 diff --git a/gamedata/fonts/eng/ariali.ttf b/gamedata/fonts/eng/ariali.ttf new file mode 100644 index 0000000..e8b04f4 --- /dev/null +++ b/gamedata/fonts/eng/ariali.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79a5742b865cf06891d4ae43e42cac0e5169c7b7b06b5b3c24ef8e0966d27b62 +size 717428 diff --git a/gamedata/fonts/eng/arialn.ttf b/gamedata/fonts/eng/arialn.ttf new file mode 100644 index 0000000..c5141dc --- /dev/null +++ b/gamedata/fonts/eng/arialn.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62e15117f7d314900949fe60b62c2e908c3921d0425cf26a9cf606d46ab96b16 +size 173936 diff --git a/gamedata/fonts/eng/arialnb.ttf b/gamedata/fonts/eng/arialnb.ttf new file mode 100644 index 0000000..8eadd8f --- /dev/null +++ b/gamedata/fonts/eng/arialnb.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc7f1542fca0f52bdf53e24a49dbb6e9a733c6beeb5ccb27dd0215713d126233 +size 178864 diff --git a/gamedata/fonts/eng/arialnbi.ttf b/gamedata/fonts/eng/arialnbi.ttf new file mode 100644 index 0000000..7ed8221 --- /dev/null +++ b/gamedata/fonts/eng/arialnbi.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2aa71a058516435f4f1a389f403f14159ee629fa74eb333f0f7e3aff01b7c40 +size 178316 diff --git a/gamedata/fonts/eng/arialni.ttf b/gamedata/fonts/eng/arialni.ttf new file mode 100644 index 0000000..2b85ddf --- /dev/null +++ b/gamedata/fonts/eng/arialni.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aaeb7fef1dcc8a0a7c355da23c58bde97c6518a6e0792558edfa0c788ec9ae67 +size 179368 diff --git a/gamedata/fonts/eng/ariblk.ttf b/gamedata/fonts/eng/ariblk.ttf new file mode 100644 index 0000000..cf109b8 --- /dev/null +++ b/gamedata/fonts/eng/ariblk.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10df702864b1f89cb29ba0d6b97c04228338d16807e13e8d8c74b91aba5e5f23 +size 167592 diff --git a/gamedata/fonts/eng/consola.ttf b/gamedata/fonts/eng/consola.ttf new file mode 100644 index 0000000..a858e88 --- /dev/null +++ b/gamedata/fonts/eng/consola.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6e6ce8119fdd47ec6a5449a08e2d2ad7f41ea03143aae193068ed9fa58eaebc +size 459180 diff --git a/gamedata/fonts/eng/consolab.ttf b/gamedata/fonts/eng/consolab.ttf new file mode 100644 index 0000000..f245eb5 --- /dev/null +++ b/gamedata/fonts/eng/consolab.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fa803e5abc7fff0c78c62cd22d07c705f3273c53312380c36ff484246ed3c1b +size 397896 diff --git a/gamedata/fonts/eng/consolai.ttf b/gamedata/fonts/eng/consolai.ttf new file mode 100644 index 0000000..13f677d --- /dev/null +++ b/gamedata/fonts/eng/consolai.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81e2a95d3c49468029c07e58f71a5f0ca4cfcb617eaf6bd77576fb03aa430bb2 +size 467584 diff --git a/gamedata/fonts/eng/consolaz.ttf b/gamedata/fonts/eng/consolaz.ttf new file mode 100644 index 0000000..4ff3f92 --- /dev/null +++ b/gamedata/fonts/eng/consolaz.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1df27cbcc8a9fb7f843bc24e257b78e8ff93de70e8c1ad2caab8379e7d6a1eab +size 407956 diff --git a/gamedata/fonts/eng/graffiti1ctt.ttf b/gamedata/fonts/eng/graffiti1ctt.ttf new file mode 100644 index 0000000..dd433b5 --- /dev/null +++ b/gamedata/fonts/eng/graffiti1ctt.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58d82fb5f5de08f1bc5e049067e76a1297f90bfc5b7ba4f14f5365d38fb27f94 +size 65104 diff --git a/gamedata/fonts/eng/letterica.ttf b/gamedata/fonts/eng/letterica.ttf new file mode 100644 index 0000000..a193202 --- /dev/null +++ b/gamedata/fonts/eng/letterica.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:addce3a6673790849430407b618754fc055487e7c9ef40d00586af3328221c5c +size 36248 diff --git a/gamedata/fonts/eng/roboto.ttf b/gamedata/fonts/eng/roboto.ttf new file mode 100644 index 0000000..e777296 --- /dev/null +++ b/gamedata/fonts/eng/roboto.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e147ab64b9fdf6d89d01f6b8c3ca0b3cddc59d608a8e2218f9a2504b5c98e14 +size 168260 diff --git a/gamedata/fonts/eng/robotocondensed.ttf b/gamedata/fonts/eng/robotocondensed.ttf new file mode 100644 index 0000000..4f4b465 --- /dev/null +++ b/gamedata/fonts/eng/robotocondensed.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2af71369b6e1ab597407c5d720ca6e3fcf33554762c14953aa21dbb8667c55f0 +size 144852 diff --git a/gamedata/fonts/eng/robotomono-bold.ttf b/gamedata/fonts/eng/robotomono-bold.ttf new file mode 100644 index 0000000..a8458d1 --- /dev/null +++ b/gamedata/fonts/eng/robotomono-bold.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f4e0cd7747df32a34748a66c1274d76712cab429c75e75f5f0167319b97fccb +size 87392 diff --git a/gamedata/fonts/eng/robotomono-light.ttf b/gamedata/fonts/eng/robotomono-light.ttf new file mode 100644 index 0000000..3d18087 --- /dev/null +++ b/gamedata/fonts/eng/robotomono-light.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79b7fbe124cd1d4e2b4b115805b5d827907dcb2ccf7671be64a9253506f4edb9 +size 87980 diff --git a/gamedata/fonts/eng/robotomono-medium.ttf b/gamedata/fonts/eng/robotomono-medium.ttf new file mode 100644 index 0000000..3e1d094 --- /dev/null +++ b/gamedata/fonts/eng/robotomono-medium.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1c247bde0eed1e58e3b9eee89b2188dc5dfa44b8c2716044556662dd70cb7b1 +size 87172 diff --git a/gamedata/fonts/eng/robotomono.ttf b/gamedata/fonts/eng/robotomono.ttf new file mode 100644 index 0000000..fc0ff94 --- /dev/null +++ b/gamedata/fonts/eng/robotomono.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d9a1fa4dfe5a5deea780f6513996141425ef782d7cc5665d4d459146fd3a71c +size 87236 diff --git a/gamedata/fonts/rus/arial.ttf b/gamedata/fonts/rus/arial.ttf new file mode 100644 index 0000000..67d4d92 --- /dev/null +++ b/gamedata/fonts/rus/arial.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9b76220a5be42ead4733611e417cd65c5fd8aeaa33eb56576ac378a37d130a1 +size 1036584 diff --git a/gamedata/fonts/rus/arialbd.ttf b/gamedata/fonts/rus/arialbd.ttf new file mode 100644 index 0000000..07fb567 --- /dev/null +++ b/gamedata/fonts/rus/arialbd.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:766f06ac8761f82f25d032a220e89438f6064591af9915061f20b949efdedf69 +size 980756 diff --git a/gamedata/fonts/rus/arialbi.ttf b/gamedata/fonts/rus/arialbi.ttf new file mode 100644 index 0000000..b6287a7 --- /dev/null +++ b/gamedata/fonts/rus/arialbi.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e432c1b3568bd207e30e3d52d41e6431ea53a679eb52dd79b1a36aa6a4f3b994 +size 721144 diff --git a/gamedata/fonts/rus/ariali.ttf b/gamedata/fonts/rus/ariali.ttf new file mode 100644 index 0000000..e8b04f4 --- /dev/null +++ b/gamedata/fonts/rus/ariali.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79a5742b865cf06891d4ae43e42cac0e5169c7b7b06b5b3c24ef8e0966d27b62 +size 717428 diff --git a/gamedata/fonts/rus/arialn.ttf b/gamedata/fonts/rus/arialn.ttf new file mode 100644 index 0000000..c5141dc --- /dev/null +++ b/gamedata/fonts/rus/arialn.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62e15117f7d314900949fe60b62c2e908c3921d0425cf26a9cf606d46ab96b16 +size 173936 diff --git a/gamedata/fonts/rus/arialnb.ttf b/gamedata/fonts/rus/arialnb.ttf new file mode 100644 index 0000000..8eadd8f --- /dev/null +++ b/gamedata/fonts/rus/arialnb.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc7f1542fca0f52bdf53e24a49dbb6e9a733c6beeb5ccb27dd0215713d126233 +size 178864 diff --git a/gamedata/fonts/rus/arialnbi.ttf b/gamedata/fonts/rus/arialnbi.ttf new file mode 100644 index 0000000..7ed8221 --- /dev/null +++ b/gamedata/fonts/rus/arialnbi.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2aa71a058516435f4f1a389f403f14159ee629fa74eb333f0f7e3aff01b7c40 +size 178316 diff --git a/gamedata/fonts/rus/arialni.ttf b/gamedata/fonts/rus/arialni.ttf new file mode 100644 index 0000000..2b85ddf --- /dev/null +++ b/gamedata/fonts/rus/arialni.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aaeb7fef1dcc8a0a7c355da23c58bde97c6518a6e0792558edfa0c788ec9ae67 +size 179368 diff --git a/gamedata/fonts/rus/ariblk.ttf b/gamedata/fonts/rus/ariblk.ttf new file mode 100644 index 0000000..cf109b8 --- /dev/null +++ b/gamedata/fonts/rus/ariblk.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10df702864b1f89cb29ba0d6b97c04228338d16807e13e8d8c74b91aba5e5f23 +size 167592 diff --git a/gamedata/fonts/rus/consola.ttf b/gamedata/fonts/rus/consola.ttf new file mode 100644 index 0000000..a858e88 --- /dev/null +++ b/gamedata/fonts/rus/consola.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6e6ce8119fdd47ec6a5449a08e2d2ad7f41ea03143aae193068ed9fa58eaebc +size 459180 diff --git a/gamedata/fonts/rus/consolab.ttf b/gamedata/fonts/rus/consolab.ttf new file mode 100644 index 0000000..f245eb5 --- /dev/null +++ b/gamedata/fonts/rus/consolab.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fa803e5abc7fff0c78c62cd22d07c705f3273c53312380c36ff484246ed3c1b +size 397896 diff --git a/gamedata/fonts/rus/consolai.ttf b/gamedata/fonts/rus/consolai.ttf new file mode 100644 index 0000000..13f677d --- /dev/null +++ b/gamedata/fonts/rus/consolai.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81e2a95d3c49468029c07e58f71a5f0ca4cfcb617eaf6bd77576fb03aa430bb2 +size 467584 diff --git a/gamedata/fonts/rus/consolaz.ttf b/gamedata/fonts/rus/consolaz.ttf new file mode 100644 index 0000000..4ff3f92 --- /dev/null +++ b/gamedata/fonts/rus/consolaz.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1df27cbcc8a9fb7f843bc24e257b78e8ff93de70e8c1ad2caab8379e7d6a1eab +size 407956 diff --git a/gamedata/fonts/rus/graffiti1ctt.ttf b/gamedata/fonts/rus/graffiti1ctt.ttf new file mode 100644 index 0000000..dd433b5 --- /dev/null +++ b/gamedata/fonts/rus/graffiti1ctt.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58d82fb5f5de08f1bc5e049067e76a1297f90bfc5b7ba4f14f5365d38fb27f94 +size 65104 diff --git a/gamedata/fonts/rus/letterica.ttf b/gamedata/fonts/rus/letterica.ttf new file mode 100644 index 0000000..a193202 --- /dev/null +++ b/gamedata/fonts/rus/letterica.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:addce3a6673790849430407b618754fc055487e7c9ef40d00586af3328221c5c +size 36248 diff --git a/gamedata/fonts/rus/roboto.ttf b/gamedata/fonts/rus/roboto.ttf new file mode 100644 index 0000000..e777296 --- /dev/null +++ b/gamedata/fonts/rus/roboto.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e147ab64b9fdf6d89d01f6b8c3ca0b3cddc59d608a8e2218f9a2504b5c98e14 +size 168260 diff --git a/gamedata/fonts/rus/robotocondensed.ttf b/gamedata/fonts/rus/robotocondensed.ttf new file mode 100644 index 0000000..4f4b465 --- /dev/null +++ b/gamedata/fonts/rus/robotocondensed.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2af71369b6e1ab597407c5d720ca6e3fcf33554762c14953aa21dbb8667c55f0 +size 144852 diff --git a/gamedata/fonts/rus/robotomono-bold.ttf b/gamedata/fonts/rus/robotomono-bold.ttf new file mode 100644 index 0000000..a8458d1 --- /dev/null +++ b/gamedata/fonts/rus/robotomono-bold.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f4e0cd7747df32a34748a66c1274d76712cab429c75e75f5f0167319b97fccb +size 87392 diff --git a/gamedata/fonts/rus/robotomono-light.ttf b/gamedata/fonts/rus/robotomono-light.ttf new file mode 100644 index 0000000..3d18087 --- /dev/null +++ b/gamedata/fonts/rus/robotomono-light.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79b7fbe124cd1d4e2b4b115805b5d827907dcb2ccf7671be64a9253506f4edb9 +size 87980 diff --git a/gamedata/fonts/rus/robotomono-medium.ttf b/gamedata/fonts/rus/robotomono-medium.ttf new file mode 100644 index 0000000..3e1d094 --- /dev/null +++ b/gamedata/fonts/rus/robotomono-medium.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1c247bde0eed1e58e3b9eee89b2188dc5dfa44b8c2716044556662dd70cb7b1 +size 87172 diff --git a/gamedata/fonts/rus/robotomono.ttf b/gamedata/fonts/rus/robotomono.ttf new file mode 100644 index 0000000..fc0ff94 --- /dev/null +++ b/gamedata/fonts/rus/robotomono.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d9a1fa4dfe5a5deea780f6513996141425ef782d7cc5665d4d459146fd3a71c +size 87236 diff --git a/gamedata/scripts/.vscode/launch.json b/gamedata/scripts/.vscode/launch.json new file mode 100644 index 0000000..89967bd --- /dev/null +++ b/gamedata/scripts/.vscode/launch.json @@ -0,0 +1,22 @@ + +{ + // ИÑпользуйте IntelliSense, чтобы узнать о возможных атрибутах. + // Ðаведите указатель мыши, чтобы проÑмотреть опиÑÐ°Ð½Ð¸Ñ ÑущеÑтвующих атрибутов. + // Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации поÑетите: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "lua", + "request": "launch", + "name": "LuaPanda", + "description": "IX-Ray Lua Debug", + "cwd": "${workspaceFolder}", + "luaFileExtension": "script", + "connectionPort": 8818, + "stopOnEntry": true, + "useCHook": true, + "autoPathMode": true, + "updateTips": true + } + ] +} \ No newline at end of file diff --git a/gamedata/scripts/.vscode/settings.json b/gamedata/scripts/.vscode/settings.json new file mode 100644 index 0000000..5254150 --- /dev/null +++ b/gamedata/scripts/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "Lua.diagnostics.disable": [ + "undefined-global" + ] +} \ No newline at end of file diff --git a/gamedata/scripts/alife_storage_manager.script b/gamedata/scripts/alife_storage_manager.script new file mode 100644 index 0000000..205c960 --- /dev/null +++ b/gamedata/scripts/alife_storage_manager.script @@ -0,0 +1,218 @@ +--[[ + This script handles the serialization of data using the marshal library and the saving of this data to disk depending + on save game name. What this means is that you can save entire tables to disk instead of saving to object packet. + This script was created to alleviate issues with using packets to save dynamic data (pstor) which lead to save corruption. + Also it removes some restrictions on what you can save. + + *only store valid lua types such as numbers, strings, boolean, functions or tables that contain these valid types. Userdata needs to have a special + __persist function defined in it's metatable. See how it is done for CTime in _G.script + + *Supposedly you can save userdata if you write a proper __persist method for the metatable but I have failed to achieve proper results with serializing CTime. + + *You must register for 'save_state' and 'load_state' and add your own table to m_data for it to be encoded then stored in *.scoc + *Although marshal is pretty fast, keep in mind that encoding/decoding a ton of data, saves will start to noticeablely take longer to save/load. + *For testing/debugging you can uncomment the print_table calls in save_state and load_state. It will save the before and after tables to print_table.txt in your main directory. + + + by: Alundaio +--]] +local m_data = {} + +-- store stuff that you want to persist even offline +m_data.se_object = {} + +-- store stuff only for online objects. When object goes offline this table is purged. +m_data.game_object = {} + +-- PDA known contacts +-- m_data.actor_contacts = {} + +saved_game_extension_ex = save_extension() .. "_data" + +local function on_pstor_load_all(obj,packet) + local id = obj:id() + local state = get_game_object_state(obj,false) + if (state and db.storage[id]) then + if (state.pstor_all) then + db.storage[id].pstor = state.pstor_all + state.pstor_all = nil + end + + if (state.pstor_ctime) then + db.storage[id].pstor_ctime = state.pstor_ctime + state.pstor_ctime = nil + end + end +end + +function on_game_start() + if not isMarshal then + return + end + --RegisterScriptCallback("on_pstor_load_all",on_pstor_load_all) +end + +-- called from engine! +function CALifeStorageManager_before_save(fname) + if not isMarshal then + return + end + + --printf("CALifeStorageManager_before_save BEFORE callback") + + m_data.GAME_VERSION = GAME_VERSION + + SendScriptCallback("save_state",m_data) + + --printf("CALifeStorageManager_before_save AFTER callback") + + -- save pstor + for id,t in pairs(db.storage) do + if (m_data.game_object[id]) then + if (t.pstor and not is_empty(t.pstor)) then + m_data.game_object[id].pstor_all = t.pstor + end + + -- serialization with game.CTime.__persist + if (t.pstor_ctime and not is_empty(t.pstor_ctime)) then + m_data.game_object[id].pstor_ctime = t.pstor_ctime + end + end + end + + --ProcessEventQueueState(m_data,true) + + -- clean out game_object table of empty sub tables + for id,tbl in pairs(m_data.game_object) do + for k,v in pairs(tbl) do + if (type(v) == "table" and is_empty(v)) then + m_data.game_object[id][k] = nil + end + end + end + + local data = marshal.encode(m_data) + if not (data) then + return + end + + local path = getFS():update_path('$game_saves$', '') + + lfs.mkdir(path) -- incase savegame folder doesn't exist yet + path = path .. fname:sub(0,-6):lower() .. saved_game_extension_ex + + local savegame = io.open(path,"wb") + if not (io.type(savegame) == "file") then + printf("Error: Unable to write to %s",path) + return + end + + --printf("axr_main: saving custom data %s",path) + savegame:write(data) + savegame:close() + + --printf("CALifeStorageManager_before_save FINISHED") +end + +-- called from engine! +function CALifeStorageManager_after_save(fname) + if ffx_path_utils then + fname = ffx_path_utils.get_file_name(fname, false) + end + + local _path = getFS():update_path('$game_saves$', '') + + SendScriptCallback("save_file_created", _path, fname) +end + +-- called from engine! +function CALifeStorageManager_new_game(fname) + if ffx_path_utils then + fname = ffx_path_utils.get_file_name(fname, false) + end + + local _path = getFS():update_path('$game_saves$', '') + + SendScriptCallback("new_game_created", _path, fname) +end + +-- called from engine! +function CALifeStorageManager_save(fname) + --printf("CALifeStorageManager_save START FINISHED") +end + +-- called from engine +function CALifeStorageManager_load(fname) + if not isMarshal then + return + end + + local path = fname:sub(0,-6) .. saved_game_extension_ex + + --alun_utils.debug_write(strformat("CALifeStorageManager_load %s",path)) + + local savegame = io.open(path,"rb") + if not (io.type(savegame) == "file") then + return + end + + local data = savegame:read("*all") + savegame:close() + + if not (data and data ~= "") then + printf("Error: Failed to read %s",path) + return + end + + m_data = marshal.decode(data) + + --ProcessEventQueueState(m_data,false) + + -- For debugging save state + --alun_utils.print_table(m_data,"m_data_on_load ("..path..")") + + SendScriptCallback("load_state",m_data) + + if ffx_path_utils then + fname = ffx_path_utils.get_file_name(fname, false) + end + local _path = getFS():update_path('$game_saves$', '') + SendScriptCallback("save_file_loaded", _path, fname) + + --alun_utils.debug_write(strformat("CALifeStorageManager_load END")) +end + +function get_state() + return m_data +end + +function decode(t) + return marshal.decode(t) +end + +-- storage based on ID but verified by object name +function get_game_object_state(obj,create_if_dont_exist) + local id = obj:id() + local name = obj:name() + if not (m_data.game_object[id]) then + if not (create_if_dont_exist) then + return + end + m_data.game_object[id] = {} + m_data.game_object[id].name = name + end + return m_data.game_object[id] +end + +function get_se_obj_state(se_obj,create_if_dont_exist) + local id = se_obj.id + local name = se_obj:name() + if not (m_data.se_object[id]) then + if not (create_if_dont_exist) then + return + end + m_data.se_object[id] = {} + m_data.se_object[id].name = name + end + return m_data.se_object[id] +end diff --git a/gamedata/scripts/bind_crow.script b/gamedata/scripts/bind_crow.script new file mode 100644 index 0000000..350aa5e --- /dev/null +++ b/gamedata/scripts/bind_crow.script @@ -0,0 +1,96 @@ +-------------------------------------------------------------------------------- +-- Crow binding ---------------------------------------------------------------- +-- Made by Peacemaker ---------------------------------------------------------- +-- 25.12.07 -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +crow_storage = {} +crow_counter = 0 +-- Standart function for object binding +function bind(obj) +-- local new_binder = crow_binder(obj) + obj:bind_object(crow_binder(obj)) +end +-------------------------------------------------------------------------------- +-- Class "crow_binder" +-------------------------------------------------------------------------------- +class "crow_binder" (object_binder) +-- Class constructor +function crow_binder:__init(obj) super(obj) + self.body_timer = 0 +end +-- Class update +function crow_binder:update(delta) +-- standart update + object_binder.update(self, delta) + if not(self.object:alive()) and (self.body_timer<=time_global()-120000) and (self.body_timer~=0) then +-- if crow is killed and body lays down for two minutes - release it + printf("releasing object ["..self.object:name().."]") + alife():release(alife():object(self.object:id()), true) + end +end +-- Reload object +function crow_binder:reload(section) + object_binder.reload(self, section) +end +-- Reinitialize object +function crow_binder:reinit() + self.body_timer = 0 + object_binder.reinit(self) + db.storage[self.object:id()] = {} + self.st = db.storage[self.object:id()] +end +-- Net spawn +function crow_binder:net_spawn(sobject) + if not(object_binder.net_spawn(self, sobject)) then + return false + end + db.add_obj(self.object) + bind_crow.crow_storage[self.object:id()] = self.object:id() + bind_crow.crow_counter = bind_crow.crow_counter + 1 + self.object:set_callback(callback.death, self.death_callback, self) + return true +end +-- Net destroy +function crow_binder:net_destroy() + self.object:set_callback(callback.death, nil) + if (bind_crow.crow_storage[self.object:id()] ~= nil) then --*Crow FIX* + bind_crow.crow_storage[self.object:id()] = nil + bind_crow.crow_counter = bind_crow.crow_counter - 1 + if (bind_crow.crow_counter < 0) then --*Crow FIX* + bind_crow.crow_counter = 0 --*Crow FIX* + end --*Crow FIX* + end --*Crow FIX* + db.del_obj(self.object) + object_binder.net_destroy(self) +end +-- Crow death callback +function crow_binder:death_callback(victim, who) + self.body_timer = time_global() + if (bind_crow.crow_storage[self.object:id()] ~= nil) then --*Crow FIX* + bind_crow.crow_storage[self.object:id()] = nil + bind_crow.crow_counter = bind_crow.crow_counter - 1 + if (bind_crow.crow_counter < 0) then --*Crow FIX* + bind_crow.crow_counter = 0 --*Crow FIX* + end --*Crow FIX* + end --*Crow FIX* +end +-- Standart function for save +function crow_binder:net_save_relevant() + return true +end +-- Saving crow +function crow_binder:save(package) + set_save_marker(package, "save", false, "crow_binder") + object_binder.save(self, package) + xr_logic.save_obj(self.object, package) + package:w_u32(self.body_timer) + set_save_marker(package, "save", true, "crow_binder") +end +-- Loading crow +function crow_binder:load(reader) + set_save_marker(reader, "load", false, "crow_binder") + object_binder.load(self, reader) + xr_logic.load_obj(self.object, reader) + self.body_timer = reader:r_u32() + set_save_marker(reader, "load", true, "crow_binder") +end diff --git a/gamedata/scripts/bind_monster.script b/gamedata/scripts/bind_monster.script new file mode 100644 index 0000000..7be5be9 --- /dev/null +++ b/gamedata/scripts/bind_monster.script @@ -0,0 +1,321 @@ +----------------------------------------------------------------------------------- +-- Monster binding +----------------------------------------------------------------------------------- + +function bind(obj) + printf("_bp: monster.bind: name='%s', id='%d'", obj:name(), obj:id()) + + -- Äëÿ ñïàóíà + --xr_spawner.spawn_client(obj) + + local new_binder = generic_object_binder(obj) + obj:bind_object(new_binder) +end + +local last_update = 0 -- combat +------------------------------------------------------------------------------------ +class "generic_object_binder" (object_binder) + +function generic_object_binder:__init(obj) super(obj) + self.loaded = false +end + +function generic_object_binder:reload(section) + object_binder.reload(self, section) +end + +function generic_object_binder:reinit() + object_binder.reinit(self) + + db.storage[self.object:id()] = { } + + self.st = db.storage[self.object:id()] + + self.object:set_callback(callback.patrol_path_in_point, self.waypoint_callback, self) + self.object:set_callback(callback.hit, self.hit_callback, self) + self.object:set_callback(callback.death, self.death_callback, self) + self.object:set_callback(callback.sound, self.hear_callback, self) +end + +function generic_object_binder:update(delta) + object_binder.update(self, delta) + + if xr_combat_ignore.fighting_with_actor_npcs[self.object:id()] and self.object:best_enemy() == nil then + xr_combat_ignore.fighting_with_actor_npcs[self.object:id()] = nil + end + + local squad = get_object_squad(self.object) + local object_alive = self.object:alive() + --' printf("_bp: generic_object_binder: UPDATE [name='%s' time=%d]", + --' self.object:name(), time_global()) + + if not object_alive then + return + end + + local st = db.storage[self.object:id()] + if st ~= nil and st.active_scheme ~= nil then + xr_logic.try_switch_to_another_section(self.object, st[st.active_scheme], db.actor) + end + -- Àïäåéò îòðÿäà + if squad ~= nil then + if squad:commander_id() == self.object:id() then + squad:update() + end + end + + + self.object:info_clear() + + local active_section = db.storage[self.object:id()] and db.storage[self.object:id()].active_section + if active_section then + self.object:info_add("section: " .. active_section) + end + local best_enemy = self.object:best_enemy() + if best_enemy then + self.object:info_add("enemy: " .. best_enemy:name()) + end + self.object:info_add(self.object:name().." ["..self.object:team().."]["..self.object:squad().."]["..self.object:group().."]") + + if alife():object(self.object:id()) == nil then + return + end + + if squad ~= nil then + self.object:info_add("squad_id: " .. squad:section_name()) + if squad.current_action ~= nil then + local target = squad.assigned_target_id and alife():object(squad.assigned_target_id) and alife():object(squad.assigned_target_id):name() + self.object:info_add("current_action: " .. squad.current_action.name .."["..tostring(target).."]") + end + end + + +-- Åñëè åñòü âðàã , òî èäåì â êîìáàò !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + if self.object:get_enemy() then + if xr_logic.mob_captured(self.object) then + xr_logic.mob_release(self.object) + end + return + end + + + + if squad and squad.current_action and squad.current_action.name == "reach_target" then + local squad_target = simulation_objects.get_sim_obj_registry().objects[squad.assigned_target_id] + if squad_target == nil then return end + -- printf("_bp: mob_reach_task:reset_scheme: %s", self.object:name()) + + local target_pos, target_lv_id, target_gv_id = squad_target:get_location() + -- if not xr_logic.mob_captured(self.object) then + xr_logic.mob_capture(self.object, true) + -- end + if squad:commander_id() == self.object:id() then + action(self.object, move(move.walk_with_leader, target_pos), + cond(cond.move_end)) + else + local commander_pos = alife():object(squad:commander_id()).position + if commander_pos:distance_to(self.object:position()) > 10 then + action(self.object, move(move.run_with_leader, target_pos), + cond(cond.move_end)) + else + action(self.object, move(move.walk_with_leader, target_pos), + cond(cond.move_end)) + end + end + return + end + + if self.st.active_section ~= nil then + xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "update", delta) + end +end + +function generic_object_binder:extrapolate_callback() + -- Ïðîâåðÿåì, ÷òî îáúåêò åùå â îíëàéíå + if db.storage[self.object:id()] == nil or + db.storage[self.object:id()].object == nil + then + return + end + + + local cur_pt = self.object:get_current_point_index() + if self.object:get_script() == false then + return false + end + + local patrol_path = self.object:patrol() + if not level.patrol_path_exists(patrol_path) then + return false + --abort("bind_monster:extrapolate_callback(). There is no patrol path [%s]", tostring(patrol_path)) + end + if patrol(patrol_path):flags(cur_pt):get() == 0 then + --printf("_bp: generic_object_binder: extrapolate_callback: cur_pt = %d: true", cur_pt) + return true + end + --printf("_bp: generic_object_binder: extrapolate_callback: cur_pt = %d: false", cur_pt) + return false +end + +function generic_object_binder:waypoint_callback(obj, action_type, index) + if self.st.active_section ~= nil then + xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "waypoint_callback", obj, action_type, index) + end +end + +function generic_object_binder:death_callback(victim, who) + printf("stop_dead_id"..self.object:id()) + + xr_combat_ignore.fighting_with_actor_npcs[self.object:id()] = nil + + self:hit_callback(victim, 1, vector():set(0,0,0), who, "from_death_callback") + if who:id() == db.actor:id() then + xr_statistic.inc_killed_monsters_counter() + xr_statistic.set_best_monster(self.object) + end + + if self.st.mob_death then + xr_logic.issue_event(self.object, self.st.mob_death, "death_callback", victim, who) + end + + if self.st.active_section then + xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "death_callback", victim, who) + end + --' Íàíîñèì íåáîëüøîé èìïóëüñ âïåðåä. + local h = hit() + h.draftsman = self.object + h.type = hit.fire_wound + h.direction = db.actor:position():sub(self.object:position()) + h:bone("pelvis") + h.power = 1 + h.impulse = 10 + self.object:hit(h) + + local obj_clsid = self.object:clsid() + if obj_clsid == clsid.poltergeist_s then + printf("releasing object ["..self.object:name().."]") + if alife():object(self.object:id()) ~= nil then + alife():release(alife():object(self.object:id()), true) + end + end +end + +function generic_object_binder:hit_callback(obj, amount, local_direction, who, bone_index) +-- printf("HIT_CALLBACK: [%s] amount[%s]", obj:name(), amount) + + if(who:id()==db.actor:id()) then + xr_statistic.set_best_weapon(amount) + end + + if self.st.hit then + xr_logic.issue_event(self.object, self.st.hit, "hit_callback", obj, amount, local_direction, who, bone_index) + end + + if amount > 0 then + printf("HIT_CALLBACK: %s amount=%s bone=%s who:id() = [%s] actor:id() = [%s]", obj:name(), amount, tostring(bone_index), who:id(), db.actor:id()) + end +end + +function generic_object_binder:hear_callback(self, who_id, sound_type, sound_position, sound_power) + if who_id == self:id() then + return + end + xr_hear.hear_callback(self, who_id, sound_type, sound_position, sound_power) +end + +function generic_object_binder:net_spawn(sobject) + if not object_binder.net_spawn(self, sobject) then + return false + end + + local on_offline_condlist = db.storage[self.object:id()] and db.storage[self.object:id()].overrides and db.storage[self.object:id()].overrides.on_offline_condlist + if on_offline_condlist ~= nil then + xr_logic.pick_section_from_condlist(db.actor, self.object, on_offline_condlist) + end + + if not self.object:alive() then + return true + end + if alife():object(self.object:id()) == nil then + return false + end + +-- local pos = self.object:position() +-- printf("net_spawn mpos[%s][%s][%s]", tostring(pos.x), tostring(pos.y), tostring(pos.z)) + + db.add_obj(self.object) + +--******************************* Òåëåïîðò íà ïåðâóþ òî÷êó ïóòè ðàáîòû ñìàðòòåððåéíà...***************************** + local se_obj = alife():object(self.object:id()) + if db.spawned_vertex_by_id[se_obj.id] ~= nil then + self.object:set_npc_position(level.vertex_position(db.spawned_vertex_by_id[se_obj.id])) + db.spawned_vertex_by_id[se_obj.id] = nil + elseif db.offline_objects[se_obj.id] ~= nil and db.offline_objects[se_obj.id].level_vertex_id ~= nil then + printf("changing position for object[%s] from %s to %s : level vertex [%s] to [%s]", se_obj:name(), vec_to_str(se_obj.position), vec_to_str(level.vertex_position(db.offline_objects[se_obj.id].level_vertex_id)), tostring(se_obj.m_level_vertex_id), tostring(db.offline_objects[se_obj.id].level_vertex_id)) + self.object:set_npc_position(level.vertex_position(db.offline_objects[se_obj.id].level_vertex_id)) + elseif se_obj.m_smart_terrain_id ~= 65535 then + local smart_terrain = alife():object(se_obj.m_smart_terrain_id) + if smart_terrain.arriving_npc[se_obj.id] == nil then + local smart_task = smart_terrain.job_data[smart_terrain.npc_info[se_obj.id].job_id].alife_task + self.object:set_npc_position(smart_task:position()) + end + end +--****************************************************************************************************************** + + + smart_terrain.setup_gulag_and_logic_on_spawn( self.object, self.st, sobject, modules.stype_mobile, self.loaded) + + return true +end + +function generic_object_binder:net_destroy() + self.object:set_callback(callback.death, nil) + self.object:set_callback(callback.patrol_path_in_point, nil) + self.object:set_callback(callback.hit, nil) + self.object:set_callback(callback.sound, nil) + xr_sound.stop_sounds_by_id(self.object:id()) + + xr_combat_ignore.fighting_with_actor_npcs[self.object:id()] = nil + + local st = db.storage[self.object:id()] + if st and st.active_scheme then + xr_logic.issue_event(self.object, st[st.active_scheme], "net_destroy") + end + +-- Çàïîìèíàåì ïîçèöèþ è àêòèâíóþ ñåêöèþ -------- +if db.offline_objects[self.object:id()] then + db.offline_objects[self.object:id()].level_vertex_id = self.object:level_vertex_id() + db.offline_objects[self.object:id()].active_section = db.storage[self.object:id()].active_section +end +------------------------------------------------n + + db.del_obj(self.object) + db.storage[self.object:id()] = nil + object_binder.net_destroy(self) +end + +function generic_object_binder:reload(section) + object_binder.reload(self, section) + --printf("generic_object_binder:reload(): self.object:name()='%s'", self.object:name()) +end + +function generic_object_binder:net_save_relevant() + --printf("generic_object_binder:net_save_relevant(): self.object:name()='%s'", self.object:name()) + return true +end + +function generic_object_binder:save(packet) + + set_save_marker(packet, "save", false, "generic_object_binder") + object_binder.save(self, packet) + xr_logic.save_obj(self.object, packet) + set_save_marker(packet, "save", true, "generic_object_binder") +end + +function generic_object_binder:load(reader) + self.loaded = true + set_save_marker(reader, "load", false, "generic_object_binder") + object_binder.load(self, reader) + xr_logic.load_obj(self.object, reader) + set_save_marker(reader, "load", true, "generic_object_binder") +end diff --git a/gamedata/scripts/bind_stalker.script b/gamedata/scripts/bind_stalker.script new file mode 100644 index 0000000..ec91a00 --- /dev/null +++ b/gamedata/scripts/bind_stalker.script @@ -0,0 +1,597 @@ +function init (obj) + xr_motivator.AddToMotivator(obj) +end + +function actor_init (npc) + npc:bind_object(actor_binder(npc)) +end + +local game_difficulty_by_num = { + [0] = "gd_novice", + [1] = "gd_stalker", + [2] = "gd_veteran", + [3] = "gd_master" + } + +local weapon_hide = {} +local primary_objects_filled = false +---------------------------------------------------------------------------------------------------------------------- +class "actor_binder" (object_binder) +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:__init (obj) super(obj) + self.bCheckStart = false + self.weather_manager = level_weathers.get_weather_manager() + self.surge_manager = surge_manager.get_surge_manager() + --self.actor_detector = xr_detector.actor_detector() + self.last_level_name = nil + self.deimos_intensity = nil +-- self.actor_weapon_on_start = true + self.loaded_active_slot = 3 + self.loaded_slot_applied = false + self.last_detective_achievement_spawn_time = nil + self.last_mutant_hunter_achievement_spawn_time = nil +end +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:net_spawn(data) +-- printf("actor net spawn") + level.show_indicators() + self.bCheckStart = true + self.weapon_hide = false -- ÑпрÑтано или нет оружие при разговоре. + self.weapon_hide_in_dialog = false + weapon_hide = {} -- уÑтанавливаем глобальный дефолтовый флаг. + if object_binder.net_spawn(self,data) == false then + return false + end + db.add_actor(self.object) + db.actor.deimos_intensity = self.deimos_intensity + self.deimos_intensity = nil + if self.st.disable_input_time == nil then + level.enable_input() + end + xr_s.on_game_load() --' Distemper 03.2008 -- + self.weather_manager:reset() + --' Загружаем наÑтройки дропа + death_manager.init_drop_settings() + --'УÑтанавливаем ÑÑылку на таÑкменеджер + self.task_manager = task_manager.get_task_manager() + self.spawn_frame = device().frame + self.already_jumped = false + -- self.loaded = false + benchmark.main() --' Distemper 06.2008 -- + return true +end +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:net_destroy() + xr_sound.stop_sounds_by_id(self.object:id()) + local board_factions = sim_board.get_sim_board().players + if(board_factions) then + for k,v in pairs (board_factions) do + xr_sound.stop_sounds_by_id(v.id) + end + end + if(actor_stats.remove_from_ranking~=nil)then + actor_stats.remove_from_ranking(self.object:id()) + end + level.show_weapon(true) + db.del_actor(self.object) + + self.object:set_callback(callback.inventory_info, nil) + self.object:set_callback(callback.article_info, nil) + self.object:set_callback(callback.on_item_take, nil) + self.object:set_callback(callback.on_item_drop, nil) + self.object:set_callback(callback.task_state, nil) + self.object:set_callback(callback.level_border_enter, nil) + self.object:set_callback(callback.level_border_exit, nil) + self.object:set_callback(callback.take_item_from_box, nil) + self.object:set_callback(callback.use_object, nil) + -- IX-Ray + self.object:set_callback(callback.actor_before_death, nil) + -- END IX-Ray + + log("--------->"..tostring(_G.amb_vol)) + log("--------->"..tostring(_G.mus_vol)) + if(_G.amb_vol~=0) then + get_console():execute("snd_volume_eff "..tostring(_G.amb_vol)) + _G.amb_vol = 0 + end + if(_G.mus_vol~=0) then + get_console():execute("snd_volume_music "..tostring(_G.mus_vol)) + _G.mus_vol = 0 + end + if sr_psy_antenna.psy_antenna then + sr_psy_antenna.psy_antenna:destroy() + sr_psy_antenna.psy_antenna = false + end + xrs_dyn_music.finish_theme() + xr_s.on_actor_destroy() + object_binder.net_destroy(self) +end +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:reinit() + object_binder.reinit(self) + local npc_id = self.object:id() + db.storage[npc_id] = { } + self.st = db.storage[npc_id] + self.st.pstor = nil + + self.object:set_callback(callback.inventory_info, self.info_callback, self) + self.object:set_callback(callback.on_item_take, self.on_item_take, self) + self.object:set_callback(callback.on_item_drop, self.on_item_drop, self) + self.object:set_callback(callback.trade_sell_buy_item, self.on_trade, self) -- for game stats + self.object:set_callback(callback.task_state, self.task_callback, self) + self.object:set_callback(callback.take_item_from_box, self.take_item_from_box, self) + self.object:set_callback(callback.use_object, self.use_inventory_item, self) + -- IX-Ray + self.object:set_callback(callback.actor_before_death, self.on_actor_before_death, self) + -- END IX-Ray +end + +-- IX-Ray +-- actor before death callback +-- IMPORTANT: if you wish to kill actor you need to call db.actor:kill(level.object_by_id(whoID), true) in actor_before_death callback, to ensure all objects are properly destroyed. +function actor_binder:on_actor_before_death(whoID) + local killer = level.object_by_id(whoID) or db.actor + db.actor:kill(killer, true) +end +-- END IX-Ray +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:take_item_from_box(box, item) + local box_name = box:name() +end + +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:info_callback(npc, info_id) + printf("*INFO*: npc='%s' id='%s'", npc:name(), info_id) + --' Сюжет + -- Отметки на карте +end +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:on_trade (item, sell_bye, money) + if sell_bye == true then + game_stats.money_trade_update (money) + else + game_stats.money_trade_update (-money) + end +end +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:article_callback(npc, group, name) +end +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:on_item_take (obj) + printf("on_item_take [%s]", obj:name()) + if isArtefact(obj) then + local anomal_zone = bind_anomaly_zone.parent_zones_by_artefact_id[obj:id()] + if anomal_zone ~= nil then + anomal_zone:on_artefact_take(obj) + else + bind_anomaly_zone.artefact_ways_by_id[obj:id()] = nil + end + local artefact = obj:get_artefact() + artefact:FollowByPath("NULL",0,vector():set(500,500,500)) + xr_statistic.inc_founded_artefacts_counter(obj:id()) +--[[ + local s_art = alife():object(obj:id()) + if(s_art) then + xr_statistic.inc_founded_artefacts_counter(s_art:section_name()) + else + xr_statistic.inc_founded_artefacts_counter() + end +]] + end + treasure_manager.get_treasure_manager():on_item_take(obj:id()) +end +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:on_item_drop (obj) +end + +function actor_binder:use_inventory_item(obj) + if(obj) then + local s_obj = alife():object(obj:id()) + if(s_obj) and (s_obj:section_name()=="drug_anabiotic") then + xr_effects.disable_ui_only(db.actor, nil) + level.add_cam_effector("camera_effects\\surge_02.anm", 10, false, "bind_stalker.anabiotic_callback") + level.add_pp_effector("surge_fade.ppe", 11, false) + give_info("anabiotic_in_process") + _G.mus_vol = get_console():get_float("snd_volume_music") + _G.amb_vol = get_console():get_float("snd_volume_eff") + get_console():execute("snd_volume_music 0") + get_console():execute("snd_volume_eff 0") + end + end +end + +function anabiotic_callback() + level.add_cam_effector("camera_effects\\surge_01.anm", 10, false, "bind_stalker.anabiotic_callback2") + local rnd = math.random(35,45) + local m = surge_manager.get_surge_manager() + if(m.started) then + local tf = level.get_time_factor() + local diff_sec = math.ceil(game.get_game_time():diffSec(m.inited_time)/tf) + if(rnd>(m.surge_time-diff_sec)*tf/60) then + m.time_forwarded = true + m.ui_disabled = true + m:kill_all_unhided() + m:end_surge() + end + end + level.change_game_time(0,0,rnd) + level_weathers.get_weather_manager():forced_weather_change() + printf("anabiotic_callback: time forwarded on [%d]", rnd) +end + +function anabiotic_callback2() + xr_effects.enable_ui(db.actor, nil) + get_console():execute("snd_volume_music "..tostring(_G.mus_vol)) + get_console():execute("snd_volume_eff "..tostring(_G.amb_vol)) + _G.amb_vol = 0 + _G.mus_vol = 0 + disable_info("anabiotic_in_process") +end +---------------------------------------------------------------------------------------------------------------------- + +function actor_binder:task_callback(_task, _state) + if _state ~= task.fail then + if _state == task.completed then + news_manager.send_task(db.actor, "complete", _task) + else + news_manager.send_task(db.actor, "new", _task) + end + end + task_manager.task_callback(_task, _state) +end + +---------------------------------------------------------------------------------------------------------------------- + +function actor_binder:update(delta) + object_binder.update(self, delta) + + if string.find(command_line(), "-designer") then + return + end + + if self.already_jumped==false and jump_level.need_jump==true and (device().frame > self.spawn_frame+2000) then + jump_level.try_to_jump() + self.already_jumped = true + return + end + + -- Вызов апдейта переноÑа игрока проводником + if travel_func ~= nil then + travel_func() + end + + -- DEBUG slowdown + --slowdown.update() + local time = time_global() + game_stats.update (delta, self.object) + -- апдейт погоды + self.weather_manager:update() + + self:check_detective_achievement() + self:check_mutant_hunter_achievement() + + --' Ðпдейт Ñаундменеджера + xr_sound.update(self.object:id()) + + -- Обновление Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð²Ð²Ð¾Ð´Ð° Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ñ‹. + if self.st.disable_input_time ~= nil and + game.get_game_time():diffSec(self.st.disable_input_time) >= self.st.disable_input_idle + then + level.enable_input() + self.st.disable_input_time = nil + end + + -- Ðпдейт прÑтание Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð¸Ð³Ñ€Ð¾ÐºÐ° во Ð²Ñ€ÐµÐ¼Ñ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð° + if self.object:is_talking() then + if self.weapon_hide_in_dialog == false then + self.object:hide_weapon() + printf("hiding weapon!!!") + self.weapon_hide_in_dialog = true + end + else + if self.weapon_hide_in_dialog == true then + printf("restoring weapon!!!") + self.object:restore_weapon() + self.weapon_hide_in_dialog = false + end + end + -- Ðпдейт прÑтание Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð¸Ð³Ñ€Ð¾ÐºÐ° в зоне sr_no_weapon + if check_for_weapon_hide_by_zones() == true then + if self.weapon_hide == false then + printf("hiding weapon!!!") + self.object:hide_weapon() + self.weapon_hide = true + end + else + if self.weapon_hide == true then + printf("restoring weapon!!!") + self.object:restore_weapon() + self.weapon_hide = false + end + end + + -- обновление пÑи-антенны + if sr_psy_antenna.psy_antenna then + sr_psy_antenna.psy_antenna:update(delta) + end +--[[ + --' Вывод ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾ большой радиации + if self.object.radiation >= 0.7 then + local hud = get_hud() + local custom_static = hud:GetCustomStatic("cs_radiation_danger") + if custom_static == nil then + hud:AddCustomStatic("cs_radiation_danger", true) + hud:GetCustomStatic("cs_radiation_danger"):wnd():TextControl():SetTextST("st_radiation_danger") + end + else + local hud = get_hud() + local custom_static = hud:GetCustomStatic("cs_radiation_danger") + if custom_static ~= nil then + hud:RemoveCustomStatic("cs_radiation_danger") + end + end +]]-- + + if self.bCheckStart then + printf("SET DEFAULT INFOS") + if not has_alife_info("global_dialogs") then + self.object:give_info_portion("global_dialogs") + end + if not has_alife_info("level_changer_icons") then + self.object:give_info_portion("level_changer_icons") + end + self.bCheckStart = false + +-- if self.actor_weapon_on_start == true then +-- db.actor:activate_slot(3) +-- self.actor_weapon_on_start = false +-- end + end +-- device().precache_frame == 0 and + if not self.loaded_slot_applied then + self.object:activate_slot(self.loaded_active_slot) + self.loaded_slot_applied = true + end + + xr_s.on_actor_update(delta) + + if(self.surge_manager) then + if(self.f_surge_manager_loaded ~= true) then + self.surge_manager:initialize() + self.f_surge_manager_loaded = true + end + if(self.surge_manager.levels_respawn[level.name()]) then + self.surge_manager:respawn_artefacts_and_replace_anomaly_zone() + end + self.surge_manager:update() + end + -- Ðпдейт доÑтупноÑти Ð´Ð»Ñ ÑимулÑции. + simulation_objects.get_sim_obj_registry():update_avaliability(alife():actor()) + + -- Not used + --if not self.loaded then + -- get_console():execute("dump_infos") + -- self.loaded = true + --end + treasure_manager.get_treasure_manager():update() + + if not(primary_objects_filled) then + pda.fill_primary_objects() + primary_objects_filled = true + end + pda.fill_sleep_zones() + + SendScriptCallback("update") -- IX-Ray +end +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:save(packet) + set_save_marker(packet, "save", false, "actor_binder") + object_binder.save(self, packet) + --' СохранÑем уровень ÑложноÑти + packet:w_u8(level.get_game_difficulty()) + --' СохранÑем данные об отключенном вводе + if self.st.disable_input_time == nil then + packet:w_bool(false) + else + packet:w_bool(true) + utils.w_CTime(packet, self.st.disable_input_time) + end + xr_logic.pstor_save_all(self.object, packet) + self.weather_manager:save(packet) + release_body_manager.get_release_body_manager():save(packet) + self.surge_manager:save(packet) + sr_psy_antenna.save( packet ) + packet:w_bool(sim_board.get_sim_board().simulation_started) + + xr_sound.actor_save(packet) + packet:w_stringZ(tostring(self.last_level_name)) + xr_statistic.save(packet) + treasure_manager.get_treasure_manager():save(packet) + + local n = 0 + for k,v in pairs(db.script_ids) do + n = n + 1 + end + packet:w_u8(n) + for k,v in pairs (db.script_ids) do + packet:w_u16(k) + packet:w_stringZ(v) + end + task_manager.get_task_manager():save(packet) + +-- packet:w_bool(self.actor_weapon_on_start) + + packet:w_u8(self.object:active_slot()) + + + local deimos_exist = false + for k,v in pairs(db.zone_by_name) do + if(db.storage[v:id()] and db.storage[v:id()].active_scheme=="sr_deimos") then + deimos_exist = true + packet:w_bool(true) + packet:w_float(db.storage[v:id()].sr_deimos.intensity) + end + end + if not deimos_exist then + packet:w_bool(false) + end + + if self.last_detective_achievement_spawn_time == nil then + packet:w_bool(false) + else + packet:w_bool(true) + utils.w_CTime(packet, self.last_detective_achievement_spawn_time) + end + if self.last_mutant_hunter_achievement_spawn_time == nil then + packet:w_bool(false) + else + packet:w_bool(true) + utils.w_CTime(packet, self.last_mutant_hunter_achievement_spawn_time) + end + set_save_marker(packet, "save", true, "actor_binder") + + SendScriptCallback("save", packet) -- IX-Ray +end +---------------------------------------------------------------------------------------------------------------------- +function actor_binder:load(reader) + set_save_marker(reader, "load", false, "actor_binder") + object_binder.load(self, reader) + --' Загружаем уровень ÑложноÑти + local game_difficulty = reader:r_u8() + printf("load game_difficulty %s", tostring(game_difficulty)) + get_console():execute("g_game_difficulty "..game_difficulty_by_num[game_difficulty]) + local stored_input_time = reader:r_u8() + if stored_input_time == true then + self.st.disable_input_time = utils.r_CTime(reader) + end + xr_logic.pstor_load_all(self.object, reader) + self.weather_manager:load(reader) + release_body_manager.get_release_body_manager():load(reader) +-- self.surge_manager:initialize() + self.surge_manager:load(reader) + self.f_surge_manager_loaded = true + sr_psy_antenna.load(reader) + sim_board.get_sim_board().simulation_started = reader:r_bool() + + xr_sound.actor_load(reader) + local n = reader:r_stringZ() + if(n~="nil") then + self.last_level_name = n + end + xr_statistic.load(reader) + treasure_manager.get_treasure_manager():load(reader) + n = reader:r_u8() + for i = 1,n do + db.script_ids[reader:r_u16()] = reader:r_stringZ() + end + + task_manager.get_task_manager():load(reader) + +-- self.actor_weapon_on_start = reader:r_bool() + + self.loaded_active_slot = reader:r_u8() + + self.loaded_slot_applied = false + + local b = reader:r_bool() + if(b) then + self.deimos_intensity = reader:r_float() + end + + local stored_achievement_time = reader:r_bool() + if stored_achievement_time == true then + self.last_detective_achievement_spawn_time = utils.r_CTime(reader) + end + stored_achievement_time = reader:r_bool() + if stored_achievement_time == true then + self.last_mutant_hunter_achievement_spawn_time = utils.r_CTime(reader) + end + set_save_marker(reader, "load", true, "actor_binder") + + SendScriptCallback("load", reader) -- IX-Ray +end + +--************************************************************* +--* ПодÑпаун вещей в Ñщики * +--************************************************************* +local detective_achievement_items = { "medkit", + "antirad", + "bandage"} + +local mutant_hunter_achievement_items = { "ammo_5.45x39_ap", + "ammo_5.56x45_ap", + "ammo_9x39_ap", + "ammo_5.56x45_ap", + "ammo_12x76_zhekan"} + +local function spawn_achivement_items(items_table, count, inv_box_story_id) + local inv_box = alife():object(get_story_object_id(inv_box_story_id)) + for i = 1,count do + alife():create(items_table[math.random(#items_table)], + inv_box.position, + inv_box.m_level_vertex_id, + inv_box.m_game_vertex_id, + inv_box.id) + end +end + +function actor_binder:check_detective_achievement() + if not has_alife_info("detective_achievement_gained") then + return + end + if self.last_detective_achievement_spawn_time == nil then + self.last_detective_achievement_spawn_time = game.get_game_time() + end + if game.get_game_time():diffSec(self.last_detective_achievement_spawn_time) > 43200 then + spawn_achivement_items(detective_achievement_items, 4, "zat_a2_actor_treasure") + xr_effects.send_tip(db.actor, nil, {"st_detective_news","got_medicine"}) + self.last_detective_achievement_spawn_time = game.get_game_time() + end +end + +function actor_binder:check_mutant_hunter_achievement() + if not has_alife_info("mutant_hunter_achievement_gained") then + return + end + if self.last_mutant_hunter_achievement_spawn_time == nil then + self.last_mutant_hunter_achievement_spawn_time = game.get_game_time() + end + if game.get_game_time():diffSec(self.last_mutant_hunter_achievement_spawn_time) > 43200 then + spawn_achivement_items(mutant_hunter_achievement_items, 5, "jup_b202_actor_treasure") + xr_effects.send_tip(db.actor, nil, {"st_mutant_hunter_news","got_ammo"}) + self.last_mutant_hunter_achievement_spawn_time = game.get_game_time() + end + +end + +---------------------------------------------------------------------------------------------------------------------- + +function check_for_weapon_hide_by_zones() + for k,v in pairs(weapon_hide) do + if v == true then + return true + end + end + return false +end + +-- Weapon functions +function hide_weapon(zone_id) + printf("[WEAPON_CONTROL]:hiding weapon from zone [%s] in section [%s]!!!", zone_id, db.storage[zone_id].active_section) + weapon_hide[zone_id] = true +end + +function restore_weapon(zone_id) + printf("[WEAPON_CONTROL]:restoring weapon from zone [%s] in section [%s]!!!", zone_id, db.storage[zone_id].active_section) + weapon_hide[zone_id] = false +end + + + + + + + + + + diff --git a/gamedata/scripts/gulag_general.script b/gamedata/scripts/gulag_general.script new file mode 100644 index 0000000..98d56cf --- /dev/null +++ b/gamedata/scripts/gulag_general.script @@ -0,0 +1,1023 @@ +local ltx + +function load_job(smart) + printf("LOAD JOB %s", smart:name()) + -- Ð˜ÐµÑ€Ð°Ñ€Ñ…Ð¸Ñ Ð·Ð°Ð´Ð°ÐµÑ‚ÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÐµÐ¹ вида: +--[[ + self.jobs = { + { + _precondition_is_monster = true, + _precondition_function = function(se_obj) ... end, + _prior = ..., + jobs = { + _precondition_function = function(se_obj) ... end, + _prior = ... + job_id = ... + }, + { + _precondition_function = function(se_obj) ... end, + _prior = ... + job_id = ... + } + }, + { + _precondition_is_monster = false, + _prior = ... + job_id = ... + }, + + ... + {}, + } +]] + + local gname = smart:name() + local t + local board = sim_board.get_sim_board() + local job_table = {} + + + ltx = "" .. + + "[meet@generic_lager]\n".. + "close_distance = {=is_wounded} 0, 2\n".. + "close_anim = {=is_wounded} nil, {!is_squad_commander} nil, {=actor_has_weapon} threat_na, talk_default\n".. + "close_snd_hello = {=is_wounded} nil, {!is_squad_commander} nil, {=actor_enemy} nil, {=actor_has_weapon} meet_hide_weapon, meet_hello\n".. + "close_snd_bye = {=is_wounded} nil, {!is_squad_commander} nil, {=actor_enemy} nil, {=actor_has_weapon} nil, meet_hello\n".. + "close_victim = {=is_wounded} nil, {!is_squad_commander} nil, actor\n".. + "far_distance = 0\n".. + "far_anim = nil\n".. + "far_snd = nil\n".. + "far_victim = nil\n".. + "use = {=is_wounded} false, {!is_squad_commander} false, {=actor_enemy} false, {=has_enemy} false, {=actor_has_weapon} false, {=dist_to_actor_le(3)} true, false\n".. + "snd_on_use = {=is_wounded} nil, {=actor_enemy} nil, {!is_squad_commander} meet_use_no_talk_leader, {=actor_has_weapon} meet_use_no_weapon, {=has_enemy} meet_use_no_fight, {=dist_to_actor_le(3)} meet_use_no_default, nil\n".. + "meet_dialog = nil\n".. + "abuse = {=has_enemy} false, true\n".. + "trade_enable = true\n".. + "allow_break = true\n".. + "use_text = nil\n".. + + "[meet@generic_animpoint]\n".. + "close_distance = 0\n".. + "close_anim = {!is_squad_commander} nil, nil\n".. + "close_snd_hello = {!is_squad_commander} nil, nil\n".. + "close_snd_bye = {!is_squad_commander} nil, nil\n".. + "close_victim = {!is_squad_commander} nil, nil\n".. + "far_distance = 0\n".. + "far_anim = nil\n".. + "far_snd = nil\n".. + "far_victim = nil\n".. + "use = {=is_wounded} false, {!is_squad_commander} false, {=actor_enemy} false, {=has_enemy} false, {=actor_has_weapon} false, {=dist_to_actor_le(3)} true, false\n".. + "snd_on_use = {=is_wounded} nil, {=actor_enemy} nil, {!is_squad_commander} meet_use_no_talk_leader, {=actor_has_weapon} meet_use_no_weapon, {=has_enemy} meet_use_no_fight, {=dist_to_actor_le(3)} meet_use_no_default, nil\n".. + "meet_dialog = nil\n".. + "abuse = {=has_enemy} false, true\n".. + "trade_enable = true\n".. + "allow_break = true\n".. + "meet_on_talking = false\n".. + "use_text = nil\n" + + +--'------------------------------------------------------------------------ +--' РÐБОТЫ СТÐЛКЕРОВ +--'------------------------------------------------------------------------ + local stalker_jobs = {_precondition_is_monster = false, _prior = 60, jobs = {}} + + --'------------------------------------------------------------------------ + --' ОБЫЧÐОЕ СОСТОЯÐИЕ + --'------------------------------------------------------------------------ + --'------------------------------------------------------------------------ + --' GENERIC POINT + --'------------------------------------------------------------------------ + -- ПроверÑем наличие патрулей обхода в лагере. + local stalker_generic_point = {_prior = 3, jobs = {}} + for it=1,20 do + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local name = gname.."_point_"..it + + -- добавлÑем должноÑть + t = { _prior = 3, + job_id = { section = "logic@"..name, + job_type = "point_job" } + } + + + table.insert(stalker_generic_point.jobs, t) + + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..name.."]\n".. + "active = cover@"..name.."\n".. + + "[cover@"..name.."]\n".. + "meet = meet@generic_lager\n".. + "smart = "..gname.."\n".. + "radius_min = 3\n".. + "radius_max = 8\n".. + "use_attack_direction = false\n".. + "anim = {!npc_community(zombied)} sit, guard\n" + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr.."\n" + end + + if smart.base_on_actor_control ~= nil and + smart.base_on_actor_control.ignore_zone ~= nil + then + job_ltx = job_ltx .."combat_ignore_cond = {=npc_in_zone(smart.base_on_actor_control.ignore_zone)} true \n".. + "combat_ignore_keep_when_attacked = true \n" + end + + ltx = ltx..job_ltx + end + table.insert(stalker_jobs.jobs, stalker_generic_point) + + --'------------------------------------------------------------------------ + --' SURGE + --'------------------------------------------------------------------------ + -- ПроверÑем наличие путей Ð±Ñ€Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ лагерÑ. + local stalker_surge = {_prior = 50, jobs = {}} + + it = 1 + while level.patrol_path_exists(gname.."_surge_"..it.."_walk") do + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local way_name = gname.."_surge_"..it.."_walk" + + -- добавлÑем должноÑть + t = { _prior = 50, + job_id = { section = "logic@"..way_name, + job_type = "path_job" }, + _precondition_params = { }, + _precondition_function = function(se_obj, smart, precond_params) + return xr_conditions.surge_started() + end + } + table.insert(stalker_surge.jobs, t) + + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..way_name.."]\n".. + "active = walker@"..way_name.."\n".. + + "[walker@"..way_name.."]\n".. + "sound_idle = state\n".. + "use_camp = true\n".. + "meet = meet@generic_lager\n".. + "path_walk = surge_"..it.."_walk\n".. + "def_state_standing = guard\n".. + "def_state_moving = patrol\n" + + if level.patrol_path_exists(gname.."_surge_"..it.."_look") then + job_ltx = job_ltx.."path_look = surge_"..it.."_look\n" + end + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr.."\n" + end + + if smart.base_on_actor_control ~= nil and + smart.base_on_actor_control.ignore_zone ~= nil and + xr_gulag.job_in_restrictor(smart, smart.base_on_actor_control.ignore_zone, way_name) + then + job_ltx = job_ltx .."combat_ignore_cond = {=npc_in_zone(smart.base_on_actor_control.ignore_zone)} true \n".. + "combat_ignore_keep_when_attacked = true \n" + end + + ltx = ltx..job_ltx + it = it + 1 + end + if it > 1 then table.insert(stalker_jobs.jobs, stalker_surge) end + + -- START IX-Ray + --'------------------------------------------------------------------------ + --' kamp + --'------------------------------------------------------------------------ + local stalker_kamp = {_prior = 14, jobs = {}} + it = 1 + while level.patrol_path_exists(gname.."_kamp_"..it) do + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local way_name = gname.."_kamp_"..it + local job_count = 5 + + for i = 1, job_count do + -- добавлÑем должноÑть + t = { _prior = 10+i, + job_id = { section = "logic@"..way_name, + job_type = "point_job" }, + _precondition_params = { }, + _precondition_function = function(se_obj, smart, precond_params) + if smart.smart_alarm_time == nil then + return true + end + + if smart.safe_restr == nil then + return true + end + + if precond_params.is_safe_job == nil then + precond_params.is_safe_job = xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) + end + + return precond_params.is_safe_job ~= false + end + } + table.insert(stalker_kamp.jobs, t) + end + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..way_name.."]\n".. + "active = kamp@"..way_name.."\n".. + + "[kamp@"..way_name.."]\n".. + "meet = meet@generic_lager\n".. + "center_point = kamp_"..it.."\n" + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr.."\n" + end + + if smart.base_on_actor_control ~= nil and + smart.base_on_actor_control.ignore_zone ~= nil and + xr_gulag.job_in_restrictor(smart, smart.base_on_actor_control.ignore_zone, way_name) + then + job_ltx = job_ltx .."combat_ignore_cond = {=npc_in_zone(smart.base_on_actor_control.ignore_zone)} true \n".. + "combat_ignore_keep_when_attacked = true \n" + end + + ltx = ltx..job_ltx + it = it + 1 + end + if it > 1 then table.insert(stalker_jobs.jobs, stalker_kamp) end + -- END IX-Ray + + --'------------------------------------------------------------------------ + --' SLEEP + --'------------------------------------------------------------------------ + -- ПроверÑем наличие путей Ð´Ð»Ñ Ñна. + local stalker_sleep = {_prior = 10, jobs = {}} + it = 1 + while level.patrol_path_exists(gname.."_sleep_"..it) do + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local way_name = gname.."_sleep_"..it + + -- добавлÑем должноÑть + t = { _prior = 10, + job_id = { section = "logic@"..way_name, + job_type = "path_job" }, + _precondition_params = { }, + _precondition_function = function(se_obj, smart, precond_params) + if se_obj:community() == "zombied" then + return false + end + + + if not in_time_interval(21,7) then + return false + end + + if smart.smart_alarm_time == nil then + return true + end + + if smart.safe_restr == nil then + return true + end + + if precond_params.is_safe_job == nil then + precond_params.is_safe_job = xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) + end + + return precond_params.is_safe_job ~= false + end + } + table.insert(stalker_sleep.jobs, t) + + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..way_name.."]\n".. + "active = sleeper@"..way_name.."\n".. + + "[sleeper@"..way_name.."]\n".. + "path_main = sleep_"..it.."\n" + + if smart.safe_restr ~= nil and xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) then + job_ltx = job_ltx .. "invulnerable = {=npc_in_zone(smart.safe_restr)} true\n" + end + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr.."\n" + end + + if smart.base_on_actor_control ~= nil and + smart.base_on_actor_control.ignore_zone ~= nil and + xr_gulag.job_in_restrictor(smart, smart.base_on_actor_control.ignore_zone, way_name) + then + job_ltx = job_ltx .."combat_ignore_cond = {=npc_in_zone(smart.base_on_actor_control.ignore_zone)} true \n".. + "combat_ignore_keep_when_attacked = true \n" + end + + ltx = ltx..job_ltx + it = it + 1 + end + if it > 1 then table.insert(stalker_jobs.jobs, stalker_sleep) end + + --'------------------------------------------------------------------------ + --' COLLECTOR + --'------------------------------------------------------------------------ + -- ПроверÑем наличие путей Ð±Ñ€Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ лагерÑ. + local stalker_collector = {_prior = 25, jobs = {}} + it = 1 + while level.patrol_path_exists(gname.."_collector_"..it.."_walk") do + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local way_name = gname.."_collector_"..it.."_walk" + + -- добавлÑем должноÑть + t = { _prior = 25, + job_id = { section = "logic@"..way_name, + job_type = "path_job" }, + _precondition_params = { }, + _precondition_function = function(se_obj, smart, precond_params) + if se_obj:community() == "zombied" then + return false + end + + -- ПроверÑем, что у ÐПС еÑть детектор. + local st = db.storage[se_obj.id] + + if st == nil then + return false + end + + local npc = st.object + + if npc == nil then + return false + end + + local detectors = { "detector_simple", "detector_advanced", "detector_elite", "detector_scientific" } + + for k,v in pairs(detectors) do + local obj = npc:object(v) + if obj ~= nil then + return true + end + end + return false + end + } + table.insert(stalker_collector.jobs, t) + + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..way_name.."]\n".. + "active = walker@"..way_name.."\n".. + + "[walker@"..way_name.."]\n".. + "sound_idle = state\n".. + "meet = meet@generic_lager\n".. + "path_walk = collector_"..it.."_walk\n".. + "def_state_standing = guard\n".. + "def_state_moving = patrol\n" + + if level.patrol_path_exists(gname.."_collector_"..it.."_look") then + job_ltx = job_ltx.."path_look = collector_"..it.."_look\n" + end + + if smart.safe_restr ~= nil and xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) then + job_ltx = job_ltx .. "invulnerable = {=npc_in_zone(smart.safe_restr)} true\n" + end + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr.."\n" + end + + if smart.base_on_actor_control ~= nil and + smart.base_on_actor_control.ignore_zone ~= nil and + xr_gulag.job_in_restrictor(smart, smart.base_on_actor_control.ignore_zone, way_name) + then + job_ltx = job_ltx .."combat_ignore_cond = {=npc_in_zone(smart.base_on_actor_control.ignore_zone)} true \n".. + "combat_ignore_keep_when_attacked = true \n" + end + + ltx = ltx..job_ltx + it = it + 1 + end + if it > 1 then table.insert(stalker_jobs.jobs, stalker_collector) end + + --'------------------------------------------------------------------------ + --' WALKER + --'------------------------------------------------------------------------ + -- ПроверÑем наличие путей Ð±Ñ€Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ лагерÑ. + local stalker_walker = {_prior = 15, jobs = {}} + it = 1 + + while level.patrol_path_exists(gname.."_walker_"..it.."_walk") do + + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local way_name = gname.."_walker_"..it.."_walk" + + -- добавлÑем должноÑть + t = { _prior = 15, + job_id = { section = "logic@"..way_name, + job_type = "path_job" }, + _precondition_params = { }, + _precondition_function = function(se_obj, smart, precond_params) + if smart.smart_alarm_time == nil then + return true + end + + if smart.safe_restr == nil then + return true + end + + if precond_params.is_safe_job == nil then + precond_params.is_safe_job = xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) + end + + return precond_params.is_safe_job ~= false + end + } + table.insert(stalker_walker.jobs, t) + + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..way_name.."]\n".. + "active = walker@"..way_name.."\n".. + + "[walker@"..way_name.."]\n".. + "sound_idle = state\n".. + "meet = meet@generic_lager\n".. + "path_walk = walker_"..it.."_walk\n".. + "def_state_standing = guard\n".. + "def_state_moving = patrol\n" + + if level.patrol_path_exists(gname.."_walker_"..it.."_look") then + job_ltx = job_ltx.."path_look = walker_"..it.."_look\n" + end + + if smart.safe_restr ~= nil and xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) then + job_ltx = job_ltx .. "invulnerable = {=npc_in_zone(smart.safe_restr)} true\n" + end + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr.."\n" + end + + if smart.base_on_actor_control ~= nil and + smart.base_on_actor_control.ignore_zone ~= nil and + xr_gulag.job_in_restrictor(smart, smart.base_on_actor_control.ignore_zone, way_name) + then + job_ltx = job_ltx .."combat_ignore_cond = {=npc_in_zone(smart.base_on_actor_control.ignore_zone)} true \n".. + "combat_ignore_keep_when_attacked = true \n" + end + + ltx = ltx..job_ltx + it = it + 1 + end + if it > 1 then table.insert(stalker_jobs.jobs, stalker_walker) end + + --'------------------------------------------------------------------------ + --' PATROL + --'------------------------------------------------------------------------ + -- ПроверÑем наличие патрулей обхода в лагере. + local stalker_patrol = {_prior = 20, jobs = {}} + it = 1 + while level.patrol_path_exists(gname.."_patrol_"..it.."_walk") do + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local way_name = gname.."_patrol_"..it.."_walk" + local ptr = patrol(way_name) + local wp_prop = utils.parse_waypoint_data(way_name, ptr:flags(0), ptr:name(0)) + local job_count = 3 + if wp_prop.count ~= nil then + job_count = wp_prop.count + end + + for i = 1, job_count do + -- добавлÑем должноÑть + t = { _prior = 20, + job_id = { section = "logic@"..way_name, + job_type = "path_job" }, + _precondition_params = { }, + _precondition_function = function(se_obj, smart, precond_params) + if se_obj:community() == "zombied" then + return false + end + + + if smart.smart_alarm_time == nil then + return true + end + + if smart.safe_restr == nil then + return true + end + + if precond_params.is_safe_job == nil then + precond_params.is_safe_job = xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) + end + + return precond_params.is_safe_job ~= false + end + } + table.insert(stalker_patrol.jobs, t) + end + + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..way_name.."]\n".. + "active = patrol@"..way_name.."\n".. + + "[patrol@"..way_name.."]\n".. + "meet = meet@generic_lager\n".. + "formation = back\n".. + "path_walk = patrol_"..it.."_walk\n".. + "on_signal = end| %=search_gulag_job%\n" + + if level.patrol_path_exists(gname.."_patrol_"..it.."_look") then + job_ltx = job_ltx.."path_look = patrol_"..it.."_look\n" + end + + if smart.safe_restr ~= nil and xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) then + job_ltx = job_ltx .. "invulnerable = {=npc_in_zone(smart.safe_restr)} true\n" + end + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr.."\n" + end + + ltx = ltx..job_ltx + it = it + 1 + end + if it > 1 then table.insert(stalker_jobs.jobs, stalker_patrol) end + + + --'------------------------------------------------------------------------ + --' XR_ANIMPOINT + --'------------------------------------------------------------------------ + -- ПроверÑем наличие патрулей обхода в лагере. + it = 1 + while se_smart_cover.registered_smartcovers[gname.."_animpoint_"..it] ~= nil do + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local smartcover_name = gname.."_animpoint_"..it + + -- добавлÑем должноÑть + t = { _prior = 15, + job_id = { section = "logic@"..smartcover_name, + job_type = "smartcover_job" }, + _precondition_params = { }, + _precondition_function = function(se_obj, smart, precond_params) + --if smart.smart_alarm_time == nil then + --return true + --end + + --if smart.safe_restr == nil then + -- return true + --end + + if se_obj:community() == "zombied" then + return false + end + + --if precond_params.is_safe_job == nil then + -- precond_params.is_safe_job = xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) + --end + + --return precond_params.is_safe_job ~= false + return true + end + + } + table.insert(stalker_jobs.jobs, t) + + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..smartcover_name.."]\n".. + "active = animpoint@"..smartcover_name.."\n".. + + "[animpoint@"..smartcover_name.."]\n".. + "meet = meet@generic_animpoint\n".. + "cover_name = "..smartcover_name.."\n" + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr.."\n" + end + + if smart.safe_restr ~= nil and xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) then + job_ltx = job_ltx .. "invulnerable = {=npc_in_zone(smart.safe_restr)} true\n" + end + + if smart.base_on_actor_control ~= nil and + smart.base_on_actor_control.ignore_zone ~= nil + then + job_ltx = job_ltx .."combat_ignore_cond = {=npc_in_zone(smart.base_on_actor_control.ignore_zone)} true \n".. + "combat_ignore_keep_when_attacked = true \n" + end + + ltx = ltx..job_ltx + it = it + 1 + end + + + --'------------------------------------------------------------------------ + --' GUARD + --'------------------------------------------------------------------------ + -- ПроверÑем наличие чаÑовых в лагере. + local stalker_guard = {_prior = 25, jobs = {}} + it = 1 + while level.patrol_path_exists(gname.."_guard_"..it.."_walk") do + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local way_name = gname.."_guard_"..it.."_walk" + --local guard_timeout = tostring(math.random(180,300))*1000 + local guard_timeout = tostring(math.random(20,21))*1000 + + -- добавлÑем должноÑть + t = { _prior = 25, + job_id = { section = "logic@"..way_name, + job_type = "path_job" }, + _precondition_params = { }, + _precondition_function = function(se_obj, smart, precond_params) + if smart.smart_alarm_time == nil then + return true + end + + if smart.safe_restr == nil then + return true + end + + if precond_params.is_safe_job == nil then + precond_params.is_safe_job = xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) + end + + return precond_params.is_safe_job ~= false + end + } + table.insert(stalker_guard.jobs, t) + + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..way_name.."]\n".. + "active = walker@"..way_name.."\n".. + + "[walker@"..way_name.."]\n".. + "meet = meet@generic_lager\n".. + "path_walk = guard_"..it.."_walk\n".. + "path_look = guard_"..it.."_look\n" + + if smart.safe_restr ~= nil and xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) then + job_ltx = job_ltx .. "invulnerable = {=npc_in_zone(smart.safe_restr)} true\n" + end + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr.."\n" + end + + local job1_ltx ="[walker1@"..way_name.."]\n".. + "meet = meet@generic_lager\n".. + "path_walk = guard_"..it.."_walk\n".. + "path_look = guard_"..it.."_look\n".. + "def_state_standing = wait_na\n".. + "on_info = {!is_obj_on_job(logic@follower_"..way_name..":3)} walker@"..way_name.."\n".. + "on_info2 = {=distance_to_obj_on_job_le(logic@follower_"..way_name..":3)} remark@"..way_name.."\n" + + if smart.safe_restr ~= nil and xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) then + job1_ltx = job1_ltx .. "invulnerable = {=npc_in_zone(smart.safe_restr)} true\n" + end + + if smart.def_restr ~= nil then + job1_ltx = job1_ltx .."out_restr = "..smart.def_restr.."\n" + end + + job1_ltx = job1_ltx .. "[remark@"..way_name.."]\n".. + "anim = wait_na\n".. + "target = logic@follower_"..way_name.."\n" + + if smart.def_restr ~= nil then + job1_ltx = job1_ltx .."out_restr = "..smart.def_restr.."\n" + end + + --' наÑтройки фоловера Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ гварда!!!!!!!!!!!!!!!!! + t = { _prior = 24, + job_id = { section = "logic@follower_"..way_name, + job_type = "path_job" }, + _precondition_params = { changing_job = "logic@"..way_name }, + _precondition_function = function(se_obj, smart, precond_params, npc_info) + return npc_info.need_job == precond_params.changing_job + end } + table.insert(stalker_guard.jobs, t) + + local follower_ltx = "[logic@follower_"..way_name.."]\n".. + "active = walker@follow_"..way_name.."\n".. + + "[walker@follow_"..way_name.."]\n".. + "meet = meet@generic_lager\n".. + "path_walk = guard_"..it.."_walk\n".. + "path_look = guard_"..it.."_look\n".. + "on_info = {=distance_to_obj_on_job_le(logic@"..way_name..":3)} remark@follower_"..way_name.."\n" + + if smart.def_restr ~= nil then + follower_ltx = follower_ltx .."out_restr = "..smart.def_restr.."\n" + end + + follower_ltx = follower_ltx .. "[remark@follower_"..way_name.."]\n".. + "anim = wait_na\n".. + "target = logic@"..way_name.."\n".. + "on_timer = 2000 | %=switch_to_desired_job%\n" + + if smart.def_restr ~= nil then + follower_ltx = follower_ltx .."out_restr = "..smart.def_restr.."\n" + end + + ltx = ltx..job_ltx..job1_ltx..follower_ltx + it = it + 1 + end + if it > 1 then table.insert(stalker_jobs.jobs, stalker_guard) end + + + + + + + + --'------------------------------------------------------------------------ + --' SNIPER + --'------------------------------------------------------------------------ + -- ПроверÑем наличие Ñнайперов в лагере. + local stalker_def_sniper = {_prior = 30, jobs = {}} + it = 1 + while level.patrol_path_exists(gname.."_sniper_"..it.."_walk") do + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local way_name = gname.."_sniper_"..it.."_walk" + local ptr = patrol(way_name) + local wp_prop = utils.parse_waypoint_data(way_name, ptr:flags(0), ptr:name(0)) + local state = "hide" + + if wp_prop.state ~= nil then + if wp_prop.state == "stand" then + state = "threat" + end + end + -- добавлÑем должноÑть + t = { _prior = 30, + job_id = { section = "logic@"..way_name, + job_type = "path_job" }, + _precondition_params = { way_name = way_name }, + _precondition_function = function(se_obj, smart, precond_params) + if se_obj:community() == "zombied" then + return false + end + + return combat_restrictor.accessible_job(se_obj, precond_params.way_name) + end + } + table.insert(stalker_def_sniper.jobs, t) + + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..way_name.."]\n".. + "active = camper@"..way_name.."\n".. + + "[camper@"..way_name.."]\n".. + "meet = meet@generic_lager\n".. + "path_walk = sniper_"..it.."_walk\n".. + "path_look = sniper_"..it.."_look\n".. + "sniper = true\n".. + "def_state_campering ="..state.."\n".. + "def_state_campering_fire ="..state.."_fire\n" + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr..","..combat_restrictor.get_job_restrictor(way_name).."\n" + end + + ltx = ltx..job_ltx + it = it + 1 + end + if it > 1 then table.insert(stalker_jobs.jobs, stalker_def_sniper) end + + + --'------------------------------------------------------------------------ + --' CAMPER + --'------------------------------------------------------------------------ + -- ПроверÑем возможноÑть Ñтать кемпером :-) + local stalker_def_camper = {_prior = 45, jobs = {}} + it = 1 + while level.patrol_path_exists(gname.."_camper_"..it.."_walk") do + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local way_name = gname.."_camper_"..it.."_walk" + local ptr = patrol(way_name) + local wp_prop = utils.parse_waypoint_data(way_name, ptr:flags(0), ptr:name(0)) + local state = "hide" + local radius = 0 + if wp_prop.state ~= nil then + if wp_prop.state == "stand" then + state = "threat" + end + end + if wp_prop.radius ~= nil then + radius = wp_prop.radius + end + -- добавлÑем должноÑть + t = { _prior = 45, + job_id = { section = "logic@"..way_name, + job_type = "path_job" }, + _precondition_params = { way_name = way_name }, + _precondition_function = function(se_obj, smart, precond_params) + return combat_restrictor.accessible_job(se_obj, precond_params.way_name) + end + } + table.insert(stalker_def_camper.jobs, t) + + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..way_name.."]\n".. + "active = camper@"..way_name.."\n".. + + "[camper@"..way_name.."]\n".. + "meet = meet@generic_lager\n".. + "radius = "..tostring(radius).."\n".. + "path_walk = camper_"..it.."_walk\n".. + "def_state_moving = rush\n".. + "def_state_campering ="..state.."\n".. + "def_state_campering_fire ="..state.."_fire\n" + + if level.patrol_path_exists(gname.."_camper_"..it.."_look") then + job_ltx = job_ltx.."path_look = camper_"..it.."_look\n" + end + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr..","..combat_restrictor.get_job_restrictor(way_name).."\n" + end + + ltx = ltx..job_ltx + it = it + 1 + end + if it > 1 then table.insert(stalker_jobs.jobs, stalker_def_camper) end + + + table.insert(job_table, stalker_jobs) + + + + + + + + + + + + + + + +--'------------------------------------------------------------------------ +--' РÐБОТЫ МОÐСТРОВ +--'------------------------------------------------------------------------ + local monster_jobs = {_precondition_is_monster = true, _prior = 50, jobs = {}} + + --'------------------------------------------------------------------------ + --' MOB HOME + --'------------------------------------------------------------------------ + + for it = 1,20 do + -- Ðеобходимо вычитать количеÑтво работ из Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ пути. + local name = gname.."_home_"..it + local home_min_radius = 10 + local home_mid_radius = 20 + local home_max_radius = 70 + + t = { _prior = 40, + job_id = { section = "logic@"..name, + job_type = "point_job" } + } + table.insert(monster_jobs.jobs, t) + + -- добавлÑем опиÑание должноÑти в лтх. + local job_ltx = "[logic@"..name.."]\n".. + "active = mob_home@"..name.."\n".. + + "[mob_home@"..name.."]\n".. + "gulag_point = true\n".. + "home_min_radius = "..home_min_radius.."\n".. + "home_mid_radius = "..home_mid_radius.."\n".. + "home_max_radius = "..home_max_radius.."\n" + + if smart.def_restr ~= nil then + job_ltx = job_ltx .."out_restr = "..smart.def_restr.."\n" + end + + ltx = ltx..job_ltx + end + + + + table.insert(job_table, monster_jobs) + + + + +--'------------------------------------------------------------------------ +--' ЭКСКЛЮЗИВÐЫЕ РÐБОТЫ +--'------------------------------------------------------------------------ + local smart_ini = smart.ini + if smart_ini:section_exist(smart_terrain.SMART_TERRAIN_SECT) then + if smart_ini:section_exist("exclusive") then + local n = smart_ini:line_count("exclusive") + local id, value = "","" + for i=0,n-1 do + result, id, value = smart_ini:r_line("exclusive",i,"","") + add_exclusive_job("exclusive", id, smart_ini, job_table) + end + else + local num = 1 + while smart_ini:line_exist(smart_terrain.SMART_TERRAIN_SECT, "work"..num) do + add_exclusive_job(smart_terrain.SMART_TERRAIN_SECT, "work"..num, smart_ini, job_table) + num = num + 1 + end + end + end + + + return job_table +end + +local job_type_by_scheme = { + ["walker"] = "path_job", + ["camper"] = "path_job", + ["patrol"] = "path_job", + ["animpoint"] = "smartcover_job", + ["smartcover"] = "smartcover_job", + ["remark"] = "point_job", + ["cover"] = "point_job", + ["sleeper"] = "path_job", + ["mob_walker"] = "path_job", + ["mob_home"] = "path_job", + ["mob_jump"] = "point_job", + ["companion"] = "point_job" +} + +function add_exclusive_job(sect, work_field, smart_ini, job_table) + local work = utils.cfg_get_string(smart_ini, sect, work_field, nil, false, "") + if work == nil then return end + local ini_path = "scripts\\"..work -- IX-Ray + + local fs = getFS() + if fs:exist("$game_config$",ini_path) == nil then + abort("there is no configuration file [%s]", ini_path) + end + local job_ini_file = ini_file(ini_path) + local job_online = utils.cfg_get_string(job_ini_file, "logic@"..work_field, "job_online", db.actor ,false , "", nil) + + -- добавлÑем возможноÑть указать приоритет уникальной работы в Ñекции логики.(по дефолту её приоритет равен 45-ти) + local new_prior = utils.cfg_get_number(job_ini_file, "logic@"..work_field, "prior", nil , false, 45) + + -- ПроверÑем еÑть ли у работы поле suitable. ЕÑли еÑть, нам нужно добавить прекондишн + local job_suitable = utils.cfg_get_string(job_ini_file, "logic@"..work_field, "suitable", smart, false, "") + local is_monster = utils.cfg_get_bool(job_ini_file, "logic@"..work_field, "monster_job", smart, false, false) + + local active_section = utils.cfg_get_string(job_ini_file, "logic@"..work_field, "active", smart, false, "") + local scheme = utils.get_scheme_by_section(active_section) + local job_type = job_type_by_scheme[scheme] + if scheme == "mob_home" then + if utils.cfg_get_bool(job_ini_file, active_section, "gulag_point", smart, false, false) then + job_type = "point_job" + end + end + + if job_suitable == nil then + local t = { _prior = new_prior, + _precondition_is_monster = is_monster, + job_id = { section = "logic@"..work_field, + ini_path = ini_path, + online = job_online, + ini_file = job_ini_file, + job_type = job_type } + } + table.insert(job_table, t) + return + end + + local condlist = xr_logic.parse_condlist(smart, "logic@"..work_field, "suitable", job_suitable) + local t = { _prior = new_prior, + _precondition_is_monster = is_monster, + job_id = { section = "logic@"..work_field, + ini_path = ini_path, + ini_file = job_ini_file, + online = job_online, + job_type = job_type }, + _precondition_params = { condlist = condlist }, + _precondition_function = function(se_obj, smart, precond_params) + local result = xr_logic.pick_section_from_condlist(db.actor, se_obj, precond_params.condlist) + if result == "false" or result == nil then + return false + end + return true + end + } + table.insert(job_table, t) + + -- Затычка Ð´Ð»Ñ Ð¾Ñ„Ñ„Ð»Ð°Ð¹Ð½Ð°, когда невозможно проверить прекондишн + t = { _prior = -1, + _precondition_is_monster = is_monster, + job_id = { section = "logic@"..work_field, + ini_file = job_ini_file, + job_type = job_type } + } + + table.insert(job_table, t) +end + + +-------------------------------------------------------------------------- +-- Dynamic ltx +-------------------------------------------------------------------------- +function load_ltx(gname) + return ltx +end diff --git a/gamedata/scripts/ixray_global.script b/gamedata/scripts/ixray_global.script new file mode 100644 index 0000000..3ad1582 --- /dev/null +++ b/gamedata/scripts/ixray_global.script @@ -0,0 +1,49 @@ +math.randomseed(time_global()) + +_G.isMarshal = marshal ~= nil +_G.isLfs = lfs ~= nil + +_G.bit_and = bit.band +_G.bit_or = bit.bor +_G.bit_xor = bit.bxor +_G.bit_not = bit.bnot + +--// Some X-Ray block +_G.DebugLog = false + +_G.log = function (str) + if DebugLog then + SemiLog(str) + end + if DebuggerMode then + LuaPanda.printToVSCode(str,1,2) + end +end + +function register(object_factory) + class_registrator.cs_register(object_factory, "CCar", "se_car.se_car", "SCRPTCAR", "car_s") +end + +_G.convert_class_name = function(obj) + if obj then + local name = class_info(obj).name + + if name == "game_object" then + return "client" + else + return "server" + end + else + return "nil" + end +end + +_G.g_EnablePrintfXRScript = false + +-- иÑпользуетÑÑ Ð´Ð»Ñ Ð²Ñ‹ÑÐ²Ð»ÐµÐ½Ð¸Ñ Ñигнатур функций которые заложены в xr_conditions +_G.printf_xrscript = function(fmt, ...) + if g_EnablePrintfXRScript then + log(debug.traceback(1)) + printf(fmt, ...) + end +end diff --git a/gamedata/scripts/ixray_system/dynamic_callbacks.lua b/gamedata/scripts/ixray_system/dynamic_callbacks.lua new file mode 100644 index 0000000..7b733c1 --- /dev/null +++ b/gamedata/scripts/ixray_system/dynamic_callbacks.lua @@ -0,0 +1,47 @@ +local intercepts = +{ + save = {}, + load = {}, + update = {}, + + save_state = {}, + load_state = {} +} + +function RegisterScriptCallback(name, func_or_userdata) + if (func_or_userdata == nil) then + SemiLog("! func_or_userdata == nil") + callstack() + end + + if (name == nil) then + SemiLog("! name == nil") + callstack() + end + if (intercepts == nil) then + SemiLog("! intercepts == nil") + callstack() + end + + if (intercepts[name]) then + intercepts[name][func_or_userdata] = true + end +end + +function UnregisterScriptCallback(name, func_or_userdata) + if (intercepts[name]) then + intercepts[name][func_or_userdata] = nil + end +end + +function SendScriptCallback(name,...) + if (intercepts[name]) then + for func_or_userdata,v in pairs(intercepts[name]) do + if (type(func_or_userdata) == "function") then + func_or_userdata(...) + elseif (func_or_userdata[name]) then + func_or_userdata[name](func_or_userdata,...) + end + end + end +end \ No newline at end of file diff --git a/gamedata/scripts/ixray_system/global.lua b/gamedata/scripts/ixray_system/global.lua new file mode 100644 index 0000000..0cba33a --- /dev/null +++ b/gamedata/scripts/ixray_system/global.lua @@ -0,0 +1,34 @@ +--// General +jit.opt.start(2) + +string.gfind = string.gmatch +math.mod = math.fmod + +--// LuaPandas +DebuggerMode = false + +function debug_jit_off() + if DebuggerMode then + if jit then jit.off() end + end +end + +function debug_jit_on() + if DebuggerMode then + if jit then jit.on() end + end +end + +function debugger_attach() + if DebuggerMode then + debug_jit_off() + LuaPanda.reConnect() + debug_jit_on() + else + debug_jit_off() + SemiLog('LuaPanda starting...') + LuaPanda.start("127.0.0.1", 8818) + DebuggerMode = true + debug_jit_on() + end +end \ No newline at end of file diff --git a/gamedata/scripts/ixray_system/luapanda.lua b/gamedata/scripts/ixray_system/luapanda.lua new file mode 100644 index 0000000..5d1a871 --- /dev/null +++ b/gamedata/scripts/ixray_system/luapanda.lua @@ -0,0 +1,3626 @@ +-- Tencent is pleased to support the open source community by making LuaPanda available. +-- Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. +-- Licensed under the BSD 3-Clause License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at +-- https://opensource.org/licenses/BSD-3-Clause +-- Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +-- API: +-- LuaPanda.printToVSCode(logStr, printLevel, type) +-- æ‰“å°æ—¥å¿—到VSCode Output下 LuaPanda Debugger 中 +-- @printLevel: debug(0)/info(1)/error(2) 这里的日志等级需高于launch.json中é…置等级日志æ‰èƒ½è¾“出 (å¯é€‰å‚数,默认0) +-- @type(å¯é€‰å‚数,默认0): 0:VSCode output console 1:VSCode tip 2:VSCode debug console + +-- LuaPanda.BP() +-- 强制打断点,å¯ä»¥åœ¨å程中使用。建议使用以下写法: +-- local ret = LuaPanda and LuaPanda.BP and LuaPanda.BP(); +-- 如果æˆåŠŸåŠ å…¥æ–­ç‚¹ret返回true,å¦åˆ™æ˜¯nil + +-- LuaPanda.getInfo() +-- 返回获å–调试器信æ¯ã€‚包括版本å·ï¼Œæ˜¯å¦ä½¿ç”¨libåº“ï¼Œç³»ç»Ÿæ˜¯å¦æ”¯æŒloadstring(load方法)。返回值类型string, 推è在调试控制å°ä¸­ä½¿ç”¨ã€‚ + +-- LuaPanda.testBreakpoint() +-- 测试断点,用于分æžè·¯å¾„é”™è¯¯å¯¼è‡´æ–­ç‚¹æ— æ³•åœæ­¢çš„æƒ…况。测试方法是 +-- 1. launch.json ä¸­å¼€å¯ stopOnEntry, 或者在代ç ä¸­åŠ å…¥LuaPanda.BP()。 +-- 2. è¿è¡Œè°ƒè¯•器和 lua è¿›ç¨‹ï¼Œå½“åœæ­¢åœ¨ stopOnEntry 或者 LuaPanda.BP() 时在调试控制å°è¾“å…¥ LuaPanda.testBreakpoint() +-- 3. æ ¹æ®æç¤ºæ›´æ–°æ–­ç‚¹åŽå†æ¬¡è¾“å…¥ LuaPanda.testBreakpoint()。此时系统会输出一些æç¤ºï¼Œå¸®åŠ©ç”¨æˆ·åˆ†æžæ–­ç‚¹å¯èƒ½æ— æ³•åœæ­¢çš„原因。 + +-- LuaPanda.doctor() +-- 返回对当å‰çŽ¯å¢ƒçš„è¯Šæ–­ä¿¡æ¯ï¼Œæç¤ºå¯èƒ½å­˜åœ¨çš„问题。返回值类型string, 推è在调试控制å°ä¸­ä½¿ç”¨ã€‚ + +-- LuaPanda.getBreaks() +-- èŽ·å–æ–­ç‚¹ä¿¡æ¯ï¼ŒæŽ¨è在调试控制å°ä¸­ä½¿ç”¨ã€‚ + +-- LuaPanda.serializeTable(table) +-- 把tableåºåˆ—化为字符串,返回值类型是string。 + +-- LuaPanda.stopAttach() +-- æ–­å¼€è¿žæŽ¥ï¼Œåœæ­¢attach,本次被调试程åºè¿è¡Œè¿‡ç¨‹æ— æ³•冿¬¡è¿›è¡Œattach连接。 + +-- 其他说明: +-- å…³äºŽçœŸæœºè°ƒè¯•ï¼Œé¦–æ¬¡ä½¿ç”¨çœŸæœºè°ƒè¯•æ—¶è¦æ³¨æ„下方"用户设置项"中的é…ç½® +-- 1. 确定 attach 开关打开: openAttachMode = true; 这样å¯ä»¥é¿å…å…ˆå¯åŠ¨æ‰‹æœºapp之åŽå¯åŠ¨è°ƒè¯•å™¨æ— æ³•è¿žæŽ¥ã€‚ +-- 2. 把连接时间放长: connectTimeoutSec 设置为 0.5 或者 1。首次å°è¯•真机调试时这个值å¯ä»¥è®¾ç½®å¤§ä¸€ç‚¹ï¼Œä¹‹åŽå†æ ¹æ®è‡ªå·±çš„网络状况å‘下调整。 +-- 调试方法å¯ä»¥å‚考 github 文档 + +--用户设置项 +local openAttachMode = true; --是å¦å¼€å¯attach模å¼ã€‚attach模å¼å¼€å¯åŽå¯ä»¥åœ¨ä»»æ„时刻å¯åЍvscode连接调试。缺点是没有连接调试时也会略é™ä½Žlua执行效率(ä¼šä¸æ–­è¿›è¡Œattach请求) +local attachInterval = 1; --attach间隔时间(s) +local connectTimeoutSec = 0.005; --lua进程作为Clientæ—¶, 连接超时时间, å•ä½s. 时间过长等待attach时会造æˆå¡é¡¿ï¼Œæ—¶é—´è¿‡çŸ­å¯èƒ½æ— æ³•连接。建议值0.005 - 0.05 +local listeningTimeoutSec = 0.5; -- lua进程作为Serveræ—¶,连接超时时间, å•ä½s. 时间过长等待attach时会造æˆå¡é¡¿ï¼Œæ—¶é—´è¿‡çŸ­å¯èƒ½æ— æ³•连接。建议值0.1 - 1 +local userDotInRequire = true; --兼容require中使用 require(a.b) å’Œ require(a/b) 的形å¼å¼•用文件夹中的文件,默认无需修改 +local traversalUserData = false; --如果å¯ä»¥çš„è¯(å–决于userdata原表中的__pairs),展示userdata中的元素。 如果在调试器中展开userdata时有错误,请关闭此项. +local customGetSocketInstance = nil; --支æŒç”¨æˆ·å®žçŽ°ä¸€ä¸ªè‡ªå®šä¹‰è°ƒç”¨luasocket的函数,函数返回值必须是一个socket实例。例: function() return require("socket.core").tcp() end; +local consoleLogLevel = 2; --打å°åœ¨æŽ§åˆ¶å°(print)的日志等级 0 : all/ 1: info/ 2: error. +--用户设置项END + +local debuggerVer = "3.3.1"; --debuggerç‰ˆæœ¬å· +LuaPanda = {}; +local this = LuaPanda; +local tools = {}; --引用的开æºå·¥å…·ï¼ŒåŒ…括jsonè§£æžå’Œtable展开工具等 +this.tools = tools; +this.curStackId = 0; +--jsonå¤„ç† +local json; +--hook状æ€åˆ—表 +local hookState = { + DISCONNECT_HOOK = 0, --断开连接 + LITE_HOOK = 1, --全局无断点 + MID_HOOK = 2, --全局有断点,本文件无断点 + ALL_HOOK = 3, --本文件有断点 +}; +--è¿è¡Œçжæ€åˆ—表 +local runState = { + DISCONNECT = 0, --未连接 + WAIT_CMD = 1, --已连接,等待命令 + STOP_ON_ENTRY = 2, --åˆå§‹çŠ¶æ€ + RUN = 3, + STEPOVER = 4, + STEPIN = 5, + STEPOUT = 6, + STEPOVER_STOP = 7, + STEPIN_STOP = 8, + STEPOUT_STOP = 9, + HIT_BREAKPOINT = 10 +}; + +local TCPSplitChar = "|*|"; --jsonå议分隔符,请ä¸è¦ä¿®æ”¹ +local MAX_TIMEOUT_SEC = 3600 * 24; --网络最大超时等待时间 +--当å‰è¿è¡ŒçŠ¶æ€ +local currentRunState; +local currentHookState; +--æ–­ç‚¹ä¿¡æ¯ +local breaks = {}; --ä¿å­˜æ–­ç‚¹çš„æ•°ç»„ +this.breaks = breaks; --ä¾›hookLib调用 +local recCallbackId = ""; +--VSCode端传过æ¥çš„é…置,在VSCode端的launché…置,传过æ¥å¹¶èµ‹å€¼ +local luaFileExtension = ""; --vscode传过æ¥çš„脚本åŽç¼€ +local cwd = ""; --工作路径 +local DebuggerFileName = ""; --Debugger文件å(原始,未ç»path处ç†), å‡½æ•°ä¸­ä¼šè‡ªåŠ¨èŽ·å– +local DebuggerToolsName = ""; +local lastRunFunction = {}; --ä¸Šä¸€ä¸ªæ‰§è¡Œè¿‡çš„å‡½æ•°ã€‚åœ¨æœ‰äº›å¤æ‚场景下(find,getcomponent)一行会挺两次 +local currentCallStack = {}; --获å–当å‰è°ƒç”¨å †æ ˆä¿¡æ¯ +local hitBP = false; --BP()中的强制断点命中标记 +local TempFilePath_luaString = ""; --VSCode端é…置的临时文件存放路径 +local recordHost; --记录连接端IP +local recordPort; --记录连接端å£å· +local sock; --lua socket 文件æè¿°ç¬¦ +local server; --server æè¿°ç¬¦ +local OSType; --VSCode识别出的系统类型,也å¯ä»¥è‡ªè¡Œè®¾ç½®ã€‚Windows_NT | Linux | Darwin +local clibPath; --chook库在VScode端的路径,也å¯è‡ªè¡Œè®¾ç½®ã€‚ +local hookLib; --chook库的引用实例 +local adapterVer; --VScodeä¼ æ¥çš„adapterç‰ˆæœ¬å· +local truncatedOPath; --VScode中用户设置的用于截断opath路径的标志,注æ„这里å¯ä»¥æŽ¥å—lua魔法字符 +local distinguishSameNameFile = false; --是å¦åŒºåˆ†luaåŒå文件中的断点,在VScode launch.json 中 distinguishSameNameFile 控制 +--æ ‡è®°ä½ +local logLevel = 1; --日志等级all/info/error. 此设置对应的是VSCode端设置的日志等级. +local variableRefIdx = 1; --å˜é‡ç´¢å¼• +local variableRefTab = {}; --å˜é‡è®°å½•table +local lastRunFilePath = ""; --æœ€åŽæ‰§è¡Œçš„æ–‡ä»¶è·¯å¾„ +local pathCaseSensitivity = true; --路径是å¦å‘大å°å†™æ•感,这个选项接收VScode设置,请勿在此处更改 +local recvMsgQueue = {}; --接收的消æ¯é˜Ÿåˆ— +local coroutinePool = setmetatable({}, {__mode = "v"}); --ä¿å­˜ç”¨æˆ·å程的队列 +local winDiskSymbolUpper = false;--设置win下盘符的大å°å†™ã€‚以此确ä¿ä»ŽVSCode中传入的断点路径,cwd和从lua虚拟机获得的文件路径盘符大å°å†™ä¸€è‡´ +local isNeedB64EncodeStr = false;-- 记录是å¦ä½¿ç”¨base64ç¼–ç å­—符串 +local loadclibErrReason = 'launch.json文件的é…置项useCHook被设置为false.'; +local OSTypeErrTip = ""; +local pathErrTip = "" +local winDiskSymbolTip = ""; +local isAbsolutePath = false; +local stopOnEntry; --用户在VSCodeç«¯è®¾ç½®çš„æ˜¯å¦æ‰“å¼€stopOnEntry +local userSetUseClib; --用户在VSCodeç«¯è®¾ç½®çš„æ˜¯å¦æ˜¯ç”¨clib库 +local autoPathMode = false; +local autoExt; --调试器å¯åŠ¨æ—¶è‡ªåŠ¨èŽ·å–到的åŽç¼€, 用于检测lua虚拟机返回的路径是å¦å¸¦æœ‰æ–‡ä»¶åŽç¼€ã€‚ä»–å¯ä»¥æ˜¯ç©ºå€¼æˆ–者".lua"ç­‰ +local luaProcessAsServer; +local testBreakpointFlag = false; -- 测试断点的标志ä½ã€‚ç»“åˆ LuaPanda.testBreakpoint() æµ‹è¯•æ–­ç‚¹æ— æ³•åœæ­¢çš„原因 +--StepæŽ§åˆ¶æ ‡è®°ä½ +local stepOverCounter = 0; --STEPOVER over计数器 +local stepOutCounter = 0; --STEPOVER out计数器 +local HOOK_LEVEL = 3; --调用栈åç§»é‡ï¼Œä½¿ç”¨clib时为3,lua中ä¸å†ä½¿ç”¨æ­¤å˜é‡ï¼Œè€Œæ˜¯é€šè¿‡å‡½æ•°getSpecificFunctionStackLevelèŽ·å– +local isUseLoadstring = 0; +local debugger_loadString; +--临时å˜é‡ +local recordBreakPointPath; --记录最åŽä¸€ä¸ª[å¯èƒ½å‘½ä¸­]的断点,用于getInfo以åŠdoctor的断点测试 +local coroutineCreate; --用æ¥è®°å½•lua原始的coroutine.create函数 +local stopConnectTime = 0; --用æ¥ä¸´æ—¶è®°å½•stop断开连接的时间 +local isInMainThread; +local receiveMsgTimer = 0; +local isUserSetClibPath = false; --用户是å¦åœ¨æœ¬æ–‡ä»¶ä¸­è‡ªè®¾äº†clib路径 +local hitBpTwiceCheck; -- 命中断点的Vscode校验结果,默认true (true是命中,false是未命中) +local formatPathCache = {}; -- getinfo -> format +function this.formatPathCache() return formatPathCache; end +local fakeBreakPointCache = {}; --其中用 路径-{行å·åˆ—表} å½¢å¼ä¿å­˜é”™è¯¯å‘½ä¸­ä¿¡æ¯ +function this.fakeBreakPointCache() return fakeBreakPointCache; end +--5.1/5.3兼容 +if _VERSION == "Lua 5.1" then + debugger_loadString = loadstring; +else + debugger_loadString = load; +end + +--用户在控制å°è¾“入信æ¯çš„环境å˜é‡ +local env = setmetatable({ }, { + __index = function( _ , varName ) + local ret = this.getWatchedVariable( varName, _G.LuaPanda.curStackId , false); + return ret; + end, + + __newindex = function( _ , varName, newValue ) + this.setVariableValue( varName, _G.LuaPanda.curStackId, newValue); + end +}); + +----------------------------------------------------------------------------- +-- æµç¨‹ +----------------------------------------------------------------------------- + +---this.bindServer 当lua进程作为Server时,server绑定函数 +--- server 在bind时创建, 连接æˆåŠŸåŽå…³é—­listen , disconnect时置空。reconnect时会查询server,没有的è¯é‡æ–°ç»‘定,如果已存在直接accept +function this.bindServer(host, port) + server = sock + server:settimeout(listeningTimeoutSec); + assert(server:bind(host, port)); + server:setoption("reuseaddr", true); --防止已连接状æ€ä¸‹æ–°çš„连接进入,ä¸å†reuse + assert(server:listen(0)); +end + +-- 以lua作为æœåŠ¡ç«¯çš„å½¢å¼å¯åŠ¨è°ƒè¯•å™¨ +-- @host 绑定ip , 默认 0.0.0.0 +-- @port 绑定port, 默认 8818 +function this.startServer(host, port) + host = tostring(host or "0.0.0.0") ; + port = tonumber(port) or 8818; + luaProcessAsServer = true; + this.printToConsole("Debugger start as SERVER. bind host:" .. host .. " port:".. tostring(port), 1); + if sock ~= nil then + this.printToConsole("[Warning] 调试器已ç»å¯åŠ¨ï¼Œè¯·ä¸è¦å†æ¬¡è°ƒç”¨start()" , 1); + return; + end + + --å°è¯•åˆæ¬¡è¿žæŽ¥ + this.changeRunState(runState.DISCONNECT); + if not this.reGetSock() then + this.printToConsole("[Error] LuaPanda debugger start success , but get Socket fail , please install luasocket!", 2); + return; + end + recordHost = host; + recordPort = port; + + this.bindServer(recordHost, recordPort); + local connectSuccess = server:accept(); + sock = connectSuccess; + + if connectSuccess then + this.printToConsole("First connect success!"); + this.connectSuccess(); + else + this.printToConsole("First connect failed!"); + this.changeHookState(hookState.DISCONNECT_HOOK); + end +end + +-- å¯åŠ¨è°ƒè¯•å™¨ +-- @host adapter端ip, 默认127.0.0.1 +-- @port adapter端port ,默认8818 +function this.start(host, port) + host = tostring(host or "127.0.0.1") ; + port = tonumber(port) or 8818; + this.printToConsole("Debugger start as CLIENT. connect host:" .. host .. " port:".. tostring(port), 1); + if sock ~= nil then + this.printToConsole("[Warning] 调试器已ç»å¯åŠ¨ï¼Œè¯·ä¸è¦å†æ¬¡è°ƒç”¨start()" , 1); + return; + end + + --å°è¯•åˆæ¬¡è¿žæŽ¥ + this.changeRunState(runState.DISCONNECT); + if not this.reGetSock() then + this.printToConsole("[Error] Start debugger but get Socket fail , please install luasocket!", 2); + return; + end + recordHost = host; + recordPort = port; + + sock:settimeout(connectTimeoutSec); + local connectSuccess = this.sockConnect(sock); + + if connectSuccess then + this.printToConsole("First connect success!"); + this.connectSuccess(); + else + this.printToConsole("First connect failed!"); + this.changeHookState(hookState.DISCONNECT_HOOK); + end +end + +function this.sockConnect(sock) + if sock then + local connectSuccess, status = sock:connect(recordHost, recordPort); + if status == "connection refused" or (not connectSuccess and status == "already connected") then + this.reGetSock(); + end + + return connectSuccess + end + return nil; +end + +-- 连接æˆåŠŸï¼Œå¼€å§‹åˆå§‹åŒ– +function this.connectSuccess() + if server then + server:close(); -- åœæ­¢listen + end + + this.changeRunState(runState.WAIT_CMD); + this.printToConsole("connectSuccess", 1); + --设置åˆå§‹çŠ¶æ€ + local ret = this.debugger_wait_msg(); + + --获å–debugger文件路径 + if DebuggerFileName == "" then + local info = debug.getinfo(1, "S") + for k,v in pairs(info) do + if k == "source" then + DebuggerFileName = tostring(v); + -- 从代ç ä¸­åŽ»åŽç¼€ + autoExt = DebuggerFileName:gsub('.*[Ll][Uu][Aa][Pp][Aa][Nn][Dd][Aa]', ''); + + if hookLib ~= nil then + hookLib.sync_debugger_path(DebuggerFileName); + end + end + end + end + if DebuggerToolsName == "" then + DebuggerToolsName = tools.getFileSource(); + if hookLib ~= nil then + hookLib.sync_tools_path(DebuggerToolsName); + end + end + + if ret == false then + this.printToVSCode("[debugger error]åˆå§‹åŒ–未完æˆ, 建立连接但接收åˆå§‹åŒ–消æ¯å¤±è´¥ã€‚请更æ¢ç«¯å£é‡è¯•", 2); + return; + end + this.printToVSCode("debugger init success", 1); + + this.changeHookState(hookState.ALL_HOOK); + if hookLib == nil then + --å程调试 + this.changeCoroutinesHookState(); + end + +end + +--é‡ç½®æ•°æ® +function this.clearData() + OSType = nil; + clibPath = nil; + -- reset breaks + breaks = {}; + formatPathCache = {}; + fakeBreakPointCache = {}; + this.breaks = breaks; + if hookLib ~= nil then + hookLib.sync_breakpoints(); --æ¸…ç©ºæ–­ç‚¹ä¿¡æ¯ + hookLib.clear_pathcache(); --清空路径缓存 + end +end + +-- æœ¬æ¬¡è¿žæŽ¥è¿‡ç¨‹ä¸­åœæ­¢attach ,以æé«˜è¿è¡Œæ•ˆçއ +function this.stopAttach() + openAttachMode = false; + this.printToConsole("Debugger stopAttach", 1); + this.clearData() + this.changeHookState( hookState.DISCONNECT_HOOK ); + stopConnectTime = os.time(); + this.changeRunState(runState.DISCONNECT); + if sock ~= nil then + sock:close(); + if luaProcessAsServer and server then server = nil; end; + end +end + +--断开连接 +function this.disconnect() + this.printToConsole("Debugger disconnect", 1); + this.clearData() + this.changeHookState( hookState.DISCONNECT_HOOK ); + stopConnectTime = os.time(); + this.changeRunState(runState.DISCONNECT); + + if sock ~= nil then + sock:close(); + sock = nil; + server = nil; + end + + if recordHost == nil or recordPort == nil then + --异常情况处ç†, 在调用LuaPanda.start()å‰é¦–先调用了LuaPanda.disconnect() + this.printToConsole("[Warning] User call LuaPanda.disconnect() before set debug ip & port, please call LuaPanda.start() first!", 2); + return; + end + + this.reGetSock(); +end + +function this.replaceCoroutineFuncs() + if hookLib == nil then + if coroutineCreate == nil and type(coroutine.create) == "function" then + this.printToConsole("change coroutine.create"); + coroutineCreate = coroutine.create; + coroutine.create = function(...) + local co = coroutineCreate(...) + table.insert(coroutinePool, co); + --è¿è¡Œçжæ€ä¸‹ï¼Œåˆ›å»ºå程å³å¯åЍhook + this.changeCoroutineHookState(co, currentHookState); + return co; + end + end + end +end + +----------------------------------------------------------------------------- +-- 调试器通用方法 +----------------------------------------------------------------------------- +-- è¿”å›žæ–­ç‚¹ä¿¡æ¯ +function this.getBreaks() + return breaks; +end + +---testBreakpoint 测试断点 +function this.testBreakpoint() + if recordBreakPointPath and recordBreakPointPath ~= "" then + -- testBreakpointFlag = false; + return this.breakpointTestInfo(); + else + local strTable = {}; + strTable[#strTable + 1] = "正在准备进行断点测试,请按照如下步骤æ“作\n" + strTable[#strTable + 1] = "1. 请[删除]当å‰é¡¹ç›®ä¸­æ‰€æœ‰æ–­ç‚¹;\n" + strTable[#strTable + 1] = "2. 在当å‰åœæ­¢è¡Œæ‰“一个断点;\n" + strTable[#strTable + 1] = "3. 冿¬¡è¿è¡Œ 'LuaPanda.testBreakpoint()'" + testBreakpointFlag = true; + + return table.concat(strTable); + end +end + +-- è¿”å›žè·¯å¾„ç›¸å…³ä¿¡æ¯ +-- cwd:é…置的工程路径 | info["source"]:通过 debug.getinfo 获得执行文件的路径 | format:格å¼åŒ–åŽçš„æ–‡ä»¶è·¯å¾„ +function this.breakpointTestInfo() + local ly = this.getSpecificFunctionStackLevel(lastRunFunction.func); + if type(ly) ~= "number" then + ly = 2; + end + local runSource = lastRunFunction["source"]; + if runSource == nil and hookLib ~= nil then + runSource = this.getPath(tostring(hookLib.get_last_source())); + end + local info = debug.getinfo(ly, "S"); + local NormalizedPath = this.formatOpath(info["source"]); + NormalizedPath = this.truncatedPath(NormalizedPath, truncatedOPath); + + local strTable = {} + local FormatedPath = tostring(runSource); + strTable[#strTable + 1] = "\n- BreakPoint Test:" + strTable[#strTable + 1] = "\nUser set lua extension: ." .. tostring(luaFileExtension); + strTable[#strTable + 1] = "\nAuto get lua extension: " .. tostring(autoExt); + if truncatedOPath and truncatedOPath ~= '' then + strTable[#strTable + 1] = "\nUser set truncatedOPath: " .. truncatedOPath; + end + strTable[#strTable + 1] = "\nGetInfo: ".. info["source"]; + strTable[#strTable + 1] = "\nNormalized: " .. NormalizedPath; + strTable[#strTable + 1] = "\nFormated: " .. FormatedPath; + if recordBreakPointPath and recordBreakPointPath ~= "" then + strTable[#strTable + 1] = "\nBreakpoint: " .. recordBreakPointPath; + end + + if not autoPathMode then + if isAbsolutePath then + strTable[#strTable + 1] = "\n说明:从lua虚拟机获å–到的是ç»å¯¹è·¯å¾„,Formated使用GetInfo路径。" .. winDiskSymbolTip; + else + strTable[#strTable + 1] = "\n说明:从lua虚拟机获å–到的路径(GetInfo)是相对路径,调试器è¿è¡Œä¾èµ–çš„ç»å¯¹è·¯å¾„(Formated)æ˜¯æ¥æºäºŽcwd+GetInfo拼接。如Formated路径错误请å°è¯•调整cwd或改å˜VSCode打开文件夹的ä½ç½®ã€‚也å¯ä»¥åœ¨Formated对应的文件下打一个断点,调整直到Formatedå’ŒBreaks Info中断点路径完全一致。" .. winDiskSymbolTip; + end + else + strTable[#strTable + 1] = "\n说明:自动路径(autoPathMode)模å¼å·²å¼€å¯ã€‚"; + if recordBreakPointPath and recordBreakPointPath ~= "" then + if string.find(recordBreakPointPath , FormatedPath, (-1) * string.len(FormatedPath) , true) then + -- 短路径断点命中 + if distinguishSameNameFile == false then + strTable[#strTable + 1] = "æœ¬æ–‡ä»¶ä¸­æ–­ç‚¹å¯æ­£å¸¸å‘½ä¸­ã€‚" + strTable[#strTable + 1] = "åŒå文件中的断点识别(distinguishSameNameFile) 未开å¯ï¼Œè¯·ç¡®ä¿ VSCode 断点ä¸è¦å­˜åœ¨äºŽåŒå lua 文件中。"; + else + strTable[#strTable + 1] = "åŒå文件中的断点识别(distinguishSameNameFile) 已开å¯ã€‚"; + if string.find(recordBreakPointPath, NormalizedPath, 1, true) then + strTable[#strTable + 1] = "本文件中断点å¯è¢«æ­£å¸¸å‘½ä¸­" + else + strTable[#strTable + 1] = "断点å¯èƒ½æ— æ³•被命中,因为 lua 虚拟机中获得的路径 Normalized 䏿˜¯æ–­ç‚¹è·¯å¾„ Breakpoint çš„å­ä¸²ã€‚ 如有需è¦ï¼Œå¯ä»¥åœ¨ launch.json 中设置 truncatedOPath æ¥å޻除 Normalized 部分路径。" + end + end + else + strTable[#strTable + 1] = "断点未被命中,原因是 Formated 䏿˜¯ Breakpoint 路径的å­ä¸²ï¼Œæˆ–者 Formated å’Œ Breakpoint 文件åŽç¼€ä¸ä¸€è‡´" + end + else + strTable[#strTable + 1] = "如果è¦è¿›è¡Œæ–­ç‚¹æµ‹è¯•,请使用 LuaPanda.testBreakpoint()。" + end + end + return table.concat(strTable) +end + +--返回版本å·ç­‰é…ç½® +function this.getBaseInfo() + local strTable = {}; + local jitVer = ""; + if jit and jit.version then + jitVer = "," .. tostring(jit.version); + end + + strTable[#strTable + 1] = "Lua Ver:" .. _VERSION .. jitVer .." | Adapter Ver:" .. tostring(adapterVer) .. " | Debugger Ver:" .. tostring(debuggerVer); + local moreInfoStr = ""; + if hookLib ~= nil then + local clibVer, forluaVer = hookLib.sync_getLibVersion(); + local clibStr = forluaVer ~= nil and tostring(clibVer) .. " for " .. tostring(math.ceil(forluaVer)) or tostring(clibVer); + strTable[#strTable + 1] = " | hookLib Ver:" .. clibStr; + moreInfoStr = moreInfoStr .. "说明: 已加载 libpdebug 库."; + else + moreInfoStr = moreInfoStr .. "说明: 未能加载 libpdebug 库。原因请使用 LuaPanda.doctor() 查看"; + end + + local outputIsUseLoadstring = false + if type(isUseLoadstring) == "number" and isUseLoadstring == 1 then + outputIsUseLoadstring = true; + end + + strTable[#strTable + 1] = " | supportREPL:".. tostring(outputIsUseLoadstring); + strTable[#strTable + 1] = " | useBase64EncodeString:".. tostring(isNeedB64EncodeStr); + strTable[#strTable + 1] = " | codeEnv:" .. tostring(OSType); + strTable[#strTable + 1] = " | distinguishSameNameFile:" .. tostring(distinguishSameNameFile) .. '\n'; + + strTable[#strTable + 1] = moreInfoStr; + if OSTypeErrTip ~= nil and OSTypeErrTip ~= '' then + strTable[#strTable + 1] = '\n' ..OSTypeErrTip; + end + return table.concat(strTable); +end + +--自动诊断当å‰çŽ¯å¢ƒçš„é”™è¯¯ï¼Œå¹¶è¾“å‡ºä¿¡æ¯ +function this.doctor() + local strTable = {}; + if debuggerVer ~= adapterVer then + strTable[#strTable + 1] = "\n- 建议更新版本\nLuaPanda VSCodeæ’件版本是" .. adapterVer .. ", LuaPanda.lua文件版本是" .. debuggerVer .. "。建议检查并更新到最新版本。"; + strTable[#strTable + 1] = "\næ›´æ–°æ–¹å¼ : https://github.com/Tencent/LuaPanda/blob/master/Docs/Manual/update.md"; + strTable[#strTable + 1] = "\nRelease版本: https://github.com/Tencent/LuaPanda/releases"; + end + --plibdebug + if hookLib == nil then + strTable[#strTable + 1] = "\n\n- libpdebug 库没有加载\n"; + if userSetUseClib then + --用户å…许使用clibæ’ä»¶ + if isUserSetClibPath == true then + --用户自设了clibåœ°å€ + strTable[#strTable + 1] = "用户使用 LuaPanda.lua 中 clibPath å˜é‡æŒ‡å®šäº† plibdebug çš„ä½ç½®: " .. clibPath; + if this.tryRequireClib("libpdebug", clibPath) then + strTable[#strTable + 1] = "\n引用æˆåŠŸ"; + else + strTable[#strTable + 1] = "\n引用错误:" .. loadclibErrReason; + end + else + --使用默认clibåœ°å€ + local clibExt, platform; + if OSType == "Darwin" then clibExt = "/?.so;"; platform = "mac"; + elseif OSType == "Linux" then clibExt = "/?.so;"; platform = "linux"; + else clibExt = "/?.dll;"; platform = "win"; end + local lua_ver; + if _VERSION == "Lua 5.1" then + lua_ver = "501"; + elseif _VERSION == "Lua 5.4" then + lua_ver = "504"; + else + lua_ver = "503"; + end + local x86Path = clibPath .. platform .."/x86/".. lua_ver .. clibExt; + local x64Path = clibPath .. platform .."/x86_64/".. lua_ver .. clibExt; + local armPath = clibPath .. platform .."/arm_64/".. lua_ver .. clibExt; + + if platform == "mac" then + -- mac下先检测arm库 + strTable[#strTable + 1] = "å°è¯•引用arm库: ".. armPath; + if this.tryRequireClib("libpdebug", armPath) then + strTable[#strTable + 1] = "\n引用æˆåŠŸ"; + return; + end + end + + strTable[#strTable + 1] = "å°è¯•引用x64库: ".. x64Path; + if this.tryRequireClib("libpdebug", x64Path) then + strTable[#strTable + 1] = "\n引用æˆåŠŸ"; + else + strTable[#strTable + 1] = "\n引用错误:" .. loadclibErrReason; + strTable[#strTable + 1] = "\nå°è¯•引用x86库: ".. x86Path; + if this.tryRequireClib("libpdebug", x86Path) then + strTable[#strTable + 1] = "\n引用æˆåŠŸ"; + else + strTable[#strTable + 1] = "\n引用错误:" .. loadclibErrReason; + end + end + end + else + strTable[#strTable + 1] = "原因是" .. loadclibErrReason; + end + end + + --path + --å°è¯•直接读当å‰getinfo指å‘çš„æ–‡ä»¶ï¼Œçœ‹èƒ½å¦æ‰¾åˆ°ã€‚如果能,æç¤ºæ­£ç¡®ï¼Œå¦‚果找ä¸åˆ°ï¼Œç»™å‡ºæç¤ºï¼Œå»ºè®®çŽ©å®¶åœ¨è¿™ä¸ªæ–‡ä»¶ä¸­æ‰“ä¸€ä¸ªæ–­ç‚¹ + --æ£€æŸ¥æ–­ç‚¹ï¼Œæ–‡ä»¶å’Œå½“å‰æ–‡ä»¶çš„ä¸åŒï¼Œç»™å‡ºå»ºè®® + local runSource = lastRunFilePath; + if hookLib ~= nil then + runSource = this.getPath(tostring(hookLib.get_last_source())); + end + + -- 在精确路径模å¼ä¸‹çš„路径错误检测 + if not autoPathMode and runSource and runSource ~= "" then + -- 读文件 + local isFileExist = this.fileExists(runSource); + if not isFileExist then + strTable[#strTable + 1] = "\n\n- 路径存在问题\n"; + --è§£æžè·¯å¾„,得到文件å,到断点路径中查这个文件å + local pathArray = this.stringSplit(runSource, '/'); + --如果pathArray和断点能匹é…上 + local fileMatch= false; + for key, _ in pairs(this.getBreaks()) do + if string.find(key, pathArray[#pathArray], 1, true) then + --和断点匹é…了 + fileMatch = true; + -- retStr = retStr .. "\n请对比如下路径:\n"; + strTable[#strTable + 1] = this.breakpointTestInfo(); + strTable[#strTable + 1] = "\nfilepath: " .. key; + if isAbsolutePath then + strTable[#strTable + 1] = "\n说明:从lua虚拟机获å–到的是ç»å¯¹è·¯å¾„,format使用getinfo路径。"; + else + strTable[#strTable + 1] = "\n说明:从lua虚拟机获å–到的是相对路径,调试器è¿è¡Œä¾èµ–çš„ç»å¯¹è·¯å¾„(format)æ˜¯æ¥æºäºŽcwd+getinfo拼接。"; + end + strTable[#strTable + 1] = "\nfilepath是VSCode通过获å–到的文件正确路径 , 对比formatå’Œfilepath,调整launch.json中CWD,或改å˜VSCode打开文件夹的ä½ç½®ã€‚使formatå’Œfilepath一致å³å¯ã€‚\n如果formatå’Œfilepath路径仅大å°å†™ä¸ä¸€è‡´ï¼Œè®¾ç½®launch.json中 pathCaseSensitivity:false å¯å¿½ç•¥è·¯å¾„大å°å†™"; + end + end + + if fileMatch == false then + --æœªèƒ½å’Œæ–­ç‚¹åŒ¹é… + strTable[#strTable + 1] = "\n找ä¸åˆ°æ–‡ä»¶:" .. runSource .. ", è¯·æ£€æŸ¥è·¯å¾„æ˜¯å¦æ­£ç¡®ã€‚\n或者在VSCode文件" .. pathArray[#pathArray] .. "中打一个断点åŽï¼Œå†æ‰§è¡Œä¸€æ¬¡doctor命令,查看路径分æžç»“果。"; + end + end + end + + --æ—¥å¿—ç­‰çº§å¯¹æ€§èƒ½çš„å½±å“ + if logLevel < 1 or consoleLogLevel < 1 then + strTable[#strTable + 1] = "\n\n- 日志等级\n"; + if logLevel < 1 then + strTable[#strTable + 1] = "当剿—¥å¿—等级是" .. logLevel .. ", ä¼šäº§ç”Ÿå¤§é‡æ—¥å¿—,é™ä½Žè°ƒè¯•速度。建议调整launch.json中logLevel:1"; + end + if consoleLogLevel < 1 then + strTable[#strTable + 1] = "当å‰console日志等级是" .. consoleLogLevel .. ", 过低的日志等级会é™ä½Žè°ƒè¯•速度,建议调整LuaPanda.lua文件头部consoleLogLevel=2"; + end + end + + if #strTable == 0 then + strTable[#strTable + 1] = "未检测出问题"; + end + return table.concat(strTable); +end + +function this.fileExists(path) + local f=io.open(path,"r"); + if f~= nil then io.close(f) return true else return false end + end + +--返回一些信æ¯ï¼Œå¸®åŠ©ç”¨æˆ·å®šä½é—®é¢˜ +function this.getInfo() + --用户设置项 + local strTable = {}; + strTable[#strTable + 1] = "\n- Base Info: \n"; + strTable[#strTable + 1] = this.getBaseInfo(); + --å·²ç»åŠ è½½C库,x86/64 未能加载,原因 + strTable[#strTable + 1] = "\n\n- User Setting: \n"; + strTable[#strTable + 1] = "stopOnEntry:" .. tostring(stopOnEntry) .. ' | '; + -- strTable[#strTable + 1] = "luaFileExtension:" .. luaFileExtension .. ' | '; + strTable[#strTable + 1] = "logLevel:" .. logLevel .. ' | ' ; + strTable[#strTable + 1] = "consoleLogLevel:" .. consoleLogLevel .. ' | '; + strTable[#strTable + 1] = "pathCaseSensitivity:" .. tostring(pathCaseSensitivity) .. ' | '; + strTable[#strTable + 1] = "attachMode:".. tostring(openAttachMode).. ' | '; + strTable[#strTable + 1] = "autoPathMode:".. tostring(autoPathMode).. ' | '; + + if userSetUseClib then + strTable[#strTable + 1] = "useCHook:true"; + else + strTable[#strTable + 1] = "useCHook:false"; + end + + if logLevel == 0 or consoleLogLevel == 0 then + strTable[#strTable + 1] = "\n说明:æ—¥å¿—ç­‰çº§è¿‡ä½Žï¼Œä¼šå½±å“æ‰§è¡Œæ•ˆçŽ‡ã€‚è¯·è°ƒæ•´logLevelå’ŒconsoleLogLevel值 >= 1"; + end + + strTable[#strTable + 1] = "\n\n- Path Info: \n"; + strTable[#strTable + 1] = "clibPath: " .. tostring(clibPath) .. '\n'; + strTable[#strTable + 1] = "debugger: " .. DebuggerFileName .. " | " .. this.getPath(DebuggerFileName) .. '\n'; + strTable[#strTable + 1] = "cwd : " .. cwd .. '\n'; + strTable[#strTable + 1] = this.breakpointTestInfo(); + + if pathErrTip ~= nil and pathErrTip ~= '' then + strTable[#strTable + 1] = '\n' .. pathErrTip; + end + + strTable[#strTable + 1] = "\n\n- Breaks Info: \nUse 'LuaPanda.getBreaks()' to watch."; + return table.concat(strTable); +end + +--判断是å¦åœ¨å程中 +function this.isInMain() + return isInMainThread; +end + +--添加路径,å°è¯•引用库。完æˆåŽæŠŠcpath还原,返回引用结果true/false +-- @libName 库å +-- path libçš„cpath路径 +function this.tryRequireClib(libName , libPath) + this.printToVSCode("tryRequireClib search : [" .. libName .. "] in "..libPath); + local savedCpath = package.cpath; + package.cpath = package.cpath .. ';' .. libPath; + this.printToVSCode("package.cpath:" .. package.cpath); + local status, err = pcall(function() hookLib = require(libName) end); + if status then + if type(hookLib) == "table" and this.getTableMemberNum(hookLib) > 0 then + this.printToVSCode("tryRequireClib success : [" .. libName .. "] in "..libPath); + package.cpath = savedCpath; + return true; + else + loadclibErrReason = "tryRequireClib fail : require success, but member function num <= 0; [" .. libName .. "] in "..libPath; + this.printToVSCode(loadclibErrReason); + hookLib = nil; + package.cpath = savedCpath; + return false; + end + else + -- 此处考虑到tryRequireClib会被调用两次,日志级别设置为0,防止输出ä¸å¿…è¦çš„ä¿¡æ¯ã€‚ + loadclibErrReason = err; + this.printToVSCode("[Require clib error]: " .. err, 0); + end + package.cpath = savedCpath; + return false +end +------------------------字符串处ç†------------------------- +-- å€’åºæŸ¥æ‰¾å­—符串 a.b/c查找/ , 返回4 +-- @str 被查找的长串 +-- @subPattern 查找的å­ä¸², 也å¯ä»¥æ˜¯pattern +-- @plain plane text / pattern +-- @return 未找到目标串返回nil. å¦åˆ™è¿”å›žå€’åºæ‰¾åˆ°çš„字串ä½ç½® +function this.revFindString(str, subPattern, plain) + local revStr = string.reverse(str); + local _, idx = string.find(revStr, subPattern, 1, plain); + if idx == nil then return nil end; + return string.len(revStr) - idx + 1; +end + +-- ååºè£å‰ªå­—符串 如:print(subString("a.b/c", "/"))输出c +-- @return 未找到目标串返回nil. å¦åˆ™è¿”回被è£å‰ªåŽçš„字符串 +function this.revSubString(str, subStr, plain) + local idx = this.revFindString(str, subStr, plain) + if idx == nil then return nil end; + return string.sub(str, idx + 1, str.length) +end + +-- 把字符串按reps分割æˆå¹¶æ”¾å…¥table +-- @str 目标串 +-- @reps 分割符。注æ„这个分隔符是一个pattern +function this.stringSplit( str, separator ) + local retStrTable = {} + string.gsub(str, '[^' .. separator ..']+', function ( word ) + table.insert(retStrTable, word) + end) + return retStrTable; +end + +-- ä¿å­˜CallbackId(通信åºåˆ—å·) +function this.setCallbackId( id ) + if id ~= nil and id ~= "0" then + recCallbackId = tostring(id); + end +end + +-- 读å–CallbackId(通信åºåˆ—å·)。读å–åŽè®°å½•值将被置空 +function this.getCallbackId() + if recCallbackId == nil then + recCallbackId = "0"; + end + local id = recCallbackId; + recCallbackId = "0"; + return id; +end + +-- reference from https://www.lua.org/pil/20.1.html +function this.trim (s) + return (string.gsub(s, "^%s*(.-)%s*$", "%1")) +end + +--返回table中æˆå‘˜æ•°é‡(æ•°å­—keyå’Œéžæ•°å­—key之和) +-- @t 目标table +-- @return å…ƒç´ æ•°é‡ +function this.getTableMemberNum(t) + local retNum = 0; + if type(t) ~= "table" then + this.printToVSCode("[debugger Error] getTableMemberNum get "..tostring(type(t)), 2) + return retNum; + end + for k,v in pairs(t) do + retNum = retNum + 1; + end + return retNum; +end + +-- 生æˆä¸€ä¸ªæ¶ˆæ¯Table +function this.getMsgTable(cmd ,callbackId) + callbackId = callbackId or 0; + local msgTable = {}; + msgTable["cmd"] = cmd; + msgTable["callbackId"] = callbackId; + msgTable["info"] = {}; + return msgTable; +end + +function this.serializeTable(tab, name) + local sTable = tools.serializeTable(tab, name); + return sTable; +end +------------------------日志打å°ç›¸å…³------------------------- +-- 把日志打å°åœ¨VSCode端 +-- @str: 日志内容 +-- @printLevel: all(0)/info(1)/error(2) +-- @type: 0:vscode console 1:vscode tip +function this.printToVSCode(str, printLevel, type) + type = type or 0; + printLevel = printLevel or 0; + if currentRunState == runState.DISCONNECT or logLevel > printLevel then + return; + end + + local sendTab = {}; + sendTab["callbackId"] = "0"; + if type == 0 then + sendTab["cmd"] = "output"; + elseif type == 1 then + sendTab["cmd"] = "tip"; + else -- type == 2 + sendTab["cmd"] = "debug_console"; + end + sendTab["info"] = {}; + sendTab["info"]["logInfo"] = tostring(str); + this.sendMsg(sendTab); +end + +-- 把日志打å°åœ¨æŽ§åˆ¶å° +-- @str: 日志内容 +-- @printLevel: all(0)/info(1)/error(2) +function this.printToConsole(str, printLevel) + printLevel = printLevel or 0; + if consoleLogLevel > printLevel then + return; + end + print("[LuaPanda] ".. tostring(str)); +end + +----------------------------------------------------------------------------- +-- æå‡å…¼å®¹æ€§æ–¹æ³• +----------------------------------------------------------------------------- +--生æˆå¹³å°æ— å…³çš„路径。 +--return:nil(error)/path +function this.genUnifiedPath(path) + if path == "" or path == nil then + return ""; + end + --大å°å†™ä¸æ•感时,路径全部转为å°å†™ + if pathCaseSensitivity == false then + path = string.lower(path); + end + --ç»Ÿä¸€è·¯å¾„å…¨éƒ¨æ›¿æ¢æˆ/ + path = string.gsub(path, [[\]], "/"); + --å¤„ç† /../ /./ + local pathTab = this.stringSplit(path, '/'); + local newPathTab = {}; + for k, v in ipairs(pathTab) do + if v == '.' then + --continue + elseif v == ".." and #newPathTab >= 1 and newPathTab[#newPathTab]:sub(2,2) ~= ':' then + --newPathTab有元素,最åŽä¸€é¡¹ä¸æ˜¯X: + table.remove(newPathTab); + else + table.insert(newPathTab, v); + end + end + --釿–°æ‹¼åˆåŽå¦‚果是macè·¯å¾„ç¬¬ä¸€ä½æ˜¯/ + local newpath = table.concat(newPathTab, '/'); + if path:sub(1,1) == '/' then + newpath = '/'.. newpath; + end + + --win下按照winDiskSymbolUpperçš„è®¾ç½®ä¿®æ”¹ç›˜ç¬¦å¤§å° + if "Windows_NT" == OSType then + if winDiskSymbolUpper then + newpath = newpath:gsub("^%a:", string.upper); + winDiskSymbolTip = "路径中Windows盘符已转为大写。" + else + newpath = newpath:gsub("^%a:", string.lower); + winDiskSymbolTip = "路径中Windows盘符已转为å°å†™ã€‚" + end + end + + return newpath; +end + +function this.getCacheFormatPath(source) + if source == nil then return formatPathCache end; + return formatPathCache[source]; +end + +function this.setCacheFormatPath(source, dest) + formatPathCache[source] = dest; +end + +-- å¤„ç† opath(info.source) 的函数, 生æˆä¸€ä¸ªè§„范的路径函数(å’ŒVScode端checkRightPath逻辑完全一致) +function this.formatOpath(opath) + -- delete @ + if opath:sub(1,1) == '@' then + opath = opath:sub(2); + end + -- change ./ to / + if opath:sub(1,2) == './' then + opath = opath:sub(2); + end + + opath = this.genUnifiedPath(opath); + + -- lower + if pathCaseSensitivity == false then + opath = string.lower(opath); + end + --把filename去除åŽç¼€ + if autoExt == nil or autoExt == '' then + -- 在虚拟机返回路径没有åŽç¼€çš„æƒ…况下,用户必须自设åŽç¼€ + -- 确定filePath中最åŽä¸€ä¸ª.xxx ä¸ç­‰äºŽç”¨æˆ·é…置的åŽç¼€, 则把所有的. 转为 / + if not opath:find(luaFileExtension , (-1) * luaFileExtension:len(), true) then + -- getinfo 路径没有åŽç¼€ï¼ŒæŠŠ . å…¨éƒ¨æ›¿æ¢æˆ / ,我们ä¸å…许用户在文件(或文件夹)å称中出现"." , 因为无法区分 + opath = string.gsub(opath, "%.", "/"); + else + -- 有åŽç¼€ï¼Œé‚£ä¹ˆæŠŠé™¤åŽç¼€å¤–的部分中的. 转为 / + opath = this.changePotToSep(opath, luaFileExtension); + end + else + -- 虚拟机路径有åŽç¼€ + opath = this.changePotToSep(opath, autoExt); + end + + -- æˆªå– è·¯å¾„+文件å (ä¸å¸¦åŽç¼€) + -- change pot to / + -- opath = string.gsub(opath, "%.", "/"); + return opath; +end + +----------------------------------------------------------------------------- +-- 内存相关 +----------------------------------------------------------------------------- +function this.sendLuaMemory() + local luaMem = collectgarbage("count"); + local sendTab = {}; + sendTab["callbackId"] = "0"; + sendTab["cmd"] = "refreshLuaMemory"; + sendTab["info"] = {}; + sendTab["info"]["memInfo"] = tostring(luaMem); + this.sendMsg(sendTab); +end + +----------------------------------------------------------------------------- +-- 网络相关方法 +----------------------------------------------------------------------------- +-- 刷新socket +-- @return true/false 刷新æˆåŠŸ/失败 +function this.reGetSock() + if server then return true end + + if sock ~= nil then + pcall(function() sock:close() end); + end + + --call slua-unreal luasocket + sock = lua_extension and lua_extension.luasocket and lua_extension.luasocket().tcp(); + if sock == nil then + --call normal luasocket + if pcall(function() sock = require("socket.core").tcp(); end) then + this.printToConsole("reGetSock success"); + else + --call custom function to get socket + if customGetSocketInstance and pcall( function() sock = customGetSocketInstance(); end ) then + this.printToConsole("reGetSock custom success"); + else + this.printToConsole("[Error] reGetSock fail", 2); + return false; + end + end + else + --set ue4 luasocket + this.printToConsole("reGetSock ue4 success"); + end + return true; +end + +-- 定时(以函数return为时机) 进行attach连接 +-- 返回值 hook å¯ä»¥ç»§ç»­å¾€ä¸‹èµ°æ—¶è¿”回1 ,无需继续时返回0 +function this.reConnect() + if currentHookState == hookState.DISCONNECT_HOOK then + if os.time() - stopConnectTime < attachInterval then + -- 未到é‡è¿žæ—¶é—´ + -- this.printToConsole("Reconnect time less than 1s"); + -- this.printToConsole("os.time:".. os.time() .. " | stopConnectTime:" ..stopConnectTime); + return 0; + end + this.printToConsole("Reconnect !"); + if sock == nil then + this.reGetSock(); + end + + local connectSuccess; + if luaProcessAsServer == true and currentRunState == runState.DISCONNECT then + -- 在 Server 模å¼ä¸‹ï¼Œä»¥åŠå½“å‰å¤„于未连接状æ€ä¸‹ï¼Œæ‰å°è¯•accept新链接。如果ä¸åˆ¤æ–­å¯èƒ½ä¼šå‡ºçŽ°å¤šæ¬¡è¿žæŽ¥ï¼Œå¯¼è‡´sock被覆盖 + if server == nil then + this.bindServer(recordHost, recordPort); + end + + sock = server:accept(); + connectSuccess = sock; + else + sock:settimeout(connectTimeoutSec); + connectSuccess = this.sockConnect(sock); + end + + if connectSuccess then + this.printToConsole("reconnect success"); + this.connectSuccess(); + return 1; + else + this.printToConsole("reconnect failed" ); + stopConnectTime = os.time(); + return 0; + end + end + -- ä¸å¿…é‡è¿žï¼Œæ­£å¸¸ç»§ç»­è¿è¡Œ + return 1; +end + +-- å‘adapter呿¶ˆæ¯ +-- @sendTab 消æ¯ä½“table +function this.sendMsg( sendTab ) + if isNeedB64EncodeStr and sendTab["info"] ~= nil then + for _, v in ipairs(sendTab["info"]) do + if v["type"] == "string" then + v["value"] = tools.base64encode(v["value"]) + end + end + end + + local sendStr = json.encode(sendTab); + if currentRunState == runState.DISCONNECT then + this.printToConsole("[debugger error] disconnect but want sendMsg:" .. sendStr, 2); + this.disconnect(); + return; + end + + local succ,err; + if pcall(function() succ,err = sock:send(sendStr..TCPSplitChar.."\n"); end) then + if succ == nil then + if err == "closed" then + this.disconnect(); + end + end + end +end + +-- å¤„ç† æ”¶åˆ°çš„æ¶ˆæ¯ +-- @dataStr 接收的消æ¯json +function this.dataProcess( dataStr ) + this.printToVSCode("debugger get:"..dataStr); + local dataTable = json.decode(dataStr); + if dataTable == nil then + this.printToVSCode("[error] Json is error", 2); + return; + end + + if dataTable.callbackId ~= "0" then + this.setCallbackId(dataTable.callbackId); + end + + if dataTable.cmd == "continue" then + local info = dataTable.info; + if info.isFakeHit == "true" and info.fakeBKPath and info.fakeBKLine then + -- 设置校验结果标志ä½ï¼Œä»¥ä¾¿hookæµç¨‹çŸ¥é“结果 + hitBpTwiceCheck = false; + if hookLib ~= nil and hookLib.set_bp_twice_check_res then + -- æŠŠç»“æžœåŒæ­¥ç»™C + hookLib.set_bp_twice_check_res(0); + end + -- æŠŠå‡æ–­ç‚¹çš„ä¿¡æ¯åŠ å…¥cache + if nil == fakeBreakPointCache[info.fakeBKPath] then + fakeBreakPointCache[info.fakeBKPath] = {}; + end + table.insert(fakeBreakPointCache[info.fakeBKPath] ,info.fakeBKLine); + else + this.changeRunState(runState.RUN); + end + local msgTab = this.getMsgTable("continue", this.getCallbackId()); + this.sendMsg(msgTab); + + elseif dataTable.cmd == "stopOnStep" then + this.changeRunState(runState.STEPOVER); + local msgTab = this.getMsgTable("stopOnStep", this.getCallbackId()); + this.sendMsg(msgTab); + this.changeHookState(hookState.ALL_HOOK); + + elseif dataTable.cmd == "stopOnStepIn" then + this.changeRunState(runState.STEPIN); + local msgTab = this.getMsgTable("stopOnStepIn", this.getCallbackId()); + this.sendMsg(msgTab); + this.changeHookState(hookState.ALL_HOOK); + + elseif dataTable.cmd == "stopOnStepOut" then + this.changeRunState(runState.STEPOUT); + local msgTab = this.getMsgTable("stopOnStepOut", this.getCallbackId()); + this.sendMsg(msgTab); + this.changeHookState(hookState.ALL_HOOK); + + elseif dataTable.cmd == "setBreakPoint" then + this.printToVSCode("dataTable.cmd == setBreakPoint"); + -- 设置断点时,把 fakeBreakPointCache 清空。这是一个简å•çš„åšæ³•,也å¯ä»¥æ¸…除具体的æ¡ç›® + fakeBreakPointCache = {} + local bkPath = dataTable.info.path; + bkPath = this.genUnifiedPath(bkPath); + if testBreakpointFlag then + recordBreakPointPath = bkPath; + end + if autoPathMode then + -- 自动路径模å¼ä¸‹ï¼Œä»…ä¿ç•™æ–‡ä»¶å + -- table[文件å.åŽç¼€] -- [fullpath] -- [line , type] + -- | - [fullpath] -- [line , type] + + local bkShortPath = this.getFilenameFromPath(bkPath); + if breaks[bkShortPath] == nil then + breaks[bkShortPath] = {}; + end + breaks[bkShortPath][bkPath] = dataTable.info.bks; + -- 当v为空时,从断点列表中去除文件 + for k, v in pairs(breaks[bkShortPath]) do + if next(v) == nil then + breaks[bkShortPath][k] = nil; + end + end + else + if breaks[bkPath] == nil then + breaks[bkPath] = {}; + end + -- 两级 bk path 是为了和自动路径模å¼ç»“æž„ä¿æŒä¸€è‡´ + breaks[bkPath][bkPath] = dataTable.info.bks; + -- 当v为空时,从断点列表中去除文件 + for k, v in pairs(breaks[bkPath]) do + if next(v) == nil then + breaks[bkPath][k] = nil; + end + end + end + + -- 当v为空时,从断点列表中去除文件 + for k, v in pairs(breaks) do + if next(v) == nil then + breaks[k] = nil; + end + end + + --sync breaks to c + if hookLib ~= nil then + hookLib.sync_breakpoints(); + end + + if currentRunState ~= runState.WAIT_CMD then + if hookLib == nil then + local fileBP, G_BP =this.checkHasBreakpoint(lastRunFilePath); + if fileBP == false then + if G_BP == true then + this.changeHookState(hookState.MID_HOOK); + else + this.changeHookState(hookState.LITE_HOOK); + end + else + this.changeHookState(hookState.ALL_HOOK); + end + end + else + local msgTab = this.getMsgTable("setBreakPoint", this.getCallbackId()); + this.sendMsg(msgTab); + return; + end + --其他时机收到breaksæ¶ˆæ¯ + local msgTab = this.getMsgTable("setBreakPoint", this.getCallbackId()); + this.sendMsg(msgTab); + -- 打å°è°ƒè¯•ä¿¡æ¯ + this.printToVSCode("LuaPanda.getInfo()\n" .. this.getInfo()) + this.debugger_wait_msg(); + elseif dataTable.cmd == "setVariable" then + if currentRunState == runState.STOP_ON_ENTRY or + currentRunState == runState.HIT_BREAKPOINT or + currentRunState == runState.STEPOVER_STOP or + currentRunState == runState.STEPIN_STOP or + currentRunState == runState.STEPOUT_STOP then + local msgTab = this.getMsgTable("setVariable", this.getCallbackId()); + local varRefNum = tonumber(dataTable.info.varRef); + local newValue = tostring(dataTable.info.newValue); + local needFindVariable = true; --如果å˜é‡æ˜¯åŸºç¡€ç±»åž‹ï¼Œç›´æŽ¥èµ‹å€¼ï¼ŒneedFindVariable = false; 如果å˜é‡æ˜¯å¼•用类型,needFindVariable = true + local varName = tostring(dataTable.info.varName); + -- æ ¹æ®é¦–æœ«å«æœ‰" ' 判断 newValue æ˜¯å¦æ˜¯å­—符串 + local first_chr = string.sub(newValue, 1, 1); + local end_chr = string.sub(newValue, -1, -1); + if first_chr == end_chr then + if first_chr == "'" or first_chr == '"' then + newValue = string.sub(newValue, 2, -2); + needFindVariable = false; + end + end + --数字,nil,false,trueçš„å¤„ç† + if newValue == "nil" and needFindVariable == true then newValue = nil; needFindVariable = false; + elseif newValue == "true" and needFindVariable == true then newValue = true; needFindVariable = false; + elseif newValue == "false" and needFindVariable == true then newValue = false; needFindVariable = false; + elseif tonumber(newValue) and needFindVariable == true then newValue = tonumber(newValue); needFindVariable = false; + end + + -- 如果新值是基础类型,则ä¸éœ€é历 + if dataTable.info.stackId ~= nil and tonumber(dataTable.info.stackId) ~= nil and tonumber(dataTable.info.stackId) > 1 then + this.curStackId = tonumber(dataTable.info.stackId); + else + this.printToVSCode("未能获å–到堆栈层级,默认使用 this.curStackId;") + end + + if varRefNum < 10000 then + -- 如果修改的是一个 引用å˜é‡ï¼Œé‚£ä¹ˆå¯ç›´æŽ¥èµ‹å€¼ã€‚但还是è¦èµ°å˜é‡æŸ¥è¯¢è¿‡ç¨‹ã€‚查找和赋值过程都需è¦steakId。 ç›®å‰ç»™å¼•用å˜é‡èµ‹å€¼Object,steakå¯èƒ½æœ‰é—®é¢˜ + msgTab.info = this.createSetValueRetTable(varName, newValue, needFindVariable, this.curStackId, variableRefTab[varRefNum]); + else + -- 如果修改的是一个基础类型 + local setLimit; --设置检索å˜é‡çš„é™å®šåŒºåŸŸ + if varRefNum >= 10000 and varRefNum < 20000 then setLimit = "local"; + elseif varRefNum >= 20000 and varRefNum < 30000 then setLimit = "global"; + elseif varRefNum >= 30000 then setLimit = "upvalue"; + end + msgTab.info = this.createSetValueRetTable(varName, newValue, needFindVariable, this.curStackId, nil, setLimit); + end + + this.sendMsg(msgTab); + this.debugger_wait_msg(); + end + + elseif dataTable.cmd == "getVariable" then + --ä»…åœ¨åœæ­¢æ—¶å¤„ç†æ¶ˆæ¯ï¼Œå…¶ä»–时刻收到此消æ¯ï¼Œä¸¢å¼ƒ + if currentRunState == runState.STOP_ON_ENTRY or + currentRunState == runState.HIT_BREAKPOINT or + currentRunState == runState.STEPOVER_STOP or + currentRunState == runState.STEPIN_STOP or + currentRunState == runState.STEPOUT_STOP then + --å‘é€å˜é‡ç»™æ¸¸æˆï¼Œå¹¶ä¿æŒä¹‹å‰çš„状æ€,ç­‰å¾…å†æ¬¡æŽ¥æ”¶æ•°æ® + --dataTable.info.varRef 10000~20000局部å˜é‡ + -- 20000~30000全局å˜é‡ + -- 30000~ upvalue + -- 1000~2000局部å˜é‡çš„æŸ¥è¯¢ï¼Œ2000~3000全局,3000~4000upvalue + local msgTab = this.getMsgTable("getVariable", this.getCallbackId()); + local varRefNum = tonumber(dataTable.info.varRef); + if varRefNum < 10000 then + --查询å˜é‡, 此时忽略 stackId + local varTable = this.getVariableRef(dataTable.info.varRef, true); + msgTab.info = varTable; + elseif varRefNum >= 10000 and varRefNum < 20000 then + --局部å˜é‡ + if dataTable.info.stackId ~= nil and tonumber(dataTable.info.stackId) > 1 then + this.curStackId = tonumber(dataTable.info.stackId); + if type(currentCallStack[this.curStackId - 1]) ~= "table" or type(currentCallStack[this.curStackId - 1].func) ~= "function" then + local str = "getVariable getLocal currentCallStack " .. this.curStackId - 1 .. " Error\n" .. this.serializeTable(currentCallStack, "currentCallStack"); + this.printToVSCode(str, 2); + msgTab.info = {}; + else + local stackId = this.getSpecificFunctionStackLevel(currentCallStack[this.curStackId - 1].func); --去除åç§»é‡ + local varTable = this.getVariable(stackId, true); + msgTab.info = varTable; + end + end + + elseif varRefNum >= 20000 and varRefNum < 30000 then + --全局å˜é‡ + local varTable = this.getGlobalVariable(); + msgTab.info = varTable; + elseif varRefNum >= 30000 then + --upValue + if dataTable.info.stackId ~= nil and tonumber(dataTable.info.stackId) > 1 then + this.curStackId = tonumber(dataTable.info.stackId); + if type(currentCallStack[this.curStackId - 1]) ~= "table" or type(currentCallStack[this.curStackId - 1].func) ~= "function" then + local str = "getVariable getUpvalue currentCallStack " .. this.curStackId - 1 .. " Error\n" .. this.serializeTable(currentCallStack, "currentCallStack"); + this.printToVSCode(str, 2); + msgTab.info = {}; + else + local varTable = this.getUpValueVariable(currentCallStack[this.curStackId - 1 ].func, true); + msgTab.info = varTable; + end + end + end + this.sendMsg(msgTab); + this.debugger_wait_msg(); + end + elseif dataTable.cmd == "initSuccess" then + --åˆå§‹åŒ–会传过æ¥ä¸€äº›å˜é‡ï¼Œè¿™é‡Œè®°å½•这些å˜é‡ + --Base64 + if dataTable.info.isNeedB64EncodeStr == "true" then + isNeedB64EncodeStr = true; + else + isNeedB64EncodeStr = false; + end + --path + luaFileExtension = dataTable.info.luaFileExtension; + local TempFilePath = dataTable.info.TempFilePath; + if TempFilePath:sub(-1, -1) == [[\]] or TempFilePath:sub(-1, -1) == [[/]] then + TempFilePath = TempFilePath:sub(1, -2); + end + TempFilePath_luaString = TempFilePath; + cwd = this.genUnifiedPath(dataTable.info.cwd); + --logLevel + logLevel = tonumber(dataTable.info.logLevel) or 1; + --autoPathMode + if dataTable.info.autoPathMode == "true" then + autoPathMode = true; + else + autoPathMode = false; + end + + if dataTable.info.pathCaseSensitivity == "true" then + pathCaseSensitivity = true; + truncatedOPath = dataTable.info.truncatedOPath or ""; + else + pathCaseSensitivity = false; + truncatedOPath = string.lower(dataTable.info.truncatedOPath or ""); + end + + if dataTable.info.distinguishSameNameFile == "true" then + distinguishSameNameFile = true; + else + distinguishSameNameFile = false; + end + + --OS type + if nil == OSType then + --用户未主动设置OSType, 接收VSCodeä¼ æ¥çš„æ•°æ® + if type(dataTable.info.OSType) == "string" then + OSType = dataTable.info.OSType; + else + OSType = "Windows_NT"; + OSTypeErrTip = "未能检测出OSType, å¯èƒ½æ˜¯node os库未能加载,系统使用默认设置Windows_NT" + end + else + --用户自设OSType, 使用用户的设置 + end + + --检测用户是å¦è‡ªè®¾äº†clib路径 + isUserSetClibPath = false; + if nil == clibPath then + --用户未设置clibPath, 接收VSCodeä¼ æ¥çš„æ•°æ® + if type(dataTable.info.clibPath) == "string" then + clibPath = dataTable.info.clibPath; + else + clibPath = ""; + pathErrTip = "未能正确获å–libpdebug库所在ä½ç½®, å¯èƒ½æ— æ³•加载libpdebug库。"; + end + else + --用户自设clibPath + isUserSetClibPath = true; + end + + --查找c++çš„hook库是å¦å­˜åœ¨. 当lua5.4时默认ä¸ä½¿ç”¨c库 + if tostring(dataTable.info.useCHook) == "true" then + userSetUseClib = true; --用户确定使用clib + if isUserSetClibPath == true then --如果用户自设了clib路径 + if luapanda_chook ~= nil then + hookLib = luapanda_chook; + else + if not(this.tryRequireClib("libpdebug", clibPath)) then + this.printToVSCode("Require clib failed, use Lua to continue debug, use LuaPanda.doctor() for more information.", 1); + end + end + else + local clibExt, platform; + if OSType == "Darwin" then clibExt = "/?.so;"; platform = "mac"; + elseif OSType == "Linux" then clibExt = "/?.so;"; platform = "linux"; + else clibExt = "/?.dll;"; platform = "win"; end + + local lua_ver; + if _VERSION == "Lua 5.1" then + lua_ver = "501"; + elseif _VERSION == "Lua 5.4" then + lua_ver = "504"; + else + lua_ver = "503"; + end + + local x86Path = clibPath.. platform .."/x86/".. lua_ver .. clibExt; + local x64Path = clibPath.. platform .."/x86_64/".. lua_ver .. clibExt; + local armPath = clibPath .. platform .."/arm_64/".. lua_ver .. clibExt; + + if luapanda_chook ~= nil then + hookLib = luapanda_chook; + else + local requireCLibSuccess = false; + if platform == "mac" then + requireCLibSuccess = this.tryRequireClib("libpdebug", armPath) + end + + if not requireCLibSuccess and not(this.tryRequireClib("libpdebug", x64Path) or this.tryRequireClib("libpdebug", x86Path)) then + this.printToVSCode("Require clib failed, use Lua to continue debug, use LuaPanda.doctor() for more information.", 1); + end + end + end + else + userSetUseClib = false; + end + + --adapterç‰ˆæœ¬ä¿¡æ¯ + adapterVer = tostring(dataTable.info.adapterVersion); + local msgTab = this.getMsgTable("initSuccess", this.getCallbackId()); + --回传是å¦ä½¿ç”¨äº†libï¼Œæ˜¯å¦æœ‰loadstring函数 + local isUseHookLib = 0; + if hookLib ~= nil then + isUseHookLib = 1; + --åŒæ­¥æ•°æ®ç»™c hook + local luaVerTable = this.stringSplit(debuggerVer , '%.'); + local luaVerNum = luaVerTable[1] * 10000 + luaVerTable[2] * 100 + luaVerTable[3]; + if hookLib.sync_lua_debugger_ver then + hookLib.sync_lua_debugger_ver(luaVerNum); + end + -- hookLib.sync_config(logLevel, pathCaseSensitivity and 1 or 0, autoPathMode and 1 or 0); + hookLib.sync_config(logLevel, pathCaseSensitivity and 1 or 0); + hookLib.sync_tempfile_path(TempFilePath_luaString); + hookLib.sync_cwd(cwd); + hookLib.sync_file_ext(luaFileExtension); + end + --detect LoadString + isUseLoadstring = 0; + if debugger_loadString ~= nil and type(debugger_loadString) == "function" then + if(pcall(debugger_loadString("return 0"))) then + isUseLoadstring = 1; + end + end + local tab = { debuggerVer = tostring(debuggerVer) , UseHookLib = tostring(isUseHookLib) , UseLoadstring = tostring(isUseLoadstring), isNeedB64EncodeStr = tostring(isNeedB64EncodeStr) }; + msgTab.info = tab; + this.sendMsg(msgTab); + --上é¢getBK中会判断当å‰çŠ¶æ€æ˜¯å¦WAIT_CMD, 所以最åŽå†åˆ‡æ¢çжæ€ã€‚ + stopOnEntry = dataTable.info.stopOnEntry; + if dataTable.info.stopOnEntry == "true" then + this.changeRunState(runState.STOP_ON_ENTRY); --åœæ­¢åœ¨STOP_ON_ENTRYå†æŽ¥æ”¶breaksæ¶ˆæ¯ + else + this.debugger_wait_msg(1); --等待1s bkæ¶ˆæ¯ å¦‚æžœæ”¶åˆ°æˆ–è¶…æ—¶(没有断点)就开始è¿è¡Œ + this.changeRunState(runState.RUN); + end + + elseif dataTable.cmd == "getWatchedVariable" then + local msgTab = this.getMsgTable("getWatchedVariable", this.getCallbackId()); + local stackId = tonumber(dataTable.info.stackId); + --loadstring系统函数, watchæ’件加载 + if isUseLoadstring == 1 then + --使用loadstring + this.curStackId = stackId; + local retValue = this.processWatchedExp(dataTable.info); + msgTab.info = retValue + this.sendMsg(msgTab); + this.debugger_wait_msg(); + return; + else + --æ—§çš„æŸ¥æ‰¾æ–¹å¼ + local wv = this.getWatchedVariable(dataTable.info.varName, stackId, true); + if wv ~= nil then + msgTab.info = wv; + end + this.sendMsg(msgTab); + this.debugger_wait_msg(); + end + elseif dataTable.cmd == "stopRun" then + --åœæ­¢hook,已ä¸åœ¨å¤„ç†ä»»ä½•断点信æ¯ï¼Œä¹Ÿå°±ä¸ä¼šäº§ç”Ÿæ—¥å¿—等。å‘逿¶ˆæ¯åŽç­‰å¾…å‰ç«¯ä¸»åŠ¨æ–­å¼€è¿žæŽ¥ + local msgTab = this.getMsgTable("stopRun", this.getCallbackId()); + this.sendMsg(msgTab); + if not luaProcessAsServer then + this.disconnect(); + end + elseif "LuaGarbageCollect" == dataTable.cmd then + this.printToVSCode("collect garbage!"); + collectgarbage("collect"); + --回收åŽåˆ·ä¸€ä¸‹å†…å­˜ + this.sendLuaMemory(); + this.debugger_wait_msg(); + elseif "runREPLExpression" == dataTable.cmd then + this.curStackId = tonumber(dataTable.info.stackId); + local retValue = this.processExp(dataTable.info); + local msgTab = this.getMsgTable("runREPLExpression", this.getCallbackId()); + msgTab.info = retValue + this.sendMsg(msgTab); + this.debugger_wait_msg(); + else + end +end + +-- å˜é‡èµ‹å€¼çš„处ç†å‡½æ•°ã€‚åŸºæœ¬é€»è¾‘æ˜¯å…ˆä»Žå½“å‰æ ˆå¸§ï¼ˆcurStackIdï¼‰ä¸­å– newValue 代表的å˜é‡ï¼Œæ‰¾åˆ°ä¹‹åŽå†æŠŠæ‰¾åˆ°çš„值通过setVariableValue写回。 +-- @varName 被设置值的å˜é‡å +-- @newValue 新值的å字,它是一个string +-- @needFindVariable 是å¦éœ€è¦æŸ¥æ‰¾å¼•用å˜é‡ã€‚ï¼ˆç”¨æˆ·è¾“å…¥çš„æ˜¯å¦æ˜¯ä¸€ä¸ªObject) +-- @curStackId 当剿 ˆå¸§ï¼ˆæŸ¥æ‰¾å’Œå˜é‡èµ‹å€¼ç”¨ï¼‰ +-- @assigndVar 被直接赋值(çœåŽ»æŸ¥æ‰¾è¿‡ç¨‹ï¼‰ +-- @setLimit 赋值时的é™åˆ¶èŒƒå›´ï¼ˆlocal upvalue global) +function this.createSetValueRetTable(varName, newValue, needFindVariable, curStackId, assigndVar , setLimit) + local info; + local getVarRet; + -- needFindVariable == true,则使用getWatchedVariable处ç†ï¼ˆå¯é€‰, ç”¨æ¥æ”¯æŒ a = b (b为å˜é‡çš„æƒ…况))。 + if needFindVariable == false then + getVarRet = {}; + getVarRet[1] = {variablesReference = 0, value = newValue, name = varName, type = type(newValue)}; + else + getVarRet = this.getWatchedVariable( tostring(newValue), curStackId, true); + end + if getVarRet ~= nil then + -- newValue赋å˜é‡çœŸå®žå€¼ + local realVarValue; + local displayVarValue = getVarRet[1].value; + if needFindVariable == true then + if tonumber(getVarRet[1].variablesReference) > 0 then + realVarValue = variableRefTab[tonumber(getVarRet[1].variablesReference)]; + else + if getVarRet[1].type == 'number' then realVarValue = tonumber(getVarRet[1].value) end + if getVarRet[1].type == 'string' then + realVarValue = tostring(getVarRet[1].value); + local first_chr = string.sub(realVarValue, 1, 1); + local end_chr = string.sub(realVarValue, -1, -1); + if first_chr == end_chr then + if first_chr == "'" or first_chr == '"' then + realVarValue = string.sub(realVarValue, 2, -2); + displayVarValue = realVarValue; + end + end + end + if getVarRet[1].type == 'boolean' then + if getVarRet[1].value == "true" then + realVarValue = true; + else + realVarValue = false; + end + end + if getVarRet[1].type == 'nil' then realVarValue = nil end + end + else + realVarValue = getVarRet[1].value; + end + + local setVarRet; + if type(assigndVar) ~= table then + setVarRet = this.setVariableValue( varName, curStackId, realVarValue, setLimit ); + else + assigndVar[varName] = realVarValue; + setVarRet = true; + end + + if getVarRet[1].type == "string" then + displayVarValue = '"' .. displayVarValue .. '"'; + end + + if setVarRet ~= false and setVarRet ~= nil then + local retTip = "å˜é‡ ".. varName .." 赋值æˆåŠŸ"; + info = { success = "true", name = getVarRet[1].name , type = getVarRet[1].type , value = displayVarValue, variablesReference = tostring(getVarRet[1].variablesReference), tip = retTip}; + else + info = { success = "false", type = type(realVarValue), value = displayVarValue, tip = "找ä¸åˆ°è¦è®¾ç½®çš„å˜é‡"}; + end + + else + info = { success = "false", type = nil, value = nil, tip = "输入的值无æ„义"}; + end + return info +end + +--æŽ¥æ”¶æ¶ˆæ¯ +--这里维护一个接收消æ¯é˜Ÿåˆ—,因为Lua端未åšé𔿖­ç¬¦ä¿æŠ¤ï¼Œå˜é‡èµ‹å€¼æ—¶è¯·æ³¨æ„其中ä¸è¦åŒ…å«é𔿖­ç¬¦ |*| +-- @timeoutSec è¶…æ—¶æ—¶é—´ +-- @return boolean æˆåŠŸ/失败 +function this.receiveMessage( timeoutSec ) + timeoutSec = timeoutSec or MAX_TIMEOUT_SEC; + sock:settimeout(timeoutSec); + --如果队列中还有消æ¯ï¼Œç›´æŽ¥å–出æ¥äº¤ç»™dataProcesså¤„ç† + if #recvMsgQueue > 0 then + local saved_cmd = recvMsgQueue[1]; + table.remove(recvMsgQueue, 1); + this.dataProcess(saved_cmd); + return true; + end + + if currentRunState == runState.DISCONNECT then + this.disconnect(); + return false; + end + + if sock == nil then + this.printToConsole("[debugger error]接收信æ¯å¤±è´¥ | reason: socket == nil", 2); + return; + end + local response, err = sock:receive("*l"); + if response == nil then + if err == "closed" then + this.printToConsole("[debugger error]接收信æ¯å¤±è´¥ | reason:"..err, 2); + this.disconnect(); + end + return false; + else + + --åˆ¤æ–­æ˜¯å¦æ˜¯ä¸€æ¡æ¶ˆæ¯ï¼Œåˆ†æ‹† + local proc_response = string.sub(response, 1, -1 * (TCPSplitChar:len() + 1 )); + local match_res = string.find(proc_response, TCPSplitChar, 1, true); + if match_res == nil then + --啿¡ + this.dataProcess(proc_response); + else + --有粘包 + repeat + --待处ç†å‘½ä»¤ + local str1 = string.sub(proc_response, 1, match_res - 1); + table.insert(recvMsgQueue, str1); + --å‰©ä½™åŒ¹é… + local str2 = string.sub(proc_response, match_res + TCPSplitChar:len() , -1); + match_res = string.find(str2, TCPSplitChar, 1, true); + until not match_res + this.receiveMessage(); + end + return true; + end +end + +--这里ä¸ç”¨å¾ªçŽ¯ï¼Œåœ¨å¤–é¢å¤„ç†å®Œæ¶ˆæ¯ä¼šåœ¨è°ƒç”¨å›žæ¥ +-- @timeoutSec 等待时间s +-- @entryFlag 入壿 ‡è®°ï¼Œç”¨æ¥æ ‡è¯†æ˜¯ä»Žå“ªé‡Œè°ƒå…¥çš„ +function this.debugger_wait_msg(timeoutSec) + timeoutSec = timeoutSec or MAX_TIMEOUT_SEC; + + if currentRunState == runState.WAIT_CMD then + local ret = this.receiveMessage(timeoutSec); + return ret; + end + + if currentRunState == runState.STEPOVER or + currentRunState == runState.STEPIN or + currentRunState == runState.STEPOUT or + currentRunState == runState.RUN then + this.receiveMessage(0); + return + end + + if currentRunState == runState.STEPOVER_STOP or + currentRunState == runState.STEPIN_STOP or + currentRunState == runState.STEPOUT_STOP or + currentRunState == runState.HIT_BREAKPOINT or + currentRunState == runState.STOP_ON_ENTRY + then + this.sendLuaMemory(); + this.receiveMessage(MAX_TIMEOUT_SEC); + return + end +end + +----------------------------------------------------------------------------- +-- 调试器核心方法 +----------------------------------------------------------------------------- + +------------------------堆栈管ç†------------------------- + + +--getStackTable需è¦å»ºç«‹stackTable,ä¿å­˜æ¯å±‚çš„lua函数实例(用æ¥å–upvalue),ä¿å­˜å‡½æ•°å±•示层级和ly的关系(便于根æ®å‰ç«¯ä¼ æ¥çš„stackId查局部å˜é‡) +-- @level è¦èŽ·å–的层级 +function this.getStackTable( level ) + local functionLevel = 0 + if hookLib ~= nil then + functionLevel = level or HOOK_LEVEL; + else + functionLevel = level or this.getSpecificFunctionStackLevel(lastRunFunction.func); + end + local stackTab = {}; + local userFuncSteakLevel = 0; --用户函数的steaklevel + local clevel = 0 + repeat + local info = debug.getinfo(functionLevel, "SlLnf") + if info == nil then + break; + end + if info.source ~= "=[C]" then + local ss = {}; + ss.file = this.getPath(info); + local oPathFormated = this.formatOpath(info.source) ; --从lua虚拟机获得的原始路径, 它用于帮助定ä½VScode端原始lua文件的ä½ç½®(存在é‡å文件的情况)。 + ss.oPath = this.truncatedPath(oPathFormated, truncatedOPath); + ss.name = "文件å"; --这里è¦åšæˆªå– + ss.line = tostring(info.currentline); + --使用hookLib时,堆栈有åç§»é‡ï¼Œè¿™é‡Œç»Ÿä¸€è°ƒç”¨æ ˆé¡¶ç¼–å·2 + local ssindex = functionLevel - 3; + if hookLib ~= nil then + ssindex = ssindex + 2; + end + ss.index = tostring(ssindex); + table.insert(stackTab,ss); + --把数æ®å­˜å…¥currentCallStack + local callStackInfo = {}; + callStackInfo.name = ss.file; + callStackInfo.line = ss.line; + callStackInfo.func = info.func; --ä¿å­˜çš„function + callStackInfo.realLy = functionLevel; --真实堆栈层functionLevel(ä»…debug时用) + table.insert(currentCallStack, callStackInfo); + + --level赋值 + if userFuncSteakLevel == 0 then + userFuncSteakLevel = functionLevel; + end + else + local callStackInfo = {}; + callStackInfo.name = info.source; + callStackInfo.line = info.currentline; --Cå‡½æ•°è¡Œå· + callStackInfo.func = info.func; --ä¿å­˜çš„function + callStackInfo.realLy = functionLevel; --真实堆栈层functionLevel(ä»…debug时用) + table.insert(currentCallStack, callStackInfo); + clevel = clevel + 1 + end + functionLevel = functionLevel + 1; + until info == nil + return stackTab, userFuncSteakLevel; +end + +-- 把路径中去除åŽç¼€éƒ¨åˆ†çš„.å˜ä¸º/, +-- @filePath 被替æ¢çš„路径 +-- @ext åŽç¼€(åŽç¼€å‰çš„ . ä¸ä¼šè¢«æ›¿æ¢) +function this.changePotToSep(filePath, ext) + local idx = filePath:find(ext, (-1) * ext:len() , true) + if idx then + local tmp = filePath:sub(1, idx - 1):gsub("%.", "/"); + filePath = tmp .. ext; + end + return filePath; +end + +--- this.truncatedPath 从 beTruncatedPath 字符串中去除 rep 匹é…到的部分 +function this.truncatedPath(beTruncatedPath, rep) + if beTruncatedPath and beTruncatedPath ~= '' and rep and rep ~= "" then + local _, lastIdx = string.find(beTruncatedPath , rep); + if lastIdx then + beTruncatedPath = string.sub(beTruncatedPath, lastIdx + 1); + end + end + return beTruncatedPath; +end + +--这个方法是根æ®çš„cwdå’ŒluaFileExtension对getInfo获å–到的路径进行标准化 +-- @info getInfo获å–的包å«è°ƒç”¨ä¿¡æ¯table +function this.getPath( info ) + local filePath = info; + if type(info) == "table" then + filePath = info.source; + end + --å°è¯•从Cache中获å–路径 + local cachePath = this.getCacheFormatPath(filePath); + if cachePath~= nil and type(cachePath) == "string" then + return cachePath; + end + + -- originalPath是getInfo的原始路径,åŽé¢ç”¨æ¥å¡«å……路径缓存的key + local originalPath = filePath; + + --如果路径头部有@,去除 + if filePath:sub(1,1) == '@' then + filePath = filePath:sub(2); + end + + --如果路径头部有./,去除 + if filePath:sub(1,2) == './' then + filePath = filePath:sub(3); + end + -- getPathçš„å‚æ•°è·¯å¾„å¯èƒ½æ¥è‡ªäºŽhook, 也å¯èƒ½æ˜¯ä¸€ä¸ªå·²æ ‡å‡†çš„路径 + if userDotInRequire then + if autoExt == nil or autoExt == '' then + -- 在虚拟机返回路径没有åŽç¼€çš„æƒ…况下,用户必须自设åŽç¼€ + -- 确定filePath中最åŽä¸€ä¸ª.xxx ä¸ç­‰äºŽç”¨æˆ·é…置的åŽç¼€, 则把所有的. 转为 / + if not filePath:find(luaFileExtension , (-1) * luaFileExtension:len(), true) then + -- getinfo 路径没有åŽç¼€ï¼ŒæŠŠ . å…¨éƒ¨æ›¿æ¢æˆ / ,我们ä¸å…许用户在文件(或文件夹)å称中出现"." , 因为无法区分 + filePath = string.gsub(filePath, "%.", "/"); + else + -- 有åŽç¼€ï¼Œé‚£ä¹ˆæŠŠé™¤åŽç¼€å¤–的部分中的. 转为 / + filePath = this.changePotToSep(filePath, luaFileExtension); + end + + else + -- 虚拟机路径有åŽç¼€ + filePath = this.changePotToSep(filePath, autoExt); + end + end + + --åŽç¼€å¤„ç† + if luaFileExtension ~= "" then + --判断åŽç¼€ä¸­æ˜¯å¦åŒ…å«%1等魔法字符.用于从lua虚拟机获å–到的路径å«.的情况 + if string.find(luaFileExtension, "%%%d") then + filePath = string.gsub(filePath, "%.[%w%.]+$", luaFileExtension); + else + filePath = string.gsub(filePath, "%.[%w%.]+$", ""); + filePath = filePath .. "." .. luaFileExtension; + end + end + + + if not autoPathMode then + --ç»å¯¹è·¯å¾„å’Œç›¸å¯¹è·¯å¾„çš„å¤„ç† | 若在Mac下以/开头,或者在Win下以*:开头,说明是ç»å¯¹è·¯å¾„,ä¸éœ€è¦å†æ‹¼ã€‚ + if filePath:sub(1,1) == [[/]] or filePath:sub(1,2):match("^%a:") then + isAbsolutePath = true; + else + isAbsolutePath = false; + if cwd ~= "" then + --查看filePath中是å¦åŒ…å«cwd + local matchRes = string.find(filePath, cwd, 1, true); + if matchRes == nil then + filePath = cwd.."/"..filePath; + end + end + end + end + filePath = this.genUnifiedPath(filePath); + + if autoPathMode then + -- 自动路径模å¼ä¸‹ï¼Œåªä¿ç•™æ–‡ä»¶å + filePath = this.getFilenameFromPath(filePath) + end + --放入Cache中缓存 + this.setCacheFormatPath(originalPath, filePath); + return filePath; +end + +--从路径中获å–[文件å.åŽç¼€] +function this.getFilenameFromPath(path) + if path == nil then + return ''; + end + + return string.match(path, "([^/]*)$"); +end + +--获å–当å‰å‡½æ•°çš„堆栈层级 +--åŽŸç†æ˜¯å‘上查找,é‡åˆ°DebuggerFileName就调过。但是å¯èƒ½å­˜åœ¨ä»£ç æ®µå’ŒC导致ä¸ç¡®å®šæ€§ã€‚ç›®å‰ä½¿ç”¨getSpecificFunctionStackLevel代替。 +function this.getCurrentFunctionStackLevel() + -- print(debug.traceback("===getCurrentFunctionStackLevel Stack trace===")) + local funclayer = 2; + repeat + local info = debug.getinfo(funclayer, "S"); --通过nameæ¥åˆ¤æ–­ + if info ~= nil then + local matchRes = ((info.source == DebuggerFileName) or (info.source == DebuggerToolsName)); + if matchRes == false then + return (funclayer - 1); + end + end + funclayer = funclayer + 1; + until not info + return 0; +end + +--èŽ·å–æŒ‡å®šå‡½æ•°çš„堆栈层级 +--通常用æ¥èŽ·å–æœ€åŽä¸€ä¸ªç”¨æˆ·å‡½æ•°çš„层级,用法是从currentCallStackå–用户点击的栈,å†ä½¿ç”¨æœ¬å‡½æ•°å–对应层级。 +-- @func 被获å–层级的function +function this.getSpecificFunctionStackLevel( func ) + local funclayer = 2; + repeat + local info = debug.getinfo(funclayer, "f"); --通过nameæ¥åˆ¤æ–­ + if info ~= nil then + if info.func == func then + return (funclayer - 1); + end + end + funclayer = funclayer + 1; + until not info + return 0; +end + +--检查当å‰å †æ ˆæ˜¯å¦æ˜¯Lua +-- @checkLayer 指定的栈层 +function this.checkCurrentLayerisLua( checkLayer ) + local info = debug.getinfo(checkLayer, "S"); + if info == nil then + return nil; + end + info.source = this.genUnifiedPath(info.source); + if info ~= nil then + for k,v in pairs(info) do + if k == "what" then + if v == "C" then + return false; + else + return true; + end + end + end + end + return nil; +end + +-- 在 fakeBreakPointCache 中查询此断点是å¦çœŸå®žå­˜åœ¨ +-- 因为åŒå文件的影å“, 有些断点是命中错误的。ç»è¿‡VScode校验åŽï¼Œè¿™äº›é”™è¯¯å‘½ä¸­çš„æ–­ç‚¹ä¿¡æ¯è¢«å­˜åœ¨fakeBreakPointCache中 +function this.checkRealHitBreakpoint( oPath, line ) + -- 在å‡å‘½ä¸­åˆ—表中æœç´¢ï¼Œå¦‚果本行有过å‡å‘½ä¸­è®°å½•,返回 false + if oPath and fakeBreakPointCache[oPath] then + for _, value in ipairs(fakeBreakPointCache[oPath]) do + if tonumber(value) == tonumber(line) then + this.printToVSCode("cache hit bp in same name file. source:" .. tostring(oPath) .. " line:" .. tostring(line)); + return false; + end + end + end + return true; +end + +------------------------断点处ç†------------------------- +--- this.isHitBreakpoint 判断断点是å¦å‘½ä¸­ã€‚这个方法在c mod以åŠlua中都有调用 +-- @param breakpointPath 文件å+åŽç¼€ +-- @param opath getinfo path +-- @param curLine 当剿‰§è¡Œè¡Œå· +function this.isHitBreakpoint(breakpointPath, opath, curLine) + if breaks[breakpointPath] then + local oPathFormated; + for fullpath, fullpathNode in pairs(breaks[breakpointPath]) do + recordBreakPointPath = fullpath; --è¿™é‡Œæ˜¯ä¸ºäº†å…¼å®¹ç”¨æˆ·æ–­ç‚¹è¡Œå·æ²¡æœ‰æ‰“对的情况 + local line_hit,cur_node = false,{}; + for _, node in ipairs(fullpathNode) do + if tonumber(node["line"]) == tonumber(curLine) then + line_hit = true; -- fullpath 文件中 有行å·å‘½ä¸­ + cur_node = node; + recordBreakPointPath = fullpath; --行å·å‘½ä¸­åŽï¼Œå†è®¾ç½®ä¸€æ¬¡ï¼Œä¿è¯è·¯å¾„准确 + break; + end + end + + -- 在lua端ä¸çŸ¥é“æ˜¯å¦æœ‰åŒå文件,基本æ€è·¯æ˜¯å…ˆå–文件å,用文件åå’ŒbreakpointArray 进行匹é…。 + -- 当文件å匹é…上时,å¯èƒ½å­˜åœ¨å¤šä¸ªåŒå文件中存在断点的情况。这时候需è¦ç”¨ oPath å’Œ fullpath 进行对比,å–出正确的。 + -- 当本地文件中有断点,luaåšäº†åˆæ­¥å‘½ä¸­åŽï¼Œå¯èƒ½å­˜åœ¨ stack , 断点文件有åŒå的情况。这就需è¦vscode端也需è¦checkfullpath函数,使用opath进行文件校验。 + if line_hit then + if oPathFormated == nil then + -- 为了é¿å…性能消耗,仅在行å·å‘½ä¸­æ—¶æ‰å¤„ç† opath 到标准化路径 + oPathFormated = this.formatOpath(opath); + -- æˆªå– + oPathFormated = this.truncatedPath(oPathFormated, truncatedOPath); + end + + if (not distinguishSameNameFile) or (string.match(fullpath, oPathFormated ) and this.checkRealHitBreakpoint(opath, curLine)) then + -- type是TS中的枚举类型,其定义在BreakPoint.tx文件中 + -- enum BreakpointType { + -- conditionBreakpoint = 0, + -- logPoint, + -- lineBreakpoint + -- } + + -- å¤„ç†æ–­ç‚¹ + if cur_node["type"] == "0" then + -- condition breakpoint + -- æ³¨æ„æ­¤å¤„ä¸è¦ä½¿ç”¨å°¾è°ƒç”¨ï¼Œå¦åˆ™ä¼šå½±å“调用栈,导致Lua5.3å’ŒLua5.1中调用栈层级ä¸åŒ + local conditionRet = this.IsMeetCondition(cur_node["condition"]); + -- this.printToVSCode("Condition BK: condition:" .. cur_node["condition"] .. " conditionRet " .. tostring(conditionRet)); + return conditionRet; + elseif cur_node["type"] == "1" then + -- log point + this.printToVSCode("[LogPoint Output]: " .. cur_node["logMessage"], 2, 2); + return false; + else + -- line breakpoint + return true; + end + end + end + end + else + testBreakpointFlag = false; --如果用户打开了测试断点的标志ä½è€Œæœªä¸»åŠ¨å…³é—­ï¼Œä¼šåœ¨luaç»§ç»­è¿è¡Œæ—¶å…³é—­ã€‚ + recordBreakPointPath = ''; --å½“åˆ‡æ¢æ–‡ä»¶æ—¶ç½®ç©ºï¼Œé¿å…æç¤ºç»™ç”¨æˆ·é”™è¯¯ä¿¡æ¯ + end + return false; +end + +-- æ¡ä»¶æ–­ç‚¹å¤„ç†å‡½æ•° +-- 返回true表示æ¡ä»¶æˆç«‹ +-- @conditionExp æ¡ä»¶è¡¨è¾¾å¼ +function this.IsMeetCondition(conditionExp) + -- 判断æ¡ä»¶ä¹‹å‰æ›´æ–°å †æ ˆä¿¡æ¯ + currentCallStack = {}; + variableRefTab = {}; + variableRefIdx = 1; + if hookLib then + this.getStackTable(4); + else + this.getStackTable(); + end + + this.curStackId = 2; --在用户空间最上层执行 + + local conditionExpTable = {["varName"] = conditionExp} + local retTable = this.processWatchedExp(conditionExpTable) + + local isMeetCondition = false; + local function HandleResult() + if retTable[1]["isSuccess"] == "true" then + if retTable[1]["value"] == "nil" or (retTable[1]["value"] == "false" and retTable[1]["type"] == "boolean") then + isMeetCondition = false; + else + isMeetCondition = true; + end + else + isMeetCondition = false; + end + end + + xpcall(HandleResult, function() isMeetCondition = false; end) + return isMeetCondition; +end + +--加入断点函数 +function this.BP() + this.printToConsole("BP()"); + if hookLib == nil then + if currentHookState == hookState.DISCONNECT_HOOK then + this.printToConsole("BP() but NO HOOK"); + return; + end + + local co, isMain = coroutine.running(); + if _VERSION == "Lua 5.1" then + if co == nil then + isMain = true; + else + isMain = false; + end + end + + if isMain == true then + this.printToConsole("BP() in main"); + else + this.printToConsole("BP() in coroutine"); + debug.sethook(co, this.debug_hook, "lrc"); + end + hitBP = true; + else + if hookLib.get_libhook_state() == hookState.DISCONNECT_HOOK then + this.printToConsole("BP() but NO C HOOK"); + return; + end + + --clib, set hitBP + hookLib.sync_bp_hit(1); + end + this.changeHookState(hookState.ALL_HOOK); + return true; +end + +-- æ£€æŸ¥å½“å‰æ–‡ä»¶ä¸­æ˜¯å¦æœ‰æ–­ç‚¹ +-- å¦‚æžœå¡«å†™å‚æ•°fileName 返回fileName中有无断点, 全局有无断点 +-- fileNameä¸ºç©ºï¼Œè¿”å›žå…¨å±€æ˜¯å¦æœ‰æ–­ç‚¹ +function this.checkHasBreakpoint(fileName) + local hasBk = false; + --有无全局断点 + if next(breaks) == nil then + hasBk = false; + else + hasBk = true; + end + --当剿–‡ä»¶ä¸­æ˜¯å¦æœ‰æ–­ç‚¹ + if fileName ~= nil then + return breaks[fileName] ~= nil, hasBk; + else + return hasBk; + end +end + +function this.checkfuncHasBreakpoint(sLine, eLine, fileName) + if breaks[fileName] == nil then + return false; + end + sLine = tonumber(sLine); + eLine = tonumber(eLine); + + --起始行å·>结æŸè¡Œå·ï¼Œæˆ–者sLine = eLine = 0 + if sLine >= eLine then + return true; + end + + if this.getTableMemberNum(breaks[fileName]) <= 0 then + return false; + else + for k,v in pairs(breaks[fileName]) do + for _, node in ipairs(v) do + if tonumber(node.line) > sLine and tonumber(node.line) <= eLine then + return true; + end + end + end + end + return false; +end +------------------------HOOK模å—------------------------- +-- é’©å­å‡½æ•° +-- @event 执行状æ€(call,return,line) +-- @line è¡Œå· +function this.debug_hook(event, line) + if this.reConnect() == 0 then return; end + + if logLevel == 0 then + local logTable = {"-----enter debug_hook-----\n", "event:", event, " line:", tostring(line), " currentHookState:",currentHookState," currentRunState:", currentRunState}; + local logString = table.concat(logTable); + this.printToVSCode(logString); + end + + --litehook ä»…éžé˜»å¡žæŽ¥æ”¶æ–­ç‚¹ + if currentHookState == hookState.LITE_HOOK then + local ti = os.time(); + if ti - receiveMsgTimer > 1 then + this.debugger_wait_msg(0); + receiveMsgTimer = ti; + end + return; + end + + --è¿è¡Œä¸­ + local info; + local co, isMain = coroutine.running(); + if _VERSION == "Lua 5.1" then + if co == nil then + isMain = true; + else + isMain = false; + end + end + isInMainThread = isMain; + if isMain == true then + info = debug.getinfo(2, "Slf") + else + info = debug.getinfo(co, 2, "Slf") + end + info.event = event; + + this.real_hook_process(info); +end + +function this.real_hook_process(info) + local jumpFlag = false; + local event = info.event; + + --如果当å‰è¡Œåœ¨Debugger中,ä¸åšå¤„ç† + local matchRes = ((info.source == DebuggerFileName) or (info.source == DebuggerToolsName)); + if matchRes == true then + return; + end + + --å³ä½¿MID hook在C中, 或者是Runæˆ–è€…å•æ­¥æ—¶ä¹ŸæŽ¥æ”¶æ¶ˆæ¯ + if currentRunState == runState.RUN or + currentRunState == runState.STEPOVER or + currentRunState == runState.STEPIN or + currentRunState == runState.STEPOUT then + local ti = os.time(); + if ti - receiveMsgTimer > 1 then + this.debugger_wait_msg(0); + receiveMsgTimer = ti; + end + end + + --ä¸å¤„ç†C函数 + if info.source == "=[C]" then + this.printToVSCode("current method is C"); + return; + end + + --ä¸å¤„ç† slua "temp buffer" + if info.source == "temp buffer" then + this.printToVSCode("current method is in temp buffer"); + return; + end + + --ä¸å¤„ç† xlua "chunk" + if info.source == "chunk" then + this.printToVSCode("current method is in chunk"); + return; + end + + --lua ä»£ç æ®µçš„处ç†ï¼Œç›®å‰æš‚ä¸è°ƒè¯•ä»£ç æ®µã€‚ + if info.short_src:match("%[string \"") then + --当shortSrc中出现[stringæ—¶]ã€‚è¦æ£€æŸ¥ä¸€ä¸‹source, åŒºåˆ«æ˜¯è·¯å¾„è¿˜æ˜¯ä»£ç æ®µ. 方法是看路径中有没有\t \n ; + if info.source:match("[\n;=]") then + --æ˜¯ä»£ç æ®µï¼Œè°ƒè¿‡ + this.printToVSCode("hook jump Code String!"); + jumpFlag = true; + end + end + + --æ ‡å‡†è·¯å¾„å¤„ç† + if jumpFlag == false then + info.orininal_source = info.source; --使用 info.orininal_source 记录lua虚拟机传æ¥çš„原始路径 + info.source = this.getPath(info); + end + --本次执行的函数和上次执行的函数作对比,防止在一行åœç•™ä¸¤æ¬¡ + if lastRunFunction["currentline"] == info["currentline"] and lastRunFunction["source"] == info["source"] and lastRunFunction["func"] == info["func"] and lastRunFunction["event"] == event then + this.printToVSCode("run twice"); + end + --记录最åŽä¸€æ¬¡è°ƒç”¨ä¿¡æ¯ + if jumpFlag == false then + lastRunFunction = info; + lastRunFunction["event"] = event; + lastRunFilePath = info.source; + end + --输出函数信æ¯åˆ°å‰å° + if logLevel == 0 and jumpFlag == false then + local logTable = {"[lua hook] event:", tostring(event), " currentRunState:",tostring(currentRunState)," currentHookState:",tostring(currentHookState)," jumpFlag:", tostring(jumpFlag)}; + for k,v in pairs(info) do + table.insert(logTable, tostring(k)); + table.insert(logTable, ":"); + table.insert(logTable, tostring(v)); + table.insert(logTable, " "); + end + local logString = table.concat(logTable); + this.printToVSCode(logString); + end + + --仅在lineæ—¶åšæ–­ç‚¹åˆ¤æ–­ã€‚进了断点之åŽä¸å†è¿›å…¥æœ¬æ¬¡STEP类型的判断,用Aflagåšæ ‡è®° + local isHit = false; + if tostring(event) == "line" and jumpFlag == false then + if currentRunState == runState.RUN or currentRunState == runState.STEPOVER or currentRunState == runState.STEPIN or currentRunState == runState.STEPOUT then + --断点判断 + isHit = this.isHitBreakpoint(info.source, info.orininal_source, info.currentline) or hitBP; + if isHit == true then + this.printToVSCode("HitBreakpoint!"); + --å¤‡ä»½ä¿¡æ¯ + local recordStepOverCounter = stepOverCounter; + local recordStepOutCounter = stepOutCounter; + local recordCurrentRunState = currentRunState; + --计数器清0 + stepOverCounter = 0; + stepOutCounter = 0; + this.changeRunState(runState.HIT_BREAKPOINT); + hitBpTwiceCheck = true; -- 命中标志默认设置为true, 如果校验通过,会ä¿ç•™è¿™ä¸ªæ ‡è®°ï¼Œæ ¡éªŒå¤±è´¥ä¼šä¿®æ”¹ + if hitBP then + hitBP = false; --hitBP是断点硬性命中标记 + --呿¶ˆæ¯å¹¶ç­‰å¾… + this.SendMsgWithStack("stopOnCodeBreakpoint"); + else + --呿¶ˆæ¯å¹¶ç­‰å¾… + this.SendMsgWithStack("stopOnBreakpoint"); + --若二次校验未命中,æ¢å¤çŠ¶æ€ + if hitBpTwiceCheck == false then + isHit = false; + -- ç¡®è®¤æœªå‘½ä¸­ï¼ŒæŠŠçŠ¶æ€æ¢å¤ï¼Œç»§ç»­è¿è¡Œ + this.changeRunState(recordCurrentRunState); + stepOverCounter = recordStepOverCounter; + stepOutCounter = recordStepOutCounter; + end + end + end + end + end + + if isHit == true then + return; + end + + if currentRunState == runState.STEPOVER then + -- line stepOverCounter!= 0 ä¸ä½œæ“作 + -- line stepOverCounter == 0 åœæ­¢ + if event == "line" and stepOverCounter <= 0 and jumpFlag == false then + stepOverCounter = 0; + this.changeRunState(runState.STEPOVER_STOP) + this.SendMsgWithStack("stopOnStep"); + elseif event == "return" or event == "tail return" then + --5.1中是tail return + if stepOverCounter ~= 0 then + stepOverCounter = stepOverCounter - 1; + end + elseif event == "call" then + stepOverCounter = stepOverCounter + 1; + end + elseif currentRunState == runState.STOP_ON_ENTRY then + --在Luaå…¥å£ç‚¹å¤„直接åœä½ + if event == "line" and jumpFlag == false then + --åˆå§‹åŒ–内存分æžçš„å˜é‡ + -- MemProfiler.getSystemVar(); + --这里è¦åˆ¤æ–­ä¸€ä¸‹æ˜¯Lua的入å£ç‚¹ï¼Œå¦åˆ™åœåˆ° + this.SendMsgWithStack("stopOnEntry"); + end + elseif currentRunState == runState.STEPIN then + if event == "line" and jumpFlag == false then + this.changeRunState(runState.STEPIN_STOP) + this.SendMsgWithStack("stopOnStepIn"); + end + elseif currentRunState == runState.STEPOUT then + --line ä¸åšæ“作 + --in 计数器+1 + --out 计数器-1 + if jumpFlag == false then + if stepOutCounter <= -1 then + stepOutCounter = 0; + this.changeRunState(runState.STEPOUT_STOP) + this.SendMsgWithStack("stopOnStepOut"); + end + end + + if event == "return" or event == "tail return" then + stepOutCounter = stepOutCounter - 1; + elseif event == "call" then + stepOutCounter = stepOutCounter + 1; + end + end + + --在RUN时检查并改å˜çŠ¶æ€ + if hookLib == nil then + if currentRunState == runState.RUN and jumpFlag == false and currentHookState ~= hookState.DISCONNECT_HOOK then + local fileBP, G_BP = this.checkHasBreakpoint(lastRunFilePath); + if fileBP == false then + --文件无断点 + if G_BP == true then + this.changeHookState(hookState.MID_HOOK); + else + this.changeHookState(hookState.LITE_HOOK); + end + else + --文件有断点, åˆ¤æ–­å‡½æ•°å†…æ˜¯å¦æœ‰æ–­ç‚¹ + local funHasBP = this.checkfuncHasBreakpoint(lastRunFunction.linedefined, lastRunFunction.lastlinedefined, lastRunFilePath); + if funHasBP then + --函数定义范围内 + this.changeHookState(hookState.ALL_HOOK); + else + this.changeHookState(hookState.MID_HOOK); + end + end + + --MID_HOOK状æ€ä¸‹ï¼Œreturn需è¦åœ¨ä¸‹ä¸€æ¬¡hook检查文件(returnæ—¶ï¼Œè¿˜æ˜¯å½“å‰æ–‡ä»¶ï¼Œæ£€æŸ¥æ–‡ä»¶æ—¶çŠ¶æ€æ— æ³•转æ¢ï¼‰ + if (event == "return" or event == "tail return") and currentHookState == hookState.MID_HOOK then + this.changeHookState(hookState.ALL_HOOK); + end + end + end +end + +-- å‘Vscodeå‘逿 ‡å‡†é€šçŸ¥æ¶ˆæ¯ï¼ŒcmdStr是消æ¯ç±»åž‹ +-- @cmdStr 命令字 +function this.SendMsgWithStack(cmdStr) + local msgTab = this.getMsgTable(cmdStr); + local userFuncLevel = 0; + msgTab["stack"] , userFuncLevel= this.getStackTable(); + if userFuncLevel ~= 0 then + lastRunFunction["func"] = debug.getinfo( (userFuncLevel - 1) , 'f').func; + end + this.sendMsg(msgTab); + this.debugger_wait_msg(); +end + +-- hookçŠ¶æ€æ”¹å˜ +-- @s ç›®æ ‡çŠ¶æ€ +function this.changeHookState( s ) + if hookLib == nil and currentHookState == s then + return; + end + + this.printToConsole("change hook state :"..s) + if s ~= hookState.DISCONNECT_HOOK then + this.printToVSCode("change hook state : "..s) + end + + currentHookState = s; + if s == hookState.DISCONNECT_HOOK then + --为了实现通用attach模å¼ï¼Œrequireå³å¼€å§‹hook,利用r作为时机å‘起连接 + if openAttachMode == true then + if hookLib then hookLib.lua_set_hookstate(hookState.DISCONNECT_HOOK); else debug.sethook(this.debug_hook, "r", 1000000); end + else + if hookLib then hookLib.endHook(); else debug.sethook(); end + end + elseif s == hookState.LITE_HOOK then + if hookLib then hookLib.lua_set_hookstate(hookState.LITE_HOOK); else debug.sethook(this.debug_hook, "r"); end + elseif s == hookState.MID_HOOK then + if hookLib then hookLib.lua_set_hookstate(hookState.MID_HOOK); else debug.sethook(this.debug_hook, "rc"); end + elseif s == hookState.ALL_HOOK then + if hookLib then hookLib.lua_set_hookstate(hookState.ALL_HOOK); else debug.sethook(this.debug_hook, "lrc");end + end + --coroutine + if hookLib == nil then + this.changeCoroutinesHookState(); + end +end + +-- è¿è¡ŒçŠ¶æ€æœºï¼Œçжæ€å˜æ›´ +-- @s ç›®æ ‡çŠ¶æ€ +-- @isFromHooklib 1:从libcåº“ä¸­å‘æ¥çš„çŠ¶æ€æ”¹å˜ | 0:lua呿¥çš„çŠ¶æ€æ”¹å˜ +function this.changeRunState(s , isFromHooklib) + local msgFrom; + if isFromHooklib == 1 then + msgFrom = "libc"; + else + msgFrom = "lua"; + end + + --WAIT_CMD状æ€ä¼šç­‰å¾…接收消æ¯ï¼Œä»¥ä¸‹ä¸¤ä¸ªçжæ€ä¸‹ä¸èƒ½å‘æ¶ˆæ¯ + this.printToConsole("changeRunState :"..s.. " | from:"..msgFrom); + if s ~= runState.DISCONNECT and s ~= runState.WAIT_CMD then + this.printToVSCode("changeRunState :"..s.." | from:"..msgFrom); + end + + if hookLib ~= nil and isFromHooklib ~= 1 then + hookLib.lua_set_runstate(s); + end + currentRunState = s; + --状æ€åˆ‡æ¢æ—¶ï¼Œæ¸…除记录栈信æ¯çš„çŠ¶æ€ + currentCallStack = {}; + variableRefTab = {}; + variableRefIdx = 1; +end + +-- 修改åç¨‹çŠ¶æ€ +-- @s hookæ ‡å¿—ä½ +function this.changeCoroutinesHookState(s) + s = s or currentHookState; + this.printToConsole("change [Coroutine] HookState: "..tostring(s)); + for k ,co in pairs(coroutinePool) do + if coroutine.status(co) == "dead" then + coroutinePool[k] = nil + else + this.changeCoroutineHookState(co, s) + end + end +end + +function this.changeCoroutineHookState(co, s) + if s == hookState.DISCONNECT_HOOK then + if openAttachMode == true then + debug.sethook(co, this.debug_hook, "r", 1000000); + else + debug.sethook(co, this.debug_hook, ""); + end + elseif s == hookState.LITE_HOOK then + debug.sethook(co , this.debug_hook, "r"); + elseif s == hookState.MID_HOOK then + debug.sethook(co , this.debug_hook, "rc"); + elseif s == hookState.ALL_HOOK then + debug.sethook(co , this.debug_hook, "lrc"); + end +end +-------------------------å˜é‡å¤„ç†ç›¸å…³----------------------------- + +--清空REPLçš„env环境 +function this.clearEnv() + if this.getTableMemberNum(env) > 0 then + --清空env table + env = setmetatable({}, getmetatable(env)); + end +end + +--返回REPLçš„env环境 +function this.showEnv() + return env; +end + +-- 用户观察table的查找函数。用tableVarName作为key去查é€å±‚级查找realVar是å¦åŒ¹é… +-- @tableVarName 是用户观察的å˜é‡åï¼Œå·²ç»æŒ‰å±‚çº§è¢«è§£æžæˆtable。比如用户输出a.b.c,tableVarName是 a = { b = { c } } +-- @realVar 是待查询 table +-- @return 返回查到的table。没查到返回nil +function this.findTableVar( tableVarName, realVar) + if type(tableVarName) ~= "table" or type(realVar) ~= "table" then + return nil; + end + + local layer = 2; + local curVar = realVar; + local jumpOutFlag = false; + repeat + if tableVarName[layer] ~= nil then + --这里优先展示数字key,比如a{"1" = "aa", [1] = "bb"} 会展示[1]的值 + local tmpCurVar = nil; + xpcall(function() tmpCurVar = curVar[tonumber(tableVarName[layer])]; end , function() tmpCurVar = nil end ); + if tmpCurVar == nil then + xpcall(function() curVar = curVar[tostring(tableVarName[layer])]; end , function() curVar = nil end ); + else + curVar = tmpCurVar; + end + layer = layer + 1; + if curVar == nil then + return nil; + end + else + --找到 + jumpOutFlag = true; + end + until(jumpOutFlag == true) + return curVar; +end + +-- æ ¹æ®ä¼ å…¥ä¿¡æ¯ç”Ÿæˆè¿”回的å˜é‡ä¿¡æ¯ +-- @variableName å˜é‡å +-- @variableIns å˜é‡å®žä¾‹ +-- @return 包å«å˜é‡ä¿¡æ¯çš„æ ¼å¼åŒ–table +function this.createWatchedVariableInfo(variableName, variableIns) + local var = {}; + var.name = variableName; + var.type = tostring(type(variableIns)); + xpcall(function() var.value = tostring(variableIns) end , function() var.value = tostring(type(variableIns)) .. " [value can't trans to string]" end ); + var.variablesReference = "0"; --这个地方必须用“0â€ï¼Œ 以å…variableRefTab[0]出错 + + if var.type == "table" or var.type == "function" or var.type == "userdata" then + var.variablesReference = variableRefIdx; + variableRefTab[variableRefIdx] = variableIns; + variableRefIdx = variableRefIdx + 1; + if var.type == "table" then + local memberNum = this.getTableMemberNum(variableIns); + var.value = memberNum .." Members ".. var.value; + end + elseif var.type == "string" then + var.value = '"' ..variableIns.. '"'; + end + return var; +end + +-- 设置 global å˜é‡ +-- @varName 被修改的å˜é‡å +-- @newValue 新的值 +function this.setGlobal(varName, newValue) + _G[varName] = newValue; + this.printToVSCode("[setVariable success] 已设置 _G.".. varName .. " = " .. tostring(newValue) ); + return true; +end + +-- 设置 upvalue å˜é‡ +-- @varName 被修改的å˜é‡å +-- @newValue 新的值 +-- @stackId å˜é‡æ‰€åœ¨stack栈层 +-- @tableVarName å˜é‡å拆分æˆçš„æ•°ç»„ +function this.setUpvalue(varName, newValue, stackId, tableVarName) + local ret = false; + local upTable = this.getUpValueVariable(currentCallStack[stackId - 1 ].func, true); + for i, realVar in ipairs(upTable) do + if realVar.name == varName then + if #tableVarName > 0 and type(realVar) == "table" then + --处ç†a.b.cçš„table类型 + local findRes = this.findTableVar(tableVarName, variableRefTab[realVar.variablesReference]); + if findRes ~= nil then + --命中 + local setVarRet = debug.setupvalue (currentCallStack[stackId - 1 ].func, i, newValue); + if setVarRet == varName then + this.printToConsole("[setVariable success1] 已设置 upvalue ".. varName .. " = " .. tostring(newValue) ); + ret = true; + else + this.printToConsole("[setVariable error1] 未能设置 upvalue ".. varName .. " = " .. tostring(newValue).." , 返回结果: ".. tostring(setVarRet)); + end + return ret; + end + else + --命中 + local setVarRet = debug.setupvalue (currentCallStack[stackId - 1 ].func, i, newValue); + if setVarRet == varName then + this.printToConsole("[setVariable success] 已设置 upvalue ".. varName .. " = " .. tostring(newValue) ); + ret = true; + else + this.printToConsole("[setVariable error] 未能设置 upvalue ".. varName .. " = " .. tostring(newValue).." , 返回结果: ".. tostring(setVarRet)); + end + return ret; + end + end + end + return ret; +end + +-- 设置local å˜é‡ +-- @varName 被修改的å˜é‡å +-- @newValue 新的值 +-- @tableVarName å˜é‡å拆分æˆçš„æ•°ç»„ +function this.setLocal( varName, newValue, tableVarName, stackId) + local istackId = tonumber(stackId); + local offset = (istackId and istackId - 2) or 0; + local layerVarTab, ly = this.getVariable(nil , true, offset); + local ret = false; + for i, realVar in ipairs(layerVarTab) do + if realVar.name == varName then + if #tableVarName > 0 and type(realVar) == "table" then + --处ç†a.b.cçš„table类型 + local findRes = this.findTableVar(tableVarName, variableRefTab[realVar.variablesReference]); + if findRes ~= nil then + --命中 + local setVarRet = debug.setlocal(ly , layerVarTab[i].index, newValue); + if setVarRet == varName then + this.printToConsole("[setVariable success1] 已设置 local ".. varName .. " = " .. tostring(newValue) ); + ret = true; + else + this.printToConsole("[setVariable error1] 未能设置 local ".. varName .. " = " .. tostring(newValue).." , 返回结果: ".. tostring(setVarRet)); + end + return ret; + end + else + + local setVarRet = debug.setlocal(ly , layerVarTab[i].index, newValue); + + if setVarRet == varName then + this.printToConsole("[setVariable success] 已设置 local ".. varName .. " = " .. tostring(newValue) ); + ret = true; + else + this.printToConsole("[setVariable error] 未能设置 local ".. varName .. " = " .. tostring(newValue) .." , 返回结果: ".. tostring(setVarRet)); + end + return ret; + end + end + end + return ret; +end + + +-- 设置å˜é‡çš„值 +-- @varName 被修改的å˜é‡å +-- @curStackId 调用栈层级(仅在固定栈层查找) +-- @newValue 新的值 +-- @limit é™åˆ¶ç¬¦ï¼Œ 10000表示仅在局部å˜é‡æŸ¥æ‰¾ ,20000 global, 30000 upvalue +function this.setVariableValue (varName, stackId, newValue , limit) + this.printToConsole("setVariableValue | varName:" .. tostring(varName) .. " stackId:".. tostring(stackId) .." newValue:" .. tostring(newValue) .." limit:"..tostring(limit) ) + if tostring(varName) == nil or tostring(varName) == "" then + --赋值错误 + this.printToConsole("[setVariable Error] 被赋值的å˜é‡å为空", 2 ); + this.printToVSCode("[setVariable Error] 被赋值的å˜é‡å为空", 2 ); + return false; + end + + --支æŒa.b.cå½¢å¼ã€‚切割varName + local tableVarName = {}; + if varName:match('%.') then + tableVarName = this.stringSplit(varName , '%.'); + if type(tableVarName) ~= "table" or #tableVarName < 1 then + return false; + end + varName = tableVarName[1]; + end + + if limit == "local" then + local ret = this.setLocal( varName, newValue, tableVarName, stackId); + return ret; + elseif limit == "upvalue" then + local ret = this.setUpvalue(varName, newValue, stackId, tableVarName); + return ret + elseif limit == "global" then + local ret = this.setGlobal(varName, newValue); + return ret; + else + local ret = this.setLocal( varName, newValue, tableVarName, stackId) or this.setUpvalue(varName, newValue, stackId, tableVarName) or this.setGlobal(varName, newValue); + this.printToConsole("set Value res :".. tostring(ret)); + return ret; + end +end + +-- 按照local -> upvalue -> _G é¡ºåºæŸ¥æ‰¾è§‚察å˜é‡ +-- @varName 用户输入的å˜é‡å +-- @stackId 调用栈层级(仅在固定栈层查找) +-- @isFormatVariable æ˜¯å¦æŠŠå˜é‡æ ¼å¼åŒ–为VSCodeæŽ¥æ”¶çš„å½¢å¼ +-- @return 查到返回信æ¯ï¼ŒæŸ¥ä¸åˆ°è¿”回nil +function this.getWatchedVariable( varName , stackId , isFormatVariable ) + this.printToConsole("getWatchedVariable | varName:" .. tostring(varName) .. " stackId:".. tostring(stackId) .." isFormatVariable:" .. tostring(isFormatVariable) ) + if tostring(varName) == nil or tostring(varName) == "" then + return nil; + end + + if type(currentCallStack[stackId - 1]) ~= "table" or type(currentCallStack[stackId - 1].func) ~= "function" then + local str = "getWatchedVariable currentCallStack " .. stackId - 1 .. " Error\n" .. this.serializeTable(currentCallStack, "currentCallStack"); + this.printToVSCode(str, 2); + return nil; + end + + --orgname 记录原åå­—. 用æ¥å¤„ç†a.b.cçš„å½¢å¼ + local orgname = varName; + --支æŒa.b.cå½¢å¼ã€‚切割varName + local tableVarName = {}; + if varName:match('%.') then + tableVarName = this.stringSplit(varName , '%.'); + if type(tableVarName) ~= "table" or #tableVarName < 1 then + return nil; + end + varName = tableVarName[1]; + end + --用æ¥è¿”回,带有查到å˜é‡çš„table + local varTab = {}; + local ly = this.getSpecificFunctionStackLevel(currentCallStack[stackId - 1].func); + + local layerVarTab = this.getVariable(ly, isFormatVariable); + local upTable = this.getUpValueVariable(currentCallStack[stackId - 1 ].func, isFormatVariable); + local travelTab = {}; + table.insert(travelTab, layerVarTab); + table.insert(travelTab, upTable); + for _, layerVarTab in ipairs(travelTab) do + for i,realVar in ipairs(layerVarTab) do + if realVar.name == varName then + if #tableVarName > 0 and type(realVar) == "table" then + --处ç†a.b.cçš„table类型 + local findRes = this.findTableVar(tableVarName, variableRefTab[realVar.variablesReference]); + if findRes ~= nil then + --命中 + if isFormatVariable then + local var = this.createWatchedVariableInfo( orgname , findRes ); + table.insert(varTab, var); + return varTab; + else + return findRes.value; + end + end + else + --命中 + if isFormatVariable then + table.insert(varTab, realVar); + return varTab; + else + return realVar.value; + end + end + end + end + end + + --在全局å˜é‡_G中查找 + if _G[varName] ~= nil then + --命中 + if #tableVarName > 0 and type(_G[varName]) == "table" then + local findRes = this.findTableVar(tableVarName, _G[varName]); + if findRes ~= nil then + if isFormatVariable then + local var = this.createWatchedVariableInfo( orgname , findRes ); + table.insert(varTab, var); + return varTab; + else + return findRes; + end + end + else + if isFormatVariable then + local var = this.createWatchedVariableInfo( varName , _G[varName] ); + table.insert(varTab, var); + return varTab; + else + return _G[varName]; + end + end + end + this.printToConsole("getWatchedVariable not find variable"); + return nil; +end + +-- 查询引用å˜é‡ +-- @refStr å˜é‡è®°å½•id(variableRefTab索引) +-- @return æ ¼å¼åŒ–çš„å˜é‡ä¿¡æ¯table +function this.getVariableRef( refStr ) + local varRef = tonumber(refStr); + local varTab = {}; + + if tostring(type(variableRefTab[varRef])) == "table" then + for n,v in pairs(variableRefTab[varRef]) do + local var = {}; + if type(n) == "string" then + var.name = '"' .. tostring(n) .. '"'; + else + var.name = tostring(n); + end + var.type = tostring(type(v)); + xpcall(function() var.value = tostring(v) end , function() var.value = tostring(type(v)) .. " [value can't trans to string]" end ); + var.variablesReference = "0"; + if var.type == "table" or var.type == "function" or var.type == "userdata" then + var.variablesReference = variableRefIdx; + variableRefTab[variableRefIdx] = v; + variableRefIdx = variableRefIdx + 1; + if var.type == "table" then + local memberNum = this.getTableMemberNum(v); + var.value = memberNum .." Members ".. ( var.value or '' ); + end + elseif var.type == "string" then + var.value = '"' ..v.. '"'; + end + table.insert(varTab, var); + end + --获å–一下mtTable + local mtTab = getmetatable(variableRefTab[varRef]); + if mtTab ~= nil and type(mtTab) == "table" then + local var = {}; + var.name = "_Metatable_"; + var.type = tostring(type(mtTab)); + xpcall(function() var.value = "元表 "..tostring(mtTab); end , function() var.value = "元表 [value can't trans to string]" end ); + var.variablesReference = variableRefIdx; + variableRefTab[variableRefIdx] = mtTab; + variableRefIdx = variableRefIdx + 1; + table.insert(varTab, var); + end + elseif tostring(type(variableRefTab[varRef])) == "function" then + --å–upvalue + varTab = this.getUpValueVariable(variableRefTab[varRef], true); + elseif tostring(type(variableRefTab[varRef])) == "userdata" then + --å–mt table + local udMtTable = getmetatable(variableRefTab[varRef]); + if udMtTable ~= nil and type(udMtTable) == "table" then + local var = {}; + var.name = "_Metatable_"; + var.type = tostring(type(udMtTable)); + xpcall(function() var.value = "元表 "..tostring(udMtTable); end , function() var.value = "元表 [value can't trans to string]" end ); + var.variablesReference = variableRefIdx; + variableRefTab[variableRefIdx] = udMtTable; + variableRefIdx = variableRefIdx + 1; + table.insert(varTab, var); + + if traversalUserData and udMtTable.__pairs ~= nil and type(udMtTable.__pairs) == "function" then + for n,v in pairs(variableRefTab[varRef]) do + local var = {}; + var.name = tostring(n); + var.type = tostring(type(v)); + xpcall(function() var.value = tostring(v) end , function() var.value = tostring(type(v)) .. " [value can't trans to string]" end ); + var.variablesReference = "0"; + if var.type == "table" or var.type == "function" or var.type == "userdata" then + var.variablesReference = variableRefIdx; + variableRefTab[variableRefIdx] = v; + variableRefIdx = variableRefIdx + 1; + if var.type == "table" then + local memberNum = this.getTableMemberNum(v); + var.value = memberNum .." Members ".. ( var.value or '' ); + end + elseif var.type == "string" then + var.value = '"' ..v.. '"'; + end + table.insert(varTab, var); + end + end + end + end + return varTab; +end + +-- 获å–全局å˜é‡ã€‚方法和内存管ç†ä¸­èŽ·å–全局å˜é‡çš„æ–¹æ³•一样 +-- @return æ ¼å¼åŒ–的信æ¯, 若未找到返回空table +function this.getGlobalVariable( ... ) + --æˆæœ¬æ¯”较高,这里åªèƒ½é历_G中的所有å˜é‡ï¼Œå¹¶åŽ»é™¤ç³»ç»Ÿå˜é‡ï¼Œå†è¿”回给客户端 + local varTab = {}; + for k,v in pairs(_G) do + local var = {}; + var.name = tostring(k); + var.type = tostring(type(v)); + xpcall(function() var.value = tostring(v) end , function() var.value = tostring(type(v)) .." [value can't trans to string]" end ); + var.variablesReference = "0"; + if var.type == "table" or var.type == "function" or var.type == "userdata" then + var.variablesReference = variableRefIdx; + variableRefTab[variableRefIdx] = v; + variableRefIdx = variableRefIdx + 1; + if var.type == "table" then + local memberNum = this.getTableMemberNum(v); + var.value = memberNum .." Members ".. ( var.value or '' ); + end + elseif var.type == "string" then + var.value = '"' ..v.. '"'; + end + table.insert(varTab, var); + end + return varTab; +end + +-- 获å–upValues +-- @isFormatVariable true返回[值] true返回[æ ¼å¼åŒ–的数æ®] +function this.getUpValueVariable( checkFunc , isFormatVariable) + local isGetValue = true; + if isFormatVariable == true then + isGetValue = false; + end + + --通过Debug获å–当å‰å‡½æ•°çš„Func + checkFunc = checkFunc or lastRunFunction.func; + + local varTab = {}; + if checkFunc == nil then + return varTab; + end + local i = 1 + repeat + local n, v = debug.getupvalue(checkFunc, i) + if n then + + local var = {}; + var.name = n; + var.type = tostring(type(v)); + var.variablesReference = "0"; + + if isGetValue == false then + xpcall(function() var.value = tostring(v) end , function() var.value = tostring(type(v)) .. " [value can't trans to string]" end ); + if var.type == "table" or var.type == "function" or var.type == "userdata" then + var.variablesReference = variableRefIdx; + variableRefTab[variableRefIdx] = v; + variableRefIdx = variableRefIdx + 1; + if var.type == "table" then + local memberNum = this.getTableMemberNum(v); + var.value = memberNum .." Members ".. ( var.value or '' ); + end + elseif var.type == "string" then + var.value = '"' ..v.. '"'; + end + else + var.value = v; + end + + table.insert(varTab, var); + i = i + 1 + end + until not n + return varTab; +end + +-- 获å–局部å˜é‡ checkLayeræ˜¯è¦æŸ¥è¯¢çš„层级,如果ä¸è®¾ç½®åˆ™æŸ¥è¯¢å½“å‰å±‚级 +-- @isFormatVariable 是å¦å–值,true:å–值的tostring +function this.getVariable( checkLayer, isFormatVariable , offset) + local isGetValue = true; + if isFormatVariable == true then + isGetValue = false; + end + + local ly = 0; + if checkLayer ~= nil and type(checkLayer) == "number" then ly = checkLayer + 1; + else ly = this.getSpecificFunctionStackLevel(lastRunFunction.func); end + + if ly == 0 then + this.printToVSCode("[error]获å–层次失败ï¼", 2); + return; + end + local varTab = {}; + local stacklayer = ly; + local k = 1; + + if type(offset) == 'number' then + stacklayer = stacklayer + offset; + end + + repeat + local n, v = debug.getlocal(stacklayer, k) + if n == nil then + break; + end + + --(*temporary)是系统å˜é‡ï¼Œè¿‡æ»¤æŽ‰ã€‚这里å‡è®¾(*temporary)ä»…å‡ºçŽ°åœ¨æœ€åŽ + if "(*temporary)" ~= tostring(n) and "(temporary)" ~= tostring(n) then + local var = {}; + var.name = n; + var.type = tostring(type(v)); + var.variablesReference = "0"; + var.index = k; + + if isGetValue == false then + xpcall(function() var.value = tostring(v) end , function() var.value = tostring(type(v)) .. " [value can't trans to string]" end ); + if var.type == "table" or var.type == "function" or var.type == "userdata" then + var.variablesReference = variableRefIdx; + variableRefTab[variableRefIdx] = v; + variableRefIdx = variableRefIdx + 1; + if var.type == "table" then + local memberNum = this.getTableMemberNum(v); + var.value = memberNum .." Members ".. ( var.value or '' ); + end + elseif var.type == "string" then + var.value = '"' ..v.. '"'; + end + else + var.value = v; + end + + local sameIdx = this.checkSameNameVar(varTab, var); + if sameIdx ~= 0 then + varTab[sameIdx] = var; + else + table.insert(varTab, var); + end + end + k = k + 1 + until n == nil + return varTab, stacklayer - 1; +end + +--检查å˜é‡åˆ—表中的åŒåå˜é‡ +function this.checkSameNameVar(varTab, var) + for k , v in pairs(varTab) do + if v.name == var.name then + return k; + end + end + return 0; +end + +-- æ‰§è¡Œè¡¨è¾¾å¼ +function this.processExp(msgTable) + local retString; + local var = {}; + var.isSuccess = "true"; + if msgTable ~= nil then + local expression = this.trim(tostring(msgTable.Expression)); + local isCmd = false; + if isCmd == false then + --兼容旧版p 命令 + if expression:find("p ", 1, true) == 1 then + expression = expression:sub(3); + end + + local expressionWithReturn = "return " .. expression; + local f = debugger_loadString(expressionWithReturn) or debugger_loadString(expression); + --判断结果,如果表达å¼é”™è¯¯ä¼šè¿”回nil + if type(f) == "function" then + if _VERSION == "Lua 5.1" then + setfenv(f , env); + else + debug.setupvalue(f, 1, env); + end + --表达å¼è¦æœ‰é”™è¯¯å¤„ç† + xpcall(function() retString = f() end , function() retString = "输入错误指令。\n + è¯·æ£€æŸ¥æŒ‡ä»¤æ˜¯å¦æ­£ç¡®\n + 指令仅能在[æš‚åœåœ¨æ–­ç‚¹æ—¶]输入, 请ä¸è¦åœ¨ç¨‹åºæŒç»­è¿è¡Œæ—¶è¾“å…¥"; var.isSuccess = false; end) + else + retString = "指令执行错误。\n + è¯·æ£€æŸ¥æŒ‡ä»¤æ˜¯å¦æ­£ç¡®\n + å¯ä»¥ç›´æŽ¥è¾“入表达å¼ï¼Œæ‰§è¡Œå‡½æ•°æˆ–å˜é‡å,并观察执行结果"; + var.isSuccess = false; + end + end + end + + var.name = "Exp"; + var.type = tostring(type(retString)); + xpcall(function() var.value = tostring(retString) end , function(e) var.value = tostring(type(retString)) .. " [value can't trans to string] ".. e; var.isSuccess = false; end); + var.variablesReference = "0"; + if var.type == "table" or var.type == "function" or var.type == "userdata" then + variableRefTab[variableRefIdx] = retString; + var.variablesReference = variableRefIdx; + variableRefIdx = variableRefIdx + 1; + if var.type == "table" then + local memberNum = this.getTableMemberNum(retString); + var.value = memberNum .." Members ".. var.value; + end + elseif var.type == "string" then + var.value = '"' ..retString.. '"'; + end + --stringæ‰§è¡Œå®Œæ¯•åŽæ¸…空env环境 + this.clearEnv(); + local retTab = {} + table.insert(retTab ,var); + return retTab; +end + +--执行å˜é‡è§‚å¯Ÿè¡¨è¾¾å¼ +function this.processWatchedExp(msgTable) + local retString; + local expression = "return ".. tostring(msgTable.varName) + this.printToConsole("processWatchedExp | expression: " .. expression); + local f = debugger_loadString(expression); + local var = {}; + var.isSuccess = "true"; + --判断结果,如果表达å¼é”™è¯¯ä¼šè¿”回nil + if type(f) == "function" then + --è¡¨è¾¾å¼æ­£ç¡® + if _VERSION == "Lua 5.1" then + setfenv(f , env); + else + debug.setupvalue(f, 1, env); + end + xpcall(function() retString = f() end , function() retString = "输入了错误的å˜é‡ä¿¡æ¯"; var.isSuccess = "false"; end) + else + retString = "未能找到å˜é‡çš„值"; + var.isSuccess = "false"; + end + + var.name = msgTable.varName; + var.type = tostring(type(retString)); + xpcall(function() var.value = tostring(retString) end , function() var.value = tostring(type(retString)) .. " [value can't trans to string]"; var.isSuccess = "false"; end ); + var.variablesReference = "0"; + + if var.type == "table" or var.type == "function" or var.type == "userdata" then + variableRefTab[variableRefIdx] = retString; + var.variablesReference = variableRefIdx; + variableRefIdx = variableRefIdx + 1; + if var.type == "table" then + local memberNum = this.getTableMemberNum(retString); + var.value = memberNum .." Members ".. var.value; + end + elseif var.type == "string" then + var.value = '"' ..retString.. '"'; + end + + local retTab = {} + table.insert(retTab ,var); + return retTab; +end + + +function tools.getFileSource() + local info = debug.getinfo(1, "S") + for k,v in pairs(info) do + if k == "source" then + return v; + end + end +end + +--åºåˆ—化并打å°table +function tools.printTable(t, name ,indent) + local str = (tools.show(t, name, indent)); + print(str); +end + +--åºåˆ—化并返回table +function tools.serializeTable(t, name, indent) + local str = (tools.show(t, name, indent)) + return str +end + +--[[ +Author: Julio Manuel Fernandez-Diaz +Date: January 12, 2007 +Modified slightly by RiciLake to avoid the unnecessary table traversal in tablecount() +Formats tables with cycles recursively to any depth. +The output is returned as a string. +References to other tables are shown as values. +Self references are indicated. +The string returned is "Lua code", which can be procesed +(in the case in which indent is composed by spaces or "--"). +Userdata and function keys and values are shown as strings, +which logically are exactly not equivalent to the original code. +This routine can serve for pretty formating tables with +proper indentations, apart from printing them: +print(table.show(t, "t")) -- a typical use +Heavily based on "Saving tables with cycles", PIL2, p. 113. +Arguments: +t is the table. +name is the name of the table (optional) +indent is a first indentation (optional). +--]] +function tools.show(t, name, indent) + local cart -- a container + local autoref -- for self references + + local function isemptytable(t) return next(t) == nil end + + local function basicSerialize (o) + local so = tostring(o) + if type(o) == "function" then + local info = debug.getinfo(o, "S") + -- info.name is nil because o is not a calling level + if info.what == "C" then + return string.format("%q", so .. ", C function") + else + -- the information is defined through lines + return string.format("%q", so .. ", defined in (" .. + info.linedefined .. "-" .. info.lastlinedefined .. + ")" .. info.source) + end + elseif type(o) == "number" or type(o) == "boolean" then + return so + else + return string.format("%q", so) + end + end + + local function addtocart (value, name, indent, saved, field) + indent = indent or "" + saved = saved or {} + field = field or name + + cart = cart .. indent .. field + + if type(value) ~= "table" then + cart = cart .. " = " .. basicSerialize(value) .. ";\n" + else + if saved[value] then + cart = cart .. " = {}; -- " .. saved[value] + .. " (self reference)\n" + autoref = autoref .. name .. " = " .. saved[value] .. ";\n" + else + saved[value] = name + --if tablecount(value) == 0 then + if isemptytable(value) then + cart = cart .. " = {};\n" + else + cart = cart .. " = {\n" + for k, v in pairs(value) do + k = basicSerialize(k) + local fname = string.format("%s[%s]", name, k) + field = string.format("[%s]", k) + -- three spaces between levels + addtocart(v, fname, indent .. " ", saved, field) + end + cart = cart .. indent .. "};\n" + end + end + end + end + + name = name or "PRINT_Table" + if type(t) ~= "table" then + return name .. " = " .. basicSerialize(t) + end + cart, autoref = "", "" + addtocart(t, name, indent) + return cart .. autoref +end + +----------------------------------------------------------------------------- +-- JSON4Lua: JSON encoding / decoding support for the Lua language. +-- json Module. +-- Author: Craig Mason-Jones +-- Homepage: http://github.com/craigmj/json4lua/ +-- Version: 1.0.0 +-- This module is released under the MIT License (MIT). +-- Please see LICENCE.txt for details. +-- +-- USAGE: +-- This module exposes two functions: +-- json.encode(o) +-- Returns the table / string / boolean / number / nil / json.null value as a JSON-encoded string. +-- json.decode(json_string) +-- Returns a Lua object populated with the data encoded in the JSON string json_string. +-- +-- REQUIREMENTS: +-- compat-5.1 if using Lua 5.0 +-- +-- CHANGELOG +-- 0.9.20 Introduction of local Lua functions for private functions (removed _ function prefix). +-- Fixed Lua 5.1 compatibility issues. +-- Introduced json.null to have null values in associative arrays. +-- json.encode() performance improvement (more than 50%) through table.concat rather than .. +-- Introduced decode ability to ignore /**/ comments in the JSON string. +-- 0.9.10 Fix to array encoding / decoding to correctly manage nil/null values in arrays. +----------------------------------------------------------------------------- + +function tools.createJson() + ----------------------------------------------------------------------------- + -- Imports and dependencies + ----------------------------------------------------------------------------- + local math = require('math') + local string = require("string") + local table = require("table") + + ----------------------------------------------------------------------------- + -- Module declaration + ----------------------------------------------------------------------------- + local json = {} -- Public namespace + local json_private = {} -- Private namespace + + -- Public constants + json.EMPTY_ARRAY={} + json.EMPTY_OBJECT={} + + -- Public functions + + -- Private functions + local decode_scanArray + local decode_scanComment + local decode_scanConstant + local decode_scanNumber + local decode_scanObject + local decode_scanString + local decode_scanWhitespace + local encodeString + local isArray + local isEncodable + + ----------------------------------------------------------------------------- + -- PUBLIC FUNCTIONS + ----------------------------------------------------------------------------- + --- Encodes an arbitrary Lua object / variable. + -- @param v The Lua object / variable to be JSON encoded. + -- @return String containing the JSON encoding in internal Lua string format (i.e. not unicode) + function json.encode (v) + -- Handle nil values + if v==nil then + return "null" + end + + local vtype = type(v) + + -- Handle strings + if vtype=='string' then + return '"' .. json_private.encodeString(v) .. '"' -- Need to handle encoding in string + end + + -- Handle booleans + if vtype=='number' or vtype=='boolean' then + return tostring(v) + end + + -- Handle tables + if vtype=='table' then + local rval = {} + -- Consider arrays separately + local bArray, maxCount = isArray(v) + if bArray then + for i = 1,maxCount do + table.insert(rval, json.encode(v[i])) + end + else -- An object, not an array + for i,j in pairs(v) do + if isEncodable(i) and isEncodable(j) then + table.insert(rval, '"' .. json_private.encodeString(i) .. '":' .. json.encode(j)) + end + end + end + if bArray then + return '[' .. table.concat(rval,',') ..']' + else + return '{' .. table.concat(rval,',') .. '}' + end + end + + -- Handle null values + if vtype=='function' and v==json.null then + return 'null' + end + + assert(false,'encode attempt to encode unsupported type ' .. vtype .. ':' .. tostring(v)) + end + + + --- Decodes a JSON string and returns the decoded value as a Lua data structure / value. + -- @param s The string to scan. + -- @param [startPos] Optional starting position where the JSON string is located. Defaults to 1. + -- @param Lua object, number The object that was scanned, as a Lua table / string / number / boolean or nil, + -- and the position of the first character after + -- the scanned JSON object. + function json.decode(s, startPos) + startPos = startPos and startPos or 1 + startPos = decode_scanWhitespace(s,startPos) + assert(startPos<=string.len(s), 'Unterminated JSON encoded object found at position in [' .. s .. ']') + local curChar = string.sub(s,startPos,startPos) + -- Object + if curChar=='{' then + return decode_scanObject(s,startPos) + end + -- Array + if curChar=='[' then + return decode_scanArray(s,startPos) + end + -- Number + if string.find("+-0123456789.e", curChar, 1, true) then + return decode_scanNumber(s,startPos) + end + -- String + if curChar==[["]] or curChar==[[']] then + return decode_scanString(s,startPos) + end + if string.sub(s,startPos,startPos+1)=='/*' then + return json.decode(s, decode_scanComment(s,startPos)) + end + -- Otherwise, it must be a constant + return decode_scanConstant(s,startPos) + end + + --- The null function allows one to specify a null value in an associative array (which is otherwise + -- discarded if you set the value with 'nil' in Lua. Simply set t = { first=json.null } + function json.null() + return json.null -- so json.null() will also return null ;-) + end + ----------------------------------------------------------------------------- + -- Internal, PRIVATE functions. + -- Following a Python-like convention, I have prefixed all these 'PRIVATE' + -- functions with an underscore. + ----------------------------------------------------------------------------- + + --- Scans an array from JSON into a Lua object + -- startPos begins at the start of the array. + -- Returns the array and the next starting position + -- @param s The string being scanned. + -- @param startPos The starting position for the scan. + -- @return table, int The scanned array as a table, and the position of the next character to scan. + function decode_scanArray(s,startPos) + local array = {} -- The return value + local stringLen = string.len(s) + assert(string.sub(s,startPos,startPos)=='[','decode_scanArray called but array does not start at position ' .. startPos .. ' in string:\n'..s ) + startPos = startPos + 1 + -- Infinite loop for array elements + local index = 1 + repeat + startPos = decode_scanWhitespace(s,startPos) + assert(startPos<=stringLen,'JSON String ended unexpectedly scanning array.') + local curChar = string.sub(s,startPos,startPos) + if (curChar==']') then + return array, startPos+1 + end + if (curChar==',') then + startPos = decode_scanWhitespace(s,startPos+1) + end + assert(startPos<=stringLen, 'JSON String ended unexpectedly scanning array.') + local object + object, startPos = json.decode(s,startPos) + array[index] = object + index = index + 1 + until false + end + + --- Scans a comment and discards the comment. + -- Returns the position of the next character following the comment. + -- @param string s The JSON string to scan. + -- @param int startPos The starting position of the comment + function decode_scanComment(s, startPos) + assert( string.sub(s,startPos,startPos+1)=='/*', "decode_scanComment called but comment does not start at position " .. startPos) + local endPos = string.find(s,'*/',startPos+2) + assert(endPos~=nil, "Unterminated comment in string at " .. startPos) + return endPos+2 + end + + --- Scans for given constants: true, false or null + -- Returns the appropriate Lua type, and the position of the next character to read. + -- @param s The string being scanned. + -- @param startPos The position in the string at which to start scanning. + -- @return object, int The object (true, false or nil) and the position at which the next character should be + -- scanned. + function decode_scanConstant(s, startPos) + local consts = { ["true"] = true, ["false"] = false, ["null"] = nil } + local constNames = {"true","false","null"} + + for i,k in pairs(constNames) do + if string.sub(s,startPos, startPos + string.len(k) -1 )==k then + return consts[k], startPos + string.len(k) + end + end + assert(nil, 'Failed to scan constant from string ' .. s .. ' at starting position ' .. startPos) + end + + --- Scans a number from the JSON encoded string. + -- (in fact, also is able to scan numeric +- eqns, which is not + -- in the JSON spec.) + -- Returns the number, and the position of the next character + -- after the number. + -- @param s The string being scanned. + -- @param startPos The position at which to start scanning. + -- @return number, int The extracted number and the position of the next character to scan. + function decode_scanNumber(s,startPos) + local endPos = startPos+1 + local stringLen = string.len(s) + local acceptableChars = "+-0123456789.e" + while (string.find(acceptableChars, string.sub(s,endPos,endPos), 1, true) + and endPos<=stringLen + ) do + endPos = endPos + 1 + end + -- local stringValue = 'return ' .. string.sub(s, startPos, endPos - 1) + -- local stringEval = loadstring(stringValue) + -- assert(stringEval, 'Failed to scan number [ ' .. stringValue .. '] in JSON string at position ' .. startPos .. ' : ' .. endPos) + local numberValue = string.sub(s, startPos, endPos - 1) + return numberValue, endPos + end + + --- Scans a JSON object into a Lua object. + -- startPos begins at the start of the object. + -- Returns the object and the next starting position. + -- @param s The string being scanned. + -- @param startPos The starting position of the scan. + -- @return table, int The scanned object as a table and the position of the next character to scan. + function decode_scanObject(s,startPos) + local object = {} + local stringLen = string.len(s) + local key, value + assert(string.sub(s,startPos,startPos)=='{','decode_scanObject called but object does not start at position ' .. startPos .. ' in string:\n' .. s) + startPos = startPos + 1 + repeat + startPos = decode_scanWhitespace(s,startPos) + assert(startPos<=stringLen, 'JSON string ended unexpectedly while scanning object.') + local curChar = string.sub(s,startPos,startPos) + if (curChar=='}') then + return object,startPos+1 + end + if (curChar==',') then + startPos = decode_scanWhitespace(s,startPos+1) + end + assert(startPos<=stringLen, 'JSON string ended unexpectedly scanning object.') + -- Scan the key + key, startPos = json.decode(s,startPos) + assert(startPos<=stringLen, 'JSON string ended unexpectedly searching for value of key ' .. key) + startPos = decode_scanWhitespace(s,startPos) + assert(startPos<=stringLen, 'JSON string ended unexpectedly searching for value of key ' .. key) + assert(string.sub(s,startPos,startPos)==':','JSON object key-value assignment mal-formed at ' .. startPos) + startPos = decode_scanWhitespace(s,startPos+1) + assert(startPos<=stringLen, 'JSON string ended unexpectedly searching for value of key ' .. key) + value, startPos = json.decode(s,startPos) + object[key]=value + until false -- infinite loop while key-value pairs are found + end + + -- START SoniEx2 + -- Initialize some things used by decode_scanString + -- You know, for efficiency + local escapeSequences = { + ["\\t"] = "\t", + ["\\f"] = "\f", + ["\\r"] = "\r", + ["\\n"] = "\n", + ["\\b"] = "\b" + } + setmetatable(escapeSequences, {__index = function(t,k) + -- skip "\" aka strip escape + return string.sub(k,2) + end}) + -- END SoniEx2 + + --- Scans a JSON string from the opening inverted comma or single quote to the + -- end of the string. + -- Returns the string extracted as a Lua string, + -- and the position of the next non-string character + -- (after the closing inverted comma or single quote). + -- @param s The string being scanned. + -- @param startPos The starting position of the scan. + -- @return string, int The extracted string as a Lua string, and the next character to parse. + function decode_scanString(s,startPos) + assert(startPos, 'decode_scanString(..) called without start position') + local startChar = string.sub(s,startPos,startPos) + -- START SoniEx2 + -- PS: I don't think single quotes are valid JSON + assert(startChar == [["]] or startChar == [[']],'decode_scanString called for a non-string') + --assert(startPos, "String decoding failed: missing closing " .. startChar .. " for string at position " .. oldStart) + local t = {} + local i,j = startPos,startPos + while string.find(s, startChar, j+1) ~= j+1 do + local oldj = j + i,j = string.find(s, "\\.", j+1) + local x,y = string.find(s, startChar, oldj+1) + if not i or x < i then + i,j = x,y-1 + end + table.insert(t, string.sub(s, oldj+1, i-1)) + if string.sub(s, i, j) == "\\u" then + local a = string.sub(s,j+1,j+4) + j = j + 4 + local n = tonumber(a, 16) + assert(n, "String decoding failed: bad Unicode escape " .. a .. " at position " .. i .. " : " .. j) + -- math.floor(x/2^y) == lazy right shift + -- a % 2^b == bitwise_and(a, (2^b)-1) + -- 64 = 2^6 + -- 4096 = 2^12 (or 2^6 * 2^6) + local x + if n < 0x80 then + x = string.char(n % 0x80) + elseif n < 0x800 then + -- [110x xxxx] [10xx xxxx] + x = string.char(0xC0 + (math.floor(n/64) % 0x20), 0x80 + (n % 0x40)) + else + -- [1110 xxxx] [10xx xxxx] [10xx xxxx] + x = string.char(0xE0 + (math.floor(n/4096) % 0x10), 0x80 + (math.floor(n/64) % 0x40), 0x80 + (n % 0x40)) + end + table.insert(t, x) + else + table.insert(t, escapeSequences[string.sub(s, i, j)]) + end + end + table.insert(t,string.sub(j, j+1)) + assert(string.find(s, startChar, j+1), "String decoding failed: missing closing " .. startChar .. " at position " .. j .. "(for string at position " .. startPos .. ")") + return table.concat(t,""), j+2 + -- END SoniEx2 + end + + --- Scans a JSON string skipping all whitespace from the current start position. + -- Returns the position of the first non-whitespace character, or nil if the whole end of string is reached. + -- @param s The string being scanned + -- @param startPos The starting position where we should begin removing whitespace. + -- @return int The first position where non-whitespace was encountered, or string.len(s)+1 if the end of string + -- was reached. + function decode_scanWhitespace(s,startPos) + local whitespace=" \n\r\t" + local stringLen = string.len(s) + while ( string.find(whitespace, string.sub(s,startPos,startPos), 1, true) and startPos <= stringLen) do + startPos = startPos + 1 + end + return startPos + end + + --- Encodes a string to be JSON-compatible. + -- This just involves back-quoting inverted commas, back-quotes and newlines, I think ;-) + -- @param s The string to return as a JSON encoded (i.e. backquoted string) + -- @return The string appropriately escaped. + + local escapeList = { + ['"'] = '\\"', + ['\\'] = '\\\\', + ['/'] = '\\/', + ['\b'] = '\\b', + ['\f'] = '\\f', + ['\n'] = '\\n', + ['\r'] = '\\r', + ['\t'] = '\\t' + } + + function json_private.encodeString(s) + local s = tostring(s) + return s:gsub(".", function(c) return escapeList[c] end) -- SoniEx2: 5.0 compat + end + + -- Determines whether the given Lua type is an array or a table / dictionary. + -- We consider any table an array if it has indexes 1..n for its n items, and no + -- other data in the table. + -- I think this method is currently a little 'flaky', but can't think of a good way around it yet... + -- @param t The table to evaluate as an array + -- @return boolean, number True if the table can be represented as an array, false otherwise. If true, + -- the second returned value is the maximum + -- number of indexed elements in the array. + function isArray(t) + -- Next we count all the elements, ensuring that any non-indexed elements are not-encodable + -- (with the possible exception of 'n') + if (t == json.EMPTY_ARRAY) then return true, 0 end + if (t == json.EMPTY_OBJECT) then return false end + + local maxIndex = 0 + for k,v in pairs(t) do + if (type(k)=='number' and math.floor(k)==k and 1<=k) then -- k,v is an indexed pair + if (not isEncodable(v)) then return false end -- All array elements must be encodable + maxIndex = math.max(maxIndex,k) + else + if (k=='n') then + if v ~= (t.n or #t) then return false end -- False if n does not hold the number of elements + else -- Else of (k=='n') + if isEncodable(v) then return false end + end -- End of (k~='n') + end -- End of k,v not an indexed pair + end -- End of loop across all pairs + return true, maxIndex + end + + --- Determines whether the given Lua object / table / variable can be JSON encoded. The only + -- types that are JSON encodable are: string, boolean, number, nil, table and json.null. + -- In this implementation, all other types are ignored. + -- @param o The object to examine. + -- @return boolean True if the object should be JSON encoded, false if it should be ignored. + function isEncodable(o) + local t = type(o) + return (t=='string' or t=='boolean' or t=='number' or t=='nil' or t=='table') or + (t=='function' and o==json.null) + end + return json +end + +-- Sourced from http://lua-users.org/wiki/BaseSixtyFour + +-- Lua 5.1+ base64 v3.0 (c) 2009 by Alex Kloss +-- licensed under the terms of the LGPL2 + +-- character table string +local base64CharTable='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' + +-- encoding +function tools.base64encode(data) + return ((data:gsub('.', function(x) + local r,b='',x:byte() + for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end + return r; + end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x) + if (#x < 6) then return '' end + local c=0 + for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end + return base64CharTable:sub(c+1,c+1) + end)..({ '', '==', '=' })[#data%3+1]) +end + +-- decoding +function tools.base64decode(data) + data = string.gsub(data, '[^'..base64CharTable..'=]', '') + return (data:gsub('.', function(x) + if (x == '=') then return '' end + local r,f='',(base64CharTable:find(x)-1) + for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end + return r; + end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x) + if (#x ~= 8) then return '' end + local c=0 + for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end + return string.char(c) + end)) +end + +-- toolså˜é‡ +json = tools.createJson(); --jsonå¤„ç† +this.printToConsole("load LuaPanda success", 1); +this.replaceCoroutineFuncs() +return this; \ No newline at end of file diff --git a/gamedata/scripts/ixray_system/socket.lua b/gamedata/scripts/ixray_system/socket.lua new file mode 100644 index 0000000..65cb709 --- /dev/null +++ b/gamedata/scripts/ixray_system/socket.lua @@ -0,0 +1,149 @@ +----------------------------------------------------------------------------- +-- LuaSocket helper module +-- Author: Diego Nehab +----------------------------------------------------------------------------- + +----------------------------------------------------------------------------- +-- Declare module and import dependencies +----------------------------------------------------------------------------- +local base = _G +local string = require("string") +local math = require("math") +local socket = require("socket.core") + +local _M = socket + +----------------------------------------------------------------------------- +-- Exported auxiliar functions +----------------------------------------------------------------------------- +function _M.connect4(address, port, laddress, lport) + return socket.connect(address, port, laddress, lport, "inet") +end + +function _M.connect6(address, port, laddress, lport) + return socket.connect(address, port, laddress, lport, "inet6") +end + +function _M.bind(host, port, backlog) + if host == "*" then host = "0.0.0.0" end + local addrinfo, err = socket.dns.getaddrinfo(host); + if not addrinfo then return nil, err end + local sock, res + err = "no info on address" + for i, alt in base.ipairs(addrinfo) do + if alt.family == "inet" then + sock, err = socket.tcp4() + else + sock, err = socket.tcp6() + end + if not sock then return nil, err end + sock:setoption("reuseaddr", true) + res, err = sock:bind(alt.addr, port) + if not res then + sock:close() + else + res, err = sock:listen(backlog) + if not res then + sock:close() + else + return sock + end + end + end + return nil, err +end + +_M.try = _M.newtry() + +function _M.choose(table) + return function(name, opt1, opt2) + if base.type(name) ~= "string" then + name, opt1, opt2 = "default", name, opt1 + end + local f = table[name or "nil"] + if not f then base.error("unknown key (".. base.tostring(name) ..")", 3) + else return f(opt1, opt2) end + end +end + +----------------------------------------------------------------------------- +-- Socket sources and sinks, conforming to LTN12 +----------------------------------------------------------------------------- +-- create namespaces inside LuaSocket namespace +local sourcet, sinkt = {}, {} +_M.sourcet = sourcet +_M.sinkt = sinkt + +_M.BLOCKSIZE = 2048 + +sinkt["close-when-done"] = function(sock) + return base.setmetatable({ + getfd = function() return sock:getfd() end, + dirty = function() return sock:dirty() end + }, { + __call = function(self, chunk, err) + if not chunk then + sock:close() + return 1 + else return sock:send(chunk) end + end + }) +end + +sinkt["keep-open"] = function(sock) + return base.setmetatable({ + getfd = function() return sock:getfd() end, + dirty = function() return sock:dirty() end + }, { + __call = function(self, chunk, err) + if chunk then return sock:send(chunk) + else return 1 end + end + }) +end + +sinkt["default"] = sinkt["keep-open"] + +_M.sink = _M.choose(sinkt) + +sourcet["by-length"] = function(sock, length) + return base.setmetatable({ + getfd = function() return sock:getfd() end, + dirty = function() return sock:dirty() end + }, { + __call = function() + if length <= 0 then return nil end + local size = math.min(socket.BLOCKSIZE, length) + local chunk, err = sock:receive(size) + if err then return nil, err end + length = length - string.len(chunk) + return chunk + end + }) +end + +sourcet["until-closed"] = function(sock) + local done + return base.setmetatable({ + getfd = function() return sock:getfd() end, + dirty = function() return sock:dirty() end + }, { + __call = function() + if done then return nil end + local chunk, err, partial = sock:receive(socket.BLOCKSIZE) + if not err then return chunk + elseif err == "closed" then + sock:close() + done = 1 + return partial + else return nil, err end + end + }) +end + + +sourcet["default"] = sourcet["until-closed"] + +_M.source = _M.choose(sourcet) + +return _M \ No newline at end of file diff --git a/gamedata/scripts/luaxml.script b/gamedata/scripts/luaxml.script new file mode 100644 index 0000000..6ce61ec --- /dev/null +++ b/gamedata/scripts/luaxml.script @@ -0,0 +1,117 @@ +local base = _G +local xml = xml +module("xml") + +-- symbolic name for tag index, this allows accessing the tag by var[xml.TAG] +TAG = 0 + +-- sets or returns tag of a LuaXML object +function tag(var,tag) + if base.type(var)~="table" then return end + if base.type(tag)=="nil" then + return var[TAG] + end + var[TAG] = tag +end + +-- creates a new LuaXML object either by setting the metatable of an existing Lua table or by setting its tag +function new(arg) + if base.type(arg)=="table" then + base.setmetatable(arg,{__index=xml, __tostring=xml.str}) + return arg + end + local var={} + base.setmetatable(var,{__index=xml, __tostring=xml.str}) + if base.type(arg)=="string" then var[TAG]=arg end + return var +end + +-- appends a new subordinate LuaXML object to an existing one, optionally sets tag +function append(var,tag) + if base.type(var)~="table" then return end + local newVar = new(tag) + var[#var+1] = newVar + return newVar +end + +-- converts any Lua var into an XML string +function str(var,indent,tagValue) + if base.type(var)=="nil" then return end + local indent = indent or 0 + local indentStr="" + for i = 1,indent do indentStr=indentStr.." " end + local tableStr="" + + if base.type(var)=="table" then + local tag = var[0] or tagValue or base.type(var) + local s = indentStr.."<"..tag + for k,v in base.pairs(var) do -- attributes + if base.type(k)=="string" then + if base.type(v)=="table" and k~="_M" then -- otherwise recursiveness imminent + tableStr = tableStr..str(v,indent+1,k) + else + s = s.." "..k.."=\""..encode(base.tostring(v)).."\"" + end + end + end + if #var==0 and #tableStr==0 then + s = s.." />\n" + elseif #var==1 and base.type(var[1])~="table" and #tableStr==0 then -- single element + s = s..">"..encode(base.tostring(var[1])).."\n" + else + s = s..">\n" + for k,v in base.ipairs(var) do -- elements + if base.type(v)=="string" then + s = s..indentStr.." "..encode(v).." \n" + else + s = s..str(v,indent+1) + end + end + s=s..tableStr..indentStr.."\n" + end + return s + else + local tag = base.type(var) + return indentStr.."<"..tag.."> "..encode(base.tostring(var)).." \n" + end +end + + +-- saves a Lua var as xml file +function save(var,filename) + if not var then return end + if not filename or #filename==0 then return end + local file = base.io.open(filename,"w") + file:write("\n\n\n") + file:write(str(var)) + base.io.close(file) +end + + +-- recursively parses a Lua table for a substatement fitting to the provided tag and attribute +function find(var, tag, attributeKey,attributeValue) + -- check input: + if base.type(var)~="table" then return end + if base.type(tag)=="string" and #tag==0 then tag=nil end + if base.type(attributeKey)~="string" or #attributeKey==0 then attributeKey=nil end + if base.type(attributeValue)=="string" and #attributeValue==0 then attributeValue=nil end + -- compare this table: + if tag~=nil then + if var[0]==tag and ( attributeValue == nil or var[attributeKey]==attributeValue ) then + base.setmetatable(var,{__index=xml, __tostring=xml.str}) + return var + end + else + if attributeValue == nil or var[attributeKey]==attributeValue then + base.setmetatable(var,{__index=xml, __tostring=xml.str}) + return var + end + end + -- recursively parse subtags: + for k,v in base.ipairs(var) do + if base.type(v)=="table" then + local ret = find(v, tag, attributeKey,attributeValue) + if ret ~= nil then return ret end + end + end +end \ No newline at end of file diff --git a/gamedata/scripts/pda.script b/gamedata/scripts/pda.script new file mode 100644 index 0000000..d7a9ee6 --- /dev/null +++ b/gamedata/scripts/pda.script @@ -0,0 +1,450 @@ +-- вызываетÑÑ 1 раз в 3 Ñекунды +function fill_faction_state(state) + local board = sim_board.get_sim_board() + + state.member_count = 0 + state.resource = 0 + state.power = 0 + + + state.actor_goodwill = 3000 + state.name = "ui_inGame2_hint_wnd_bar" + state.icon = "ui_inGame2_hint_wnd_bar" + state.icon_big = "logos_big_empty" + state.target = game.translate_string("ui_st_no_faction") + state.target_desc = "aaa" + state.location = "a" + + state.war_state1 = "a" + state.war_state_hint1 = "1" + state.war_state2 = "3" + state.war_state_hint2 = "2" + state.war_state3 = "33" + state.war_state_hint3 = "" + state.war_state4 = "23" + state.war_state_hint4 = "" + state.war_state5 = "5" + state.war_state_hint5 = "5" + + state.bonus = 0 + + + + +end + +--int get_max_member_count (); ------ 1 раз в 3 Ñекунды +--float get_max_resource(); +--float get_max_power(); + +function get_max_member_count() + return 10 +end + +function get_max_resource() + return 10 +end + +function get_max_power() + return 10 +end + + +-- потом Ñто нужно Ñтереть + +-- int mode: +-- 0 = Undefined = закрыто +-- 1 = Inventory +-- 2 = Trade +-- 3 = Upgrade +-- 4 = DeadBodySearch +-- 10 = Talk dialog show +-- 11 = Talk dialog hide +local last_mode = 0 +dialog_closed = false +trade_closed = false +upgrade_closed = false +function actor_menu_mode(mode) + if(mode==0) then + if(last_mode==1) then + inventory_wnd_closed() + elseif(last_mode==2) then + trade_wnd_closed() + elseif(last_mode==3) then + upgrade_wnd_closed() + elseif(last_mode==4) then + dead_body_search_wnd_closed() + end + last_mode = 0 + elseif(mode==1) then + last_mode = 1 + inventory_wnd_opened() + elseif(mode==2) then + last_mode = 2 + trade_wnd_opened() + elseif(mode==3) then + last_mode = 3 + upgrade_wnd_opened() + elseif(mode==4) then + last_mode = 4 + dead_body_search_wnd_opened() + elseif(mode==10) then + dialog_wnd_showed() + elseif(mode==11) then + dialog_wnd_closed() + end +end + +function inventory_wnd_opened() + --printf("---:>Inventory opened") +end + +function inventory_wnd_closed() + --printf("---:>Inventory closed") +end + +function trade_wnd_opened() + dialog_closed = false + --printf("---:>Trade opened") +end + +function trade_wnd_closed() + --printf("---:>Trade closed") + trade_closed = true +end + +function upgrade_wnd_opened() + dialog_closed = false + --printf("---:>Upgrade opened") +end + +function upgrade_wnd_closed() + --printf("---:>Upgrade closed") + upgrade_closed = true +end + +function dead_body_search_wnd_opened() + --printf("---:>DeadBodySearch opened") +end + +function dead_body_search_wnd_closed() + --printf("---:>DeadBodySearch closed") +end + +function dialog_wnd_showed() + dialog_closed = false + for k,v in pairs(db.storage) do + local npc = v.object + if npc ~= nil then + local npc_id = npc:id() + if npc:is_talking() and npc_id ~= db.actor:id() then + local sound_theme = xr_sound.sound_table[npc_id] + if sound_theme and sound_theme.reset then + sound_theme:reset(npc_id) + end + break + end + end + end + --printf("---:>Talk Dialog show") +end + +function dialog_wnd_closed() + --printf("---:>Talk Dialog hide") + dialog_closed = true +end + +-- CoCray +function get_time_elapsed() + local s_time = level.get_start_time() + local seconds = tonumber(game.get_game_time():diffSec(s_time)) + + if (seconds < 60) then + return string.format("%d %s",seconds,game.translate_string("ui_st_secs")) + elseif (seconds < 3600) then + return string.format("%d %s",seconds/60,game.translate_string("ui_st_mins")) + elseif (seconds < 86400) then + return string.format("%d %s",seconds/60/60,game.translate_string("ui_st_hours")) + end + + return string.format("%d %s",seconds/60/60/24,game.translate_string("ui_st_days")) +end +--// + +function get_stat(index) -- index= int return string + if(index==0) then + return tostring(get_time_elapsed()) + elseif(index==1) then + return tostring(xr_statistic.actor_statistic.surges) + elseif(index==2) then + return tostring(xr_statistic.actor_statistic.completed_quests) + elseif(index==3) then + return tostring(xr_statistic.actor_statistic.killed_monsters) + elseif(index==4) then + return tostring(xr_statistic.actor_statistic.killed_stalkers) + elseif(index==5) then + return tostring(xr_statistic.actor_statistic.artefacts_founded) + elseif(index==6) then + return tostring(xr_statistic.actor_statistic.founded_secrets) + end + return "Unknown" +end + +killed_monsters_tbl = +{ + bloodsucker_weak = {back = "ui_inGame2_Krovosos", icon = ""}, + bloodsucker_normal = {back = "ui_inGame2_Krovosos_1", icon = ""}, + bloodsucker_strong = {back = "ui_inGame2_Krovosos_2", icon = ""}, + boar_weak = {back = "ui_inGame2_Kaban_1", icon = ""}, + boar_strong = {back = "ui_inGame2_Kaban", icon = ""}, + burer = {back = "ui_inGame2_Burer", icon = ""}, + chimera = {back = "ui_inGame2_Himera", icon = ""}, + controller = {back = "ui_inGame2_Controller", icon = ""}, + dog = {back = "ui_inGame2_Blind_Dog", icon = ""}, + flesh_weak = {back = "ui_inGame2_Flesh", icon = ""}, + flesh_strong = {back = "ui_inGame2_Flesh_1", icon = ""}, + gigant = {back = "ui_inGame2_Pseudo_Gigant", icon = ""}, + poltergeist_tele = {back = "ui_inGame2_Poltergeyst", icon = ""}, + poltergeist_flame = {back = "ui_inGame2_Poltergeist_1", icon = ""}, + psy_dog_weak = {back = "ui_inGame2_PseudoDog_1", icon = ""}, + psy_dog_strong = {back = "ui_inGame2_PseudoDog", icon = ""}, + pseudodog_weak = {back = "ui_inGame2_PseudoDog_1", icon = ""}, + pseudodog_strong = {back = "ui_inGame2_PseudoDog", icon = ""}, + snork = {back = "ui_inGame2_Snork", icon = ""}, + tushkano = {back = "ui_inGame2_Tushkan", icon = ""}, + none = {back = "", icon = ""} +} +function get_monster_back() + if not(xr_statistic.actor_statistic.best_monster) or not(killed_monsters_tbl[xr_statistic.actor_statistic.best_monster]) then + return tostring(killed_monsters_tbl.none.back) + end + return tostring(killed_monsters_tbl[xr_statistic.actor_statistic.best_monster].back) +end +function get_monster_icon() + if not(xr_statistic.actor_statistic.best_monster) or not(killed_monsters_tbl[xr_statistic.actor_statistic.best_monster]) then + return tostring(killed_monsters_tbl.none.icon) + end + return tostring(killed_monsters_tbl[xr_statistic.actor_statistic.best_monster].icon) +end +function get_favorite_weapon() + if not(xr_statistic.actor_statistic.favorite_weapon_sect) then + return "wpn_knife" + end + return xr_statistic.actor_statistic.favorite_weapon_sect +end + +local primary_objects_tbl = +{ + {target="zat_b55_spot", hint="st_zat_b55_name"}, + {target="zat_b100_spot", hint="st_zat_b100_name"}, + {target="zat_b104_spot", hint="st_zat_b104_name"}, + {target="zat_b38_spot", hint="st_zat_b38_name"}, + {target="zat_b40_spot", hint="st_zat_b40_name"}, + {target="zat_b56_spot", hint="st_zat_b56_name"}, + {target="zat_b5_spot", hint="st_zat_b5_name"}, + {target="zat_a2_spot", hint="st_zat_a2_name"}, + {target="zat_b20_spot", hint="st_zat_b20_name"}, + {target="zat_b53_spot", hint="st_zat_b53_name"}, + {target="zat_b101_spot", hint="st_zat_b101_name"}, + {target="zat_b106_spot", hint="st_zat_b106_name"}, + {target="zat_b7_spot", hint="st_zat_b7_name"}, + {target="zat_b14_spot", hint="st_zat_b14_name"}, + {target="zat_b52_spot", hint="st_zat_b52_name"}, + {target="zat_b39_spot", hint="st_zat_b39_name"}, + {target="zat_b33_spot", hint="st_zat_b33_name"}, + {target="zat_b18_spot", hint="st_zat_b18_name"}, + {target="zat_b54_spot", hint="st_zat_b54_name"}, + {target="zat_b12_spot", hint="st_zat_b12_name"}, + {target="zat_b28_spot", hint="st_zat_b28_name"}, + {target="zat_b103_spot", hint="st_zat_b103_name"}, + + {target="jup_b1_spot", hint="st_jup_b1_name"}, + {target="jup_b46_spot", hint="st_jup_b46_name"}, + {target="jup_b202_spot", hint="st_jup_b202_name"}, + {target="jup_b211_spot", hint="st_jup_b211_name"}, + {target="jup_b200_spot", hint="st_jup_b200_name"}, + {target="jup_b19_spot", hint="st_jup_b19_name"}, + {target="jup_a6_spot", hint="st_jup_a6_name"}, + {target="jup_b25_spot", hint="st_jup_b25_name"}, + {target="jup_b6_spot", hint="st_jup_b6_name"}, + {target="jup_b205_spot", hint="st_jup_b205_name"}, + {target="jup_b206_spot", hint="st_jup_b206_name"}, + {target="jup_b32_spot", hint="st_jup_b32_name"}, + {target="jup_a10_spot", hint="st_jup_a10_name"}, + {target="jup_b209_spot", hint="st_jup_b209_name"}, + {target="jup_b208_spot", hint="st_jup_b208_name"}, + {target="jup_a12_spot", hint="st_jup_a12_name"}, + {target="jup_b212_spot", hint="st_jup_b212_name"}, + {target="jup_b9_spot", hint="st_jup_b9_name"}, + {target="jup_b201_spot", hint="st_jup_b201_name"}, + {target="jup_a9_spot", hint="st_jup_a9_name"}, + + {target="pri_a28_spot", hint="st_pri_a28_name"}, + {target="pri_b36_spot", hint="st_pri_b36_name"}, + {target="pri_b303_spot", hint="st_pri_b303_name"}, + {target="pri_b301_spot", hint="st_pri_b301_name"}, + {target="pri_a17_spot", hint="st_pri_a17_name"}, + {target="pri_b306_spot", hint="st_pri_b306_name"}, + {target="pri_a16_spot", hint="st_pri_a16_name"}, + {target="pri_a25_spot", hint="st_pri_a25_name"}, + {target="pri_b35_spot", hint="st_pri_b35_name"}, + {target="pri_a21_spot", hint="st_pri_a21_name"}, + {target="pri_b304_spot", hint="st_pri_b304_name"}, + {target="pri_a18_spot", hint="st_pri_a18_name"} +} + +local change_objects_tbl = +{ + {target = "jup_b32_spot", hint = "st_jup_b32_name", zone = "jup_b32_anomal_zone", group = "jup_b32_scanner_1_placed", enabled = false}, + {target = "jup_b201_spot", hint = "st_jup_b201_name", zone = "jup_b201_anomal_zone", group = "jup_b32_scanner_2_placed", enabled = false}, + {target = "jup_b209_spot", hint = "st_jup_b209_name", zone = "jup_b209_anomal_zone", group = "jup_b32_scanner_3_placed", enabled = false}, + {target = "jup_b211_spot", hint = "st_jup_b211_name", zone = "jup_b211_anomal_zone", group = "jup_b32_scanner_4_placed", enabled = false}, + {target = "jup_b1_spot", hint = "st_jup_b1_name", zone = "jup_b10_anomal_zone", group = "jup_b32_scanner_5_placed", enabled = false}, + +} + +local sleep_zones_tbl = +{ + {target = "zat_a2_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, + {target = "jup_a6_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, + {target = "pri_a16_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, +} + +function fill_primary_objects() + for k,v in pairs(primary_objects_tbl) do + local obj_id = get_story_object_id(v.target) + if(obj_id) then + level.map_add_object_spot(obj_id, "primary_object", v.hint) + end + end + change_anomalies_names() + fill_sleep_zones() +end + +function fill_sleep_zones() + for k,v in pairs(sleep_zones_tbl) do + local obj_id = get_story_object_id(v.target) + if(obj_id and db.storage[obj_id] and db.storage[obj_id].object) then + if(db.storage[obj_id].object:position():distance_to(db.actor:position())<=150 and level.map_has_object_spot(obj_id, "ui_pda2_actor_sleep_location")==0) then + level.map_add_object_spot(obj_id, "ui_pda2_actor_sleep_location", v.hint) + elseif(db.storage[obj_id].object:position():distance_to(db.actor:position())>150 and level.map_has_object_spot(obj_id, "ui_pda2_actor_sleep_location")~=0) then + level.map_remove_object_spot(obj_id, "ui_pda2_actor_sleep_location") + end + end + end +end + +function add_quick_slot_items_on_game_start() + local _ini = system_ini() + local str = utils.cfg_get_string(_ini, "actor", "quick_item_1", db.actor, false, "", "") + get_console():execute("slot_0 "..str) + local str = utils.cfg_get_string(_ini, "actor", "quick_item_2", db.actor, false, "", "") + get_console():execute("slot_1 "..str) + local str = utils.cfg_get_string(_ini, "actor", "quick_item_3", db.actor, false, "", "") + get_console():execute("slot_2 "..str) + local str = utils.cfg_get_string(_ini, "actor", "quick_item_4", db.actor, false, "", "") + get_console():execute("slot_3 "..str) +end + +function change_anomalies_names() + if has_alife_info("jup_b32_scanner_reward") then + for k,v in pairs(change_objects_tbl) do + if has_alife_info(v.group) and not v.enabled then + v.enabled = true + end + end + end + + if level.name() ~= "jupiter" then + return + end + for k,v in pairs(change_objects_tbl) do + if v.enabled then + local obj_id = get_story_object_id(v.target) + if (obj_id) and (level.map_has_object_spot(obj_id, "primary_object") ~= 0) then + level.map_remove_object_spot(obj_id, "primary_object") + end + local hint = game.translate_string(v.hint).."\\n".." \\n" + local has_af = false + local af_table = {} + has_af, af_table = xr_conditions.anomaly_has_artefact(db.actor, nil, {v.zone}) + if has_af then + hint = hint..game.translate_string("st_jup_b32_has_af") + for k,v in pairs(af_table) do + hint = hint.."\\n"..game.translate_string("st_"..v.."_name") + end + else + hint = hint..game.translate_string("st_jup_b32_no_af") + end + if (obj_id) and level.map_has_object_spot(obj_id, "primary_object") == 0 then + level.map_add_object_spot(obj_id, "primary_object", hint) + end + end + end +end + +-- CoCray +---------------------------------------------------------------------------- +-- Engine->lua function calls +---------------------------------------------------------------------------- + +-- PDA Tabs +-- It's now possible to add new button tabs to pda*.xml. +-- You can use ActorMenu.get_pda_menu():GetActiveSection() to find out active pda tab +-- UI returned must be CUIScriptWnd +function set_active_subdialog(section) + --printf("section=%s",section) + if (section == "eptTasks") then + + elseif (section == "eptRanking") then + + elseif (section == "eptLogs") then + return nil + + elseif (section == "eptRelations") then + --return ui_pda_relations_tab.get_ui() + elseif (section == "eptContacts") then + --return ui_pda_contacts_tab.get_ui() + elseif (section == "eptEncyclopedia") then + --return ui_pda_encyclopedia_tab.get_ui() + end +end + +function property_box_clicked(property_ui) + -- See CoC for implmentation +end + +function property_box_add_properties(property_ui,id,level_name,hint) + -- See CoC for implmentation +end + +-- called from engine! It's how many character rankings to display! u8 (max 255) +function get_rankings_array_size() + return 1 +end + +-- called from engine! must return bool! +function coc_rankings_can_show(index) + return false +end + +-- called from engine! must return string! +function coc_rankings_set_name(index) + return "" +end + +-- called from engine! must return string! +function coc_rankings_set_hint(index) + return "" +end + +-- called from engine! must return string! +function coc_rankings_set_description(index) + return "" +end + +-- called from engine! must return string! +function coc_rankings_set_icon(index) + return "" +end +-- // diff --git a/gamedata/scripts/se_car.script b/gamedata/scripts/se_car.script new file mode 100644 index 0000000..b9c1956 --- /dev/null +++ b/gamedata/scripts/se_car.script @@ -0,0 +1,37 @@ +--------------------------------------------------------------------- +class "se_car" (cse_alife_car) +-------------------- +function se_car:__init (section) super (section) + --log("_bp: set_car:__init") + self.ini = nil + self.spawner_present = false +end + +function se_car:on_register() + cse_alife_car.on_register(self) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + + --from test xr_effects.spawn_object_in(db.actor, nil, {"wpn_pm","my_moskvich_story_id"}) +end +function se_car:on_unregister() + unregister_story_object_by_id(self.id) + cse_alife_car.on_unregister(self) +end +-------------------- +function se_car:can_switch_offline () + return cse_alife_car.can_switch_offline(self) +end +-------------------- +function se_car:can_switch_online () + if self.ini == nil then + self.ini = self:spawn_ini() + self.spawner_present = self.ini:section_exist("spawner") + end + + if self.ini == nil or self.spawner_present == false then + return cse_alife_car.can_switch_online(self) + end + return xr_spawner.check_spawn (self) +end +-------------------- diff --git a/gamedata/scripts/se_item.script b/gamedata/scripts/se_item.script new file mode 100644 index 0000000..19d05b8 --- /dev/null +++ b/gamedata/scripts/se_item.script @@ -0,0 +1,512 @@ +local registred_items = {} +-- Outfits --------------------------------------------------------------------- +class "se_outfit" (cse_alife_item_custom_outfit) +function se_outfit:__init (section) super (section) + self.secret_item = false +end +function se_outfit:on_register() + cse_alife_item_custom_outfit.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + + -- Собираем ÑтатиÑтику по предметам. + if registred_items[self:section_name()] == nil then + registred_items[self:section_name()] = 1 + else + registred_items[self:section_name()] = registred_items[self:section_name()] + 1 + end + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_outfit:on_unregister() + --' ОтрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² таÑкменеджере + unregister_story_object_by_id(self.id) + cse_alife_item_custom_outfit.on_unregister( self ) +end +function se_outfit:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_custom_outfit.can_switch_online(self) +end + +class "se_helmet" (cse_alife_item_helmet) +function se_helmet:__init (section) super (section) + self.secret_item = false +end +function se_helmet:on_register() + cse_alife_item_helmet.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + + -- Собираем ÑтатиÑтику по предметам. + if registred_items[self:section_name()] == nil then + registred_items[self:section_name()] = 1 + else + registred_items[self:section_name()] = registred_items[self:section_name()] + 1 + end + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_helmet:on_unregister() + --' ОтрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² таÑкменеджере + unregister_story_object_by_id(self.id) + cse_alife_item_helmet.on_unregister( self ) +end +function se_helmet:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_helmet.can_switch_online(self) +end + +-- Weapons --------------------------------------------------------------------- +class "se_weapon" (cse_alife_item_weapon) +function se_weapon:__init (section) super (section) + self.secret_item = false +end +function se_weapon:on_register() + cse_alife_item_weapon.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + + + -- Собираем ÑтатиÑтику по предметам. + if registred_items[self:section_name()] == nil then + registred_items[self:section_name()] = 1 + else + registred_items[self:section_name()] = registred_items[self:section_name()] + 1 + end + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_weapon:on_unregister() + --' ОтрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² таÑкменеджере + unregister_story_object_by_id(self.id) + cse_alife_item_weapon.on_unregister( self ) +end +function se_weapon:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_weapon.can_switch_online(self) +end + +class "se_weapon_shotgun" (cse_alife_item_weapon_shotgun) +function se_weapon_shotgun:__init (section) super (section) + self.secret_item = false +end +function se_weapon_shotgun:on_register() + cse_alife_item_weapon_shotgun.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + -- Собираем ÑтатиÑтику по предметам. + if registred_items[self:section_name()] == nil then + registred_items[self:section_name()] = 1 + else + registred_items[self:section_name()] = registred_items[self:section_name()] + 1 + end + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_weapon_shotgun:on_unregister() + --' ОтрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² таÑкменеджере + unregister_story_object_by_id(self.id) + cse_alife_item_weapon_shotgun.on_unregister( self ) +end +function se_weapon_shotgun:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_weapon_shotgun.can_switch_online(self) +end + +class "se_weapon_automatic_shotgun" (cse_alife_item_weapon_auto_shotgun) +function se_weapon_automatic_shotgun:__init (section) super (section) + self.secret_item = false +end +function se_weapon_automatic_shotgun:on_register() + cse_alife_item_weapon_auto_shotgun.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + -- Собираем ÑтатиÑтику по предметам. + if registred_items[self:section_name()] == nil then + registred_items[self:section_name()] = 1 + else + registred_items[self:section_name()] = registred_items[self:section_name()] + 1 + end + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_weapon_automatic_shotgun:on_unregister() + --' ОтрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² таÑкменеджере + unregister_story_object_by_id(self.id) + cse_alife_item_weapon_auto_shotgun.on_unregister( self ) +end +function se_weapon_automatic_shotgun:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_weapon_auto_shotgun.can_switch_online(self) +end + +class "se_weapon_magazined" (cse_alife_item_weapon_magazined) +function se_weapon_magazined:__init (section) super (section) + self.secret_item = false +end +function se_weapon_magazined:on_register() + cse_alife_item_weapon_magazined.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + -- Собираем ÑтатиÑтику по предметам. + if registred_items[self:section_name()] == nil then + registred_items[self:section_name()] = 1 + else + registred_items[self:section_name()] = registred_items[self:section_name()] + 1 + end + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_weapon_magazined:on_unregister() + --' ОтрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² таÑкменеджере + unregister_story_object_by_id(self.id) + cse_alife_item_weapon_magazined.on_unregister( self ) +end +function se_weapon_magazined:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_weapon_magazined.can_switch_online(self) +end + +class "se_weapon_magazined_w_gl" (cse_alife_item_weapon_magazined_w_gl) +function se_weapon_magazined_w_gl:__init (section) super (section) + self.secret_item = false +end +function se_weapon_magazined_w_gl:on_register() + cse_alife_item_weapon_magazined_w_gl.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + -- Собираем ÑтатиÑтику по предметам. + if registred_items[self:section_name()] == nil then + registred_items[self:section_name()] = 1 + else + registred_items[self:section_name()] = registred_items[self:section_name()] + 1 + end + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_weapon_magazined_w_gl:on_unregister() + --' ОтрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² таÑкменеджере + unregister_story_object_by_id(self.id) + cse_alife_item_weapon_magazined_w_gl.on_unregister( self ) +end +function se_weapon_magazined_w_gl:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_weapon_magazined_w_gl.can_switch_online(self) +end + +-- Items ----------------------------------------------------------------------- +class "se_item" (cse_alife_item) +function se_item:__init (section) super (section) + self.secret_item = false +end +function se_item:on_register() + cse_alife_item.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + -- Собираем ÑтатиÑтику по предметам. + if registred_items[self:section_name()] == nil then + registred_items[self:section_name()] = 1 + else + registred_items[self:section_name()] = registred_items[self:section_name()] + 1 + end + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_item:on_unregister() + --' ОтрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² таÑкменеджере + unregister_story_object_by_id(self.id) + cse_alife_item.on_unregister( self ) +end +function se_item:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item.can_switch_online(self) +end + +class "se_item_torch" (cse_alife_item_torch) +function se_item_torch:__init (section) super (section) + self.secret_item = false +end +function se_item_torch:on_register() + cse_alife_item_torch.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + -- Собираем ÑтатиÑтику по предметам. + if registred_items[self:section_name()] == nil then + registred_items[self:section_name()] = 1 + else + registred_items[self:section_name()] = registred_items[self:section_name()] + 1 + end + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_item_torch:on_unregister() + --' ОтрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² таÑкменеджере + unregister_story_object_by_id(self.id) + cse_alife_item_torch.on_unregister( self ) +end +function se_item_torch:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_torch.can_switch_online(self) +end + +--' ФИзобъекты +class "se_physic" (cse_alife_object_physic) +function se_physic:__init (section) super (section) + self.secret_item = false +end +function se_physic:on_register() + cse_alife_object_physic.on_register(self) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_physic:on_unregister() + unregister_story_object_by_id(self.id) + cse_alife_object_physic.on_unregister(self) +end +function se_physic:keep_saved_data_anyway() + return true +end +function se_physic:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_object_physic.can_switch_online(self) +end + +class "se_lamp" (cse_alife_object_hanging_lamp) +function se_lamp:__init (section) super (section) + self.secret_item = false +end +function se_lamp:on_register() + cse_alife_object_hanging_lamp.on_register(self) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_lamp:on_unregister() + unregister_story_object_by_id(self.id) + cse_alife_object_hanging_lamp.on_unregister(self) +end +function se_lamp:keep_saved_data_anyway() + return true +end +function se_lamp:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_object_hanging_lamp.can_switch_online(self) +end + + + + +-- AMMO ------------------------------------------------------------------------ +class "se_ammo" (cse_alife_item_ammo) +function se_ammo:__init (section) super (section) + self.secret_item = false +end + +function se_ammo:on_register() + cse_alife_item_ammo.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end + +function se_ammo:on_unregister() + unregister_story_object_by_id(self.id) + cse_alife_item_ammo.on_unregister(self) +end +function se_ammo:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_ammo.can_switch_online(self) +end + -- IX-Ray START +function se_ammo:keep_saved_data_anyway() + return false +end + -- IX-Ray END +-- GRENADES -------------------------------------------------------------------------------------------------------------------------- +class "se_grenade" (cse_alife_item_grenade) +function se_grenade:__init (section) super (section) + self.secret_item = false +end + +function se_grenade:on_register() + cse_alife_item_grenade.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end + +function se_grenade:on_unregister() + unregister_story_object_by_id(self.id) + cse_alife_item_grenade.on_unregister(self) +end +function se_grenade:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_grenade.can_switch_online(self) +end +-- EATEBLE --------------------------------------------------------------------------------------------------------------------------- +class "se_eatable" (cse_alife_item) +function se_eatable:__init (section) super (section) + self.secret_item = false +end + +function se_eatable:on_register() + cse_alife_item.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end + +function se_eatable:on_unregister() + unregister_story_object_by_id(self.id) + cse_alife_item.on_unregister(self) +end +function se_eatable:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item.can_switch_online(self) +end + +-- INVENTORY BOX --------------------------------------------------------------------------------------------------------------------- +class "se_invbox" (cse_alife_inventory_box) +function se_invbox:__init (section) super (section) + self.secret_item = false +end + +function se_invbox:on_register() + cse_alife_inventory_box.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end + +function se_invbox:on_unregister() + unregister_story_object_by_id(self.id) + cse_alife_inventory_box.on_unregister(self) +end +function se_invbox:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_inventory_box.can_switch_online(self) +end + +-- EXPLOSIVE ------------------------------------------------------------------------------------------------------------------------- +class "se_explosive" (cse_alife_item_explosive) +function se_explosive:__init (section) super (section) + self.secret_item = false +end + +function se_explosive:on_register() + cse_alife_item_explosive.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end + +function se_explosive:on_unregister() + unregister_story_object_by_id(self.id) + cse_alife_item_explosive.on_unregister(self) +end +function se_explosive:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_explosive.can_switch_online(self) +end + +-- PDA ------------------------------------------------------------------------------------------------------------------------------- +class "se_pda" (cse_alife_item_pda) +function se_pda:__init (section) super (section) + self.secret_item = false +end + +function se_pda:on_register() + cse_alife_item_pda.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end + +function se_pda:on_unregister() + unregister_story_object_by_id(self.id) + cse_alife_item_pda.on_unregister(self) +end +function se_pda:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_pda.can_switch_online(self) +end + +class "se_detector" (cse_alife_item_detector) +function se_detector:__init (section) super (section) + self.secret_item = false +end +function se_detector:on_register() + cse_alife_item_detector.on_register( self ) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + -- Собираем ÑтатиÑтику по предметам. + if registred_items[self:section_name()] == nil then + registred_items[self:section_name()] = 1 + else + registred_items[self:section_name()] = registred_items[self:section_name()] + 1 + end + + self.secret_item = treasure_manager.get_treasure_manager():register_item(self) +end +function se_detector:on_unregister() + --' ОтрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² таÑкменеджере + unregister_story_object_by_id(self.id) + cse_alife_item_detector.on_unregister( self ) +end +function se_detector:can_switch_online() + if(self.secret_item) then + return false + end + return cse_alife_item_detector.can_switch_online(self) +end + + +-------------------------------------------------------------------------------- +function stats() + printf("*** SIM ITEMS STATISTIC ***") + for k,v in pairs(registred_items) do + printf("item = %s, num = %s", k, v) + end +end diff --git a/gamedata/scripts/se_smart_cover.script b/gamedata/scripts/se_smart_cover.script new file mode 100644 index 0000000..654dcc5 --- /dev/null +++ b/gamedata/scripts/se_smart_cover.script @@ -0,0 +1,153 @@ +--'****************************************************** +--'* Ñерверный клаÑÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° Ñмарт кавер . +--'****************************************************** +registered_smartcovers = {} +registered_smartcovers_by_lv_id = {} + +class "se_smart_cover" (cse_smart_cover) +function se_smart_cover:__init (section) super (section) +-- printf("se_smart_cover:__init( ) called") + self.loopholes = {} + self.last_description = "" + if self.set_available_loopholes ~= nil then + self:set_available_loopholes ( self.loopholes ) + end +end +function se_smart_cover:STATE_Write (packet) + cse_smart_cover.STATE_Write (self, packet) + packet:w_stringZ(self.last_description) + local n = 0 + for k,v in pairs (self.loopholes) do + n = n + 1 + end + packet:w_u8(n) + for k,v in pairs (self.loopholes) do + packet:w_stringZ(k) + packet:w_bool(v) + end +-- printf("write") +-- print_table(self.loopholes) +end +function se_smart_cover:STATE_Read (packet, size) + cse_smart_cover.STATE_Read (self, packet, size) + if self.script_version >= 9 then + self.last_description = packet:r_stringZ() + local smart_cover_description + if self.last_description ~= "" then + smart_cover_description = self.last_description + else + smart_cover_description = self:description() + end + local existing_loopholes = {} + if smart_cover_description ~= nil then + printf("name %s descr %s", self:name(), tostring(smart_cover_description)) + if smart_covers == nil then + abort("smartcovers is nil") + end + if smart_covers.descriptions[smart_cover_description] == nil then + abort("smartcover [%s] has wrong description [%s]!!!", self:name(), tostring(smart_cover_description)) + end + local loopholes = smart_covers.descriptions[smart_cover_description].loopholes + for k,v in pairs (loopholes) do + existing_loopholes[v.id] = true + end + end + + local n = packet:r_u8() + for i = 1, n do + local loophole_id = packet:r_stringZ() + local loophole_exist = packet:r_bool() + if existing_loopholes[loophole_id] then + self.loopholes[loophole_id] = loophole_exist + end + end + else + local smart_cover_description = self:description() + if smart_cover_description ~= nil and + smart_covers.descriptions[smart_cover_description] ~= nil -- IX-Ray: Fixed scripts working in editors + then + local loopholes = smart_covers.descriptions[smart_cover_description].loopholes + for k,v in pairs (loopholes) do + self.loopholes[v.id] = true + end + self.last_description = smart_cover_description + end + end +end +function se_smart_cover:on_before_register() + cse_smart_cover.on_before_register( self ) + registered_smartcovers[self:name()] = self +end +function se_smart_cover:on_register() + cse_smart_cover.on_register( self ) + story_objects.check_spawn_ini_for_story_id(self) + local level_id = game_graph():vertex(self.m_game_vertex_id):level_id() + if registered_smartcovers_by_lv_id[level_id] == nil then + registered_smartcovers_by_lv_id[level_id] = {} + end + registered_smartcovers_by_lv_id[level_id][self.m_level_vertex_id] = self +-- printf("smart_cover [%s] is registered lvlid [%s] lvid[%s]", self:name(), tostring(level_id), tostring(self.m_level_vertex_id)) +end +function se_smart_cover:on_unregister() + unregister_story_object_by_id(self.id) + registered_smartcovers[self:name()] = nil + local level_id = game_graph():vertex(self.m_game_vertex_id):level_id() + registered_smartcovers_by_lv_id[level_id][self.m_level_vertex_id] = nil +-- printf("smart_cover [%s] is unregistered", self:name()) + cse_smart_cover.on_unregister(self) +end +function se_smart_cover:update() + cse_smart_cover.update(self) +end + +function se_smart_cover:FillProps (pref,items) +-- log ("CSE_NewAttachableItem::FillProps called!") +-- log (tostring(self:description())) + cse_smart_cover.FillProps (self,pref,items) + local prefix = pref .. "\\" .. self:section_name().."\\" + local smart_cover_description = self:description() + if smart_cover_description ~= self.last_description then + for k,v in pairs (self.loopholes) do + self.loopholes[k] = nil + end + self.last_description = tostring(smart_cover_description) + end + if smart_cover_description ~= nil then + local loopholes = smart_covers.descriptions[smart_cover_description].loopholes + for k,v in pairs (loopholes) do + if self.loopholes[v.id] == nil then + self.loopholes[v.id] = true + end + local h = properties_helper():create_bool (items, prefix .. "loopholes\\"..v.id,self,self.loopholes,v.id) + self:set_loopholes_table_checker(h) + end + end +end + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gamedata/scripts/sim_squad_scripted.script b/gamedata/scripts/sim_squad_scripted.script new file mode 100644 index 0000000..3ecdd94 --- /dev/null +++ b/gamedata/scripts/sim_squad_scripted.script @@ -0,0 +1,1058 @@ +--'****************************************************** +--'* Боевой отрÑд группировки. (Ð¡ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑиÑ) +--'* ÐаÑледован от обычного боевого отрÑда. +--'* ОтличиÑ: +--'* - Детерминированные ÑоÑтав отрÑда +--'* - ВозможноÑть жеÑтко указать активное дейÑтвие +--'****************************************************** +local squad_behaviour_ini = ini_file("misc\\squad_behaviours.ltx") +local locations_ini = ini_file("misc\\smart_terrain_masks.ltx") +--function printf() +--end + +class "sim_squad_scripted" (cse_alife_online_offline_group) + +--*********************************************************************************************** +--* INITIALIZATION * +--*********************************************************************************************** + +function sim_squad_scripted:__init(section) super (section) + --' Ñмарт, в котором ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð¾Ñ‚Ñ€Ñд. + self.smart_id = nil + self.board = sim_board.get_sim_board() + self.current_spot_id = nil --' ID объекта на который ÑÐµÐ¹Ñ‡Ð°Ñ ÑƒÑтановлен мапÑпот. + + --' Текущее дейÑтвие + self.current_action = nil + + self.current_target_id = nil + + self.assigned_target_id = nil + + --' Саундменеджер отрÑда + self.sound_manager = sound_manager.get_sound_manager("squad_"..self:section_name() ) + + self.settings_id = self:section_name() + + self:init_squad() + + self:set_squad_behaviour() +end +--' Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ +function sim_squad_scripted:init_squad() + self.player_id = utils.cfg_get_string(sim_board.squad_ltx, self.settings_id, "faction", self, true, "") + self.action_condlist = xr_logic.parse_condlist(self, "assign_action", "target_smart", utils.cfg_get_string(sim_board.squad_ltx, self.settings_id, "target_smart", self, false, "", "")) + self.death_condlist = xr_logic.parse_condlist(self, "death_condlist", "on_death", utils.cfg_get_string(sim_board.squad_ltx, self.settings_id, "on_death", self, false, "", "")) + self.invulnerability = xr_logic.parse_condlist(self, "invulnerability", "invulnerability", utils.cfg_get_string(sim_board.squad_ltx, self.settings_id, "invulnerability", self, false, "", "")) + self.relationship = self.relationship or utils.cfg_get_string(sim_board.squad_ltx, self.settings_id, "relationship", self, false, "", nil) + self.sympathy = utils.cfg_get_number(sim_board.squad_ltx, self.settings_id, "sympathy", self, false, nil) + self.show_spot = xr_logic.parse_condlist(self, "show_spot", "show_spot", utils.cfg_get_string(sim_board.squad_ltx, self.settings_id, "show_spot", self, false, "", "false")) + + self.always_walk = utils.cfg_get_bool(sim_board.squad_ltx, self.settings_id, "always_walk", self, false) + self.always_arrived = utils.cfg_get_bool(sim_board.squad_ltx, self.settings_id, "always_arrived", self, false) + self:set_location_types_section("stalker_terrain") + self:set_squad_sympathy() +end + +-- Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ñ€Ñда на загрузке +function sim_squad_scripted:init_squad_on_load() + -- ПропиÑываем Ñквад в нужные Ñмарты + printf("Init squad %s on load", self.id) + self:set_squad_sympathy() + self.board:assign_squad_to_smart(self, self.smart_id) + + if self.smart_id ~= nil then + self.board:enter_smart(self, self.smart_id, true) + end + self.need_to_reset_location_masks = true +end + +-- Вычитываем наÑтройки Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñквада. +function sim_squad_scripted:set_squad_behaviour() + self.behaviour = {} + local behaviour_section = utils.cfg_get_string(sim_board.squad_ltx, self.settings_id, "behaviour", self, false, "", self.player_id) + if not squad_behaviour_ini:section_exist(behaviour_section) then + abort("There is no section ["..behaviour_section.."] in 'misc\\squad_behaviours.ltx'") + end + local n = squad_behaviour_ini:line_count(behaviour_section) + for j=0,n-1 do + local result, prop_name, prop_condlist = squad_behaviour_ini:r_line(behaviour_section,j,"","") + self.behaviour[prop_name] = prop_condlist + end +end + +--*********************************************************************************************** +--* SCRIPT_TARGET_SELECTION * +--*********************************************************************************************** + +--' Возвращает Ñкриптовую цель. +function sim_squad_scripted:get_script_target() + local new_target = xr_logic.pick_section_from_condlist(db.actor, self, self.action_condlist) + + if new_target == nil then +-- printf("[%s] get_script_target nil_condlist", self.id) + return nil + end + + if new_target ~= self.last_target then + self.last_target = new_target + --' ПарÑим новые задачи Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ñда + self.parsed_targets = utils.parse_names(new_target) + + if self.need_free_update ~= true then + self.next_target = 1 + else + self.need_free_update = false + end + end + if self.parsed_targets[self.next_target] == nil then + self.next_target = 1 + end + + + local nt = self:pick_next_target() + if nt == "nil" then + return nil + elseif nt == "loop" then + self.next_target = 1 + nt = self:pick_next_target() + end + local point = self.board.smarts_by_names[nt] + if point == nil then + abort("Incorrect next point [%s] for squad [%s]", tostring(nt), tostring(self.id)) + end + return point.id +end + + +--' Выбор Ñледующей цели +function sim_squad_scripted:pick_next_target() + --printf("Picking next target for [%s] = %s by %s", self:section_name(), tostring(self.parsed_targets[self.next_target]), self.next_target) + return self.parsed_targets[self.next_target] +end + + +--' Проверка пришел ли отрÑд в очередной поинт +function sim_squad_scripted:check_squad_come_to_point() + --printf("[%s] check squad point", self.id) + if self.parsed_targets == nil then + return true + end + --' ЕÑли мы уже дошли до точки. + local next_target = self.next_target or 0 + if self.assigned_target_id ~= nil and self.smart_id == self.assigned_target_id then + if self.parsed_targets[next_target+1] ~= nil then + self.next_target = next_target+1 + return true + end + end + return false +end + +--' Проверка пришел ли отрÑд в очередной поинт +function sim_squad_scripted:update_current_action() + local is_finished = self.current_action:update(false) + if not is_finished then + return false + end + return true +end + +function sim_squad_scripted:update() + cse_alife_online_offline_group.update (self) + self:refresh() + + -- Ðпдейт доÑтупноÑти Ð´Ð»Ñ ÑимулÑции. + simulation_objects.get_sim_obj_registry():update_avaliability(self) + + self:check_invulnerability() + + local script_target = self:get_script_target() + + --printf("[%s] SCRIPTED UPDATE. Target[%s]", self.id, tostring(script_target)) + if script_target == nil then + self:generic_update() + if self.need_to_reset_location_masks then + self:set_location_types() + self.need_to_reset_location_masks = false + end + return + end + + self.sound_manager:update() + + local need_to_find_new_action = false + if self.assigned_target_id ~= nil and self.assigned_target_id == script_target then + if self.current_action ~= nil then + if self.current_action.name == "stay_point" then + --' ЕÑли Ñкшн stay_point. ПроверÑем пришли ли до Ñкшна. + if self:check_squad_come_to_point() then + --' Пришли в точку, перевыбрали цель + need_to_find_new_action = true + --printf("[%s] SCRIPTED need_to_find_new_action %s", self.id, tostring(need_to_find_new_action)) + else + --' Ðе пришли в точку, апдейтимÑÑ Ð´Ð°Ð»ÑŒÑˆÐµ + need_to_find_new_action = self:update_current_action() + --printf("[%s] SCRIPTED need_to_find_new_action %s", self.id, tostring(need_to_find_new_action)) + end + else + --' ЕÑли Ñкшн attack_point. ПроверÑем пришли ли поÑле Ñкшна. + if self:update_current_action() then + self:check_squad_come_to_point() + need_to_find_new_action = true + --printf("[%s] SCRIPTED need_to_find_new_action %s", self.id, tostring(need_to_find_new_action)) + end + end + else + --' ПроверÑем пришли ли + self:check_squad_come_to_point() + need_to_find_new_action = true + --printf("[%s] SCRIPTED need_to_find_new_action %s", self.id, tostring(need_to_find_new_action)) + end + else + if self.current_action == nil then + need_to_find_new_action = true + --printf("[%s] SCRIPTED need_to_find_new_action %s", self.id, tostring(need_to_find_new_action)) + else + if self.current_action.major == true then + if self:update_current_action() then + self:check_squad_come_to_point() + need_to_find_new_action = true + --printf("[%s] SCRIPTED need_to_find_new_action %s", self.id, tostring(need_to_find_new_action)) + end + else + need_to_find_new_action = true + --printf("[%s] SCRIPTED need_to_find_new_action %s", self.id, tostring(need_to_find_new_action)) + end + end + end + + if need_to_find_new_action == true then + self.assigned_target_id = script_target + + if self.current_action ~= nil then + self.current_action:finalize() + self.current_action = nil + end + --' ЕÑли у Ð½Ð°Ñ Ð½ÐµÑ‚ текущей цели - проÑим выдать нам задание. + self:get_next_action(false) + end + if self.need_to_reset_location_masks then + self:set_location_types() + self.need_to_reset_location_masks = false + end +end + + + +--*********************************************************************************************** +--* SIMULATION_TARGET_SELECTION * +--*********************************************************************************************** + +function sim_squad_scripted:clear_assigned_target() + self.assigned_target_id = nil +end + +function sim_squad_scripted:assigned_target_avaliable() + local target_obj = self.assigned_target_id and alife():object(self.assigned_target_id) + if target_obj == nil then + return false + end + -- Ð’ данном Ñлучае нужно проверÑть попьюлейшн Ð¼Ð¸Ð½ÑƒÑ Ð¾Ð´Ð¸Ð½, Ñ‚.к. Ñ ÑƒÐ¶Ðµ ÑоÑтою в Ñмарте. + return target_obj:target_precondition(self, true) +end + +local function can_help_actor(squad) + if empty(xr_combat_ignore.fighting_with_actor_npcs) then + return false + end + if game_graph():vertex(squad.m_game_vertex_id):level_id() ~= game_graph():vertex(alife():actor().m_game_vertex_id):level_id() then + return false + end + if has_alife_info("sim_duty_help_harder") and squad:get_squad_community() == "duty" then + return true + elseif has_alife_info("sim_freedom_help_harder") and squad:get_squad_community() == "freedom" then + return true + elseif has_alife_info("sim_stalker_help_harder") and squad:get_squad_community() == "stalker" then + return true + end + return false +end + +local function get_help_target_id(squad) + if not can_help_actor(squad) then + return nil + end + for k,v in pairs (xr_combat_ignore.fighting_with_actor_npcs) do + local enemy_squad_id = alife():object(k).group_id + if enemy_squad_id ~= nil then + local target_squad = alife():object(enemy_squad_id) + if target_squad and squad.position:distance_to_sqr(target_squad.position) < 150^2 and + game_relations.is_factions_enemies(squad:get_squad_community(), target_squad:get_squad_community()) then + return enemy_squad_id + end + end + end + return nil +end + + +--' Ðпдейт отрÑда Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° ÑимулÑционных целей. +function sim_squad_scripted:generic_update() + --printf("Squad[%s] UPDATE", self.id) + --' ЕÑли у Ð½Ð°Ñ ÐµÑть незавершенное дейÑтвие - ждем пока оно завершитÑÑ. + self.sound_manager:update() + self:refresh() + + local help_target_id = get_help_target_id(self) + + if help_target_id then + self.assigned_target_id = help_target_id + self.current_action = nil + self:get_next_action(false) + return + end + if self.assigned_target_id and alife():object(self.assigned_target_id) and alife():object(self.assigned_target_id):clsid() ~= clsid.online_offline_group_s then + local squad_target = self.board:get_squad_target(self) + if squad_target:clsid() == clsid.online_offline_group_s then + self.assigned_target_id = squad_target.id + self.current_action = nil + self:get_next_action(true) + return + end + end + + if self.current_action ~= nil and self:assigned_target_avaliable() then + --printf("[%s] CURRENT ACTION [%s]", self.id, self.current_action.name) + local is_finished = self.current_action:update(true) + + if is_finished then + self.current_action:finalize() + if self.current_action.name == "stay_point" or self.assigned_target_id == nil then + self.assigned_target_id = self.board:get_squad_target(self).id + end + self.current_action = nil + else + return + end + else + self.current_action = nil + self.current_target_id = nil + self.assigned_target_id = self.board:get_squad_target(self).id + end + self:get_next_action(true) +end +--' Получение Ñледующего Ñкшна на выполнение +function sim_squad_scripted:get_next_action(under_simulation) + local squad_target = alife():object(self.assigned_target_id) + --printf("assigned_target = [%s]", tostring(self.assigned_target_id)) + if self.current_target_id == nil then + if squad_target == nil or squad_target:am_i_reached(self) then + if squad_target ~= nil then + squad_target:on_reach_target(self) + squad_target:on_after_reach(self) + end + self.current_action = sim_squad_actions.stay_on_target(self) + self.current_target_id = self.assigned_target_id + self.current_action:make(under_simulation) + return + end + end + + if (self.assigned_target_id == self.current_target_id) or self.assigned_target_id == nil then + self.current_action = sim_squad_actions.stay_on_target(self) + self.current_target_id = self.assigned_target_id + self.current_action:make(under_simulation) + else + self.current_action = sim_squad_actions.reach_target(self) + self.current_action:make(under_simulation) + end +end + +--*********************************************************************************************** +--* MEMBERS_CONTROL * +--*********************************************************************************************** +--' Удаление перÑонажей отрÑда +function sim_squad_scripted:remove_squad() + local squad_npcs = {} + for k in self:squad_members() do + squad_npcs[k.id] = true + end +-- + for j,v in pairs(squad_npcs) do + local obj = alife():object(j) + if obj ~= nil then + self:unregister_member(j) + alife():release(obj, true) + end + end + self:hide() +-- alife():release(self, true) +end +--' Удаление конкретного перÑонажа отрÑда +function sim_squad_scripted:remove_npc(npc_id) + local npc = alife():object(npc_id) + self:on_npc_death(npc) + --printf("releasing object ["..npc:name().."]") + alife():release(npc, true) +end +--' УбийÑтво ÐПС +function sim_squad_scripted:on_npc_death(npc) + printf("Squad %s. Killed member %s", tostring(self.id), npc.id) + + self.sound_manager:unregister_npc(npc.id) + self:unregister_member(npc.id) + + if self:npc_count() == 0 then + printf("REMOVING DEAD SQUAD %s", tostring(self.id)) + if self.current_action ~= nil then + self.current_action:finalize() + self.current_action = nil + end + + if self.death_condlist ~= nil then + xr_logic.pick_section_from_condlist(db.actor, self, self.death_condlist) + end + self.board:remove_squad(self) + return + end + self:refresh() +end +function sim_squad_scripted:assign_squad_member_to_smart(member_id, smart, old_smart_id) + local obj = alife():object(member_id) + if obj ~= nil then + --printf(" npc [%s] smart [%s]", obj:name(), tostring(obj.m_smart_terrain_id)) + if obj.m_smart_terrain_id == self.smart_id then + return + end + + if obj.m_smart_terrain_id ~= 65535 and old_smart_id ~= nil and (obj.m_smart_terrain_id == old_smart_id) and self.board.smarts[old_smart_id] ~= nil then + self.board.smarts[old_smart_id].smrt:unregister_npc(obj) + end + + if smart ~= nil then + smart:register_npc(obj) + end + end +end +--' Ðазначение Ñмарта +function sim_squad_scripted:assign_smart(smart) + local old_smart = self.smart_id + self.smart_id = smart and smart.id + --printf(" squad %s assign smart. old[%s] new[%s]", self.id, tostring(old_smart), tostring(self.smart_id)) + --callstack() + for k in self:squad_members() do + self:assign_squad_member_to_smart(k.id, smart, old_smart) + end +end + +function sim_squad_scripted:check_invulnerability() + if self.squad_online ~= true then + return + end + local invulnerability = xr_logic.pick_section_from_condlist(db.actor, self, self.invulnerability) == "true" + + for k in self:squad_members() do + local npc_st = db.storage[k.id] + if npc_st ~= nil then + local npc = npc_st.object + if npc:invulnerable() ~= invulnerabilty and utils.cfg_get_string(npc_st.ini, npc_st.active_section, "invulnerable", npc, false, "", nil) == nil then +-- printf("RESET INVULNERABILITY. npc[%s] = [%s]", npc:name(), tostring(invulnerability)) + npc:invulnerable(invulnerability) + end + end + end +end + +function sim_squad_scripted:set_location_types_section (section) +-- printf("set_location_types_section[%s] for [%s]", tostring(section), tostring(self:name())) + if locations_ini:section_exist(section) then + local result, id, value = locations_ini:r_line(section,0,"","") + self:add_location_type(id) + end +end +function sim_squad_scripted:set_location_types(new_smart_name) + local default_location = "stalker_terrain" + printf("set_location_types for squad [%s]", self:name()) + self:clear_location_types() + --[[for k,v in pairs(simulation_objects.get_sim_obj_registry().objects) do + if alife():object(k):clsid() == clsid.smart_terrain then + self:set_location_types_section(alife():object(k):name()) + end + end]]-- + + if alife():object(self.assigned_target_id):clsid() == clsid.smart_terrain then + self:set_location_types_section(default_location) + local old_smart_name = self.smart_id and alife():object(self.smart_id) and alife():object(self.smart_id):name() + --printf("old_smart_name = [%s]!", tostring(old_smart_name)) + if old_smart_name then + self:set_location_types_section(old_smart_name) + end + --printf("new_smart_name = [%s]!", tostring(new_smart_name)) + if new_smart_name then + self:set_location_types_section(new_smart_name) + end + else + --printf("target is squad or actor setting [squad_terrain]!") + self:set_location_types_section("squad_terrain") + for k,v in pairs(simulation_objects.get_sim_obj_registry().objects) do + if alife():object(k):clsid() == clsid.smart_terrain then + local props_base = alife():object(k).props and alife():object(k).props["base"] + if props_base and tonumber(props_base) == 0 then + self:set_location_types_section(alife():object(k):name()) + end + end + end + end +end + +function sim_squad_scripted:add_squad_member(spawn_section, spawn_position, lv_id, gv_id, sect_number) + local spawn_sections_ltx = system_ini() + local custom_data = utils.cfg_get_string(spawn_sections_ltx, spawn_section, "custom_data", self, false, "", "default_custom_data.ltx") + if custom_data ~= "default_custom_data.ltx" then + printf("INCORRECT npc_spawn_section USED [%s]. You cannot use npc with custom_data in squads", spawn_section) + end + + local position = spawn_position + + local obj = alife():create(spawn_section, + position, + lv_id, + gv_id) + + self:register_member(obj.id) + self.sound_manager:register_npc(obj.id) + + if simulation_objects.is_on_the_same_level(obj, alife():actor()) and position:distance_to_sqr(alife():actor().position) <= alife():switch_distance()^2 then + db.spawned_vertex_by_id[obj.id] = lv_id + end + + return obj.id +end + +--' Создание чуваков в отрÑд +function sim_squad_scripted:create_npc(spawn_smart) + local ini = system_ini() + local spawn_sections = utils.parse_names(utils.cfg_get_string(ini, self.settings_id, "npc", self, false, "", "")) + + local spawn_point = utils.cfg_get_string(ini, self.settings_id, "spawn_point", self, false, "","self") or + utils.cfg_get_string(spawn_smart.ini, smart_terrain.SMART_TERRAIN_SECT, "spawn_point", self, false,"","self") + spawn_point = xr_logic.parse_condlist(self, "spawn_point", "spawn_point", spawn_point) + spawn_point = xr_logic.pick_section_from_condlist(db.actor, self, spawn_point) + + --print_table(debug.getinfo(1)) + printf("SPAWN SMART %s", spawn_smart:name()) + --' Ð’Ñ‹Ñчитываем базовую позицию Ñпауна + local base_spawn_position = spawn_smart.position + local base_lvi = spawn_smart.m_level_vertex_id + local base_gvi = spawn_smart.m_game_vertex_id + if spawn_point ~= nil then + if spawn_point == "self" then + base_spawn_position = spawn_smart.position + base_lvi = spawn_smart.m_level_vertex_id + base_gvi = spawn_smart.m_game_vertex_id + else + base_spawn_position = patrol(spawn_point):point(0) + base_lvi = patrol(spawn_point):level_vertex_id(0) + base_gvi = patrol(spawn_point):game_vertex_id(0) + end + elseif spawn_smart.spawn_point ~= nil then + base_spawn_position = patrol(spawn_smart.spawn_point):point(0) + base_lvi = patrol(spawn_smart.spawn_point):level_vertex_id(0) + base_gvi = patrol(spawn_smart.spawn_point):game_vertex_id(0) + end + if #spawn_sections ~= 0 then + for k,v in pairs(spawn_sections) do + self:add_squad_member(v, base_spawn_position, base_lvi, base_gvi,k) + end + end + + -- подÑпаун Ñ€Ñндомных чуваков... + local random_spawn = utils.cfg_get_string(ini, self.settings_id, "npc_random", self, false, "",nil) + if random_spawn ~= nil then + random_spawn = utils.parse_names(random_spawn) + local count_min, count_max = utils.r_2nums( ini, self.settings_id, "npc_in_squad", 1, 2 ) + if count_min > count_max then + abort("min_count can't be greater then max_count [%s]!!!!!", self.settings_id) + end + local random_count = math.random(count_min, count_max) + for i = 1,random_count do + local random_id = math.random(1, #random_spawn) + self:add_squad_member(random_spawn[random_id], base_spawn_position, base_lvi, base_gvi,random_id) + end + elseif #spawn_sections == 0 then + abort("You are trying to spawn an empty squad [%s]!!!", self.settings_id) + end + + + self.smart_id = spawn_smart.id + self:refresh() +end + +function sim_squad_scripted:set_squad_sympathy(sympathy) + local symp = sympathy or self.sympathy + if(symp~=nil) then + for k in self:squad_members() do + local npc = db.storage[k.id] and db.storage[k.id].object + if(npc) then + game_relations.set_npc_sympathy(npc, symp) + else + if(db.goodwill.sympathy==nil) then + db.goodwill.sympathy = {} + end + db.goodwill.sympathy[k.id] = symp + end + end + end +end +local function set_relation(npc1, npc2, new_relation) + local goodwill = 0 + if(new_relation=="enemy") then + goodwill = -1000 + elseif(new_relation=="friend") then + goodwill = 1000 + end + if npc1 and npc2 then + npc1:force_set_goodwill(goodwill, npc2.id) + else + abort("Npc not set in goodwill function!!!") + end +end +function sim_squad_scripted:set_squad_relation(relation) + local rel = relation or self.relationship + if(rel~=nil) then + for k in self:squad_members() do + local npc = db.storage[k.id] and db.storage[k.id].object + if(npc) then + game_relations.set_npcs_relation(npc, db.actor, rel) + else + set_relation(alife():object(k.id), alife():actor(),rel) + end + end + end +end + + +local function reset_animation(npc) + local state_mgr = db.storage[npc:id()].state_mgr + if state_mgr == nil then + return + end + local planner = npc:motivation_action_manager() + + state_mgr.animation:set_state(nil, true) + state_mgr.animation:set_control() + state_mgr.animstate:set_state(nil, true) + state_mgr.animstate:set_control() + + state_mgr:set_state("idle", nil, nil, nil, {fast_set = true}) + +-- planner:update() +-- planner:update() +-- planner:update() + + state_mgr:update() + state_mgr:update() + state_mgr:update() + state_mgr:update() + state_mgr:update() + state_mgr:update() + state_mgr:update() + + npc:set_body_state(move.standing) + npc:set_mental_state(anim.free) + +end + +function sim_squad_scripted:set_squad_position(position) + if self.online == false then + self:force_change_position(position) + end + + for k in self:squad_members() do + local cl_object = level.object_by_id(k.id) + db.offline_objects[k.id].level_vertex_id = level.vertex_id(position) + if cl_object then + reset_animation(cl_object) + printf("teleporting npc [%s]", k.id) + cl_object:set_npc_position(position) + printf("end of teleporting npc [%s]", k.id) + else + k.object.position = position + end + end +end + +function sim_squad_scripted:has_detector() + for k in self:squad_members() do + if alife():object(k.id) and alife():object(k.id):has_detector() then + return true + end + end + return false +end + +function sim_squad_scripted:get_squad_community() + local squad_community = squad_community_by_behaviour[self.player_id] + if squad_community == nil then + abort("squad community is 'nil' for player_id [%s]", self.player_id) + end + return squad_community +end + +--*********************************************************************************************** +--* SAVE\LOAD * +--*********************************************************************************************** + +function sim_squad_scripted:STATE_Write(packet) + cse_alife_online_offline_group.STATE_Write (self, packet) + set_save_marker(packet, "save", false, "sim_squad_scripted") + + + packet:w_stringZ(tostring(self.current_target_id)) + packet:w_stringZ(tostring(self.respawn_point_id)) + packet:w_stringZ(tostring(self.respawn_point_prop_section)) + packet:w_stringZ(tostring(self.smart_id)) + + set_save_marker(packet, "save", true, "sim_squad_scripted") +end +function sim_squad_scripted:STATE_Read(packet, size) + cse_alife_online_offline_group.STATE_Read (self, packet, size) + set_save_marker(packet, "load", false, "sim_squad_scripted") + + self.current_target_id = packet:r_stringZ() + if self.current_target_id == "nil" then + self.current_target_id = nil + else + self.current_target_id = tonumber(self.current_target_id) + end + self.respawn_point_id = packet:r_stringZ() + if self.respawn_point_id == "nil" then + self.respawn_point_id = nil + else + self.respawn_point_id = tonumber(self.respawn_point_id) + end + self.respawn_point_prop_section = packet:r_stringZ() + if self.respawn_point_prop_section == "nil" then + self.respawn_point_prop_section = nil + end + self.smart_id = packet:r_stringZ() + if self.smart_id == "nil" then + self.smart_id = nil + else + self.smart_id = tonumber(self.smart_id) + end + + self:init_squad_on_load() + set_save_marker(packet, "load", true, "sim_squad_scripted") +end +--*********************************************************************************************** +--* SERVER_OBJECT * +--*********************************************************************************************** + +function sim_squad_scripted:on_register() + cse_alife_online_offline_group.on_register( self ) + self.board.squads[self.id] = self + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + simulation_objects.get_sim_obj_registry():register(self) +end +function sim_squad_scripted:on_unregister() + --' ОтрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² таÑкменеджере + unregister_story_object_by_id(self.id) + --' Удалить отрÑд + self.board.squads[self.id] = nil + self.board:assign_squad_to_smart(self, nil) + cse_alife_online_offline_group.on_unregister( self ) + simulation_objects.get_sim_obj_registry():unregister(self) + if self.respawn_point_id ~= nil then + local smart = alife():object(self.respawn_point_id) + -- затычка Ð´Ð»Ñ Ð´ÐµÑÑ‚Ñ€Ð¾Ñ Ð»ÐµÐ²ÐµÐ»Ð°(Ñмарты деÑтроÑÑ‚ÑÑ Ñ€Ð°Ð½ÑŒÑˆÐµ Ñквадов) + if smart == nil then + return + end + smart.already_spawned[self.respawn_point_prop_section].num = smart.already_spawned[self.respawn_point_prop_section].num - 1 + end +end +function sim_squad_scripted:can_switch_offline() + return cse_alife_online_offline_group.can_switch_offline(self) +end +function sim_squad_scripted:can_switch_online() + return cse_alife_online_offline_group.can_switch_online(self) +end + +--*********************************************************************************************** +--* MAP LOCATION * +--*********************************************************************************************** + +--[[ +monster_predatory_day +monster_predatory_night +monster_vegetarian +monster_zombied_day +monster_zombied_night +monster_special +]]-- + +is_squad_monster = +{ + ["monster_predatory_day"] = true, + ["monster_predatory_night"] = true, + ["monster_vegetarian"] = true, + ["monster_zombied_day"] = true, + ["monster_zombied_night"] = true, + ["monster_special"] = true, + ["monster"] = true +} + +function sim_squad_scripted:refresh() + if(self:commander_id()==nil) then + self:hide() + return + end + self:show() +end + + +function sim_squad_scripted:hide() + if(self.current_spot_id==nil) or (self.spot_section==nil) then + return + end + level.map_remove_object_spot(self.current_spot_id, self.spot_section) + self.current_spot_id = nil + self.spot_section = nil +end + +--' Показать отрÑд на карте +function sim_squad_scripted:show() + if self.show_disabled then + self:hide() + return + end + + if(level.map_has_object_spot(self:commander_id(), "ui_pda2_trader_location")~=0) or + (level.map_has_object_spot(self:commander_id(), "ui_pda2_mechanic_location")~=0) or + (level.map_has_object_spot(self:commander_id(), "ui_pda2_scout_location")~=0) or + (level.map_has_object_spot(self:commander_id(), "ui_pda2_quest_npc_location")~=0) or + (level.map_has_object_spot(self:commander_id(), "ui_pda2_medic_location")~=0) then + self.show_disabled = true + return + end + + if self.current_spot_id ~= self:commander_id() then + self:hide() + self.current_spot_id = self:commander_id() + self:show() + return + end + local spot = "" + if dev_debug then -- IX-Ray: Fixed PDA squad rendering in Lua devmode + if not(is_squad_monster[self.player_id]) then + local relation = game_relations.get_squad_goodwill_to_actor_by_id(self.id) + if(relation=="friends") then + spot = "alife_presentation_squad_friend_debug" + elseif(relation=="neutral") then + spot = "alife_presentation_squad_neutral_debug" + else + spot = "alife_presentation_squad_enemy_debug" + end + else + spot = "alife_presentation_squad_monster_debug" + end + else + if not(is_squad_monster[self.player_id]) then + local relation = game_relations.get_squad_relation_to_actor_by_id(self.id) + if(relation=="friends") then + spot = "alife_presentation_squad_friend" + elseif(relation=="neutral") then + spot = "alife_presentation_squad_neutral" + end + end + end + if(spot~="") then + if spot == self.spot_section then + level.map_change_spot_hint(self.current_spot_id, self.spot_section, self:get_squad_props()) + return + end + if self.spot_section == nil then + level.map_add_object_spot(self.current_spot_id, spot, self:get_squad_props()) + else + level.map_remove_object_spot(self.current_spot_id, self.spot_section) + level.map_add_object_spot(self.current_spot_id, spot, self:get_squad_props()) + end + self.spot_section = spot + elseif(self.spot_section~=nil) then + level.map_remove_object_spot(self.current_spot_id, self.spot_section) + self.spot_section = nil + end +end + +function sim_squad_scripted:get_squad_props() + if dev_debug then + local t = "["..tostring(self:name()).."]\\n".. + "current_target = ["..tostring(self.current_target_id and alife():object(self.current_target_id) and alife():object(self.current_target_id):name()).."]\\n".. + "assigned_target = ["..tostring(self.assigned_target_id and alife():object(self.assigned_target_id) and alife():object(self.assigned_target_id):name()).."]\\n" + if self.current_action and self.current_action.name == "stay_point" then + t = t.."stay_on_point = ["..tostring(self.current_action.idle_time - game.get_game_time():diffSec(self.current_action.start_time)).."]" + end + return t + else + return "" + end +end + + + + +--*********************************************************************************************** +--* SIMULATION_TARGET_SQUAD * +--*********************************************************************************************** +-- Получить позицию, левел вертекÑ, гейм Ð²ÐµÑ€Ñ‚ÐµÐºÑ Ð¾Ð±ÑŒÐµÐºÑ‚Ð°. +function sim_squad_scripted:get_location() + return self.position, self.m_level_vertex_id, self.m_game_vertex_id +end + +function sim_squad_scripted:get_current_task() + if self.assigned_target_id ~= nil and alife():object(self.assigned_target_id) ~= nil then + local smart_terrain = alife():object(self.assigned_target_id) + if smart_terrain.arriving_npc ~= nil and smart_terrain.arriving_npc[self:commander_id()] == nil + and smart_terrain.npc_info and smart_terrain.npc_info[self:commander_id()] + and smart_terrain.npc_info[self:commander_id()].job_id and smart_terrain.job_data[smart_terrain.npc_info[self:commander_id()].job_id] then + return smart_terrain.job_data[smart_terrain.npc_info[self:commander_id()].job_id].alife_task + end + return alife():object(self.assigned_target_id):get_alife_task() + end + return self:get_alife_task() +end +-- ДоÑтигнут ли Ñ Ð¾Ñ‚Ñ€Ñдом выбравшим Ð¼ÐµÐ½Ñ ÐºÐ°Ðº цель. +function sim_squad_scripted:am_i_reached(squad) + return self:npc_count() == 0 +end +-- ВызываетÑÑ 1 раз поÑле доÑÑ‚Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¼ÐµÐ½Ñ Ð¾Ñ‚Ñ€Ñдом выбравшим Ð¼ÐµÐ½Ñ ÐºÐ°Ðº цель. +function sim_squad_scripted:on_after_reach(squad) + +end +-- ВызываетÑÑ 1 раз в момент выбора Ð¼ÐµÐ½Ñ ÐºÐ°Ðº цели. +function sim_squad_scripted:on_reach_target(squad) + squad:set_location_types() + for k in squad:squad_members() do + if db.offline_objects[k.id] ~= nil then + db.offline_objects[k.id] = {} + end + end + self.board:assign_squad_to_smart(squad, nil) +end +-- Возвращает CALifeSmartTerrainTask на менÑ, вызываетÑÑ Ð¸Ð· smart_terrain:task() +function sim_squad_scripted:get_alife_task() + --printf("Returning alife task for object [%s] game_vertex [%s] level_vertex [%s] position %s", self.id, self.m_game_vertex_id, self.m_level_vertex_id, vec_to_str(self.position)) + return CALifeSmartTerrainTask(self.m_game_vertex_id, self.m_level_vertex_id) +end + +local smarts_by_no_assault_zones = { + ["zat_a2_sr_no_assault"] = "zat_stalker_base_smart", + ["jup_a6_sr_no_assault"] = "jup_a6", + ["jup_b41_sr_no_assault"] = "jup_b41" +} + +function sim_squad_scripted:sim_available() + for k,v in pairs (smarts_by_no_assault_zones) do + local zone = db.zone_by_name[k] + if zone and zone:inside(self.position) then + local smart = sim_board.get_sim_board():get_smart_by_name(v) + if smart and smart.base_on_actor_control ~= nil and smart.base_on_actor_control.status ~= smart_terrain_control.ALARM then + return false + end + end + end + + if self.smart_id == nil then + return true + end + -- УдалÑть из региÑтра Ñим обьектов еÑли мы идем на базу. + local props_base = alife():object(self.smart_id).props and alife():object(self.smart_id).props["base"] + if props_base and tonumber(props_base) > 0 then + return false + end + + + local smart = alife():object(self.smart_id) + if smart.base_on_actor_control ~= nil and smart.base_on_actor_control.status ~= smart_terrain_control.NORMAL then + if db.zone_by_name[smart.base_on_actor_control.noweap_zone] == nil or not db.zone_by_name[smart.base_on_actor_control.noweap_zone]:inside(self.position) then + return false + end + end + return true +end + +-- Мой прекондишн. +function sim_squad_scripted:target_precondition(squad) + local squad_params = sim_board.simulation_activities[squad.player_id] + if squad_params == nil or squad_params.squad == nil then + return false + end + + local self_params = squad_params.squad[self.player_id] + if self_params == nil or self_params.prec(squad, self) == false then + return false + end + return true + +--[[ + if squad.player_id == "dolg" and + (is_squad_monster[self.player_id] or self.player_id == "freedom") and + in_time_interval(8,22) then + return true + end + + + if squad.player_id == "bandit" and self.player_id == "stalker" then + return true + end + if squad.player_id == "freedom" and self.player_id == "dolg" and in_time_interval(8,22) then + return true + end + + -- ТравоÑдные днем атакуют проходÑщих мимо Ñталкеров.(плоть, кабан) + if squad.player_id == "monster_vegetarian" and in_time_interval(8,22) and not is_squad_monster[self.player_id] then + return true + end + + -- Хищники днем атакуют Ñталкеров и травоÑдных(Ñобаки, пÑевдоÑобаки, пÑи Ñобаки) + if squad.player_id == "monster_predatory_day" and + in_time_interval(8,22) and + (self.player_id == "monster_vegetarian" or not is_squad_monster[self.player_id]) then + return true + end + -- Хищники ночью атакуют Ñталкеров и травоÑдных(тушканы,кровоÑоÑ, химера) + if squad.player_id == "monster_predatory_night" and + in_time_interval( 22 , 8) and + (self.player_id == "monster_vegetarian" or not is_squad_monster[self.player_id]) then + return true + end + -- Зомбиобразные днем атакуют проходÑщих мимо Ñталкеров. + if squad.player_id == "monster_zombied_day" and + in_time_interval(8,22) and + (not is_squad_monster[self.player_id]) then + return true + end + -- Зомбиобразные днем атакуют проходÑщих мимо Ñталкеров. + if squad.player_id == "monster_zombied_night" and + in_time_interval(22,8) and + (not is_squad_monster[self.player_id]) then + return true + end + -- ОÑобенные днем атакуют проходÑщих мимо Ñталкеров. + if squad.player_id == "monster_special" and + in_time_interval(8,22) and + (not is_squad_monster[self.player_id]) then + return true + end + + return false + ]] +end + +-- ПоÑчитать мой приоритет Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ñда. +function sim_squad_scripted:evaluate_prior(squad) + return simulation_objects.evaluate_prior(self, squad) +end diff --git a/gamedata/scripts/smart_terrain.script b/gamedata/scripts/smart_terrain.script new file mode 100644 index 0000000..9cde4b6 --- /dev/null +++ b/gamedata/scripts/smart_terrain.script @@ -0,0 +1,1427 @@ +local DEATH_IDLE_TIME = 10*60 -- Ñекунд +SMART_TERRAIN_SECT = "smart_terrain" +smart_terrains_by_name = {} +local locations_ini = ini_file("misc\\smart_terrain_masks.ltx") + +nearest_to_actor_smart = {id = nil , dist = math.huge} + +local path_fields = { "path_walk", "path_main", "path_home", "center_point" } + +local valid_territory = { + default = true, + base = true, + resource = true, + territory = true +} + +--' Проверка, что Ð½Ð¿Ñ Ð¿Ð¾Ð´Ñ…Ð¾Ð´Ð¸Ñ‚ работе +local function job_avail_to_npc(npc_info, job_info, smart) + --printf("job_avail_to_npc %s job %s smart %s", npc_info.se_obj:name(), tostring(job_info.job_id), smart:name()) + local job = smart.job_data[job_info.job_id] + if job ~= nil then + job = job.section + end + + if smart.dead_time[job_info.job_id] ~= nil then + return false + end + + -- Проверка уÑÐ»Ð¾Ð²Ð¸Ñ "монÑтровоÑти" + if job_info._precondition_is_monster ~= nil and job_info._precondition_is_monster ~= npc_info.is_monster then + return false + end + + --' ПроверÑем подходит ли Ð½Ð¿Ñ Ð¿Ð¾ предикату + if job_info._precondition_function ~= nil then + if not job_info._precondition_function(npc_info.se_obj, smart, job_info._precondition_params, npc_info) then + return false + end + end + return true +end + + +-- ИтерируемÑÑ Ð¿Ð¾ ÐПС, начинаем Ñо Ñвободных нпÑ, потом ÐПС на низкоприоритетных работах, потом на выÑокоприоритетных. +-- Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ конкретного ÐПС ищем работу. +-- ОтÑеиваем в поиÑке работы, приоритет которых ниже, чем у текущей. +local function job_iterator(jobs, npc_data, selected_job_prior, smart) + --printf(" iterate") + -- итерируемÑÑ Ð¿Ð¾ работам + local current_job_prior = selected_job_prior + local selected_job_id = nil + local selected_job_link = nil + for k,v in pairs(jobs) do + -- ЕÑли приоритет у проверÑемой работы ниже, чем приоритет текущей выбранной работы ÐПС - завершаем выполнение + if current_job_prior > v._prior then + return selected_job_id, current_job_prior, selected_job_link + end + -- ПроверÑем, может ли ÐПС занÑть данную работу + if job_avail_to_npc(npc_data, v, smart) then + -- Это работа-клаÑтер или работа-опиÑание. + if v.job_id == nil then + -- Вызываем рекурÑивно ÑÐµÐ±Ñ Ð´Ð»Ñ ÑпиÑка работ клаÑтера + selected_job_id, current_job_prior, selected_job_link = job_iterator(v.jobs, npc_data, selected_job_prior, smart) + else + -- ЕÑли работа пуÑÑ‚Ð°Ñ Ð¸Ð»Ð¸ ее занимаем мы Ñами - выбираем ее. + if v.npc_id == nil then + return v.job_id, v._prior, v + elseif v.job_id == npc_data.job_id then + return v.job_id, v._prior, v + end + end + end + end + return selected_job_id, current_job_prior, selected_job_link +end + +-- РаÑÑтоÑние до работы +local function arrived_to_smart(obj, smart) + local obj_gv, obj_pos + + local storage = db.storage[obj.id] + + if storage == nil then + obj_gv, obj_pos = game_graph():vertex(obj.m_game_vertex_id), obj.position + else + local obj = db.storage[obj.id].object + obj_gv, obj_pos = game_graph():vertex(obj:game_vertex_id()), obj:position() + end + + local smart_gv = game_graph():vertex(smart.m_game_vertex_id) + + if obj.group_id then + local squad = smart.board.squads[obj.group_id] + if squad ~= nil and squad.current_action then + if squad.current_action.name == "reach_target" then + local squad_target = simulation_objects.get_sim_obj_registry().objects[squad.assigned_target_id] + if squad_target ~= nil then + return squad_target:am_i_reached(squad) + else + return alife():object(squad.assigned_target_id):am_i_reached(squad) + end + elseif squad.current_action.name == "stay_point" then + return true + end + end + end + + if obj_gv:level_id() == smart_gv:level_id() then + return obj_pos:distance_to_sqr(smart.position) <= 10000 --Ближе 100 метров + else + return false + end +end + +---------------------------------------------------------------------------------------------------------------------- +-- КлаÑÑ "se_smart_terrain". ОбеÑпечивает поддержку smart terrain в ОФЛÐЙÐЕ. +---------------------------------------------------------------------------------------------------------------------- +class "se_smart_terrain" (cse_alife_smart_zone) +function se_smart_terrain:__init(section) super(section) + self.initialized = false + self.b_registred = false + self.population = 0 + + self.npc_to_register = {} + self.npc_by_job_section = {} + self.dead_time = {} + + -- Таблица Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ñ€ÐµÐ³Ð¸Ñтренных ÐПС + self.npc_info = {} -- Те, кто уже пришел и Ñтал на работу + self.arriving_npc = {} -- Только идущие на работу. + + self.respawn_radius = 150 + self.respawn_time = 1000 +end +function se_smart_terrain:on_before_register() + cse_alife_smart_zone.on_before_register(self) + self.board = sim_board.get_sim_board() + self.board:register_smart(self) + self.smart_level = alife():level_name(game_graph():vertex(self.m_game_vertex_id):level_id()) + --printf("SMARTLEVEL %s level %s", self:name(), tostring(self.smart_level)) +end + +function se_smart_terrain:on_register() + cse_alife_smart_zone.on_register(self) + -- ПроверÑем каÑтомдату обьекта на наличие Ñтори айди. + story_objects.check_spawn_ini_for_story_id(self) + simulation_objects.get_sim_obj_registry():register(self) + + printf("register smart %s", self:name()) + + if dev_dedug then + self:refresh() + end + + printf("Returning alife task for object [%s] game_vertex [%s] level_vertex [%s] position %s", self.id, self.m_game_vertex_id, self.m_level_vertex_id, vec_to_str(self.position)) + self.smart_alife_task = CALifeSmartTerrainTask(self.m_game_vertex_id, self.m_level_vertex_id) + + smart_terrains_by_name[self:name()] = self + self.b_registred = true + + self:load_jobs() + + self.board:init_smart(self) + + if self.need_init_npc == true then + self.need_init_npc = false + self:init_npc_after_load() + end + + -- РегиÑтрим перÑонажей, которые добавили до региÑтрации Ñмарта. (отложенный ÑпиÑок) + self:register_delayed_npc() + + self.check_time = time_global() +end +-- анрегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° в ÑимулÑторе. +-- вызываетÑÑ ÑимулÑтором. +function se_smart_terrain:on_unregister() + cse_alife_smart_zone.on_unregister(self) + self.board:unregister_smart(self) + smart_terrains_by_name[self:name()] = nil + unregister_story_object_by_id(self.id) + simulation_objects.get_sim_obj_registry():unregister(self) +end +-- чтение custom data. +function se_smart_terrain:read_params() + self.ini = self:spawn_ini() + + if not self.ini:section_exist( SMART_TERRAIN_SECT ) then + abort( "[smart_terrain %s] no configuration!", self:name() ) + self.disabled = true + return + end + local filename = utils.cfg_get_string(self.ini, SMART_TERRAIN_SECT, "cfg", self, false, "") + local fs = getFS() + if filename and filename~="" then + if fs:exist("$game_config$",filename) then + self.ini = ini_file(filename) + else + abort("There is no configuration file [%s] in smart_terrain [%s]", filename, self:name()) + end + end + local ini = self.ini + self.sim_type = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "sim_type", self, false, "", "default") + + --' Вычитка ÑимулÑционных ÑвойÑтв + if valid_territory[self.sim_type] == nil then + abort("Wrong sim_type value [%s] in smart [%s]", self.sim_type, self:name()) + end + + self.squad_id = utils.cfg_get_number(ini, SMART_TERRAIN_SECT, "squad_id", self, false, 0) + self.respawn_sector = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "respawn_sector", self, false, "") + self.respawn_radius = utils.cfg_get_number(ini, SMART_TERRAIN_SECT, "respawn_radius", self, false, 150) -- Ñ€Ð°Ð´Ð¸ÑƒÑ Ñ€ÐµÑпауна (еÑли актер ближе, то не Ñпаунить) + self.respawn_time = utils.cfg_get_number(ini, SMART_TERRAIN_SECT, "respawn_time", self, false, 1000) -- в Ñекундах игрового времени + if self.respawn_sector ~= nil then + if self.respawn_sector == "default" then + self.respawn_sector = "all" + end + self.respawn_sector = xr_logic.parse_condlist(nil, SMART_TERRAIN_SECT, "respawn_sector", self.respawn_sector) + end + + self.mutant_lair = utils.cfg_get_bool(ini, SMART_TERRAIN_SECT, "mutant_lair", self, false) + self.no_mutant = utils.cfg_get_bool(ini, SMART_TERRAIN_SECT, "no_mutant", self, false) + if self.no_mutant == true then + printf("Found no mutant point %s", self:name()) + end + self.forbidden_point = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "forbidden_point", self, false, "") + + --' РеÑтрикторы Ð´Ð»Ñ ÑимулÑции + self.def_restr = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "def_restr", self, false, "", nil) + self.att_restr = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "att_restr", self, false, "", nil) + self.safe_restr = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "safe_restr", self, false, "", nil) + + self.spawn_point = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "spawn_point", self, false, "") + + self.arrive_dist = utils.cfg_get_number(ini, SMART_TERRAIN_SECT, "arrive_dist", self, false, 30) + +-- self.max_population = utils.cfg_get_number(ini, SMART_TERRAIN_SECT, "max_population", self, false, 0) + local max_population = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "max_population", self, false, "", 0) + local parsed_condlist = xr_logic.parse_condlist(nil, SMART_TERRAIN_SECT, "max_population", max_population) + self.max_population = tonumber(xr_logic.pick_section_from_condlist(get_story_object("actor"), nil, parsed_condlist)) + +-- self.sim_avail = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "sim_avail", self, false, "") +-- if self.sim_avail ~= nil then +-- self.sim_avail = xr_logic.parse_condlist(nil, SMART_TERRAIN_SECT, "sim_avail", self.sim_avail) +-- end + + local respawn_params = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "respawn_params", self, false, "", nil) + self.respawn_only_smart = utils.cfg_get_bool(ini, SMART_TERRAIN_SECT, "respawn_only_smart", self, false, false) + + local smart_control_section = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "smart_control", self, false, "", nil) + + if smart_control_section ~= nil then + self.base_on_actor_control = smart_terrain_control.CBaseOnActorControl(self, ini, smart_control_section) + end + self.respawn_point = false + if respawn_params ~= nil then + self:check_respawn_params(respawn_params) + end + + + if level.patrol_path_exists(self:name() .. "_traveller_actor") then + printf("Smart_terrain [%s] has no traveller_actor path!!!!!", self:name()) + self.traveler_actor_path = self:name() .. "_traveller_actor" + end + + if level.patrol_path_exists(self:name() .. "_traveller_squad") then + printf("Smart_terrain [%s] has no traveller_squad path!!!!!", self:name()) + self.traveler_squad_path = self:name() .. "_traveller_squad" + end + + if not locations_ini:section_exist(self:name()) then + printf("! SMART_TERRAIN [%s] has no terrain_mask section in smart_terrain_masks.ltx!!!",self:name()) + end +end + +--******************************************************* +-- МЕТОДЫ ДЛЯ РÐБОТЫ С ÐПС +--******************************************************* +-- заполнить информацию о перÑонаже +-- у монÑтров нету метода profile_name() +function se_smart_terrain:fill_npc_info(obj) + local npc_info = {} + printf("filling npc_info for obj [%s]", tostring(obj:name())) + + local is_stalker = IsStalker(obj) + npc_info.se_obj = obj + npc_info.is_monster = not is_stalker + npc_info.need_job = "nil" -- Специально Ð´Ð»Ñ Ñмены гвардов. Указывает на какую работу хочет данный чувак. + npc_info.job_prior = -1 + npc_info.job_id = -1 + npc_info.begin_job = false + + if is_stalker then + npc_info.stype = modules.stype_stalker + else + npc_info.stype = modules.stype_mobile + end + + return npc_info +end + +function se_smart_terrain:refresh_script_logic(obj_id) + local object = alife():object(obj_id) + local stype = modules.stype_mobile + if IsStalker(object) then + stype = modules.stype_stalker + end + xr_logic.initialize_obj(db.storage[object.id].object, db.storage[object.id], false, db.actor, stype) +end + +-- добавить npc в smart terrain. +function se_smart_terrain:register_npc(obj) + printf("[smart_terrain %s] register called obj=%s", self:name(), obj:name()) + self.population = self.population + 1 + + if self.b_registred == false then + table.insert(self.npc_to_register, obj) + return + end + + -- Только Ð´Ð»Ñ Ð¼Ð¾Ð½Ñтров, чтобы ходили по Ñмартам. + if not IsStalker(obj) then + obj:smart_terrain_task_activate() + end + + obj.m_smart_terrain_id = self.id + if arrived_to_smart(obj, self) then + self.npc_info[obj.id] = self:fill_npc_info(obj) + + -- Затычка на Ñлучай еÑли мы региÑтримÑÑ Ð² Ñмарт, из которого только что Ñами вынеÑли вÑех врагов. + self.dead_time = {} + + -- тут надо найти чуваку работу + self:select_npc_job(self.npc_info[obj.id]) + else + self.arriving_npc[obj.id] = obj + end +end +-- РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ ÐПС в ÑпиÑок отложенных. ОÑущеÑтвлÑетÑÑ Ð½Ð° загрузке или на региÑтрации ÐПС, пока не зарегиÑтрен Ñмарт +function se_smart_terrain:register_delayed_npc() + for k,v in pairs(self.npc_to_register) do + self:register_npc(v) + end + self.npc_to_register = {} +end +-- отпуÑтить npc +function se_smart_terrain:unregister_npc(obj) + --callstack() + printf("smart [%s] unregister npc [%s]", self:name(), obj:name()) + + self.population = self.population - 1 + + if self.npc_info[obj.id] ~= nil then + -- TODO: Тут надо выгнать чувака Ñ Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÐ¼Ð¾Ð¹ им работы + if self.npc_info[obj.id].job_link == nil then + return + end + self.npc_info[obj.id].job_link.npc_id = nil + self.npc_info[obj.id] = nil + obj:clear_smart_terrain() + + if db.storage[obj.id] ~= nil then + local object = db.storage[obj.id].object + local stype = modules.stype_mobile + if IsStalker(obj) then + stype = modules.stype_stalker + end + xr_logic.initialize_obj(object, db.storage[obj.id], false, db.actor, stype) + end + return + end + if self.arriving_npc[obj.id] ~= nil then + self.arriving_npc[obj.id] = nil + obj:clear_smart_terrain() + return + end + + abort("self.npc_info[obj.id] = nil !!! obj.id=%d", obj.id) +end +-- Убрать убитого +function se_smart_terrain:clear_dead(obj) + if self.npc_info[obj.id] ~= nil then + -- УÑтанавливаем таймер Ñмерти на работе + self.dead_time[self.npc_info[obj.id].job_id] = game.get_game_time() + + if self.npc_info[obj.id].job_link == nil then + return + end + + self.npc_info[obj.id].job_link.npc_id = nil + self.npc_info[obj.id] = nil + obj:clear_smart_terrain() + return + end + if self.arriving_npc[obj.id] ~= nil then + self.arriving_npc[obj.id] = nil + obj:clear_smart_terrain() + return + end + + abort("self.npc_info[obj.id] = nil !!! obj.id=%d", obj.id) +end +-- выдать объекту задание. +function se_smart_terrain:task(obj) + if self.arriving_npc[obj.id] ~= nil then + return self.smart_alife_task + end + return self.job_data[self.npc_info[obj.id].job_id].alife_task +end + + +--******************************************************* +-- Функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð¼Ð¸ +--******************************************************* +-- Загрузка работ (из gulag_general) +function se_smart_terrain:load_jobs() + --printf("LOAD JOBS %s", self:name()) + -- Загружаем иерархию работ + self.jobs = gulag_general.load_job(self) + + -- Загружаем ltx работ. + self.ltx, self.ltx_name = xr_gulag.loadLtx(self:name()) + -- Сортируем вÑÑŽ иерархию по уменьшению приоритета + -- РекурÑÐ¸Ð²Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñортировки + local function sort_jobs(jobs) + for k,v in pairs(jobs) do + if v.jobs ~= nil then + sort_jobs(v.jobs) + end + end + table.sort(jobs, function(a,b) return a._prior > b._prior end ) + end + +-- if self:name() == "jup_a10_smart_terrain" then +-- printf("before sort") +-- store_table(self.jobs) +-- end + + sort_jobs(self.jobs) + + --if self:name() == "jup_a10_smart_terrain" then + -- printf("after sort") + -- store_table(self.jobs) + --end + + + -- Ðадо Ñделать поÑтобработку работ. Проинитить вÑе неиниченные Ð¿Ð¾Ð»Ñ + -- Ð”Ð»Ñ Ð±Ð¾Ð»ÐµÐµ быÑтрого доÑтупа нужно вычленить параметры работ в отдельную таблицу вида: + --self.job_data[job_id] = {} + local id = 0 + self.job_data = {} + local function get_jobs_data(jobs) + for k,v in pairs(jobs) do + if v.jobs ~= nil then + get_jobs_data(v.jobs) + else + if v.job_id == nil then + print_table(self.jobs) + abort("Incorrect job table") + end + self.job_data[id] = v.job_id + + self.job_data[id]._prior = v._prior -- Кешируем Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ + v.job_id = id + id = id + 1 + end + end + end + + get_jobs_data(self.jobs) + -- ПробегаемÑÑ Ð¿Ð¾ работам и выÑчитываем Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ работы alife_task + for k,v in pairs(self.job_data) do + local section = v.section + local ltx = v.ini_file or self.ltx + if not ltx:line_exist(section, "active") then + abort("gulag: ltx=%s no 'active' in section %s", self.ltx_name, section) + end + local active_section = ltx:r_string(section, "active") + + +-- printf("job_type %s job_section %s", tostring(v.job_type), tostring(section)) + -- Ð’ завиÑимоÑти от типа работы по разному Ñчитаем alife_path + if v.job_type == "path_job" then -- работа задаетÑÑ Ð¿Ð°Ñ‚Ñ€ÑƒÐ»ÑŒÐ½Ñ‹Ð¼ путем + local path_field + for i,vv in pairs(path_fields) do + if ltx:line_exist(active_section, vv) then + path_field = vv + break + end + end + + --printf("path_field %s prefix_name %s active_section %s", tostring(path_field), tostring(v.prefix_name), tostring(active_section)) + local path_name = ltx:r_string(active_section, path_field) + if v.prefix_name ~= nil then + path_name = v.prefix_name .. "_" .. path_name + else + path_name = self:name() .. "_" .. path_name + end + + if path_field == "center_point" then --' TODO убрать затык когда переделаем кемпы на Ñмарткаверы + if level.patrol_path_exists(path_name .. "_task") then + path_name = path_name .. "_task" + end + end + + v.alife_task = CALifeSmartTerrainTask(path_name) + + elseif v.job_type == "smartcover_job" then -- работа задаетÑÑ Ñмарткавером + local smartcover_name = ltx:r_string(active_section, "cover_name") + local smartcover = se_smart_cover.registered_smartcovers[smartcover_name] + if smartcover == nil then + abort("There is an exclusive job with wrong smatrcover name [%s] smartterrain [%s]", tostring(smartcover_name), self:name()) + end + printf("Returning alife task for object [%s] game_vertex [%s] level_vertex [%s] position %s", smartcover.id, smartcover.m_game_vertex_id, smartcover.m_level_vertex_id, vec_to_str(smartcover.position)) + v.alife_task = CALifeSmartTerrainTask(smartcover.m_game_vertex_id, smartcover.m_level_vertex_id) + + elseif v.job_type == "point_job" then -- работа задаетÑÑ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸ÐµÐ¹ + v.alife_task = self.smart_alife_task + end + + v.game_vertex_id = v.alife_task:game_vertex_id() + v.level_id = game_graph():vertex(v.game_vertex_id):level_id() + v.position = v.alife_task:position() + end +end + +-- Ðпдейт работ Ñмарттеррейна. +-- ЕÑли передаетÑÑ object, то значит нужно найти только Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ +function se_smart_terrain:update_jobs() + self:check_alarm() + --printf("UPDATE JOBS %s", self:name()) + + -- ПроверÑем, дошел ли кто-то до Ñмарта + for k,v in pairs(self.arriving_npc) do + if arrived_to_smart(v, self) then + self.npc_info[v.id] = self:fill_npc_info(v) + + -- Затычка на Ñлучай еÑли мы региÑтримÑÑ Ð² Ñмарт, из которого только что Ñами вынеÑли вÑех врагов. + self.dead_time = {} + + -- тут надо найти чуваку работу + self:select_npc_job(self.npc_info[v.id]) + + self.arriving_npc[k] = nil + end + end + + -- Сортируем ÐПС по увеличению приоритета занимаемой работы + table.sort(self.npc_info, function(a,b) return a.job_prior < b.job_prior end ) + for k,v in pairs(self.npc_info) do + self:select_npc_job(v) + end +end +-- Выбор работы Ð´Ð»Ñ Ð¿ÐµÑ€Ñонажа +function se_smart_terrain:select_npc_job(npc_info) + -- Выбираем работу + local selected_job_id, selected_job_prior, selected_job_link = job_iterator(self.jobs, npc_info, 0, self) + if selected_job_id == nil then + print_table(self.jobs) + abort("Insufficient smart_terrain jobs %s", self:name()) + end + + -- Ðазначаем работу + if selected_job_id ~= npc_info.job_id and selected_job_link ~= nil then + -- УÑтановить Ñебе выбранную работу + --printf("NPC %s FOUND JOB %s SECTION %s", npc_info.se_obj:name(), selected_job_id, self.job_data[selected_job_link.job_id].section) + -- ЕÑли ÐПС был на работе - выгонÑем его Ñ Ð½ÐµÐµ. + if npc_info.job_link ~= nil then + self.npc_by_job_section[self.job_data[npc_info.job_link.job_id].section] = nil + npc_info.job_link.npc_id = nil + end + + selected_job_link.npc_id = npc_info.se_obj.id + self.npc_by_job_section[self.job_data[selected_job_link.job_id].section] = selected_job_link.npc_id + + npc_info.job_id = selected_job_link.job_id + npc_info.job_prior = selected_job_link._prior + npc_info.begin_job = false + -- ÑохранÑем ÑÑылку на работу, Ð´Ð»Ñ Ð¾Ð±Ð»ÐµÐ³Ñ‡ÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ + npc_info.job_link = selected_job_link + + -- завершаем текущую работу + local obj_storage = db.storage[npc_info.se_obj.id] + if obj_storage ~= nil then + xr_logic.switch_to_section(obj_storage.object, self.ltx, "nil") + end + end + + if npc_info.begin_job ~= true then + -- ПроверÑем, дошел ли перÑонаж до работы (то еÑть может ли он начать ее выполнение) + local job_data = self.job_data[npc_info.job_id] + if job_data == nil then + return + end + -- Ðачинаем выполнÑть работу + printf("[smart_terrain %s] gulag: beginJob: obj=%s job= %s", self:name(), npc_info.se_obj:name(), job_data.section) + -- Смена работы, очищаем памÑть Ð´Ð»Ñ Ð¾Ñ„Ñ„Ð»Ð°Ð¹Ð½Ð¾Ð²Ð¾Ð³Ð¾ обьекта. + db.offline_objects[npc_info.se_obj.id] = {} + npc_info.begin_job = true + + local obj_storage = db.storage[npc_info.se_obj.id] + if obj_storage ~= nil then + self:setup_logic(obj_storage.object) + end + end +end +-- наÑтроить логику Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°, который в онлайне. +function se_smart_terrain:setup_logic(obj) + --printf("setup npc logic %s", obj:name()) +-- callstack() + local npc_data = self.npc_info[obj:id()] + + if npc_data == nil then + return + end + + local job = self.job_data[npc_data.job_id] + local ltx = job.ini_file or self.ltx + local ltx_name = job.ini_path or self.ltx_name + + xr_logic.configure_schemes(obj, ltx, ltx_name, npc_data.stype, job.section, job.prefix_name or self:name()) + + local sect = xr_logic.determine_section_to_activate(obj, ltx, job.section, db.actor) + if utils.get_scheme_by_section(job.section) == "nil" then + abort("[smart_terrain %s] section=%s, don't use section 'nil'!", self:name(), sect) + end + + xr_logic.activate_by_section(obj, ltx, sect, job.prefix_name or self:name(), false) +end +-- получить работу, которую занимает объект +function se_smart_terrain:getJob(obj_id) + return self.npc_info[obj_id] and self.job_data[self.npc_info[obj_id].job_id] +end +-- Получение перÑонажа, который занимает указанную работу. +function se_smart_terrain:idNPCOnJob(job_name) + return self.npc_by_job_section[job_name] +end +function se_smart_terrain:switch_to_desired_job(npc) + -- Берем текущую работу ÐПС + local npc_id = npc:id() + local npc_info = self.npc_info[npc_id] + + --printf("***** %s -> %s", npc:name(), tostring(npc_info.need_job)) + local changing_npc_id = self.npc_by_job_section[npc_info.need_job] + --printf("changing_npc_id %s", tostring(changing_npc_id)) + + if changing_npc_id == nil then + -- Мы не нашли Ñ ÐºÐµÐ¼ менÑтьÑÑ, проÑто реÑетим ÑÐµÐ±Ñ + self.npc_info[npc_id].job_link = nil + self.npc_info[npc_id].job_id = -1 + self.npc_info[npc_id].job_prior = -1 + self:select_npc_job(self.npc_info[npc_id]) + + --print_table(self.npc_by_job_section) + --abort("ERROR during channging NPC") + return + end + + if self.npc_info[changing_npc_id] == nil then + -- Мы не нашли Ñ ÐºÐµÐ¼ менÑтьÑÑ, проÑто реÑетим ÑÐµÐ±Ñ + self.npc_info[npc_id].job_link = nil + self.npc_info[npc_id].job_id = -1 + self.npc_info[npc_id].job_prior = -1 + self:select_npc_job(self.npc_info[npc_id]) + + --print_table(self.npc_by_job_section) + --abort("ERROR during channging NPC") + return + end + + local desired_job = self.npc_info[changing_npc_id].job_id + + -- Переключаем ÐПС на желаемую работу + if npc_info.job_link ~= nil then + self.npc_by_job_section[self.job_data[npc_info.job_link.job_id].section] = nil + npc_info.job_link.npc_id = nil + end + + local selected_job_link = self.npc_info[changing_npc_id].job_link + + selected_job_link.npc_id = npc_info.se_obj.id + + self.npc_by_job_section[self.job_data[selected_job_link.job_id].section] = selected_job_link.npc_id + + npc_info.job_id = selected_job_link.job_id + npc_info.job_prior = selected_job_link._prior + npc_info.begin_job = true + + -- ÑохранÑем ÑÑылку на работу, Ð´Ð»Ñ Ð¾Ð±Ð»ÐµÐ³Ñ‡ÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ + npc_info.job_link = selected_job_link + npc_info.need_job = "nil" + + local obj_storage = db.storage[npc_id] + if obj_storage ~= nil then + self:setup_logic(obj_storage.object) + end + + -- ОÑвобождаем ÐПС, который занимает желаемую работу и говорим ему перевыбрать работу + self.npc_info[changing_npc_id].job_link = nil + self.npc_info[changing_npc_id].job_id = -1 + self.npc_info[changing_npc_id].job_prior = -1 + self:select_npc_job(self.npc_info[changing_npc_id]) +end + + +--******************************************************* +-- СЕЙВ/ЛОÐД +--******************************************************* +-- Ñохранение +function se_smart_terrain:STATE_Write(packet) + cse_alife_smart_zone.STATE_Write(self, packet) + + set_save_marker(packet, "save", false, "se_smart_terrain") + + -- Информацию о ÐПС, идущих в Ñмарт + local n = 0 + for k,v in pairs(self.arriving_npc) do + n = n + 1 + end + packet:w_u8(n) + for k,v in pairs(self.arriving_npc) do + packet:w_u16(k) + end + + + -- Информацию о ÐПС в Ñмарте + n = 0 + for k,v in pairs(self.npc_info) do + n = n + 1 + end + + packet:w_u8(n) + for k,v in pairs(self.npc_info) do + packet:w_u16(k) + packet:w_u8(v.job_prior) + packet:w_u8(v.job_id) + packet:w_bool(v.begin_job) + packet:w_stringZ(v.need_job) + end + + n = 0 + for k,v in pairs(self.dead_time) do + n = n + 1 + end + packet:w_u8(n) + for k,v in pairs(self.dead_time) do + packet:w_u8(k) + utils.w_CTime(packet, v) + end + + if self.base_on_actor_control ~= nil then + packet:w_bool(true) + self.base_on_actor_control:save(packet) + else + packet:w_bool(false) + end + + if self.respawn_point then + packet:w_bool(true) + local n = 0 + for k,v in pairs(self.already_spawned) do + n = n + 1 + end + packet:w_u8(n) + for k,v in pairs(self.already_spawned) do + packet:w_stringZ(k) + packet:w_u8(v.num) + end + + if self.last_respawn_update ~= nil then + packet:w_bool(true) + utils.w_CTime(packet, self.last_respawn_update) + else + packet:w_bool(false) + end + else + packet:w_bool(false) + end + + if self.population < 0 then + abort("Smart_terrain [%s] population can't be less than zero!!!", self:name()) + end + packet:w_u8(self.population) + + set_save_marker(packet, "save", true, "se_smart_terrain") +end + +-- воÑÑтановление +function se_smart_terrain:STATE_Read(packet, size) + cse_alife_smart_zone.STATE_Read(self, packet, size) + + -- под LevelEditor не пытатьÑÑ Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ из пакета ничего + if editor() then + return + end + + set_save_marker(packet, "load", false, "se_smart_terrain") + self:read_params() + + -- Информацию о ÐПС, идущих в Ñмарт + local n = packet:r_u8() + self.arriving_npc = {} + for i = 1,n do + local id = packet:r_u16() + self.arriving_npc[id] = false + end + + -- Информацию о ÐПС в Ñмарте + n = packet:r_u8() + --printf("load %s npc", tostring(n)) + self.npc_info = {} + for i = 1,n do + local id = packet:r_u16() + --printf("__ id %s", tostring(id)) + self.npc_info[id] = {} + local npc_info = self.npc_info[id] + npc_info.job_prior = packet:r_u8() + --printf("__ job_prior %s", tostring(npc_info.job_prior)) + if npc_info.job_prior == 255 then + npc_info.job_prior = -1 + end + npc_info.job_id = packet:r_u8() + --printf("__ job_id %s", tostring(npc_info.job_id)) + if npc_info.job_id == 255 then + npc_info.job_id = -1 + end + npc_info.begin_job = packet:r_bool() + --printf("__ begin_job %s", tostring(npc_info.begin_job)) + npc_info.need_job = packet:r_stringZ() + end + + n = packet:r_u8() + self.dead_time = {} + --printf("load %s dead_time", tostring(n)) + for i =1,n do + local job_id = packet:r_u8() + --printf("__ job_id %s", tostring(job_id)) + local dead_time = utils.r_CTime(packet) + self.dead_time[job_id] = dead_time + end + + self.need_init_npc = true + + if self.script_version > 9 then + if packet:r_bool() == true then + --self.base_on_actor_control + self.base_on_actor_control:load(packet) + end + end + + local respawn_point = packet:r_bool() + --printf("LOAD RESPAWN %s", self:name()) + if respawn_point then + n = packet:r_u8() + for i = 1, n do + local id = packet:r_stringZ() + local num = packet:r_u8() + self.already_spawned[id].num = num + end + + if self.script_version > 11 then + local exist = packet:r_bool() + if exist then + self.last_respawn_update = utils.r_CTime(packet) + else + self.last_respawn_update = nil + end + end + end + + self.population = packet:r_u8() + + set_save_marker(packet, "load", true, "se_smart_terrain") +end +-- Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐПС поÑле загрузки. +function se_smart_terrain:init_npc_after_load() + local function find_job(jobs, npc_info) + for k,v in pairs(jobs) do + if v.jobs ~= nil then + find_job(v.jobs, npc_info) + else + if v.job_id == npc_info.job_id then + npc_info.job_link = v + v.npc_id = npc_info.se_obj.id + return + end + end + end + end + + + local sim = alife() + --printf("[%s] init_npc_after_load", self:name()) + for k,v in pairs(self.arriving_npc) do + local sobj = sim:object(k) + if sobj ~= nil then + self.arriving_npc[k] = sobj + else + self.arriving_npc[k] = nil + end + end + + for k,v in pairs(self.npc_info) do + local sobj = sim:object(k) + if sobj ~= nil then + local npc_info = self:fill_npc_info(sobj) + + npc_info.job_prior = v.job_prior + npc_info.job_id = v.job_id + npc_info.begin_job = v.begin_job + npc_info.need_job = v.need_job + + --Теперь надо найти данную работу и выÑтавить ÑÑылку на нее. + find_job(self.jobs, npc_info) + + self.npc_info[k] = npc_info + if npc_info.job_link ~= nil then + self.npc_by_job_section[self.job_data[npc_info.job_link.job_id].section] = k + end + else + self.npc_info[k] = nil + end + end +end + + +--' Возвращает отформатированную Ñтроку ÑвойÑтв Ñмарта +function se_smart_terrain:get_smart_props() + local props = smart_names.get_smart_terrain_name(self) + if(props==nil) or (_G.dev_debug) then + props = self:name().." ["..self.id.."]\\n".. + self.sim_type.."\\n".. + "squad_id = "..tostring(self.id).."\\n".. + "capacity = "..tostring(self.max_population).." ("..sim_board.get_sim_board():get_smart_population(self)..")\\n" + + if self.respawn_point ~= nil and self.already_spawned ~= nil then + props = props.."\\nalready_spawned :\n" + for k,v in pairs(self.already_spawned) do + props = props.."["..k.."] = "..v.num.."("..xr_logic.pick_section_from_condlist(db.actor, nil,self.respawn_params[k].num)..")\\n" + end + if self.last_respawn_update then + props = props.."\\ntime_to_spawn:"..tostring(self.respawn_time - game.get_game_time():diffSec(self.last_respawn_update)).."\\n" + end + end + + --' ДобавлÑем информацию о находÑщихÑÑ Ð² Ñмарте отрÑдах + for k,v in pairs(sim_board.get_sim_board().smarts[self.id].squads) do + props = props .. tostring(v.id) .. "\\n" + end + end + return props +end + + + +--' ОтриÑовка Ñмарта на игровом поле +function se_smart_terrain:show() + local time = time_global() + if(self.showtime~=nil) and (self.showtime+200>=time) then + return + end + self.showtime = time + + local player = self.player_name + local spot = "neutral" + + if self.sim_avail == nil or xr_logic.pick_section_from_condlist(db.actor or alife():actor(), self, self.sim_avail) == "true" then + spot = "friend" + else + spot = "enemy" + end + + + if(self.smrt_showed_spot==spot) then + level.map_change_spot_hint(self.id, "alife_presentation_smart_"..self.sim_type.."_"..self.smrt_showed_spot, self:get_smart_props()) + return + end + + if(_G.dev_debug) then + if(self.smrt_showed_spot~=nil) then + level.map_remove_object_spot(self.id, "alife_presentation_smart_"..self.sim_type.."_"..self.smrt_showed_spot) + end + level.map_add_object_spot(self.id, "alife_presentation_smart_"..self.sim_type.."_"..spot, self:get_smart_props()) + self.smrt_showed_spot = spot + else + + if(self.smrt_showed_spot~=nil) and + (level.map_has_object_spot(self.id, "alife_presentation_smart_"..self.sim_type.."_"..self.smrt_showed_spot)~=0) + then + level.map_remove_object_spot(self.id, "alife_presentation_smart_base_"..self.smrt_showed_spot) + end + + end +end +--' Обновление информации о Ñмарте на игровом поле +function se_smart_terrain:refresh() + self:show() +end +--' Убирание отриÑовки Ñмарта на игровом поле +function se_smart_terrain:hide() + if self.smrt_showed_spot == nil then + return + end + level.map_remove_object_spot(self.id, "alife_presentation_smart_"..self.sim_type.."_"..self.smrt_showed_spot) +end + + +local function is_only_monsters_on_jobs(npc_info) + for k,v in pairs (npc_info) do + if v.is_monster == false then + return false + end + end + return true +end + +-- Обновление. +-- Ð’ онлайне вызываетÑÑ Ñ‡ÐµÑ€ÐµÐ· binder. +-- Также может вызватьÑÑ Ð¿Ñ€Ð¸Ð½ÑƒÐ´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾ из xr_effects +function se_smart_terrain:update() + cse_alife_smart_zone.update( self ) + if dev_debug then + self:refresh() -- Ðе забыть потом заремить + end + + local current_time = time_global() + + if simulation_objects.is_on_the_same_level(self, alife():actor()) then + local dist_to_actor = self.position:distance_to(alife():actor().position) + local old_dist_to_actor = (nearest_to_actor_smart.id == nil and nearest_to_actor_smart.dist) or alife():object(nearest_to_actor_smart.id).position:distance_to(alife():actor().position) + if dist_to_actor < old_dist_to_actor then + nearest_to_actor_smart.id = self.id + nearest_to_actor_smart.dist = dist_to_actor + end + end + + -- Ðпдейт реÑпауна отрÑдов ÑимулÑции. + if self.respawn_params ~= nil then + self:try_respawn() + end + + if self.check_time~=nil and current_time < self.check_time then + return + end + + --проверить еÑть ли кто-то в Ñмарте, еÑли еÑть и коÑтры не включены то включить, + --еще проверить еÑть ли актер, чтоб была Ð³Ð°Ñ€Ð°Ð½Ñ‚Ð¸Ñ Ñ‡Ñ‚Ð¾ коÑтры проÑпонилиÑÑŒ... + if is_only_monsters_on_jobs(self.npc_info) and self.campfires_on then + bind_campfire.turn_off_campfires_by_smart_name(self:name()) + self.campfires_on = false + elseif not is_only_monsters_on_jobs(self.npc_info) and not self.campfires_on then + bind_campfire.turn_on_campfires_by_smart_name(self:name()) + self.campfires_on = true + end + + if db.actor ~= nil then + local distance = db.actor:position():distance_to_sqr(self.position) + local idle_time = math.max(60, 0.003 * distance) + self.check_time = current_time + idle_time + else + self.check_time = current_time + 10 + end + + -- ПроверÑем, не иÑтек ли запрет на занимание работы, на которой убили ÐПС + local current_time = game.get_game_time() + for k,v in pairs(self.dead_time) do + if current_time:diffSec(v) >= DEATH_IDLE_TIME then + self.dead_time[k] = nil + end + end + + -- Перевыбор работ + self:update_jobs() + + -- Ðпдейтим контрол реакции базы на игрока + if self.base_on_actor_control ~= nil then + self.base_on_actor_control:update() + end + -- Ðпдейт доÑтупноÑти Ð´Ð»Ñ ÑимулÑции. + simulation_objects.get_sim_obj_registry():update_avaliability(self) +end +-- Переведение Ñмарта в напрÑженное ÑоÑтоÑние +function se_smart_terrain:set_alarm() + self.smart_alarm_time = game.get_game_time() +end +-- ПроверÑет. а не прошел ли аларм в Ñмарте +function se_smart_terrain:check_alarm() + if self.smart_alarm_time == nil then + return + end + if game.get_game_time():diffSec(self.smart_alarm_time) > 21600 then -- 6 Игровых чаÑов + self.smart_alarm_time = nil + end +end + + +-- уÑтановить логику и Ñообщить Ñмарту, что объект перешёл в онлайн. +-- вызываетÑÑ Ð¸Ð· net_spawn() объектов +function setup_gulag_and_logic_on_spawn(obj, st, sobject, stype, loaded) + local sim = alife() + local sobject = alife():object(obj:id()) + if sim ~= nil and sobject then + local strn_id = sobject.m_smart_terrain_id + printf( "setup_gulag_and_logic_on_spawn obj=%s, strn_id=%s, loaded=%s", obj:name(), tostring(strn_id), tostring(loaded)) + + if strn_id ~= nil and strn_id ~= 65535 then + local strn = sim:object(strn_id) + local need_setup_logic = (not loaded) and (strn.npc_info[obj:id()] and strn.npc_info[obj:id()].begin_job == true) + + if need_setup_logic then + strn:setup_logic(obj) + else + xr_logic.initialize_obj(obj, st, loaded, db.actor, stype) + end + else + xr_logic.initialize_obj(obj, st, loaded, db.actor, stype) + end + else + xr_logic.initialize_obj(obj, st, loaded, db.actor, stype) + end +end + +-- Убираем объект из Ñмарта при Ñмерти +function on_death(obj) + local sim = alife() + if sim then + local obj = sim:object(obj.id) + if obj == nil then return end + local strn_id = obj:smart_terrain_id() + if strn_id ~= 65535 then + printf("clear dead object %s", obj:name()) + sim:object(strn_id):clear_dead(obj) + end + end +end + + +--*********************************************************************************************** +--* SIMULATION_TARGET_SMART * +--*********************************************************************************************** +-- Получить позицию, левел вертекÑ, гейм Ð²ÐµÑ€Ñ‚ÐµÐºÑ Ð¾Ð±ÑŒÐµÐºÑ‚Ð°. +function se_smart_terrain:get_location() + return self.position, self.m_level_vertex_id, self.m_game_vertex_id +end + +-- ДоÑтигнут ли Ñ Ð¾Ñ‚Ñ€Ñдом выбравшим Ð¼ÐµÐ½Ñ ÐºÐ°Ðº цель. +function se_smart_terrain:am_i_reached(squad) + local squad_pos, squad_lv_id, squad_gv_id = squad:get_location() + local target_pos, target_lv_id, target_gv_id = self:get_location() + if game_graph():vertex(squad_gv_id):level_id() ~= game_graph():vertex(target_gv_id):level_id() then + return false + end + if IsMonster(alife():object(squad:commander_id())) and squad:get_script_target() == nil then + return squad_pos:distance_to_sqr(target_pos) <= 25 + end + return squad.always_arrived or squad_pos:distance_to_sqr(target_pos) <= self.arrive_dist^2 +end + +-- ВызываетÑÑ 1 раз поÑле доÑÑ‚Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¼ÐµÐ½Ñ Ð¾Ñ‚Ñ€Ñдом выбравшим Ð¼ÐµÐ½Ñ ÐºÐ°Ðº цель. +function se_smart_terrain:on_after_reach(squad) + for k in squad:squad_members() do + local obj = k.object + squad.board:setup_squad_and_group(obj) + end + squad.current_target_id = self.id +end + +-- ВызываетÑÑ 1 раз в момент выбора Ð¼ÐµÐ½Ñ ÐºÐ°Ðº цели. +function se_smart_terrain:on_reach_target(squad) +-- squad.sound_manager:set_storyteller(squad:commander_id()) +-- squad.sound_manager:set_story("squad_begin_attack") + squad:set_location_types(self:name()) + self.board:assign_squad_to_smart(squad, self.id) + for k in squad:squad_members() do + if db.offline_objects[k.id] ~= nil then + db.offline_objects[k.id] = {} + end + end +-- self.board:exit_smart(squad, squad.smart_id) +end + +-- Возвращает CALifeSmartTerrainTask на менÑ, вызываетÑÑ Ð¸Ð· smart_terrain:task() +function se_smart_terrain:get_alife_task() + return self.smart_alife_task +end + +function smart_terrain_squad_count(board_smart_squads) + local count = 0 + for k,v in pairs(board_smart_squads) do + if v:get_script_target() == nil then + count = count + 1 + end + end + return count +end + +function se_smart_terrain:sim_available() + if self.base_on_actor_control ~= nil and self.base_on_actor_control.status ~= smart_terrain_control.NORMAL then + return false + end + return true +end + +local is_squad_monster = +{ + ["monster_predatory_day"] = true, + ["monster_predatory_night"] = true, + ["monster_vegetarian"] = true, + ["monster_zombied_day"] = true, + ["monster_zombied_night"] = true, + ["monster_special"] = true +} +function surge_stats() + local sim_obj_registry = simulation_objects.get_sim_obj_registry().objects + local sim_squads = { + ["zaton"] = {}, + ["jupiter"] = {}, + ["pripyat"] = {} + } + local sim_smarts = { + ["zaton"] = {}, + ["jupiter"] = {}, + ["pripyat"] = {} + } + for k,v in pairs(sim_obj_registry) do + if v:clsid() == clsid.smart_terrain and tonumber(v.props["surge"]) > 0 then + local level_name = alife():level_name(game_graph():vertex(v.m_game_vertex_id):level_id()) + if sim_smarts[level_name] ~= nil then + table.insert(sim_smarts[level_name], v) + end + end + if v:clsid() == clsid.online_offline_group_s then + local squad_params = sim_board.simulation_activities[v.player_id] + if squad_params ~= nil then + local smart_params = squad_params.smart.surge + if smart_params ~= nil then + local level_name = alife():level_name(game_graph():vertex(v.m_game_vertex_id):level_id()) + if sim_squads[level_name] ~= nil then + table.insert(sim_squads[level_name], v) + end + end + end + end + end + local function print_smarts_and_squads_by_level(level_name) + printf("LEVEL: [%s]", level_name) + local max_capacity_total = 0 + for i = 1, #sim_smarts[level_name] do + local smart = sim_smarts[level_name][i] + max_capacity_total = max_capacity_total + smart.max_population + local squad_count = smart_terrain_squad_count(sim_board.get_sim_board().smarts[smart.id].squads) + printf("smart: [%s] max_population [%d] squad_count [%d]", smart:name(),smart.max_population, squad_count) + end + printf("TOTAL: capacity total : [%d] squads total [%d]" , max_capacity_total, #sim_squads[level_name]) + end + print_smarts_and_squads_by_level("zaton") + print_smarts_and_squads_by_level("jupiter") + print_smarts_and_squads_by_level("pripyat") +end +-- Мой прекондишн. +function se_smart_terrain:target_precondition(squad, need_to_dec_population) + if self.respawn_only_smart == true then + return false + end + + local squad_count = smart_terrain_squad_count(self.board.smarts[self.id].squads) + if need_to_dec_population then + squad_count = squad_count - 1 + end + if squad_count ~= nil and (self.max_population <= squad_count) then + --printf("smart terrain [%s] precondition returns false for squad [%s]", self:name(), squad:name()) +-- if tonumber(self.props["surge"]) > 0 and xr_conditions.surge_started() then +-- printf("SURGE_SMART_STATS : smart [%s]\n max_population = %d \ squad_count = %d", self:name(), self.max_population, squad_count) +-- end + return false + end + + local squad_params = sim_board.simulation_activities[squad.player_id] + if squad_params == nil or squad_params.smart == nil then + --printf("smart terrain [%s] precondition returns false for squad [%s]", self:name(), squad:name()) + return false + end + + if tonumber(self.props["resource"] )> 0 then + local smart_params = squad_params.smart.resource + if smart_params ~= nil and smart_params.prec(squad, self) then + return true + end + end + if tonumber(self.props["base"] )> 0 then + local smart_params = squad_params.smart.base + if smart_params ~= nil and smart_params.prec(squad, self) then + return true + end + end + if tonumber(self.props["lair"] )> 0 then + local smart_params = squad_params.smart.lair + if smart_params ~= nil and smart_params.prec(squad, self) then + return true + end + end + if tonumber(self.props["territory"] )> 0 then + local smart_params = squad_params.smart.territory + if smart_params ~= nil and smart_params.prec(squad, self) then + return true + end + end + if tonumber(self.props["surge"] )> 0 then + local smart_params = squad_params.smart.surge + if smart_params ~= nil and smart_params.prec(squad, self) then + return true + end + end + --printf("smart terrain [%s] precondition returns false for squad [%s]", self:name(), squad:name()) + return false + + +--[[ + local squad_count = smart_terrain_squad_count(self.board.smarts[self.id].squads) + if squad_count ~= nil and (self.max_population <= squad_count) then return false end + + + if squad.player_id == "stalker" and in_time_interval(9,19) and tonumber(self.props["resource"] )> 0 then + return true + end + --if squad.player_id ~= "monster_predatory" and squad.player_id ~= "monster_vegetarian" then + + if not is_squad_monster[squad.player_id] then + if tonumber(self.props["base"]) > 0 and in_time_interval(20,8) then + return true + end + if tonumber(self.props["base"] ) > 0 and xr_conditions.surge_started() then + return true + end + else + if tonumber(self.props["lair"] ) > 0 and xr_conditions.surge_started() then + return true + end + if tonumber(self.props["lair"] ) > 0 and in_time_interval(7,20) then + return true + end + end + return false +]] +end + +-- ПоÑчитать мой приоритет Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ñда. +function se_smart_terrain:evaluate_prior(squad) + return simulation_objects.evaluate_prior(self, squad) +end + +-- РеÑпаун ÑимулÑции. + +function se_smart_terrain:check_respawn_params(respawn_params) + --printf("CHECK RESPAWN PARAMS %s", self:name()) + self.respawn_params = {} + self.already_spawned = {} + self.respawn_point = true + if not self.ini:section_exist(respawn_params) then + abort("Wrong smatr_terrain respawn_params section [%s](there is no section)", respawn_params) + end + local n = self.ini:line_count(respawn_params) + if n == 0 then + abort("Wrong smatr_terrain respawn_params section [%s](empty params)", respawn_params) + end + for j=0,n-1 do + local result, prop_name, prop_condlist = self.ini:r_line(respawn_params,j,"","") + if not self.ini:section_exist(prop_name) then + abort("Wrong smatr_terrain respawn_params section [%s] prop [%s](there is no section)", respawn_params, prop_name) + end + local spawn_squads = utils.cfg_get_string(self.ini, prop_name, "spawn_squads", self, false, "", nil) + local spawn_num = utils.cfg_get_string(self.ini, prop_name, "spawn_num", self, false, "", nil) + if spawn_squads == nil then + abort("Wrong smatr_terrain respawn_params section [%s] prop [%s] line [spawn_squads](there is no line)", respawn_params, prop_name) + elseif spawn_num == nil then + abort("Wrong smatr_terrain respawn_params section [%s] prop [%s] line [spawn_num](there is no line)", respawn_params, prop_name) + end + spawn_squads = utils.parse_names(spawn_squads) + spawn_num = xr_logic.parse_condlist(nil, prop_name, "spawn_num", spawn_num) + self.respawn_params[prop_name] = {} + self.already_spawned[prop_name] = {} + self.respawn_params[prop_name].squads = spawn_squads + self.respawn_params[prop_name].num = spawn_num + self.already_spawned[prop_name].num = 0 + end +end + +function se_smart_terrain:call_respawn() + local available_sects = {} + printf("respawn called from smart_terrain [%s]", self:name()) + for k,v in pairs(self.respawn_params) do + if tonumber(xr_logic.pick_section_from_condlist(db.actor, nil,v.num)) > self.already_spawned[k].num then + table.insert(available_sects,k) + end + end + if #available_sects > 0 then + local sect_to_spawn = available_sects[math.random(1,#available_sects)] + local sect_to_spawn_params = self.respawn_params[sect_to_spawn] + local squad = sect_to_spawn_params.squads[math.random(1,#sect_to_spawn_params.squads)] + squad = self.board:create_squad(self, squad) + squad.respawn_point_id = self.id + squad.respawn_point_prop_section = sect_to_spawn + self.board:enter_smart(squad, self.id) + for m in squad:squad_members() do + self.board:setup_squad_and_group(m.object) + end + self.already_spawned[sect_to_spawn].num = self.already_spawned[sect_to_spawn].num + 1 + end +end + +function se_smart_terrain:try_respawn() + --printf("TRY RESPAWN %s", self:name()) + local curr_time = game.get_game_time() + if self.last_respawn_update == nil or curr_time:diffSec(self.last_respawn_update) > self.respawn_time then + self.last_respawn_update = curr_time + + if self.sim_avail ~= nil and xr_logic.pick_section_from_condlist(db.actor or alife():actor(), self, self.sim_avail) ~= "true" then return end + + local squad_count = smart_terrain_squad_count(self.board.smarts[self.id].squads) + if self.max_population <= squad_count then printf("%s cannot respawn due to squad_count %s of %s", self:name(), self.max_population, squad_count) return end + + local dist_to_actor = alife():actor().position:distance_to_sqr(self.position) + if dist_to_actor < self.respawn_radius^2 then printf("%s cannot respawn due to distance", self:name()) return end + + self:call_respawn() + end +end diff --git a/gamedata/scripts/state_lib.script b/gamedata/scripts/state_lib.script new file mode 100644 index 0000000..a64e782 --- /dev/null +++ b/gamedata/scripts/state_lib.script @@ -0,0 +1,781 @@ +---------------------------------------------------------------------------------------------------------------------- +-- Библиотека ÑоÑтоÑний тела +-- автор: Диденко РуÑлан (Stohe) +-- TODO: +---------------------------------------------------------------------------------------------------------------------- + +states = { + -- Дефолтовый + idle = { weapon = nil, + movement = nil, + mental = nil, + bodystate = nil, + animstate = nil, + animation = nil + }, + smartcover = { weapon = "unstrapped", + movement = nil, + mental = nil, + bodystate = nil, + animstate = nil, + animation = nil, + direction = CSightParams.eSightTypeAnimationDirection + }, + + -- ХодÑчие ÑоÑтоÑÐ½Ð¸Ñ + walk = { weapon = "strapped", + movement = move.walk, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + walk_noweap = { weapon = "none", + movement = move.walk, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + run = { weapon = "strapped", + movement = move.run, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + sprint = { weapon = "strapped", + movement = move.run, + mental = anim.panic, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + patrol = { weapon = "unstrapped", + movement = move.walk, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + patrol_fire = { weapon = "fire", + movement = move.walk, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + raid = { weapon = "unstrapped", + movement = move.walk, + mental = anim.danger, + special_danger_move = true, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + raid_fire = {weapon = "fire", + movement = move.walk, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + sneak = { weapon = "unstrapped", + movement = move.walk, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = nil + }, + sneak_run = { weapon = "unstrapped", + movement = move.run, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = nil + }, + sneak_no_wpn = { weapon = "strapped", + movement = move.walk, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = nil + }, + sneak_fire = { weapon = "fire", + movement = move.walk, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = nil + }, + assault = { weapon = "unstrapped", + movement = move.run, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + assault_fire = { weapon = "fire", + movement = move.run, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + rush = { weapon = "unstrapped", + movement = move.run, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + + -- СтоÑчие ÑоÑтоÑÐ½Ð¸Ñ + wait = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "idle" + }, + wait_trade = { weapon = "none", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "idle" + }, + wait_na = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + guard = { weapon = "unstrapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "idle" + }, + guard_chasovoy = { weapon = "unstrapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "idle_chasovoy" + }, + guard_na = {weapon = "unstrapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + guard_fire = { weapon = "fire", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + threat = { weapon = "unstrapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = nil, + fast_set = true + }, + threat_danger = { weapon = "unstrapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = "bloodsucker_search", + }, + give_orders = { weapon = "unstrapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = "give_orders", + }, + threat_heli = { weapon = "unstrapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + threat_na = { weapon = "unstrapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = nil, + fast_set = true + }, + threat_fire = { weapon = "fire", + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + threat_sniper_fire = { weapon = "sniper_fire", + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = nil + }, + hide = { weapon = "unstrapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = "hide" + }, + hide_na = { weapon = "unstrapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = nil + }, + hide_fire = { weapon = "fire", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = nil + }, + hide_sniper_fire = { weapon = "sniper_fire", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = nil + }, + caution = { weapon = nil, + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "caution" + }, + choose = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "choosing" + }, + press = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "press" + }, + ward = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "warding" + }, + ward_short = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "warding_short" + }, + ward_noweap = {weapon = "none", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "warding" + }, + ward_noweap_short = {weapon = "none", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "warding_short" + }, + fold_arms = {weapon = "none", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "fold_arms" + }, + + search = {weapon = nil, + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "poisk" + }, + stoop_no_weap = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "stoop_no_weap" + }, + salut = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "salut" + }, + salut_free = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "salut_free" + }, + prisoner = {weapon = "strapped", + movement = nil, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = "prisoner" + }, + + hide_no_wpn = { weapon = "strapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = "hide" + }, + -- СидÑчие ÑоÑтоÑÐ½Ð¸Ñ + sit = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit", + animation = nil + }, + sit_knee = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit_knee", + animation = nil + }, + sit_ass = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit_ass", + animation = nil + }, + + play_guitar = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit_knee", + animation = "play_guitar" + }, + play_harmonica = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit_ass", + animation = "play_harmonica" + }, + + + + sleep = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "sleeping" + }, + -- START IX-Ray + sleep_sit = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit_ass", + animation = "sleep_sit" + }, + eat_bread = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit_knee", + animation = "eat_bread" + }, + eat_vodka = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit_ass", + animation = "eat_vodka" + }, + eat_energy = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit_ass", + animation = "eat_energy" + }, + eat_kolbasa = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit_ass", + animation = "eat_kolbasa" + }, + + guitar = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit_knee", + animation = "guitar" + }, + harmonica = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = "sit_ass", + animation = "harmonica" + }, + -- END IX-Ray + hello = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "hello" + }, + hello_wpn = {weapon = "unstrapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "hello" + }, + + refuse = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "refuse" + }, + claim = { weapon = "unstrapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = "claim" + }, + backoff = { weapon = "unstrapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = "backoff" + }, + backoff2 = {weapon = "unstrapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = "backoff" + }, + punch = { weapon = nil, + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = "punch" + }, + + search_corpse = {weapon = "strapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = "search_corpse" + }, + + help_wounded = {weapon = "strapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = "help_wounded" + }, + + dynamite = {weapon = "strapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = "dynamite" + }, + + binocular = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "binocular" + }, + hide_rac = {weapon = "unstrapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + animstate = nil, + animation = "cr_raciya" + }, + wait_rac = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "raciya" + }, + wait_rac_noweap = {weapon = "none", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "raciya" + }, + wait_rac_stc = {weapon = "unstrapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "raciya_stc" + }, + guard_rac = {weapon = "unstrapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "raciya" + }, + + probe_stand = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "probe_stand" + }, + probe_stand_detector_advanced = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "probe_stand_detector_advanced" + }, + probe_stand_detector_elite = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "probe_stand_detector_elite" + }, + probe_way = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "probe_way" + }, + probe_way_detector_advanced = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "probe_way_detector_advanced" + }, + probe_way_detector_elite = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "probe_way_detector_elite" + }, + probe_crouch = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "probe_crouch" + }, + probe_crouch_detector_advanced = {weapon = "strapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.standing, + animstate = nil, + animation = "probe_crouch_detector_advanced" + }, + probe_crouch_detector_elite = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "probe_crouch_detector_elite" + }, + + scaner_stand = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "scaner_stand" + }, + scaner_way = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "scaner_way" + }, + + scaner_crouch = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "scaner_crouch" + }, + + hands_up = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "hands_up" + }, + + + + -- Раненый + wounded = { weapon = "strapped", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + direction = look.cur_dir, + animstate = nil, + animation = "wounded" + }, + wounded_heavy = { weapon = "drop", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + direction = look.cur_dir, --CSightParams.eSightTypeAnimationDirection + animstate = nil, + animation = "wounded_heavy_1" + }, + wounded_heavy_2 = { weapon = "drop", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + direction = look.cur_dir, + animstate = nil, + animation = "wounded_heavy_2" + }, + wounded_heavy_3 = { weapon = "drop", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + direction = look.cur_dir, + animstate = nil, + animation = "wounded_heavy_3" + }, + wounded_zombie = { weapon = "drop", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + direction = look.cur_dir, + animstate = nil, + animation = "wounded_zombie" + }, + trans_0 = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "trans_0" + }, + trans_1 = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "trans_1" + }, + trans_zombied = {weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "trans_zombied" + }, + + talk_default = { weapon = "strapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "talk_default" + }, + + -- ПÑи раненый + psy_pain = {weapon = "drop", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "psy_armed" + }, + psy_armed = {weapon = "unstrapped", + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "psy_armed" + }, + psy_shoot = {weapon = "fire", + weapon_slot = 1, + movement = move.stand, + mental = anim.free, + bodystate = move.standing, + animstate = nil, + animation = "psy_shoot" + }, + lay_on_bed = { weapon = "drop", + movement = move.stand, + mental = anim.danger, + bodystate = move.crouch, + direction = look.cur_dir, + animstate = nil, + animation = "wounded_heavy_1"} +} + +utils.copy_table(states, state_lib_animpoint.add_state_lib()) +utils.copy_table(states, state_mgr_scenario.add_state_lib()) +utils.copy_table(states, state_mgr_pri_a15.add_state_lib()) \ No newline at end of file diff --git a/gamedata/scripts/state_mgr_animation_list.script b/gamedata/scripts/state_mgr_animation_list.script new file mode 100644 index 0000000..74eca9c --- /dev/null +++ b/gamedata/scripts/state_mgr_animation_list.script @@ -0,0 +1,751 @@ +animations = { + idle = { prop = { maxidle = 5, + sumidle = 3, + rnd = 80 }, + into = nil, + out = nil, + idle = { [0] = "idle_0_idle_1", + [1] = "idle_1_idle_1", + [2] = "idle_2_idle_1", + [3] = "idle_3_idle_1", + [4] = "idle_4_idle_1", + [8] = "idle_8_idle_1", + [9] = "idle_2_idle_1", + [10]= "idle_10_idle_1" }, + rnd = { [0] = { "idle_0_idle_0", + "idle_0_idle_2", + "idle_0_idle_3", + "idle_0_idle_4" }, + [1] = { "idle_1_idle_0", + "idle_1_idle_2", + "idle_1_idle_3", + "idle_1_idle_4" }, + [2] = { "idle_2_idle_0", + "idle_2_idle_2", + "idle_2_idle_3", + "idle_2_idle_4"}, + [3] = { "idle_3_idle_0", + "idle_3_idle_2", + "idle_3_idle_3", + "idle_3_idle_4" }, + [4] = { "idle_4_idle_0", + "idle_4_idle_2", + "idle_4_idle_3", + "idle_4_idle_4" }, + [8] = { "idle_8_idle_0", + "idle_8_idle_2", + "idle_8_idle_3", + "idle_8_idle_4" }, + [9] = { "idle_2_idle_0", + "idle_2_idle_2", + "idle_2_idle_3", + "idle_2_idle_4" }, + [10]= { "idle_10_idle_0", + "idle_10_idle_2", + "idle_10_idle_3", + "idle_10_idle_4" }}}, + idle_chasovoy = { prop = { maxidle = 5, + sumidle = 3, + rnd = 80 }, + into = nil, + out = nil, + idle = { [0] = "idle_0_idle_1", + [1] = "idle_1_idle_1", + [2] = "idle_2_idle_1", + [3] = "idle_3_idle_1", + [4] = "idle_4_idle_1", + [8] = "idle_8_idle_1", + [9] = "idle_2_idle_1", + [10]= "idle_10_idle_1" }, + rnd = { [0] = { "chasovoy_0", + "chasovoy_1", + "chasovoy_2", + "chasovoy_3", + "chasovoy_4" }, + [1] = { "chasovoy_0", + "chasovoy_1", + "chasovoy_2", + "chasovoy_3", + "chasovoy_4"}, + [2] = { "chasovoy_0", + "chasovoy_1", + "chasovoy_2", + "chasovoy_3", + "chasovoy_4"}, + [3] = { "chasovoy_0", + "chasovoy_1", + "chasovoy_2", + "chasovoy_3", + "chasovoy_4"}, + [4] = { "chasovoy_0", + "chasovoy_1", + "chasovoy_2", + "chasovoy_3", + "chasovoy_4"}, + [8] = { "chasovoy_0", + "chasovoy_1", + "chasovoy_2", + "chasovoy_3", + "chasovoy_4"}, + [9] = { "chasovoy_0", + "chasovoy_1", + "chasovoy_2", + "chasovoy_3", + "chasovoy_4"}, + [10]= { "chasovoy_0", + "chasovoy_1", + "chasovoy_2", + "chasovoy_3", + "chasovoy_4"}}}, + caution = { prop = { maxidle = 5, + sumidle = 3, + rnd = 80 }, + into = { [0] = { "prisluh_0_in" }, + [1] = { "prisluh_1_in" }, + [2] = { "prisluh_2_in" }, + [3] = { "prisluh_3_in" }, + [4] = { "prisluh_4_in" }, + [8] = { "prisluh_8_in" }, + [9] = { "prisluh_9_in" }, + [10]= { "prisluh_10_in" } }, + out = { [0] = { "prisluh_0_out" }, + [1] = { "prisluh_1_out" }, + [2] = { "prisluh_2_out" }, + [3] = { "prisluh_3_out" }, + [4] = { "prisluh_4_out" }, + [8] = { "prisluh_8_out" }, + [9] = { "prisluh_9_out" }, + [10]= { "prisluh_10_out" } }, + idle = { [0] = "prisluh_0_1", + [1] = "prisluh_1_1", + [2] = "prisluh_2_1", + [3] = "prisluh_3_1", + [4] = "prisluh_4_1", + [8] = "prisluh_8_1", + [9] = "prisluh_9_1", + [10]= "prisluh_10_1" }, + rnd = { [0] = { "prisluh_0_0", + "prisluh_0_2" }, + [1] = { "prisluh_1_0", + "prisluh_1_2" }, + [2] = { "prisluh_2_0", + "prisluh_2_2" }, + [3] = { "prisluh_3_0", + "prisluh_3_2" }, + [4] = { "prisluh_4_0", + "prisluh_4_2" }, + [8] = { "prisluh_8_0", + "prisluh_8_2" }, + [9] = { "prisluh_9_0", + "prisluh_9_2" }, + [10]= { "prisluh_10_0", + "prisluh_10_2" }}}, + poisk = { prop = { maxidle = 5, + sumidle = 3, + rnd = 80 }, + into = nil, + out = nil, + idle = { [0] = "poisk_0_idle_1", + [1] = "poisk_1_idle_1", + [2] = "poisk_2_idle_1", + [3] = "poisk_3_idle_1", + [4] = "poisk_4_idle_1", + [8] = "poisk_8_idle_1", + [9] = "poisk_9_idle_1", + [10]= "poisk_10_idle_1"}, + rnd = { [0] = { "poisk_0_idle_0", + "poisk_0_idle_2" }, + [1] = { "poisk_1_idle_0", + "poisk_1_idle_2" }, + [2] = { "poisk_2_idle_0", + "poisk_2_idle_2" }, + [3] = { "poisk_3_idle_0", + "poisk_3_idle_2" }, + [4] = { "poisk_4_idle_0", + "poisk_4_idle_2" }, + [8] = { "poisk_8_idle_0", + "poisk_8_idle_2" }, + [9] = { "poisk_9_idle_0", + "poisk_9_idle_2" }, + [10]= { "poisk_10_idle_0", + "poisk_10_idle_2" }}}, + stoop_no_weap = { prop = { maxidle = 2, + sumidle = 1, + rnd = 80 }, + into = nil, + out = nil, + idle = { [0] = "poisk_0_idle_0"}, + rnd = nil}, + hide = { prop = { maxidle = 5, + sumidle = 3, + rnd = 80 }, + into = { [0] = { "cr_idle_0_in" }, + [1] = { "cr_idle_1_in" }, + [2] = { "cr_idle_2_in" }, + [3] = { "cr_idle_3_in" }, + [4] = { "cr_idle_4_in" }, + [8] = { "cr_idle_8_in" }, + [9] = { "cr_idle_9_in" }, + [10] ={ "cr_idle_10_in" }}, + out = { [0] = { "cr_idle_0_out" }, + [1] = { "cr_idle_1_out" }, + [2] = { "cr_idle_2_out" }, + [3] = { "cr_idle_3_out" }, + [4] = { "cr_idle_4_out" }, + [8] = { "cr_idle_8_out" }, + [9] = { "cr_idle_9_out" }, + [10] ={ "cr_idle_10_out" }}, + idle = { [0] = "cr_idle_0_1", + [1] = "cr_idle_1_1", + [2] = "cr_idle_2_1", + [3] = "cr_idle_3_1", + [4] = "cr_idle_4_1", + [8] = "cr_idle_8_1", + [9] = "cr_idle_9_1", + [10]= "cr_idle_10_1" }, + rnd = { [0] = { "cr_idle_0_0", + "cr_idle_0_2" }, + [1] = { "cr_idle_1_0", + "cr_idle_1_2" }, + [2] = { "cr_idle_2_0", + "cr_idle_2_2" }, + [3] = { "cr_idle_3_0", + "cr_idle_3_2" }, + [4] = { "cr_idle_4_0", + "cr_idle_4_2" }, + [8] = { "cr_idle_8_0", + "cr_idle_8_2" }, + [9] = { "cr_idle_9_0", + "cr_idle_9_2" }, + [10]= { "cr_idle_10_0", + "cr_idle_10_2" }}}, + + play_guitar = { prop = { maxidle = 3, + sumidle = 3, + rnd = 80 }, + into = { [0] = {"sit_1_guitar_0_0", {a="guitar_a"}, {f=sr_camp.start_guitar}, "sit_1_guitar_0_1"}}, + out = { [0] = {"guitar_0_sit_1_0", {d="guitar_a"}, "guitar_0_sit_1_1"} }, + idle = { [0] = "guitar_0" }, + rnd = nil }, + play_harmonica = { prop = { maxidle = 3, + sumidle = 3, + rnd = 80 }, + into = { [0] = {"sit_2_harmonica_1_0", {a="harmonica_a"}, {f=sr_camp.start_harmonica}, "sit_2_harmonica_1_1"}}, + out = { [0] = {"harmonica_1_sit_2_0", {d="harmonica_a"}, "harmonica_1_sit_2_1"} }, + idle = { [0] = "harmonica_0" }, + rnd = nil }, + + + + hello = { prop = { maxidle = 5, + sumidle = 5, + rnd = 100 }, + into = nil, + out = nil, + idle = nil, + rnd = { [0] = { "hello_0_idle_0" }, + [1] = { "hello_1_idle_0" }, + [2] = { "hello_2_idle_0" }, + [3] = { "hello_3_idle_0" }, + [4] = { "hello_4_idle_0" }, + [8] = { "hello_8_idle_0" }, + [9] = { "hello_9_idle_0" }, + [10]= { "hello_10_idle_0" }}}, + refuse = { prop = { maxidle = 3, + sumidle = 3, + rnd = 100 }, + into = nil, + out = nil, + idle = nil, + rnd = { [0] = { "net_0_0" }, + [1] = { "net_1_0" }, + [2] = { "net_2_0" }, + [3] = { "net_3_0" }, + [4] = { "net_4_0" }, + [8] = { "net_8_0" }, + [9] = { "net_9_0" }, + [10]= { "net_10_0" }}}, + claim = { prop = { maxidle = 5, + sumidle = 2, + rnd = 100 }, + into = nil, + out = nil, + idle = nil, + rnd = { [0] = nil, + [1] = { "gop_stop_1_0" }, + [2] = { "gop_stop_2_0" }, + [3] = { "gop_stop_3_0" }, + [4] = { "gop_stop_4_0" }, + [8] = { "gop_stop_8_0" }, + [9] = { "gop_stop_9_0" }, + [10]= { "gop_stop_10_0" }}}, + backoff = { prop = { maxidle = 5, + sumidle = 2, + rnd = 100 }, + into = nil, + out = nil, + idle = nil, + rnd = { [0] = { "uhodi_1_0", + "uhodi_1_1" }, + [1] = { "uhodi_1_0", + "uhodi_1_1" }, + [2] = { "uhodi_2_0", + "uhodi_2_1" }, + [3] = { "uhodi_3_0", + "uhodi_3_1" }, + [4] = { "uhodi_4_0", + "uhodi_4_1" }, + [8] = { "uhodi_8_0", + "uhodi_8_1" }, + [9] = { "uhodi_9_0", + "uhodi_9_1" }, + [10]= { "uhodi_10_0", + "uhodi_10_1" }}}, + + punch = { prop = { maxidle = 5, + sumidle = 2, + rnd = 100 }, + into = { [0] = { "norm_facer_0_0", {f=xr_effects.actor_punch}, "norm_facer_0_1", {f=xr_effects.clearAbuse}}, + [1] = { "norm_facer_1_0", {f=xr_effects.actor_punch}, "norm_facer_1_1", {f=xr_effects.clearAbuse}}, + [2] = { "norm_facer_2_0", {f=xr_effects.actor_punch}, "norm_facer_2_1", {f=xr_effects.clearAbuse}}, + [3] = { "norm_facer_3_0", {f=xr_effects.actor_punch}, "norm_facer_3_1", {f=xr_effects.clearAbuse}}, + [4] = { "norm_facer_4_0", {f=xr_effects.actor_punch}, "norm_facer_4_1", {f=xr_effects.clearAbuse}}, + [8] = { "norm_facer_8_0", {f=xr_effects.actor_punch}, "norm_facer_8_1", {f=xr_effects.clearAbuse}}, + [9] = { "norm_facer_9_0", {f=xr_effects.actor_punch}, "norm_facer_9_1", {f=xr_effects.clearAbuse}}, + [10]= { "norm_facer_10_0", {f=xr_effects.actor_punch}, "norm_facer_10_1", {f=xr_effects.clearAbuse}}}, + out = nil, + idle = nil, + rnd = nil}, + + sleeping = { prop = { maxidle = 5, + sumidle = 10, + rnd = 100 }, + into = { [0] = { "idle_0_to_sit_0","sit_to_sleep_0" }}, + out = { [0] = { "sleep_to_sit_0", "sit_0_to_idle_0" }}, + idle = { [0] = "sleep_idle_0" }, + rnd = { [0] = { "sleep_idle_1" }}}, + + wounded = { prop = { maxidle = 5, + sumidle = 10, + rnd = 70 }, + into = { [0] = {"idle_to_wounded_0"}}, + out = { [0] = {"wounded_to_idle_0"}}, + idle = { [0] = "wounded_idle_0" }, + rnd = nil }, + wounded_heavy_1 = { prop = { maxidle = 5, + sumidle = 10, + rnd = 70 }, + into = { [0] = {"idle_to_wounded_1"}}, + out = { [0] = {"waunded_1_out"}}, + idle = { [0] = "waunded_1_idle_0" }, + rnd = nil }, + wounded_heavy_2 = { prop = { maxidle = 5, + sumidle = 10, + rnd = 70 }, + into = { [0] = {"idle_to_wounded_2"}}, + out = { [0] = {"wounded_2_out"}}, + idle = { [0] = "wounded_2_idle_0" }, + rnd = nil }, + wounded_heavy_3 = { prop = { maxidle = 5, + sumidle = 10, + rnd = 70 }, + into = { [0] = {"idle_to_wounded_3"}}, + out = { [0] = {"wounded_3_out"}}, + idle = { [0] = "wounded_3_idle_0" }, + rnd = nil }, + wounded_zombie = { prop = { maxidle = 5, + sumidle = 10, + rnd = 70 }, + into = { [0] = {"idle_to_wounded_0"}}, + out = { [0] = {"wounded_to_idle_0"}}, + idle = { [0] = "wounded_idle_0" }, + rnd = { [0] = { "wounded_idle_1" }}}, +-- START IX-Ray + eat_bread = { prop = { maxidle = 3, + sumidle = 3, + rnd = 80 }, + into = { [0] = {"item_2_draw_0", {a="bread"}, "item_2_draw_1"} }, + out = { [0] = {"item_2_holster_0", {d="bread"}, "item_2_holster_1"} }, + idle = { [0] = "item_2_aim_0" }, + rnd = { [0] = { "item_2_prepare_0", + "item_2_attack_0" } }}, + eat_vodka = { prop = { maxidle = 3, + sumidle = 3, + rnd = 80 }, + into = { [0] = {"item_4_draw_0", {a="vodka"}, "item_4_draw_1"} }, + out = { [0] = {"item_4_holster_0", {d="vodka"}, "item_4_holster_1"} }, + idle = { [0] = "item_4_aim_0" }, + rnd = { [0] = { "item_4_prepare_0", + "item_4_attack_0" } }}, + eat_energy = { prop = { maxidle = 3, + sumidle = 3, + rnd = 80 }, + into = { [0] = {"item_5_draw_0", {a="energy_drink"}, "item_5_draw_1"} }, + out = { [0] = {"item_5_holster_0", {d="energy_drink"}, "item_5_holster_1"} }, + idle = { [0] = "item_5_aim_0" }, + rnd = { [0] = { "item_5_prepare_0", + "item_5_attack_0" } }}, + eat_kolbasa = { prop = { maxidle = 3, + sumidle = 3, + rnd = 80 }, + into = { [0] = {"item_1_draw_0", {a="kolbasa"}, "item_1_draw_1"}}, + out = { [0] = {"item_1_holster_0", {d="kolbasa"}, "item_1_holster_1"} }, + idle = { [0] = "item_1_idle_1" }, + rnd = { [0] = { "item_1_attack_0", + "item_1_idle_0" } }}, + + guitar = { prop = { maxidle = 3, + sumidle = 3, + rnd = 80 }, + into = { [0] = {"sit_1_guitar_0_0", {a="guitar_a"}, {f=sr_camp.start_guitar}, "sit_1_guitar_0_1"}}, + out = { [0] = {"guitar_0_sit_1_0", {d="guitar_a"}, "guitar_0_sit_1_1"} }, + idle = { [0] = "guitar_0" }, + -- rnd = { [0] = { "guitar_1", "guitar_2" } }, + }, + harmonica = { prop = { maxidle = 3, + sumidle = 3, + rnd = 80 }, + into = { [0] = {"sit_2_harmonica_1_0", {a="harmonica_a"}, {f=sr_camp.start_harmonica}, "sit_2_harmonica_1_1"}}, + out = { [0] = {"harmonica_1_sit_2_0", {d="harmonica_a"}, "harmonica_1_sit_2_1"} }, + idle = { [0] = "harmonica_0" }, + -- rnd = { [0] = { "harmonica_2","harmonica_3" } } + }, +-- END IX-Ray + choosing = { prop = { maxidle = 8, + sumidle = 10, + rnd = 80 }, + into = nil, + out = nil, + idle = nil, + rnd = { [0] = { "komandir_0", + "komandir_1", + "komandir_2" } }}, + press = { prop = { maxidle = 8, + sumidle = 10, + rnd = 80 }, + into = { [0] = { "knopka_0" } }, + out = { [0] = { "knopka_1" } }, + idle = { [0] = "knopka_2" }, + rnd = nil }, + + + warding = { prop = { maxidle = 10, + sumidle = 10, + rnd = 0 }, + into = { [0] = { "ohrana_0" }}, + out = { [0] = { "ohrana_2" }}, + idle = { [0] = "ohrana_1"}, + rnd = nil }, + + warding_short = { prop = { maxidle = 10, + sumidle = 10, + rnd = 0 }, + into = { [0] = { "ohrana_0" }}, + out = { [0] = { "ohrana_2" }}, + idle = { [0] = "ohrana_1_short"}, + rnd = nil }, + + fold_arms = { prop = { maxidle = 10, + sumidle = 10, + rnd = 0 }, + into = nil, + out = nil, + idle = { [0] = "cut_scene_idle_0"}, + rnd = nil }, + + + + talk_default = { prop = { maxidle = 5, + sumidle = 5, + rnd = 70 }, + into = { [0] = nil, + [2] = { "norm_talk_2_in_0" } }, + out = { [0] = nil, + [2] = { "norm_talk_2_out_0" } }, + idle = { [0] = "idle_0_idle_1", + [2] = "norm_talk_2_idle_1" }, + rnd = { [0] = { "idle_0_idle_0" }, + [2] = { "norm_talk_2_idle_0", + "norm_talk_2_idle_2", + "norm_talk_2_idle_3", + "norm_talk_2_idle_4"} } }, + + binocular = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [0] = {"binoculars_draw_0", {a="wpn_binoc"}, "binoculars_draw_1", "binoculars_zoom_in_0"} }, + + out = { [0] = {"binoculars_zoom_out_0", "binoculars_hide_0", {d="wpn_binoc"}, "binoculars_hide_1"} }, + idle = { [0] = "binoculars_zoom_idle_0" }, + rnd = { [0] = {"binoculars_zoom_idle_1", + "binoculars_zoom_idle_2", + "binoculars_zoom_idle_3", + "binoculars_zoom_idle_4"} } }, + salut = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [0] = {"chest_0_idle_0", "chest_0_idle_2"} }, + out = { [0] = {"chest_0_idle_3"} }, + idle = { [0] = "chest_0_idle_1" }, + rnd = nil }, + salut_free = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [0] = {"chest_1_idle_0"} }, + out = nil, + idle = nil, + rnd = nil }, + hands_up = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = nil, + out = nil, + idle = { [0] = "hand_up_0" }, + rnd = nil }, + trans_0 = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [0] = {"idle_0_to_trans_0"} }, + out = { [0] = {"trans_0_to_idle_0"} }, + idle = { [0] = "trans_0_idle_0" }, + rnd = nil }, + trans_1 = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [0] = {"idle_0_to_trans_1"} }, + out = { [0] = {"trans_1_to_idle_0"} }, + idle = { [0] = "trans_1_idle_0" }, + rnd = nil }, + trans_zombied = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = nil, + out = nil, + idle = { [0] = "trans_0_idle_1" }, + rnd = { [0] = {"trans_0_idle_0", + "trans_0_idle_2", + "trans_0_idle_3", + "trans_0_idle_4", + "trans_0_idle_5", + "trans_0_idle_6"} } }, + + + + + + + + + + + + + + + + + + + + probe_stand = { prop = { maxidle = 0, + sumidle = 0, + rnd = 100 }, + into = { [0] = {"metering_anomalys_0_draw_0", {f=xr_effects.get_best_detector}, "metering_anomalys_0_draw_1"} }, + out = { [0] = {"metering_anomalys_0_hide_0", {f=xr_effects.hide_best_detector}, "metering_anomalys_0_hide_1"} }, + idle = { [0] = "metering_anomalys_0_idle_0" }, + rnd = { [0] = {"metering_anomalys_0_idle_1", + "metering_anomalys_0_idle_2", + "metering_anomalys_0_idle_3", + "metering_anomalys_0_idle_4", + "metering_anomalys_0_idle_5"} } }, + + + probe_way = { prop = { maxidle = 0, + sumidle = 0, + rnd = 100 }, + into = { [0] = {"metering_anomalys_0_draw_0", {f=xr_effects.get_best_detector}, "metering_anomalys_0_draw_1", "metering_anomalys_0_idle_6"} }, + out = { [0] = {"metering_anomalys_0_hide_0", {f=xr_effects.hide_best_detector}, "metering_anomalys_0_hide_1"} }, + idle = { [0] = "metering_anomalys_0_idle_0" }, + rnd = nil }, + + + + probe_crouch = { prop = { maxidle = 0, + sumidle = 0, + rnd = 100 }, + into = { [0] = {"metering_anomalys_1_draw_0", {f=xr_effects.get_best_detector}, "metering_anomalys_1_draw_1"} }, + out = { [0] = {"metering_anomalys_1_hide_0", {f=xr_effects.hide_best_detector}, "metering_anomalys_1_hide_1"} }, + idle = { [0] = "metering_anomalys_1_idle_0" }, + rnd = { [0] = {"metering_anomalys_1_idle_1", + "metering_anomalys_1_idle_2", + "metering_anomalys_1_idle_3", + "metering_anomalys_1_idle_4"} } }, + + scaner_stand = { prop = { maxidle = 0, + sumidle = 0, + rnd = 100 }, + into = { [0] = {"metering_anomalys_0_draw_0", {a="anomaly_scaner"}, "metering_anomalys_0_draw_1"} }, + out = { [0] = {"metering_anomalys_0_hide_0", {d="anomaly_scaner"}, "metering_anomalys_0_hide_1"} }, + idle = { [0] = "metering_anomalys_0_idle_0" }, + rnd = { [0] = {"metering_anomalys_0_idle_1", + "metering_anomalys_0_idle_2", + "metering_anomalys_0_idle_3", + "metering_anomalys_0_idle_4", + "metering_anomalys_0_idle_5"} } }, + + + scaner_way = { prop = { maxidle = 0, + sumidle = 0, + rnd = 100 }, + into = { [0] = {"metering_anomalys_0_draw_0", {a="anomaly_scaner"}, "metering_anomalys_0_draw_1", "metering_anomalys_0_idle_6"} }, + out = { [0] = {"metering_anomalys_0_hide_0", {d="anomaly_scaner"}, "metering_anomalys_0_hide_1"} }, + idle = { [0] = "metering_anomalys_0_idle_0" }, + rnd = nil }, + + + + scaner_crouch = { prop = { maxidle = 0, + sumidle = 0, + rnd = 100 }, + into = { [0] = {"metering_anomalys_1_draw_0", {a="anomaly_scaner"}, "metering_anomalys_1_draw_1"} }, + out = { [0] = {"metering_anomalys_1_hide_0", {d="anomaly_scaner"}, "metering_anomalys_1_hide_1"} }, + idle = { [0] = "metering_anomalys_1_idle_0" }, + rnd = { [0] = {"metering_anomalys_1_idle_1", + "metering_anomalys_1_idle_2", + "metering_anomalys_1_idle_3", + "metering_anomalys_1_idle_4"} } }, + + prisoner = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [0] = {"prisoner_0_sit_down_0"}}, + out = { [0] = {"prisoner_0_stand_up_0"}}, + idle = { [0] = "prisoner_0_sit_idle_0" }, + rnd = nil }, + + + raciya = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [0] = {"raciya_0_draw_0", {a="hand_radio"}, "raciya_0_draw_1"}, + [1] = {"raciya_1_draw_0", {a="hand_radio"}, "raciya_1_draw_1"}, + [2] = {"raciya_2_draw_0", {a="hand_radio"}, "raciya_2_draw_1"}, + [3] = {"raciya_3_draw_0", {a="hand_radio"}, "raciya_3_draw_1"}, + [4] = {"raciya_4_draw_0", {a="hand_radio"}, "raciya_4_draw_1"}, + [8] = {"raciya_8_draw_0", {a="hand_radio"}, "raciya_8_draw_1"}, + [9] = {"raciya_9_draw_0", {a="hand_radio"}, "raciya_9_draw_1"}, + [10]= {"raciya_10_draw_0",{a="hand_radio"}, "raciya_10_draw_1"} }, + out = { [0] = {"raciya_0_hide_0", {d="hand_radio"}, "raciya_0_hide_1"}, + [1] = {"raciya_1_hide_0", {d="hand_radio"}, "raciya_1_hide_1"}, + [2] = {"raciya_2_hide_0", {d="hand_radio"}, "raciya_2_hide_1"}, + [3] = {"raciya_3_hide_0", {d="hand_radio"}, "raciya_3_hide_1"}, + [4] = {"raciya_4_hide_0", {d="hand_radio"}, "raciya_4_hide_1"}, + [8] = {"raciya_8_hide_0", {d="hand_radio"}, "raciya_8_hide_1"}, + [9] = {"raciya_9_hide_0", {d="hand_radio"}, "raciya_9_hide_1"}, + [10]= {"raciya_10_hide_0",{d="hand_radio"}, "raciya_10_hide_1"} }, + idle = { [0] = "raciya_0_idle_0", + [1] = "raciya_1_idle_0", + [2] = "raciya_2_idle_0", + [3] = "raciya_3_idle_0", + [4] = "raciya_4_idle_0", + [8] = "raciya_8_idle_0", + [9] = "raciya_9_idle_0", + [10]= "raciya_10_idle_0" }, + rnd = { [0] = {"raciya_0_talk_0"}, + [1] = {"raciya_1_talk_0"}, + [2] = {"raciya_2_talk_0"}, + [3] = {"raciya_3_talk_0"}, + [4] = {"raciya_4_talk_0"}, + [8] = {"raciya_8_talk_0"}, + [9] = {"raciya_9_talk_0"}, + [10]= {"raciya_10_talk_0"} } }, + + cr_raciya = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [0] = {"cr_raciya_0_draw_0", {a="hand_radio"}, "cr_raciya_0_draw_1"}, + [1] = {"cr_raciya_1_draw_0", {a="hand_radio"}, "cr_raciya_1_draw_1"}, + [2] = {"cr_raciya_2_draw_0", {a="hand_radio"}, "cr_raciya_2_draw_1"}, + [3] = {"cr_raciya_3_draw_0", {a="hand_radio"}, "cr_raciya_3_draw_1"}, + [4] = {"cr_raciya_4_draw_0", {a="hand_radio"}, "cr_raciya_4_draw_1"}, + [8] = {"cr_raciya_8_draw_0", {a="hand_radio"}, "cr_raciya_8_draw_1"}, + [9] = {"cr_raciya_9_draw_0", {a="hand_radio"}, "cr_raciya_9_draw_1"}, + [10]= {"cr_raciya_10_draw_0",{a="hand_radio"},"cr_raciya_10_draw_1"} }, + out = { [0] = {"cr_raciya_0_hide_0", {d="hand_radio"}, "cr_raciya_0_hide_1"}, + [1] = {"cr_raciya_1_hide_0", {d="hand_radio"}, "cr_raciya_1_hide_1"}, + [2] = {"cr_raciya_2_hide_0", {d="hand_radio"}, "cr_raciya_2_hide_1"}, + [3] = {"cr_raciya_3_hide_0", {d="hand_radio"}, "cr_raciya_3_hide_1"}, + [4] = {"cr_raciya_4_hide_0", {d="hand_radio"}, "cr_raciya_4_hide_1"}, + [8] = {"cr_raciya_8_hide_0", {d="hand_radio"}, "cr_raciya_8_hide_1"}, + [9] = {"cr_raciya_9_hide_0", {d="hand_radio"}, "cr_raciya_9_hide_1"}, + [10]= {"cr_raciya_10_hide_0",{d="hand_radio"},"cr_raciya_10_hide_1"} }, + idle = { [0] = "cr_raciya_0_idle_0", + [1] = "cr_raciya_1_idle_0", + [2] = "cr_raciya_2_idle_0", + [3] = "cr_raciya_3_idle_0", + [4] = "cr_raciya_4_idle_0", + [8] = "cr_raciya_8_idle_0", + [9] = "cr_raciya_9_idle_0", + [10]= "cr_raciya_10_idle_0" }, + rnd = { [0] = {"cr_raciya_0_talk_0"}, + [1] = {"cr_raciya_1_talk_0"}, + [2] = {"cr_raciya_2_talk_0"}, + [3] = {"cr_raciya_3_talk_0"}, + [4] = {"cr_raciya_4_talk_0"}, + [8] = {"cr_raciya_8_talk_0"}, + [9] = {"cr_raciya_9_talk_0"}, + [10]= {"cr_raciya_10_talk_0"} } }, + + + + psy_armed = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [0] = { "idle_0_to_psy_0_idle_0" }, + [1] = { "idle_0_to_psy_1_idle_0" } }, + out = { [0] = { "psy_0_idle_0_to_idle_0" }, + [1] = { "psy_1_idle_0_to_idle_0" } }, + idle = { [0] = "psy_0_idle_0", + [1] = "psy_1_idle_0" }, + rnd = { [0] = { "psy_0_idle_1", + "psy_0_idle_2", + "psy_0_idle_3" }, + [1] = { "psy_1_idle_1", + "psy_1_idle_2", + "psy_1_idle_3" } } }, + psy_shoot = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [1] = {"psy_1_shot_0", {sh=1000}} }, + out = nil, + idle = { [1] = "psy_1_death_0" }, + rnd = nil }, + lay_on_bed = { prop = { maxidle = 1, + sumidle = 1, + rnd = 100, + moving = true }, + into = { [0] = {"cut_scene_0_actor"}}, + out = nil, + idle = nil, + rnd = nil}, + + search_corpse = {prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [0] = { "dinamit_1", {f=xr_corpse_detection.get_all_from_corpse} }}, + out = nil, + rnd = nil, + idle = nil}, + + help_wounded = {prop = { maxidle = 1, + sumidle = 1, + rnd = 100 }, + into = { [0] = { "dinamit_1", {f=xr_help_wounded.help_wounded} }}, + out = nil, + rnd = nil, + idle = nil}, + } + +utils.copy_table(animations, state_mgr_animation_list_animpoint.add_animation_list()) +utils.copy_table(animations, state_mgr_scenario.add_animation_list()) +utils.copy_table(animations, state_mgr_pri_a15.add_animation_list()) \ No newline at end of file diff --git a/gamedata/scripts/task_functor.script b/gamedata/scripts/task_functor.script new file mode 100644 index 0000000..518b3db --- /dev/null +++ b/gamedata/scripts/task_functor.script @@ -0,0 +1,176 @@ +--'************************************************************************************* +--' Функторы тайтла и опиÑÐ°Ð½Ð¸Ñ ÐºÐ²ÐµÑта (должны возвращать Ñтроку) +--'************************************************************************************* + +function condlist(id, field, p, cached_condlist) -- MTB-marek.siemieniuk: cached condlist + local cond_string = p + + -- MTB-marek.siemieniuk Start: cached condlist + local parsed_condlist = cached_condlist[cond_string]; + if parsed_condlist == nil then + parsed_condlist = xr_logic.parse_condlist(nil, "task", "task_condlist", cond_string) + cached_condlist[cond_string] = parsed_condlist + end + -- MTB-marek.siemieniuk End + + return xr_logic.pick_section_from_condlist(get_story_object("actor"), nil, parsed_condlist) +end + +function zat_b29_adv_title(id, field, p, cached_condlist) -- MTB-marek.siemieniuk: cached condlist + local actor = get_story_object("actor") + for i = 16, 23 do + if (has_alife_info(dialogs_zaton.zat_b29_infop_bring_table[i]) and actor:object(dialogs_zaton.zat_b29_af_table[i])) then + title = "zat_b29_simple_bring_title_"..i + break + elseif has_alife_info(dialogs_zaton.zat_b29_infop_bring_table[i]) then + title = "zat_b29_simple_find_title_"..i + break + end + end + + return title +end + +function zat_b29_adv_descr(id, field, p, cached_condlist) -- MTB-marek.siemieniuk: cached condlist + local descr + local f_af = 0 + local actor = get_story_object("actor") + + for i = 16, 23 do + if (has_alife_info(dialogs_zaton.zat_b29_infop_bring_table[i]) and actor:object(dialogs_zaton.zat_b29_af_table[i])) then + f_af = 1 + descr = "zat_b29_simple_bring_text_5" + if has_alife_info("zat_b29_stalker_rival_1_found_af") and has_alife_info("zat_b29_first_rival_taken_out") and f_af ~= 0 then + return descr + elseif has_alife_info("zat_b29_stalker_rival_2_found_af") and has_alife_info("zat_b29_second_rival_taken_out") and f_af ~= 0 then + return descr + elseif has_alife_info("zat_b29_linker_take_af_from_rival") then + descr = "zat_b29_simple_bring_text_4" + elseif has_alife_info("zat_b29_stalkers_rivals_found_af") then + descr = "zat_b29_simple_bring_text_3" + elseif has_alife_info("zat_b29_rivals_search") and has_alife_info("zat_b29_exclusive_conditions") then + descr = "zat_b29_simple_bring_text_1" + elseif has_alife_info("zat_b29_rivals_search") then + descr = "zat_b29_simple_bring_text_2" + end + break + elseif has_alife_info(dialogs_zaton.zat_b29_infop_bring_table[i]) then + descr = "zat_b29_simple_find_text_5" + if has_alife_info("zat_b29_stalker_rival_1_found_af") and has_alife_info("zat_b29_first_rival_taken_out") and f_af ~= 0 then + return descr + elseif has_alife_info("zat_b29_stalker_rival_2_found_af") and has_alife_info("zat_b29_second_rival_taken_out") and f_af ~= 0 then + return descr + elseif has_alife_info("zat_b29_linker_take_af_from_rival") then + descr = "zat_b29_simple_find_text_4" + elseif has_alife_info("zat_b29_stalkers_rivals_found_af") then + descr = "zat_b29_simple_find_text_3" + elseif has_alife_info("zat_b29_rivals_search") and has_alife_info("zat_b29_exclusive_conditions") then + descr = "zat_b29_simple_find_text_1" + elseif has_alife_info("zat_b29_rivals_search") then + descr = "zat_b29_simple_find_text_2" + end + break + end + end + + return descr +end + +function surge_task_title(id, field, p, cached_condlist) -- MTB-marek.siemieniuk: cached condlist + if(surge_manager.actor_in_cover()) then + return "hide_from_surge_name_2" + else + return "hide_from_surge_name_1" + end +end + +function surge_task_descr(id, field, p, cached_condlist) -- MTB-marek.siemieniuk: cached condlist + return surge_manager.get_task_descr() +end +--'************************************************************************************* +--' Функторы цели квеÑта (должны возвращать id перÑонажа) +--'************************************************************************************* + +function target_condlist(id, field, p, cached_condlist) -- MTB-marek.siemieniuk: cached condlist + local cond_string = p + + -- MTB-marek.siemieniuk Start: cached condlist + local parsed_condlist = cached_condlist[cond_string]; + if parsed_condlist == nil then + parsed_condlist = xr_logic.parse_condlist(nil, "task", "task_condlist", cond_string) + cached_condlist[cond_string] = parsed_condlist + end + -- MTB-marek.siemieniuk End + + local value = xr_logic.pick_section_from_condlist(get_story_object("actor"), nil, parsed_condlist) + + if value == nil then + return nil + end + + local target_obj_id = get_story_object_id(value) + + if target_obj_id == nil then + -- abort("There is no object with story_id %s", value) + end + + return target_obj_id +end + +function zat_b29_adv_target(id, field, p, cached_condlist) -- MTB-marek.siemieniuk: cached condlist + local target_obj_id = "zat_a2_stalker_barmen" + local af = nil + local actor = get_story_object("actor") + + + for i = 16, 23 do + if (has_alife_info(dialogs_zaton.zat_b29_infop_bring_table[i]) + and actor:object(dialogs_zaton.zat_b29_af_table[i])) then + af = dialogs_zaton.zat_b29_af_table[i] + break + end + end + + if (not has_alife_info("zat_b29_linker_take_af_from_rival") and has_alife_info("zat_b29_stalkers_rivals_found_af")) then + if has_alife_info("zat_b29_stalker_rival_1_found_af") then + if not has_alife_info("zat_b29_first_rival_taken_out") then + if has_alife_info("zat_b29_exclusive_conditions") then + target_obj_id = "zat_b29_stalker_rival_1" + else + target_obj_id = "zat_b29_stalker_rival_default_1" + end + elseif af == nil then + if has_alife_info("zat_b29_exclusive_conditions") then + target_obj_id = "zat_b29_stalker_rival_1" + else + target_obj_id = "zat_b29_stalker_rival_default_1" + end + end + elseif has_alife_info("zat_b29_stalker_rival_2_found_af") then + if not has_alife_info("zat_b29_second_rival_taken_out") then + if has_alife_info("zat_b29_exclusive_conditions") then + target_obj_id = "zat_b29_stalker_rival_2" + else + target_obj_id = "zat_b29_stalker_rival_default_2" + end + elseif af == nil then + if has_alife_info("zat_b29_exclusive_conditions") then + target_obj_id = "zat_b29_stalker_rival_2" + else + target_obj_id = "zat_b29_stalker_rival_default_2" + end + end + end + return get_story_object_id(target_obj_id) + end + + if af ~= nil then + return get_story_object_id(target_obj_id) + end + + return nil +end + +function surge_task_target(id, field, p, cached_condlist) -- MTB-marek.siemieniuk: cached condlist + return surge_manager.get_task_target() +end diff --git a/gamedata/scripts/task_objects.script b/gamedata/scripts/task_objects.script new file mode 100644 index 0000000..022b6d0 --- /dev/null +++ b/gamedata/scripts/task_objects.script @@ -0,0 +1,364 @@ +--'************************************************************************************* +--' ДеÑкриптор обычного Ð·Ð°Ð´Ð°Ð½Ð¸Ñ +--'************************************************************************************* +local guiders_by_level = { + ["zaton"]={["jupiter"]="zat_b215_stalker_guide_zaton", ["pripyat"]="zat_b215_stalker_guide_zaton"}, + ["jupiter"]={["zaton"]="zat_b215_stalker_guide_jupiter", ["pripyat"]="jup_b43_stalker_assistant"}, + ["pripyat"]={["zaton"]="jup_b43_stalker_assistant_pri", ["jupiter"]="jup_b43_stalker_assistant_pri"}, + } +function get_guider(target_level) + local ln = level.name() + if(guiders_by_level[ln] and guiders_by_level[ln][target_level]) then + return get_story_object_id(guiders_by_level[ln][target_level]) + end + return nil +end + +local valid_values = { + complete = true, + fail = true, + reversed = true +} + +--[[ +C++ class task { + const additional = 1; + const completed = 2; + const fail = 0; + const in_progress = 1; + const insignificant = 2; + const storyline = 0; + const task_dummy = 65535; +}; +]] + +local status_by_id = { + [0] = "normal", + [1] = "selected", + [2] = "completed", + [3] = "fail", + [4] = "reversed" +} + +local id_by_status = { + normal = 0, + selected = 1, + completed = 2, + fail = 3, + reversed = 4 +} + +class "CGeneralTask" +function CGeneralTask:__init(task_ini, id) + self.task_ini = task_ini + + self.id = id + + self.title = utils.cfg_get_string(task_ini, id, "title", nil, false, "", "TITLE_DOESNT_EXIST") + self.title_functor = utils.cfg_get_string(task_ini, id, "title_functor", nil, false, "", "condlist") + self.current_title = nil + + self.descr = utils.cfg_get_string(task_ini, id, "descr", nil, false, "", "DESCR_DOESNT_EXIST") + self.descr_functor = utils.cfg_get_string(task_ini, id, "descr_functor", nil, false, "", "condlist") + self.current_descr = nil + + self.target = utils.cfg_get_string(task_ini, id, "target", nil, false, "", "DESCR_DOESNT_EXIST") + self.target_functor = utils.cfg_get_string(task_ini, id, "target_functor", nil, false, "", "target_condlist") + self.current_target = nil + + self.icon = utils.cfg_get_string(task_ini, id, "icon", nil, false, "", "ui_pda2_mtask_overlay") + self.prior = utils.cfg_get_number(task_ini, id, "prior", nil, false, 0) + self.storyline = utils.cfg_get_bool(task_ini, id, "storyline", nil, false, true) + + --' УÑÐ»Ð¾Ð²Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¸ провала квеÑта + local i = 0 + self.condlist = {} + while task_ini:line_exist(id, "condlist_"..i) do + self.condlist[i] = xr_logic.parse_condlist(nil, "task_manager", "condlist", task_ini:r_string(id, "condlist_"..i)) + i = i + 1 + end + + --' КондлиÑты на ÑтатуÑÑ‹ квеÑта + self.on_init = xr_logic.parse_condlist(nil, "task_manager", "condlist", utils.cfg_get_string(task_ini, id, "on_init", nil, false, "", "")) + self.on_complete = xr_logic.parse_condlist(nil, "task_manager", "condlist", utils.cfg_get_string(task_ini, id, "on_complete", nil, false, "", "")) + self.on_reversed = xr_logic.parse_condlist(nil, "task_manager", "condlist", utils.cfg_get_string(task_ini, id, "on_reversed", nil, false, "", "")) + + --' Ðаграды за квеÑÑ‚ + self.reward_money = xr_logic.parse_condlist(nil, "task_manager", "condlist", utils.cfg_get_string(task_ini, id, "reward_money", nil, false, "", "")) + self.reward_item = xr_logic.parse_condlist(nil, "task_manager", "condlist", utils.cfg_get_string(task_ini, id, "reward_item", nil, false, "", "")) + + self.community_relation_delta_fail = utils.cfg_get_number(task_ini, id, "community_relation_delta_fail", nil, false, 0) + self.community_relation_delta_complete = utils.cfg_get_number(task_ini, id, "community_relation_delta_complete", nil, false, 0) + + --' Ð¡Ñ‚Ð°Ñ‚ÑƒÑ ÐºÐ²ÐµÑта, может быть: "normal", "selected", "completed", "fail", "reversed" + self.status = "normal" + + self.cached_condlist = {} -- MTB-marek.siemieniuk: cached condlist + + self.current_title = task_functor[self.title_functor](self.id, "title", self.title, self.cached_condlist) -- MTB-marek.siemieniuk: cached condlist + self.current_descr = task_functor[self.descr_functor](self.id, "descr", self.descr, self.cached_condlist) -- MTB-marek.siemieniuk: cached condlist + + local time = 0 + if self.wait_time ~= nil then + time = self.wait_time -- Тут Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð´Ð°Ð½Ð¾ в игровых Ñекундах + end + if(self.storyline) then + if time == 0 then + self.spot = "storyline_task_location" + else + self.spot = "storyline_task_location_complex_timer" + end + else + if time == 0 then + self.spot = "secondary_task_location" + else + self.spot = "secondary_task_location_complex_timer" + end + end + self.current_target = task_functor[self.target_functor](self.id, "target", self.target, self.cached_condlist) -- MTB-marek.siemieniuk: cached condlist + self.dont_send_update_news = utils.cfg_get_bool(task_ini, id, "dont_send_update_news", nil, false, false) +end +--' Выдача квеÑта +function CGeneralTask:give_task(community) + local t = CGameTask() + t:set_id(tostring(self.id)) + if(self.storyline) then + t:set_type(task.storyline) + else + t:set_type(task.additional) + end + t:set_title(self.current_title) + t:set_description(self.current_descr) + t:set_priority(self.prior) + t:set_icon_name(self.icon) + t:add_complete_func("task_manager.task_complete") + t:add_fail_func("task_manager.task_fail") + + xr_logic.pick_section_from_condlist(db.actor, db.actor, self.on_init) + + if self.current_target ~= nil then + t:set_map_location(self.spot) + t:set_map_object_id(self.current_target) + + if(self.storyline) then + level.map_add_object_spot(self.current_target, "ui_storyline_task_blink", "") + else + level.map_add_object_spot(self.current_target, "ui_secondary_task_blink", "") + end + end + local time = 0 + if self.wait_time ~= nil then + time = self.wait_time -- Тут Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð´Ð°Ð½Ð¾ в игровых Ñекундах + end + --' ЗаноÑим в task_info + self.status = "selected" + self.inited_time = game.get_game_time() + + db.actor:give_task(t, time*10, false, time) + self.t = t +end +--' Проверка текущего Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ²ÐµÑта +function CGeneralTask:check_task(tm) + local global_time = time_global() + local task_updated = false + if self.check_time ~= nil and + self.last_check_task ~= nil and + global_time - self.check_time <= 50 + then + --' Возвращаем результат прошлой проверки (Ð´Ð»Ñ Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ð¸) + return + end + if self.t == nil then + self.t = db.actor and db.actor:get_task(self.id, true) + return + end + + self.check_time = global_time + + local t_tile = task_functor[self.title_functor](self.id, "title", self.title, self.cached_condlist) -- MTB-marek.siemieniuk: cached condlist + if self.current_title ~= t_tile then + printf("task [%s] updated due to title change from [%s] to [%s]", tostring(self.id), tostring(self.current_title), tostring(t_tile)) + task_updated = true + self.current_title = t_tile + self.t:set_title(game.translate_string(t_tile)) + end + + local t_descr = task_functor[self.descr_functor](self.id, "descr", self.descr, self.cached_condlist) -- MTB-marek.siemieniuk: cached condlist + if self.current_descr ~= t_descr then + printf("task [%s] updated due to description change from [%s] to [%s]", tostring(self.id), tostring(self.current_descr), tostring(t_descr)) + task_updated = true + self.current_descr = t_descr + self.t:set_description(game.translate_string(t_descr)) + end + + local t_target = task_functor[self.target_functor](self.id, "target", self.target, self.cached_condlist) -- MTB-marek.siemieniuk: cached condlist + self:check_level(t_target) + if self.current_target ~= t_target then + printf("task [%s] updated due to target change from [%s] to [%s]", tostring(self.id), tostring(self.current_target), tostring(t_target)) + if self.current_target == nil then + task_updated = true + self.t:change_map_location(self.spot, t_target) + if(self.storyline) then + level.map_add_object_spot(t_target, "ui_storyline_task_blink", "") + else + level.map_add_object_spot(t_target, "ui_secondary_task_blink", "") + end + else + if t_target == nil then + self.t:remove_map_locations(false) + task_updated = true + else + if(self.storyline) then + level.map_add_object_spot(t_target, "ui_storyline_task_blink", "") + else + level.map_add_object_spot(t_target, "ui_secondary_task_blink", "") + end + self.t:change_map_location(self.spot, t_target) + task_updated = true + end + end + self.current_target = t_target + end + if task_updated and not(self.dont_send_update_news) then + news_manager.send_task(db.actor, "updated", self.t) + end + for k,v in pairs(self.condlist) do + local t = xr_logic.pick_section_from_condlist(db.actor, db.actor, v) + if t ~= nil then + --' Проверка на валидноÑть + if valid_values[t] ~= true then + abort("Invalid task status [%s] for task [%s]", t, self.name) + end + self.last_check_task = t + return + end + end + +end + +--' Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ñ‹ +function CGeneralTask:give_reward() + xr_logic.pick_section_from_condlist(db.actor, db.actor, self.on_complete) + + local money = xr_logic.pick_section_from_condlist(db.actor, db.actor, self.reward_money) + local items = xr_logic.pick_section_from_condlist(db.actor, db.actor, self.reward_item) + + -- Ðаграду можно выдать Ð´Ð²ÑƒÐ¼Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð°Ð¼Ð¸: от Ð½Ð¿Ñ Ð¸Ð»Ð¸ проÑто ÑÐ²Ð°Ð»Ð¸Ñ‚ÑŒÑ Ð½ÐµÐ±Ð°. ЕÑли не найден ÐПС, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ мы в диалоге, то проÑто валим Ñ Ð½ÐµÐ±Ð° + + local npc = inventory_upgrades.victim + + if money ~= nil then + dialogs.relocate_money(npc, tonumber(money), "in") + end + + if items ~= nil then + local ancillary_item_table = {} + for k,v in pairs(utils.parse_names(items)) do + if ancillary_item_table[v] == nil then + ancillary_item_table[v] = 1 + else + ancillary_item_table[v] = ancillary_item_table[v] + 1 + end + end + for k,v in pairs(ancillary_item_table) do + dialogs.relocate_item_section(npc, k, "in", v) + end + end + +end +function CGeneralTask:reverse_task() + self.last_check_task = "reversed" +end +--' Ð”ÐµÐ°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ ÐºÐ²ÐµÑта +function CGeneralTask:deactivate_task(task) + printf("deactivate task %s", self.id) + + self.check_time = nil + if self.last_check_task == "fail" then + news_manager.send_task(db.actor, "fail", task) + elseif self.last_check_task == "reversed" then + xr_logic.pick_section_from_condlist(db.actor, db.actor, self.on_reversed) + news_manager.send_task(db.actor, "reversed", task) + end + self.last_check_task = nil + + self.status = "normal" +end +function CGeneralTask:check_level(target) + if not(db.actor:is_active_task(self.t)) or not(target) then + return + end + if not(level) then + return + end + local s_obj = alife():object(target) + if(s_obj) then + local target_level = alife():level_name(game_graph():vertex(s_obj.m_game_vertex_id):level_id()) + local level_name = level.name() + if(level_name~=target_level) then + local guider_id = get_guider(target_level) + if not(guider_id) then + return + end + local guider_spot = "" + local guider_spot2 = "" + if(self.storyline) then + guider_spot = "storyline_task_on_guider" + guider_spot2 = "secondary_task_on_guider" + else + guider_spot = "secondary_task_on_guider" + guider_spot2 = "storyline_task_on_guider" + end + if(level.map_has_object_spot(guider_id, guider_spot2)~=0) then + level.map_remove_object_spot(guider_id, guider_spot2) + end + if(guider_id and level.map_has_object_spot(guider_id, guider_spot)==0) then + level.map_add_object_spot(guider_id, guider_spot, "") + end + else + self:remove_guider_spot() + end + end +end +function CGeneralTask:remove_guider_spot(target) + if not(guiders_by_level[level.name()]) then + return + end + for k,v in pairs(guiders_by_level[level.name()]) do + local guider_id = get_story_object_id(v) + if(guider_id) then + if(level.map_has_object_spot(guider_id, "storyline_task_on_guider")~=0) then + level.map_remove_object_spot(guider_id, "storyline_task_on_guider") + end + if(level.map_has_object_spot(guider_id, "secondary_task_on_guider")~=0) then + level.map_remove_object_spot(guider_id, "secondary_task_on_guider") + end + end + end +end +-- Save quest +function CGeneralTask:save(packet) + set_save_marker(packet, "save", false, "CGeneralTask") + packet:w_u8(id_by_status[self.status]) + utils.w_CTime(packet, self.inited_time) + packet:w_stringZ(self.current_title) + packet:w_stringZ(self.current_descr) + packet:w_stringZ(tostring(self.current_target)) + set_save_marker(packet, "save", true, "CGeneralTask") +end +-- Load quest +function CGeneralTask:load(packet) + set_save_marker(packet, "load", false, "CGeneralTask") + self.status = status_by_id[packet:r_u8()] + self.inited_time = utils.r_CTime(packet) + self.current_title = packet:r_stringZ() + self.current_descr = packet:r_stringZ() + self.current_target = packet:r_stringZ() + if self.current_target == "nil" then + self.current_target = nil + else + self.current_target = tonumber(self.current_target) + end + + set_save_marker(packet, "load", true, "CGeneralTask") +end diff --git a/gamedata/scripts/ui_load_dialog.script b/gamedata/scripts/ui_load_dialog.script new file mode 100644 index 0000000..ced0608 --- /dev/null +++ b/gamedata/scripts/ui_load_dialog.script @@ -0,0 +1,365 @@ +saved_game_extension = save_extension() +saved_game_extension_ex = alife_storage_manager.saved_game_extension_ex + +class "load_item" (CUIListBoxItem) + +function load_item:__init(height) super(height) + printf("%f",height) + self.file_name = "filename" + + self:SetTextColor(GetARGB(255, 170, 170, 170)) + + self.fn = self:GetTextItem() + self.fn:SetFont(GetFontLetterica18Russian()) + self.fn:SetEllipsis(true) +end + +function load_item:__finalize() +end + +class "load_dialog" (CUIScriptWnd) + +function load_dialog:__init() super() + self:InitControls() + self:InitCallBacks() +end + +function load_dialog:__finalize() +end + +function load_dialog:FillList() + self.list_box:RemoveAll() + local f = getFS() + local flist = f:file_list_open_ex("$game_saves$",bit_or(FS.FS_ListFiles,FS.FS_RootOnly),"*"..saved_game_extension) + local f_cnt = flist:Size() + + flist:Sort(FS.FS_sort_by_modif_down) + + for it=0, f_cnt-1 do + local file = flist:GetAt(it) + local file_name = string.sub(file:NameFull(), 0, (string.len(file:NameFull()) - string.len(saved_game_extension))) + local date_time = "[" .. file:ModifDigitOnly() .. "]" + --menu_item = .. + self:AddItemToList(file_name, date_time) + end +end + +function load_dialog:InitControls() + self:SetWndRect (Frect():set(0,0,1024,768)) + + local xml = CScriptXmlInit() + local ctrl + xml:ParseFile ("ui_mm_load_dlg.xml") + + xml:InitStatic ("background",self) + + ctrl = CUIWindow() + xml:InitWindow ("file_item:main",0,ctrl) + + self.file_item_main_sz = vector2():set(ctrl:GetWidth(),ctrl:GetHeight()) + + xml:InitWindow ("file_item:fn",0,ctrl) + self.file_item_fn_sz = vector2():set(ctrl:GetWidth(),ctrl:GetHeight()) + + xml:InitWindow ("file_item:fd",0,ctrl) + self.file_item_fd_sz = vector2():set(ctrl:GetWidth(),ctrl:GetHeight()) + + self.form = xml:InitStatic("form",self) + + xml:InitStatic ("form:caption",self.form) + + self.picture = xml:InitStatic("form:picture",self.form) + +-- xml:InitStatic ("form:file_info",self.form) + + self.file_caption = xml:InitTextWnd("form:file_caption",self.form) + self.file_data = xml:InitTextWnd("form:file_data",self.form) + + xml:InitFrame ("form:list_frame",self.form) + + self.list_box = xml:InitListBox("form:list",self.form) + + self.list_box:ShowSelectedItem (true) + self:Register (self.list_box, "list_window") + + ctrl = xml:Init3tButton("form:btn_load", self.form) + self:Register (ctrl, "button_load") + + ctrl = xml:Init3tButton ("form:btn_delete", self.form) + self:Register (ctrl, "button_del") + + ctrl = xml:Init3tButton ("form:btn_cancel", self.form) + self:Register (ctrl, "button_back") + + self.message_box = CUIMessageBoxEx() + self:Register (self.message_box,"message_box") +end + +function load_dialog:InitCallBacks() + self:AddCallback("button_load", ui_events.BUTTON_CLICKED, self.OnButton_load_clicked, self) + self:AddCallback("button_back", ui_events.BUTTON_CLICKED, self.OnButton_back_clicked, self) + self:AddCallback("button_del", ui_events.BUTTON_CLICKED, self.OnButton_del_clicked, self) + self:AddCallback("message_box", ui_events.MESSAGE_BOX_YES_CLICKED, self.OnMsgYes, self) + self:AddCallback("message_box", ui_events.MESSAGE_BOX_OK_CLICKED, self.OnMsgYes, self) + + self:AddCallback("list_window", ui_events.LIST_ITEM_CLICKED, self.OnListItemClicked, self) + self:AddCallback("list_window", ui_events.WINDOW_LBUTTON_DB_CLICK, self.OnListItemDbClicked, self) + + +end + +function file_exist(fname) + local f = getFS(); + local flist = f:file_list_open_ex("$game_saves$",bit_or(FS.FS_ListFiles,FS.FS_RootOnly) , fname) + local f_cnt = flist:Size() + + if f_cnt > 0 then + return true + else + return false + end +end + +function delete_save_game(filename) + + local save_file = filename .. saved_game_extension + local dds_file = filename .. ".dds" + + local f = getFS() + + f:file_delete("$game_saves$", save_file) + + -- START IX-Ray + if (file_exist(filename..saved_game_extension_ex)) then + f:file_delete("$game_saves$",filename..saved_game_extension_ex) + end + -- END IX-Ray + + if file_exist(dds_file) then + f:file_delete("$game_saves$", dds_file) + end + +end + +function AddTimeDigit(str, dig) + if (dig > 9) then + str = str .. dig + else + str = str .. "0" .. dig + end + + return str + +end + +function file_data(fname) + local f = getFS(); + local flist = f:file_list_open_ex("$game_saves$",bit_or(FS.FS_ListFiles,FS.FS_RootOnly) , fname .. saved_game_extension) + local f_cnt = flist:Size() + + if f_cnt > 0 then + local file = flist:GetAt(0) + local sg = CSavedGameWrapper(fname) + + local y,m,d,h,min,sec,ms = 0,0,0,0,0,0,0 + y,m,d,h,min,sec,ms = sg:game_time():get(y,m,d,h,min,sec,ms) + + + local date_time = "" + + date_time = AddTimeDigit(date_time, h) + date_time = date_time .. ":" + date_time = AddTimeDigit(date_time, min) + date_time = date_time .. " " + date_time = AddTimeDigit(date_time, m) + date_time = date_time .. "/" + date_time = AddTimeDigit(date_time, d) + date_time = date_time .. "/" + + date_time = date_time .. y + + + --string.format("[%d/%d/%d %d]",m,d,h,min,y) + local health = string.format("\\n%s %d%s", game.translate_string("st_ui_health_sensor"),sg:actor_health()*100,"%") + + return game.translate_string("st_level") .. ": " .. game.translate_string(sg:level_name()) .. "\\n" .. game.translate_string("ui_inv_time")..": " .. date_time .. health + else + return "no file data" + end +end + +function load_dialog:OnListItemClicked() + if self.list_box:GetSize()==0 then return end + + local item = self.list_box:GetSelectedItem() + + if item == nil then + self.file_caption:SetText ("") + self.file_data:SetText ("") + + local r = self.picture:GetTextureRect() + self.picture:InitTexture ("ui\\ui_noise") + self.picture:SetTextureRect(Frect():set(r.x1,r.y1,r.x2,r.y2)) + + return + end + local item_text = item.fn:GetText() + self.file_caption:SetText (item_text) + self.file_caption:SetEllipsis(true) + self.file_data:SetText (file_data(item_text)) + + if file_exist(item_text .. saved_game_extension) ~= true then + self.list_box:RemoveItem(item) + return + end + + local r = self.picture:GetTextureRect() + if file_exist(item_text .. ".dds") then + self.picture:InitTexture(item_text) + else + self.picture:InitTexture("ui\\ui_noise") + end +-- self.picture:SetTextureRect(Frect():set(r.x1,r.y1,r.x2,r.y2)) +end + +function load_dialog:OnListItemDbClicked() + self:OnButton_load_clicked() +end + +function load_dialog:OnMsgYes() + local index = self.list_box:GetSelectedIndex() + + if index == -1 then return end + + if self.msgbox_id == 1 then + local item = self.list_box:GetItemByIndex(index) + + local fname = item.fn:GetText() + + delete_save_game (fname) + + self.list_box:RemoveItem(item) + + self:OnListItemClicked() + elseif self.msgbox_id == 2 then + self:load_game_internal() + end + + self.msgbox_id = 0 +end + +function load_dialog:load_game_internal() + local console = get_console() + + if self.list_box:GetSize()==0 then return end + + local index = self.list_box:GetSelectedIndex() + + if index == -1 then return end + + local item = self.list_box:GetItemByIndex(index) + + local fname = item.fn:GetText() + + if (alife() == nil) then + console:execute ("disconnect") + console:execute ("start server(" .. fname .. "/single/alife/load) client(localhost)") + else + console:execute ("load " .. fname) + end +end + +function load_dialog:OnButton_load_clicked() + local console = get_console() + + if self.list_box:GetSize()==0 then + return + end + + local item = self.list_box:GetSelectedItem() + if item == nil then + return + end + + local fname = item.fn:GetText() + + if ( not valid_saved_game(fname) ) then + self.msgbox_id = 0 + self.message_box:InitMessageBox ("message_box_invalid_saved_game") + self.message_box:ShowDialog(true) + return + end + + if (alife() == nil) then + self:load_game_internal () + return + end + + if ( (db.actor ~= nil) and (db.actor:alive() == false) ) then + self:load_game_internal () + return + end + + self.msgbox_id = 2 + self.message_box:InitMessageBox ("message_box_confirm_load_save") + self.message_box:ShowDialog(true) +end + +function load_dialog:OnButton_back_clicked() + self.owner:ShowDialog(true) + self:HideDialog() + self.owner:Show (true) +end + +function load_dialog:OnButton_del_clicked() + if self.list_box:GetSize()==0 then return end + local index = self.list_box:GetSelectedIndex() + local item = self.list_box:GetItemByIndex(index) -- Suhar_ + + if index == -1 or item==nil then -- Suhar_ + return + end + + self.msgbox_id = 1 + + self.message_box:InitMessageBox("message_box_delete_file_name") + self.message_box:ShowDialog(true) + +end + +function load_dialog:OnKeyboard(dik, keyboard_action) --virtual function + CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) + local bind = dik_to_bind(dik) + if bind == key_bindings.kQUIT then + self:OnButton_back_clicked() + else + + DIK_RETURN = 40 -- IX-Ray: Fixed DIK_RETURN + + if dik == DIK_RETURN and keyboard_action == ui_events.WINDOW_KEY_PRESSED then + self:OnButton_load_clicked() + end + end + return true +end + +function load_dialog:AddItemToList(file_name, date_time) + + local _itm = load_item(self.file_item_main_sz.y) + + _itm:SetWndSize (self.file_item_main_sz) + + _itm.fn:SetWndPos (vector2():set(0,0)) + _itm.fn:SetWndSize (self.file_item_fn_sz) + _itm.fn:SetText (file_name) + + _itm.fage = _itm:AddTextField(date_time, self.file_item_fd_sz.x) + _itm.fage:SetFont (GetFontLetterica16Russian()) + _itm.fage:SetWndPos (vector2():set(self.file_item_fn_sz.x+4, 0)) + _itm.fage:SetWndSize(self.file_item_fd_sz) + + self.list_box:AddExistingItem(_itm) +end + + + diff --git a/gamedata/scripts/ui_main_menu.script b/gamedata/scripts/ui_main_menu.script new file mode 100644 index 0000000..4d81775 --- /dev/null +++ b/gamedata/scripts/ui_main_menu.script @@ -0,0 +1,381 @@ +-- File: UI_MAIN_MENU.SCRIPT +-- Description: Load Dialog for STALKER +-- Created: 28.10.2004 +-- Lasd edit: 18.01.2006 +-- Copyright: 2004 GSC Game World +-- Author: Serhiy Vynnychenko (narrator@gsc-game.kiev.ua) +-- Version: 0.9 + +class "main_menu" (CUIScriptWnd) + +function main_menu:__init() super() + self.mbox_mode = 0 + self:InitControls() + self:InitCallBacks() + xr_s.on_main_menu_on() --' Distemper 03.2008 -- +end + +function main_menu:__finalize() +end + +function main_menu:InitControls() + self:SetWndRect (Frect():set(0,0,1024,768)) + + local xml = CScriptXmlInit() + xml:ParseFile ("ui_mm_main.xml") + + xml:InitStatic ("background", self) + self.shniaga = xml:InitMMShniaga("shniaga_wnd",self); + + self.message_box = CUIMessageBoxEx() + self:Register (self.message_box, "msg_box") + + local _ver = xml:InitStatic ("static_version",self) + local mm = _G.main_menu.get_main_menu() + _ver:TextControl():SetText ("ver. " .. mm:GetGSVer()) + + -- IX-Ray start + local btn + if xml:NodeExist("english_lang", 0) then + btn = xml:Init3tButton("english_lang", self) + self:Register(btn, "english_lang") + end + + if xml:NodeExist("russian_lang", 0) then + btn = xml:Init3tButton("russian_lang", self) + self:Register(btn, "russian_lang") + end + -- IX-Ray end +end + +function main_menu:Show(f) + self.shniaga:SetVisibleMagnifier(f) +end + + +function main_menu:InitCallBacks() + -- new game + self:AddCallback("btn_novice", ui_events.BUTTON_CLICKED, self.OnButton_new_novice_game, self) + self:AddCallback("btn_stalker", ui_events.BUTTON_CLICKED, self.OnButton_new_stalker_game, self) + self:AddCallback("btn_veteran", ui_events.BUTTON_CLICKED, self.OnButton_new_veteran_game, self) + self:AddCallback("btn_master", ui_events.BUTTON_CLICKED, self.OnButton_new_master_game, self) + self:AddCallback("btn_spawn", ui_events.BUTTON_CLICKED, self.OnButton_load_spawn, self) + -- options + self:AddCallback("btn_options", ui_events.BUTTON_CLICKED, self.OnButton_options_clicked, self) + -- load + self:AddCallback("btn_load", ui_events.BUTTON_CLICKED, self.OnButton_load_clicked, self) + -- save + self:AddCallback("btn_save", ui_events.BUTTON_CLICKED, self.OnButton_save_clicked, self) + + -- multiplayer + if (IsSupportMP()) then -- IX-Ray: Optional multiplayer check + self:AddCallback("btn_net_game", ui_events.BUTTON_CLICKED, self.OnButton_network_game_clicked, self) + self:AddCallback("btn_internet", ui_events.BUTTON_CLICKED, self.OnButton_internet_clicked, self) + self:AddCallback("btn_localnet", ui_events.BUTTON_CLICKED, self.OnButton_localnet_clicked, self) + self:AddCallback("btn_multiplayer", ui_events.BUTTON_CLICKED, self.OnButton_multiplayer_clicked, self) + end + + self:AddCallback("btn_logout", ui_events.BUTTON_CLICKED, self.OnButton_logout_clicked, self) + + -- quit + self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.OnButton_quit_clicked, self) + self:AddCallback("btn_quit_to_mm", ui_events.BUTTON_CLICKED, self.OnButton_disconnect_clicked, self) + self:AddCallback("btn_ret", ui_events.BUTTON_CLICKED, self.OnButton_return_game, self) + self:AddCallback("btn_lastsave", ui_events.BUTTON_CLICKED, self.OnButton_last_save, self) + self:AddCallback("btn_credits", ui_events.BUTTON_CLICKED, self.OnButton_credits_clicked, self) + + -- IX-Ray start + self:AddCallback("english_lang", ui_events.BUTTON_CLICKED, self.OnBtnEnglish, self) + self:AddCallback("russian_lang", ui_events.BUTTON_CLICKED, self.OnBtnRussian, self) + -- IX-Ray end + + -- message box + self:AddCallback("msg_box", ui_events.MESSAGE_BOX_OK_CLICKED, self.OnMsgOk, self) + self:AddCallback("msg_box", ui_events.MESSAGE_BOX_CANCEL_CLICKED, self.OnMsgCancel, self) + self:AddCallback("msg_box", ui_events.MESSAGE_BOX_YES_CLICKED, self.OnMsgYes, self) + self:AddCallback("msg_box", ui_events.MESSAGE_BOX_NO_CLICKED, self.OnMsgNo, self) + self:AddCallback("msg_box", ui_events.MESSAGE_BOX_QUIT_GAME_CLICKED,self.OnMessageQuitGame, self) + self:AddCallback("msg_box", ui_events.MESSAGE_BOX_QUIT_WIN_CLICKED, self.OnMessageQuitWin, self) + + self:Register(self, "self") + self:AddCallback("self", ui_events.MAIN_MENU_RELOADED, self.OnMenuReloaded, self) +end +function main_menu:OnMsgOk() + self.mbox_mode = 0 +end + +function main_menu:OnMsgCancel() + self.mbox_mode = 0 +end + +function main_menu:OnMsgYes() + + if self.mbox_mode == 1 then + self:LoadLastSave() + end + + self.mbox_mode = 0 +end + +function main_menu:OnMsgNo() + self.mbox_mode = 0 +end + +function main_menu:LoadLastSave() + local console = get_console() + console:execute ("main_menu off") + console:execute ("load_last_save") +end + +function main_menu:OnButton_last_save() + if ( alife() == nil) then + self:LoadLastSave () + return + end + + if ( (db.actor ~= nil) and (db.actor:alive() == false) ) then + self:LoadLastSave () + return + end + + self.mbox_mode = 1 + self.message_box:InitMessageBox ("message_box_confirm_load_save") + self.message_box:ShowDialog(true) +end + +function main_menu:OnButton_credits_clicked() +-- local console = get_console() +-- console:execute("main_menu off") + game.start_tutorial("credits_seq") +end + +function main_menu:OnButton_quit_clicked() + self.message_box:InitMessageBox("message_box_quit_windows") + self.message_box:ShowDialog(true) +end + + +function main_menu:OnButton_disconnect_clicked() + self.message_box:InitMessageBox("message_box_quit_game") + + if (level.game_id() ~= 1) then + self.message_box:SetText("ui_mm_disconnect_message") -- MultiPlayer + else + self.message_box:SetText("ui_mm_quit_game_message") -- SinglePlayer + end + self.message_box:ShowDialog(true) +end + +function main_menu:OnMessageQuitGame() + local console = get_console() + console:execute("disconnect") +end + +function main_menu:OnMessageQuitWin() + local console = get_console() + console:execute("quit") +end + +function main_menu:OnButton_return_game() + local console = get_console() + console:execute("main_menu off") + xr_s.on_main_menu_off() --' Distemper 03.2008 -- +end + +function main_menu:OnButton_new_novice_game() + local console = get_console() + console:execute("g_game_difficulty gd_novice") + self:StartGame() +end + +function main_menu:OnButton_new_stalker_game() + local console = get_console() + console:execute("g_game_difficulty gd_stalker") + self:StartGame() +end + +function main_menu:OnButton_new_veteran_game() + local console = get_console() + console:execute("g_game_difficulty gd_veteran") + self:StartGame() +end + +function main_menu:OnButton_new_master_game() + local console = get_console() + console:execute("g_game_difficulty gd_master") + self:StartGame() +end + +function main_menu:StartGame() + local console = get_console() + + if (alife() ~= nil) then + console:execute ("disconnect") + end + device():pause(false) + console:execute("start server(all/single/alife/new) client(localhost)") + console:execute("main_menu off") +end + +function main_menu:OnButton_load_spawn() + if self.spawn_dlg == nil then + self.spawn_dlg = ui_spawn_dialog.spawn_dialog() + self.spawn_dlg.owner = self + end + + self.spawn_dlg:ShowDialog(true) + self:HideDialog() + self:Show(false) +end + +function main_menu:OnButton_save_clicked() + if self.save_dlg == nil then + self.save_dlg = ui_save_dialog.save_dialog() + self.save_dlg.owner = self + end + + self.save_dlg:FillList() + self.save_dlg:ShowDialog(true) + self:HideDialog() + self:Show(false) +end + +function main_menu:OnButton_options_clicked() + if self.opt_dlg == nil then + self.opt_dlg = ui_mm_opt_main.options_dialog() + self.opt_dlg.owner = self + end + + self.opt_dlg:SetCurrentValues() + self.opt_dlg:ShowDialog(true) + self:HideDialog() + self:Show(false) +end + +-- IX-Ray start +function main_menu:OnBtnEnglish() + local console = get_console() + console:execute("language eng") +end + +function main_menu:OnBtnRussian() + local console = get_console() + console:execute("language rus") +end +-- IX-Ray end + +function main_menu:OnButton_load_clicked() + if self.load_dlg ==nil then + self.load_dlg = ui_load_dialog.load_dialog() + self.load_dlg.owner = self + end + + self.load_dlg:FillList() + self.load_dlg:ShowDialog(true) + self:HideDialog() + self:Show(false) +end + +function main_menu:OnButton_network_game_clicked() + self.shniaga:ShowPage(CUIMMShniaga.epi_new_network_game) +end + +function main_menu:OnButton_multiplayer_clicked() + -- assert(self.gs_profile) + + if not(self.mp_dlg) then + self.mp_dlg = ui_mp_main.mp_main() + self.mp_dlg.owner = self + self.mp_dlg:OnRadio_NetChanged() + end + self.mp_dlg:UpdateControls() + self.mp_dlg:ShowDialog(true) + + self:HideDialog() + self:Show(false) + + local console = get_console() + console:execute ("check_for_updates 0") +end + +function main_menu:OnButton_logout_clicked() + -- assert(self.gs_profile) + self.shniaga:ShowPage(CUIMMShniaga.epi_new_network_game) --fake + self.l_mgr:logout() + self.gs_profile = nil + self.mp_dlg = nil + self.shniaga:SetPage(CUIMMShniaga.epi_main, "ui_mm_main.xml", "menu_main") + self.shniaga:ShowPage(CUIMMShniaga.epi_main) +end + +function main_menu:OnButton_internet_clicked() + if not(self.gs_dlg) then + self.gs_dlg = ui_mm_mp_gamespy.gamespy_page() + self.gs_dlg.owner = self + end + self.gs_dlg:ShowLoginPage() + self.gs_dlg:ShowDialog(true) + + self:HideDialog() + self:Show(false) + + local console = get_console() + console:execute ("check_for_updates 0") +end + +function main_menu:OnButton_localnet_clicked() + if not(self.ln_dlg) then + self.ln_dlg = ui_mm_mp_localnet.localnet_page() + self.ln_dlg.owner = self + self.ln_dlg.lp_nickname:SetText(self.l_mgr:get_nick_from_registry()) + self.ln_dlg.lp_check_remember_me:SetCheck(self.l_mgr:get_remember_me_from_registry()) + end + self.ln_dlg:ShowDialog(true) + + self:HideDialog() + self:Show(false) + + local console = get_console() + console:execute ("check_for_updates 0") +end + +function main_menu:Dispatch(cmd, param) --virtual function + if cmd == 2 then + self:OnButton_multiplayer_clicked() + end + return true +end + +function main_menu:OnKeyboard(dik, keyboard_action) --virtual function + CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) + local bind = dik_to_bind(dik) + local console = get_console() + + if keyboard_action == ui_events.WINDOW_KEY_PRESSED then + if dik == DIK_keys.DIK_ESCAPE then + if level.present() and + ( ((db.actor ~= nil)and(db.actor:alive())) or + (false==IsGameTypeSingle()) + ) then + self.OnButton_return_game() --' xStream 02.2008 + -- console:execute("main_menu off") --' xStream 02.2008 + end + end + +-- if dik == DIK_keys.DIK_S then +-- self:OnButton_load_spawn() + +-- else + if dik == DIK_keys.DIK_Q then + self:OnMessageQuitWin() + end + + end + + return true +end + +function main_menu:OnMenuReloaded() + self:OnButton_options_clicked() + self.opt_dlg:OnMenuReloaded() +end \ No newline at end of file diff --git a/gamedata/scripts/ui_mm_mp_join.script b/gamedata/scripts/ui_mm_mp_join.script new file mode 100644 index 0000000..a50b139 --- /dev/null +++ b/gamedata/scripts/ui_mm_mp_join.script @@ -0,0 +1,85 @@ +-- file: UI_MM_MP_JOIN.SCRIPT +-- description: join tab in mm_mp +-- created: 16.05.2005 +-- author: Serge Vynnychenko +-- mail: narrator@gsc-game.kiev.ua +-- +-- Copyright 2005 GSC Game World + + +class "mp_join" (CUIWindow) + +function mp_join:__init() super() +end + +function mp_join:__finalize() +end + +function mp_join:InitControls(x, y, xml, handler) + self:SetAutoDelete (true) + + xml:InitWindow ("tab_client:main", 0, self) +-- self.bk = xml:InitFrame ("frame", self) +-- xml:InitFrameLine ("tab_client:vert_separator",self) + + handler.server_list = xml:InitServerList("tab_client:server_list", self) + +-- xml:InitStatic("tab_client:cap_network_connection", self) + xml:InitStatic("tab_client:cap_server_list", self) + xml:InitStatic("tab_client:cap_filters",self) + +-- xml:InitStatic("tab_client:rust_00",self) +-- xml:InitStatic("tab_client:rust_01",self) + + + local radio = xml:InitTab("tab_client:radio_tab_network_connection", self) + handler:Register(radio, "radio_net_conn") + handler.radio_net_connection = radio + radio:SetActiveTab("internet") + + local btn = xml:Init3tButton("tab_client:btn_direct_ip", self) + handler:Register(btn, "btn_direct_ip") + handler.btn_direct_ip = btn + handler.filters = {} + + local btn = xml:InitCheck("tab_client:check_empty", self) + handler:Register(btn, "check_empty") + handler.filters.btn_check_empty = btn + btn:SetCheck(true) + + btn = xml:InitCheck("tab_client:check_full", self) + handler:Register(btn, "check_full") + handler.filters.btn_check_full = btn + btn:SetCheck(true) + + btn = xml:InitCheck("tab_client:check_with_pass", self) + handler:Register(btn, "check_with_pass") + handler.filters.btn_check_with_pass = btn + btn:SetCheck(true) + + btn = xml:InitCheck("tab_client:check_without_pass", self) + handler:Register(btn, "check_without_pass") + handler.filters.btn_check_without_pass = btn + btn:SetCheck(true) + + btn = xml:InitCheck("tab_client:check_without_ff", self) + handler:Register(btn, "check_without_ff") + handler.filters.btn_check_without_ff = btn + btn:SetCheck(true) + + btn = xml:InitCheck("tab_client:check_listen_servers", self) + handler:Register(btn, "check_listen_servers") + handler.filters.btn_check_listen_servers = btn + btn:SetCheck(true) + + btn = xml:Init3tButton("tab_client:btn_refresh", self) + handler:Register(btn, "btn_refresh") + + btn = xml:Init3tButton("tab_client:btn_quick_refresh", self) + handler:Register(btn,"btn_quick_refresh") + + + btn = xml:Init3tButton("tab_client:btn_server_info", self) + handler:Register(btn, "btn_server_info") + +end diff --git a/gamedata/scripts/ui_mm_mp_options.script b/gamedata/scripts/ui_mm_mp_options.script new file mode 100644 index 0000000..43f6bfa --- /dev/null +++ b/gamedata/scripts/ui_mm_mp_options.script @@ -0,0 +1,199 @@ +-- file: UI_MM_MP_CREATE.SCRIPT +-- + + +class "mp_options" (CUIWindow) + +function mp_options:__init() super() +end + +function mp_options:__finalize() +end + +function mp_options:InitControls(x, y, xml, handler) + + self:SetAutoDelete (true) + xml:InitWindow ("tab_options:main", 0, self) + +-- self.bk = xml:InitFrame("frame", self) + xml:InitFrame("tab_options:frame_1", self) + xml:InitFrame("tab_options:frame_2", self) + xml:InitFrame("tab_options:frame_3", self) + +-- xml:InitFrameLine("tab_options:vert_separator", self) +-- xml:InitFrameLine("tab_options:vert_separator_2", self) + xml:InitFrameLine("tab_options:cap_network_connection", self) + xml:InitFrameLine("tab_options:cap_respawn_options", self) + xml:InitFrameLine("tab_options:cap_server_list", self) + xml:InitFrameLine("tab_options:cap_weather_options", self) + xml:InitFrameLine("tab_options:cap_spectator_options", self) + xml:InitFrameLine("tab_options:cap_demosave_options", self) + xml:InitStatic("tab_options:cap_damage_block", self) + xml:InitStatic("tab_options:cap_artreturn_time", self) + + xml:InitStatic("tab_options:cap_friendly_fire", self) + xml:InitStatic("tab_options:cap_frag_limit", self) + xml:InitStatic("tab_options:cap_time_limit", self) + xml:InitStatic("tab_options:cap_artefact_stay", self) + xml:InitStatic("tab_options:cap_artefact_num", self) + xml:InitStatic("tab_options:cap_anomaly_time", self) + xml:InitStatic("tab_options:cap_warm_up_time", self) + xml:InitStatic("tab_options:cap_artefact_delay", self) + xml:InitStatic("tab_options:cap_starting_weather", self) + xml:InitStatic("tab_options:cap_rate_of_change", self) + xml:InitStatic("tab_options:cap_max_ping", self) + +-- xml:InitStatic("tab_options:public_server_t", self) + + handler.check_public_server = xml:InitCheck("tab_options:check_public_server", self) + handler.check_spectator = xml:InitCheck("tab_options:check_spectator", self) + handler.check_allow_voting = xml:InitCheck("tab_options:check_allow_voting", self) + handler.spin_max_ping = xml:InitSpinNum("tab_options:spin_max_ping", self) + + + handler.check_damage_block = xml:InitCheck("tab_options:check_damage_block", self) + handler.check_auto_team_balance = xml:InitCheck("tab_options:check_auto_team_balance", self) + handler.check_auto_team_swap = xml:InitCheck("tab_options:check_auto_team_swap", self) + handler.check_friendly_indicators = xml:InitCheck("tab_options:check_friendly_indicators", self) + handler.check_friendly_names = xml:InitCheck("tab_options:check_friendly_names", self) + handler.check_no_anmalies = xml:InitCheck("tab_options:check_no_anmalies", self) + + handler.check_spec_teamonly = xml:InitCheck("tab_options:check_spec_teamonly", self) + handler.check_spec_freefly = xml:InitCheck("tab_options:check_spec_freefly", self) + handler.check_spec_firsteye = xml:InitCheck("tab_options:check_spec_firsteye", self) + handler.check_spec_lookat = xml:InitCheck("tab_options:check_spec_lookat", self) + handler.check_spec_freelook = xml:InitCheck("tab_options:check_spec_freelook", self) + + handler.check_demosave = xml:InitCheck("tab_options:check_demosave", self) + handler:Register (handler.check_demosave, "check_demosave") + + handler.tab_respawn = xml:InitTab("tab_options:radio_tab_respawn_options", self) + -- spin boxes + handler.spin_friendly_fire = xml:InitSpinFlt("tab_options:spin_friendly_fire", self) + handler.spin_artefacts_num = xml:InitSpinNum("tab_options:spin_artefacts_num", self) + handler.spin_spectator = xml:InitSpinNum("tab_options:spin_spectator", self) + handler.spin_force_respawn = xml:InitSpinNum("tab_options:spin_force_respawn", self) + handler.spin_reinforcement = xml:InitSpinNum("tab_options:spin_reinforcement", self) + + handler.spin_damage_block = xml:InitSpinNum("tab_options:spin_damage_block", self) + handler.spin_artreturn_time = xml:InitSpinNum("tab_options:spin_artreturn_time", self) + handler.check_activated_return = xml:InitCheck("tab_options:check_activated_return", self) + handler.spin_frag_limit = xml:InitSpinNum("tab_options:spin_frag_limit", self) + handler.spin_time_limit = xml:InitSpinNum("tab_options:spin_time_limit", self) + handler.spin_artefact_stay = xml:InitSpinNum("tab_options:spin_artefact_stay", self) + handler.spin_artefact_delay = xml:InitSpinNum("tab_options:spin_artefact_delay", self) + handler.spin_anomaly_time = xml:InitSpinNum("tab_options:spin_anomaly_time", self) + handler.spin_warm_up_time = xml:InitSpinNum("tab_options:spin_warm_up_time", self) + + handler.check_pda_hunt = xml:InitCheck("tab_options:check_pda_hunt", self) + + handler.spin_rate_of_change = xml:InitSpinFlt("tab_options:spin_rate_of_change", self) + + handler.spin_weather = xml:InitComboBox("tab_options:spin_weather", self) + + handler.check_spectator:SetDependControl(handler.spin_spectator) + +-- handler.check_public_server:SetDependControl(handler.check_verify_cdkey) + +--[[if (self.online) then +-- handler.check_public_server:SetCheck(true) + else +-- handler.check_public_server:SetCheck(false) + end]] + + +end + +function mp_options:SetGameMode(mode, handler) + handler.spin_friendly_fire:Enable(true) + handler.check_auto_team_balance:Enable(true) + handler.check_auto_team_swap:Enable(true) + handler.spin_artefacts_num:Enable(true) + handler.spin_artefact_delay:Enable(true) + handler.spin_artefact_stay:Enable(true) + handler.check_friendly_indicators:Enable(true) + handler.check_friendly_names:Enable(true) + handler.spin_reinforcement:Enable(true) + handler.spin_frag_limit:Enable(true) + handler.check_spec_teamonly:Enable(true) + + handler.spin_artreturn_time:Enable(true); + handler.check_activated_return:Enable(true) + + + local btn_reinforcement = handler.tab_respawn:GetButtonById("reinforcement") + local btn_artefactcapture = handler.tab_respawn:GetButtonById("artefactcapture") + btn_reinforcement:Enable (true) + btn_artefactcapture:Enable (true) + + + if GAME_TYPE.GAME_UNKNOWN ~= 0 then + if GAME_TYPE.eGameIDDeathmatch == mode then + handler.spin_friendly_fire:Enable(false) + handler.check_auto_team_balance:Enable(false) + handler.check_auto_team_swap:Enable(false) + handler.spin_artefacts_num:Enable(false) + handler.spin_artefact_delay:Enable(false) + handler.spin_artefact_stay:Enable(false) + handler.check_friendly_indicators:Enable(false) + handler.check_friendly_names:Enable(false) + handler.check_spec_teamonly:Enable(false) + handler.spin_reinforcement:Enable(false) + -- tab + handler.tab_respawn:SetActiveTab("forcerespawn") + btn_reinforcement:Enable(false) + btn_artefactcapture:Enable(false) + handler.spin_artreturn_time:Enable(false); + handler.check_activated_return:Enable(false) + elseif GAME_TYPE.eGameIDTeamDeathmatch == mode then + handler.spin_artefacts_num:Enable(false) + handler.spin_artefact_delay:Enable(false) + handler.spin_artefact_stay:Enable(false) + -- tab + handler.tab_respawn:SetActiveTab("forcerespawn") + btn_reinforcement:Enable(false) + btn_artefactcapture:Enable(false) + handler.spin_artreturn_time:Enable(false); + handler.check_activated_return:Enable(false) + elseif GAME_TYPE.eGameIDArtefactHunt == mode then + handler.spin_frag_limit:Enable(false) + handler.spin_artreturn_time:Enable(false); + handler.check_activated_return:Enable(false) + elseif GAME_TYPE.eGameIDCaptureTheArtefact == mode then + handler.spin_artefact_delay:Enable(false) + handler.spin_artefact_stay:Enable(false) + handler.spin_frag_limit:Enable(false) + end + elseif GAME_TYPE.GAME_UNKNOWN == 0 then + handler.spin_artreturn_time:Enable(false); + handler.check_activated_return:Enable(false) + if GAME_TYPE.GAME_DEATHMATCH == mode then + handler.spin_friendly_fire:Enable(false) + handler.check_auto_team_balance:Enable(false) + handler.check_auto_team_swap:Enable(false) + handler.spin_artefacts_num:Enable(false) + handler.spin_artefact_delay:Enable(false) + handler.spin_artefact_stay:Enable(false) + handler.check_friendly_indicators:Enable(false) + handler.check_friendly_names:Enable(false) + handler.check_spec_teamonly:Enable(false) + handler.spin_reinforcement:Enable(false) + -- tab + handler.tab_respawn:SetActiveTab("forcerespawn") + btn_reinforcement:Enable(false) + btn_artefactcapture:Enable(false) + elseif GAME_TYPE.GAME_TEAMDEATHMATCH == mode then + handler.spin_artefacts_num:Enable(false) + handler.spin_artefact_delay:Enable(false) + handler.spin_artefact_stay:Enable(false) + -- tab + handler.tab_respawn:SetActiveTab("forcerespawn") + btn_reinforcement:Enable(false) + btn_artefactcapture:Enable(false) + elseif GAME_TYPE.GAME_ARTEFACTHUNT == mode then + handler.spin_frag_limit:Enable(false) + end + end +end + + diff --git a/gamedata/scripts/ui_mm_opt_controls.script b/gamedata/scripts/ui_mm_opt_controls.script new file mode 100644 index 0000000..23f0f3b --- /dev/null +++ b/gamedata/scripts/ui_mm_opt_controls.script @@ -0,0 +1,34 @@ +class "opt_controls" (CUIWindow) + +function opt_controls:__init() super() +end + +function opt_controls:__finalize() + +end + +function opt_controls:InitControls(x, y, xml, handler) + + self:SetWndPos(vector2():set(x,y)) + self:SetWndSize(vector2():set(738,416)) + + self:SetAutoDelete(true) + +-- self.bk = xml:InitFrame("frame", self) + + xml:InitStatic ("tab_controls:cap_mousesens", self) + xml:InitTrackBar ("tab_controls:track_mousesens", self) + xml:InitStatic ("tab_controls:cap_mousesens_ui", self) + xml:InitTrackBar ("tab_controls:track_mousesens_ui", self) + xml:InitFrameLine ("tab_controls:cap_keyboardsetup", self) + xml:InitFrameLine ("tab_controls:cap_keyboardsetup", self) + xml:InitStatic ("tab_controls:cap_check_mouseinvert", self) + xml:InitCheck ("tab_controls:check_mouseinvert", self) + xml:InitKeyBinding ("tab_controls:key_binding", self) + + local btn + btn = xml:Init3tButton("tab_controls:btn_default", self) + handler:Register(btn, "btn_keyb_default") + + +end diff --git a/gamedata/scripts/ui_mm_opt_gameplay.script b/gamedata/scripts/ui_mm_opt_gameplay.script new file mode 100644 index 0000000..03460e2 --- /dev/null +++ b/gamedata/scripts/ui_mm_opt_gameplay.script @@ -0,0 +1,92 @@ +class "opt_gameplay" (CUIWindow) + +function opt_gameplay:__init() super() +end + +function opt_gameplay:__finalize() + +end + +function opt_gameplay:InitControls(x, y, xml, handler) + + self:SetWndPos(vector2():set(x,y)) + self:SetWndSize(vector2():set(738,416)) + self:SetAutoDelete(true) + self.scroll_v = xml:InitScrollView("main_dialog:scroll_v", self) + + local _st + local addControl = function(crl) + self.scroll_v:AddWindow(crl, true) + crl:SetAutoDelete(false) + end + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_difficulty", _st) + xml:InitComboBox("tab_gameplay:list_difficulty", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_lang", _st) + xml:InitComboBox("tab_gameplay:list_lang", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_bobbing_factor", _st) + xml:InitTrackBar("tab_gameplay:track_bobbing_factor", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_hit_slowmo", _st) + xml:InitCheck("tab_gameplay:check_hit_slowmo", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_wpn_aim_toggle", _st) + xml:InitCheck("tab_gameplay:check_wpn_aim_toggle", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_check_crosshair", _st) + xml:InitCheck("tab_gameplay:check_crosshair", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_check_dyn_crosshair", _st) + xml:InitCheck("tab_gameplay:check_dyn_crosshair", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_check_show_weapon", _st) + xml:InitCheck("tab_gameplay:check_show_weapon", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_check_dist", _st) + xml:InitCheck("tab_gameplay:check_dist", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_check_tips", _st) + xml:InitCheck("tab_gameplay:check_tips", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_check_crouch_toggle", _st) + xml:InitCheck("tab_gameplay:check_crouch_toggle", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_check_important_save", _st) + xml:InitCheck("tab_gameplay:check_important_save", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_check_hud_draw", _st) + xml:InitCheck("tab_gameplay:check_hud_draw", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_gameplay:cap_rs_fps_show", _st) + xml:InitCheck("tab_gameplay:check_rs_fps_show", _st) + addControl(_st) +end diff --git a/gamedata/scripts/ui_mm_opt_main.script b/gamedata/scripts/ui_mm_opt_main.script new file mode 100644 index 0000000..7b31ffd --- /dev/null +++ b/gamedata/scripts/ui_mm_opt_main.script @@ -0,0 +1,353 @@ +class "options_dialog" (CUIScriptWnd) + +function options_dialog:__init() super() + + self.m_preconditions = {} + self.m_deffer_ex = {} + self:InitControls() + self:InitCallBacks() + self.tab:SetActiveTab ("video") +end + +function options_dialog:__finalize() + +end + +function options_dialog:InitControls() + self:SetWndRect (Frect():set(0,0,1024,768)) + self:Enable (true) + + local xml = CScriptXmlInit() + xml:ParseFile ("ui_mm_opt.xml") + + xml:InitStatic ("background", self) + self.dialog = xml:InitStatic("main_dialog:dialog", self) + +-- xml:InitStatic ("main_dialog:cap_options", self.dialog) + + self.dlg_video = ui_mm_opt_video.opt_video() + self.dlg_video:InitControls (0,0, xml, self) + self.dlg_video:Show (false) + self.dialog:AttachChild (self.dlg_video) + xml:InitWindow ("tab_size", 0, self.dlg_video) + + self.dlg_sound = ui_mm_opt_sound.opt_sound() + self.dlg_sound:InitControls (0,0, xml, self) + self.dlg_sound:Show (false) + self.dialog:AttachChild (self.dlg_sound) + xml:InitWindow ("tab_size", 0, self.dlg_sound) + + self.dlg_gameplay = ui_mm_opt_gameplay.opt_gameplay() + self.dlg_gameplay:InitControls(0,0, xml, self) + self.dlg_gameplay:Show (false) + self.dialog:AttachChild (self.dlg_gameplay) + xml:InitWindow ("tab_size", 0, self.dlg_gameplay) + + self.dlg_controls = ui_mm_opt_controls.opt_controls() + self.dlg_controls:InitControls(0,0, xml, self) + self.dlg_controls:Show (false) + self.dialog:AttachChild (self.dlg_controls) + xml:InitWindow ("tab_size", 0, self.dlg_controls) +--[[ + self.dlg_con_cmd = ui_mm_opt_con_cmd.opt_con_cmd() + self.dlg_con_cmd:InitControls(0,0, xml, self) + self.dlg_con_cmd:Show (false) + self.dialog:AttachChild (self.dlg_con_cmd) + xml:InitWindow ("tab_size", 0, self.dlg_con_cmd) +]] + self.dlg_video_adv = ui_mm_opt_video_adv.opt_video_adv() + self.dlg_video_adv:InitControls(0,0, xml, self) + self.dlg_video_adv:Show (false) + self.dialog:AttachChild (self.dlg_video_adv) + xml:InitWindow ("tab_size", 0, self.dlg_video_adv) + + local btn + btn = xml:Init3tButton ("main_dialog:btn_accept", self.dialog) + self:Register (btn, "btn_accept") + btn = xml:Init3tButton ("main_dialog:btn_cancel", self.dialog) + self:Register (btn, "btn_cancel") + + self.tab = xml:InitTab("main_dialog:tab", self.dialog) + self:Register (self.tab, "tab") + + + self.message_box = CUIMessageBoxEx() + self:Register (self.message_box, "mb") + + self.b_restart_system_shown = false + self.timer = nil + + self.cap_download = xml:InitStatic ("download_static",self) + self.text_download = xml:InitStatic ("download_text",self) + self.download_progress = xml:InitProgressBar ("progress_download", self) + self.btn_cancel_download = xml:Init3tButton ("btn_cancel_download", self) + self:Register (self.btn_cancel_download, "btn_cancel_download") + +end + +function options_dialog:SetCurrentValues() + local opt = COptionsManager() + + opt:SetCurrentValues("mm_opt_video_preset") + opt:SaveBackupValues("mm_opt_video_preset") + + opt:SetCurrentValues("mm_opt_video") + opt:SaveBackupValues("mm_opt_video") + + opt:SetCurrentValues("mm_opt_video_adv") + opt:SaveBackupValues("mm_opt_video_adv") + + opt:SetCurrentValues("mm_opt_gameplay") + opt:SaveBackupValues("mm_opt_gameplay") + + opt:SetCurrentValues("mm_opt_sound") + opt:SaveBackupValues("mm_opt_sound") + + opt:SetCurrentValues("mm_opt_controls") + opt:SaveBackupValues("mm_opt_controls") + + opt:SetCurrentValues("key_binding") + opt:SaveBackupValues("key_binding") + + self:UpdateDependControls() +end + +function options_dialog:UpdateDependControls() + self.scroll_v:Clear() + + local current_id = self.combo_renderer:CurrentID() + local value = self.combo_renderer:GetValueOf(current_id) + + for _, j in pairs(self.m_preconditions) do + if j.func(value) then + self.scroll_v:AddWindow(j.control, true) + j.control:SetAutoDelete(false) + end + end + + for _, t in pairs(self.m_deffer_ex) do + t.func(t.arg) + end +end + +function options_dialog:InitCallBacks() + self:AddCallback("tab", ui_events.TAB_CHANGED, self.OnTabChange, self) + self:AddCallback("btn_advanced_graphic",ui_events.BUTTON_CLICKED, self.OnBtnAdvGraphic, self) + self:AddCallback("btn_accept", ui_events.BUTTON_CLICKED, self.OnBtnAccept, self) + self:AddCallback("btn_cancel", ui_events.BUTTON_CLICKED, self.OnBtnCancel, self) + self:AddCallback("btn_default_graphic", ui_events.BUTTON_CLICKED, self.OnBtnDefGraph, self) + self:AddCallback("btn_default_sound", ui_events.BUTTON_CLICKED, self.OnBtnDefSound, self) + self:AddCallback("combo_preset", ui_events.LIST_ITEM_SELECT, self.OnPresetChanged, self) + self:AddCallback("btn_simply_graphic", ui_events.BUTTON_CLICKED, self.OnSimplyGraphic, self) + self:AddCallback("btn_keyb_default", ui_events.BUTTON_CLICKED, self.OnBtnKeybDefault, self) + self:AddCallback("combo_renderer", ui_events.LIST_ITEM_SELECT, self.UpdateDependControls, self) + self:AddCallback("btn_cancel_download", ui_events.BUTTON_CLICKED, self.OnBtn_CancelDownload, self) + + self:AddCallback("mb", ui_events.MESSAGE_BOX_YES_CLICKED, self.OnApplyChanges, self) + self:AddCallback("mb", ui_events.MESSAGE_BOX_NO_CLICKED, self.OnDiscardChanges,self) +end + +function options_dialog:OnBtnCheckUpdates() + local console = get_console() + console:execute ("check_for_updates 1") +end + +function options_dialog:OnBtnKeybDefault() + local console = get_console() + console:execute ("default_controls") + + local opt = COptionsManager() + opt:SetCurrentValues ("mm_opt_controls") + opt:SetCurrentValues ("key_binding") +end + +function options_dialog:OnPresetChanged() + local opt = COptionsManager() + opt:SetCurrentValues ("mm_opt_video_adv") +end + + +function options_dialog:OnBtnDefGraph() + local opt = COptionsManager() + opt:SendMessage2Group("mm_opt_video","set_default_value") +end + +function options_dialog:OnBtnDefSound() + local opt = COptionsManager() + opt:SendMessage2Group("mm_opt_sound","set_default_value") +end + +function options_dialog:OnBtnAccept() + + local opt = COptionsManager() + local console = get_console() + + console:execute("cfg_save tmp") + + opt:SaveValues("mm_opt_video_preset") + opt:SaveValues("key_binding") + opt:SaveValues("mm_opt_video") + opt:SaveValues("mm_opt_video_adv") + opt:SaveValues("mm_opt_gameplay") + opt:SaveValues("mm_opt_sound") + opt:SaveValues("mm_opt_controls") + + if opt:NeedVidRestart() then + _G.b_discard_settings_shown = true + self.message_box:InitMessageBox("message_box_yes_no") + self.message_box:SetText(string.format("%s %d% s", game.translate_string("ui_mm_confirm_changes"), 15, game.translate_string("mp_si_sec"))) + self.message_box:ShowDialog(true) + else + self:OnApplyChanges() + end + + opt:OptionsPostAccept() + + console:execute("cfg_save") +end + +function options_dialog:OnBtnCancel() + local opt = COptionsManager() + opt:UndoGroup ("mm_opt_video_preset") + opt:UndoGroup ("mm_opt_video") + opt:UndoGroup ("mm_opt_video_adv") + opt:UndoGroup ("mm_opt_sound") + opt:OptionsPostAccept () + + self.owner:ShowDialog(true) + self:HideDialog() + self.owner:Show(true) +end + +function options_dialog:OnTabChange() + self.dlg_video:Show (false) + self.dlg_sound:Show (false) + self.dlg_gameplay:Show (false) + self.dlg_controls:Show (false) + self.dlg_video_adv:Show (false) + + local ids = self.tab:GetActiveId() + if ids == "video" then + self.dlg_video:Show(true) + elseif ids == "sound" then + self.dlg_sound:Show(true) + elseif ids == "gameplay" then + self.dlg_gameplay:Show(true) + elseif ids == "controls" then + self.dlg_controls:Show(true) + end + +end + +function options_dialog:OnBtnAdvGraphic() + self.dlg_video:Show (false) + self.dlg_video_adv:Show (true) +end + +function options_dialog:OnSimplyGraphic() + self.dlg_video:Show (true) + self.dlg_video_adv:Show (false) +end + +function options_dialog:OnKeyboard(dik, keyboard_action) + local res = CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) + + if res==false then + + local bind = dik_to_bind(dik) + + if keyboard_action == ui_events.WINDOW_KEY_PRESSED then + if dik == DIK_keys.DIK_ESCAPE then + if self.dlg_video_adv:IsShown() then + self.dlg_video_adv:Show (false) + self.dlg_video:Show (true) + else + self.owner:ShowDialog(true) + self:HideDialog() + self.owner:Show(true) + end + end + + end + end + + return res +end + +function options_dialog:Update() + CUIScriptWnd.Update(self) + + local mm = main_menu.get_main_menu() + local sss = mm:GetPatchProgress() + + if sss:GetInProgress() then + self.text_download:Show (true) + self.cap_download:Show (true) + self.download_progress:Show (true) + local _progr = sss:GetProgress() + self.download_progress:SetProgressPos (_progr) + local str = string.format("%.0f%%(%s)",_progr,sss:GetFlieName()) + self.text_download:TextControl():SetText (str) + self.btn_cancel_download:Show (true) + else + self.text_download:Show (false) + self.cap_download:Show (false) + self.download_progress:Show (false) + self.btn_cancel_download:Show (false) + end + if(_G.b_discard_settings_shown) then + local tg = math.floor(time_global_async()/1000) + if(self.timer==nil) then + self.timer = tg + end + self.message_box:SetText(string.format("%s %d %s", game.translate_string("ui_mm_confirm_changes"), 15-(tg-self.timer), game.translate_string("mp_si_sec"))) + if(tg-self.timer>=15) then + self.message_box:HideDialog() + self:OnDiscardChanges() + end + end +end + +function options_dialog:OnBtn_CancelDownload() + local mm = main_menu.get_main_menu() + mm:CancelDownload() +end + +function options_dialog:OnApplyChanges() + self.timer = nil + _G.b_discard_settings_shown = false + + self.owner:ShowDialog(true) + self:HideDialog() + self.owner:Show(true) + + if false==self.b_restart_system_shown then + local opt = COptionsManager() + if opt:NeedSystemRestart() then + self.b_restart_system_shown = true + self.message_box:InitMessageBox("message_box_restart_game") + self.message_box:ShowDialog(true) + end + end +end + +function options_dialog:OnDiscardChanges() + self.timer = nil + _G.b_discard_settings_shown = false + + local c = get_console() + c:execute("cfg_load tmp") + + self:SetCurrentValues() + + c:execute("vid_restart") + c:execute("cfg_save") +end + +function options_dialog:OnMenuReloaded() + if(_G.b_discard_settings_shown) then + self.message_box:InitMessageBox("message_box_yes_no") + self.message_box:SetText(string.format("%s %d% s", game.translate_string("ui_mm_confirm_changes"), 15, game.translate_string("mp_si_sec"))) + self.message_box:ShowDialog(true) + end +end diff --git a/gamedata/scripts/ui_mm_opt_sound.script b/gamedata/scripts/ui_mm_opt_sound.script new file mode 100644 index 0000000..aa5db8d --- /dev/null +++ b/gamedata/scripts/ui_mm_opt_sound.script @@ -0,0 +1,49 @@ +class "opt_sound" (CUIWindow) + +function opt_sound:__init() super() +end + +function opt_sound:__finalize() + +end + +function opt_sound:InitControls(x, y, xml, handler) + + self:SetWndPos(vector2():set(x,y)) + self:SetWndSize(vector2():set(738,416)) + self:SetAutoDelete(true) + self.scroll_v = xml:InitScrollView("main_dialog:scroll_v", self) + + local _st + local addControl = function(crl) + self.scroll_v:AddWindow(crl, true) + crl:SetAutoDelete(false) + end + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_sound:cap_mastervolume", _st) + xml:InitTrackBar("tab_sound:track_mastervolume", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_sound:cap_musicvolume", _st) + xml:InitTrackBar("tab_sound:track_musicvolume", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_sound:cap_snd_device", _st) + xml:InitComboBox("tab_sound:list_snd_device", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitCheck("tab_sound:check_dynamic_music", _st) + xml:InitStatic("tab_sound:cap_check_dynamic_music", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_sound:cap_check_eax", _st) + xml:InitCheck("tab_sound:check_eax", _st) + addControl(_st) + + +end diff --git a/gamedata/scripts/ui_mm_opt_video.script b/gamedata/scripts/ui_mm_opt_video.script new file mode 100644 index 0000000..55c2089 --- /dev/null +++ b/gamedata/scripts/ui_mm_opt_video.script @@ -0,0 +1,77 @@ +class "opt_video" (CUIWindow) + +function opt_video:__init() super() +end + +function opt_video:__finalize() + +end + +function opt_video:InitControls(x, y, xml, handler) + + self:SetWndPos(vector2():set(x,y)) + self:SetWndSize(vector2():set(738,416)) + self:SetAutoDelete(true) + self.scroll_v = xml:InitScrollView("main_dialog:scroll_v", self) + + local _st + local addControl = function(crl) + self.scroll_v:AddWindow(crl, true) + crl:SetAutoDelete(false) + end + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_video:cap_renderer", _st) + handler.combo_renderer = xml:InitComboBox("tab_video:list_renderer", _st) + handler:Register(handler.combo_renderer, "combo_renderer") + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_video:cap_preset", _st) + handler.combo_preset = xml:InitComboBox("tab_video:list_presets", _st) + handler:Register(handler.combo_preset, "combo_preset") + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_video:cap_resolution",_st) + xml:InitComboBox("tab_video:list_resolution",_st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_video:cap_brightness", _st) + xml:InitTrackBar("tab_video:track_brightness", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_video:cap_contrast", _st) + xml:InitTrackBar("tab_video:track_contrast", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_video:cap_gamma", _st) + xml:InitTrackBar("tab_video:track_gamma", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic ("tab_video:cap_fullscreen", _st) + xml:InitCheck ("tab_video:check_fullscreen", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_video:cap_rs_device_active", _st) + xml:InitCheck("tab_video:check_rs_device_active", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_video:cap_vsync", _st) + xml:InitCheck("tab_video:check_vsync", _st) + addControl(_st) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("tab_video:cap_screenshot_format", _st) + xml:InitComboBox("tab_video:list_screenshot_format", _st) + addControl(_st) + + btn = xml:Init3tButton("tab_video:btn_advanced", self) + handler:Register(btn, "btn_advanced_graphic") +end diff --git a/gamedata/scripts/ui_mm_opt_video_adv.script b/gamedata/scripts/ui_mm_opt_video_adv.script new file mode 100644 index 0000000..1438af2 --- /dev/null +++ b/gamedata/scripts/ui_mm_opt_video_adv.script @@ -0,0 +1,414 @@ +class "opt_video_adv" (CUIWindow) +function opt_video_adv:__init() super() +end + +function opt_video_adv:__finalize() +end + +function all_modes(render_id) + return true +end + +function mode_1(id) + return id == "renderer_r1" +end + +function mode_2(id) + return id ~= "renderer_r1" +end + +function mode_4(id) + return id == "renderer_r4" +end + +function opt_video_adv:InitControls(x, y, xml, handler) + self:SetWndPos(vector2():set(x,y)) + self:SetWndSize(vector2():set(738,416)) + self:SetAutoDelete(true) + + self.scroll_v = xml:InitScrollView("video_adv:scroll_v", self) + handler.scroll_v = self.scroll_v + + btn = xml:Init3tButton("video_adv:btn_to_simply", self) + handler:Register(btn, "btn_simply_graphic") + + local ctl = nil + local _st = nil + + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + + local lineFrame = function (prec, text) + local static = xml:InitStatic("video_adv:templ_item", nil) + local temp = xml:InitFrameLine("video_adv:header_setup", static) + local tempText = xml:InitTextWnd("video_adv:cap_header_setup", temp) + table.insert(handler.m_preconditions, {func=prec, control=static}) + tempText:SetTextST(text) + end + + local reloadControls = function() + local pos = handler.scroll_v:GetCurrentScrollPos() + handler:UpdateDependControls() + handler.scroll_v:SetScrollPos(pos) + end + + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + + lineFrame(all_modes, "st_common_settings") + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_detail_density", _st) + xml:InitTrackBar("video_adv:track_detail_density", _st) + table.insert(handler.m_preconditions, {func=all_modes, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_detail_radius", _st) + xml:InitTrackBar("video_adv:track_detail_radius", _st) + table.insert(handler.m_preconditions, {func=all_modes, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_vis_dist", _st) + xml:InitTrackBar("video_adv:track_vis_dist", _st) + table.insert(handler.m_preconditions, {func=all_modes, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_geometry_lod", _st) + xml:InitTrackBar("video_adv:track_geometry_lod", _st) + table.insert(handler.m_preconditions, {func=all_modes, control=_st}) + +----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + + lineFrame(all_modes, "st_surface_options") + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_texture_lod", _st) + ctl = xml:InitTrackBar("video_adv:track_texture_lod", _st) + handler.texture_lod_track = ctl + table.insert(handler.m_preconditions, {func=all_modes, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_aniso", _st) + xml:InitTrackBar("video_adv:track_aniso", _st) + table.insert(handler.m_preconditions, {func=all_modes, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r1_detail_textures", _st) + ctl = xml:InitCheck("video_adv:check_r1_detail_textures", _st) + table.insert(handler.m_preconditions, {func=mode_1, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r2_detail_bump", _st) + ctl = xml:InitCheck("video_adv:check_r2_detail_bump", _st) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r2_steep_parallax", _st) + ctl = xml:InitCheck("video_adv:check_r2_steep_parallax", _st) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r4_tessellation", _st) + ctl = xml:InitCheck("video_adv:check_r4_tessellation", _st) + table.insert(handler.m_preconditions, {func=mode_4, control=_st}) + + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + + lineFrame(all_modes, "st_aa_options") + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r_scale_mode", _st) + ctl = xml:InitComboBox("video_adv:list_r_scale_mode", _st) + + handler:Register(ctl, "scaleMode") + handler.scaleMode = ctl + + table.insert(handler.m_preconditions, {func=mode_4, control=_st}) + handler:AddCallback("scaleMode", ui_events.LIST_ITEM_SELECT, reloadControls, nil) + + local scalePresetPrec = function(id) + if mode_4(id) then + local current_id = handler.scaleMode:CurrentID() + if current_id > 1 then + return true + end + -- get_console():execute("vid_scale_preset st_scale_custom") + -- handler.scalePreset:SetCurrentOptValue() + end + return false + end + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r_scale_preset", _st) + ctl = xml:InitComboBox("video_adv:list_r_scale_preset", _st) + + handler:Register(ctl, "scalePreset") + handler.scalePreset = ctl + + table.insert(handler.m_preconditions, {func=scalePresetPrec, control=_st}) + handler:AddCallback("scalePreset", ui_events.LIST_ITEM_SELECT, reloadControls, nil) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_vid_scale", _st) + ctl = xml:InitTrackBar("video_adv:track_vid_scale", _st) + + local vidScalePrec = function(id) + if mode_4(id) then + local scale_mode = handler.scaleMode:CurrentID() + if scale_mode > 1 then + local scale_preset = handler.scalePreset:CurrentID() + local value = handler.scalePreset:GetValueOf(scale_preset) + return value == "st_scale_custom" + end + return true + end + return false + end + + table.insert(handler.m_preconditions, {func=vidScalePrec, control=_st}) + + local typeAAPrec = function(id) + if mode_4(id) then + local current_id = handler.scaleMode:CurrentID() + if current_id > 1 then + handler.hashedAplha:Enable(true) + return false + end + handler.hashedAplha:Enable(false) + handler.hashedAplha:SetCheck(false) + end + return true + end + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r_type_aa", _st) + ctl = xml:InitComboBox("video_adv:list_r_type_aa", _st) + table.insert(handler.m_preconditions, {func=typeAAPrec, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_cas_sharpening", _st) + xml:InitTrackBar("video_adv:track_cas_sharpening", _st) + table.insert(handler.m_preconditions, {func=mode_4, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r4_hashed_aref", _st) + ctl = xml:InitCheck ("video_adv:check_r4_hashed_aref", _st) + table.insert(handler.m_preconditions, {func=mode_4, control=_st}) + handler.hashedAplha = ctl + + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + + lineFrame(all_modes, "st_lights_options") + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_particles_distance", _st) + ctl = xml:InitTrackBar("video_adv:track_particles_distance", _st) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_light_distance", _st) + ctl = xml:InitTrackBar("video_adv:track_light_distance", _st) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_npc_torch", _st) + xml:InitCheck("video_adv:check_npc_torch", _st) + table.insert(handler.m_preconditions, {func=all_modes, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_volumetric_light", _st) + ctl = xml:InitCheck("video_adv:check_volumetric_light", _st) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r4_hud_shadows", _st) + ctl = xml:InitCheck ("video_adv:check_r4_hud_shadows", _st) + table.insert(handler.m_preconditions, {func=mode_4, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r_actor_shadow", _st) + ctl = xml:InitCheck ("video_adv:check_r_actor_shadow", _st) + table.insert(handler.m_preconditions, {func=all_modes, control=_st}) + + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + + lineFrame(mode_2, "st_sunlight_options") + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r2_sun", _st) + ctl = xml:InitCheck("video_adv:check_r2_sun", _st) + + handler:Register(ctl, "enableSun") + handler.enableSun = ctl + + local sunTable = {} + local enableSunFunc = function(id) + if mode_2(id) then + for _, control in pairs(sunTable) do + control:Enable(handler.enableSun:GetCheck()) + if control.GetCheck then + control:SetCheck(control:GetCheck() and handler.enableSun:GetCheck()) + end + end + return true + end + return false + end + + table.insert(handler.m_preconditions, {func=enableSunFunc, control=_st}) + handler:AddCallback("enableSun", ui_events.BUTTON_CLICKED, reloadControls, nil) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r2_sun_details", _st) + ctl = xml:InitCheck ("video_adv:check_r2_sun_details", _st) + + table.insert(sunTable, ctl) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r2_lights_details", _st) + ctl = xml:InitCheck ("video_adv:check_r2_lights_details", _st) + + table.insert(sunTable, ctl) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r2_cloud_shadows", _st) + ctl = xml:InitCheck ("video_adv:check_r2_cloud_shadows", _st) + + table.insert(sunTable, ctl) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r2_sun_quality", _st) + ctl = xml:InitComboBox("video_adv:list_r2_sun_quality", _st) + + table.insert(sunTable, ctl) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_sun_shafts", _st) + ctl = xml:InitComboBox("video_adv:combo_sun_shafts", _st) + + table.insert(sunTable, ctl) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_smap_size", _st) + ctl = xml:InitComboBox("video_adv:combo_smap_size", _st) + handler.combo_smap_size = ctl + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + + lineFrame(mode_2, "st_effects_options") + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_ao", _st) + ctl = xml:InitComboBox("video_adv:combo_ao_options", _st) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_soft_water", _st) + ctl = xml:InitCheck("video_adv:check_soft_water", _st) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_soft_particles", _st) + ctl = xml:InitCheck("video_adv:check_soft_particles", _st) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r3_dynamic_wet_surfaces", _st) + ctl = xml:InitCheck ("video_adv:check_r3_dynamic_wet_surfaces", _st) + table.insert(handler.m_preconditions, {func=mode_4, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_sslr_water", _st) + ctl = xml:InitCheck("video_adv:check_sslr_water", _st) + table.insert(handler.m_preconditions, {func=mode_4, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r3_volumetric_smoke", _st) + ctl = xml:InitCheck("video_adv:check_r3_volumetric_smoke", _st) + table.insert(handler.m_preconditions, {func=mode_4, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_r4_puddles", _st) + ctl = xml:InitCheck("video_adv:check_r4_puddles", _st) + table.insert(handler.m_preconditions, {func=mode_4, control=_st}) + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + + lineFrame(mode_2, "st_postprocess_options") + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_vignette", _st) + ctl = xml:InitCheck("video_adv:check_vignette", _st) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_aberration", _st) + ctl = xml:InitCheck("video_adv:check_aberration", _st) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_saturation", _st) + ctl = xml:InitCheck("video_adv:check_saturation", _st) + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_dof", _st) + ctl = xml:InitCheck("video_adv:check_dof", _st) + + handler:Register(ctl, "enableDof") + handler.enableDof = ctl + + table.insert(handler.m_preconditions, {func=mode_2, control=_st}) + handler:AddCallback("enableDof", ui_events.BUTTON_CLICKED, reloadControls, nil) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_dof_reload", _st) + ctl = xml:InitCheck("video_adv:check_dof_reload", _st) + handler.reloadDof = ctl + + local enableReloadDofFunc = function(id) + if mode_2(id) then + handler.reloadDof:Enable(handler.enableDof:GetCheck()) + handler.reloadDof:SetCheck(handler.reloadDof:GetCheck() and handler.enableDof:GetCheck()) + return true + end + return false + end + + table.insert(handler.m_preconditions, {func=enableReloadDofFunc, control=_st}) + + _st = xml:InitStatic("video_adv:templ_item", nil) + xml:InitStatic("video_adv:cap_dof_talk", _st) + ctl = xml:InitCheck("video_adv:check_dof_talk", _st) + handler.talkDof = ctl + + local enableTalkDofFunc = function(id) + if mode_2(id) then + handler.talkDof:Enable(handler.enableDof:GetCheck()) + handler.talkDof:SetCheck(handler.talkDof:GetCheck() and handler.enableDof:GetCheck()) + return true + end + return false + end + + table.insert(handler.m_preconditions, {func=enableTalkDofFunc, control=_st}) +end diff --git a/gamedata/scripts/ui_mp_main.script b/gamedata/scripts/ui_mp_main.script new file mode 100644 index 0000000..b284d41 --- /dev/null +++ b/gamedata/scripts/ui_mp_main.script @@ -0,0 +1,628 @@ +-- file: UI_MP_MAIN.SCRIPT +-- description: MP dialog with Join Game/Create Server/Options +-- created: 26.04.2005 +-- author: Serge Vynnychenko +-- mail: narrator@gsc-game.kiev.ua +-- +-- copyright 2005 GSC Game World + +class "mp_main" (CUIScriptWnd) + +function mp_main:__init() super() + self:InitControls() + self:InitCallBacks() + self.tab:SetActiveTab("client") +end + +function mp_main:__finalize() + +end + + +function mp_main:InitControls() + + self:SetWndRect (Frect():set(0,0,1024,768)) + + local xml = CScriptXmlInit() + xml:ParseFile ("ui_mm_mp.xml") + + + local bk = xml:InitStatic("background", self) + self:Enable (true) + local wrk_area = CUIWindow() + xml:InitWindow ("wrk_area", 0, wrk_area) + wrk_area:SetAutoDelete (true) + self:AttachChild (wrk_area) + + self.player_name = xml:InitMPPlayerName("edit_player_name", wrk_area) + xml:InitStatic ("cap_mode", wrk_area) + + self.dlg_join = ui_mm_mp_join.mp_join() + self.dlg_join:InitControls (0,0, xml, self) + wrk_area:AttachChild (self.dlg_join) + + self.dlg_options = ui_mm_mp_options.mp_options() + self.dlg_options:InitControls (0,0, xml, self) + self.dlg_options:Show (false) + wrk_area:AttachChild (self.dlg_options) + + self.dlg_server = ui_mm_mp_server.mp_server() + self.dlg_server:InitControls (0,0, xml, self) + self.dlg_server:Show (false) + wrk_area:AttachChild (self.dlg_server) + + self.dlg_demo = ui_mm_mp_demo.mp_demo() + self.dlg_demo:InitControls (0,0, xml, self) + self.dlg_demo:Show (false) + wrk_area:AttachChild (self.dlg_demo) + + + btn = xml:Init3tButton("btn_create", wrk_area) + self:Register (btn, "btn_create") + self.btn_create = btn + btn:Enable (false) + + btn = xml:Init3tButton("btn_play_demo", wrk_area) + self:Register (btn, "btn_play_demo") + self.btn_play_demo = btn + btn:Enable (false) + + btn = xml:Init3tButton("btn_join", wrk_area) + self:Register (btn, "btn_join") + self.btn_join = btn + + btn = xml:Init3tButton("btn_cancel", wrk_area) + self:Register (btn, "btn_cancel") + + self.tab = xml:InitTab("tab",wrk_area) + self:Register (self.tab, "tab") + + self.message_box = CUIMessageBoxEx() + self:Register (self.message_box, "msg_box") + + self.cap_download = xml:InitStatic ("download_static", wrk_area) + self.text_download = xml:InitStatic ("download_text", wrk_area) + self.download_progress = xml:InitProgressBar ("progress_download", wrk_area) + self.btn_cancel_download = xml:Init3tButton ("btn_cancel_download", wrk_area) + self:Register (self.btn_cancel_download, "btn_cancel_download") + +-- xml:InitStatic ("static_gs_logo",self) + + local _ver = xml:InitStatic ("static_version",self) + local mm = main_menu.get_main_menu() + _ver:TextControl():SetText ("ver. " .. mm:GetGSVer()) + + self.player_name:SetText ( mm:GetPlayerName() ) + + self.server_list:SetConnectionErrCb(connect_error_cb(self, mp_main.OnConnectError)) +end + +function mp_main:UpdateControls() + local opt = COptionsManager() + opt:SetCurrentValues("mm_mp_client") + opt:SetCurrentValues("mm_mp_server") + opt:SetCurrentValues("mm_mp_srv_filter") + + opt:SaveBackupValues("mm_mp_client") + opt:SaveBackupValues("mm_mp_server") + opt:SaveBackupValues("mm_mp_srv_filter") + + self.map_list:ClearList() + self.map_list:OnModeChange() + self.dlg_options:SetGameMode(self.map_list:GetCurGameType(), self) + + local mm = main_menu.get_main_menu() + + self.player_name:SetText ( mm:GetPlayerName() ) + + self:OnGameModeChange() + + if( level.present() ) then + self.btn_create:Enable (false) + self.btn_join:Enable (false) + self.btn_direct_ip:Enable(false) + self.tab:Enable (false) + self.cdkey:Enable (false) + self.player_name:Enable (false) + end +end + +function mp_main:InitCallBacks() + self:AddCallback("btn_cancel", ui_events.BUTTON_CLICKED, self.OnBtn_Calncel, self) + self:AddCallback("btn_create", ui_events.BUTTON_CLICKED, self.OnBtn_Create, self) + self:AddCallback("btn_join", ui_events.BUTTON_CLICKED, self.OnBtn_Join, self) + + self:AddCallback("check_empty", ui_events.BUTTON_CLICKED, self.OnFilterChange,self) + self:AddCallback("check_full", ui_events.BUTTON_CLICKED, self.OnFilterChange,self) + self:AddCallback("check_with_pass", ui_events.BUTTON_CLICKED, self.OnFilterChange,self) + self:AddCallback("check_without_pass", ui_events.BUTTON_CLICKED, self.OnFilterChange,self) + self:AddCallback("check_without_ff", ui_events.BUTTON_CLICKED, self.OnFilterChange,self) + self:AddCallback("check_listen_servers",ui_events.BUTTON_CLICKED, self.OnFilterChange,self) + + self:AddCallback("btn_direct_ip", ui_events.BUTTON_CLICKED, self.OnBtn_DirectIP,self) + + -- ui_mm_mp_options + self:AddCallback("spin_game_mode", ui_events.LIST_ITEM_SELECT, self.OnGameModeChange,self) + + self:AddCallback("tab", ui_events.TAB_CHANGED, self.OnTabChange, self) + -- ui_mm_mp_join + self:AddCallback("btn_refresh", ui_events.BUTTON_CLICKED, self.OnBtn_Refresh, self) + self:AddCallback("btn_quick_refresh", ui_events.BUTTON_CLICKED, self.OnBtn_RefreshQuick,self) + self:AddCallback("btn_server_info", ui_events.BUTTON_CLICKED, self.OnBtn_SrvInfo,self) + self:AddCallback("radio_net_conn", ui_events.TAB_CHANGED, self.OnRadio_NetChanged,self) + + -- msg_box + self:AddCallback("msg_box", ui_events.MESSAGE_BOX_YES_CLICKED, self.OnDirectIP_yes,self) + + self:AddCallback("edit_cd_key", ui_events.EDIT_TEXT_COMMIT, self.OnCDKeyChanged, self) + self:AddCallback("edit_player_name", ui_events.EDIT_TEXT_COMMIT, self.OnPlayerNameChanged, self) + + self:AddCallback("btn_cancel_download", ui_events.BUTTON_CLICKED, self.OnBtn_CancelDownload, self) + -- demo playing + + self:AddCallback("demo_list_window", ui_events.LIST_ITEM_CLICKED, self.dlg_demo.SelectDemoFile, self.dlg_demo) + self:AddCallback("demo_list_window", ui_events.WINDOW_LBUTTON_DB_CLICK, self.dlg_demo.PlaySelectedDemo, self.dlg_demo) + + self:AddCallback("btn_play_demo", ui_events.BUTTON_CLICKED, self.dlg_demo.PlaySelectedDemo, self.dlg_demo) + self:AddCallback("demo_file_name", ui_events.EDIT_TEXT_COMMIT, self.dlg_demo.OnRenameDemo, self.dlg_demo) + self:AddCallback("demo_message_box", ui_events.MESSAGE_BOX_YES_CLICKED, self.dlg_demo.OnMsgBoxYes, self.dlg_demo) + self:AddCallback("demo_message_box", ui_events.MESSAGE_BOX_OK_CLICKED, self.dlg_demo.OnMsgBoxYes, self.dlg_demo) + + self:AddCallback("check_demosave", ui_events.BUTTON_CLICKED, self.OnDemoSaveChange, self) +end + +function mp_main:OnBtn_DirectIP() + + self.message_box:InitMessageBox("message_box_direct_ip") + self.message_box:ShowDialog(true) +end + +function mp_main:OnDirectIP_yes() + + if (string.len(self.message_box:GetHost()) ~= 0) then + local cmd = "start client(" .. self.message_box:GetHost() .. "/name=" .. self.player_name:GetText() .. "/psw=" .. self.message_box:GetPassword() .. ")" + local console = get_console() + console:execute(cmd) + end + +end + +function mp_main:OnCDKeyChanged() + local cmdstr = "" + tmp = self.cdkey:GetText() + + if tmp=="" then + tmp = "clear" + end + + cmdstr = "cdkey " .. tmp + local console = get_console() + console:execute(cmdstr) +end + +function mp_main:OnPlayerNameChanged() + local tmp = self.player_name:GetText() + local cmdstr = "name " .. tmp + local console = get_console() + console:execute(cmdstr) +end + +function mp_main:ChangeNickOperationResult(profile, descr) + -- assert(profile) +end + +function mp_main:OnBtn_SrvInfo() + self.server_list:ShowServerInfo() +end + +function mp_main:OnGameModeChange() + self.map_list:OnModeChange() + self.dlg_options:SetGameMode(self.map_list:GetCurGameType(), self) +end + +function mp_main:OnFilterChange() + local sf = SServerFilters() + sf.empty = self.filters.btn_check_empty:GetCheck() + sf.full = self.filters.btn_check_full:GetCheck() + sf.with_pass = self.filters.btn_check_with_pass:GetCheck() + sf.without_pass = self.filters.btn_check_without_pass:GetCheck() + sf.without_ff = self.filters.btn_check_without_ff:GetCheck() + sf.listen_servers = self.filters.btn_check_listen_servers:GetCheck() + + self.server_list:SetFilters(sf) + +end + +function mp_main:OnDemoSaveChange() + local console = get_console() + if (self.check_demosave:GetCheck()) then + console:execute("cl_mpdemosave 1") + else + console:execute("cl_mpdemosave 0") + end +end + +function mp_main:OnTabChange() + self.dlg_join:Show(false) + self.dlg_options:Show(false) + self.dlg_server:Show(false) + self.dlg_demo:Show(false) + + self.btn_join:Show(false) + self.btn_create:Show(false) + self.btn_play_demo:Show(false) + + local i = self.tab:GetActiveId() + if i == "client" then + self.dlg_join:Show(true) + self.btn_join:Show(true) + elseif i == "options" then + self.dlg_options:Show(true) + self.btn_create:Show(true) + elseif i == "server" then + self.map_list:LoadMapList() + self.map_list:OnModeChange() + self.dlg_server:Show(true) + self.btn_create:Show(true) + elseif i == "demo" then + self.dlg_demo:FillList() + self.dlg_demo:Show(true) + self.btn_play_demo:Show(true) + end +end + +function mp_main:OnRadio_NetChanged() + local i = self.radio_net_connection:GetActiveId() + self.server_list:NetRadioChanged(i~="internet") + + if i == "internet" then + self.server_list:RefreshList(false) + else + self.server_list:RefreshList(true) + end + + self:OnFilterChange() +end + +function mp_main:OnBtn_Refresh() + local i = self.radio_net_connection:GetActiveId() + if i == "internet" then + self.server_list:RefreshList(false) + else + self.server_list:RefreshList(true) + end + self:OnFilterChange() +end + +function mp_main:OnBtn_RefreshQuick() + self.server_list:RefreshQuick() +end + +function mp_main:OnBtn_Calncel() + local opt = COptionsManager() + opt:UndoGroup("mm_mp_client") + opt:UndoGroup("mm_mp_server") + opt:UndoGroup("mm_mp_srv_filter") + + self.owner:ShowDialog(true) + self:HideDialog() + self.owner:Show (true) +end + +function mp_main:OnBtn_Create() + if self.map_list:IsEmpty() then + self.message_box:InitMessageBox("select_map") + self.message_box:ShowDialog(true) + return + end + + local mm = main_menu.get_main_menu() + + local opt = COptionsManager() + local console = get_console() + opt:SaveValues("mm_mp_server") + opt:SaveValues("mm_mp_client") + opt:SaveValues("mm_mp_srv_filter") + self.map_list:SaveMapList() + self:GatherServerData() + if self.check_dedicated:GetCheck() then + self.map_list:StartDedicatedServer() + else + local command = self.map_list:GetCommandLine(self.player_name:GetText()) + console:execute("main_menu off") + console:execute(command) + end +end + +function mp_main:GatherServerData() + local cmdstr = "" + local tmp; + + -- server name ------------------------------------------------------------------ + tmp = self.edit_server_name:GetText() + if string.len(tmp) > 0 then + cmdstr = "/hname=" .. tmp + end + -- password --------------------------------------------------------------------- + tmp = self.edit_password:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/psw=" .. tmp + end + -- max players ------------------------------------------------------------------ + tmp = self.spin_max_players:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/maxplayers=" .. tmp + end + -- public server ---------------------------------------------------------------- + tmp = self.check_public_server:GetCheck() + if true == tmp then + cmdstr = cmdstr .. "/public=1" + end + + tmp = self.spin_max_ping:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/maxping=" .. tmp + end + + -- spectator -------------------------------------------------------------------- + if self.check_spectator:GetCheck() then + tmp = self.spin_spectator:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/spectr=" .. tmp + end + end + + -- spectator options -- + tmp = 0; + if self.check_spec_freefly:GetCheck() then + tmp = tmp + 1 + end + if self.check_spec_firsteye:GetCheck() then + tmp = tmp + 2 + end + if self.check_spec_lookat:GetCheck() then + tmp = tmp + 4 + end + if self.check_spec_freelook:GetCheck() then + tmp = tmp + 8 + end + if self.check_spec_teamonly:GetCheck() then + tmp = tmp + 16 + end + + cmdstr = cmdstr .. "/spectrmds=" .. tmp + + -- allow voting ------------------------------------------------------------------ + tmp = self.check_allow_voting:GetCheck() + if true == tmp then + cmdstr = cmdstr .. "/vote=1" + end + -- damage block ------------------------------------------------------------------ + tmp = self.spin_damage_block:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/dmgblock=" .. tmp + end + if self.check_damage_block:GetCheck() then + cmdstr = cmdstr .. "/dmbi=1" + end + -- frag limit --------------------------------------------------------------------- + tmp = self.spin_frag_limit:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/fraglimit=" .. tmp + end + -- time limit --------------------------------------------------------------------- + tmp = self.spin_time_limit:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/timelimit=" .. tmp + end + -- friendly fire ------------------------------------------------------------------ + tmp = self.spin_friendly_fire:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/ffire=" .. tmp + end + -- auto team balance -------------------------------------------------------------- + if self.check_auto_team_balance:GetCheck() then + cmdstr = cmdstr .. "/abalance=1" + end + -- auto team swap -------------------------------------------------------------- + if self.check_auto_team_swap:GetCheck() then + cmdstr = cmdstr .. "/aswap=1" + end + -- Force respawn -------------------------------------------------------------- + if self.tab_respawn:GetActiveId() == "reinforcement" then + tmp = self.spin_force_respawn:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/frcrspwn=" .. tmp + end + end + + -- ARTEFACTHUNT only ---------------------------------------------- + if GAME_TYPE.GAME_UNKNOWN ~= 0 then + if self.map_list:GetCurGameType() == GAME_TYPE.eGameIDArtefactHunt then + -- number of artefacts --------------------------------------------------------- + tmp = self.spin_artefacts_num:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/anum=" .. tmp + end + -- aretefact delay -------------------------------------------------------------- + tmp = self.spin_artefact_delay:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/ardelta=" .. tmp + end + -- artefact stay ---------------------------------------------------------------- + tmp = self.spin_artefact_stay:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/astime=" .. tmp + end + + if self.tab_respawn:GetActiveId() == "artefactcapture" then -- artefact capture selected + cmdstr = cmdstr .. "/reinf=-1" + else + tmp = self.spin_reinforcement:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/reinf=" .. tmp + end + end + end + -- CAPTURETHEARTEFACT only ---------------------------------------------- + if self.map_list:GetCurGameType() == GAME_TYPE.eGameIDCaptureTheArtefact then + -- number of artefacts --------------------------------------------------------- + tmp = self.spin_artefacts_num:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/anum=" .. tmp + end + + tmp = self.spin_reinforcement:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/reinf=" .. tmp + end + + tmp = self.spin_artreturn_time:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/artrettime=" .. tmp + end + + if self.check_activated_return:GetCheck() then + cmdstr = cmdstr .. "/actret=1" + end + end + elseif GAME_TYPE.GAME_UNKNOWN == 0 then + if self.map_list:GetCurGameType() == GAME_TYPE.GAME_ARTEFACTHUNT then + -- number of artefacts --------------------------------------------------------- + tmp = self.spin_artefacts_num:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/anum=" .. tmp + end + -- aretefact delay -------------------------------------------------------------- + tmp = self.spin_artefact_delay:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/ardelta=" .. tmp + end + -- artefact stay ---------------------------------------------------------------- + tmp = self.spin_artefact_stay:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/astime=" .. tmp + end + + if self.tab_respawn:GetActiveId() == "artefactcapture" then -- artefact capture selected + cmdstr = cmdstr .. "/reinf=-1" + else + tmp = self.spin_reinforcement:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/reinf=" .. tmp + end + end + end + end + + -- friendly indicators -------------------------------------------------------------- + if self.check_friendly_indicators:GetCheck() then + cmdstr = cmdstr .. "/fi=1" .. tmp + end + -- friendly indicators -------------------------------------------------------------- + if self.check_friendly_names:GetCheck() then + cmdstr = cmdstr .. "/fn=1" .. tmp + end + -- anomaly time --------------------------------------------------------------------- + if false == self.check_no_anmalies:GetCheck() then + tmp = self.spin_anomaly_time:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/ans=1/anslen=" .. tmp + end + else + cmdstr = cmdstr .. "/ans=0" + end + + -- pda hunt ------------------------------------------------------------------------- + if self.check_pda_hunt:GetCheck() then + cmdstr = cmdstr .. "/pdahunt=1" + end + + -- warm up time --------------------------------------------------------------------- + tmp = self.spin_warm_up_time:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/warmup=" .. tmp + end + -- rate of weather change ----------------------------------------------------------- + tmp = self.spin_rate_of_change:GetText() + if string.len(tmp) > 0 then + cmdstr = cmdstr .. "/etimef=" .. tmp + end + + self.map_list:SetServerParams(cmdstr) +end + +function mp_main:GoToProfileTab() + self.tab:SetActiveTab("profile") +end + +function mp_main:OnConnectError(err_code, descr) + self.message_box:InitMessageBox("message_box_error") + if (descr == "") then + descr = "mp_gp_connect_error" + end + self.message_box:SetText(game.translate_string(descr)) + + --if ((err_code == CServerList.ece_unique_nick_not_registred) or + -- (err_code == CServerList.ece_unique_nick_expired)) then + self:GoToProfileTab() + self.message_box:ShowDialog(true) + +end + +function mp_main:OnBtn_Join() + local opt = COptionsManager() + opt:SaveValues("mm_mp_client") + opt:SaveValues("mm_mp_server") + opt:SaveValues("mm_mp_srv_filter") + + self.server_list:SetPlayerName(self.player_name:GetText()) + self.server_list:ConnectToSelected() +end + +function mp_main:OnKeyboard(dik, keyboard_action) + CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) + + local bind = dik_to_bind(dik) + local console = get_console() + + if keyboard_action == ui_events.WINDOW_KEY_PRESSED then + if dik == DIK_keys.DIK_ESCAPE then + self.owner:ShowDialog(true) --new(show main window) + self:HideDialog() + self.owner:Show(true) + end + end + + return true +end + +function mp_main:Update() + CUIScriptWnd.Update(self) + + local mm = main_menu.get_main_menu() + local sss = mm:GetPatchProgress() + + if sss:GetInProgress() then + self.text_download:Show (true) + self.cap_download:Show (true) + self.download_progress:Show (true) + local _progr = sss:GetProgress() + self.download_progress:SetProgressPos (_progr) + local str = string.format("%.0f%%(%s)",_progr,sss:GetFlieName()) + self.text_download:TextControl():SetText(str) + self.btn_cancel_download:Show (true) + else + self.text_download:Show (false) + self.cap_download:Show (false) + self.download_progress:Show (false) + self.btn_cancel_download:Show (false) + end +end + + + +function mp_main:OnBtn_CancelDownload() + local mm = main_menu.get_main_menu() + mm:CancelDownload() +end diff --git a/gamedata/scripts/ui_save_dialog.script b/gamedata/scripts/ui_save_dialog.script new file mode 100644 index 0000000..8934813 --- /dev/null +++ b/gamedata/scripts/ui_save_dialog.script @@ -0,0 +1,238 @@ +-- File: UI_SAVE_DIALOG.SCRIPT +-- Description: Save Dialog for STALKER +-- Created: 27.9.2004 +-- Author: Serhiy Vynnychenko (narrator@gsc-game.kiev.ua) +-- Copyright: 2004 GSC Game World +-- Version: 1.0 +-- Modified: Serhiy Pryshchepa (peacemaker@gsc-game.kiev.ua) +local saved_game_extension = ui_load_dialog.saved_game_extension + +class "save_item" (CUIListBoxItem) + +function save_item:__init(height) super(height) + self:SetTextColor (GetARGB(255, 170, 170, 170)) + self.fn = self:GetTextItem() + self.fn:SetFont (GetFontLetterica18Russian()) + self.fn:SetEllipsis (true) +end + +class "save_dialog" (CUIScriptWnd) + +function save_dialog:__init() super() + self:InitControls () + self:InitCallBacks () + self:FillList () +end + +function save_dialog:__finalize() + +end + +function save_dialog:FillList() + self.list_box:RemoveAll() + local flist = getFS():file_list_open_ex("$game_saves$",FS.FS_ListFiles,"*"..saved_game_extension) + local f_cnt = flist:Size() + + flist:Sort(FS.FS_sort_by_modif_down) + + for it=0, f_cnt-1 do + local file = flist:GetAt(it) + local file_name = string.sub(file:NameFull(), 0, (string.len(file:NameFull()) - string.len(saved_game_extension))) + local date_time = "[" .. file:ModifDigitOnly() .. "]" + --menu_item = .. + self:AddItemToList(file_name, date_time) + end +end + +function save_dialog:InitControls() + self:SetWndRect(Frect():set(0,0,1024,768)) + + self.list_file_font = GetFontMedium() + self.list_date_font = GetFontMedium() + + local xml = CScriptXmlInit() + xml:ParseFile("ui_mm_save_dlg.xml") + + local ctrl + + xml:InitWindow ("background", 0, self) + + ctrl = CUIWindow() + xml:InitWindow ("file_item:main", 0, ctrl) + + self.file_item_main_sz = vector2():set(ctrl:GetWidth(),ctrl:GetHeight()) + + xml:InitWindow ("file_item:fn",0,ctrl) + self.file_item_fn_sz = vector2():set(ctrl:GetWidth(),ctrl:GetHeight()) + + xml:InitWindow ("file_item:fd",0,ctrl) + self.file_item_fd_sz = vector2():set(ctrl:GetWidth(),ctrl:GetHeight()) + + + self.form = xml:InitStatic ("form", self) + + xml:InitTextWnd ("form:caption", self.form) + + self.editbox = xml:InitEditBox("form:edit", self.form) + self:Register (self.editbox, "edit_filename") + + xml:InitFrame ("form:list_frame", self.form) + + self.list_box = xml:InitListBox ("form:list", self.form) + self.list_box:ShowSelectedItem (true) + self:Register (self.list_box, "list_window") + + ctrl = xml:Init3tButton ("form:btn_save", self.form) + self:Register (ctrl, "button_ok") + + ctrl = xml:Init3tButton ("form:btn_delete", self.form) + self:Register (ctrl, "button_del") + + ctrl = xml:Init3tButton ("form:btn_cancel", self.form) + self:Register (ctrl, "button_cancel") + + self.message_box = CUIMessageBoxEx() + self:Register (self.message_box,"message_box") + + self.mbox_mode = 0 +end + +function save_dialog:InitCallBacks() + -- main frame buttons + self:AddCallback("button_ok", ui_events.BUTTON_CLICKED, self.OnButton_ok_clicked, self) + self:AddCallback("button_cancel", ui_events.BUTTON_CLICKED, self.OnButton_cancel_clicked, self) + self:AddCallback("button_del", ui_events.BUTTON_CLICKED, self.OnButton_del_clicked, self) + + self:AddCallback("message_box", ui_events.MESSAGE_BOX_YES_CLICKED, self.OnMsgYes, self) + self:AddCallback("list_window", ui_events.LIST_ITEM_CLICKED, self.OnListItemClicked, self) +end + +function save_dialog:OnListItemClicked() + if self.list_box:GetSize()==0 then return end + + local item = self.list_box:GetSelectedItem() + + if item==nil then return end + + local item_text = item.fn:GetText() + self.editbox:SetText (item_text) +end + +function save_dialog:OnMsgYes() + if self.mbox_mode == 1 then + self:SaveFile(self.new_save) + + self.owner:ShowDialog(true) + self:HideDialog() + self.owner:Show(true) + + elseif self.mbox_mode == 2 then + self:delete_selected_file() + end +end + +function save_dialog:OnButton_del_clicked() + if self.list_box:GetSize()==0 then return end + + local item = self.list_box:GetSelectedItem() + if item == nil then return end + + self.mbox_mode = 2 + self.message_box:InitMessageBox("message_box_delete_file_name") + self.message_box:ShowDialog(true) +end + +function save_dialog:delete_selected_file() + if self.list_box:GetSize()==0 then return end + + local index = self.list_box:GetSelectedIndex() + + if index == -1 then return end + + local item = self.list_box:GetItemByIndex(index) + local filename = item.fn:GetText() + + ui_load_dialog.delete_save_game(filename) + + self.list_box:RemoveItem(item) + self:OnListItemClicked() +end + +function save_dialog:OnButton_ok_clicked() + -- prepare message box + + -- Get file name + self.new_save = self.editbox:GetText() + + -- check for empty name + if string.len(self.new_save) == 0 then + self.mbox_mode = 0 + self.message_box:InitMessageBox("message_box_empty_file_name") + self.message_box:ShowDialog(true) + return + end + + -- check for match name + local f = getFS() + local flist = f:file_list_open("$game_saves$",FS.FS_ListFiles) + local file_struct = f:exist("$game_saves$", self.new_save .. saved_game_extension ) + + if file_struct ~= nil then + self.mbox_mode = 1 + self.message_box:InitMessageBox("message_box_file_already_exist") + self.message_box:ShowDialog(true) + + flist:Free() + return + end + flist:Free() + self:SaveFile(self.new_save) + + self.owner:ShowDialog(true) + self:HideDialog() + self.owner:Show(true) +end + +function save_dialog:OnButton_cancel_clicked() + self.owner:ShowDialog(true) + self:HideDialog() + self.owner:Show(true) +end + +function save_dialog:OnKeyboard(dik, keyboard_action) --virtual function + CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) + local bind = dik_to_bind(dik) + if bind == key_bindings.kQUIT then + self:OnButton_cancel_clicked() + else + + DIK_RETURN = 40 -- IX-Ray: Fixed DIK_RETURN + + if dik == DIK_RETURN and keyboard_action == ui_events.WINDOW_KEY_PRESSED then + self:OnButton_ok_clicked() + end + end + return true +end + +function save_dialog:AddItemToList(file_name, date_time) + local _itm = save_item(self.file_item_main_sz.y) + _itm:SetWndSize (self.file_item_main_sz) + + _itm.fn:SetWndPos (vector2():set(0,0)) + _itm.fn:SetWndSize (self.file_item_fn_sz) + _itm.fn:SetText (file_name) + + _itm.fage = _itm:AddTextField(date_time, self.file_item_fd_sz.x) + _itm.fage:SetFont (GetFontLetterica16Russian()) + _itm.fage:SetWndPos (vector2():set(self.file_item_fn_sz.x+4, 0)) + + self.list_box:AddExistingItem(_itm) +end + +function save_dialog:SaveFile(fileName) + if nil~= fileName then + local console = get_console() + console:execute("save " .. fileName) + end +end diff --git a/gamedata/scripts/xr_animpoint_predicates.script b/gamedata/scripts/xr_animpoint_predicates.script new file mode 100644 index 0000000..cd60417 --- /dev/null +++ b/gamedata/scripts/xr_animpoint_predicates.script @@ -0,0 +1,266 @@ +local smart_table = { + "zat_stalker_base_smart", + "jup_b41", + "jup_a6", + "pri_a16", + } + +local eatable_visuals = { + ["actors\\stalker_hero\\stalker_hero_1"] = true, + ["actors\\stalker_hero\\stalker_hero_novice_1"] = true, + ["actors\\stalker_hero\\stalker_hero_stalker_1"] = true, + ["actors\\stalker_hero\\stalker_hero_dolg_1"] = true, + ["actors\\stalker_hero\\stalker_hero_dolg_2"] = true, + ["actors\\stalker_hero\\stalker_hero_freedom_1"] = true, + ["actors\\stalker_hero\\stalker_hero_freedom_2"] = true, + ["actors\\stalker_hero\\stalker_hero_specops"] = true, + ["actors\\stalker_hero\\stalker_hero_military"] = true, + ["actors\\stalker_hero\\stalker_hero_neutral_nauchniy"] = true, + ["actors\\stalker_hero\\stalker_hero_cs_heavy"] = true, + ["actors\\stalker_hero\\stalker_hero_exo"] = true, + ["actors\\stalker_bandit\\stalker_bandit_3"] = true, + ["actors\\stalker_bandit\\stalker_bandit_3_face_1"] = true, + ["actors\\stalker_bandit\\stalker_bandit_3_mask"] = true, + ["actors\\stalker_bandit\\stalker_bandit_4"] = true, + ["actors\\stalker_dolg\\stalker_dolg_2_face_1"] = true, + ["actors\\stalker_dolg\\stalker_dolg_1_face_1"] = true, + ["actors\\stalker_dolg\\stalker_dolg_3_face_1"] = true, + ["actors\\stalker_freedom\\stalker_freedom_1_face_1"] = true, + ["actors\\stalker_freedom\\stalker_freedom_2_face_1"] = true, + ["actors\\stalker_freedom\\stalker_freedom_2_face_2"] = true, + ["actors\\stalker_freedom\\stalker_freedom_3"] = true, + ["actors\\stalker_freedom\\stalker_freedom_3_face_1"] = true, + ["actors\\stalker_monolith\\stalker_monolith_1_face_1"] = true, + ["actors\\stalker_nebo\\stalker_nebo_2_face_1"] = true, + ["actors\\stalker_neutral\\stalker_neutral_1_face_1"] = true, + ["actors\\stalker_neutral\\stalker_neutral_1_face_2"] = true, + ["actors\\stalker_neutral\\stalker_neutral_1_face_3"] = true, + ["actors\\stalker_bandit\\stalker_bandit_3_face_3"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_1"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_2"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_3"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_4"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_5"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_6"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_7"] = true, + ["actors\\stalker_bandit\\stalker_bandit_3_face_2"] = true, + ["actors\\stalker_neutral\\stalker_neutral_3_face_1"] = true, + ["actors\\stalker_neutral\\stalker_neutral_nauchniy_face_1"] = true, + ["actors\\stalker_neutral\\stalker_neutral_nauchniy_face_3"] = true, + ["actors\\stalker_soldier\\stalker_soldier_1"] = true, + ["actors\\stalker_soldier\\stalker_soldier_1_face_1"] = true, + ["actors\\stalker_soldier\\stalker_solider_2"] = true, + ["actors\\stalker_soldier\\stalker_solider_2_face_1"] = true, + ["actors\\stalker_soldier\\stalker_solider_3_face_1"] = true, + ["actors\\stalker_soldier\\stalker_solider_ecolog_face_1"] = true, + ["actors\\stalker_ucheniy\\stalker_ucheniy_1_face_1"] = true, + ["actors\\stalker_ucheniy\\stalker_ucheniy_1_face_2"] = true, + ["actors\\stalker_zombied\\stalker_zombied_1"] = true, + ["actors\\stalker_zombied\\stalker_zombied_3"] = true, + ["actors\\stalker_neutral\\stalker_neutral_nauchniy_face_2"] = true +} + +local harmonica_visuals = { + ["actors\\stalker_hero\\stalker_hero_1"] = true, + ["actors\\stalker_hero\\stalker_hero_novice_1"] = true, + ["actors\\stalker_hero\\stalker_hero_stalker_1"] = true, + ["actors\\stalker_hero\\stalker_hero_dolg_1"] = true, + ["actors\\stalker_hero\\stalker_hero_dolg_2"] = true, + ["actors\\stalker_hero\\stalker_hero_freedom_1"] = true, + ["actors\\stalker_hero\\stalker_hero_freedom_2"] = true, + ["actors\\stalker_hero\\stalker_hero_specops"] = true, + ["actors\\stalker_hero\\stalker_hero_military"] = true, + ["actors\\stalker_hero\\stalker_hero_neutral_nauchniy"] = true, + ["actors\\stalker_hero\\stalker_hero_cs_heavy"] = true, + ["actors\\stalker_hero\\stalker_hero_exo"] = true, + ["actors\\stalker_bandit\\stalker_bandit_1"] = true, + ["actors\\stalker_bandit\\stalker_bandit_2"] = true, + ["actors\\stalker_bandit\\stalker_bandit_3"] = true, + ["actors\\stalker_bandit\\stalker_bandit_3_face_1"] = true, + ["actors\\stalker_bandit\\stalker_bandit_3_mask"] = true, + ["actors\\stalker_bandit\\stalker_bandit_4"] = true, + ["actors\\stalker_dolg\\stalker_dolg_2_face_1"] = true, + ["actors\\stalker_dolg\\stalker_dolg_1_face_1"] = true, + ["actors\\stalker_dolg\\stalker_dolg_2_mask"] = true, + ["actors\\stalker_dolg\\stalker_dolg_3_face_1"] = true, + ["actors\\stalker_freedom\\stalker_freedom_1_face_1"] = true, + ["actors\\stalker_freedom\\stalker_freedom_2_face_1"] = true, + ["actors\\stalker_freedom\\stalker_freedom_2_face_2"] = true, + ["actors\\stalker_freedom\\stalker_freedom_2_mask"] = true, + ["actors\\stalker_freedom\\stalker_freedom_3"] = true, + ["actors\\stalker_freedom\\stalker_freedom_3_face_1"] = true, + ["actors\\stalker_monolith\\stalker_monolith_1_face_1"] = true, + ["actors\\stalker_nebo\\stalker_nebo_2_face_1"] = true, + ["actors\\stalker_neutral\\stalker_neutral_1"] = true, + ["actors\\stalker_neutral\\stalker_neutral_1_face_1"] = true, + ["actors\\stalker_neutral\\stalker_neutral_1_face_2"] = true, + ["actors\\stalker_neutral\\stalker_neutral_1_face_3"] = true, + ["actors\\stalker_bandit\\stalker_bandit_3_face_3"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_1"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_2"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_3"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_4"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_5"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_6"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_face_7"] = true, + ["actors\\stalker_bandit\\stalker_bandit_3_face_2"] = true, + ["actors\\stalker_neutral\\stalker_neutral_2_mask"] = true, + ["actors\\stalker_neutral\\stalker_neutral_3_face_1"] = true, + ["actors\\stalker_neutral\\stalker_neutral_nauchniy_face_1"] = true, + ["actors\\stalker_neutral\\stalker_neutral_nauchniy_face_3"] = true, + ["actors\\stalker_soldier\\stalker_soldier_1"] = true, + ["actors\\stalker_soldier\\stalker_soldier_1_face_1"] = true, + ["actors\\stalker_soldier\\stalker_solider_2"] = true, + ["actors\\stalker_soldier\\stalker_solider_2_face_1"] = true, + ["actors\\stalker_soldier\\stalker_solider_3_face_1"] = true, + ["actors\\stalker_soldier\\stalker_solider_ecolog_face_1"] = true, + ["actors\\stalker_ucheniy\\stalker_ucheniy_1_face_1"] = true, + ["actors\\stalker_ucheniy\\stalker_ucheniy_1_face_2"] = true, + ["actors\\stalker_zombied\\stalker_zombied_1"] = true, + ["actors\\stalker_zombied\\stalker_zombied_2"] = true, + ["actors\\stalker_zombied\\stalker_zombied_3"] = true, + ["actors\\stalker_zombied\\stalker_zombied_4"] = true, + ["actors\\stalker_neutral\\stalker_neutral_nauchniy_face_2"] = true +} + +-------------------------------------------------------------------------------- +-- Predicate functions for xr_animpoint actions -------------------------------- +-------------------------------------------------------------------------------- +function const_predicate_true(npc_id) + return true +end + +function animpoint_predicate_bread(npc_id) + if(db.storage[npc_id] and db.storage[npc_id].object and eatable_visuals[db.storage[npc_id].object:get_visual_name()] and db.storage[npc_id].object:object("bread")) == true then + return true + end + return false +end + +function animpoint_predicate_kolbasa(npc_id) + if(db.storage[npc_id] and db.storage[npc_id].object and eatable_visuals[db.storage[npc_id].object:get_visual_name()] and db.storage[npc_id].object:object("kolbasa")) then + return true + end + return false +end + +function animpoint_predicate_vodka(npc_id) + if(db.storage[npc_id] and db.storage[npc_id].object and eatable_visuals[db.storage[npc_id].object:get_visual_name()] and db.storage[npc_id].object:object("vodka")) then + return true + end + return false +end + +function animpoint_predicate_energy(npc_id) + if(db.storage[npc_id] and db.storage[npc_id].object and eatable_visuals[db.storage[npc_id].object:get_visual_name()] and db.storage[npc_id].object:object("energy_drink")) then + return true + end + return false +end + +function animpoint_predicate_guitar(npc_id, is_in_camp) + --printf(" predicate_guitar %s", npc_id) + --printf(" registred_camp %s", tostring(is_in_camp)) + if is_in_camp == true and db.storage[npc_id] and db.storage[npc_id].object and db.storage[npc_id].object:object("guitar_a") then + --printf(" return true") + return true + end + --printf(" return false") + return false +end + +function animpoint_predicate_harmonica(npc_id, is_in_camp) + --printf(" predicate_harmonica %s", npc_id) + --printf(" registred_camp %s", tostring(is_in_camp)) + if is_in_camp == true and db.storage[npc_id] and db.storage[npc_id].object and harmonica_visuals[db.storage[npc_id].object:get_visual_name()] and db.storage[npc_id].object:object("harmonica_a") then + --printf(" return true") + return true + end + --printf(" return false") + return false +end + + +function animpoint_predicate_weapon(npc_id) + if(db.storage[npc_id] and db.storage[npc_id].object) then + local smart = xr_gulag.get_npc_smart(db.storage[npc_id].object) + if(smart) then + for k,v in pairs(smart_table) do + if smart:name() == v then + return false + end + end + end + end + return true +end + +-------------------------------------------------------------------------------- +-- Associative table (smartcover - animation) ---------------------------------- +-------------------------------------------------------------------------------- +associations = { + animpoint_stay_wall = { + {name = "animpoint_stay_wall", predicate = xr_animpoint_predicates.const_predicate_true}, + {name = "animpoint_stay_wall_eat_bread", predicate = xr_animpoint_predicates.animpoint_predicate_bread}, + {name = "animpoint_stay_wall_eat_kolbasa", predicate = xr_animpoint_predicates.animpoint_predicate_kolbasa}, + {name = "animpoint_stay_wall_drink_vodka", predicate = xr_animpoint_predicates.animpoint_predicate_vodka}, + {name = "animpoint_stay_wall_drink_energy", predicate = xr_animpoint_predicates.animpoint_predicate_energy}, +-- {name = "animpoint_stay_wall_guitar", predicate = xr_animpoint_predicates.animpoint_predicate_guitar}, +-- {name = "animpoint_stay_wall_harmonica", predicate = xr_animpoint_predicates.animpoint_predicate_harmonica}, + {name = "animpoint_stay_wall_weapon", predicate = xr_animpoint_predicates.animpoint_predicate_weapon}, + }, + animpoint_stay_table = { + {name = "animpoint_stay_table", predicate = xr_animpoint_predicates.const_predicate_true}, + {name = "animpoint_stay_table_eat_bread", predicate = xr_animpoint_predicates.animpoint_predicate_bread}, + {name = "animpoint_stay_table_eat_kolbasa", predicate = xr_animpoint_predicates.animpoint_predicate_kolbasa}, + {name = "animpoint_stay_table_drink_vodka", predicate = xr_animpoint_predicates.animpoint_predicate_vodka}, + {name = "animpoint_stay_table_drink_energy", predicate = xr_animpoint_predicates.animpoint_predicate_energy}, +-- {name = "animpoint_stay_table_guitar", predicate = xr_animpoint_predicates.animpoint_predicate_guitar}, +-- {name = "animpoint_stay_table_harmonica", predicate = xr_animpoint_predicates.animpoint_predicate_harmonica}, + {name = "animpoint_stay_table_weapon", predicate = xr_animpoint_predicates.animpoint_predicate_weapon}, + }, + animpoint_sit_high = { + {name = "animpoint_sit_high", predicate = xr_animpoint_predicates.const_predicate_true}, + {name = "animpoint_sit_high_eat_bread", predicate = xr_animpoint_predicates.animpoint_predicate_bread}, + {name = "animpoint_sit_high_eat_kolbasa", predicate = xr_animpoint_predicates.animpoint_predicate_kolbasa}, + {name = "animpoint_sit_high_drink_vodka", predicate = xr_animpoint_predicates.animpoint_predicate_vodka}, + {name = "animpoint_sit_high_drink_energy", predicate = xr_animpoint_predicates.animpoint_predicate_energy}, +-- {name = "animpoint_sit_high_guitar", predicate = xr_animpoint_predicates.animpoint_predicate_guitar}, + {name = "animpoint_sit_high_harmonica", predicate = xr_animpoint_predicates.animpoint_predicate_harmonica}, +-- {name = "animpoint_sit_high_weapon", predicate = xr_animpoint_predicates.animpoint_predicate_weapon}, + }, + animpoint_sit_normal = { + {name = "animpoint_sit_normal", predicate = xr_animpoint_predicates.const_predicate_true}, + {name = "animpoint_sit_normal_eat_bread", predicate = xr_animpoint_predicates.animpoint_predicate_bread}, + {name = "animpoint_sit_normal_eat_kolbasa", predicate = xr_animpoint_predicates.animpoint_predicate_kolbasa}, + {name = "animpoint_sit_normal_drink_vodka", predicate = xr_animpoint_predicates.animpoint_predicate_vodka}, + {name = "animpoint_sit_normal_drink_energy", predicate = xr_animpoint_predicates.animpoint_predicate_energy}, + {name = "animpoint_sit_normal_guitar", predicate = xr_animpoint_predicates.animpoint_predicate_guitar}, +-- {name = "animpoint_sit_normal_harmonica", predicate = xr_animpoint_predicates.animpoint_predicate_harmonica}, +-- {name = "animpoint_sit_normal_weapon", predicate = xr_animpoint_predicates.animpoint_predicate_weapon}, + }, + animpoint_sit_low = { + {name = "animpoint_sit_low", predicate = xr_animpoint_predicates.const_predicate_true}, + {name = "animpoint_sit_low_eat_bread", predicate = xr_animpoint_predicates.animpoint_predicate_bread}, + {name = "animpoint_sit_low_eat_kolbasa", predicate = xr_animpoint_predicates.animpoint_predicate_kolbasa}, + {name = "animpoint_sit_low_drink_vodka", predicate = xr_animpoint_predicates.animpoint_predicate_vodka}, + {name = "animpoint_sit_low_drink_energy", predicate = xr_animpoint_predicates.animpoint_predicate_energy}, + {name = "animpoint_sit_low_guitar", predicate = xr_animpoint_predicates.animpoint_predicate_guitar}, + {name = "animpoint_sit_low_harmonica", predicate = xr_animpoint_predicates.animpoint_predicate_harmonica}, +-- {name = "animpoint_sit_low_weapon", predicate = xr_animpoint_predicates.animpoint_predicate_weapon}, + }, + walker_camp = { {name = "play_guitar", predicate = xr_animpoint_predicates.animpoint_predicate_guitar}, + {name = "play_harmonica", predicate = xr_animpoint_predicates.animpoint_predicate_harmonica} + }, + -- START IX-Ray + kamp = { + {name = "kamp", predicate = xr_animpoint_predicates.const_predicate_true}, + {name = "kamp_eat_bread", predicate = xr_animpoint_predicates.animpoint_predicate_bread}, + {name = "kamp_eat_kolbasa", predicate = xr_animpoint_predicates.animpoint_predicate_kolbasa}, + {name = "kamp_drink_vodka", predicate = xr_animpoint_predicates.animpoint_predicate_vodka}, + {name = "kamp_drink_energy", predicate = xr_animpoint_predicates.animpoint_predicate_energy}, + {name = "kamp_guitar", predicate = xr_animpoint_predicates.animpoint_predicate_guitar}, + {name = "kamp_harmonica", predicate = xr_animpoint_predicates.animpoint_predicate_harmonica}, + }, + -- END IX-Ray +} diff --git a/gamedata/scripts/xr_combat_ignore.script b/gamedata/scripts/xr_combat_ignore.script new file mode 100644 index 0000000..db79057 --- /dev/null +++ b/gamedata/scripts/xr_combat_ignore.script @@ -0,0 +1,198 @@ +--[[------------------------------------------------------------------------------------------------------------------ +Игнорирование врагов +Чугай ÐлекÑандр +--------------------------------------------------------------------------------------------------------------------]] +local ignored_smart = { + zat_stalker_base_smart = true, + jup_b41 = true, + jup_a6 = true, + pri_a16 = true +} + +fighting_with_actor_npcs = { +} + +local smarts_by_no_assault_zones = { + ["zat_a2_sr_no_assault"] = "zat_stalker_base_smart", + ["jup_a6_sr_no_assault"] = "jup_a6", + ["jup_b41_sr_no_assault"] = "jup_b41" +} + + +function is_enemy(obj, enemy, st, not_check_sim) + if not obj:alive() then + return false + end + + if obj:critically_wounded() then + return true + end + + if st.enabled == false then + return true + end + + local overrides = st.overrides + local obj_id = obj:id() + local storage = db.storage[obj_id] + if storage == nil then + return true + end + storage.enemy_id = enemy:id() + + --' ОтÑеиваем по зоне + local active_sector = storage.active_sector + if active_sector ~= nil then + if sr_danger.check_danger_position(enemy:position(), active_sector) == false then +-- obj:enable_memory_object( enemy, false ) + return false + end + end + + -- Проверка на зоны комбат игнора возле баз: + -- игнорировать еÑли: + -- враг не актер. + -- Ñталкер находитÑÑ Ð² зоне. + -- Ñмарт в котором находитÑÑ Ñталкер не в ÑоÑтоÑнии тревоги. + if db.actor and enemy and enemy:id() ~= db.actor:id() then + for k,v in pairs (smarts_by_no_assault_zones) do + local zone = db.zone_by_name[k] + if zone and (utils.npc_in_zone(obj, zone) or utils.npc_in_zone(enemy, zone)) then + local smart = sim_board.get_sim_board():get_smart_by_name(v) + if smart and smart.base_on_actor_control ~= nil and smart.base_on_actor_control.status ~= smart_terrain_control.ALARM then + return false + end + end + end + end + + local se_enemy = alife():object(enemy:id()) + if se_enemy ~= nil and se_enemy.m_smart_terrain_id ~= nil and se_enemy.m_smart_terrain_id ~= 65535 then + local enemy_smart = alife():object(se_enemy.m_smart_terrain_id) + local smart_name = enemy_smart:name() + if ignored_smart[smart_name] == true then +-- obj:enable_memory_object( enemy, false ) + return false + end + end + --printf("checking combat_ignore for stalker[%s] enemy name [%s] in section[%s]",obj:name(), enemy:name(),storage.active_section) + --' ЕÑли еÑть оверрайды, то работаем по ним. + if overrides and + overrides.combat_ignore + then + local ret_value = xr_logic.pick_section_from_condlist( enemy, obj, overrides.combat_ignore.condlist ) + if ret_value == "true" then + --printf("pl:Disabling_memory_object[1] for stalker[%s] enemy name [%s] in section[%s]",obj:name(), enemy:name(),storage.active_section) +-- obj:enable_memory_object( enemy, false ) + return false + end + return true + end + return true +end +---------------------------------------------------------------------------------------------------------------------- + +class "action_process_enemy" + +function action_process_enemy:__init( obj, storage ) + self.object = obj + self.st = storage +end + +function action_process_enemy:enemy_callback( obj, enemy ) +--' local obj_pos = self.object:position() +--' local ene_pos = enemy:position() +--' printf("FOUND ENEMY [%s](%s,%s,%s) -> [%s](%s,%s,%s)", self.object:name(), obj_pos.x, obj_pos.y, obj_pos.z, +--' enemy:name(), ene_pos.x, ene_pos.y, ene_pos.z) + if enemy:id() == db.actor:id() then + fighting_with_actor_npcs[obj:id()] = true + end + + local is_obj_enemy = is_enemy( obj, enemy, self.st, false ) + if is_obj_enemy == true then + local se_obj = alife():object(obj:id()) + if se_obj and se_obj.m_smart_terrain_id ~= 65535 then + local smart_obj = alife():object(se_obj.m_smart_terrain_id) + smart_obj:set_alarm() + + if db.actor and enemy and enemy:id() == db.actor:id() and smart_obj.base_on_actor_control ~= nil then + -- Fix start for detecting attacking of the base even when attacked npc is not near the base + local base_pos = db.zone_by_name[smart_obj.base_on_actor_control.noweap_zone]:position() + local distance = obj:position():distance_to(base_pos) + if distance < 100 then + smart_obj.base_on_actor_control:actor_attack() + end + -- Fix end for detecting attacking of the base even when attacked npc is not near the base + end + end + local se_enemy = alife():object(enemy:id()) + if se_obj and se_enemy then + local sim_obj_registry = simulation_objects.get_sim_obj_registry() + if se_obj.group_id ~= 65535 and sim_obj_registry.objects[se_obj.group_id] ~= nil and + se_enemy.group_id ~= 65535 and sim_obj_registry.objects[se_enemy.group_id] == nil and + se_obj.position:distance_to_sqr(se_enemy.position) > 900 then + return false + end + end + end + + return is_obj_enemy +end + +function action_process_enemy:hit_callback(obj, amount, local_direction, who, bone_index) + if who == nil then + return + end + +-- printf("_bp: action_process_enemy: hit_callback(): obj='%s'", obj:name()) + if amount == 0 then + -- Кто-то Ñтрельнул в воздух + return + end + + if who:id() == db.actor:id() then + local overrides = self.st.overrides + if not overrides or not overrides.combat_ignore_keep_when_attacked then + --printf("_bp: action_process_enemy: hit_callback(): obj='%s': SCHEME DISABLED", obj:name()) + self.st.enabled = false + end + end +end + +---------------------------------------------------------------------------------------------------------------------- +-- binder +---------------------------------------------------------------------------------------------------------------------- +function add_to_binder( npc, ini, scheme, section, storage ) + local new_action = this.action_process_enemy( npc, storage ) + storage.action = new_action +end + +function set_combat_ignore_checker( npc, ini, scheme) + local st = xr_logic.assign_storage_and_bind( npc, ini, scheme ) +end + +function reset_combat_ignore_checker(npc, scheme, st, section) + local storage = st.combat_ignore + + npc:set_enemy_callback( storage.action.enemy_callback, storage.action ) + + -- ПодпиÑываемÑÑ Ð½Ð° hit callback-и: + xr_logic.subscribe_action_for_events( npc, storage, storage.action ) + + storage.overrides = xr_logic.generic_scheme_overrides(npc) + + storage.enabled = true +end + + + +function disable_scheme( npc, scheme ) + npc:set_enemy_callback() + + -- ОтпиÑываемÑÑ Ð¾Ñ‚ hit callback. Это делать обÑзательно, потому что иначе при переключении на другой набор + -- Ñхем, в котором нет перехвата боÑ, продолжитÑÑ Ð²Ñ‹Ð·Ñ‹Ð²Ð°Ñ‚ÑŒÑÑ callback в Ñтаром подпиÑанном action-е. + local st = db.storage[npc:id()][scheme] + if st then + xr_logic.unsubscribe_action_from_events(npc, st, st.action) + end +end diff --git a/gamedata/scripts/xr_effects.script b/gamedata/scripts/xr_effects.script new file mode 100644 index 0000000..dd16f47 --- /dev/null +++ b/gamedata/scripts/xr_effects.script @@ -0,0 +1,3384 @@ +-- ---------------------------------------------------------------------------------------------------- +-- Общие функции +-- ---------------------------------------------------------------------------------------------------- + +-- Принудительно апдейтит логику у объектов, переданных параметром. Пока работает только Ñ ÐПС +function update_npc_logic(actor, object, p) + --printf("UPDATE NPC LOGIC %s", device():time_global()) + for k,v in pairs(p) do + local npc = get_story_object(v) + if npc ~= nil then + xr_motivator.update_logic(npc) + + local planner = npc:motivation_action_manager() + planner:update() + planner:update() + planner:update() + + db.storage[npc:id()].state_mgr:update() + db.storage[npc:id()].state_mgr:update() + db.storage[npc:id()].state_mgr:update() + db.storage[npc:id()].state_mgr:update() + db.storage[npc:id()].state_mgr:update() + db.storage[npc:id()].state_mgr:update() + db.storage[npc:id()].state_mgr:update() + end + end +end + +function update_obj_logic(actor, object, p) + --printf("UPDATE OBJ LOGIC %s", device():time_global()) + for k,v in pairs(p) do + local obj = get_story_object(v) + if obj ~= nil then + + local st = db.storage[obj:id()] + xr_logic.try_switch_to_another_section(obj, st[st.active_scheme], actor) + +-- if st.active_scheme == "sr_cutscene" then +-- st[st.active_scheme].cutscene_action +-- end + + end + end +end + +local ui_active_slot = 0 + +function disable_ui(actor, npc, p) + if db.actor:is_talking() then + db.actor:stop_talk() + end + level.show_weapon(false) + + if not p or (p and p[1] ~= "true") then + local slot = db.actor:active_slot() + if(slot~=0) then + ui_active_slot = slot + db.actor:activate_slot(0) + end + end + + level.disable_input() + level.hide_indicators_safe() + local hud = get_hud() + hud:HideActorMenu() + hud:HidePdaMenu() + disable_actor_nightvision(nil,nil) + disable_actor_torch(nil,nil) +end + +function disable_ui_only(actor, npc) + if db.actor:is_talking() then + db.actor:stop_talk() + end + level.show_weapon(false) + + if not p or (p and p[1] ~= "true") then + local slot = db.actor:active_slot() + if(slot~=0) then + ui_active_slot = slot + db.actor:activate_slot(0) + end + end + + level.disable_input() + level.hide_indicators_safe() + local hud = get_hud() + hud:HideActorMenu() + hud:HidePdaMenu() +end + +function enable_ui(actor, npc, p) + --db.actor:restore_weapon() + + if not p or (p and p[1] ~= "true") then + if ui_active_slot ~= 0 and db.actor:item_in_slot(ui_active_slot) ~= nil then + db.actor:activate_slot(ui_active_slot) + end + end + + ui_active_slot = 0 + level.show_weapon(true) + level.enable_input() + level.show_indicators() + enable_actor_nightvision(nil,nil) + enable_actor_torch(nil,nil) +end + +local cam_effector_playing_object_id = nil + +function run_cam_effector(actor, npc, p) + if p[1] then + local loop, num = false, (1000 + math.random(100)) + if p[2] and type(p[2]) == "number" and p[2] > 0 then + num = p[2] + end + if p[3] and p[3] == "true" then + loop = true + end + --level.add_pp_effector(p[1] .. ".ppe", num, loop) + level.add_cam_effector("camera_effects\\" .. p[1] .. ".anm", num, loop, "xr_effects.cam_effector_callback") + cam_effector_playing_object_id = npc:id() + end +end + +function stop_cam_effector(actor, npc, p) + if p[1] and type(p[1]) == "number" and p[1] > 0 then + level.remove_cam_effector(p[1]) + end +end + +function run_cam_effector_global(actor, npc, p) + local num = 1000 + math.random(100) + if p[2] and type(p[2]) == "number" and p[2] > 0 then + num = p[2] + end + local fov = device().fov + if p[3] ~= nil and type(p[3]) == "number" then + fov = p[3] + end + level.add_cam_effector2("camera_effects\\" .. p[1] .. ".anm", num, false, "xr_effects.cam_effector_callback", fov) + cam_effector_playing_object_id = npc:id() +end + +function cam_effector_callback() + if cam_effector_playing_object_id == nil then + printf("cam_eff:callback1!") + return + end + local st = db.storage[cam_effector_playing_object_id] + if st == nil or st.active_scheme == nil then + printf("cam_eff:callback2!") + return + end + + if st[st.active_scheme].signals == nil then + printf("cam_eff:callback3!") + return + end + st[st.active_scheme].signals["cameff_end"] = true +end + +function run_postprocess(actor, npc, p) + if (p[1]) then + if(system_ini():section_exist(p[1])) then + local num = 2000 + math.random(100) + if(p[2] and type(p[2]) == "number" and p[2]>0) then + num = p[2] + end + printf("adding complex effector [%s], id [%s], from [%s]", p[1], tostring(p[2]), tostring(npc:name())) + level.add_complex_effector(p[1], num) + else + abort("Complex effector section is no set! [%s]", tostring(p[1])) + end + end +end + +function stop_postprocess(actor, npc, p) + if(p[1] and type(p[1]) == "number" and p[1]>0) then + printf("removing complex effector id [%s] from [%s]", tostring(p[1]), tostring(npc:name())) + level.remove_complex_effector(p[1]) + end +end + +function run_tutorial(actor, npc, p) + printf("run tutorial called") + game.start_tutorial(p[1]) +end + +--[[ +function run_tutorial_if_newbie(actor, npc, p) + if has_alife_info("esc_trader_newbie") then + game.start_tutorial(p[1]) + end +end +]]-- + +function jup_b32_place_scanner(actor, npc) + for i = 1, 5 do + if xr_conditions.actor_in_zone(actor, npc, {"jup_b32_sr_scanner_place_"..i}) + and not has_alife_info("jup_b32_scanner_"..i.."_placed") then + db.actor:give_info_portion("jup_b32_scanner_"..i.."_placed") + db.actor:give_info_portion("jup_b32_tutorial_done") + remove_item(actor, npc, {"jup_b32_scanner_device"}) + spawn_object(actor, nil, {"jup_b32_ph_scanner","jup_b32_scanner_place_"..i}) + end + end +end + +function jup_b32_pda_check(actor, npc) + pda.change_anomalies_names() +end + +function pri_b306_generator_start(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"pri_b306_sr_generator"}) then + give_info("pri_b306_lift_generator_used") + end +end + +function jup_b206_get_plant(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"jup_b206_sr_quest_line"}) then + give_info("jup_b206_anomalous_grove_has_plant") + give_actor(actor, npc, {"jup_b206_plant"}) + destroy_object(actor, npc, {"story", "jup_b206_plant_ph"}) + end +end + +function pas_b400_switcher(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"pas_b400_sr_switcher"}) then + give_info("pas_b400_switcher_use") + end +end + + +function jup_b209_place_scanner(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"jup_b209_hypotheses"}) then + scenario_autosave(db.actor, nil, {"st_save_jup_b209_placed_mutant_scanner"}) + db.actor:give_info_portion("jup_b209_scanner_placed") + remove_item(actor, npc, {"jup_b209_monster_scanner"}) + spawn_object(actor, nil, {"jup_b209_ph_scanner","jup_b209_scanner_place_point"}) + end +end + +function jup_b9_heli_1_searching(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"jup_b9_heli_1"}) + then + db.actor:give_info_portion("jup_b9_heli_1_searching") + end +end + +function pri_a18_use_idol(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"pri_a18_use_idol_restrictor"}) + then + db.actor:give_info_portion("pri_a18_run_cam") + end +end + +function jup_b8_heli_4_searching(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"jup_b8_heli_4"}) + then + db.actor:give_info_portion("jup_b8_heli_4_searching") + end +end + +function jup_b10_ufo_searching(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"jup_b10_ufo_restrictor"}) + then + db.actor:give_info_portion("jup_b10_ufo_memory_started") + give_actor(db.actor,nil,{"jup_b10_ufo_memory"}) + end +end + + +function zat_b101_heli_5_searching(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"zat_b101_heli_5"}) + then + db.actor:give_info_portion("zat_b101_heli_5_searching") + end +end + +function zat_b28_heli_3_searching(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"zat_b28_heli_3"}) + then + db.actor:give_info_portion("zat_b28_heli_3_searching") + end +end + +function zat_b100_heli_2_searching(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"zat_b100_heli_2"}) then + db.actor:give_info_portion("zat_b100_heli_2_searching") + end +end + +function teleport_actor(actor, npc, p) + local point = patrol(p[1]) + local dir + if p[2] ~= nil then + local look = patrol(p[2]) + dir = -look:point(0):sub(point:point(0)):getH() + db.actor:set_actor_direction(dir) + end + + for k,v in pairs(db.no_weap_zones) do + local zone = db.zone_by_name[k] + if utils.npc_in_zone(db.actor, zone) then + db.no_weap_zones[k] = true + end + end + + if npc and npc:name() ~= nil then + printf("teleporting actor from [%s]", tostring(npc:name())) + end + + db.actor:set_actor_position(point:point(0)) +end + + +local function reset_animation(npc) + local state_mgr = db.storage[npc:id()].state_mgr + if state_mgr == nil then + return + end + local planner = npc:motivation_action_manager() + + state_mgr.animation:set_state(nil, true) + state_mgr.animation:set_control() + state_mgr.animstate:set_state(nil, true) + state_mgr.animstate:set_control() + + state_mgr:set_state("idle", nil, nil, nil, {fast_set = true}) + +-- planner:update() +-- planner:update() +-- planner:update() + + state_mgr:update() + state_mgr:update() + state_mgr:update() + state_mgr:update() + state_mgr:update() + state_mgr:update() + state_mgr:update() + + npc:set_body_state(move.standing) + npc:set_mental_state(anim.free) + +end + + +function teleport_npc(actor, npc, p) + local patrol_point = p[1] + local patrol_point_index = p[2] or 0 + if patrol_point == nil then + abort("Wrong parameters in 'teleport_npc' function!!!") + end + local position = patrol(patrol_point):point(patrol_point_index) + reset_animation(npc) + + npc:set_npc_position(position) +end + +function teleport_npc_by_story_id(actor, npc, p) + local story_id = p[1] + local patrol_point = p[2] + local patrol_point_index = p[3] or 0 + if story_id == nil or patrol_point == nil then + abort("Wrong parameters in 'teleport_npc_by_story_id' function!!!") + end + local position = patrol(tostring(patrol_point)):point(patrol_point_index) + local npc_id = get_story_object_id(story_id) + if npc_id == nil then + abort("There is no story object with id [%s]", story_id) + end + local cl_object = level.object_by_id(npc_id) + if cl_object then + reset_animation(cl_object) + cl_object:set_npc_position(position) + else + alife():object(npc_id).position = position + end +end + +function teleport_squad(actor, npc, p) + local squad_story_id = p[1] + local patrol_point = p[2] + local patrol_point_index = p[3] or 0 + if squad_story_id == nil or patrol_point == nil then + abort("Wrong parameters in 'teleport_squad' function!!!") + end + local position = patrol(patrol_point):point(patrol_point_index) + local squad = get_story_squad(squad_story_id) + if squad == nil then + abort("There is no squad with story id [%s]", squad_story_id) + end + squad:set_squad_position(position) +end + +function jup_teleport_actor(actor, npc) + local point_in = patrol("jup_b16_teleport_in"):point(0) + local point_out = patrol("jup_b16_teleport_out"):point(0) + local actor_position = actor:position() + local out_position = vector():set(actor_position.x - point_in.x + point_out.x, actor_position.y - point_in.y + point_out.y , actor_position.z - point_in.z + point_out.z) + db.actor:set_actor_position(out_position) +end +----------------------------------------------------------------------------- +--[[ +local drop_point, drop_object = 0, 0 +local function drop_object_item(item) + drop_object:drop_item_and_teleport(item, drop_point) +end + +function drop_actor_inventory(actor, npc, p) + if p[1] then + drop_point = patrol(p[1]):point(0) + drop_object = actor + actor:inventory_for_each(drop_object_item) + end +end + + +-- FIXME: drop_npc_inventory doesn't work +function drop_npc_inventory(actor, npc, p) + if p[1] then + drop_point = patrol(p[1]):point(0) + drop_object = npc + npc:inventory_for_each(drop_object_item) + end +end + +function drop_npc_item(actor, npc, p) + if p[1] then + local item = npc:object(p[1]) + if item then + npc:drop_item(item) + end + end +end + +function drop_npc_items(actor, npc, p) + local item = 0 + for i, v in pairs(p) do + item = npc:object(v) + if item then + npc:drop_item(item) + end + end +end +]]-- + +function give_items(actor, npc, p) + local pos, lv_id, gv_id, npc_id = npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id() + for i, v in pairs(p) do + alife():create(v, pos, lv_id, gv_id, npc_id) + end +end + +function give_item(actor, npc, p) + if p[2] ~= nil then + npc_id = get_story_object_id(p[2]) + else + npc_id = npc:id() + end + npc = alife():object(npc_id) + local pos, lv_id, gv_id, npc_id = npc.position, npc.m_level_vertex_id, npc.m_game_vertex_id, npc.id + alife():create(p[1], pos, lv_id, gv_id, npc_id) +end + +function play_particle_on_path(actor, npc, p) + local name = p[1] + local path = p[2] + local point_prob = p[3] + if name == nil or path == nil then + return + end + if point_prob == nil then + point_prob = 100 + end + + local path = patrol(path) + local count = path:count() + for a = 0,count-1,1 do + local particle = particles_object(name) + if math.random(100) <= point_prob then + particle:play_at_pos(path:point(a)) + end + end +end + + +----------------------------------------------------------------------------- +--[[ +send_tip(news_id:sender:sender_id) + 1. news_id + 2. sender* + 3. sender_id* + * - not necessary +--]] +function send_tip(actor, npc, p) + news_manager.send_tip(actor, p[1], nil, p[2], nil, p[3]) +end + +--[[ +Дать Ñталкеру небольшой пинок. Ðапример чтоб Ñкинуть его Ñ Ð²Ð¾Ð·Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ. +параметры: actor, npc, p[direction,bone,power,impulse,reverse=false] + 1. direction - еÑли Ñтрока, то ÑчитаетÑÑ, что Ñто Ð¸Ð¼Ñ Ð¿ÑƒÑ‚Ð¸ и в Ñторону + первой точки производитÑÑ Ñ‚Ð¾Ð»Ñ‡ÐµÐº. ЕÑли же Ñто чиÑло, то оно + раÑÑматриваетÑÑ ÐºÐ°Ðº story_id перÑонажа от которого должен поÑтупить хит. + 2. bone - Ñтрока. Ð˜Ð¼Ñ ÐºÐ¾Ñти, по которой наноÑитÑÑ ÑƒÐ´Ð°Ñ€. + 3. power - Ñила удара + 4. impulse - Ð¸Ð¼Ð¿ÑƒÐ»ÑŒÑ + 5. reverse (true/false) - изменение Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ñ€Ð°. по умолчанию false +--]] +function hit_npc(actor, npc, p) + local h = hit() + local rev = p[6] and p[6] == 'true' + h.draftsman = npc + h.type = hit.wound + if p[1] ~= "self" then + local hitter = get_story_object(p[1]) + if not hitter then return end + if rev then + h.draftsman = hitter + h.direction = hitter:position():sub(npc:position()) + else + h.direction = npc:position():sub(hitter:position()) + end + else + if rev then + h.draftsman = nil + h.direction = npc:position():sub(patrol(p[2]):point(0)) + else + h.direction = patrol(p[2]):point(0):sub(npc:position()) + end + end + h:bone(p[3]) + h.power = p[4] + h.impulse = p[5] + printf("HIT EFFECT: (%s, %s,%d,%d) health(%s)", npc:name(), p[2], h.power, h.impulse, npc.health) + npc:hit(h) +end + +--[[ +Дать обьекту, заданному story_id, хит. +параметры: actor, npc, p[sid,bone,power,impulse,hit_src=npc:position()] + 1. sid - story_id обьекта, по которому наноÑитÑÑ Ñ…Ð¸Ñ‚. + 2. bone - Ñтрока. Ð˜Ð¼Ñ ÐºÐ¾Ñти, по которой наноÑитÑÑ ÑƒÐ´Ð°Ñ€. + 3. power - Ñила удара + 4. impulse - Ð¸Ð¼Ð¿ÑƒÐ»ÑŒÑ + 5. hit_src - еÑли чиÑло, то раÑÑматриваетÑÑ ÐºÐ°Ðº story_id обьекта, Ñо Ñтороны + которого наноÑитÑÑ Ñ…Ð¸Ñ‚ (он же ÑвлÑетÑÑ Ð¸ инициатором хита), иначе Ñто + точка (waypoint), из которой по объекту наноÑитÑÑ Ñ…Ð¸Ñ‚. + ЕÑли не задано, то беретÑÑ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð¾Ð±ÑŒÐµÐºÑ‚Ð°, из которого была вызвана + Ð´Ð°Ð½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ. +--]] +function hit_obj(actor, npc, p) + local h = hit() + local obj = get_story_object(p[1]) + local sid = nil + + if not obj then +-- abort("HIT_OBJ [%s]. Target object does not exist", npc:name()) + return + end + + h:bone(p[2]) + h.power = p[3] + h.impulse = p[4] + + if p[5] then + sid = get_story_object(sid) + if sid then + h.direction = vector():sub(sid:position(), obj:position()) + end + if not sid then + h.direction = vector():sub(patrol(p[5]):point(0), obj:position()) + end + else + h.direction = vector():sub(npc:position(), obj:position()) + end + h.draftsman = sid or npc + h.type = hit.wound + obj:hit(h) +end + +--[[ +function hit_obj_chemical(actor, npc, p) + local h = hit() + local obj = get_story_object(p[1]) + local sid = nil + + if not obj then +-- abort("HIT_OBJ [%s]. Target object does not exist", npc:name()) + return + end + + h:bone(p[2]) + h.power = p[3] + h.impulse = p[4] + + if p[5] then + sid = get_story_object(sid) + if sid then + h.direction = vector():sub(sid:position(), obj:position()) + end + if not sid then + h.direction = vector():sub(patrol(p[5]):point(0), obj:position()) + end + else + h.direction = vector():sub(npc:position(), obj:position()) + end + + h.draftsman = sid or npc + h.type = hit.chemical_burn + obj:hit(h) +end + +function hit_obj_fire_wound(actor, npc, p) + local h = hit() + local obj = get_story_object(p[1]) + local sid = nil + + if not obj then +-- abort("HIT_OBJ [%s]. Target object does not exist", npc:name()) + return + end + + h:bone(p[2]) + h.power = p[3] + h.impulse = p[4] + + if p[5] then + sid = get_story_object(sid) + if sid then + h.direction = vector():sub(sid:position(), obj:position()) + end + if not sid then + h.direction = vector():sub(patrol(p[5]):point(0), obj:position()) + end + else + h.direction = vector():sub(npc:position(), obj:position()) + end + + h.draftsman = sid or npc + h.type = hit.fire_wound + obj:hit(h) +end +]]-- +--[[ +Дать Ñталкеру небольшой пинок поÑле Ñмерти. Ðналогично предыдущему, только направление хита теперь +вычиÑлÑетÑÑ Ñ‡ÐµÑ€ÐµÐ· убийцу. ПоÑтому параметра direction нет. +параметры: actor, npc, p[bone,power,impulse] +FIXME: killer:position() isn't working +--]] +function hit_by_killer(actor, npc, p) + if not npc then return end + local t = db.storage[npc:id()].death + if t == nil or t.killer == -1 then return end + local killer = db.storage[t.killer] + if killer == nil then return end + local p1, p2 + p1 = npc:position() + p2 = killer:position() + local h = hit() + h.draftsman = npc + h.type = hit.wound + h.direction = utils.vector_copy_by_val(p1):sub(p2) + h.bone = p[1] + h.power = p[2] + h.impulse = p[3] + npc:hit(h) +end + + +function hit_npc_from_actor(actor, npc, p) + local h = hit() + local sid = nil + h.draftsman = actor + h.type = hit.wound + + if p and p[1] then + sid = get_story_object(p[1]) + if sid then + h.direction = actor:position():sub(sid:position()) + end + if not sid then + h.direction = actor:position():sub(npc:position()) + end + else + h.direction = actor:position():sub(npc:position()) + sid = npc + end + + h:bone("bip01_spine") + h.power = 0.001 + h.impulse = 0.001 + sid:hit(h) +end + +--[[ +-- Хитует Ð½Ð¿Ñ Ð¾Ñ‚ нпÑ, еÑли задан один параметр (Ñтори айди), то Ð½Ð¿Ñ Ñ Ñ‚Ð°ÐºÐ¸Ð¼ Ñтори айди хитнет Ð½Ð¿Ñ Ñƒ которого вызвали Ñту функцию. +-- еÑли задано 2 Ñтори айди , то Ð½Ð¿Ñ Ñ 1-ым Ñтори айди хитнет Ð½Ð¿Ñ Ñо 2-ым Ñтори айди. +function hit_npc_from_npc(actor, npc, p) + if p == nil then abort("Invalid parameter in function 'hit_npc_from_npc'!!!!") end + local h = hit() + local hitted_npc = npc + h.draftsman = get_story_object(p[1]) + if p[2] ~= nil then + hitted_npc = get_story_object(p[2]) + end + h.type = hit.wound + h.direction = h.draftsman:position():sub(hitted_npc:position()) + h:bone("bip01_spine") + h.power = 0.03 + h.impulse = 0.03 + hitted_npc:hit(h) +end + +function hit_actor(actor, npc, p) + local h = hit() + h.direction = vector():set(0,0,0) + h.draftsman = actor + h.type = hit.shock + h:bone("bip01_spine") + h.power = (p and p[1] and tonumber(p[1])) or 0.001 + h.impulse = 0.001 + actor:hit(h) +end +]]-- + +function restore_health(actor, npc) + --printf("HEALTH RESTORE") + npc.health = 1 +end + +function make_enemy(actor, npc, p) + if p == nil then abort("Invalid parameter in function 'hit_npc_from_npc'!!!!") end + local h = hit() + local hitted_npc = npc + h.draftsman = get_story_object(p[1]) + if p[2] ~= nil then + hitted_npc = get_story_object(p[2]) + end + h.type = hit.wound + h.direction = h.draftsman:position():sub(hitted_npc:position()) + h:bone("bip01_spine") + h.power = 0.03 + h.impulse = 0.03 + hitted_npc:hit(h) +end + +function sniper_fire_mode(actor, npc, p) + if p[1] == "true" then + --printf("SNIPER FIRE MODE ON") + npc:sniper_fire_mode(true) + else + --printf("SNIPER FIRE MODE OFF") + npc:sniper_fire_mode(false) + end +end + +function kill_npc(actor, npc, p) + if p and p[1] then + npc = get_story_object(p[1]) + end + if npc ~= nil and npc:alive() then + npc:kill(npc) + end +end + +function remove_npc(actor, npc, p) + if p and p[1] then + npc_id = get_story_object_id(p[1]) + end + if npc_id ~= nil then + alife():release(alife():object(npc_id), true) + end +end + +-- прибавить к указанному Ñчётчику актёра 1 +function inc_counter(actor, npc, p) + if p and p[1] then + local inc_value = p[2] or 1 + local new_value = xr_logic.pstor_retrieve(actor, p[1], 0) + inc_value + if npc and npc:name() then + printf("inc_counter '%s' to value [%s], by [%s]", p[1], tostring(new_value), tostring(npc:name())) + end + xr_logic.pstor_store(actor, p[1], new_value) + end +end + +function dec_counter(actor, npc, p) + if p and p[1] then + local dec_value = p[2] or 1 + local new_value = xr_logic.pstor_retrieve(actor, p[1], 0) - dec_value + if new_value < 0 then + new_value = 0 + end + xr_logic.pstor_store(actor, p[1], new_value) + if npc and npc:name() then + printf( "dec_counter [%s] value [%s] by [%s]", p[1], xr_logic.pstor_retrieve(actor, p[1], 0), tostring(npc:name())) + end + end +end + +function set_counter(actor, npc, p) + if p and p[1] then + local count = p[2] or 0 +-- printf( "set_counter '%s' %s", p[1], count) + xr_logic.pstor_store(actor, p[1], count) +-- printf("counter [%s] value [%s]", p[1], xr_logic.pstor_retrieve(actor, p[1], 0)) + end +end + + +------------------------------------------------------------------------------------------------------------------------ +-- поÑтпроцеÑÑ Ð¸ влиÑние удара в морду +function actor_punch(npc) + if db.actor:position():distance_to_sqr(npc:position()) > 4 then + return + end + + set_inactivate_input_time(30) + level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "") + + local active_slot = db.actor:active_slot() + if active_slot ~= 2 and + active_slot ~= 3 + then + return + end + + local active_item = db.actor:active_item() + if active_item then + db.actor:drop_item(active_item) + end +end + +-- забывание обиды +function clearAbuse(npc) + printf("CLEAR_ABUSE") + xr_abuse.clear_abuse(npc) +end + +function turn_off_underpass_lamps(actor, npc) + local lamps_table = { + ["pas_b400_lamp_start_flash"] = true, + ["pas_b400_lamp_start_red"] = true, + ["pas_b400_lamp_elevator_green"] = true, + ["pas_b400_lamp_elevator_flash"] = true, + ["pas_b400_lamp_elevator_green_1"] = true, + ["pas_b400_lamp_elevator_flash_1"] = true, + ["pas_b400_lamp_track_green"] = true, + ["pas_b400_lamp_track_flash"] = true, + ["pas_b400_lamp_downstairs_green"] = true, + ["pas_b400_lamp_downstairs_flash"] = true, + ["pas_b400_lamp_tunnel_green"] = true, + ["pas_b400_lamp_tunnel_flash"] = true, + ["pas_b400_lamp_tunnel_green_1"] = true, + ["pas_b400_lamp_tunnel_flash_1"] = true, + ["pas_b400_lamp_control_down_green"] = true, + ["pas_b400_lamp_control_down_flash"] = true, + ["pas_b400_lamp_control_up_green"] = true, + ["pas_b400_lamp_control_up_flash"] = true, + ["pas_b400_lamp_hall_green"] = true, + ["pas_b400_lamp_hall_flash"] = true, + ["pas_b400_lamp_way_green"] = true, + ["pas_b400_lamp_way_flash"] = true, + } + local obj + for k,v in pairs(lamps_table) do + obj = get_story_object(k) + + if obj then + obj:get_hanging_lamp():turn_off() + else + printf("function 'turn_off_underpass_lamps' lamp [%s] does not exist", tostring(k)) + --abort("function 'turn_off_underpass_lamps' lamp [%s] does not exist", tostring(k)) + end + end +end + +---Выключение динамичеÑкой лампочки (hanging_lamp) +function turn_off(actor, npc, p) + local obj + for k,v in pairs(p) do + obj = get_story_object(v) + + if not obj then + abort("TURN_OFF. Target object with story_id [%s] does not exist", v) + return + end + obj:get_hanging_lamp():turn_off() + --printf("TURN_OFF. Target object with story_id [%s] turned off.", v) + end +end + +function turn_off_object(actor, npc) + npc:get_hanging_lamp():turn_off() +end + +---Включение динамичеÑкой лампочки (hanging_lamp) +function turn_on(actor, npc, p) + local obj + for k,v in pairs(p) do + obj = get_story_object(v) + + if not obj then + abort("TURN_ON [%s]. Target object does not exist", npc:name()) + return + end + obj:get_hanging_lamp():turn_on() + end +end + +---Включение и запуÑк динамичеÑкой лампочки (hanging_lamp) +function turn_on_and_force(actor, npc, p) + local obj = get_story_object(p[1]) + if not obj then + abort("TURN_ON_AND_FORCE. Target object does not exist") + return + end + if p[2] == nil then p[2] = 55 end + if p[3] == nil then p[3] = 14000 end + obj:set_const_force(vector():set(0,1,0), p[2], p[3]) + obj:start_particles("weapons\\light_signal", "link") + obj:get_hanging_lamp():turn_on() +end + +---Выключение динамичеÑкой лампочки и партиклов (hanging_lamp) +function turn_off_and_force(actor, npc, p) + local obj = get_story_object(p[1]) + if not obj then + abort("TURN_OFF [%s]. Target object does not exist", npc:name()) + return + end + obj:stop_particles("weapons\\light_signal", "link") + obj:get_hanging_lamp():turn_off() +end + + +function turn_on_object(actor, npc) + npc:get_hanging_lamp():turn_on() +end + +function turn_off_object(actor, npc) + npc:get_hanging_lamp():turn_off() +end + + +-- Вызов Ñтой функции отключит обработчик [combat] Ð±Ð¾Ñ Ð´Ð»Ñ Ð¿ÐµÑ€Ñонажа. +-- ИÑпользуетÑÑ Ð² ÑлучаÑÑ…, когда вÑе необходимые дейÑтвиÑ, такие как переключение на другую Ñекцию, +-- уже выполнены, и повторно выполнÑть их во Ð²Ñ€ÐµÐ¼Ñ Ð±Ð¾Ñ Ð½ÐµÐ»ÑŒÐ·Ñ (а уÑÐ»Ð¾Ð²Ð¸Ñ Ñекции [combat] проверÑÑŽÑ‚ÑÑ Ð½Ð° каждом +-- апдейте, когда перÑонаж в бою, еÑли, конечно, не отключены вызовом Ñтой функции). +function disable_combat_handler(actor, npc) + if db.storage[npc:id()].combat then + db.storage[npc:id()].combat.enabled = false + end + + if db.storage[npc:id()].mob_combat then + db.storage[npc:id()].mob_combat.enabled = false + end +end + +-- Вызов Ñтой функции отключит обработчик [combat_ignore] перехвата Ð±Ð¾Ñ Ð´Ð»Ñ Ð¿ÐµÑ€Ñонажа. +function disable_combat_ignore_handler(actor, npc) + if db.storage[npc:id()].combat_ignore then + db.storage[npc:id()].combat_ignore.enabled = false + end +end + +------------------------------------------------------------------------------------- +-- Функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð²ÐµÑ€Ñ‚Ð¾Ð»Ñ‘Ñ‚Ð°Ð¼Ð¸ +------------------------------------------------------------------------------------- +--[[ +function heli_set_enemy_actor(actor, npc) + local st = db.storage[npc:id()] + if not st.combat.enemy_id and actor:alive() then + st.combat.enemy_id = actor:id() + heli_snd.play_snd( st, heli_snd.snd_see_enemy, 1 ) + end +end + +function heli_set_enemy(actor, npc, p) + local st = db.storage[npc:id()] + local obj = get_story_object( p[1] ) + if not st.combat.enemy_id and obj:alive() then + st.combat.enemy_id = obj:id() + heli_snd.play_snd( st, heli_snd.snd_see_enemy, 1 ) + end +end + +function heli_clear_enemy(actor, npc) + db.storage[npc:id()].combat:forget_enemy() +end +]]-- + +function heli_start_flame(actor, npc) + bind_heli.heli_start_flame( npc ) +end + +function heli_die(actor, npc) + bind_heli.heli_die( npc ) +end + + +--'----------------------------------------------------------------------------------- +--' Функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð¿Ð¾Ð³Ð¾Ð´Ð½Ñ‹Ð¼Ð¸ Ñффектами +--'----------------------------------------------------------------------------------- + +-- ÐŸÑ€Ð¸Ð½ÑƒÐ´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÑƒÑтановка погодных уÑловий +-- =set_weather(<ÑÐµÐºÑ†Ð¸Ñ Ð¿Ð¾Ð³Ð¾Ð´Ñ‹>:true) - уÑтановка погоды Ñразу, false - через некоторое Ð²Ñ€ÐµÐ¼Ñ +-- Будет иÑпользоватьÑÑ Ð½Ð° Ñтарте игры Зов ПрипÑти и в Ñцене jup_b15 - утро поÑле пьÑнки Ñ Ð—ÑƒÐ»ÑƒÑом +function set_weather(actor, npc, p) + if(p[1]) then + if(p[2]=="true") then + level.set_weather(p[1],true) + else + level.set_weather(p[1],false) + end + end +end +--[[ +function update_weather(actor, npc, p) + if p and p[1] then + if p[1] == "true" then + level_weathers.get_weather_manager():select_weather(true) + elseif p[1] == "false" then + level_weathers.get_weather_manager():select_weather(false) + end + end +end + +function start_small_reject(actor, npc) + level.set_weather_fx("fx_surge_day_3") + level.add_pp_effector("vibros_p.ppe", 1974, false) + this.aes_earthshake(npc) +end + +function start_full_reject(actor, npc) + level.set_weather_fx("fx_surge_day_3") + level.remove_pp_effector(1974) + level.remove_cam_effector(1975) + level.add_cam_effector("camera_effects\\earthquake.anm", 1975, true, "") +end + +function stop_full_reject(actor, npc) + level.remove_pp_effector(1974) + level.remove_cam_effector(1975) +end + +function run_weather_pp(actor,npc, p) + local weather_fx = p[1] + if weather_fx == nil then + weather_fx = "fx_surge_day_3" + end + level.set_weather_fx(weather_fx) +end +]]-- + +function game_disconnect(actor, npc) + local c = get_console() + c:execute("disconnect") +-- c:execute_deferred("main_menu off") +-- c:execute_deferred("hide") +end + +function game_credits(actor, npc) + db.gameover_credits_started = true + game.start_tutorial("credits_seq") +end + +function game_over(actor, npc) + if db.gameover_credits_started ~= true then + return + end + local c = get_console() + printf("main_menu on console command is executed") + c:execute("main_menu on") +end + +function after_credits(actor, npc) + get_console():execute ("main_menu on") +end + +function before_credits(actor, npc) + get_console():execute ("main_menu off") +end + +function on_tutor_gameover_stop() + local c = get_console() + printf("main_menu on console command is executed") + c:execute("main_menu on") +end + +function on_tutor_gameover_quickload() + local c = get_console() + c:execute("load_last_save") +end + + +-- Ð´Ð»Ñ Ñмены работы +function get_stalker_for_new_job(actor, npc, p) + xr_gulag.find_stalker_for_job(npc,p[1]) +end +function switch_to_desired_job(actor, npc, p) + xr_gulag.switch_to_desired_job(npc) +end + +--[[ +function death_hit(actor, npc, p) + local draftsman = get_story_object (p[1]) + local hitted_obj = (p[2] ~= nil and get_story_object (p[2])) or npc + if draftsman == nil or hitted_obj == nil then + return + end + local h = hit() + h.power = 1000 + h.direction = hitted_obj:direction() + h.draftsman = draftsman + h.impulse = 1 + h.type = hit.wound + hitted_obj:hit(h) +end +]]-- + +--'----------------------------------------------------------------------------------- +--' Функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð¿Ð¾Ð´Ñпауном +--'----------------------------------------------------------------------------------- +function spawn_object(actor, obj, p) + --' p[1] - ÑÐµÐºÑ†Ð¸Ñ ÐºÐ¾Ð³Ð¾ Ñпаунить + --' p[2] - Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ€ÑƒÐ»ÑŒÐ½Ð¾Ð³Ð¾ пути где Ñпа унить. + local spawn_sect = p[1] + if spawn_sect == nil then + abort("Wrong spawn section for 'spawn_object' function %s. For object %s", tostring(spawn_sect), obj:name()) + end + + local path_name = p[2] + if path_name == nil then + abort("Wrong path_name for 'spawn_object' function %s. For object %s", tostring(path_name), obj:name()) + end + + if not level.patrol_path_exists(path_name) then + abort("Path %s doesnt exist. Function 'spawn_object' for object %s ", tostring(path_name), obj:name()) + end + local ptr = patrol(path_name) + local index = p[3] or 0 + local yaw = p[4] or 0 + + --' printf("Spawning %s at %s, %s", tostring(p[1]), tostring(p[2]), tostring(p[3])) + local se_obj = alife():create(spawn_sect, + ptr:point(index), + ptr:level_vertex_id(0), + ptr:game_vertex_id(0)) + if IsStalker( nil, se_obj:clsid()) then + se_obj:o_torso().yaw = yaw * math.pi / 180 + elseif se_obj:clsid() == clsid.script_phys then + se_obj:set_yaw(yaw * math.pi / 180) + end +end + +local jup_b219_position +local jup_b219_lvid +local jup_b219_gvid + +function jup_b219_save_pos() + local obj = get_story_object("jup_b219_gate_id") + if obj and obj:position() then + jup_b219_position = obj:position() + jup_b219_lvid = obj:level_vertex_id() + jup_b219_gvid = obj:game_vertex_id() + else + return + end + sobj = alife():object(obj:id()) + if sobj then + alife():release(sobj, true) + end +end + +function jup_b219_restore_gate() + local yaw = 0 + local spawn_sect = "jup_b219_gate" + if jup_b219_position then + local se_obj = alife():create(spawn_sect, + vector():set(jup_b219_position), + jup_b219_lvid, + jup_b219_gvid) + se_obj:set_yaw(yaw * math.pi / 180) + end +end + +function spawn_corpse(actor, obj, p) + --' p[1] - ÑÐµÐºÑ†Ð¸Ñ ÐºÐ¾Ð³Ð¾ Ñпаунить + --' p[2] - Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ€ÑƒÐ»ÑŒÐ½Ð¾Ð³Ð¾ пути где Ñпаунить. + local spawn_sect = p[1] + if spawn_sect == nil then + abort("Wrong spawn section for 'spawn_corpse' function %s. For object %s", tostring(spawn_sect), obj:name()) + end + + local path_name = p[2] + if path_name == nil then + abort("Wrong path_name for 'spawn_corpse' function %s. For object %s", tostring(path_name), obj:name()) + end + + if not level.patrol_path_exists(path_name) then + abort("Path %s doesnt exist. Function 'spawn_corpse' for object %s ", tostring(path_name), obj:name()) + end + local ptr = patrol(path_name) + local index = p[3] or 0 + + local se_obj = alife():create(spawn_sect, + ptr:point(index), + ptr:level_vertex_id(0), + ptr:game_vertex_id(0)) + se_obj:kill() +end + + +function spawn_object_in(actor, obj, p) + --' p[1] - ÑÐµÐºÑ†Ð¸Ñ ÐºÐ¾Ð³Ð¾ Ñпаунить + --' p[2] - Ñтори айди обьекта в который Ñпавнить + local spawn_sect = p[1] + if spawn_sect == nil then + abort("Wrong spawn section for 'spawn_object' function %s. For object %s", tostring(spawn_sect), obj:name()) + end + if p[2] == nil then + abort("Wrong target_name for 'spawn_object_in' function %s. For object %s", tostring(target_name), obj:name()) + end +-- local box = alife():object(target_name) +-- if(box==nil) then + + printf("trying to find object %s", tostring(p[2])) + + local target_obj_id = get_story_object_id(p[2]) + if target_obj_id ~= nil then + box = alife():object(target_obj_id) + if box == nil then + abort("There is no such object %s", p[2]) + end + alife():create(spawn_sect,vector(),0,0,target_obj_id) + else + abort("object is nil %s", tostring(p[2])) + end +end + + +function spawn_npc_in_zone(actor, obj, p) + --' p[1] - ÑÐµÐºÑ†Ð¸Ñ ÐºÐ¾Ð³Ð¾ Ñпаунить + --' p[2] - Ð¸Ð¼Ñ Ð·Ð¾Ð½Ñ‹ в которой Ñпаунить. + local spawn_sect = p[1] + if spawn_sect == nil then + abort("Wrong spawn section for 'spawn_object' function %s. For object %s", tostring(spawn_sect), obj:name()) + end + local zone_name = p[2] + if zone_name == nil then + abort("Wrong zone_name for 'spawn_object' function %s. For object %s", tostring(zone_name), obj:name()) + end + if db.zone_by_name[zone_name] == nil then + abort("Zone %s doesnt exist. Function 'spawn_object' for object %s ", tostring(zone_name), obj:name()) + end + local zone = db.zone_by_name[zone_name] +-- printf("spawn_npc_in_zone: spawning %s at zone %s, squad %s", tostring(p[1]), tostring(p[2]), tostring(p[3])) + local spawned_obj = alife():create( spawn_sect, + zone:position(), + zone:level_vertex_id(), + zone:game_vertex_id()) + spawned_obj.sim_forced_online = true + spawned_obj.squad = 1 or p[3] + db.script_ids[spawned_obj.id] = zone_name +end + +function destroy_object(actor, obj, p) + local sobj + if p == nil then + sobj = alife():object(obj:id()) + else + if p[1] == nil or p[2] == nil then + abort("Wrong parameters in destroy_object function!!!") + end + local target_str = nil + if p[3] ~= nil then + target_str = p[1].."|"..p[2]..","..p[3] + else + target_str = p[1].."|"..p[2] + end + local target_position, target_id, target_init = xr_remark.init_target(obj, target_str) + if target_id == nil then + printf("You are trying to set non-existant target [%s] for object [%s] in section [%s]", tostring(target_str), tostring(obj:name()), tostring(db.storage[obj:id()].active_section)) + end + sobj = alife():object(target_id) + end + if sobj == nil then + return + end + printf("releasing object ["..sobj:name().."]") + alife():release(sobj, true) +end + +function give_actor(actor, npc, p) + for k,v in pairs(p) do + alife():create(v, + db.actor:position(), + db.actor:level_vertex_id(), + db.actor:game_vertex_id(), + db.actor:id()) + news_manager.relocate_item(db.actor, "in", v) + end +end + +function activate_weapon_slot(actor, npc, p) + db.actor:activate_slot(p[1]) +end + +function anim_obj_forward(actor, npc, p) + for k,v in pairs(p) do + if v ~= nil then + db.anim_obj_by_name[v]:anim_forward() + end + end +end +function anim_obj_backward(actor, npc, p) + if p[1] ~= nil then + db.anim_obj_by_name[p[1]]:anim_backward() + end +end +function anim_obj_stop(actor, npc, p) + if p[1] ~= nil then + db.anim_obj_by_name[p[1]]:anim_stop() + end +end + +-- Функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð¾Ð³Ð½ÐµÐ½Ð½Ñ‹Ð¼Ð¸ зонами. +--[[ +function turn_on_fire_zone(actor, npc, p) + bind_campfire.fire_zones_table[ p[1] ]:turn_on() +end + +function turn_off_fire_zone(actor, npc, p) + bind_campfire.fire_zones_table[ p[1] ]:turn_off() +end +]]-- +--'----------------------------------------------------------------------------------- +--' Функции Ð´Ð»Ñ Ð¾Ñ‚Ñ‹Ð³Ñ€Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð·Ð²ÑƒÐºÐ° +--'----------------------------------------------------------------------------------- +function play_sound(actor, obj, p) + local theme = p[1] + local faction = p[2] + local point = sim_board.get_sim_board().smarts_by_names[p[3]] + if point ~= nil then + point = point.id + elseif p[3]~=nil then + point = p[3] + end + + if obj and IsStalker(obj) then + if not obj:alive() then + abort("Stalker [%s][%s] is dead, but you wants to say something for you: [%s]!", tostring(obj:id()), tostring(obj:name()), p[1]) + end + end + + xr_sound.set_sound_play(obj:id(), theme, faction, point) +end + +function play_sound_by_story(actor, obj, p) + local story_obj = get_story_object_id(p[1]) + local theme = p[2] + local faction = p[3] + local point = sim_board.get_sim_board().smarts_by_names[p[4]] + if point ~= nil then + point = point.id + elseif p[4]~=nil then + point = p[4] + end + xr_sound.set_sound_play(story_obj, theme, faction, point) +end + +function stop_sound(actor, npc) + xr_sound.stop_sounds_by_id(npc:id()) +end + +function play_sound_looped(actor, obj, p) + local theme = p[1] + xr_sound.play_sound_looped(obj:id(), theme) +end + +function stop_sound_looped(actor, obj) + xr_sound.stop_sound_looped(obj:id()) +end + +function barrel_explode (actor , npc , p) + local expl_obj = get_story_object (p[1]) + if expl_obj ~= nil then + expl_obj:explode(0) + end +end + +--'----------------------------------------------------------------------------------- +--' Alife support +--'----------------------------------------------------------------------------------- +--[[ +function start_sim(actor, obj) + sim_board.get_sim_board():start_sim() +end + +function stop_sim(actor, obj) + sim_board.get_sim_board():stop_sim() +end + +function update_faction_brain(actor, obj, p) + if p[1] == nil then + abort("Wrong parameters update_faction_brain") + end + local board = sim_board.get_sim_board() + local player = board.players[ p[1] ] + if player == nil then + abort("Can't find player %s", tostring(p[1])) + end + player:faction_brain_update() +end +]]-- + +function create_squad(actor, obj, p) + if obj ~= nil then + printf("pl:creating_squad from obj [%s] in section [%s]", tostring(obj:name()), tostring(db.storage[obj:id()].active_section)) + end + local squad_id = p[1] + if squad_id == nil then + abort("Wrong squad identificator [NIL] in create_squad function") + end + local smart_name = p[2] + if smart_name == nil then + abort("Wrong smart name [NIL] in create_squad function") + end + + local ltx = sim_board.squad_ltx + + if not ltx:section_exist(squad_id) then + abort("Wrong squad identificator [%s]. Squad descr doesnt exist.", tostring(squad_id)) + end + + local board = sim_board.get_sim_board() + local smart = board.smarts_by_names[smart_name] + if smart == nil then + abort("Wrong smart_name [%s] for [%s] faction in create_squad function", tostring(smart_name), tostring(player_name)) + end + + local squad = board:create_squad(smart, squad_id) + + + board:enter_smart(squad, smart.id) + + for k in squad:squad_members() do + board:setup_squad_and_group(k.object) + end + + squad:update() +end + +function create_squad_member(actor, obj, p) + local squad_member_sect = p[1] + local story_id = p[2] + local position = nil + local level_vertex_id = nil + local game_vertex_id = nil + if story_id == nil then + abort("Wrong squad identificator [NIL] in 'create_squad_member' function") + end + local board = sim_board.get_sim_board() + local squad = get_story_squad(story_id) + local squad_smart = board.smarts[squad.smart_id].smrt + if p[3] ~= nil then + local spawn_point + if p[3] == "simulation_point" then + spawn_point = utils.cfg_get_string(sim_board.squad_ltx, squad:section_name(), "spawn_point", obj, false, "") + if spawn_point == "" or spawn_point == nil then + spawn_point = xr_logic.parse_condlist(obj, "spawn_point", "spawn_point", squad_smart.spawn_point) + else + spawn_point = xr_logic.parse_condlist(obj, "spawn_point", "spawn_point", spawn_point) + end + spawn_point = xr_logic.pick_section_from_condlist(db.actor, obj, spawn_point) + else + spawn_point = p[3] + end + position = patrol(spawn_point):point(0) + level_vertex_id = patrol(spawn_point):level_vertex_id(0) + game_vertex_id = patrol(spawn_point):game_vertex_id(0) + else + local commander = alife():object(squad:commander_id()) + position = commander.position + level_vertex_id = commander.m_level_vertex_id + game_vertex_id = commander.m_game_vertex_id + end + local new_member_id = squad:add_squad_member(squad_member_sect, position, level_vertex_id, game_vertex_id) + squad:assign_squad_member_to_smart(new_member_id, squad_smart) + board:setup_squad_and_group(alife():object(new_member_id)) + --squad_smart:refresh() + squad:update() +end + +function remove_squad(actor, obj, p) + local story_id = p[1] + if story_id == nil then + abort("Wrong squad identificator [NIL] in remove_squad function") + end + local squad = get_story_squad(story_id) + if squad == nil then + assert("Wrong squad identificator [%s]. squad doesnt exist", tostring(story_id)) + return + end + local board = sim_board.get_sim_board() + board:remove_squad(squad) +end + +function kill_squad(actor, obj, p) + local story_id = p[1] + if story_id == nil then + abort("Wrong squad identificator [NIL] in kill_squad function") + end + local squad = get_story_squad(story_id) + if squad == nil then + return + end + local squad_npcs = {} + for k in squad:squad_members() do + squad_npcs[k.id] = true + end + + for k,v in pairs(squad_npcs) do + local cl_obj = db.storage[k] and db.storage[k].object + if cl_obj == nil then + alife():object(tonumber(k)):kill() + else + cl_obj:kill(cl_obj) + end + end +end + +function heal_squad(actor, obj, p) + local story_id = p[1] + local health_mod = 1 + if p[2] and p[2] ~= nil then + health_mod = math.ceil(p[2]/100) + end + if story_id == nil then + abort("Wrong squad identificator [NIL] in heal_squad function") + end + local squad = get_story_squad(story_id) + if squad == nil then + return + end + for k in squad:squad_members() do + local cl_obj = db.storage[k.id] and db.storage[k.id].object + if cl_obj ~= nil then + cl_obj.health = health_mod + end + end +end + +--[[ +function update_squad(actor, obj, p) + local squad_id = p[1] + if squad_id == nil then + abort("Wrong squad identificator [NIL] in remove_squad function") + end + local board = sim_board.get_sim_board() + local squad = board.squads[squad_id] + if squad == nil then + assert("Wrong squad identificator [%s]. squad doesnt exist", tostring(squad_id)) + return + end + squad:update() +end +]]-- + +function clear_smart_terrain(actor, obj, p) + local smart_name = p[1] + if smart_name == nil then + abort("Wrong squad identificator [NIL] in clear_smart_terrain function") + end + + local board = sim_board.get_sim_board() + local smart = board.smarts_by_names[smart_name] + local smart_id = smart.id + for k,v in pairs(board.smarts[smart_id].squads) do + if p[2] and p[2] == "false" then + if not get_object_story_id(v.id) then + board:exit_smart(v, smart_id) + board:remove_squad(v) + end + else + board:exit_smart(v, smart_id) + board:remove_squad(v) + end + end +end + +--[[ +function set_actor_faction(actor, obj, p) + if p[1] == nil then + abort("Wrong parameters") + end + sim_board.get_sim_board():set_actor_community(p[1]) +end +]]-- +--'----------------------------------------------------------------------------------- +--' Quest support +--'----------------------------------------------------------------------------------- +function give_task(actor, obj, p) + if p[1] == nil then + abort("No parameter in give_task function.") + end + task_manager.get_task_manager():give_task(p[1]) +end + +function set_active_task(actor, npc, p) + if(p[1]) then + local t = db.actor:get_task(tostring(p[1]), true) + if(t) then + db.actor:set_active_task(t) + end + end +end + +-- Функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñми + +function actor_friend(actor, npc) + printf("_bp: xr_effects: actor_friend(): npc='%s': time=%d", npc:name(), time_global()) + npc:force_set_goodwill( 1000, actor) +end + +function actor_neutral(actor, npc) + npc:force_set_goodwill( 0, actor) +end + +function actor_enemy(actor, npc) + npc:force_set_goodwill( -1000, actor) +end + +function set_squad_neutral_to_actor(actor, npc, p) + local story_id = p[1] + local squad = get_story_squad(story_id) + if squad == nil then + printf("There is no squad with id[%s]", tostring(story_id)) + return + end + squad:set_squad_relation("neutral") +end + +function set_squad_friend_to_actor(actor, npc, p) + local story_id = p[1] + local squad = get_story_squad(story_id) + if squad == nil then + printf("There is no squad with id[%s]", tostring(story_id)) + return + end + squad:set_squad_relation("friend") +end + +--Сделать актера врагом к отрÑду, передаетÑÑ Ð¸Ð¼Ñ Ð¾Ñ‚Ñ€Ñда +function set_squad_enemy_to_actor( actor, npc, p) + local story_id = p[1] + local squad = get_story_squad(story_id) + if squad == nil then + printf("There is no squad with id[%s]", tostring(story_id)) + return + end + squad:set_squad_relation("enemy") +end + +--[[ +function set_friends(actor, npc, p) + local npc1 + for i, v in pairs(p) do + npc1 = get_story_object(v) + if npc1 and npc1:alive() then + --printf("_bp: %d:set_friends(%d)", npc:id(), npc1:id()) + npc:set_relation(game_object.friend, npc1) + npc1:set_relation(game_object.friend, npc) + end + end +end + +function set_enemies(actor, npc, p) + local npc1 + for i, v in pairs(p) do + --printf("_bp: set_enemies(%d)", v) + npc1 = get_story_object(v) + if npc1 and npc1:alive() then + npc:set_relation(game_object.enemy, npc1) + npc1:set_relation(game_object.enemy, npc) + end + end +end + +function set_gulag_relation_actor(actor, npc, p) + if(p[1]) and (p[2]) then + game_relations.set_gulag_relation_actor(p[1], p[2]) + end +end + +function set_factions_community(actor, npc, p) + if(p[1]~=nil) and (p[2]~=nil) and (p[3]~=nil) then + game_relations.set_factions_community(p[1], p[2], p[3]) + end +end + +function set_squad_community_goodwill(actor, npc, p) + if(p[1]~=nil) and (p[2]~=nil) and (p[3]~=nil) then + game_relations.set_squad_community_goodwill(p[1], p[2], p[3]) + end +end +]]-- + +--sets NPC relation to actor +--set_npc_sympathy(number) +--call only from npc`s logic +function set_npc_sympathy(actor, npc, p) + if(p[1]~=nil) then + game_relations.set_npc_sympathy(npc, p[1]) + end +end + +--sets SQUAD relation to actor +--set_squad_goodwill(faction:number) +function set_squad_goodwill(actor, npc, p) + if(p[1]~=nil) and (p[2]~=nil) then + game_relations.set_squad_goodwill(p[1], p[2]) + end +end + +function set_squad_goodwill_to_npc(actor, npc, p) + if(p[1]~=nil) and (p[2]~=nil) then + game_relations.set_squad_goodwill_to_npc(npc, p[1], p[2]) + end +end + +function inc_faction_goodwill_to_actor(actor, npc, p) + local community = p[1] + local delta = p[2] + if delta and community then + game_relations.change_factions_community_num(community,actor:id(), tonumber(delta)) + else + abort("Wrong parameters in function 'inc_faction_goodwill_to_actor'") + end +end + +function dec_faction_goodwill_to_actor(actor, npc, p) + local community = p[1] + local delta = p[2] + if delta and community then + game_relations.change_factions_community_num(community,actor:id(), -tonumber(delta)) + else + abort("Wrong parameters in function 'dec_faction_goodwill_to_actor'") + end +end + + +--[[ +function add_custom_static(actor, npc, p) + if p[1] ~= nil and p[2] ~= nil then + get_hud():AddCustomStatic(p[1], true) + get_hud():GetCustomStatic(p[1]):wnd():SetTextST(p[2]) + else + abort("Invalid parameters in function add_custom_static!!!") + end +end + +function remove_custom_static(actor, npc, p) + if p[1] ~= nil then + get_hud():RemoveCustomStatic(p[1]) + else + abort("Invalid parameters in function remove_custom_static!!!") + end +end +]]-- + +function kill_actor(actor, npc) + db.actor:kill(db.actor) +end + +----------------------------------------------------------------------- +-- Treasures support +----------------------------------------------------------------------- +function give_treasure (actor, npc, p) + if p == nil then + abort("Required parameter is [NIL]") + end + for k,v in pairs(p) do + treasure_manager.get_treasure_manager():give_treasure(v) + end +end + +--[[ +function change_tsg(actor, npc, p) + npc:change_team(p[1], p[2], p[3]) +end + +function exit_game(actor, npc) + get_console():execute("quit") +end +]]-- + +function start_surge(actor, npc, p) + surge_manager.start_surge(p) +end + +function stop_surge(actor, npc, p) + surge_manager.stop_surge() +end + +function set_surge_mess_and_task(actor, npc, p) + if(p) then + surge_manager.set_surge_message(p[1]) + if(p[2]) then + surge_manager.set_surge_task(p[2]) + end + end +end + +--[[ +function enable_level_changer(actor, npc, p) + if(p[1]~=nil) then + local obj = get_story_object(p[1]) + if(obj) then + if db.storage[obj:id()] and db.storage[obj:id()].s_obj then + db.storage[obj:id()].s_obj.enabled = true + db.storage[obj:id()].s_obj.hint = "level_changer_invitation" + else + return + end + obj:enable_level_changer(true) + level_tasks.add_lchanger_location() + obj:set_level_changer_invitation("level_changer_invitation") + end + end +end + +function disable_level_changer(actor, npc, p) + if(p[1]~=nil) then + local obj = get_story_object(p[1]) + if(obj) then + if not(db.storage[obj:id()] and db.storage[obj:id()].s_obj) then + return + end + obj:enable_level_changer(false) + level_tasks.del_lchanger_mapspot(tonumber(p[1])) + db.storage[obj:id()].s_obj.enabled = false + if(p[2]==nil) then + obj:set_level_changer_invitation("level_changer_disabled") + db.storage[obj:id()].s_obj.hint = "level_changer_disabled" + else + obj:set_level_changer_invitation(p[2]) + db.storage[obj:id()].s_obj.hint = p[2] + end + end + end +end + +function change_actor_community(actor, npc, p) + if(p[1]~=nil) then + db.actor:set_character_community(p[1], 0, 0) + end +end + +function set_faction_community_to_actor(actor, npc, p) +-- run_string xr_effects.change_actor_community(nil,nil,{"actor_dolg"}) + if(p[1]~=nil) and (p[2]~=nil) then + local rel = 0 + if(p[2]=="enemy") then + rel = -3000 + elseif(p[2]=="friend") then + rel = 1000 + end + db.actor:set_community_goodwill(p[1], rel) + end +end + +function disable_collision(actor, npc) + npc:wounded(true) +end +function enable_collision(actor, npc) + npc:wounded(false) +end + +function disable_actor_collision(actor, npc) + actor:wounded(true) +end +function enable_actor_collision(actor, npc) + actor:wounded(false) +end + +function relocate_actor_inventory_to_box(actor, npc, p) + local function transfer_object_item(item) + if item:section() ~= "wpn_binoc" and item:section() ~= "wpn_knife" and item:section() ~= "device_torch" then + db.actor:transfer_item(item, inv_box_1) + end + end + inv_box_1 = get_story_object (p[1]) + actor:inventory_for_each(transfer_object_item) +end +]]-- + +function set_level_faction_community(actor, npc, p) + if(p[1]~=nil) and (p[2]~= nil) and (p[3]~= nil) then + local faction = sim_board.get_sim_board().players[p[1]] + local goodwill = 0 + if(p[3]=="enemy") then + goodwill = -3000 + elseif(p[3]=="friend") then + goodwill = 1000 + end + for k,v in pairs(faction.squads) do + local squad_level = alife():level_name(game_graph():vertex(alife():object(v:commander_id()).m_game_vertex_id):level_id()) + if(squad_level==p[2]) then + for kk in v:squad_members() do + local npc = kk.object + local tbl = game_relations.temp_goodwill_table + if(tbl.communities==nil) then + tbl.communities = {} + end + if(tbl.communities[p[1]]==nil) then + tbl.communities[p[1]] = {} + end + tbl.communities[p[1]][npc.id] = goodwill + if(db.storage[npc.id]~=nil) then + game_relations.set_level_faction_community(db.storage[npc.id].object) + end + end + end + end + end +end + +--[[ +function make_actor_visible_to_npc(actor,npc,p) + npc:make_object_visible_somewhen(db.actor) +end +]]-- + +function make_actor_visible_to_squad(actor,npc,p) + local story_id = p and p[1] + local squad = get_story_squad(story_id) + if squad == nil then abort("There is no squad with id[%s]", story_id) end + for k in squad:squad_members() do + local obj = level.object_by_id(k.id) + if obj ~= nil then + obj:make_object_visible_somewhen( db.actor ) + end + end +end + +function stop_sr_cutscene(actor,npc,p) + local obj = db.storage[npc:id()] + if(obj.active_scheme~=nil) then + obj[obj.active_scheme].signals["cam_effector_stop"] = true + end +end + +--[[ +function reset_dialog_end_signal(actor, npc, p) + local st = db.storage[npc:id()] + if(st.active_scheme==nil) then + return + end + if(st[st.active_scheme].signals==nil) then + return + end + st[st.active_scheme].signals["dialog_end"] = nil +end + +function add_map_spot(actor, npc, p) + if(p[1]==nil) then + abort("Story id for add map spot function is not set") + else + local story_id = tonumber(p[1]) + local id = id_by_sid(story_id) + if(id==nil) then + local obj = alife():object(p[1]) + id = obj and obj.id + end + if(id~=nil) then + if(p[2]==nil) then + p[2] = "primary_task_location" + end + if(p[3]==nil) then + p[3] = "default" + end + if level.map_has_object_spot(id, p[2]) == 0 then + level.map_add_object_spot_ser(id, p[2], p[3]) + end + else + abort("Wrong story id or name [%s] for map spot function", tostring(story_id)) + end + end +end + +function remove_map_spot(actor, npc, p) + if(p[1]==nil) then + abort("Story id for add map spot function is not set") + else + local story_id = tonumber(p[1]) + local id = id_by_sid(story_id) + if(id==nil) then + local obj = alife():object(p[1]) + id = obj and obj.id + end + if(id~=nil) then + if(p[2]==nil) then + p[2] = "primary_task_location" + end + if level.map_has_object_spot(id, p[2]) ~= 0 then + level.map_remove_object_spot(id, p[2]) + end + else + abort("Wrong story id or name [%s] for map spot function", tostring(story_id)) + end + end +end +]]-- + +-- Anomal fields support +function enable_anomaly(actor, npc, p) + if p[1] == nil then + abort("Story id for enable_anomaly function is not set") + end + + local obj = get_story_object(p[1]) + if not obj then + abort("There is no object with story_id %s for enable_anomaly function", tostring(p[1])) + end + obj:enable_anomaly() +end + +function disable_anomaly(actor, npc, p) + if p[1] == nil then + abort("Story id for disable_anomaly function is not set") + end + + local obj = get_story_object(p[1]) + if not obj then + abort("There is no object with story_id %s for disable_anomaly function", tostring(p[1])) + end + obj:disable_anomaly() +end + +function launch_signal_rocket(actor, obj, p) + if p==nil then + abort("Signal rocket name is not set!") + end + if db.signal_light[p[1]] then + db.signal_light[p[1]]:launch() + else + abort("No such signal rocket: [%s] on level", tostring(p[1])) + end +end + +--[[ +function reset_faction_goodwill(actor, obj, p) + if db.actor and p[1] then + local board = sim_board.get_sim_board() + local faction = board.players[ p[1] ] + if faction then + db.actor:set_community_goodwill(p[1], 0) + end + end +end +]]-- + +function add_cs_text(actor, npc, p) + if p[1] then + local hud = get_hud() + local cs_text = hud:GetCustomStatic("text_on_screen_center") + if cs_text then + hud:RemoveCustomStatic("text_on_screen_center") + end + hud:AddCustomStatic("text_on_screen_center", true) + cs_text = hud:GetCustomStatic("text_on_screen_center") + cs_text:wnd():TextControl():SetText(game.translate_string(p[1])) + end +end + +function del_cs_text(actor, npc, p) + local hud = get_hud() + cs_text = hud:GetCustomStatic("text_on_screen_center") + if cs_text then + hud:RemoveCustomStatic("text_on_screen_center") + end +end + +function spawn_item_to_npc(actor, npc, p) + local new_item = p[1] + if p[1] then + alife():create(new_item, + npc:position(), + npc:level_vertex_id(), + npc:game_vertex_id(), + npc:id()) + end +end + +function give_money_to_npc(actor, npc, p) + local money = p[1] + if p[1] then + npc:give_money(money) + end +end + +function seize_money_to_npc(actor, npc, p) + local money = p[1] + if p[1] then + npc:give_money(-money) + end +end + +-- Передача предмета от непиÑÑ Ðº непиÑÑŽ +-- relocate_item(item_name:story_id_from:story_id_to) +function relocate_item(actor, npc, p) + local item = p and p[1] + local from_obj = p and get_story_object(p[2]) + local to_obj = p and get_story_object(p[3]) + if to_obj ~= nil then + if from_obj ~= nil and from_obj:object(item) ~= nil then + from_obj:transfer_item(from_obj:object(item), to_obj) + else + alife():create(item, + to_obj:position(), + to_obj:level_vertex_id(), + to_obj:game_vertex_id(), + to_obj:id()) + end + else + abort("Couldn't relocate item to NULL") + end +end + +-- Сделать Ñквады врагами, передаютÑÑ Ð´Ð²Ð° Ñквада set_squads_enemies(squad_name_1:squad_name_2) +function set_squads_enemies(actor, npc, p) + if (p[1] == nil or p[2] == nil) then + abort("Wrong parameters in function set_squad_enemies") + return + end + + local squad_1 = get_story_squad(p[1]) + local squad_2 = get_story_squad(p[2]) + + if squad_1 == nil then + assert("There is no squad with id[%s]", tostring(p[1])) + return + end + if squad_2 == nil then + assert("There is no squad with id[%s]", tostring(p[2])) + return + end + + for k in squad_1:squad_members() do + local npc_obj_1 = db.storage[k.id] and db.storage[k.id].object + if npc_obj_1 ~= nil then + for kk in squad_2:squad_members() do + local npc_obj_2 = db.storage[kk.id] and db.storage[kk.id].object + if npc_obj_2 ~= nil then + npc_obj_1:set_relation(game_object.enemy, npc_obj_2) + npc_obj_2:set_relation(game_object.enemy, npc_obj_1) + printf("set_squads_enemies: %d:set_enemy(%d)", npc_obj_1:id(), npc_obj_2:id()) + end + end + end + end +end + +local particles_table = { +[1] = {particle = particles_object("anomaly2\\teleport_out_00"), sound = sound_object("anomaly\\teleport_incoming")}, +[2] = {particle = particles_object("anomaly2\\teleport_out_00"), sound = sound_object("anomaly\\teleport_incoming")}, +[3] = {particle = particles_object("anomaly2\\teleport_out_00"), sound = sound_object("anomaly\\teleport_incoming")}, +[4] = {particle = particles_object("anomaly2\\teleport_out_00"), sound = sound_object("anomaly\\teleport_incoming")}, +} + +function jup_b16_play_particle_and_sound(actor, npc, p) + particles_table[p[1]].particle :play_at_pos(patrol(npc:name().."_particle"):point(0)) + --particles_table[p[1]].sound :play_at_pos(actor, patrol(npc:name().."_particle"):point(0), 0, sound_object.s3d) +end +--Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ ÑƒÑтановки ÑоÑтоÑÐ½Ð¸Ñ Ð²Ð¸Ð´Ð¸Ð¼Ð¾Ñти кровоÑоÑа. +-- Возможный набор параметров --> story_id:visibility_state(можно вызывать откуда угодно) или visibility_state(еÑли вызываетÑÑ Ð¸Ð· каÑтомдаты кровоÑоÑа) +-- visibility_state --> +-- 0 - невидимый +-- 1 - полувидимый +-- 2 - полноÑтью видимый +function set_bloodsucker_state(actor, npc, p) + if (p and p[1]) == nil then abort("Wrong parameters in function 'set_bloodsucker_state'!!!") end + local state = p[1] + if p[2] ~= nil then + state = p[2] + npc = get_story_object(p[1]) + end + if npc ~= nil then + if state == "default" then + npc:force_visibility_state(-1) + else + npc:force_visibility_state(tonumber(state)) + end + end +end + +--Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²Ñтавки предмета в определенную точку, Ñделал Ð´Ð»Ñ Ñцены б57 +function drop_object_item_on_point(actor, npc, p) + local drop_object = db.actor:object(p[1]) + local drop_point = patrol(p[2]):point(0) + db.actor:drop_item_and_teleport(drop_object, drop_point) +end + +--Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¾Ñ‚Ð½ÑÑ‚Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð¼ÐµÑ‚Ð° у игрока +function remove_item(actor, npc, p) + if (p and p[1]) == nil then abort("Wrong parameters in function 'remove_item'!!!") end + local item = p[1] + + local obj = db.actor:object(item) + if obj ~= nil then + alife():release(alife():object(obj:id()), true) + else + abort("Actor has no such item!") + end + news_manager.relocate_item(db.actor, "out", item) +end + +-- Сюжетное Ñохранение в важных меÑтах +function scenario_autosave(actor, npc, p) + local save_name = p[1] + if save_name == nil then + abort("You are trying to use scenario_autosave without save name") + end + + if IsImportantSave() then + local save_param = user_name().." - "..game.translate_string(save_name) + + get_console():execute("save "..save_param) + end +end + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +function zat_b29_create_random_infop(actor, npc, p) + if p[2] == nil then + abort("Not enough parameters for zat_b29_create_random_infop!") + end + + local amount_needed = p[1] + local current_infop = 0 + local total_infop = 0 + + if (not amount_needed or amount_needed == nil) then + amount_needed = 1 + end + + for k,v in pairs(p) do + if k > 1 then + total_infop = total_infop + 1 + disable_info(v) + end + end + + if amount_needed > total_infop then + amount_needed = total_infop + end + + for i = 1, amount_needed do + current_infop = math.random(1, total_infop) + for k,v in pairs(p) do + if k > 1 then + if (k == current_infop + 1 and (not has_alife_info(v))) then + db.actor:give_info_portion(v) + break + end + end + end + end +end + +function give_item_b29(actor, npc, p) +-- local story_object = p and get_story_object(p[1]) + local az_name + local az_table = { + "zat_b55_anomal_zone", + "zat_b54_anomal_zone", + "zat_b53_anomal_zone", + "zat_b39_anomal_zone", + "zaton_b56_anomal_zone", + } + + for i = 16, 23 do + if has_alife_info(dialogs_zaton.zat_b29_infop_bring_table[i]) then + for k,v in pairs(az_table) do + if has_alife_info(v) then + az_name = v + disable_info(az_name) + break + end + end + pick_artefact_from_anomaly(nil, nil, {p[1], az_name, dialogs_zaton.zat_b29_af_table[i]}) + break + end + end +end + +function relocate_item_b29(actor, npc, p) + local item + for i = 16, 23 do + if has_alife_info(dialogs_zaton.zat_b29_infop_bring_table[i]) then + item = dialogs_zaton.zat_b29_af_table[i] + break + end + end + local from_obj = p and get_story_object(p[1]) + local to_obj = p and get_story_object(p[2]) + if to_obj ~= nil then + if from_obj ~= nil and from_obj:object(item) ~= nil then + from_obj:transfer_item(from_obj:object(item), to_obj) + else + alife():create(item, + to_obj:position(), + to_obj:level_vertex_id(), + to_obj:game_vertex_id(), + to_obj:id()) + end + else + abort("Couldn't relocate item to NULL") + end +end + +-- Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ€ÐµÑетит ÑеквенÑную звукокую тему у непиÑÑ. by peacemaker, hein, redstain +function reset_sound_npc(actor, npc, p) + local obj_id = npc:id() + if obj_id and xr_sound.sound_table and xr_sound.sound_table[obj_id] then + xr_sound.sound_table[obj_id]:reset(obj_id) + end +end + +function jup_b202_inventory_box_relocate(actor, npc) + local inv_box_out = get_story_object("jup_b202_actor_treasure") + local inv_box_in = get_story_object("jup_b202_snag_treasure") + local items_to_relocate = {} + local function relocate(inv_box_out, item) + table.insert(items_to_relocate, item) + end + inv_box_out:iterate_inventory_box (relocate, inv_box_out) + for k,v in pairs(items_to_relocate) do + inv_box_out:transfer_item(v, inv_box_in) + end +end + +function clear_box(actor, npc, p) + if (p and p[1]) == nil then abort("Wrong parameters in function 'clear_box'!!!") end + + local inv_box = get_story_object(p[1]) + + if inv_box == nil then + abort("There is no object with story_id [%s]", tostring(p[1])) + end + + local items_table = {} + + local function add_items(inv_box, item) + table.insert(items_table, item) + end + + inv_box:iterate_inventory_box(add_items, inv_box) + + for k,v in pairs(items_table) do + alife():release(alife():object(v:id()), true) + end +end + +function activate_weapon(actor, npc, p) + local object = actor:object(p[1]) + if object == nil then + assert("Actor has no such weapon! [%s]", p[1]) + end + if object ~= nil then + actor:make_item_active(object) + end +end + +function set_game_time(actor, npc, p) + local real_hours = level.get_time_hours() + local real_minutes = level.get_time_minutes() + local hours = tonumber(p[1]) + local minutes = tonumber(p[2]) + if p[2] == nil then + minutes = 0 + end + local hours_to_change = hours - real_hours + if hours_to_change <= 0 then + hours_to_change = hours_to_change + 24 + end + local minutes_to_change = minutes - real_minutes + if minutes_to_change <= 0 then + minutes_to_change = minutes_to_change + 60 + hours_to_change = hours_to_change - 1 + elseif hours == real_hours then + hours_to_change = hours_to_change - 24 + end + level.change_game_time(0,hours_to_change,minutes_to_change) + level_weathers.get_weather_manager():forced_weather_change() + surge_manager.get_surge_manager().time_forwarded = true + printf("set_game_time: time changed to [%d][%d]", hours_to_change, minutes_to_change) +end + +function forward_game_time(actor, npc, p) + if not p then + abort("Insufficient or invalid parameters in function 'forward_game_time'!") + end + + local hours = tonumber(p[1]) + local minutes = tonumber(p[2]) + + if p[2] == nil then + minutes = 0 + end + level.change_game_time(0,hours,minutes) + level_weathers.get_weather_manager():forced_weather_change() + surge_manager.get_surge_manager().time_forwarded = true + printf("forward_game_time: time forwarded on [%d][%d]", hours, minutes) +end + +function stop_tutorial() + printf("stop tutorial called") + game.stop_tutorial() +end + +function jup_b10_spawn_drunk_dead_items(actor, npc, p) + local items_all = { + ["wpn_ak74"] = 1, + ["ammo_5.45x39_fmj"] = 5, + ["ammo_5.45x39_ap"] = 3, + ["wpn_fort"] = 1, + ["ammo_9x18_fmj"] = 3, + ["ammo_12x70_buck"] = 5, + ["ammo_11.43x23_hydro"] = 2, + ["grenade_rgd5"] = 3, + ["grenade_f1"] = 2, + ["medkit_army"] = 2, + ["medkit"] = 4, + ["bandage"] = 4, + ["antirad"] = 2, + ["vodka"] = 3, + ["energy_drink"] = 2, + ["conserva"] = 1, + ["jup_b10_ufo_memory_2"] = 1, + } + + local items = { + [2] = { + ["wpn_sig550_luckygun"] = 1, + }, + [1] = { + ["ammo_5.45x39_fmj"] = 5, + ["ammo_5.45x39_ap"] = 3, + ["wpn_fort"] = 1, + ["ammo_9x18_fmj"] = 3, + ["ammo_12x70_buck"] = 5, + ["ammo_11.43x23_hydro"] = 2, + ["grenade_rgd5"] = 3, + ["grenade_f1"] = 2, + }, + [0] = { + ["medkit_army"] = 2, + ["medkit"] = 4, + ["bandage"] = 4, + ["antirad"] = 2, + ["vodka"] = 3, + ["energy_drink"] = 2, + ["conserva"] = 1, + }, + } + + if p and p[1] ~= nil then + local cnt = xr_logic.pstor_retrieve(actor, "jup_b10_ufo_counter", 0) + if cnt > 2 then return end + for k,v in pairs(items[cnt]) do + local target_obj_id = get_story_object_id(p[1]) + if target_obj_id ~= nil then + box = alife():object(target_obj_id) + if box == nil then + abort("There is no such object %s", p[1]) + end + for i = 1,v do + alife():create(k,vector(),0,0,target_obj_id) + end + else + abort("object is nil %s", tostring(p[1])) + end + end + else + for k,v in pairs(items_all) do + for i = 1,v do + alife():create(k, + npc:position(), + npc:level_vertex_id(), + npc:game_vertex_id(), + npc:id()) + end + end + end + +end + +function pick_artefact_from_anomaly(actor, npc, p) + local npc + local az_name = p and p[2] + local af_name = p and p[3] + local af_id + local af_obj + local anomal_zone = db.anomaly_by_name[az_name] + + if p and p[1] then +-- if p[1] == "actor" then +-- npc = db.actor +-- else +-- npc = get_story_object(p[1]) +-- end + + local npc_id = get_story_object_id(p[1]) + if npc_id == nil then + abort("Couldn't relocate item to NULL in function 'pick_artefact_from_anomaly!'") + end + npc = alife():object(npc_id) + if npc and (not IsStalker(npc) or not npc:alive()) then + abort("Couldn't relocate item to NULL (dead or not stalker) in function 'pick_artefact_from_anomaly!'") + end + end + + if anomal_zone == nil then + abort("No such anomal zone in function 'pick_artefact_from_anomaly!'") + end + + if anomal_zone.spawned_count < 1 then + printf("No artefacts in anomal zone [%s]", az_name) + return + end + + for k,v in pairs(anomal_zone.artefact_ways_by_id) do + if alife():object(tonumber(k)) and af_name == alife():object(tonumber(k)):section_name() then + af_id = tonumber(k) + af_obj = alife():object(tonumber(k)) + break + end + if af_name == nil then + af_id = tonumber(k) + af_obj = alife():object(tonumber(k)) + af_name = af_obj:section_name() + break + end + end + + if af_id == nil then + printf("No such artefact [%s] found in anomal zone [%s]", tostring(af_name), az_name) + return + end + + anomal_zone:on_artefact_take(af_obj) + + alife():release(af_obj, true) + give_item(db.actor, npc, {af_name, p[1]}) +-- alife():create(af_name, +-- npc.position, +-- npc.level_vertex_id, +-- npc.game_vertex_id, +-- npc.id) +end + +function anomaly_turn_off (actor, npc, p) + local anomal_zone = db.anomaly_by_name[p[1]] + if anomal_zone == nil then + abort("No such anomal zone in function 'anomaly_turn_off!'") + end + anomal_zone:turn_off() +end + +function anomaly_turn_on (actor, npc, p) + local anomal_zone = db.anomaly_by_name[p[1]] + if anomal_zone == nil then + abort("No such anomal zone in function 'anomaly_turn_on!'") + end + if p[2] then + anomal_zone:turn_on(true) + else + anomal_zone:turn_on(false) + end +end + +function zat_b202_spawn_random_loot(actor, npc, p) + local si_table = {} + si_table[1] = { + [1] = {item = {"bandage","bandage","bandage","bandage","bandage","medkit","medkit","medkit","conserva","conserva"}}, + [2] = {item = {"medkit","medkit","medkit","medkit","medkit","vodka","vodka","vodka","kolbasa","kolbasa"}}, + [3] = {item = {"antirad","antirad","antirad","medkit","medkit","bandage","kolbasa","kolbasa","conserva"}}, + } + si_table[2] = { + [1] = {item = {"grenade_f1","grenade_f1","grenade_f1"}}, + [2] = {item = {"grenade_rgd5","grenade_rgd5","grenade_rgd5","grenade_rgd5","grenade_rgd5"}} + } + si_table[3] = { + [1] = {item = {"detector_elite"}}, + [2] = {item = {"detector_advanced"}} + } + si_table[4] = { + [1] = {item = {"helm_hardhat"}}, + [2] = {item = {"helm_respirator"}} + } + si_table[5] = { + [1] = {item = {"wpn_val","ammo_9x39_ap","ammo_9x39_ap","ammo_9x39_ap"}}, + [2] = {item = {"wpn_spas12","ammo_12x70_buck","ammo_12x70_buck","ammo_12x70_buck","ammo_12x70_buck"}}, + [3] = {item = {"wpn_desert_eagle","ammo_11.43x23_fmj","ammo_11.43x23_fmj","ammo_11.43x23_hydro","ammo_11.43x23_hydro"}}, + [4] = {item = {"wpn_abakan","ammo_5.45x39_ap","ammo_5.45x39_ap"}}, + [5] = {item = {"wpn_sig550","ammo_5.56x45_ap","ammo_5.56x45_ap"}}, + [6] = {item = {"wpn_ak74","ammo_5.45x39_fmj","ammo_5.45x39_fmj"}}, + [7] = {item = {"wpn_l85","ammo_5.56x45_ss190","ammo_5.56x45_ss190"}} + } + si_table[6] = { + [1] = {item = {"specops_outfit"}}, + [2] = {item = {"stalker_outfit"}} + } + weight_table = {} + weight_table[1] = 2 + weight_table[2] = 2 + weight_table[3] = 2 + weight_table[4] = 2 + weight_table[5] = 4 + weight_table[6] = 4 + local spawned_item = {} + local max_weight = 12 + repeat + local n = 0 + repeat + n = math.random(1, #weight_table) + local prap = true + for k,v in pairs(spawned_item) do + if v == n then + prap = false + break + end + end + until (prap) and ((max_weight - weight_table[n]) >= 0) + max_weight = max_weight - weight_table[n] + table.insert(spawned_item,n) + local item = math.random(1, #si_table[n]) + for k,v in pairs(si_table[n][item].item) do + spawn_object_in(actor, npc, {tostring(v),"jup_b202_snag_treasure"}) + end + until max_weight <= 0 +end + +function zat_a1_tutorial_end_give(actor, npc) +-- level.add_pp_effector("black.ppe", 1313, true) ---do not stop on r1 ! + db.actor:give_info_portion("zat_a1_tutorial_end") +end + +function oasis_heal() + local d_health = 0.005 + local d_power = 0.01 + local d_bleeding = 0.05 + local d_radiation = -0.05 + if(db.actor.health<1) then + db.actor.health = d_health + end + if(db.actor.power<1) then + db.actor.power = d_power + end + if(db.actor.radiation>0) then + db.actor.radiation = d_radiation + end + if(db.actor.bleeding>0) then + db.actor.bleeding = d_bleeding + end + db.actor.satiety = 0.01 +end + +--Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ñ€Ð¸Ð½Ð¸Ð¼Ð°ÐµÑ‚ только одно значение, определÑющее Ð´Ð»Ñ ÐºÐ°ÐºÐ¾Ð¹ групировки запуÑкаетÑÑ. доÑтупные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ [duty, freedom] +function jup_b221_play_main(actor, npc, p) + local info_table = {} + local main_theme + local reply_theme + local info_need_reply + local reachable_theme = {} + local theme_to_play = 0 + + if (p and p[1]) == nil then + abort("No such parameters in function 'jup_b221_play_main'") + end +--СоÑтавлÑем таблицу инфопоршинов определÑющих доÑтупноÑть той или иной темы, определÑем префикÑÑ‹ темы, ответа и реакции, ÑоответÑтвенно Ð´Ð»Ñ Ð´Ð¾Ð»Ð³Ð° или Ð´Ð»Ñ Ñвободы. + if tostring(p[1]) == "duty" then + info_table = { + [1] = "jup_b25_freedom_flint_gone", + [2] = "jup_b25_flint_blame_done_to_duty", + [3] = "jup_b4_monolith_squad_in_duty", + [4] = "jup_a6_duty_leader_bunker_guards_work", + [5] = "jup_a6_duty_leader_employ_work", + [6] = "jup_b207_duty_wins" + } + main_theme = "jup_b221_duty_main_" + reply_theme = "jup_b221_duty_reply_" + info_need_reply = "jup_b221_duty_reply" + elseif tostring(p[1]) == "freedom" then + info_table = { + [1] = "jup_b207_freedom_know_about_depot", + [2] = "jup_b46_duty_founder_pda_to_freedom", + [3] = "jup_b4_monolith_squad_in_freedom", + [4] = "jup_a6_freedom_leader_bunker_guards_work", + [5] = "jup_a6_freedom_leader_employ_work", + [6] = "jup_b207_freedom_wins" + } + main_theme = "jup_b221_freedom_main_" + reply_theme = "jup_b221_freedom_reply_" + info_need_reply = "jup_b221_freedom_reply" + else + abort("Wrong parameters in function 'jup_b221_play_main'") + end +--СоÑтавлÑем таблицу доÑтыпных тем(тлько номера тем). + for k,v in pairs(info_table) do + if (has_alife_info(v)) and (not has_alife_info(main_theme .. tostring(k) .. "_played")) then + table.insert(reachable_theme,k) +-- printf("jup_b221_play_main: table reachable_theme ------------------------------> [%s]", tostring(k)) + end + end +--ЕÑли таблица доÑтупных тем пуÑта играем ответ. ЕÑли же она не пуÑта играем оÑновную тему. ЕÑли играем оÑновную тему заноÑим значение Ñчетчика Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸. Тему выбираем по рандому. + if #reachable_theme ~= 0 then + disable_info(info_need_reply) + theme_to_play = reachable_theme[math.random(1, #reachable_theme)] +-- printf("jup_b221_play_main: variable theme_to_play ------------------------------> [%s]", tostring(theme_to_play)) + xr_logic.pstor_store(actor,"jup_b221_played_main_theme",tostring(theme_to_play)) + db.actor:give_info_portion(main_theme .. tostring(theme_to_play) .."_played") + if theme_to_play ~= 0 then + play_sound(actor, npc, {main_theme .. tostring(theme_to_play)}) + else + abort("No such theme_to_play in function 'jup_b221_play_main'") + end + else + db.actor:give_info_portion(info_need_reply) + theme_to_play = tonumber(xr_logic.pstor_retrieve(actor,"jup_b221_played_main_theme",0)) + if theme_to_play ~= 0 then + play_sound(actor, npc, {reply_theme..tostring(theme_to_play)}) + else + abort("No such theme_to_play in function 'jup_b221_play_main'") + end + xr_logic.pstor_store(actor,"jup_b221_played_main_theme","0") + end +end + +function pas_b400_play_particle(actor, npc, p) + db.actor:start_particles("zones\\zone_acidic_idle","bip01_head") +end + +function pas_b400_stop_particle(actor, npc, p) + db.actor:stop_particles("zones\\zone_acidic_idle","bip01_head") +end + +function damage_actor_items_on_start(actor, npc) + local actor = db.actor + + local obj = actor:object("helm_respirator") + if obj ~= nil then + obj:set_condition(0.8) + end + + obj = actor:object("stalker_outfit") + if obj ~= nil then + obj:set_condition(0.76) + end + + obj = actor:object("wpn_pm_actor") + if obj ~= nil then + obj:set_condition(0.9) + end + + obj = actor:object("wpn_ak74u") + if obj ~= nil then + obj:set_condition(0.7) + end + +end + +function damage_pri_a17_gauss() + local obj = get_story_object("pri_a17_gauss_rifle") + --local obj = npc:object("pri_a17_gauss_rifle") + if obj ~= nil then + obj:set_condition(0.0) + end +end + +function pri_a17_hard_animation_reset(actor, npc, p) + --db.storage[npc:id()].state_mgr:set_state("pri_a17_fall_down", nil, nil, nil, {fast_set = true}) + db.storage[npc:id()].state_mgr:set_state("pri_a17_fall_down") + + local state_mgr = db.storage[npc:id()].state_mgr + if state_mgr ~= nil then + state_mgr.animation:set_state(nil, true) + state_mgr.animation:set_state("pri_a17_fall_down") + state_mgr.animation:set_control() + end +end + +function jup_b217_hard_animation_reset(actor, npc, p) + db.storage[npc:id()].state_mgr:set_state("jup_b217_nitro_straight") + + local state_mgr = db.storage[npc:id()].state_mgr + if state_mgr ~= nil then + state_mgr.animation:set_state(nil, true) + state_mgr.animation:set_state("jup_b217_nitro_straight") + state_mgr.animation:set_control() + end +end + + + + +function sleep(actor, npc) + local sleep_zones = { + "zat_a2_sr_sleep", + "jup_a6_sr_sleep", + "pri_a16_sr_sleep", + "actor_surge_hide_2" + } + + for k,v in pairs(sleep_zones) do + if utils.npc_in_zone(db.actor, db.zone_by_name[v]) then + ui_sleep_dialog.sleep() + give_info("sleep_active") + end + end + +end + + + +--[[ +function set_tip_to_story(actor, npc, p) + if p == nil or p[2] == nil then + abort("Not enough parameters in 'set_tip_to_story' function!") + end + + local obj = get_story_object(p[1]) + + if not obj then + return + end + + local tip = p[2] + + obj:set_tip_text(tip) +end + +function clear_tip_from_story(actor, npc, p) + if p == nil or p[1] == nil then + abort("Not enough parameters in 'clear_tip_from_story' function!") + end + + local obj = get_story_object(p[1]) + + if not obj then + return + end + + obj:set_tip_text("") +end +]]-- + +function mech_discount(actor, npc, p) + if(p[1]) then + inventory_upgrades.mech_discount(tonumber(p[1])) + end +end + +function polter_actor_ignore(actor, npc, p) + if p[1] and p[1] == "true" then + npc:poltergeist_set_actor_ignore(true) + elseif p[1] and p[1] == "false" then + npc:poltergeist_set_actor_ignore(false) + end +end + +function burer_force_gravi_attack(actor, npc) + npc:burer_set_force_gravi_attack(true) +end + +function burer_force_anti_aim(actor, npc) + npc:set_force_anti_aim(true) +end + +function show_freeplay_dialog(actor, npc, p) + if p[1] and p[2] and p[2] == "true" then + ui_freeplay_dialog.show("message_box_yes_no", p[1]) + elseif p[1] then + ui_freeplay_dialog.show("message_box_ok", p[1]) + end +end + + + +local detectors = { "detector_simple", "detector_advanced", "detector_elite", "detector_scientific" } + +-- Только Ð´Ð»Ñ state_mgr +function get_best_detector(npc) + for k,v in pairs(detectors) do + local obj = npc:object(v) + if obj ~= nil then + obj:enable_attachable_item(true) + return + end + end +end + +function hide_best_detector(npc) + for k,v in pairs(detectors) do + local obj = npc:object(v) + if obj ~= nil then + obj:enable_attachable_item(false) + return + end + end +end + +-- Инфопоршны Ð´Ð»Ñ Ñинхронизации анимации Ð½Ð¿Ñ Ñ Ð¿Ñ€Ð¾Ñ‡Ð¸Ð¼Ð¸ дейÑтвиÑми, и Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… целей +function pri_a18_radio_start(actor, npc) + db.actor:give_info_portion("pri_a18_radio_start") +end + +function pri_a17_ice_climb_end(actor, npc) + db.actor:give_info_portion("pri_a17_ice_climb_end") +end + +function jup_b219_opening(actor, npc) + db.actor:give_info_portion("jup_b219_opening") +end + +function jup_b219_entering_underpass(actor, npc) + db.actor:give_info_portion("jup_b219_entering_underpass") +end + +function pri_a17_pray_start(actor, npc) + db.actor:give_info_portion("pri_a17_pray_start") +end + +function zat_b38_open_info(actor, npc) + db.actor:give_info_portion("zat_b38_open_info") +end + +function zat_b38_switch_info(actor, npc) + db.actor:give_info_portion("zat_b38_switch_info") +end +function zat_b38_cop_dead(actor, npc) + db.actor:give_info_portion("zat_b38_cop_dead") +end + +function jup_b15_zulus_drink_anim_info(actor, npc) + db.actor:give_info_portion("jup_b15_zulus_drink_anim_info") +end + +function pri_a17_preacher_death(actor, npc) + db.actor:give_info_portion("pri_a17_preacher_death") +end + +function zat_b3_tech_surprise_anim_end(actor, npc) + db.actor:give_info_portion("zat_b3_tech_surprise_anim_end") +end + +function zat_b3_tech_waked_up(actor, npc) + db.actor:give_info_portion("zat_b3_tech_waked_up") +end + +function zat_b3_tech_drinked_out(actor, npc) + db.actor:give_info_portion("zat_b3_tech_drinked_out") +end + +function pri_a28_kirillov_hq_online(actor, npc) + db.actor:give_info_portion("pri_a28_kirillov_hq_online") +end + +function pri_a20_radio_start(actor, npc) + db.actor:give_info_portion("pri_a20_radio_start") +end + +function pri_a22_kovalski_speak(actor, npc) + db.actor:give_info_portion("pri_a22_kovalski_speak") +end + +function zat_b38_underground_door_open(actor, npc) + db.actor:give_info_portion("zat_b38_underground_door_open") +end + +function zat_b38_jump_tonnel_info(actor, npc) + db.actor:give_info_portion("zat_b38_jump_tonnel_info") +end + +function jup_a9_cam1_actor_anim_end(actor, npc) + db.actor:give_info_portion("jup_a9_cam1_actor_anim_end") +end + +function pri_a28_talk_ssu_video_end(actor, npc) + db.actor:give_info_portion("pri_a28_talk_ssu_video_end") +end + +function set_torch_state(actor, npc, p) + if p == nil or p[2] == nil then + abort("Not enough parameters in 'set_torch_state' function!") + end + + local obj = get_story_object(p[1]) + + if not obj then + return + end + local torch = obj:object("device_torch") + if torch then + if p[2] == "on" then + torch:enable_attachable_item(true) + elseif p[2] == "off" then + torch:enable_attachable_item(false) + end + end +end + + +local actor_nightvision = false +local actor_torch = false + +function disable_actor_nightvision(actor, npc) + local nightvision = db.actor + if nightvision ~= nil and nightvision:night_vision_enabled() then + nightvision:enable_night_vision(false) + actor_nightvision = true + end +end + +function enable_actor_nightvision(actor, npc) + local nightvision = db.actor + if nightvision ~= nil and not nightvision:night_vision_enabled() and actor_nightvision then + nightvision:enable_night_vision(true) + actor_nightvision = false + end +end + +function disable_actor_torch(actor, npc) + local torch = db.actor:object("device_torch") + if torch ~= nil and torch:torch_enabled() then + torch:enable_torch(false) + actor_torch = true + end +end + +function enable_actor_torch(actor, npc) + local torch = db.actor:object("device_torch") + if torch ~= nil and not torch:torch_enabled() and actor_torch then + torch:enable_torch(true) + actor_torch = false + end +end + + +function create_cutscene_actor_with_weapon(actor, npc, p) + --' p[1] - ÑÐµÐºÑ†Ð¸Ñ ÐºÐ¾Ð³Ð¾ Ñпаунить + --' p[2] - Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ€ÑƒÐ»ÑŒÐ½Ð¾Ð³Ð¾ пути где Ñпаунить. + --' p[3] - точка патрульного пути + --' p[4] - поворот по оÑи Y + --' p[5] - принудительный Ñлот - будет работать даже при disable_ui + local spawn_sect = p[1] + if spawn_sect == nil then + abort("Wrong spawn section for 'spawn_object' function %s. For object %s", tostring(spawn_sect), obj:name()) + end + + local path_name = p[2] + if path_name == nil then + abort("Wrong path_name for 'spawn_object' function %s. For object %s", tostring(path_name), obj:name()) + end + + if not level.patrol_path_exists(path_name) then + abort("Path %s doesnt exist. Function 'spawn_object' for object %s ", tostring(path_name), obj:name()) + end + local ptr = patrol(path_name) + local index = p[3] or 0 + local yaw = p[4] or 0 + + local npc = alife():create(spawn_sect, ptr:point(index), ptr:level_vertex_id(0), ptr:game_vertex_id(0)) + if IsStalker( nil, npc:clsid()) then + npc:o_torso().yaw = yaw * math.pi / 180 + else + npc.angle.y = yaw * math.pi / 180 + end + + local slot_override = p[5] or 0 + + local slot + local active_item + + if slot_override == 0 then + slot = db.actor:active_slot() + if(slot~=2 and slot~=3) then + return + end + active_item = db.actor:active_item() + else + if db.actor:item_in_slot(slot_override) ~= nil then + active_item = db.actor:item_in_slot(slot_override) + else + if db.actor:item_in_slot(3) ~= nil then + active_item = db.actor:item_in_slot(3) + elseif db.actor:item_in_slot(2) ~= nil then + active_item = db.actor:item_in_slot(2) + else + return + end + end + end + + local actor_weapon = alife():object(active_item:id()) + local section_name = actor_weapon:section_name() + if section_name == "pri_a17_gauss_rifle" then + section_name = "wpn_gauss" + end + + if (active_item) then + local new_weapon = alife():create(section_name, + ptr:point(index), + ptr:level_vertex_id(0), + ptr:game_vertex_id(0), + npc.id) + if section_name ~= "wpn_gauss" then + new_weapon:clone_addons(actor_weapon) + end + end +end + +-- ЗаÑтавить играть уникальные анимации Ñна(у кровоÑоÑа) +function set_force_sleep_animation(actor, npc, p) + local num = p[1] + npc:force_stand_sleep_animation(tonumber(num)) +end +-- Убрать уникальные анимации Ñна(у кровоÑоÑа) +function release_force_sleep_animation(actor, npc) + npc:release_stand_sleep_animation() +end + +function zat_b33_pic_snag_container(actor, npc) + if xr_conditions.actor_in_zone(actor, npc, {"zat_b33_tutor"}) then + give_actor(actor, npc, {"zat_b33_safe_container"}) + db.actor:give_info_portion("zat_b33_find_package") + if not has_alife_info("zat_b33_safe_container") then + local zone = db.zone_by_name["zat_b33_tutor"] + play_sound(actor, zone, {"pda_news"}) + end + end +end + +--Отключение воздейÑÑ‚Ð²Ð¸Ñ Ð²Ñ€Ð°Ð¶ÐµÑкого Ð½Ð¿Ñ Ð½Ð° индикатор видимоÑти врага на хаде игрока. +--ИÑп. только из логики нпÑ. +function set_visual_memory_enabled(actor, npc, p) + if (p and p[1]) and (tonumber(p[1]) >= 0) and (tonumber(p[1]) <= 1) then + local boolval = false + if (tonumber(p[1]) == 1) then + boolval = true + end + npc:set_visual_memory_enabled(boolval) + end +end + +function disable_memory_object (actor, npc) + local best_enemy = npc:best_enemy() + if best_enemy then + npc:enable_memory_object(best_enemy, false) + end +end + +function zat_b202_spawn_b33_loot(actor, npc, p) + local info_table = { + "zat_b33_first_item_gived", + "zat_b33_second_item_gived", + "zat_b33_third_item_gived", + "zat_b33_fourth_item_gived", + "zat_b33_fifth_item_gived" + } + local item_table = {} + item_table[1] = { + "wpn_fort_snag" + } + item_table[2] = { + "medkit_scientic", + "medkit_scientic", + "medkit_scientic", + "antirad", + "antirad", + "antirad", + "bandage", + "bandage", + "bandage", + "bandage", + "bandage" + } + item_table[3] = { + "wpn_ak74u_snag" + } + item_table[4] = { + "af_soul" + } + item_table[5] = { + "helm_hardhat_snag" + } + for k,v in pairs(info_table) do + local obj_id + if (k == 1) or (k == 3) then + obj_id = "jup_b202_stalker_snag" + else + obj_id = "jup_b202_snag_treasure" + end + if not has_alife_info(tostring(v)) then + for l,m in pairs(item_table[k]) do +-- printf("zat_b202_spawn_b33_loot: number [%s] item [%s] to [%s]", tostring(k), tostring(m), tostring(obj_id)) + spawn_object_in(actor, npc, {tostring(m),tostring(obj_id)}) + end + end + end +end + +function set_monster_animation (actor, npc, p) + if not (p and p[1]) then + abort("Wrong parameters in function 'set_monster_animation'!!!") + end + npc:set_override_animation (p[1]) +end + +function clear_monster_animation (actor, npc) + npc:clear_override_animation () +end + +local actor_position_for_restore +local actor_direction_for_restore + +function save_actor_position() + actor_position_for_restore = get_story_object("actor"):position() + --actor_direction_for_restore = get_story_object("actor"):direction() +end + +function restore_actor_position() + --db.actor:set_actor_direction(actor_direction_for_restore) + db.actor:set_actor_position(actor_position_for_restore) +end + +function upgrade_hint(actor, npc, p) + if(p) then + inventory_upgrades.cur_hint = p + end +end + +function force_obj(actor, npc, p) + local obj = get_story_object(p[1]) + if not obj then + abort("'force_obj' Target object does not exist") + return + end + if p[2] == nil then p[2] = 20 end + if p[3] == nil then p[3] = 100 end + obj:set_const_force(vector():set(0,1,0), p[2], p[3]) +end + +function pri_a28_check_zones() + local story_obj_id + local dist + local index = 0 + + local zones_tbl = { + [1] = "pri_a28_sr_mono_add_1", + [2] = "pri_a28_sr_mono_add_2", + [3] = "pri_a28_sr_mono_add_3", + } + + local info_tbl = { + [1] = "pri_a28_wave_1_spawned", + [2] = "pri_a28_wave_2_spawned", + [3] = "pri_a28_wave_3_spawned", + } + + local squad_tbl = { + [1] = "pri_a28_heli_mono_add_1", + [2] = "pri_a28_heli_mono_add_2", + [3] = "pri_a28_heli_mono_add_3", + } + + for k,v in pairs(zones_tbl) do + story_obj_id = get_story_object_id(v) + if story_obj_id then + local se_obj = alife():object(story_obj_id) + local curr_dist = se_obj.position:distance_to(db.actor:position()) + if index == 0 then + dist = curr_dist + index = k + elseif dist < curr_dist then + dist = curr_dist + index = k + end + end + end + + if index == 0 then + abort("Found no distance or zones in func 'pri_a28_check_zones'") + end + + if has_alife_info(info_tbl[index]) then + for k,v in pairs(info_tbl) do + if not has_alife_info(info_tbl[k]) then + db.actor:give_info_portion(info_tbl[k]) + end + end + else + db.actor:give_info_portion(info_tbl[index]) + end + + create_squad(db.actor,nil,{squad_tbl[index],"pri_a28_heli"}) +end + +function eat_vodka_script() + if db.actor:object("vodka_script") ~= nil then + db.actor:eat(db.actor:object("vodka_script")) + end +end + +local mat_table = { + "jup_b200_material_1", + "jup_b200_material_2", + "jup_b200_material_3", + "jup_b200_material_4", + "jup_b200_material_5", + "jup_b200_material_6", + "jup_b200_material_7", + "jup_b200_material_8", + "jup_b200_material_9", + } + +function jup_b200_count_found(actor) + local cnt = 0 + + for k,v in pairs(mat_table) do + local material_obj = get_story_object(v) + if material_obj then + local parent = material_obj:parent() + if parent then + local parent_id = parent:id() + if parent_id ~= 65535 and parent_id == actor:id() then + cnt = cnt + 1 + end + end + end + end + + cnt = cnt + xr_logic.pstor_retrieve(actor, "jup_b200_tech_materials_brought_counter", 0) + xr_logic.pstor_store(actor, "jup_b200_tech_materials_found_counter", cnt) +end diff --git a/gamedata/scripts/xr_kamp.script b/gamedata/scripts/xr_kamp.script new file mode 100644 index 0000000..1100db2 --- /dev/null +++ b/gamedata/scripts/xr_kamp.script @@ -0,0 +1,432 @@ +---------------------------------------------------------------------------------------------------------------------- +-- Схема лагерь. Чудак(и) у коÑтра. +-- автор: Диденко РуÑлан (Stohe) +-- TODO: +---------------------------------------------------------------------------------------------------------------------- +--function printf() +--end + +local ActionToStateTable = { + idle = {director = { "sit", "sit_ass", "sit_knee", "eat_bread", "eat_kolbasa", "eat_vodka", "eat_energy"}, listener = {"sit", "sit_ass", "sit_knee", "eat_bread", "eat_kolbasa", "eat_vodka", "eat_energy"}}, + harmonica = {director = {"harmonica"}, listener = {"sit", "sit_ass", "sit_knee", "eat_bread", "eat_kolbasa", "eat_vodka", "eat_energy"}}, + guitar = {director = {"guitar"}, listener = {"sit", "sit_ass", "sit_knee", "eat_bread", "eat_kolbasa", "eat_vodka", "eat_energy"}}, + story = {director = {"sit", "sit_ass", "sit_knee"}, listener = {"sit", "sit_ass", "sit_knee", "eat_bread", "eat_kolbasa", "eat_vodka", "eat_energy"}}, +} + +local ActionAvailabilityTable = { + eat_bread = "kamp_eat_bread", + eat_kolbasa = "kamp_eat_kolbasa", + eat_vodka = "kamp_drink_vodka", + eat_energy = "kamp_drink_energy", +} + +local ActionTimingTable = { + sit = {min = 60*2*1000,max = 60*10*1000}, + sit_ass = {min =60*2*1000,max = 60*10*1000}, + sit_knee = {min = 60*2*1000,max = 60*10*1000} +} + + +kamps = {} +--------------------------------------------------------------------------------------------------------------------- +--Evaluators +---------------------------------------------------------------------------------------------------------------------- +--' УÑловие Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñкрипта +class "evaluator_kamp_end" (property_evaluator) +function evaluator_kamp_end:__init(name, storage) super (nil, name) + self.a = storage +end +function evaluator_kamp_end:evaluate() + return not xr_logic.is_active(self.object, self.a) +end +--' ÐаходимÑÑ Ð»Ð¸ мы на заданной позиции +class "evaluator_on_position" (property_evaluator) +function evaluator_on_position:__init(name, storage) super (nil, name) + self.a = storage +end +function evaluator_on_position:evaluate() + if self.object:level_vertex_id() == self.a.pos_vertex then + return true + end + return false +end +---------------------------------------------------------------------------------------------------------------------- +--Actions +---------------------------------------------------------------------------------------------------------------------- +--' Идет в заданную облаÑть +class "action_go_position" (action_base) +function action_go_position:__init (npc_name,action_name,storage) super (nil,action_name) + self.a = storage +end +function action_go_position:initialize() + action_base.initialize(self) +-- self.object:set_node_evaluator() +-- self.object:set_path_evaluator() + self.object:set_desired_position() + self.object:set_desired_direction() + + self.a.pos_vertex = nil + self.a.npc_position_num = nil + self.a.signals = {} +end +function action_go_position:execute () + action_base.execute (self) + + -- Спрашиваем где Ñидеть + local tmp_pos_vertex, npc_position_num = kamps[self.a.center_point]:getDestVertex(self.object, self.a.radius) + + if tmp_pos_vertex == nil then + return + end + + if self.a.npc_position_num ~= npc_position_num then + self.a.npc_position_num = npc_position_num + self.a.pos_vertex = tmp_pos_vertex + + --' ОпределÑем куда Ñмотреть. + self.a.pp = patrol(self.a.center_point):point(0) + + local dir = vector():set(math.random(-1,1), 0, math.random(-1,1)) + dir:normalize() + + local delta_dist = math.random(0,0.5) + self.a.pp.x = self.a.pp.x + dir.x * delta_dist + self.a.pp.z = self.a.pp.z + dir.z * delta_dist + + + + self.object:set_dest_level_vertex_id(self.a.pos_vertex) + --printf("vertex_position") + local desired_direction = vector():sub(self.a.pp,level.vertex_position(self.a.pos_vertex)) + --printf("desired_direction = %s", vec_to_str(desired_direction)) + if desired_direction ~= nil and not utils.vector_cmp(desired_direction, vector():set(0,0,0)) then + desired_direction:normalize() + self.object:set_desired_direction(desired_direction) + end + self.object:set_path_type(game_object.level_path) + state_mgr.set_state(self.object, self.a.def_state_moving) + end +end +function action_go_position:finalize () + action_base.finalize (self) +end + +--' ПроÑто Ñидит и втыкает +class "action_wait" (action_base) +function action_wait:__init (npc_name,action_name,storage) super (nil,action_name) + self.a = storage +end +function action_wait:initialize() + action_base.initialize(self) +-- self.object:set_node_evaluator() +-- self.object:set_path_evaluator() + self.object:set_desired_position() + self.object:set_desired_direction() + + local avail_actions = xr_animpoint_predicates.associations[self.a.description] + self.a.approved_actions = {} + + for k,v in pairs(avail_actions) do + -- Убираем те дейÑтвиÑ, которые не подходÑÑ‚ по прекондишну + if v.predicate(self.object:id(),true)==true then + table.insert(self.a.approved_actions, v) + kamps[self.a.center_point]:AddAvailableAction(self.object,v.name) + end + end + + kamps[self.a.center_point]:increasePops(self.object) + +end +function action_wait:activate_scheme() + self.a.signals = {} +end +function action_wait:execute() + -- action_base.execute (self) + + -- --' повернуть его лицом к центру + -- state_mgr.set_state(self.object, "sit", nil, nil, {look_position = self.a.pp}) + + action_base.execute (self) + local state = kamps[self.a.center_point]:updateNpc(self.object) + + --' повернуть его лицом к центру + state_mgr.set_state(self.object, state, nil, nil, {look_position = self.a.pp}) +end +function action_wait:finalize() + kamps[self.a.center_point]:decreasePops(self.object) + action_base.finalize (self) +end +function action_wait:deactivate(npc) + kamps[self.a.center_point]:removeNpc(npc) +end +function action_wait:death_callback(npc) + kamps[self.a.center_point]:removeNpc(npc) +end +function action_wait:net_destroy(npc) + kamps[self.a.center_point]:removeNpc(npc) +end + + +class "CKampManager" +function CKampManager:__init(path) + self.kamp_name = path + self.patrol = patrol(path) + --self.center = self.patrol:level_vertex_id(0) + self.position = {{dir = vector():set(1, 0, 0), used = nil}, + {dir = vector():set(1, 0, 1), used = nil}, + {dir = vector():set(0, 0, 1), used = nil}, + {dir = vector():set(-1, 0, 1), used = nil}, + {dir = vector():set(-1, 0, 0), used = nil}, + {dir = vector():set(-1, 0, -1),used = nil}, + {dir = vector():set(0, 0, -1), used = nil}, + {dir = vector():set(1, 0, -1), used = nil}} + self.npc = {} + self.population = 0 +end +function CKampManager:selectPosition(npc_id) + -- Ñоздаем ÑпиÑок доÑтупных позиций + --printf("KAMP. [%s] called select position", npc_id) + local free = {} + for k,v in pairs(self.position) do + if v.used == nil then + table.insert(free, k) + end + end + --' затем из доÑтупных позиций выбрать рандомно одну. + if #free > 0 then + --printf("KAMP [%s] free node > 0", npc_id) + local rr = math.random(#free) + self.position[free[rr]].used = npc_id + self.npc[npc_id].position = free[rr] + end + --printf("KAMP [%s] npc table", npc_id) + --print_table(self.npc) + --printf("KAMP [%s] position table", npc_id) + --print_table(self.position) +end +function CKampManager:getDestVertex(npc, radius) + local npc_id = npc:id() + --printf("get dest Vertex called [%s]", npc_id) + if self.npc[npc_id].position == nil then + --printf("-------debug_info------------- %s", self.kamp_name) + --print_table(self.npc) + --printf("-------debug_info------------- %s", self.kamp_name) + --print_table(self.position) + --printf("-------debug_info------------- %s", self.kamp_name) + abort("get dest Vertex: nil [%s]", npc_id) + return nil + end + + -- выÑчитываем вертех по направлению + -- Берем позицию в заданном направлении, затем берем ниареÑÑ‚ точку от нее. + + local pp = self.patrol:point(0) + local dir = self.position[self.npc[npc_id].position].dir + + -- Считаем рандомное отклонение направлениÑ. + dir.x = dir.x + math.random(-1,1)/5 + dir.z = dir.z + math.random(-1,1)/5 + dir:normalize() + + radius = radius + math.random(-0.3,0.3) + + local dest_vertex = 4294967295 + + while dest_vertex == 4294967295 do + local tmp_pos = vector():set(0,0,0) + tmp_pos.x = pp.x + dir.x * radius + tmp_pos.z = pp.z + dir.z * radius + tmp_pos.y = pp.y + dest_vertex = level.vertex_id(tmp_pos) + if dest_vertex == 4294967295 then + if radius < 1 then + SemiLog("Invalid AI map at kamp point ["..self.kamp_name.."]") + return nil + else + radius = radius - 0.5 + end + end + end + + if not npc:accessible(dest_vertex) then + --printf("vertex_position %s", tostring(dest_vertex)) + local vp = level.vertex_position(dest_vertex) + --printf("Nearest for npc[%s] kamp [%s] position [%s:%s:%s]", npc:name(), tostring(self.kamp_name),tostring(vp.x), tostring(vp.y), tostring(vp.z)) + local nearest_vertex = npc:accessible_nearest(vp, vector():set(0,0,0)) + --printf("Nearest for npc[%s] kamp [%s] position [%s:%s:%s]", npc:name(), tostring(self.kamp_name), vec_to_str(nearest_vertex)) + return nearest_vertex, self.npc[npc_id].position + end + + return dest_vertex, self.npc[npc_id].position +end + +function CKampManager:updateNpc(npc) + + local tbl = {} + local npc_id = npc:id() + local camp_action, is_director + + if not self.camp then + camp_action = "idle" + is_director = false + else + camp_action, is_director = self.camp:get_camp_action(npc_id) + end + + + if(is_director) then + tbl = ActionToStateTable[camp_action].director + else + tbl = ActionToStateTable[camp_action].listener + end + + if self.npc[npc_id].begin == nil or time_global() - self.npc[npc_id].begin >= self.npc[npc_id].state_idle or self.npc[npc_id].is_director ~= is_director then + self.npc[npc_id].begin = time_global() + if (self.npc[npc_id].camp_action == "story" or self.npc[npc_id].camp_action == "idle") and (camp_action =="idle" or camp_action == "story") and self.npc[npc_id].is_director ~= is_director then + self.npc[npc_id].is_director = is_director + self.npc[npc_id].camp_action = camp_action + return self.npc[npc_id].state_selected + end + local Action = "kamp" + repeat + local rnd = math.random(#tbl) + self.npc[npc_id].state_selected = tbl[rnd] + if ActionAvailabilityTable[self.npc[npc_id].state_selected] then + Action = ActionAvailabilityTable[self.npc[npc_id].state_selected] + else + Action = "kamp" + end + until self.npc[npc_id].AvailableActions[Action] + + if ActionTimingTable[self.npc[npc_id].state_selected] ~= nil then + self.npc[npc_id].state_idle = math.random(ActionTimingTable[self.npc[npc_id].state_selected].min,ActionTimingTable[self.npc[npc_id].state_selected].max) + else + self.npc[npc_id].state_idle = math.random(15*1000,60*1000) + end + self.npc[npc_id].is_director = is_director + self.npc[npc_id].camp_action = camp_action + end + return self.npc[npc_id].state_selected + +end + +function CKampManager:addNpc(npc) + if self.npc[npc:id()] ~= nil then + return + end + + self.npc[npc:id()] = {name = npc:name(), position = nil, AvailableActions = {}} + self:selectPosition(npc:id()) + +end +function CKampManager:removeNpc(npc) + local npc_id = npc:id() + if self.npc[npc_id] ~= nil then + self.position[self.npc[npc_id].position].used = nil + self.npc[npc_id] = nil + end + + if self.camp ~= nil then + self.camp:unregister_npc(npc:id()) + end +end + +function CKampManager:increasePops(npc) + self.population = self.population + 1 + + if not self.camp then + self.camp = sr_camp.get_current_camp(self.patrol:point(0)) + end + + if self.camp ~= nil then + self.camp:register_npc(npc:id()) + end + -- local campfire = bind_campfire.campfire_table[self.kamp_name.."_campfire"] + -- if self.population > 0 and campfire ~= nil and not campfire:is_on() then + -- campfire:turn_on() + -- end +end +function CKampManager:decreasePops(npc) + self.population = self.population - 1 + -- local campfire = bind_campfire.campfire_table[self.kamp_name.."_campfire"] + -- if self.population < 1 and campfire ~= nil and campfire:is_on() then + -- campfire:turn_off() + -- end +end + +function CKampManager:AddAvailableAction(NPC,StateName) + self.npc[NPC:id()].AvailableActions[StateName] = true +end + + + +---------------------------------------------------------------------------------------------------------------------- +--Kamp binder +---------------------------------------------------------------------------------------------------------------------- +function add_to_binder(object, ini, scheme, section, storage) + local operators = {} + local properties = {} + + local manager = object:motivation_action_manager() + + properties["kamp_end"] = xr_evaluators_id.stohe_kamp_base + 1 + properties["on_position"] = xr_evaluators_id.stohe_kamp_base + 2 + properties["contact"] = xr_evaluators_id.stohe_meet_base + 1 + + operators["go_position"] = xr_actions_id.stohe_kamp_base + 1 + operators["wait"] = xr_actions_id.stohe_kamp_base + 3 + properties["state_mgr_logic_active"] = xr_evaluators_id.state_mgr + 4 + + -- Evaluators + manager:add_evaluator (properties["kamp_end"], this.evaluator_kamp_end ("kamp_end", storage, "kamp_end")) + manager:add_evaluator (properties["on_position"], this.evaluator_on_position ("kamp_on_position", storage, "kamp_on_position")) + + -- Actions + local action = this.action_wait (object:name(),"action_kamp_wait", storage) + action:add_precondition (world_property(stalker_ids.property_alive, true)) + action:add_precondition (world_property(stalker_ids.property_danger,false)) + action:add_precondition (world_property(stalker_ids.property_enemy, false)) + action:add_precondition (world_property(stalker_ids.property_anomaly,false)) + xr_motivator.addCommonPrecondition(action) + action:add_precondition (world_property(properties["on_position"], true)) + action:add_effect (world_property(properties["kamp_end"], true)) + action:add_effect (world_property(properties["state_mgr_logic_active"], false)) + manager:add_action (operators["wait"], action) + xr_logic.subscribe_action_for_events(object, storage, action) + + action = this.action_go_position (object:name(),"action_go_kamp", storage) + action:add_precondition (world_property(stalker_ids.property_alive, true)) + action:add_precondition (world_property(stalker_ids.property_danger,false)) + action:add_precondition (world_property(stalker_ids.property_enemy, false)) + action:add_precondition (world_property(stalker_ids.property_anomaly,false)) + xr_motivator.addCommonPrecondition(action) + action:add_precondition (world_property(properties["on_position"], false)) + action:add_effect (world_property(properties["on_position"], true)) + action:add_effect (world_property(properties["state_mgr_logic_active"], false)) + manager:add_action (operators["go_position"], action) + + action = manager:action (xr_actions_id.alife) + action:add_precondition (world_property(properties["kamp_end"], true)) + +end +-- включение Ð»Ð°Ð³ÐµÑ€Ñ +function set_scheme(npc, ini, scheme, section, gulag_name) + local st = xr_logic.assign_storage_and_bind(npc, ini, scheme, section) + + st.logic = xr_logic.cfg_get_switch_conditions(ini, section, npc) + + st.center_point = utils.cfg_get_string(ini, section, "center_point", npc, true, gulag_name) + st.radius = utils.cfg_get_number(ini, section, "radius", npc, false, 2) + st.description = "kamp" + st.base_action = "kamp" + + + + if kamps[st.center_point] == nil then + kamps[st.center_point] = CKampManager(st.center_point) + end + kamps[st.center_point]:addNpc(npc) + st.pos_vertex = nil + + st.def_state_moving = utils.cfg_get_string(ini, section, "def_state_moving", npc, false, "", "walk") +end diff --git a/gamedata/shaders/d3d11/accum_base.ps.hlsl b/gamedata/shaders/d3d11/accum_base.ps.hlsl new file mode 100644 index 0000000..cc28b75 --- /dev/null +++ b/gamedata/shaders/d3d11/accum_base.ps.hlsl @@ -0,0 +1,52 @@ +#include "common.hlsli" +#include "shadow.hlsli" + +#include "metalic_roughness_light.hlsli" +#include "ScreenSpaceContactShadows.hlsl" + +uniform float4 m_lmap[2]; +uniform int Ldynamic_hud; + +//LVutner: Force early-z +[earlydepthstencil] +float4 main(p_volume I, float4 pos2d : SV_POSITION) : SV_Target +{ + float2 tcProj = I.tc.xy / I.tc.w; + + IXrayGbuffer O; + GbufferUnpack(tcProj, pos2d.xy, O); + + float4 Point = float4(Ldynamic_hud > 0 ? O.PointHud.xyz : O.Point.xyz, 1.0f); + + float3 LightDirection = normalize(O.PointReal.xyz - Ldynamic_pos.xyz); + float3 Light = DirectLight(Ldynamic_color, LightDirection, O.Normal, O.View.xyz, O.Color, O.Metalness, O.Roughness, O.F0); + + float3 Lightmap = ComputeLightAttention(Point.xyz - Ldynamic_pos.xyz, Ldynamic_pos.w); + Point.xyz += O.Normal * 0.025f; + + float4 PS = mul(m_shadow, Point); + +#ifdef USE_SHADOW + Lightmap *= max(Ldynamic_hud, shadow(PS)); + + #ifdef USE_HUD_SHADOWS + if (O.Depth < 0.02f && dot(Lightmap.xyz, Light.xyz) > 0.0001f) + { + RayTraceContactShadow(tcProj, O.PointHud, LightDirection, Lightmap); + } + #endif +#endif + +#ifdef USE_LMAP + #ifdef USE_LMAPXFORM + PS.x = dot(Point, m_lmap[0]); + PS.y = dot(Point, m_lmap[1]); + #endif + Lightmap *= s_lmap.SampleLevel(smp_rtlinear, PS.xy / PS.w, 0.0f).xyz; +#endif + + Lightmap = PushGamma(Lightmap); + return float4(Lightmap.xyz * Light.xyz, 0.0f); +} + + diff --git a/gamedata/shaders/d3d11/accum_emissive.ps.hlsl b/gamedata/shaders/d3d11/accum_emissive.ps.hlsl new file mode 100644 index 0000000..6d7d93b --- /dev/null +++ b/gamedata/shaders/d3d11/accum_emissive.ps.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +float4 main(p_bumped_new I) : SV_Target +{ + return float4(PushGamma(s_base.Sample(smp_base, I.tcdh.xy).xyz) * 16.0f, 0.0f); +} + diff --git a/gamedata/shaders/d3d11/accum_emissivel.ps.hlsl b/gamedata/shaders/d3d11/accum_emissivel.ps.hlsl new file mode 100644 index 0000000..af0d38d --- /dev/null +++ b/gamedata/shaders/d3d11/accum_emissivel.ps.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +float4 main(p_bumped_new I) : SV_Target +{ + return float4(PushGamma(s_base.Sample(smp_base, I.tcdh.xy).xyz), 0.0f); +} + diff --git a/gamedata/shaders/d3d11/accum_emissivew.ps.hlsl b/gamedata/shaders/d3d11/accum_emissivew.ps.hlsl new file mode 100644 index 0000000..c0da2c5 --- /dev/null +++ b/gamedata/shaders/d3d11/accum_emissivew.ps.hlsl @@ -0,0 +1,6 @@ +#include "common.hlsli" + +float4 main(p_bumped_new I) : SV_Target +{ + return float4(s_base.Sample(smp_base, I.tcdh.xy).xyz * 9.0f, 0.0f); +} diff --git a/gamedata/shaders/d3d11/accum_indirect.ps.hlsl b/gamedata/shaders/d3d11/accum_indirect.ps.hlsl new file mode 100644 index 0000000..204e7b4 --- /dev/null +++ b/gamedata/shaders/d3d11/accum_indirect.ps.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +float4 main() : SV_Target +{ + return 0; +} + diff --git a/gamedata/shaders/d3d11/accum_mask.vs.hlsl b/gamedata/shaders/d3d11/accum_mask.vs.hlsl new file mode 100644 index 0000000..6b18503 --- /dev/null +++ b/gamedata/shaders/d3d11/accum_mask.vs.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +float4 main(float4 P : POSITION) : SV_POSITION +{ + return mul(m_WVP, P); +} + diff --git a/gamedata/shaders/d3d11/accum_sun.ps.hlsl b/gamedata/shaders/d3d11/accum_sun.ps.hlsl new file mode 100644 index 0000000..ff9a882 --- /dev/null +++ b/gamedata/shaders/d3d11/accum_sun.ps.hlsl @@ -0,0 +1,64 @@ +#include "common.hlsli" + +#if SUN_QUALITY > 2 + #define USE_ULTRA_SHADOWS +#endif + +#include "shadow.hlsli" +#include "metalic_roughness_light.hlsli" +#include "ScreenSpaceContactShadows.hlsl" + +float4 main(v2p_volume I) : SV_Target +{ + float2 tcProj = I.tc.xy / I.tc.w; + + IXrayGbuffer O; + GbufferUnpack(tcProj, I.hpos.xy, O); + + float3 Shift = O.Normal; + + if (O.SSS > 0.0f) + { + Shift *= dot(Ldynamic_dir.xyz, Shift) >= 0.0 ? -1.0f : 1.0f; + } + + float4 Point = float4(O.Point.xyz, 1.f); + Point.xyz += Shift * 0.025f; + + float4 PS = mul(m_shadow, Point); + +#ifdef USE_FAR_ATTENTION + float3 Factor = smoothstep(0.5f, 0.45f, abs(PS.xyz / PS.w - 0.5f)); + float Fade = Factor.x * Factor.y * Factor.z; + + O.SSS *= 0.5f + 0.5f * Fade; +#endif + + float3 Light = DirectLight(Ldynamic_color, Ldynamic_dir.xyz, O.Normal, O.View.xyz, O.Color, O.Metalness, O.Roughness, O.F0); + Light += SimpleTranslucency(Ldynamic_color.xyz, Ldynamic_dir.xyz, O.Normal) * O.SSS * O.Color; + +#if SUN_QUALITY == 2 + float Shadow = shadow_high(PS); +#else + float Shadow = shadow(PS); +#endif + +#ifdef USE_FAR_ATTENTION + float FarShadow = dot(Ldynamic_dir.xyz, O.Normal.xyz); + FarShadow = smoothstep(0.75f, 0.6f, FarShadow) * saturate(O.Hemi * 8.0f - 2.0f); + + Shadow = lerp(FarShadow, Shadow, Fade); + +#elif defined(USE_HUD_SHADOWS) + if (O.Depth < 0.02f && dot(Shadow.xxx, Light.xyz) > 0.0001f) + { + RayTraceContactShadow(tcProj, O.PointHud, Ldynamic_dir.xyz, Light); + } +#endif + + Shadow *= sunmask(Point); + Shadow = PushGamma(Shadow); + + return float4(Light * Shadow, Shadow); +} + diff --git a/gamedata/shaders/d3d11/accum_sun.vs.hlsl b/gamedata/shaders/d3d11/accum_sun.vs.hlsl new file mode 100644 index 0000000..6542bbd --- /dev/null +++ b/gamedata/shaders/d3d11/accum_sun.vs.hlsl @@ -0,0 +1,12 @@ +#include "common.hlsli" + +uniform float4x4 m_texgen; + +// Vertex +v2p_volume main(float4 P : POSITION) +{ + v2p_volume O; + O.hpos = mul(m_WVP, P); + O.tc = mul(m_texgen, P); + return O; +} diff --git a/gamedata/shaders/d3d11/accum_sun_mask.ps.hlsl b/gamedata/shaders/d3d11/accum_sun_mask.ps.hlsl new file mode 100644 index 0000000..2db6db6 --- /dev/null +++ b/gamedata/shaders/d3d11/accum_sun_mask.ps.hlsl @@ -0,0 +1,18 @@ +#include "common.hlsli" + +#define EPS (0.9f / 255.f) +#define CLIP_THRESHOLD (1.0f / 255.f) + +float4 main(p_TL I, float4 pos2d : SV_POSITION) : SV_Target +{ + IXrayGbuffer O; + GbufferUnpack(I.Tex0, pos2d.xy, O); + + // float4 NH = float4(O.Normal, O.Hemi); + float L = O.Hemi + O.SSS; + + clip(L); + + return float4(L, L, L, L); +} + diff --git a/gamedata/shaders/d3d11/accum_volume.vs.hlsl b/gamedata/shaders/d3d11/accum_volume.vs.hlsl new file mode 100644 index 0000000..cc78e02 --- /dev/null +++ b/gamedata/shaders/d3d11/accum_volume.vs.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +uniform float4x4 m_texgen; + +// Vertex +v2p_volume main(float4 P : POSITION) +{ + v2p_volume O; + O.hpos = mul(m_WVP, P); + O.tc = mul(m_texgen, P); + return O; +} + diff --git a/gamedata/shaders/d3d11/accum_volumetric.ps.hlsl b/gamedata/shaders/d3d11/accum_volumetric.ps.hlsl new file mode 100644 index 0000000..0df2e73 --- /dev/null +++ b/gamedata/shaders/d3d11/accum_volumetric.ps.hlsl @@ -0,0 +1,68 @@ +#include "common.hlsli" +#include "shadow.hlsli" + +struct v2p +{ + float3 lightToPos : TEXCOORD0; // light center to plane vector + float3 vPos : TEXCOORD1; // position in camera space + float fDensity : TEXCOORD2; // plane density along Z axis +}; + +uniform float4 m_lmap[2]; +Texture2D s_noise; + +#define USE_LMAP +#define USE_LMAPXFORM +#define USE_SHADOW + +// Pixel +float4 main(v2p I) : SV_Target +{ + // ----- shadow + float4 P4 = float4(I.vPos, 1); + float4 PS = mul(m_shadow, P4); + float s = 1.0f; + +#ifdef USE_SHADOW + s = shadow(PS); +#endif + + // ----- lightmap + float4 lightmap = 1.0f; + +#ifdef USE_LMAP + #ifdef USE_LMAPXFORM + PS.x = dot(P4, m_lmap[0]); + PS.y = dot(P4, m_lmap[1]); + #endif + lightmap = s_lmap.Sample(smp_rtlinear, PS.xy / PS.w); +#endif + + // ----- attenuate + float rsqr = dot(I.lightToPos, I.lightToPos); // distance 2 light (squared) + float att = saturate(1 - rsqr * Ldynamic_pos.w); // q-linear attenuate + + // ----- noise + PS.xy /= PS.w; + PS.xy *= 0.3333; + float time = timers.z * 0.1; + PS.x += time; + + float4 t_noise = s_noise.SampleLevel(smp_linear, PS.xy, 0); + + PS.x -= time; + PS.y -= time * 0.70091; + + t_noise *= s_noise.SampleLevel(smp_linear, PS.xy, 0); + t_noise = t_noise * 0.5 + 0.5; + + // out + float maxIntens = I.fDensity; + float3 result = maxIntens * s * att; + + result *= lightmap.xyz; + result *= Ldynamic_color.xyz * t_noise.xyz; + + return float4(PushGamma(result), 0); +} + diff --git a/gamedata/shaders/d3d11/accum_volumetric.vs.hlsl b/gamedata/shaders/d3d11/accum_volumetric.vs.hlsl new file mode 100644 index 0000000..a407fd6 --- /dev/null +++ b/gamedata/shaders/d3d11/accum_volumetric.vs.hlsl @@ -0,0 +1,43 @@ +#include "common.hlsli" + +cbuffer VolumetricLights +{ + float3 vMinBounds; + float3 vMaxBounds; + float4 FrustumClipPlane[6]; +} + +struct v2p +{ + float3 lightToPos : TEXCOORD0; // light center to plane vector + float3 vPos : TEXCOORD1; // position in camera space + float fDensity : TEXCOORD2; // plane density alon Z axis + float3 clip0 : SV_ClipDistance0; + float3 clip1 : SV_ClipDistance1; + float4 hpos : SV_POSITION; +}; + +v2p main(float3 P : POSITION) +{ + v2p o; + float4 vPos = 1.0f; + vPos.xyz = lerp(vMinBounds, vMaxBounds, P); + + o.hpos = mul(m_P, vPos); + + o.lightToPos = vPos.xyz - Ldynamic_pos.xyz; + o.vPos = vPos.xyz; + + o.fDensity = 0.025f; + + o.clip0.x = dot(o.hpos, FrustumClipPlane[0]); + o.clip0.y = dot(o.hpos, FrustumClipPlane[1]); + o.clip0.z = dot(o.hpos, FrustumClipPlane[2]); + + o.clip1.x = dot(o.hpos, FrustumClipPlane[3]); + o.clip1.y = dot(o.hpos, FrustumClipPlane[4]); + o.clip1.z = dot(o.hpos, FrustumClipPlane[5]); + + return o; +} + diff --git a/gamedata/shaders/d3d11/accum_volumetric.xml b/gamedata/shaders/d3d11/accum_volumetric.xml new file mode 100644 index 0000000..f9e9c5a --- /dev/null +++ b/gamedata/shaders/d3d11/accum_volumetric.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gamedata/shaders/d3d11/accum_volumetric_sun.lua b/gamedata/shaders/d3d11/accum_volumetric_sun.lua new file mode 100644 index 0000000..f2c2777 --- /dev/null +++ b/gamedata/shaders/d3d11/accum_volumetric_sun.lua @@ -0,0 +1,15 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_notransform_2uv", "accum_volumetric_sun") + :fog(false) + :zb(false, false) + :blend(true, blend.one, blend.one) + :sorting(2, false) + + shader:dx10texture("s_smap", "$user$smap_depth") + shader:dx10texture("s_position", "$user$position") + shader:dx10texture("jitter0", "$user$jitter_0") + + shader:dx10sampler("smp_nofilter") + shader:dx10sampler("smp_jitter") + shader:dx10sampler("smp_smap") +end diff --git a/gamedata/shaders/d3d11/accum_volumetric_sun.ps.hlsl b/gamedata/shaders/d3d11/accum_volumetric_sun.ps.hlsl new file mode 100644 index 0000000..ecc3e71 --- /dev/null +++ b/gamedata/shaders/d3d11/accum_volumetric_sun.ps.hlsl @@ -0,0 +1,92 @@ +#include "common.hlsli" + +#undef USE_ULTRA_SHADOWS + +#define RAY_PATH 2.0h +#define JITTER_TEXTURE_SIZE 64.0f + +#define JITTER_SUN_SHAFTS + +#ifdef SUN_SHAFTS_QUALITY + #if SUN_SHAFTS_QUALITY == 1 + // #define FILTER_LOW + #define RAY_SAMPLES 20 + #elif SUN_SHAFTS_QUALITY == 2 + // #define FILTER_LOW + #define RAY_SAMPLES 20 + #elif SUN_SHAFTS_QUALITY == 3 + // #define FILTER_LOW + #define RAY_SAMPLES 40 + #endif +#endif + +#include "shadow.hlsli" + +float4 volume_range; // x - near plane, y - far plane +float4 sun_shafts_intensity; + +float4 main(v2p_TL I) : SV_Target +{ +#ifndef SUN_SHAFTS_QUALITY + return float4(0, 0, 0, 0); +#else // SUN_SHAFTS_QUALITY + IXrayGbuffer O; + GbufferUnpack(I.Tex0.xy, I.HPos.xy, O); + + float3 P = O.Point; + +#ifndef JITTER_SUN_SHAFTS + // Fixed ray length, fixed step dencity + // float3 direction = (RAY_PATH/RAY_SAMPLES)*normalize(P); + // Variable ray length, variable step dencity + float3 direction = P / RAY_SAMPLES; +#else // JITTER_SUN_SHAFTS + // Variable ray length, variable step dencity, use jittering + float4 J0 = jitter0.Sample(smp_jitter, I.HPos.xy / JITTER_TEXTURE_SIZE); + float coeff = (RAY_SAMPLES - J0.x) / (RAY_SAMPLES * RAY_SAMPLES); + float3 direction = P * coeff; +#endif // JITTER_SUN_SHAFTS + + float depth = P.z; + float deltaDepth = direction.z; + + float4 current = mul(m_shadow, float4(P, 1.0f)); + float4 delta = mul(m_shadow, float4(direction, 0.0f)); + + float res = 0.0f; + float max_density = sun_shafts_intensity.x; + float density = max_density / RAY_SAMPLES; + + if(O.Depth > 0.9999f) { + depth = 0.0f; + res = max_density; + } + + [unroll] for(int i = 0; i < RAY_SAMPLES; ++i) + { + if (depth > 0.3) + { + #ifndef FILTER_LOW + res += density * shadow(current); + #else + res += density * sample_hw_pcf(current, float4(0, 0, 0, 0)); + #endif + } + + depth -= deltaDepth; + current -= delta; + } + + float fSturation = dot(normalize(P), -Ldynamic_dir.xyz); + + // Normalize dot product to + fSturation = 0.4f * fSturation + 0.6f; + + float fog = saturate(length(P.xyz) * fog_params.w + fog_params.x); + res = lerp(res, max_density, fog); + res *= fSturation; + + return PushGamma(res * Ldynamic_color); +#endif // SUN_SHAFTS_QUALITY +} + diff --git a/gamedata/shaders/d3d11/base_lplanes.ps.hlsl b/gamedata/shaders/d3d11/base_lplanes.ps.hlsl new file mode 100644 index 0000000..4e6b2c8 --- /dev/null +++ b/gamedata/shaders/d3d11/base_lplanes.ps.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // sun +}; + +// Pixel +float4 main(v2p I) : SV_Target +{ + float4 t_base = s_base.Sample(smp_base, I.tc0); + return PushGamma(float4(t_base.xyz, t_base.w * I.c0.w)); +} + diff --git a/gamedata/shaders/d3d11/base_lplanes.vs.hlsl b/gamedata/shaders/d3d11/base_lplanes.vs.hlsl new file mode 100644 index 0000000..d899fcf --- /dev/null +++ b/gamedata/shaders/d3d11/base_lplanes.vs.hlsl @@ -0,0 +1,27 @@ +#include "common.hlsli" + +struct vf +{ + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color + float4 hpos : SV_POSITION; +}; + +vf main(v_static v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.tc, v.T.w, v.B.w); // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul((float3x3)m_WV, unpack_normal(v.Nh.zyx))); + float fade = abs(dot(dir_v, norm_v)); + o.c0 = fade; + + o.hpos.xy += m_taa_jitter.xy * o.hpos.w; + + return o; +} + diff --git a/gamedata/shaders/d3d11/base_lplanes_fft.ps.hlsl b/gamedata/shaders/d3d11/base_lplanes_fft.ps.hlsl new file mode 100644 index 0000000..87dbd54 --- /dev/null +++ b/gamedata/shaders/d3d11/base_lplanes_fft.ps.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base +// float2 tc1: TEXCOORD1; // lmap + float4 c0: COLOR0; // sun +}; + +uniform float4 m_hud_params; + +inline bool isCollimatorActive() +{ + return (m_hud_params.w == 1.f); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// Pixel +float4 main( p_bumped_new I ) : SV_Target +{ + float4 color = s_base.Sample(smp_base, I.tcdh.xy); + + if (isCollimatorActive()) + { + return float4(color.xyz * color.w, 0.0f); + } + else + { + return float4(0.0, 0.0, 0.0, 0.0); + } +} diff --git a/gamedata/shaders/d3d11/bloom_build.ps.hlsl b/gamedata/shaders/d3d11/bloom_build.ps.hlsl new file mode 100644 index 0000000..fe5a5fd --- /dev/null +++ b/gamedata/shaders/d3d11/bloom_build.ps.hlsl @@ -0,0 +1,17 @@ +#include "common.hlsli" + +uniform float4 b_params; + +float4 main(p_build I) : SV_Target +{ + float3 s0 = s_image.Sample(smp_rtlinear, I.Tex0.xy).xyz; + float3 s1 = s_image.Sample(smp_rtlinear, I.Tex1.xy).xyz; + float3 s2 = s_image.Sample(smp_rtlinear, I.Tex2.xy).xyz; + float3 s3 = s_image.Sample(smp_rtlinear, I.Tex3.xy).xyz; + + float3 avg = PopGamma(s0 + s1 + s2 + s3) / (2.0f * def_hdr); + float hi = dot(avg, 1.h) - b_params.x; + + return float4(avg, hi); +} + diff --git a/gamedata/shaders/d3d11/bloom_filter.ps.hlsl b/gamedata/shaders/d3d11/bloom_filter.ps.hlsl new file mode 100644 index 0000000..e7852fd --- /dev/null +++ b/gamedata/shaders/d3d11/bloom_filter.ps.hlsl @@ -0,0 +1,33 @@ +#include "common.hlsli" + +uniform float4 weight[2]; + +float4 main(p_filter I) : SV_Target +{ + float4 accum = weight[1].w * s_bloom.Sample(smp_rtlinear, I.Tex0.xy); + + accum += weight[0].x * s_bloom.Sample(smp_rtlinear, I.Tex1.xy); + accum += weight[0].x * s_bloom.Sample(smp_rtlinear, I.Tex1.wz); + + accum += weight[0].y * s_bloom.Sample(smp_rtlinear, I.Tex2.xy); + accum += weight[0].y * s_bloom.Sample(smp_rtlinear, I.Tex2.wz); + + accum += weight[0].z * s_bloom.Sample(smp_rtlinear, I.Tex3.xy); + accum += weight[0].z * s_bloom.Sample(smp_rtlinear, I.Tex3.wz); + + accum += weight[0].w * s_bloom.Sample(smp_rtlinear, I.Tex4.xy); + accum += weight[0].w * s_bloom.Sample(smp_rtlinear, I.Tex4.wz); + + accum += weight[1].x * s_bloom.Sample(smp_rtlinear, I.Tex5.xy); + accum += weight[1].x * s_bloom.Sample(smp_rtlinear, I.Tex5.wz); + + accum += weight[1].y * s_bloom.Sample(smp_rtlinear, I.Tex6.xy); + accum += weight[1].y * s_bloom.Sample(smp_rtlinear, I.Tex6.wz); + + accum += weight[1].z * s_bloom.Sample(smp_rtlinear, I.Tex7.xy); + accum += weight[1].z * s_bloom.Sample(smp_rtlinear, I.Tex7.wz); + + // OK + return accum; +} + diff --git a/gamedata/shaders/d3d11/bloom_filter_f.ps.hlsl b/gamedata/shaders/d3d11/bloom_filter_f.ps.hlsl new file mode 100644 index 0000000..1b34754 --- /dev/null +++ b/gamedata/shaders/d3d11/bloom_filter_f.ps.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" + +/* +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float2 tc1: TEXCOORD1; // base + float2 tc2: TEXCOORD2; // base + float2 tc3: TEXCOORD3; // base +}; +*/ + +// Pixel +float4 main(p_build I) : SV_Target +{ + // float4 t_0 = tex2D (s_bloom,I.tc0); + // float4 t_1 = tex2D (s_bloom,I.tc1); + // float4 t_2 = tex2D (s_bloom,I.tc2); + // float4 t_3 = tex2D (s_bloom,I.tc3); + + float4 t_0 = s_image.Sample(smp_rtlinear, I.Tex0); + float4 t_1 = s_image.Sample(smp_rtlinear, I.Tex1); + float4 t_2 = s_image.Sample(smp_rtlinear, I.Tex2); + float4 t_3 = s_image.Sample(smp_rtlinear, I.Tex3); + + // out + return ((t_0 + t_1) + (t_2 + t_3)) / 2; +} diff --git a/gamedata/shaders/d3d11/bloom_luminance_1.ps.hlsl b/gamedata/shaders/d3d11/bloom_luminance_1.ps.hlsl new file mode 100644 index 0000000..756a087 --- /dev/null +++ b/gamedata/shaders/d3d11/bloom_luminance_1.ps.hlsl @@ -0,0 +1,21 @@ +#include "common.hlsli" + +float luminance(float2 tc) +{ + float3 source = s_image.Sample(smp_rtlinear, tc).xyz; + return dot(source, LUMINANCE_VECTOR) * def_hdr; +} + +float4 main(p_build I) : SV_Target +{ + float4 final; + + final.x = luminance(I.Tex0); + final.y = luminance(I.Tex1); + final.z = luminance(I.Tex2); + final.w = luminance(I.Tex3); + + // OK + return final; +} + diff --git a/gamedata/shaders/d3d11/bloom_luminance_2.ps.hlsl b/gamedata/shaders/d3d11/bloom_luminance_2.ps.hlsl new file mode 100644 index 0000000..e29aa8f --- /dev/null +++ b/gamedata/shaders/d3d11/bloom_luminance_2.ps.hlsl @@ -0,0 +1,59 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0 : TEXCOORD0; + float4 tc1 : TEXCOORD1; + float4 tc2 : TEXCOORD2; + float4 tc3 : TEXCOORD3; + float4 tc4 : TEXCOORD4; + float4 tc5 : TEXCOORD5; + float4 tc6 : TEXCOORD6; + float4 tc7 : TEXCOORD7; +}; + +float sample(float2 tc) +{ + float4 data = s_image.Sample(smp_rtlinear, tc); + return dot(data, 0.25f); +} + +float4 main(p_filter I) : SV_Target +{ + // sample + float4 accum0; + accum0.x = sample(I.Tex0.xy); + accum0.y = sample(I.Tex1.xy); + accum0.z = sample(I.Tex2.xy); + accum0.w = sample(I.Tex3.xy); + + float4 accum1; + accum1.x = sample(I.Tex4.xy); + accum1.y = sample(I.Tex5.xy); + accum1.z = sample(I.Tex6.xy); + accum1.w = sample(I.Tex7.xy); + + float4 accum2; + accum2.x = sample(I.Tex0.wz); + accum2.y = sample(I.Tex1.wz); + accum2.z = sample(I.Tex2.wz); + accum2.w = sample(I.Tex3.wz); + + float4 accum3; + accum3.x = sample(I.Tex4.wz); + accum3.y = sample(I.Tex5.wz); + accum3.z = sample(I.Tex6.wz); + accum3.w = sample(I.Tex7.wz); + + // perform accumulation + float4 final; + + final.x = dot(accum0, 0.25f); + final.y = dot(accum1, 0.25f); + final.z = dot(accum2, 0.25f); + final.w = dot(accum3, 0.25f); + + // OK + return final; +} + diff --git a/gamedata/shaders/d3d11/bloom_luminance_3.ps.hlsl b/gamedata/shaders/d3d11/bloom_luminance_3.ps.hlsl new file mode 100644 index 0000000..3f825b5 --- /dev/null +++ b/gamedata/shaders/d3d11/bloom_luminance_3.ps.hlsl @@ -0,0 +1,59 @@ +#include "common.hlsli" + +uniform float4 MiddleGray; + +float sample(float2 tc) +{ + float4 data = s_image.Sample(smp_rtlinear, tc); + return dot(data, 0.25f); +} + +float4 main(p_filter I) : SV_Target +{ + // sample + float4 accum0; + accum0.x = sample(I.Tex0.xy); + accum0.y = sample(I.Tex1.xy); + accum0.z = sample(I.Tex2.xy); + accum0.w = sample(I.Tex3.xy); + + float4 accum1; + accum1.x = sample(I.Tex4.xy); + accum1.y = sample(I.Tex5.xy); + accum1.z = sample(I.Tex6.xy); + accum1.w = sample(I.Tex7.xy); + + float4 accum2; + accum2.x = sample(I.Tex0.wz); + accum2.y = sample(I.Tex1.wz); + accum2.z = sample(I.Tex2.wz); + accum2.w = sample(I.Tex3.wz); + + float4 accum3; + accum3.x = sample(I.Tex4.wz); + accum3.y = sample(I.Tex5.wz); + accum3.z = sample(I.Tex6.wz); + accum3.w = sample(I.Tex7.wz); + + // perform accumulation + float4 final; + + final.x = dot(accum0, 0.25f); + final.y = dot(accum1, 0.25f); + final.z = dot(accum2, 0.25f); + final.w = dot(accum3, 0.25f); + + float result = dot(final, 0.25f); + + result = PushGamma(result); + + // OK + float scale = MiddleGray.x / (result * MiddleGray.y + MiddleGray.z); + float scale_prev = s_tonemap.Sample(smp_nofilter, I.Tex0.xy).x; + float rvalue = lerp(scale_prev, scale, MiddleGray.w); + + clamp(rvalue, 1.f / 128.f, 20.0f); + + return rvalue; +} + diff --git a/gamedata/shaders/d3d11/cgim.h b/gamedata/shaders/d3d11/cgim.h new file mode 100644 index 0000000..971f449 --- /dev/null +++ b/gamedata/shaders/d3d11/cgim.h @@ -0,0 +1,65 @@ +#ifndef cgim_h_included +#define cgim_h_included + +// creates more light by a vector from the sky +#define SMALLSKY_TOP_VECTOR_POWER 0.75f + +// Break default bloom to soften the overall picture +#define BROKE_BLOOM_POWER 1.5f + +#define CGIM_LUM float3(0.2126f, 0.7152f, 0.0722f) + +float Luminance(float3 Color) +{ + return dot(Color, CGIM_LUM); +} + +float3 TonemapRobo(float3 c) +{ + float l = Luminance(c); + return c / sqrt(1.0 + l * l); +} + +float TonemapRobo(float c) +{ + return c / sqrt(1.0 + c * c); +} + +float4 BrokeBloom(float4 c) +{ + c *= BROKE_BLOOM_POWER; + c = float4(TonemapRobo(c.rgb), TonemapRobo(c.a)); + c /= BROKE_BLOOM_POWER; + + return c; +} + +float3 Uncharted2ACES(float3 x) +{ + static const float A = 0.15f; // Shoulder strength + static const float B = 0.50f; // Linear strength + static const float C = 0.10f; // Linear angle + static const float D = 0.20f; // Toe strength + static const float E = 0.02f; // Toe numerator + static const float F = 0.30f; // Toe denominator + return ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - E / F; +} + +// Uncharted 2 tonemapping +#define UNCHARTED2TONEMAP_WHITEPT 1.35 +#define UNCHARTED2TONEMAP_EXPOSURE 1.0 + +float3 Uncharted2Tonemap(float3 c) +{ + c *= UNCHARTED2TONEMAP_EXPOSURE; + + float3 tc = Uncharted2ACES(c); + float l = Luminance(c); + + c = lerp(c * Uncharted2ACES(l) / l, tc, tc); + c /= Uncharted2ACES(UNCHARTED2TONEMAP_WHITEPT); + + return c; +} + +#endif \ No newline at end of file diff --git a/gamedata/shaders/d3d11/chromatic_aberration.ps.hlsl b/gamedata/shaders/d3d11/chromatic_aberration.ps.hlsl new file mode 100644 index 0000000..bd128f6 --- /dev/null +++ b/gamedata/shaders/d3d11/chromatic_aberration.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" +uniform float4 screen_res; + +float4 main(p_shadow I) : SV_Target +{ + float3 col; + float factor = saturate(distance(I.tc0, float2(0.5, 0.5))); + col.r = s_image.Sample(smp_rtlinear, float2(I.tc0 + float2(screen_res.z * factor, 0))).r; + col.g = s_image.Sample(smp_rtlinear, float2(I.tc0 + float2(-0.866, -0.5) * screen_res.zw * factor)).g; + col.b = s_image.Sample(smp_rtlinear, float2(I.tc0 + float2(0.866, -0.5) * screen_res.zw * factor)).b; + + return float4(col, 1); +} diff --git a/gamedata/shaders/d3d11/clouds.lua b/gamedata/shaders/d3d11/clouds.lua new file mode 100644 index 0000000..ccc1007 --- /dev/null +++ b/gamedata/shaders/d3d11/clouds.lua @@ -0,0 +1,12 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("clouds", "clouds") + :fog(false) + :zb(false, false) + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + + shader:dx10texture("s_clouds0", "null") + shader:dx10texture("s_clouds1", "null") + + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/clouds.ps.hlsl b/gamedata/shaders/d3d11/clouds.ps.hlsl new file mode 100644 index 0000000..e78af26 --- /dev/null +++ b/gamedata/shaders/d3d11/clouds.ps.hlsl @@ -0,0 +1,26 @@ +#include "common.hlsli" + +struct v2p +{ + float4 color : COLOR0; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; +}; + +Texture2D s_clouds0 : register(t0); +Texture2D s_clouds1 : register(t1); + +// Pixel +float4 main(v2p I) : SV_Target +{ + float4 s0 = s_clouds0.Sample(smp_base, I.tc0); + float4 s1 = s_clouds1.Sample(smp_base, I.tc1); + float4 mix = I.color * (s0 + s1); + +#ifdef USE_LEGACY_SKY_TONEMAP + return float4(detonemap(mix.xyz), mix.w); +#else + return float4(PushGamma(mix.xyz), mix.w); +#endif +} + diff --git a/gamedata/shaders/d3d11/clouds.vs.hlsl b/gamedata/shaders/d3d11/clouds.vs.hlsl new file mode 100644 index 0000000..89b935c --- /dev/null +++ b/gamedata/shaders/d3d11/clouds.vs.hlsl @@ -0,0 +1,37 @@ +#include "common.hlsli" +#include "shared\cloudconfig.hlsli" + +struct vi +{ + float4 p : POSITION; + float4 dir : COLOR0; // dir0,dir1(w<->z) + float4 color : COLOR1; // rgb. intensity +}; + +struct vf +{ + float4 color : COLOR0; // rgb. intensity, for SM3 - tonemap-prescaled, HI-res + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + float4 hpos : SV_POSITION; +}; + +vf main(vi v) +{ + vf o; + o.hpos = mul(m_WVP, v.p); // xform, input in world coords + o.hpos.xy += m_taa_jitter.xy * o.hpos.w; + + // generate tcs + float2 d0 = v.dir.xy * 2.0f - 1.0f; + float2 d1 = v.dir.wz * 2.0f - 1.0f; + float2 _0 = v.p.xz * CLOUD_TILE0 + d0 * timers.z * CLOUD_SPEED0; + float2 _1 = v.p.xz * CLOUD_TILE1 + d1 * timers.z * CLOUD_SPEED1; + o.tc0 = _0; + o.tc1 = _1; + + o.color = v.color; + o.color.w *= pow(v.p.y, 25.0f); + + return o; +} diff --git a/gamedata/shaders/d3d11/combine_1.ps.hlsl b/gamedata/shaders/d3d11/combine_1.ps.hlsl new file mode 100644 index 0000000..ef0d42b --- /dev/null +++ b/gamedata/shaders/d3d11/combine_1.ps.hlsl @@ -0,0 +1,57 @@ +#include "common.hlsli" + +#if defined(USE_OFFSCREEN_REFLECTIONS) && !defined(USE_SSLR_REFLECTIONS) +#define USE_VIEW_REFLECTIONS +#endif + +#include "metalic_roughness_light.hlsli" +#include "metalic_roughness_ambient.hlsli" +#include "reflections.hlsli" + +Texture2D s_occ; + +struct _input +{ + float4 tc0 : TEXCOORD0; + float2 tcJ : TEXCOORD1; + float4 pos2d : SV_POSITION; +}; + +float4 main(_input I) : SV_Target +{ + IXrayGbuffer O; + GbufferUnpack(I.tc0.xy, I.pos2d.xy, O); + float3 Light = s_accumulator.Load(int3(I.pos2d.xy, 0)).xyz; + +#ifdef USE_R2_STATIC_SUN + Light += O.SSS * DirectLight(Ldynamic_color, Ldynamic_dir.xyz, O.Normal, O.View.xyz, O.Color, O.Metalness, O.Roughness, O.F0); +#endif + + float Occ = O.AO * s_occ.SampleLevel(smp_rtlinear, I.tc0.xy, 0.0f).x; + +#ifndef USE_LEGACY_LIGHT + #ifdef USE_SSLR_REFLECTIONS + float3 SpecularIrradance = s_refl.SampleLevel(smp_rtlinear, I.tc0, 0.0).xyz; + SpecularIrradance *= rcp(1.00001f - SpecularIrradance); + #else + float3 SpecularIrradance = CompureSpecularIrradance(reflect(O.View, O.Normal), O.Hemi, O.Roughness); + #endif + + float3 DiffuseIrradance = CompureDiffuseIrradance(O.Normal, O.Hemi) + L_ambient.xyz; + float3 Ambient = AmbientLighting(DiffuseIrradance, SpecularIrradance, max(0.0, dot(O.Normal, -O.View.xyz)), O.Color, O.Metalness, O.Roughness, O.F0); +#else + float3 Ambient = AmbientLighting(O.View, O.Normal, O.Color, O.Metalness, O.Roughness, O.Hemi, O.F0); +#endif + + float3 Color = Occ * Ambient + Light; + + float Fog = PushGamma(saturate(O.ViewDist * fog_params.w + fog_params.x)); + Color = lerp(Color, PushGamma(fog_color.xyz), Fog); + +#ifdef USE_LEGACY_LIGHT + Fog *= Fog; +#endif + + return float4(Color, Fog); +} + diff --git a/gamedata/shaders/d3d11/combine_1.vs.hlsl b/gamedata/shaders/d3d11/combine_1.vs.hlsl new file mode 100644 index 0000000..f6c3c5b --- /dev/null +++ b/gamedata/shaders/d3d11/combine_1.vs.hlsl @@ -0,0 +1,24 @@ +#include "common.hlsli" + +struct _in +{ + float4 P : POSITIONT; // xy=pos, zw=tc0 + float2 tcJ : TEXCOORD0; // jitter coords +}; + +struct v2p +{ + float4 tc0 : TEXCOORD0; // tc.xy, tc.w = tonemap scale + float2 tcJ : TEXCOORD1; // jitter coords + float4 hpos : SV_POSITION; +}; + +// Vertex +v2p main(_in I) +{ + v2p O; + O.hpos = float4(I.P.x, -I.P.y, 0, 1); + O.tc0 = float4(I.P.zw, 1, 1); + O.tcJ = I.tcJ; + return O; +} diff --git a/gamedata/shaders/d3d11/combine_2.ps.hlsl b/gamedata/shaders/d3d11/combine_2.ps.hlsl new file mode 100644 index 0000000..f01fb15 --- /dev/null +++ b/gamedata/shaders/d3d11/combine_2.ps.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" +#include "mblur.hlsli" +#include "dof.hlsli" + +Texture3D s_lut; + +float3 main(v2p_aa_AA I) : SV_Target +{ + float3 Color = max(0.0f, dof(I.Tex0)); + float4 Bloom = s_bloom.Sample(smp_rtlinear, I.Tex0); + +#ifdef USE_CGIM_BLOOM_TWEAK + Bloom = BrokeBloom(Bloom); +#endif + + float Scale = s_tonemap.Sample(smp_nofilter, float2(0.5f, 0.5f)).x; + Color = tonemap(Color, Scale); + + Color = combine_bloom(Color, Bloom).xyz; + +#ifdef USE_CGIM_COLOR_TWEAK + Color = Uncharted2Tonemap(Color); +#endif + +#ifdef USE_LUT_TEXTURE + Color = s_lut.Sample(smp_rtlinear, saturate(Color)).xyz; +#endif + + return Color; +} + diff --git a/gamedata/shaders/d3d11/combine_distort.ps.hlsl b/gamedata/shaders/d3d11/combine_distort.ps.hlsl new file mode 100644 index 0000000..c37bf81 --- /dev/null +++ b/gamedata/shaders/d3d11/combine_distort.ps.hlsl @@ -0,0 +1,21 @@ +#include "common.hlsli" +Texture2D s_distort; + +float4 main(v2p_TL Input) : SV_Target +{ + float4 distort = s_distort.SampleLevel(smp_nofilter, Input.Tex0, 0); + float2 offset = distort.xy - (127.0f / 255.0f); + + float2 center = Input.Tex0 + offset * def_distort; + float depth_x = s_position.SampleLevel(smp_nofilter, center, 0).x; + +#ifdef SIMPLE_DISTORTION_FIX + float depth = s_position.SampleLevel(smp_nofilter, Input.Tex0, 0).x; +#else + #define depth 0.02f +#endif + center = depth_x < depth ? Input.Tex0 : center; + + return s_image.SampleLevel(smp_nofilter, center, 0); +} + diff --git a/gamedata/shaders/d3d11/combine_volumetric.lua b/gamedata/shaders/d3d11/combine_volumetric.lua new file mode 100644 index 0000000..1b78551 --- /dev/null +++ b/gamedata/shaders/d3d11/combine_volumetric.lua @@ -0,0 +1,10 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("combine_1", "combine_volumetric") + :fog(false) + :zb(false, false) + :blend(true, blend.one, blend.one) + :sorting(2, false) + + shader:dx10texture("s_vollight", "$user$generic2") + shader:dx10sampler("smp_nofilter") +end diff --git a/gamedata/shaders/d3d11/combine_volumetric.ps.hlsl b/gamedata/shaders/d3d11/combine_volumetric.ps.hlsl new file mode 100644 index 0000000..5bdc2b4 --- /dev/null +++ b/gamedata/shaders/d3d11/combine_volumetric.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" +Texture2D s_vollight; + +struct _input +{ + float4 tc0 : TEXCOORD0; +}; + +float4 main(_input I) : SV_Target +{ + return s_vollight.Load(int3(I.tc0.xy * pos_decompression_params2.xy, 0)); +} + diff --git a/gamedata/shaders/d3d11/common.hlsli b/gamedata/shaders/d3d11/common.hlsli new file mode 100644 index 0000000..f120696 --- /dev/null +++ b/gamedata/shaders/d3d11/common.hlsli @@ -0,0 +1,19 @@ +#ifndef COMMON_H +#define COMMON_H + +#pragma warning(disable : 4000) + +#include "shared\common.hlsli" + +#include "common_defines.hlsli" +#include "common_defines.hlsli" +#include "common_policies.hlsli" +#include "common_iostructs.hlsli" +#include "common_samplers.hlsli" +#include "common_cbuffers.hlsli" +#include "common_functions.hlsli" +#include "metalic_roughness_base.hlsli" +#include "cgim.h" + +#endif + diff --git a/gamedata/shaders/d3d11/common_cbuffers.hlsli b/gamedata/shaders/d3d11/common_cbuffers.hlsli new file mode 100644 index 0000000..005d47c --- /dev/null +++ b/gamedata/shaders/d3d11/common_cbuffers.hlsli @@ -0,0 +1,21 @@ +#ifndef common_cbuffers_h_included +#define common_cbuffers_h_included + +// Used by dynamic lights and volumetric effects +cbuffer dynamic_light +{ + float4 Ldynamic_color; // dynamic light color (rgb1) - spot/point/sun + float4 Ldynamic_pos; // dynamic light pos+1/range(w) - spot/point + float4 Ldynamic_dir; // dynamic light direction - sun +} + +#else + +cbuffer dynamic_light +{ + float4 Ldynamic_color; // dynamic light color (rgb1) - spot/point/sun + float4 Ldynamic_pos; // dynamic light pos+1/range(w) - spot/point + float4 Ldynamic_dir; // dynamic light direction - sun +} + +#endif // common_cbuffers_h_included diff --git a/gamedata/shaders/d3d11/common_defines.hlsli b/gamedata/shaders/d3d11/common_defines.hlsli new file mode 100644 index 0000000..5e82eea --- /dev/null +++ b/gamedata/shaders/d3d11/common_defines.hlsli @@ -0,0 +1,24 @@ +#ifndef common_defines_h_included +#define common_defines_h_included + +// Defines // +#define def_gloss float(2.f / 255.f) +#define def_dbumph float(0.333f) +#define def_virtualh float(0.05f) // 5cm +#define def_distort float(0.05f) // we get -0.5 .. 0.5 range, this is -512 .. 512 for 1024, so scale it +#define def_hdr float(9.h) // hight luminance range float(3.h) +#define def_hdr_clip float(0.75h) // + +#define LUMINANCE_VECTOR float3(0.3f, 0.38f, 0.22f) + +#if defined(SM_5) || defined(SM_4_1) + #define TEXTURE2DMS(a, b) Texture2DMS +#else + #define TEXTURE2DMS(a, b) Texture2DMS +#endif + +#ifndef SMAP_size + #define SMAP_size 1024 +#endif + +#endif // common_defines_h_included diff --git a/gamedata/shaders/d3d11/common_functions.hlsli b/gamedata/shaders/d3d11/common_functions.hlsli new file mode 100644 index 0000000..f89fdb2 --- /dev/null +++ b/gamedata/shaders/d3d11/common_functions.hlsli @@ -0,0 +1,290 @@ +#ifndef common_functions_h_included +#define common_functions_h_included + +// contrast function +float Contrast(float Input, float ContrastPower) +{ + // piecewise contrast function + bool IsAbovefloat = Input > 0.5f; + float ToRaise = saturate(2.0f * (IsAbovefloat ? 1.0f - Input : Input)); + float Output = 0.5f * pow(ToRaise, ContrastPower); + Output = IsAbovefloat ? 1.0f - Output : Output; + return Output; +} + +#ifndef SRGB_GAMMA +#define SRGB_GAMMA 2.2 +#endif + +#ifndef USE_LEGACY_LIGHT + #define PushGamma(x) pow(abs(x), SRGB_GAMMA) + #define PopGamma(x) pow(abs(x), rcp(SRGB_GAMMA)) +#else + #define PushGamma(x) abs(x) + #define PopGamma(x) abs(x) +#endif + +#ifndef USE_CGIM_WHITE_TWEAK + #define RCP_WHITE_SQR 0.34602f + #define INV_TONEMAP_COEF_ONE 0.61592f + #define INV_TONEMAP_COEF_TWO 1.44565f +#else + #define RCP_WHITE_SQR 0.416233f + #define INV_TONEMAP_COEF_ONE 0.335068f + #define INV_TONEMAP_COEF_TWO 1.20125f +#endif + +float3 tonemap(float3 rgb, float scale) +{ + rgb = rgb * scale; + rgb = rgb * (1.0f + rgb * RCP_WHITE_SQR) * rcp(rgb + 1.0f); + + return PopGamma(rgb); +} + +float3 detonemap(float3 rgb) +{ + rgb = PushGamma(rgb); + + float3 scale = rgb * rgb - INV_TONEMAP_COEF_ONE * rgb + 1.0f; + rgb = rgb + sqrt(scale) - 1.0f; + + return rgb * INV_TONEMAP_COEF_TWO; +} + +void RemapVector(inout float3 View) +{ + float3 ViewPos = abs(View); + float ViewPosMax = max(ViewPos.x, max(ViewPos.y, ViewPos.z)); + + View *= rcp(ViewPosMax); + View.y = View.y * 2.0 - 1.0; +} + +// Функции генерации Ñлучайных чиÑел [0, 1] +// START + +float Hash(float n) +{ + return frac(sin(n) * 43758.5453123f); +} + +float Hash(float2 n) +{ + return Hash(Hash(n.x) + n.y); +} + +float Hash(float3 n) +{ + return Hash(Hash(dot(n.xy, float2(12.989, 78.233))) + n.z); +} + +float2 Hash22(float2 value) +{ + return float2( + Hash(dot(value, float2(12.989, 78.233))), + Hash(dot(value, float2(39.346, 11.135)))); +} + +float3 Hash23(float2 value) +{ + return float3( + Hash(dot(value, float2(12.989, 78.233))), + Hash(dot(value, float2(39.346, 11.135))), + Hash(dot(value, float2(73.156, 52.235)))); +} + +float2 Hash32(float3 value) +{ + return float2( + Hash(dot(value, float3(12.989, 78.233, 123.134f))), + Hash(dot(value, float3(39.346, 11.135, 543.142f)))); +} + +float3 Hash33(float3 value) +{ + return float3( + Hash(dot(value, float3(12.989, 78.233, 123.134f))), + Hash(dot(value, float3(39.346, 11.135, 543.142f))), + Hash(dot(value, float3(73.156, 52.235, 143.425f)))); +} + +// END + +float GetBorderAtten(float2 tc, float2 att) +{ + att.x *= pos_decompression_params2.y * pos_decompression_params2.z; + float2 factors = saturate(min(1.0f - tc, tc) * rcp(att)); + return factors.x * factors.y; +} + +bool GetBorderAtten(float2 tc) +{ + float2 factors = min(1.0f - tc, tc); + return min(factors.x, factors.y) > 0.0f; +} + +float GetMaxDirLength(float3 Point, float3 RDir) +{ + float3 FirstPoint = RDir - Point * RDir; + float3 LastPoint = -Point * RDir; + + float3 MaxPoint = max(FirstPoint, LastPoint); + return min(MaxPoint.x, min(MaxPoint.y, MaxPoint.z)); +} + +// Hashed Alpha Testing +// The implementation was taken from https://cwyman.org/papers/i3d17_hashedAlpha.pdf document by Chris Wyman and Morgan McGuire +float hashed_alpha_test(float3 position) +{ + if (m_taa_jitter.z < 0.0f) + { + return def_aref; + } + // Find the discretized derivatives of our coordinates + float maxDeriv = max(length(ddx(position.xyz)), length(ddy(position.xyz))); + float pixScale = rcp(def_aref * maxDeriv); // Let's use def_aref as temporary pixel scale + float pixScaleLog2 = log2(pixScale); + + // Find two nearest log-discretized noise scales + float2 pixScales = float2(exp2(floor(pixScaleLog2)), exp2(ceil(pixScaleLog2))); + + // Compute alpha thresholds at our two noise scales + float2 alpha = float2(Hash(floor(pixScales.x * position.xyz)), Hash(floor(pixScales.y * position.xyz))); + + // Factor to interpolate lerp with + float lerpFactor = frac(log2(pixScale)); + + // Interpolate alpha threshold from noise at two scales + float x = lerp(alpha.x, alpha.y, lerpFactor); + + // Pass into CDF to compute uniformly distrib threshold + float a = min(lerpFactor, 1.0 - lerpFactor); + float3 cases; + cases.x = x * x * rcp(2.0 * a * (1.0 - a)); + cases.y = (x - 0.5 * a) * rcp(1.0 - a); + cases.z = 1.0 - ((1.0 - x) * (1.0 - x) * rcp(2.0 * a * (1.0 - a))); + + // Find our final, uniformly distributed alpha threshold + float thresh = (x < (1.0 - a)) ? ((x < a) ? cases.x : cases.y) : cases.z; + + // R1 sequence to animate our noise for TAA/FSR/DLSS + // Todo: Check if player has enabled TAA/upscaling to enable anim + thresh = frac(thresh + m_taa_jitter.z); + + // Clamp alpha + return clamp(thresh, 0.063f, 1.0f); +} + +#define IMAGE_BITRATE float3(255.f, 255.f, 255.f) + +// Deband color function (by Hozar 2002) - may be huita +float3 deband_color(float3 image, float2 uv) +{ + float3 dither = Hash23(cos(uv.xy * timers.x) * 1245.0f); + + float3 color = saturate(image) * IMAGE_BITRATE; + float3 pq = frac(color); + + color -= pq; + pq = step(dither, pq); + + color += pq; + color *= rcp(IMAGE_BITRATE); + + return color; +} + +//Builds a cotangent frame. Source: http://www.thetenthplanet.de/archives/1180 +void build_contangent_frame(float3 position, float3 normal, float2 uv, out float3 tangent, out float3 binormal) +{ + float4 duv = float4(ddx(uv), ddy(uv)); + float3 dp1perp = cross(normal, ddx(position)); + float3 dp2perp = cross(ddy(position), normal); + + tangent = dp2perp * duv.x + dp1perp * duv.z; + binormal = dp2perp * duv.y + dp1perp * duv.w; + + float invmax = rsqrt(max(dot(tangent, tangent), dot(binormal, binormal))); + + tangent *= invmax; + binormal *= invmax; +} + +float4 combine_bloom(float3 low, float4 high) +{ + return float4(low.xyz + high.xyz * high.w, 1.f); +} + +float calc_fogging(float3 pos) +{ + return saturate(length(pos - eye_position) * fog_params.w + fog_params.x); +} + +float2 unpack_tc_base(float2 tc, float du, float dv) +{ + return (tc.xy + float2(du, dv)) * (32.f / 32768.f); //! Increase from 32bit to 64bit floating point +} + +float3 unpack_normal(float3 v) +{ + return 2 * v - 1; +} + +float3 unpack_bx2(float3 v) +{ + return 2 * v - 1; +} + +float3 unpack_bx4(float3 v) +{ + return 4 * v - 2; +} //! reduce the amount of stretching from 4*v-2 and increase precision + +float2 unpack_tc_lmap(float2 tc) +{ + return tc * (1.f / 32768.f); +} // [-1 .. +1 ] + +float4 unpack_color(float4 c) +{ + return c.bgra; +} + +float4 unpack_D3DCOLOR(float4 c) +{ + return c.bgra; +} + +float3 unpack_D3DCOLOR(float3 c) +{ + return c.bgr; +} + +float3 p_hemi(float2 tc) +{ + float4 t_lmh = s_hemi.Sample(smp_rtlinear, tc); + return t_lmh.w; +} + +float get_hemi(float4 lmh) +{ + return lmh.w; +} + +float get_sun(float4 lmh) +{ + return lmh.y; +} + +float3 v_sun(float3 N) +{ + return L_sun_color.xyz * dot(N, -L_sun_dir_w.xyz); +} + +float3 calc_reflection(float3 pos_w, float3 norm_w) +{ + return reflect(normalize(pos_w - eye_position), norm_w); +} + +#endif // common_functions_h_included diff --git a/gamedata/shaders/d3d11/common_iostructs.hlsli b/gamedata/shaders/d3d11/common_iostructs.hlsli new file mode 100644 index 0000000..488d4db --- /dev/null +++ b/gamedata/shaders/d3d11/common_iostructs.hlsli @@ -0,0 +1,514 @@ +#ifndef common_iostructs_h_included +#define common_iostructs_h_included + +//////////////////////////////////////////////////////////////// +// This file contains io structs: +// v_name : input for vertex shader. +// v2p_name: output for vertex shader. +// p_name : input for pixel shader. +//////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////// +// TL0uv +struct v_TL0uv_positiont +{ + float4 P : POSITIONT; + float4 Color : COLOR; +}; + +struct v_TL0uv +{ + float4 P : POSITION; + float4 Color : COLOR; +}; + +struct v2p_TL0uv +{ + float4 Color : COLOR; + float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; + +struct p_TL0uv +{ + float4 Color : COLOR; + // float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; + +//////////////////////////////////////////////////////////////// +// TL +struct v_TL_positiont +{ + float4 P : POSITIONT; + float2 Tex0 : TEXCOORD0; + float4 Color : COLOR; +}; + +struct v_TL +{ + float4 P : POSITION; + float2 Tex0 : TEXCOORD0; + float4 Color : COLOR; +}; + +struct v2p_TL +{ + float2 Tex0 : TEXCOORD0; + float4 Color : COLOR; + float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; + +struct p_TL +{ + float2 Tex0 : TEXCOORD0; + float4 Color : COLOR; + // float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; + +//////////////////////////////////////////////////////////////// +// TL2uv +struct v_TL2uv +{ + float4 P : POSITIONT; + float2 Tex0 : TEXCOORD0; + float2 Tex1 : TEXCOORD1; + float4 Color : COLOR; +}; + +struct v2p_TL2uv +{ + float2 Tex0 : TEXCOORD0; + float2 Tex1 : TEXCOORD1; + float4 Color : COLOR; + float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; + +struct p_TL2uv +{ + float2 Tex0 : TEXCOORD0; + float2 Tex1 : TEXCOORD1; + float4 Color : COLOR; + // float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; +//////////////////////////////////////////////////////////////// +// postpr +struct v_postpr +{ + float4 P : POSITIONT; + float2 Tex0 : TEXCOORD0; // base1 (duality) + float2 Tex1 : TEXCOORD1; // base2 (duality) + float2 Tex2 : TEXCOORD2; // base (noise) + float4 Color : COLOR0; // multiplier, color.w = noise_amount + float4 Gray : COLOR1; // (.3,.3,.3.,amount) +}; + +struct v2p_postpr +{ + float2 Tex0 : TEXCOORD0; // base1 (duality) + float2 Tex1 : TEXCOORD1; // base2 (duality) + float2 Tex2 : TEXCOORD2; // base (noise) + float4 Color : COLOR0; // multiplier, color.w = noise_amount + float4 Gray : COLOR1; // (.3,.3,.3.,amount) + float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; + +struct p_postpr +{ + float2 Tex0 : TEXCOORD0; // base1 (duality) + float2 Tex1 : TEXCOORD1; // base2 (duality) + float2 Tex2 : TEXCOORD2; // base (noise) + float4 Color : COLOR0; // multiplier, color.w = noise_amount + float4 Gray : COLOR1; // (.3,.3,.3.,amount) + // float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; +//////////////////////////////////////////////////////////////// +// build (bloom_build) +struct v_build +{ + float4 P : POSITIONT; + float2 Tex0 : TEXCOORD0; + float2 Tex1 : TEXCOORD1; + float2 Tex2 : TEXCOORD2; + float2 Tex3 : TEXCOORD3; +}; + +struct v2p_build +{ + float2 Tex0 : TEXCOORD0; + float2 Tex1 : TEXCOORD1; + float2 Tex2 : TEXCOORD2; + float2 Tex3 : TEXCOORD3; + float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; + +struct p_build +{ + float2 Tex0 : TEXCOORD0; + float2 Tex1 : TEXCOORD1; + float2 Tex2 : TEXCOORD2; + float2 Tex3 : TEXCOORD3; + // float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; +//////////////////////////////////////////////////////////////// +// filter (bloom_filter) +struct v_filter +{ + float4 P : POSITIONT; + float4 Tex0 : TEXCOORD0; + float4 Tex1 : TEXCOORD1; + float4 Tex2 : TEXCOORD2; + float4 Tex3 : TEXCOORD3; + float4 Tex4 : TEXCOORD4; + float4 Tex5 : TEXCOORD5; + float4 Tex6 : TEXCOORD6; + float4 Tex7 : TEXCOORD7; +}; + +struct v2p_filter +{ + float4 Tex0 : TEXCOORD0; + float4 Tex1 : TEXCOORD1; + float4 Tex2 : TEXCOORD2; + float4 Tex3 : TEXCOORD3; + float4 Tex4 : TEXCOORD4; + float4 Tex5 : TEXCOORD5; + float4 Tex6 : TEXCOORD6; + float4 Tex7 : TEXCOORD7; + float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; + +struct p_filter +{ + float4 Tex0 : TEXCOORD0; + float4 Tex1 : TEXCOORD1; + float4 Tex2 : TEXCOORD2; + float4 Tex3 : TEXCOORD3; + float4 Tex4 : TEXCOORD4; + float4 Tex5 : TEXCOORD5; + float4 Tex6 : TEXCOORD6; + float4 Tex7 : TEXCOORD7; + // float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; + +//////////////////////////////////////////////////////////////// +// aa_AA +struct v_aa_AA +{ + float4 P : POSITIONT; + float2 Tex0 : TEXCOORD0; + float2 Tex1 : TEXCOORD1; + float2 Tex2 : TEXCOORD2; + float2 Tex3 : TEXCOORD3; + float2 Tex4 : TEXCOORD4; + float4 Tex5 : TEXCOORD5; + float4 Tex6 : TEXCOORD6; +}; + +struct v2p_aa_AA +{ + float2 Tex0 : TEXCOORD0; + float2 Tex1 : TEXCOORD1; + float2 Tex2 : TEXCOORD2; + float2 Tex3 : TEXCOORD3; + float2 Tex4 : TEXCOORD4; + float4 Tex5 : TEXCOORD5; + float4 Tex6 : TEXCOORD6; + float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; + +struct p_aa_AA +{ + float2 Tex0 : TEXCOORD0; + float2 Tex1 : TEXCOORD1; + float2 Tex2 : TEXCOORD2; + float2 Tex3 : TEXCOORD3; + float2 Tex4 : TEXCOORD4; + float4 Tex5 : TEXCOORD5; + float4 Tex6 : TEXCOORD6; + // float4 HPos :SV_POSITION; // Clip-space position (for rasterization) +}; + +struct p_aa_AA_sun +{ + float2 tc : TEXCOORD0; + float2 unused : TEXCOORD1; + float2 LT : TEXCOORD2; + float2 RT : TEXCOORD3; + float2 LB : TEXCOORD4; + float2 RB : TEXCOORD5; + // float4 HPos :SV_POSITION; // Clip-space position (for rasterization) +}; + +//////////////////////////////////////////////////////////////// +// dumb +struct v_dumb +{ + float4 P : POSITION; // Clip-space position (for rasterization) +}; + +struct v2p_dumb +{ + float4 HPos : SV_POSITION; // Clip-space position (for rasterization) +}; + +//////////////////////////////////////////////////////////////// +// Volume +struct v2p_volume +{ + float4 tc : TEXCOORD0; + float4 hpos : SV_POSITION; // Clip-space position (for rasterization) +}; +struct p_volume +{ + float4 tc : TEXCOORD0; + // float4 hpos :SV_POSITION; // Clip-space position (for rasterization) +}; +//////////////////////////////////////////////////////////////// +// Static +struct v_static +{ + float4 Nh : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; // tangent + float4 B : BINORMAL; // binormal + int2 tc : TEXCOORD0; // (u,v) +#ifdef USE_LM_HEMI + int2 lmh : TEXCOORD1; // (lmu,lmv) +#endif + float4 P : POSITION; // (float,float,float,1) +}; + +struct v_static_color +{ + float4 P : POSITION; // (float,float,float,1) + + float4 Nh : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; // tangent + float4 B : BINORMAL; // binormal + + float4 color : COLOR0; // (r,g,b,dir-occlusion) // Swizzle before use!!! + int2 tc : TEXCOORD0; // (u,v) + +#ifdef USE_LM_HEMI + int2 lmh : TEXCOORD1; // (lmu,lmv) +#endif +}; + +struct f_deffer +{ + float4 Ne : SV_Target0; + float4 C : SV_Target1; + float2 V : SV_Target2; +}; + +struct f_forward +{ + float4 Color : SV_Target0; + float Reactive : SV_Target1; + float2 Velocity : SV_Target2; +}; + +struct gbuffer_data +{ + float3 P; + float3 P_hud; + float3 P_real; + + float depth; + + float mtl; + float3 N; + float hemi; + float3 C; + float gloss; + + float sss; +}; + +//////////////////////////////////////////////////////////////// +// Defer bumped +struct p_bumped_new +{ + float4 hpos : SV_POSITION; + + float4 tcdh : TEXCOORD0; // Texture coordinates, sun_occlusion || lm-hemi + float4 position : TEXCOORD1; // position + hemi + float3 M1 : TEXCOORD2; // nmap 2 eye - 1 + float3 M2 : TEXCOORD3; // nmap 2 eye - 2 + float3 M3 : TEXCOORD4; // nmap 2 eye - 3 + + float4 hpos_curr : TEXCOORD5; + float4 hpos_old : TEXCOORD6; + + float snow_mask : TEXCOORD7; + +#ifndef USE_LM_HEMI +#ifdef USE_LENGTH_BUFFER + float3 lmap : TEXCOORD8; +#endif +#endif +}; + +struct p_bilbord +{ + float4 hpos : SV_POSITION; + float4 af : COLOR1; + + float3 position : TEXCOORD0; + float2 tc0 : TEXCOORD1; + float2 tc1 : TEXCOORD2; + + float4 hpos_curr : TEXCOORD3; + float4 hpos_old : TEXCOORD4; +}; + +struct v2p_bumped +{ +#if defined(USE_R2_STATIC_SUN) && !defined(USE_LM_HEMI) + float4 tcdh : TEXCOORD0; // Texture coordinates, w=sun_occlusion +#else + float2 tcdh : TEXCOORD0; // Texture coordinates +#endif + float4 position : TEXCOORD1; // position + hemi + float3 M1 : TEXCOORD2; // nmap 2 eye - 1 + float3 M2 : TEXCOORD3; // nmap 2 eye - 2 + float3 M3 : TEXCOORD4; // nmap 2 eye - 3 +#ifdef USE_TDETAIL + float2 tcdbump : TEXCOORD5; // d-bump +#endif +#ifdef USE_LM_HEMI + float2 lmh : TEXCOORD6; // lm-hemi +#endif + float4 hpos_curr : POSITION0; + float4 hpos_old : POSITION1; + float4 hpos : SV_POSITION; +}; + +struct p_bumped +{ +#if defined(USE_R2_STATIC_SUN) && !defined(USE_LM_HEMI) + float4 tcdh : TEXCOORD0; // Texture coordinates, w=sun_occlusion +#else + float2 tcdh : TEXCOORD0; // Texture coordinates +#endif + float4 position : TEXCOORD1; // position + hemi + float3 M1 : TEXCOORD2; // nmap 2 eye - 1 + float3 M2 : TEXCOORD3; // nmap 2 eye - 2 + float3 M3 : TEXCOORD4; // nmap 2 eye - 3 +#ifdef USE_TDETAIL + float2 tcdbump : TEXCOORD5; // d-bump +#endif +#ifdef USE_LM_HEMI + float2 lmh : TEXCOORD6; // lm-hemi +#endif + float4 hpos_curr : POSITION0; + float4 hpos_old : POSITION1; +}; + +// Defer flat +struct v2p_flat +{ +#if defined(USE_R2_STATIC_SUN) && !defined(USE_LM_HEMI) + float4 tcdh : TEXCOORD0; // Texture coordinates, w=sun_occlusion +#else + float2 tcdh : TEXCOORD0; // Texture coordinates +#endif + float4 position : TEXCOORD1; // position + hemi + float3 N : TEXCOORD2; // Eye-space normal (for lighting) +#ifdef USE_TDETAIL + float2 tcdbump : TEXCOORD3; // d-bump +#endif +#ifdef USE_LM_HEMI + float2 lmh : TEXCOORD4; // lm-hemi +#endif + float4 hpos_curr : POSITION0; + float4 hpos_old : POSITION1; + float4 hpos : SV_POSITION; +}; + +struct p_flat +{ +#if defined(USE_R2_STATIC_SUN) && !defined(USE_LM_HEMI) + float4 tcdh : TEXCOORD0; // Texture coordinates, w=sun_occlusion +#else + float2 tcdh : TEXCOORD0; // Texture coordinates +#endif + float4 position : TEXCOORD1; // position + hemi + float3 N : TEXCOORD2; // Eye-space normal (for lighting) +#ifdef USE_TDETAIL + float2 tcdbump : TEXCOORD3; // d-bump +#endif +#ifdef USE_LM_HEMI + float2 lmh : TEXCOORD4; // lm-hemi +#endif + float4 hpos_curr : POSITION0; + float4 hpos_old : POSITION1; +}; + +// Shadow +struct v_shadow_direct_aref +{ + float4 P : POSITION; // (float,float,float,1) + int4 tc : TEXCOORD0; // (u,v,frac,???) +}; + +struct v_shadow_direct +{ + float4 P : POSITION; // (float,float,float,1) +}; + +struct v2p_shadow_direct_aref +{ + float2 tc0 : TEXCOORD0; // Diffuse map for aref + float4 hpos : SV_POSITION; // Clip-space position (for rasterization) +}; + +struct v2p_shadow_direct +{ + float4 hpos : SV_POSITION; // Clip-space position (for rasterization) +}; + +struct p_shadow_direct_aref +{ + float2 tc0 : TEXCOORD0; // Diffuse map for aref +}; + +struct p_shadow +{ + float2 tc0 : TEXCOORD0; + float4 hpos : SV_POSITION; +}; + +struct v2p_screen +{ + float2 tc0 : TEXCOORD0; + float4 HPos : POSITIONT; // Clip-space position (for rasterization) +}; + +// Model +struct v_model +{ + float4 P : POSITION; // (float,float,float,1) + float3 N : NORMAL; // (nx,ny,nz) + float3 T : TANGENT; // (nx,ny,nz) + float3 B : BINORMAL; // (nx,ny,nz) + float2 tc : TEXCOORD0; // (u,v) + float4 P_old : TEXCOORD1; // (float,float,float,1) +}; + +// Tree +struct v_tree +{ + float4 P : POSITION; // (float,float,float,1) + float4 Nh : NORMAL; // (nx,ny,nz) + float3 T : TANGENT; // tangent + float3 B : BINORMAL; // binormal + int4 tc : TEXCOORD0; // (u,v,frac,???) +}; + +// Details +struct v_detail +{ + float4 pos : POSITION; // position, frac + float2 tc : TEXCOORD0; // texcoord +}; + +#endif // common_iostructs_h_included diff --git a/gamedata/shaders/d3d11/common_policies.hlsli b/gamedata/shaders/d3d11/common_policies.hlsli new file mode 100644 index 0000000..1610e52 --- /dev/null +++ b/gamedata/shaders/d3d11/common_policies.hlsli @@ -0,0 +1,12 @@ +#ifndef common_policies_h_included +#define common_policies_h_included + +#ifndef ISAMPLE + #define ISAMPLE 0 +#endif // ISAMPLE + +///////////////////////////////////////////////////////////////////////////// +#define GLD_P(_tc, _pos2d, _iSample) _tc, _pos2d +#define CS_P(_P, _N, _tc0, _tcJ, _pos2d, _iSample) _P, _N, _tc0, _tcJ, _pos2d + +#endif // common_policies_h_included diff --git a/gamedata/shaders/d3d11/common_samplers.hlsli b/gamedata/shaders/d3d11/common_samplers.hlsli new file mode 100644 index 0000000..7b45713 --- /dev/null +++ b/gamedata/shaders/d3d11/common_samplers.hlsli @@ -0,0 +1,67 @@ +#ifndef common_samplers_h_included +#define common_samplers_h_included + +// Geometry phase / deferring // + +sampler smp_nofilter; // Use D3DTADDRESS_CLAMP, D3DTEXF_POINT, D3DTEXF_NONE, D3DTEXF_POINT +sampler smp_rtlinear; // Use D3DTADDRESS_CLAMP, D3DTEXF_LINEAR, D3DTEXF_NONE, D3DTEXF_LINEAR +sampler smp_linear; // Use D3DTADDRESS_WRAP, D3DTEXF_LINEAR, D3DTEXF_LINEAR, D3DTEXF_LINEAR +sampler smp_base; // Use D3DTADDRESS_WRAP, D3DTEXF_ANISOTROPIC, D3DTEXF_LINEAR, D3DTEXF_ANISOTROPIC + +Texture2D s_base; // smp_base +Texture2D s_generic; +Texture2D s_bump; // +Texture2D s_bumpX; // +Texture2D s_detail; // +Texture2D s_detailBump; // +Texture2D s_detailBumpX; // Error for bump detail +// Texture2D s_bumpD; // +Texture2D s_hemi; // + +Texture2D s_mask; // + +Texture2D s_dt_r; // +Texture2D s_dt_g; // +Texture2D s_dt_b; // +Texture2D s_dt_a; // + +Texture2D s_dn_r; // +Texture2D s_dn_g; // +Texture2D s_dn_b; // +Texture2D s_dn_a; // + +Texture2D s_dn_rX; +Texture2D s_dn_gX; +Texture2D s_dn_bX; +Texture2D s_dn_aX; + +Texture2D s_refl; +TextureCube s_env; + +TextureCube env_s0; +TextureCube env_s1; +TextureCube sky_s0; +TextureCube sky_s1; + +// Lighting/shadowing phase // + +sampler smp_material; + +// uniform sampler2D s_depth; // +Texture2D s_position; // smp_nofilter or Load +Texture2D s_surface; // smp_nofilter or Load +Texture2D s_normal; // smp_nofilter or Load +Texture2D s_lmap; // 2D/???cube projector lightmap +Texture3D s_material; // smp_material +// uniform sampler1D s_attenuate; // + +// Combine phase // +Texture2D s_diffuse; // rgb.a = diffuse.gloss +Texture2D s_accumulator; // rgb.a = diffuse.specular +// uniform sampler2D s_generic; // +Texture2D s_bloom; // +Texture2D s_image; // used in various post-processing +Texture2D s_velocity; // used in various post-processing +Texture2D s_tonemap; // actually MidleGray / exp(Lw + eps) + +#endif // #ifndef common_samplers_h_included diff --git a/gamedata/shaders/d3d11/contrast_adaptive_sharpening.ps.hlsl b/gamedata/shaders/d3d11/contrast_adaptive_sharpening.ps.hlsl new file mode 100644 index 0000000..f5b9436 --- /dev/null +++ b/gamedata/shaders/d3d11/contrast_adaptive_sharpening.ps.hlsl @@ -0,0 +1,66 @@ +// This is really short version of CAS based on AMD presentation (https://gpuopen.com/wp-content/uploads/2019/07/FidelityFX-CAS.pptx) +#include "common.hlsli" + +float sharpening_intensity; + +float4 main(v2p_TL Input) : SV_Target +{ + float2 texcoord = Input.Tex0; + // fetch a 3x3 neighborhood around the pixel 'e', + // a b c + // d(e)f + // g h i + + float3 a = s_image.SampleLevel(smp_rtlinear, texcoord, 0.0, int2(-1, -1)).xyz; a *= rcp(1.0f + a); + float3 b = s_image.SampleLevel(smp_rtlinear, texcoord, 0.0, int2(0, -1)).xyz; b *= rcp(1.0f + b); + float3 c = s_image.SampleLevel(smp_rtlinear, texcoord, 0.0, int2(1, -1)).xyz; c *= rcp(1.0f + c); + + float3 d = s_image.SampleLevel(smp_rtlinear, texcoord, 0.0, int2(-1, 0)).xyz; d *= rcp(1.0f + d); + float3 g = s_image.SampleLevel(smp_rtlinear, texcoord, 0.0, int2(-1, 1)).xyz; g *= rcp(1.0f + g); + + float3 e = s_image.SampleLevel(smp_rtlinear, texcoord, 0.0).xyz; e *= rcp(1.0f + e); + + float3 f = s_image.SampleLevel(smp_rtlinear, texcoord, 0.0, int2(1, 0)).xyz; f *= rcp(1.0f + f); + float3 h = s_image.SampleLevel(smp_rtlinear, texcoord, 0.0, int2(0, 1)).xyz; h *= rcp(1.0f + h); + float3 i = s_image.SampleLevel(smp_rtlinear, texcoord, 0.0, int2(1, 1)).xyz; i *= rcp(1.0f + i); + + // Soft min and max. + // a b c b + // d e f * 0.5 + d e f * 0.5 + // g h i h + // These are 2.0x bigger (factored out the extra multiply). + float3 mnRGB = min(min(min(d, e), min(f, b)), h); + float3 mnRGB2 = min(mnRGB, min(min(a, c), min(g, i))); + mnRGB += mnRGB2; + + float3 mxRGB = max(max(max(d, e), max(f, b)), h); + float3 mxRGB2 = max(mxRGB, max(max(a, c), max(g, i))); + mxRGB += mxRGB2; + + // Smooth minimum distance to signal limit divided by smooth max. + float3 rcpMRGB = rcp(mxRGB); + float3 ampRGB = saturate(min(mnRGB, 2.0 - mxRGB) * rcpMRGB); + + // Shaping amount of sharpening. + ampRGB = rsqrt(ampRGB); + + float Contrast = 1.0f; //sharpening_intensity; //1.0f; + float Sharpening = sharpening_intensity; //sharpening_intensity; + + float peak = -3.0 * Contrast + 8.0; + float3 wRGB = -rcp(ampRGB * peak); + + float3 rcpWeightRGB = rcp(4.0 * wRGB + 1.0); + + // 0 w 0 + // Filter shape: w 1 w + // 0 w 0 + + float3 window = (b + d) + (f + h); + float3 outColor = saturate((window * wRGB + e) * rcpWeightRGB); + + outColor = lerp(e, outColor, Sharpening); + + return float4(outColor * rcp(max(0.00001f, 1.0 - outColor)), 1.0f); +} + diff --git a/gamedata/shaders/d3d11/copy.ps.hlsl b/gamedata/shaders/d3d11/copy.ps.hlsl new file mode 100644 index 0000000..533afdf --- /dev/null +++ b/gamedata/shaders/d3d11/copy.ps.hlsl @@ -0,0 +1,12 @@ +#include "common.hlsli" + +#ifndef ISAMPLE + #define ISAMPLE 0 +#endif + +// Pixel +// TODO: DX10: move to load instead of sample (will need to provide integer texture coordinates) +float4 main(float2 tc : TEXCOORD0) : SV_Target +{ + return s_generic.Sample(smp_nofilter, tc); +} diff --git a/gamedata/shaders/d3d11/copy_image.ps.hlsl b/gamedata/shaders/d3d11/copy_image.ps.hlsl new file mode 100644 index 0000000..929b08f --- /dev/null +++ b/gamedata/shaders/d3d11/copy_image.ps.hlsl @@ -0,0 +1,6 @@ +#include "common.hlsli" + +float4 main(float2 tc : TEXCOORD0) : SV_Target +{ + return s_image.Sample(FILTER_TYPE, tc); +} diff --git a/gamedata/shaders/d3d11/copy_p.ps.hlsl b/gamedata/shaders/d3d11/copy_p.ps.hlsl new file mode 100644 index 0000000..cfdeb5c --- /dev/null +++ b/gamedata/shaders/d3d11/copy_p.ps.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +float4 main(float4 tc : TEXCOORD0) : SV_Target +{ + return s_generic.Sample(smp_nofilter, tc.xy / tc.w); +} + diff --git a/gamedata/shaders/d3d11/debug_draw.lua b/gamedata/shaders/d3d11/debug_draw.lua new file mode 100644 index 0000000..399e134 --- /dev/null +++ b/gamedata/shaders/d3d11/debug_draw.lua @@ -0,0 +1,14 @@ +-- without depth test +function l_special(shader, t_base, t_second, t_detail) + shader:begin("debug_draw", "debug_draw") + :zb(false, false) + + shader:dx10texture("s_position", "$user$position") + shader:dx10sampler("smp_nofilter") +end + +-- depth test +function normal(shader, t_base, t_second, t_detail) + shader:begin("debug_draw", "debug_draw_nodepth") + :zb(true, false) +end \ No newline at end of file diff --git a/gamedata/shaders/d3d11/debug_draw.ps.hlsl b/gamedata/shaders/d3d11/debug_draw.ps.hlsl new file mode 100644 index 0000000..f9271a6 --- /dev/null +++ b/gamedata/shaders/d3d11/debug_draw.ps.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +uniform float4 screen_res; + +// vertex output +struct v2p_L +{ + float4 pos : SV_POSITION; + float4 viewpos : TEXCOORD0; + float4 color : COLOR0; +}; + +float4 main(v2p_L I) : SV_TARGET +{ + float depth = s_position.SampleLevel(smp_nofilter, I.pos.xy * screen_res.zw, 0).x; + depth = depth_unpack.x / (depth - depth_unpack.y); + clip(depth - I.viewpos.z); + + return I.color; +} diff --git a/gamedata/shaders/d3d11/debug_draw.vs.hlsl b/gamedata/shaders/d3d11/debug_draw.vs.hlsl new file mode 100644 index 0000000..09dd829 --- /dev/null +++ b/gamedata/shaders/d3d11/debug_draw.vs.hlsl @@ -0,0 +1,26 @@ +#include "common.hlsli" + +// input +struct v_vert +{ + float4 pos : POSITION; // (float,float,float,1) + float4 color : COLOR0; // (r,g,b,dir-occlusion) +}; + +// output +struct v2p_L +{ + float4 pos : SV_POSITION; + float4 viewpos : TEXCOORD0; + float4 color : COLOR0; +}; + +// Vertex +v2p_L main(v_vert I) +{ + v2p_L O; + O.pos = mul(m_WVP, I.pos); + O.viewpos = float4(mul(m_WV, I.pos), 1.0f); + O.color = I.color.bgra; // swizzle vertex colour + return O; +} diff --git a/gamedata/shaders/d3d11/debug_draw_nodepth.ps.hlsl b/gamedata/shaders/d3d11/debug_draw_nodepth.ps.hlsl new file mode 100644 index 0000000..73e2348 --- /dev/null +++ b/gamedata/shaders/d3d11/debug_draw_nodepth.ps.hlsl @@ -0,0 +1,14 @@ +#include "common.hlsli" + +// vertex output +struct v2p_L +{ + float4 pos : SV_POSITION; + float4 viewpos : TEXCOORD0; + float4 color : COLOR0; +}; + +float4 main(v2p_L I) : SV_TARGET +{ + return I.color; +} diff --git a/gamedata/shaders/d3d11/deffer_base.ps.hlsl b/gamedata/shaders/d3d11/deffer_base.ps.hlsl new file mode 100644 index 0000000..6ac2692 --- /dev/null +++ b/gamedata/shaders/d3d11/deffer_base.ps.hlsl @@ -0,0 +1,72 @@ +#include "common.hlsli" +#include "sload.hlsli" + +void main(p_bumped_new I, out IXrayGbufferPack O) +{ + IXrayMaterial M; + M.Depth = I.position.z; + +#ifdef USE_CLIP_NEAR_PLANE + clip(I.hpos_curr.z - I.hpos_curr.w * 0.02f); +#endif + + M.Sun = I.tcdh.w; + M.Hemi = I.tcdh.z; + M.Point = I.position.xyz; + + SloadNew(I, M); + +#ifdef USE_AREF + #if defined(USE_HASHED_AREF) && !defined(DETAIL_SHADOW_PASS) + clip(M.Color.w - hashed_alpha_test(M.Point)); + #else + clip(M.Color.w - def_aref); + #endif + #ifdef USE_DXT1_HACK + M.Color.xyz *= rcp(max(0.0001f, M.Color.w)); + #endif +#endif + +#if defined(USE_BUMP) || defined(USE_TDETAIL_BUMP) + M.Normal = mul(float3x3(I.M1, I.M2, I.M3), M.Normal); +#else + M.Normal = float3(I.M1.z, I.M2.z, I.M3.z); +#endif + + M.Normal = normalize(M.Normal); + +#ifdef USE_LM_HEMI + float4 lm = s_hemi.Sample(smp_rtlinear, I.tcdh.zw); + + M.Sun = get_sun(lm); + M.Hemi = get_hemi(lm); +#endif + +#ifdef USE_LEGACY_LIGHT + #ifndef USE_PBR + M.Metalness = L_material.w; + #else + M.Color.xyz *= M.AO; + M.AO = 1.0f; + float Specular = M.Metalness * dot(M.Color.xyz, LUMINANCE_VECTOR); + M.Color.xyz = lerp(M.Color.xyz, 0.04f, M.Metalness); + M.Metalness = 0.5f - M.Roughness * M.Roughness * 0.5f; + M.Roughness = Specular; + #endif +#endif + +#ifdef IGNORE_SNOW_MASK + M.SnowMask = 0.0f; +#endif + +#ifdef USE_AREF + #ifdef USE_TREEWAVE + M.SSS = 1.0f; + #endif + M.SnowMask = 0.0f; +#endif + + O.Velocity = I.hpos_curr.xy / I.hpos_curr.w - I.hpos_old.xy / I.hpos_old.w; + GbufferPack(O, M); +} + diff --git a/gamedata/shaders/d3d11/deffer_base.vs.hlsl b/gamedata/shaders/d3d11/deffer_base.vs.hlsl new file mode 100644 index 0000000..42a3f19 --- /dev/null +++ b/gamedata/shaders/d3d11/deffer_base.vs.hlsl @@ -0,0 +1,58 @@ +#include "common.hlsli" + +#ifdef USE_LM_HEMI + #define v_in v_static +#else + #define v_in v_static_color +#endif + +void main(in v_in I, out p_bumped_new O) +{ + float2 tc = unpack_tc_base(I.tc, I.T.w, I.B.w); + float3 Pe = mul(m_WV, I.P); + + O.tcdh = float4(tc.xy, I.Nh.w, I.Nh.w); + O.position = float4(Pe, 1.0f); + + float3 N = unpack_bx4(unpack_D3DCOLOR(I.Nh).xyz); + +#if defined(USE_BUMP) || defined(USE_TDETAIL_BUMP) + float3 T = unpack_bx4(unpack_D3DCOLOR(I.T).xyz); + float3 B = unpack_bx4(unpack_D3DCOLOR(I.B).xyz); + + float3x3 xform = mul((float3x3)m_WV, float3x3( + T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z) + ); + + O.M1 = xform[0]; + O.M2 = xform[1]; + O.M3 = xform[2]; +#else + N = mul((float3x3)m_WV, N); + + O.M1 = N.xxx; + O.M2 = N.yyy; + O.M3 = N.zzz; +#endif + + O.snow_mask = normalize(mul((float3x3)m_W, N)).y; + +#ifdef USE_LM_HEMI + O.tcdh.zw = unpack_tc_lmap(I.lmh); +#else + #ifdef USE_LENGTH_BUFFER + O.lmap = unpack_D3DCOLOR(I.color.xyz); + #endif + O.tcdh.w = I.color.w; +#endif + + O.hpos = mul(m_WVP, I.P); + + O.hpos_curr = O.hpos; + O.hpos_old = mul(m_WVP_old, I.P); + + O.hpos.xy += m_taa_jitter.xy * O.hpos.w; +} + diff --git a/gamedata/shaders/d3d11/deffer_detail.vs.hlsl b/gamedata/shaders/d3d11/deffer_detail.vs.hlsl new file mode 100644 index 0000000..d0598cf --- /dev/null +++ b/gamedata/shaders/d3d11/deffer_detail.vs.hlsl @@ -0,0 +1,106 @@ +#include "common.hlsli" + +cbuffer DetailConstants +{ + float4 consts; + + float4 wave; + float4 wave_old; + + float4 dir2D; + float4 dir2D_old; +}; + +//LVutner: Has to match the CPU struct +struct InstanceData +{ + float3 hpb; + float scale; + float3 pos; + float hemi; +}; + +//LVutner: Always bound to slot0 (see CPP code) +StructuredBuffer detail_buffer : register(t0); + +float3x3 setMatrix (float3 hpb) +{ + float _ch, _cp, _cb, _sh, _sp, _sb, _cc, _cs, _sc, _ss; + + sincos(hpb.x, _sh, _ch); + sincos(hpb.y, _sp, _cp); + sincos(hpb.z, _sb, _cb); + + _cc = _ch*_cb; _cs = _ch*_sb; _sc = _sh*_cb; _ss = _sh*_sb; + + return float3x3(_cc-_sp*_ss, _sp*_sc+_cs, -_cp*_sh, + -_cp*_sb, _cp*_cb, _sp, + _sp*_cs+_sc, _ss-_sp*_cc, _cp*_ch); +}; + +void main(in v_detail I, out p_bumped_new O, uint instance_id : SV_InstanceID) +{ + //LVutner: Read our structured buffer + InstanceData det = detail_buffer[instance_id]; + + float3x3 mmhpb = setMatrix(det.hpb); + + float hemi = abs(det.hemi); + float sun = sign(det.hemi)*0.25f+0.25f; + + float4 m0 = float4(mmhpb[0]*det.scale, det.pos.x); + float4 m1 = float4(mmhpb[1]*det.scale, det.pos.y); + float4 m2 = float4(mmhpb[2]*det.scale, det.pos.z); + + float4 pos, pos_old; + pos.x = dot(m0, float4(I.pos.xyz, 1.0)); + pos.y = dot(m1, float4(I.pos.xyz, 1.0)); + pos.z = dot(m2, float4(I.pos.xyz, 1.0)); + + pos.w = 1.0f; + pos_old = pos; + +#ifdef USE_TREEWAVE + float H = I.pos.y * length(m1.xyz); + + float dp = calc_cyclic(dot(pos, wave)); + float inten = H * dp; + + pos.xz += calc_xz_wave(dir2D.xz * inten, I.pos.w); + + #ifndef DETAIL_SHADOW_PASS + float dp_old = calc_cyclic(dot(pos_old, wave_old)); + float inten_old = H * dp_old; + + pos_old.xz += calc_xz_wave(dir2D_old.xz * inten_old, I.pos.w); + #endif +#endif + + float3 Pe = mul(m_WV, pos); + + float3 N; + N.x = pos.x - m0.w; + N.y = pos.y - m1.w + 0.75f; + N.z = pos.z - m2.w; + + O.tcdh = float4(I.tc.xy, hemi, sun); + O.position = float4(Pe, 1.0f); + + N.xyz = mul((float3x3)m_WV, N.xyz); + + O.M1 = N.xxx; + O.M2 = N.yyy; + O.M3 = N.zzz; + + O.hpos = mul(m_WVP, pos); + +#ifndef DETAIL_SHADOW_PASS + O.hpos_curr = O.hpos; + O.hpos_old = mul(m_VP_old, pos_old); + + O.hpos.xy += m_taa_jitter.xy * O.hpos.w; +#else + O.hpos_curr = O.hpos_old = O.hpos; +#endif + O.snow_mask = 0.0; +} \ No newline at end of file diff --git a/gamedata/shaders/d3d11/deffer_impl.ps.hlsl b/gamedata/shaders/d3d11/deffer_impl.ps.hlsl new file mode 100644 index 0000000..d3ee52f --- /dev/null +++ b/gamedata/shaders/d3d11/deffer_impl.ps.hlsl @@ -0,0 +1,162 @@ +#include "common.hlsli" +#include "sload.hlsli" + +#ifndef USE_LENGTH_BUFFER + #define OutStructure IXrayGbufferPack +#else + #define OutStructure f_forward + +#include "metalic_roughness_light.hlsli" +#include "metalic_roughness_ambient.hlsli" + +#endif + +void main(p_bumped_new I, out OutStructure O) +{ + IXrayMaterial M; + M.Depth = I.position.z; + + M.Sun = I.tcdh.w; + M.Hemi = I.tcdh.z; + M.Point = I.position.xyz; + + M.Color = s_base.Sample(smp_base, I.tcdh.xy); + M.Metalness = 0.0f; + M.SSS = 0.0f; + M.AO = 1.0f; + + float4 Lmap = s_lmap.Sample(smp_base, I.tcdh.xy); + float2 tcdbump = I.tcdh.xy * dt_params.xy; + +#ifdef USE_PBR + #ifdef USE_4_BUMP + float4 Mask = s_mask.Sample(smp_base, I.tcdh.xy); + Mask /= dot(Mask, 1.0f); + + float3 r_base = s_dt_r.Sample(smp_base, tcdbump).xyz * Mask.x; + float3 g_base = s_dt_g.Sample(smp_base, tcdbump).xyz * Mask.y; + float3 b_base = s_dt_b.Sample(smp_base, tcdbump).xyz * Mask.z; + float3 a_base = s_dt_a.Sample(smp_base, tcdbump).xyz * Mask.w; + + float4 r_bump = s_dn_r.Sample(smp_base, tcdbump) * Mask.x; + float4 g_bump = s_dn_g.Sample(smp_base, tcdbump) * Mask.y; + float4 b_bump = s_dn_b.Sample(smp_base, tcdbump) * Mask.z; + float4 a_bump = s_dn_a.Sample(smp_base, tcdbump) * Mask.w; + + float4 r_bumpX = s_dn_rX.Sample(smp_base, tcdbump) * Mask.x; + float4 g_bumpX = s_dn_gX.Sample(smp_base, tcdbump) * Mask.y; + float4 b_bumpX = s_dn_bX.Sample(smp_base, tcdbump) * Mask.z; + float4 a_bumpX = s_dn_aX.Sample(smp_base, tcdbump) * Mask.w; + + //Unpack normals (if something is wrong - unpack and then blend them) + M.Normal.xy = (r_bump.wy + g_bump.wy + b_bump.wy + a_bump.wy) * 2.0 - 1.0; + M.Normal.z = sqrt(1.0f - saturate(dot(M.Normal.xy, M.Normal.xy))); + + #ifndef USE_DX_NORMAL_MAP + M.Normal.y *= -1.0f; + #endif + + M.Color.xyz *= (r_base + g_base + b_base + a_base) * 2.0f; //LVutner: Change later + M.Metalness = r_bumpX.x + g_bumpX.x + b_bumpX.x + a_bumpX.x; + M.Roughness = r_bumpX.y + g_bumpX.y + b_bumpX.y + a_bumpX.y; + M.SSS = r_bumpX.z + g_bumpX.z + b_bumpX.z + a_bumpX.z; + M.AO = r_bumpX.w + g_bumpX.w + b_bumpX.w + a_bumpX.w; + #else + float4 Detail = s_detail.Sample(smp_base, tcdbump); + float4 DetailBump = s_detailBump.Sample(smp_base, tcdbump); + float4 DetailBumpX = s_detailBumpX.Sample(smp_base, tcdbump); + + M.Roughness = DetailBumpX.y; + M.Metalness = DetailBumpX.x; + M.Normal.xy = DetailBump.wy * 2.0 - 1.0; + M.Normal.z = sqrt(1.0f - saturate(dot(M.Normal.xy, M.Normal.xy))); + M.Color.xyz *= Detail * 2.0f; + #endif +#else + #ifdef USE_4_BUMP + float4 Mask = s_mask.Sample(smp_base, I.tcdh.xy); + Mask /= dot(Mask, 1.0f); + + float3 Detail_R = s_dt_r.Sample(smp_base, tcdbump).xyz * Mask.x; + float3 Detail_G = s_dt_g.Sample(smp_base, tcdbump).xyz * Mask.y; + float3 Detail_B = s_dt_b.Sample(smp_base, tcdbump).xyz * Mask.z; + float3 Detail_A = s_dt_a.Sample(smp_base, tcdbump).xyz * Mask.w; + float3 Detail = Detail_R + Detail_G + Detail_B + Detail_A; + + float4 Normal_R = s_dn_r.Sample(smp_base, tcdbump) * Mask.x; + float4 Normal_G = s_dn_g.Sample(smp_base, tcdbump) * Mask.y; + float4 Normal_B = s_dn_b.Sample(smp_base, tcdbump) * Mask.z; + float4 Normal_A = s_dn_a.Sample(smp_base, tcdbump) * Mask.w; + + M.Normal = Normal_R.wzy + Normal_G.wzy + Normal_B.wzy + Normal_A.wzy - 0.5; + M.Roughness = min(1.0f, Normal_R.x + Normal_G.x + Normal_B.x + Normal_A.x); + #else + float4 Detail = s_detail.Sample(smp_base, tcdbump); + float4 DetailBump = s_detailBump.Sample(smp_base, tcdbump); + + M.Roughness = DetailBump.x; + M.Normal.xyz = DetailBump.wzy - 0.5f; + #endif + M.Normal.z *= 0.5f; + M.Color.xyz *= Detail * 2.0f; +#endif + + + M.Normal = mul(float3x3(I.M1, I.M2, I.M3), M.Normal); + M.Normal = normalize(M.Normal); + + M.Sun = Lmap.w; + M.Hemi = M.Color.w; + +#ifdef USE_LEGACY_LIGHT + M.Metalness = L_material.w; +#else + #ifndef USE_PBR + M.Roughness = 1.0f - M.Roughness * 0.9f; + #endif +#endif + +#ifdef IGNORE_SNOW_MASK_ON_TERRAIN + M.SnowMask = 0.0f; +#else + M.SnowMask = 1.0f; +#endif + + O.Velocity = I.hpos_curr.xy / I.hpos_curr.w - I.hpos_old.xy / I.hpos_old.w; + +#ifndef USE_LENGTH_BUFFER + GbufferPack(O, M); +#else + float4 LightColor = float4(L_sun_color.xyz, 0.5f); + + M.Sun = saturate(M.Sun * 2.0f); + M.Color.xyz = PushGamma(saturate(M.Color.xyz)); + + float ViewLength = length(M.Point); + float3 View = M.Point.xyz * rcp(ViewLength); + +#ifndef USE_PBR + float3 F0 = 0.0f; +#else + float3 F0 = 0.04f; +#endif + + float3 Light = M.Sun * DirectLight(LightColor, mul((float3x3)m_V, L_sun_dir_w.xyz), M.Normal, View, M.Color.xyz, M.Metalness, M.Roughness, F0); + float3 Ambient = PushGamma(M.AO) * AmbientLighting(View, M.Normal, M.Color.xyz, M.Metalness, M.Roughness, M.Hemi, F0); + + Light += DirectLight(float4(Lmap.xyz, 0.5f), View, M.Normal, View, M.Color.xyz, M.Metalness, M.Roughness, F0); + + O.Color.xyz = Ambient + Light; + O.Color.w = 1.0f; + + float Fog = PushGamma(saturate(ViewLength * fog_params.w + fog_params.x)); + O.Color = lerp(O.Color, PushGamma(fog_color), Fog); + + O.Velocity = I.hpos_curr.xy / I.hpos_curr.w - I.hpos_old.xy / I.hpos_old.w; + O.Reactive = O.Color.w * 0.9f; + + O.Color.w = ViewLength; + O.Color.xyz *= rcp(1.0f + O.Color.xyz); +#endif +} + diff --git a/gamedata/shaders/d3d11/deffer_lod.vs.hlsl b/gamedata/shaders/d3d11/deffer_lod.vs.hlsl new file mode 100644 index 0000000..673191f --- /dev/null +++ b/gamedata/shaders/d3d11/deffer_lod.vs.hlsl @@ -0,0 +1,88 @@ +#include "common.hlsli" + +cbuffer LodConstants +{ + float3x4 m_xform; + float3x4 m_xform_v; + + float4 consts; + float4 wind; + float4 wave; + + float4 consts_old; + float4 wave_old; + float4 wind_old; + + float4 c_scale; + float4 c_bias; + + float2 c_sun; +} + +void main(in v_tree I, out p_bumped_new O) +{ + float4 pos = float4(mul(m_xform, I.P).xyz, 1.0); + float4 pos_old = pos; + + float2 tc = I.tc.xy * consts.xy; + float sun = I.Nh.w * c_sun.x + c_sun.y; + float hemi = I.Nh.w * c_scale.w + c_bias.w; + +#ifdef USE_LENGTH_BUFFER + O.lmap = I.Nh.w * c_scale.xyz + c_bias.xyz; +#endif + +#ifdef USE_TREEWAVE + float base = m_xform._24; + float H = pos.y - base; + + float dp = calc_cyclic(wave.w + dot(pos.xyz, wave.xyz)); + float frac = I.tc.z * consts.x; + float inten = H * dp; + + pos.xz += calc_xz_wave(wind.xz * inten, frac); + + float dp_old = calc_cyclic(wave_old.w + dot(pos_old.xyz, wave_old.xyz)); + float frac_old = I.tc.z * consts_old.x; + float inten_old = H * dp_old; + + pos_old.xz += calc_xz_wave(wind_old.xz * inten_old, frac_old); +#endif + + float3 Pe = mul(m_V, pos); + + O.tcdh = float4(tc.xy, hemi, sun); + O.position = float4(Pe, 1.0f); + + float3 N = unpack_bx4(unpack_D3DCOLOR(I.Nh).xyz); + +#if defined(USE_BUMP) || defined(USE_TDETAIL_BUMP) + float3 T = unpack_bx4(unpack_D3DCOLOR(I.T).xyz); + float3 B = unpack_bx4(unpack_D3DCOLOR(I.B).xyz); + + float3x3 xform = mul((float3x3)m_xform_v, float3x3( + T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z)); + + O.M1 = xform[0]; + O.M2 = xform[1]; + O.M3 = xform[2]; +#else + N = mul((float3x3)m_xform_v, N); + + O.M1 = N.xxx; + O.M2 = N.yyy; + O.M3 = N.zzz; +#endif + + O.hpos = mul(m_VP, pos); + + O.hpos_curr = O.hpos; + O.hpos_old = mul(m_VP_old, pos_old); + + O.hpos.xy += m_taa_jitter.xy * O.hpos.w; + + O.snow_mask = normalize(mul(m_xform, N)).y; +} + diff --git a/gamedata/shaders/d3d11/deffer_model.vs.hlsl b/gamedata/shaders/d3d11/deffer_model.vs.hlsl new file mode 100644 index 0000000..54894f9 --- /dev/null +++ b/gamedata/shaders/d3d11/deffer_model.vs.hlsl @@ -0,0 +1,81 @@ +#include "common.hlsli" +#include "skin.hlsli" + +void skinned_main(in v_model I, out p_bumped_new O) +{ + float3 Nw = mul((float3x3)m_W, (float3)I.N); + float3 hc_pos = (float3)hemi_cube_pos_faces; + float3 hc_neg = (float3)hemi_cube_neg_faces; + float3 hc_mixed = (Nw < 0.0f) ? -hc_neg : hc_pos; + float hemi_val = saturate(dot(hc_mixed, Nw)); + float3 Pe = mul(m_WV, I.P); + + O.tcdh = float4(I.tc.xy, hemi_val, L_material.y); + O.position = float4(Pe, 1.0f); + + float3 N = I.N * 2.0f; + +#if defined(USE_BUMP) || defined(USE_TDETAIL_BUMP) + float3 T = I.T * 2.0f; + float3 B = I.B * 2.0f; + + float3x3 xform = mul((float3x3)m_WV, float3x3( + T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z)); + + O.M1 = xform[0]; + O.M2 = xform[1]; + O.M3 = xform[2]; +#else + N = mul((float3x3)m_WV, N); + + O.M1 = N.xxx; + O.M2 = N.yyy; + O.M3 = N.zzz; +#endif + + O.hpos = mul(m_WVP, I.P); + + O.hpos_curr = O.hpos; + O.hpos_old = mul(m_WVP_old, I.P_old); + + O.hpos.xy += m_taa_jitter.xy * O.hpos.w; + + // Ð”Ð»Ñ ÐПС раÑкомментировать (не рекомендую) + // O.snow_mask = normalize(mul((float3x3)m_W, N)).y; + O.snow_mask = 0.0f; +} + +#if defined(SKIN_0) +void main(in v_model_skinned_0 I, out p_bumped_new O) +{ + skinned_main(skinning_0(I), O); +} +#elif defined(SKIN_1) +void main(in v_model_skinned_1 I, out p_bumped_new O) +{ + skinned_main(skinning_1(I), O); +} +#elif defined(SKIN_2) +void main(in v_model_skinned_2 I, out p_bumped_new O) +{ + skinned_main(skinning_2(I), O); +} +#elif defined(SKIN_3) +void main(in v_model_skinned_3 I, out p_bumped_new O) +{ + skinned_main(skinning_3(I), O); +} +#elif defined(SKIN_4) +void main(in v_model_skinned_4 I, out p_bumped_new O) +{ + skinned_main(skinning_4(I), O); +} +#else +void main(in v_model I, out p_bumped_new O) +{ + skinned_main(I, O); +} +#endif + diff --git a/gamedata/shaders/d3d11/deffer_particle.ps.hlsl b/gamedata/shaders/d3d11/deffer_particle.ps.hlsl new file mode 100644 index 0000000..9c94178 --- /dev/null +++ b/gamedata/shaders/d3d11/deffer_particle.ps.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" +#include "sload.hlsli" + +struct p_particle +{ + float4 color : COLOR0; +}; + +float4 main(p_particle II) : SV_Target0 +{ + discard; + return II.color; +} + +// THIS SHADER SHOD BE DELEATED OR FIXED diff --git a/gamedata/shaders/d3d11/deffer_particle.vs.hlsl b/gamedata/shaders/d3d11/deffer_particle.vs.hlsl new file mode 100644 index 0000000..0f2db82 --- /dev/null +++ b/gamedata/shaders/d3d11/deffer_particle.vs.hlsl @@ -0,0 +1,24 @@ +#include "common.hlsli" + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; +}; + +struct v2p_particle +{ + float4 color : COLOR0; + float4 hpos : SV_POSITION; +}; + +void main(in vv I, out v2p_particle pp) +{ + pp.color = I.c; + + pp.hpos = mul(m_WVP, I.P); + pp.hpos.xy += m_taa_jitter.xy * pp.hpos.w; +} + +// THIS SHADER SHOD BE DELEATED OR FIXED \ No newline at end of file diff --git a/gamedata/shaders/d3d11/depth_downs.ps.hlsl b/gamedata/shaders/d3d11/depth_downs.ps.hlsl new file mode 100644 index 0000000..b2ca43c --- /dev/null +++ b/gamedata/shaders/d3d11/depth_downs.ps.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" + +struct _input +{ + float4 tc0 : TEXCOORD0; // tc.xy, tc.w = tonemap scale + float2 tcJ : TEXCOORD1; // jitter coords + float4 pos2d : SV_POSITION; +}; + +uniform float4 scaled_screen_res; + +float4 main(_input I) : SV_Target0 +{ + float4 Depth; + +#ifndef SM_5 + Depth.x = s_position.SampleLevel(smp_nofilter, I.tc0.xy, int2(1, 0), 0).x; + Depth.y = s_position.SampleLevel(smp_nofilter, I.tc0.xy, int2(1, 1), 0).x; + Depth.z = s_position.SampleLevel(smp_nofilter, I.tc0.xy, int2(0, 1), 0).x; + Depth.w = s_position.SampleLevel(smp_nofilter, I.tc0.xy, int2(0, 0), 0).x; +#else // !SM_5 + Depth = s_position.GatherRed(smp_nofilter, I.tc0.xy + 0.5f * scaled_screen_res.zw); +#endif // SM_5 + + Depth = depth_unpack.x * rcp(Depth - depth_unpack.y); + return min(min(Depth.x, Depth.y), min(Depth.z, Depth.w)); +} + diff --git a/gamedata/shaders/d3d11/details_lod.lua b/gamedata/shaders/d3d11/details_lod.lua new file mode 100644 index 0000000..725a6cc --- /dev/null +++ b/gamedata/shaders/d3d11/details_lod.lua @@ -0,0 +1,21 @@ +function pass_setup_common(shader, t_base, t_second, t_detail) + shader:blend(false, blend.one, blend.zero) + :zb(true, true) + :fog(false) + + :dx10stencil(true, cmp_func.always, + 255, 127, + stencil_op.keep, stencil_op.replace, stencil_op.keep) + :dx10stencil_ref(1) + + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_hemi", t_base .. "_nm") + + shader:dx10sampler("smp_base"); + shader:dx10sampler("smp_linear"); +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("lod", "lod") + details_lod.pass_setup_common(shader, t_base, t_second, t_detail) +end diff --git a/gamedata/shaders/d3d11/distort.lua b/gamedata/shaders/d3d11/distort.lua new file mode 100644 index 0000000..e6b62d3 --- /dev/null +++ b/gamedata/shaders/d3d11/distort.lua @@ -0,0 +1,10 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_notransform_t", "distort") + :fog(false) + :zb(false, false) + + shader:dx10texture("s_base", "$user$generic") + shader:dx10texture("s_distort", "$user$generic1") + + shader:dx10sampler("smp_rtlinear"); +end diff --git a/gamedata/shaders/d3d11/distort.ps.hlsl b/gamedata/shaders/d3d11/distort.ps.hlsl new file mode 100644 index 0000000..eeed4c4 --- /dev/null +++ b/gamedata/shaders/d3d11/distort.ps.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc : TEXCOORD0; // base & distort +}; + +Texture2D s_distort; + +// Pixel +float4 main(v2p I) : SV_Target +{ + float2 distort = s_distort.Sample(smp_rtlinear, I.tc).xy; + float2 offset = (distort - 127.0f / 255.0f) * def_distort; + float3 image = s_base.Sample(smp_rtlinear, I.tc + offset).xyz; + + return float4(image, 1); +} + diff --git a/gamedata/shaders/d3d11/dof.hlsli b/gamedata/shaders/d3d11/dof.hlsli new file mode 100644 index 0000000..31f3535 --- /dev/null +++ b/gamedata/shaders/d3d11/dof.hlsli @@ -0,0 +1,80 @@ +#ifndef DOF_H_INCLUDED +#define DOF_H_INCLUDED + +uniform float4 screen_res; + +#ifndef USE_DOF + +float3 dof(float2 center) +{ + float3 img = s_image.Sample(smp_rtlinear, center).xyz; + return img; +} + +#else // USE_DOF + +// x - near y - focus z - far w - sky distance +float4 dof_params; +float3 dof_kernel; // x,y - resolution pre-scaled z - just kernel size + +float DOFFactor(float depth) +{ + float dist_to_focus = depth - dof_params.y; + float blur_far = saturate(dist_to_focus * rcp(dof_params.z - dof_params.y)); + float blur_near = saturate(dist_to_focus * rcp(dof_params.x - dof_params.y)); + float blur = blur_near + blur_far; + blur *= blur; + return blur; +} + +float sampleDepth(float2 center) +{ + float P = s_position.SampleLevel(smp_nofilter, center, 0).x; + return P > 0.9999f ? dof_params.w : (depth_unpack.x * rcp(P - depth_unpack.y)); +} + +#define MAXCOF 7.h +#define EPSDEPTH 0.0001h + +float3 dof(float2 center) +{ + // Scale tap offsets based on render target size + float depth = sampleDepth(center); + float blur = DOFFactor(depth); + float2 scale = 0.5f * screen_res.zw * dof_kernel.z * blur; + + // poisson + float2 o[12]; + o[0] = float2(-0.326212f, -0.405810f) * scale; + o[1] = float2(-0.840144f, -0.073580f) * scale; + o[2] = float2(-0.695914f, 0.457137f) * scale; + o[3] = float2(-0.203345f, 0.620716f) * scale; + o[4] = float2(0.962340f, -0.194983f) * scale; + o[5] = float2(0.473434f, -0.480026f) * scale; + o[6] = float2(0.519456f, 0.767022f) * scale; + o[7] = float2(0.185461f, -0.893124f) * scale; + o[8] = float2(0.507431f, 0.064425f) * scale; + o[9] = float2(0.896420f, 0.412458f) * scale; + o[10] = float2(-0.321940f, -0.932615f) * scale; + o[11] = float2(-0.791559f, -0.597710f) * scale; + + float3 sum = s_image.Sample(smp_nofilter, center).xyz; + float contrib = 1.h; + + [unroll] + for (int i = 0; i < 12; i++) + { + float2 tap = center + o[i]; + float3 tap_color = s_image.Sample(smp_nofilter, tap).xyz; + float tap_depth = sampleDepth(tap); + float tap_contrib = DOFFactor(tap_depth); + sum += tap_color * tap_contrib; + contrib += tap_contrib; + } + + return float3(sum / contrib); +} + +#endif // USE_DOF +#endif // DOF_H_INCLUDED + diff --git a/gamedata/shaders/d3d11/dumb.ps.hlsl b/gamedata/shaders/d3d11/dumb.ps.hlsl new file mode 100644 index 0000000..035a7c2 --- /dev/null +++ b/gamedata/shaders/d3d11/dumb.ps.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +// Pixel +float4 main() : SV_Target +{ + return 0; +} diff --git a/gamedata/shaders/d3d11/dumb.vs.hlsl b/gamedata/shaders/d3d11/dumb.vs.hlsl new file mode 100644 index 0000000..65e7977 --- /dev/null +++ b/gamedata/shaders/d3d11/dumb.vs.hlsl @@ -0,0 +1,11 @@ +#include "common.hlsli" + +// Vertex +v2p_dumb main(v_dumb I) +{ + v2p_dumb O; + + O.HPos = mul(m_WVP, I.P); + + return O; +} diff --git a/gamedata/shaders/d3d11/editor.vs.hlsl b/gamedata/shaders/d3d11/editor.vs.hlsl new file mode 100644 index 0000000..610e6c7 --- /dev/null +++ b/gamedata/shaders/d3d11/editor.vs.hlsl @@ -0,0 +1,24 @@ +#include "common.hlsli" + +struct vf +{ + float4 C : COLOR0; + float4 P : POSITION; +}; + +struct v2p +{ + float4 C : COLOR0; + float4 P : SV_POSITION; +}; + +uniform float4 tfactor; +v2p main(vf i) +{ + v2p o; + + o.P = mul(m_WVP, i.P); // xform, input in world coords + o.C = tfactor * i.C; + + return o; +} diff --git a/gamedata/shaders/d3d11/effects_bullet_tracer.lua b/gamedata/shaders/d3d11/effects_bullet_tracer.lua new file mode 100644 index 0000000..c403223 --- /dev/null +++ b/gamedata/shaders/d3d11/effects_bullet_tracer.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_default", "stub_srgb") + :zb(true, false) + :blend(true, blend.one, blend.one) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/effects_flare.lua b/gamedata/shaders/d3d11/effects_flare.lua new file mode 100644 index 0000000..eb0eb1b --- /dev/null +++ b/gamedata/shaders/d3d11/effects_flare.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("effects_sun", "stub_default") + :blend(true, blend.srcalpha, blend.one) + :zb(false, false) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/effects_lightning.lua b/gamedata/shaders/d3d11/effects_lightning.lua new file mode 100644 index 0000000..ae9945e --- /dev/null +++ b/gamedata/shaders/d3d11/effects_lightning.lua @@ -0,0 +1,10 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_default", "stub_srgb") + + :zb(true, false) + :blend(true, blend.srcalpha, blend.one) + :aref(true, 2) + + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/effects_lightplanes.lua b/gamedata/shaders/d3d11/effects_lightplanes.lua new file mode 100644 index 0000000..5b61962 --- /dev/null +++ b/gamedata/shaders/d3d11/effects_lightplanes.lua @@ -0,0 +1,12 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("base_lplanes", "base_lplanes") + + :fog(false) + :zb(true, false) + :blend(true, blend.srcalpha, blend.one) + :aref(true, 0) + :sorting(2, false) + + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/effects_rain.lua b/gamedata/shaders/d3d11/effects_rain.lua new file mode 100644 index 0000000..f731843 --- /dev/null +++ b/gamedata/shaders/d3d11/effects_rain.lua @@ -0,0 +1,10 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_default", "stub_srgb") + + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/effects_sun.lua b/gamedata/shaders/d3d11/effects_sun.lua new file mode 100644 index 0000000..f26c9da --- /dev/null +++ b/gamedata/shaders/d3d11/effects_sun.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("effects_sun", "stub_srgb") + + :blend(true, blend.srcalpha, blend.one) + :zb(true, false) + + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/effects_sun.vs.hlsl b/gamedata/shaders/d3d11/effects_sun.vs.hlsl new file mode 100644 index 0000000..6b76610 --- /dev/null +++ b/gamedata/shaders/d3d11/effects_sun.vs.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +// Vertex +v2p_TL main(v_TL I) +{ + v2p_TL O; + + // O.HPos = I.P; + O.HPos = mul(m_VP, I.P); // xform, input in world coords + O.HPos.z = O.HPos.w; + O.Tex0 = I.Tex0; + O.Color = I.Color.bgra; // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/effects_wallmark.lua b/gamedata/shaders/d3d11/effects_wallmark.lua new file mode 100644 index 0000000..218141f --- /dev/null +++ b/gamedata/shaders/d3d11/effects_wallmark.lua @@ -0,0 +1,8 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("effects_wallmark", "stub_default_ma") + :blend(true, blend.destcolor, blend.srccolor) + :zb(true, false) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_rtlinear") + shader:dx10color_write_enable(true, true, true, false) +end diff --git a/gamedata/shaders/d3d11/effects_wallmark.vs.hlsl b/gamedata/shaders/d3d11/effects_wallmark.vs.hlsl new file mode 100644 index 0000000..7e805d3 --- /dev/null +++ b/gamedata/shaders/d3d11/effects_wallmark.vs.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +// Vertex +v2p_TL main(v_TL I) +{ + v2p_TL O; + + O.HPos = mul(m_VP, I.P); + O.Tex0 = I.Tex0; + O.Color = I.Color.bgra; // swizzle vertex colour + + O.HPos.xy += m_taa_jitter.xy * O.HPos.w; + + return O; +} diff --git a/gamedata/shaders/d3d11/effects_wallmarkblend.lua b/gamedata/shaders/d3d11/effects_wallmarkblend.lua new file mode 100644 index 0000000..f35743c --- /dev/null +++ b/gamedata/shaders/d3d11/effects_wallmarkblend.lua @@ -0,0 +1,13 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("wmark", "simple") + :sorting(1, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :wmark(true) + -- shader:sampler ("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_rtlinear") + shader:dx10color_write_enable(true, true, true, false) +end diff --git a/gamedata/shaders/d3d11/effects_wallmarkmult.lua b/gamedata/shaders/d3d11/effects_wallmarkmult.lua new file mode 100644 index 0000000..b4338b6 --- /dev/null +++ b/gamedata/shaders/d3d11/effects_wallmarkmult.lua @@ -0,0 +1,13 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("wmark", "simple") + :sorting(1, false) + :blend(true, blend.destcolor, blend.srccolor) + :aref(true, 0) + :zb(true, false) + :fog(false) + :wmark(true) + -- shader:sampler ("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_rtlinear") + shader:dx10color_write_enable(true, true, true, false) +end diff --git a/gamedata/shaders/d3d11/effects_wallmarkset.lua b/gamedata/shaders/d3d11/effects_wallmarkset.lua new file mode 100644 index 0000000..f2fd129 --- /dev/null +++ b/gamedata/shaders/d3d11/effects_wallmarkset.lua @@ -0,0 +1,12 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("wmark", "simple") + :sorting(1, false) + :aref(false, 0) + :zb(true, true) + :fog(false) + :wmark(true) + -- shader:sampler ("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_rtlinear") + shader:dx10color_write_enable(true, true, true, false) +end diff --git a/gamedata/shaders/d3d11/effects_water.lua b/gamedata/shaders/d3d11/effects_water.lua new file mode 100644 index 0000000..0258c45 --- /dev/null +++ b/gamedata/shaders/d3d11/effects_water.lua @@ -0,0 +1,62 @@ +local tex_base = "water\\water_water" +local tex_nmap = "water\\water_normal" +local tex_dist = "water\\water_dudv" +local tex_caustic = "water\\water_caustic" + +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +local tex_leaves = "water\\water_foam" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("water", "water") + :sorting(2, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :distort(true) + :fog(true) + + shader:dx10texture("s_base", tex_base) + + shader:dx10texture("s_nmap", tex_nmap) + + shader:dx10texture("s_env0", tex_env0) + shader:dx10texture("s_env1", tex_env1) + + shader:dx10texture("s_env", "$user$sky") + + shader:dx10texture("env_s0", "$user$env_s0") + shader:dx10texture("env_s1", "$user$env_s1") + + shader:dx10texture("s_accumulator", "$user$accum") + shader:dx10texture("s_position", "$user$position") + shader:dx10texture("s_velocity", "$user$velocity") + shader:dx10texture("s_image", "$user$generic") + + shader:dx10texture("s_material", "$user$material") + + shader:dx10texture("s_leaves", tex_leaves) + shader:dx10texture("s_caustic", tex_caustic) + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_nofilter") + shader:dx10sampler("smp_rtlinear") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("water", "waterd") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + + shader:dx10color_write_enable(true, true, true, false) + + shader:dx10texture("s_base", tex_base) + shader:dx10texture("s_distort", tex_dist) + shader:dx10texture("s_position", "$user$position") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_nofilter") +end diff --git a/gamedata/shaders/d3d11/effects_water_puddles.lua b/gamedata/shaders/d3d11/effects_water_puddles.lua new file mode 100644 index 0000000..9d99062 --- /dev/null +++ b/gamedata/shaders/d3d11/effects_water_puddles.lua @@ -0,0 +1,36 @@ +local tex_base = "water\\water_water" +local tex_nmap = "water\\water_normal" + +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("water_puddles", "water_puddles") + :sorting(2, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(true) + + shader:dx10texture("s_base", tex_base) + + shader:dx10texture("s_nmap", tex_nmap) + + shader:dx10texture("s_env0", tex_env0) + shader:dx10texture("s_env1", tex_env1) + + shader:dx10texture("s_env", "$user$sky") + + shader:dx10texture("env_s0", "$user$env_s0") + shader:dx10texture("env_s1", "$user$env_s1") + + shader:dx10texture("s_accumulator", "$user$accum") + shader:dx10texture("s_position", "$user$position") + shader:dx10texture("s_velocity", "$user$velocity") + shader:dx10texture("s_image", "$user$generic") + + shader:dx10texture("s_material", "$user$material") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_nofilter") + shader:dx10sampler("smp_rtlinear") +end \ No newline at end of file diff --git a/gamedata/shaders/d3d11/effects_waterryaska.lua b/gamedata/shaders/d3d11/effects_waterryaska.lua new file mode 100644 index 0000000..a4cdb35 --- /dev/null +++ b/gamedata/shaders/d3d11/effects_waterryaska.lua @@ -0,0 +1,62 @@ +local tex_base = "water\\water_ryaska1" +local tex_nmap = "water\\water_normal" +local tex_dist = "water\\water_dudv" +local tex_caustic = "water\\water_caustic" + +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +local tex_leaves = "water\\water_foam" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("water", "water") + :sorting(2, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :distort(true) + :fog(true) + + shader:dx10texture("s_base", tex_base) + + shader:dx10texture("s_nmap", tex_nmap) + + shader:dx10texture("s_env0", tex_env0) + shader:dx10texture("s_env1", tex_env1) + + shader:dx10texture("s_env", "$user$sky") + + shader:dx10texture("env_s0", "$user$env_s0") + shader:dx10texture("env_s1", "$user$env_s1") + + shader:dx10texture("s_accumulator", "$user$accum") + shader:dx10texture("s_position", "$user$position") + shader:dx10texture("s_velocity", "$user$velocity") + shader:dx10texture("s_image", "$user$generic") + + shader:dx10texture("s_material", "$user$material") + + shader:dx10texture("s_leaves", tex_leaves) + shader:dx10texture("s_caustic", tex_caustic) + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_nofilter") + shader:dx10sampler("smp_rtlinear") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("water", "waterd") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + + shader:dx10color_write_enable(true, true, true, false) + + shader:dx10texture("s_base", tex_base) + shader:dx10texture("s_distort", tex_dist) + shader:dx10texture("s_position", "$user$position") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_nofilter") +end diff --git a/gamedata/shaders/d3d11/effects_waterstuden.lua b/gamedata/shaders/d3d11/effects_waterstuden.lua new file mode 100644 index 0000000..9071bbf --- /dev/null +++ b/gamedata/shaders/d3d11/effects_waterstuden.lua @@ -0,0 +1,62 @@ +local tex_base = "water\\water_studen" +local tex_nmap = "water\\water_normal" +local tex_dist = "water\\water_dudv" +local tex_caustic = "water\\water_caustic" + +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +local tex_leaves = "water\\water_foam" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("water", "water") + :sorting(2, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :distort(true) + :fog(true) + + shader:dx10texture("s_base", tex_base) + + shader:dx10texture("s_nmap", tex_nmap) + + shader:dx10texture("s_env0", tex_env0) + shader:dx10texture("s_env1", tex_env1) + + shader:dx10texture("s_env", "$user$sky") + + shader:dx10texture("env_s0", "$user$env_s0") + shader:dx10texture("env_s1", "$user$env_s1") + + shader:dx10texture("s_accumulator", "$user$accum") + shader:dx10texture("s_position", "$user$position") + shader:dx10texture("s_velocity", "$user$velocity") + shader:dx10texture("s_image", "$user$generic") + + shader:dx10texture("s_material", "$user$material") + + shader:dx10texture("s_leaves", tex_leaves) + shader:dx10texture("s_caustic", tex_caustic) + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_nofilter") + shader:dx10sampler("smp_rtlinear") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("water", "waterd") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + + shader:dx10color_write_enable(true, true, true, false) + + shader:dx10texture("s_base", tex_base) + shader:dx10texture("s_distort", tex_dist) + shader:dx10texture("s_position", "$user$position") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_nofilter") +end diff --git a/gamedata/shaders/d3d11/fluid3d_stub.lua b/gamedata/shaders/d3d11/fluid3d_stub.lua new file mode 100644 index 0000000..2c376d8 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid3d_stub.lua @@ -0,0 +1,10 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_default", "stub_default") + -- shader:begin ("stub_default","test","stub_default") + :zb(true, false) + :blend(true, blend.one, blend.one) + :sorting(2, true) + + shader:dx10texture("s_base", "water\\water_ryaska1") + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/fluid_advect.ps.hlsl b/gamedata/shaders/d3d11/fluid_advect.ps.hlsl new file mode 100644 index 0000000..e7eb671 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_advect.ps.hlsl @@ -0,0 +1,14 @@ +#include "fluid_common.hlsli" + +// Pixel +float4 main(p_fluidsim input) : SV_Target +{ + if (IsNonEmptyCell(input.texcoords.xyz)) + { + return 0; + } + + float3 npos = GetAdvectedPosTexCoords(input); + + return Texture_color.SampleLevel(samLinear, npos, 0) * modulate; +} diff --git a/gamedata/shaders/d3d11/fluid_advect_bfecc.ps.hlsl b/gamedata/shaders/d3d11/fluid_advect_bfecc.ps.hlsl new file mode 100644 index 0000000..af8ef9a --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_advect_bfecc.ps.hlsl @@ -0,0 +1,32 @@ +#include "fluid_common.hlsli" + +////////////////////////////////////////////////////////////////////////////////////////// +// Pixel +float4 main(p_fluidsim input) : SV_Target +{ + if (IsNonEmptyCell(input.texcoords.xyz)) + { + return 0; + } + + float3 npos = GetAdvectedPosTexCoords(input); + + float4 r; + float3 diff = abs(floatVolumeDim.xyz - input.cell0.xyz); + + // Must use regular semi-Lagrangian advection instead of BFECC at the volume boundaries + if ((diff.x > (floatVolumeDim.x - 4)) || (diff.y > (floatVolumeDim.y - 4)) || (diff.z > (floatVolumeDim.z - 4))) + { + r = Texture_color.SampleLevel(samLinear, npos, 0); + } + else + { + // Texture_color contains \phi^n; Texture_tempscalar contains \bar{\phi} + // (i.e.: the result of 1 forward advection step, followed by a backwards advection step) + r = 1.5f * Texture_color.SampleLevel(samLinear, npos, 0) - + 0.5f * Texture_tempscalar.SampleLevel(samLinear, npos, 0); + } + + r = saturate(r); + return r * modulate; +} diff --git a/gamedata/shaders/d3d11/fluid_advect_bfecc_temp.ps.hlsl b/gamedata/shaders/d3d11/fluid_advect_bfecc_temp.ps.hlsl new file mode 100644 index 0000000..6d2436b --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_advect_bfecc_temp.ps.hlsl @@ -0,0 +1,63 @@ +#include "fluid_common.hlsli" + +#define Texture_phi_n Texture_color +#define Texture_phi_n_hat Texture_tempscalar + +// Advect MCCormack + +// Pixel +float4 main(p_fluidsim input) : SV_Target +{ + if (IsNonEmptyCell(input.texcoords.xyz)) + { + return 0; + } + + // get advected new position + float3 npos = input.cell0 - timestep * forward * + Texture_velocity0.SampleLevel(samPointClamp, input.texcoords, 0).xyz; + + // convert new position to texture coordinates + float3 nposTC = float3(npos.x / textureWidth, npos.y / textureHeight, (npos.z + 0.5) / textureDepth); + + // find the texel corner closest to the semi-Lagrangian "particle" + float3 nposTexel = floor(npos + float3(0.5f, 0.5f, 0.5f)); + float3 nposTexelTC = float3(nposTexel.x / textureWidth, nposTexel.y / textureHeight, (nposTexel.z + 0.5) / textureDepth); + + // ht (float-texel) + float3 ht = float3(0.5f / textureWidth, 0.5f / textureHeight, 0.5f / textureDepth); + + // get the values of nodes that contribute to the interpolated value + // (texel centers are at float-integer locations) + float4 nodeValues[8]; + nodeValues[0] = Texture_phi_n.SampleLevel(samPointClamp, nposTexelTC + float3(-ht.x, -ht.y, -ht.z), 0); + nodeValues[1] = Texture_phi_n.SampleLevel(samPointClamp, nposTexelTC + float3(-ht.x, -ht.y, ht.z), 0); + nodeValues[2] = Texture_phi_n.SampleLevel(samPointClamp, nposTexelTC + float3(-ht.x, ht.y, -ht.z), 0); + nodeValues[3] = Texture_phi_n.SampleLevel(samPointClamp, nposTexelTC + float3(-ht.x, ht.y, ht.z), 0); + nodeValues[4] = Texture_phi_n.SampleLevel(samPointClamp, nposTexelTC + float3(ht.x, -ht.y, -ht.z), 0); + nodeValues[5] = Texture_phi_n.SampleLevel(samPointClamp, nposTexelTC + float3(ht.x, -ht.y, ht.z), 0); + nodeValues[6] = Texture_phi_n.SampleLevel(samPointClamp, nposTexelTC + float3(ht.x, ht.y, -ht.z), 0); + nodeValues[7] = Texture_phi_n.SampleLevel(samPointClamp, nposTexelTC + float3(ht.x, ht.y, ht.z), 0); + + // determine a valid range for the result + float4 phiMin = min(min(min(nodeValues[0], nodeValues[1]), nodeValues[2]), nodeValues[3]); + phiMin = min(min(min(min(phiMin, nodeValues[4]), nodeValues[5]), nodeValues[6]), nodeValues[7]); + + float4 phiMax = max(max(max(nodeValues[0], nodeValues[1]), nodeValues[2]), nodeValues[3]); + phiMax = max(max(max(max(phiMax, nodeValues[4]), nodeValues[5]), nodeValues[6]), nodeValues[7]); + + float4 r; + // Perform final MACCORMACK advection step: + // You can use point sampling and keep Texture_phi_n_1_hat + // r = Texture_phi_n_1_hat.SampleLevel( samPointClamp, input.texcoords, 0 ) + // OR use bilerp to avoid the need to keep a separate texture for phi_n_1_hat + r = Texture_phi_n.SampleLevel(samLinear, nposTC, 0) + 0.5 * (Texture_phi_n.SampleLevel(samPointClamp, input.texcoords, 0) - + Texture_phi_n_hat.SampleLevel(samPointClamp, input.texcoords, 0)); + + // clamp result to the desired range + r = max(min(r, phiMax), phiMin); + + float4 ret = r * modulate - k; + ret = clamp(ret, float4(0, 0, 0, 0), float4(5, 5, 5, 5)); + return ret; +} diff --git a/gamedata/shaders/d3d11/fluid_advect_temp.ps.hlsl b/gamedata/shaders/d3d11/fluid_advect_temp.ps.hlsl new file mode 100644 index 0000000..e4ab038 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_advect_temp.ps.hlsl @@ -0,0 +1,15 @@ +#include "fluid_common.hlsli" + +// Pixel +float4 main(p_fluidsim input) : SV_Target +{ + if (IsNonEmptyCell(input.texcoords.xyz)) + { + return 0; + } + + float3 npos = GetAdvectedPosTexCoords(input); + float4 ret = Texture_color.SampleLevel(samLinear, npos, 0) * modulate - k; + ret = clamp(ret, float4(0, 0, 0, 0), float4(5, 5, 5, 5)); + return ret; +} diff --git a/gamedata/shaders/d3d11/fluid_advect_vel.ps.hlsl b/gamedata/shaders/d3d11/fluid_advect_vel.ps.hlsl new file mode 100644 index 0000000..d78d5ce --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_advect_vel.ps.hlsl @@ -0,0 +1,21 @@ +#include "fluid_common.hlsli" + +float GravityBuoyancy; + +// Pixel +float4 main(p_fluidsim input) : SV_Target +{ + float3 npos = GetAdvectedPosTexCoords(input); + + float4 Velocity = Texture_velocity0.SampleLevel(samLinear, npos, 0) * modulate; + +#ifdef USE_GRAVITY + + float Dencity = Texture_color.SampleLevel(samLinear, npos, 0).x; + Velocity.y += Dencity * GravityBuoyancy; + +#endif // USE_GRAVITY + + return Velocity; +} + diff --git a/gamedata/shaders/d3d11/fluid_advect_vel_g.ps.hlsl b/gamedata/shaders/d3d11/fluid_advect_vel_g.ps.hlsl new file mode 100644 index 0000000..4bf5e35 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_advect_vel_g.ps.hlsl @@ -0,0 +1,3 @@ +#define USE_GRAVITY +#include "fluid_advect_vel.ps.hlsl" +// main diff --git a/gamedata/shaders/d3d11/fluid_array.gs.hlsl b/gamedata/shaders/d3d11/fluid_array.gs.hlsl new file mode 100644 index 0000000..9c885a5 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_array.gs.hlsl @@ -0,0 +1,21 @@ +#include "fluid_common.hlsli" + +// Geometry +[maxvertexcount(3)] +void main(triangle v2g_fluidsim In[3], inout TriangleStream triStream) +{ + g2p_fluidsim Out; + // cell0.z of the first vertex in the triangle determines the destination slice index + Out.RTIndex = In[0].cell0.z; + for (int v = 0; v < 3; v++) + { + Out.pos = In[v].pos; + Out.cell0 = In[v].cell0; + Out.texcoords = In[v].texcoords; + Out.LR = In[v].LR; + Out.BT = In[v].BT; + Out.DU = In[v].DU; + triStream.Append(Out); + } + triStream.RestartStrip(); +} diff --git a/gamedata/shaders/d3d11/fluid_array_dyn_oobb.gs.hlsl b/gamedata/shaders/d3d11/fluid_array_dyn_oobb.gs.hlsl new file mode 100644 index 0000000..fae8dbc --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_array_dyn_oobb.gs.hlsl @@ -0,0 +1,20 @@ +#include "fluid_common.hlsli" + +// Geometry +[maxvertexcount(3)] +void main(triangle v2g_fluidsim_dyn_aabb In[3], inout TriangleStream triStream) +{ + g2p_fluidsim_dyn_aabb Out; + // cell0.z of the first vertex in the triangle determines the destination slice index + Out.RTIndex = In[0].cell0.z; + for (int v = 0; v < 3; v++) + { + Out.pos = In[v].pos; + Out.cell0 = In[v].cell0; + Out.velocity = In[v].velocity; + Out.clip0 = In[v].clip0; + Out.clip1 = In[v].clip1; + triStream.Append(Out); + } + triStream.RestartStrip(); +} diff --git a/gamedata/shaders/d3d11/fluid_array_oobb.gs.hlsl b/gamedata/shaders/d3d11/fluid_array_oobb.gs.hlsl new file mode 100644 index 0000000..ddd0659 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_array_oobb.gs.hlsl @@ -0,0 +1,23 @@ +#include "fluid_common.hlsli" + +// Geometry +[maxvertexcount(3)] +void main(triangle v2g_fluidsim_clip In[3], inout TriangleStream triStream) +{ + g2p_fluidsim_clip Out; + // cell0.z of the first vertex in the triangle determines the destination slice index + Out.RTIndex = In[0].cell0.z; + for (int v = 0; v < 3; v++) + { + Out.pos = In[v].pos; + Out.cell0 = In[v].cell0; + Out.texcoords = In[v].texcoords; + Out.LR = In[v].LR; + Out.BT = In[v].BT; + Out.DU = In[v].DU; + Out.clip0 = In[v].clip0; + Out.clip1 = In[v].clip1; + triStream.Append(Out); + } + triStream.RestartStrip(); +} diff --git a/gamedata/shaders/d3d11/fluid_common.hlsli b/gamedata/shaders/d3d11/fluid_common.hlsli new file mode 100644 index 0000000..907b691 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_common.hlsli @@ -0,0 +1,214 @@ +//-------------------------------------------------------------------------------------- +// Defines +//-------------------------------------------------------------------------------------- + +#define LEFTCELL float3(input.LR.x, input.texcoords.y, input.texcoords.z) +#define RIGHTCELL float3(input.LR.y, input.texcoords.y, input.texcoords.z) +#define BOTTOMCELL float3(input.texcoords.x, input.BT.x, input.texcoords.z) +#define TOPCELL float3(input.texcoords.x, input.BT.y, input.texcoords.z) +#define DOWNCELL float3(input.texcoords.x, input.texcoords.y, input.DU.x) +#define UPCELL float3(input.texcoords.x, input.texcoords.y, input.DU.y) + +// 1.73 - voxel diagonal length +#define BOX_EXPANSION 1.73 + +//-------------------------------------------------------------------------------------- +// Textures +//-------------------------------------------------------------------------------------- + +Texture3D Texture_velocity0; +Texture3D Texture_velocity1; +Texture3D Texture_color; +Texture3D Texture_obstacles; +Texture3D Texture_obstvelocity; +Texture3D Texture_pressure; +Texture3D Texture_tempscalar; +Texture3D Texture_tempvector; + +//-------------------------------------------------------------------------------------- +// Samplers +//-------------------------------------------------------------------------------------- + +sampler samPointClamp; +sampler samLinear; + +//-------------------------------------------------------------------------------------- +// Variables +//-------------------------------------------------------------------------------------- + +cbuffer FluidSimConfig +{ + float textureHeight; + float textureWidth; + float textureDepth; + + float modulate = 1.0; + float epsilon; + float timestep; + float forward = 1.0; + float4 floatVolumeDim; // Actually float3. We don't support float3 and float2 +} + +cbuffer AABBBounds +{ + float4 boxLBDcorner; // float3 + float4 boxRTUcorner; // float3 +} + +cbuffer EmitterParams +{ + float size; + float4 center; // Actually float3. We don't support float3 and float2 + float4 splatColor; +} + +cbuffer OOBBClipPlanes +{ + float4 OOBBClipPlane[6]; + // 0 - Top + // 1 - Bottom +} + +// For fire simulation. Fuel extinction speed. +static const float k = 0.006; + +///////////////////////////////////////////////////////////////// +// Structs + +///////////////////////////////////////////////////////////////// +// fluidsim +struct v_fluidsim +{ + float3 position : POSITION; // 2D slice vertex coordinates in clip space + float3 textureCoords0 : TEXCOORD; // 3D cell coordinates (x,y,z in 0-dimension range) +}; + +struct v2g_fluidsim +{ + float3 cell0 : TEXCOORD0; + float3 texcoords : TEXCOORD1; + float2 LR : TEXCOORD2; + float2 BT : TEXCOORD3; + float2 DU : TEXCOORD4; + float4 pos : SV_POSITION; +}; + +struct g2p_fluidsim +{ + float3 cell0 : TEXCOORD0; // 3D cell coordinates (x,y,z in 0-dimension range) + float3 texcoords : TEXCOORD1; // 3D cell texcoords (x,y,z in 0-1 range) + float2 LR : TEXCOORD2; // 3D cell texcoords for the Left and Right neighbors + float2 BT : TEXCOORD3; // 3D cell texcoords for the Bottom and Top neighbors + float2 DU : TEXCOORD4; // 3D cell texcoords for the Down and Up neighbors + float4 pos : SV_POSITION; // 2D slice vertex coordinates in homogenous clip space + uint RTIndex : SV_RenderTargetArrayIndex; // used to choose the destination slice +}; + +struct p_fluidsim +{ + float3 cell0 : TEXCOORD0; // 3D cell coordinates (x,y,z in 0-dimension range) + float3 texcoords : TEXCOORD1; // 3D cell texcoords (x,y,z in 0-1 range) + float2 LR : TEXCOORD2; // 3D cell texcoords for the Left and Right neighbors + float2 BT : TEXCOORD3; // 3D cell texcoords for the Bottom and Top neighbors + float2 DU : TEXCOORD4; // 3D cell texcoords for the Down and Up neighbors +}; + +///////////////////////////////////////////////////////////////// +// fluidsim_clip +// TODO: DX10: These structures are used for obstacle rendering. Remove unused fields. + +struct v2g_fluidsim_clip +{ + float3 cell0 : TEXCOORD0; + float3 texcoords : TEXCOORD1; + float2 LR : TEXCOORD2; + float2 BT : TEXCOORD3; + float2 DU : TEXCOORD4; + float3 clip0 : SV_ClipDistance0; + float3 clip1 : SV_ClipDistance1; + float4 pos : SV_POSITION; +}; + +struct g2p_fluidsim_clip +{ + float3 cell0 : TEXCOORD0; // 3D cell coordinates (x,y,z in 0-dimension range) + float3 texcoords : TEXCOORD1; // 3D cell texcoords (x,y,z in 0-1 range) + float2 LR : TEXCOORD2; // 3D cell texcoords for the Left and Right neighbors + float2 BT : TEXCOORD3; // 3D cell texcoords for the Bottom and Top neighbors + float2 DU : TEXCOORD4; // 3D cell texcoords for the Down and Up neighbors + float3 clip0 : SV_ClipDistance0; + float3 clip1 : SV_ClipDistance1; + float4 pos : SV_POSITION; // 2D slice vertex coordinates in homogenous clip space + uint RTIndex : SV_RenderTargetArrayIndex; // used to choose the destination slice +}; + +struct p_fluidsim_clip +{ + float3 cell0 : TEXCOORD0; // 3D cell coordinates (x,y,z in 0-dimension range) + float3 texcoords : TEXCOORD1; // 3D cell texcoords (x,y,z in 0-1 range) + float2 LR : TEXCOORD2; // 3D cell texcoords for the Left and Right neighbors + float2 BT : TEXCOORD3; // 3D cell texcoords for the Bottom and Top neighbors + float2 DU : TEXCOORD4; // 3D cell texcoords for the Down and Up neighbors + float3 clip0 : SV_ClipDistance0; + float3 clip1 : SV_ClipDistance1; +}; + +///////////////////////////////////////////////////////////////// +// fluidsim_clip +// TODO: DX10: These structures are used for obstacle rendering. Remove unused fields. + +struct v2g_fluidsim_dyn_aabb +{ + float3 cell0 : TEXCOORD0; + float3 velocity : TEXCOORD1; + float3 clip0 : SV_ClipDistance0; + float3 clip1 : SV_ClipDistance1; + float4 pos : SV_POSITION; +}; + +struct g2p_fluidsim_dyn_aabb +{ + float3 cell0 : TEXCOORD0; // 3D cell coordinates (x,y,z in 0-dimension range) + float3 velocity : TEXCOORD1; // speed of the point in local space + float3 clip0 : SV_ClipDistance0; + float3 clip1 : SV_ClipDistance1; + float4 pos : SV_POSITION; // 2D slice vertex coordinates in homogenous clip space + uint RTIndex : SV_RenderTargetArrayIndex; // used to choose the destination slice +}; + +struct p_fluidsim_dyn_aabb +{ + float3 cell0 : TEXCOORD0; // 3D cell coordinates (x,y,z in 0-dimension range) + float3 velocity : TEXCOORD1; + float3 clip0 : SV_ClipDistance0; + float3 clip1 : SV_ClipDistance1; +}; + +//-------------------------------------------------------------------------------------- +// Helper functions +//-------------------------------------------------------------------------------------- + +float4 GetObstVelocity(float3 cellTexCoords) +{ + return Texture_obstvelocity.SampleLevel(samPointClamp, cellTexCoords, 0); +} + +bool IsNonEmptyCell(float3 cellTexCoords) +{ + return (Texture_obstacles.SampleLevel(samPointClamp, cellTexCoords, 0).r > 0.0); +} + +bool IsBoundaryCell(float3 cellTexCoords) +{ + return (Texture_obstacles.SampleLevel(samPointClamp, cellTexCoords, 0).r > 0.9); +} + +float3 GetAdvectedPosTexCoords(p_fluidsim input) +{ + float3 pos = input.cell0; + + pos -= timestep * forward * + Texture_velocity0.SampleLevel(samPointClamp, input.texcoords, 0).xyz; + + return float3(pos.x / textureWidth, pos.y / textureHeight, (pos.z + 0.5) / textureDepth); +} diff --git a/gamedata/shaders/d3d11/fluid_common_render.hlsli b/gamedata/shaders/d3d11/fluid_common_render.hlsli new file mode 100644 index 0000000..f682569 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_common_render.hlsli @@ -0,0 +1,344 @@ +//-------------------------------------------------------------------------------------- +// Defines +//-------------------------------------------------------------------------------------- +// #define OCCLUDED_PIXEL_RAYVALUE float4(1, 0, 0, 0) +// Use very large value for aplha to help edge detection +#define OCCLUDED_PIXEL_RAYVALUE float4(1, 0, 0, 100000) +#define NEARCLIPPED_PIXEL_RAYPOS float3(0, -1, 0) + +// Z for skybox is zero, so patch this in shader +#define Z_EPSILON 0.00001 +// Value for skybox depth +#define Z_MAX 100000 + +#pragma warning(disable : 4000) + +//-------------------------------------------------------------------------------------- +// Textures +//-------------------------------------------------------------------------------------- +Texture2D sceneDepthTex; +Texture3D colorTex; + +Texture2D rayDataTex; +Texture2D rayDataTexSmall; +Texture2D rayCastTex; +Texture2D edgeTex; +Texture2D jitterTex; + +Texture2D fireTransferFunction; + +//-------------------------------------------------------------------------------------- +// Samplers +//-------------------------------------------------------------------------------------- + +sampler samPointClamp; +sampler samLinearClamp; +sampler samRepeat; + +//-------------------------------------------------------------------------------------- +// Variables +//-------------------------------------------------------------------------------------- +// Set once per volume +// Use for all rendering passes +cbuffer FluidRenderConfig +{ + float RTWidth; + float RTHeight; + + float4 DiffuseLight; + float4 DepthUnpack; + + float4x4 WorldViewProjection; + float4x4 InvWorldViewProjection; + + float ZNear; + float ZFar; + + float4 gridDim; // float3 + float4 recGridDim; // float3 + float maxGridDim; + float gridScaleFactor = 1.0; + float4 eyeOnGrid; // float3 +} + +// static float edgeThreshold = 0.2; +// static float edgeThreshold = 0.1; +static float edgeThreshold = 0.01; + +static const bool g_bRaycastFilterTricubic = false; // true: tricubic; false: trilinear +// static const bool g_bRaycastFilterTricubic = true; // true: tricubic; false: trilinear + +#include "fluid_common_tricubic.hlsli" + +// Fire setup +static const float RednessFactor = 5.0f; +static const float fireAlphaMultiplier = 0.95f; +// static const float smokeAlphaMultiplier = 0.05f; +static const float smokeAlphaMultiplier = 0.5f; +// static const float smokeColorMultiplier = 2.00f; +static const float smokeColorMultiplier = 0.02f; + +//-------------------------------------------------------------------------------------- +// Structs +//-------------------------------------------------------------------------------------- +struct VS_INPUT +{ + float3 pos : POSITION; +}; + +struct PS_INPUT_RAYDATA_BACK +{ + float4 pos : SV_POSITION; + float depth : TEXCOORD0; +}; + +struct PS_INPUT_RAYDATA_FRONT +{ + float4 pos : SV_POSITION; + float3 posInGrid : POSITION; + float depth : TEXCOORD0; +}; + +struct PS_INPUT_RAYCAST +{ + float4 pos : SV_POSITION; + float3 posInGrid : POSITION; +}; + +struct VS_OUTPUT_EDGE +{ + // There's no textureUV11 because its weight is zero. + float4 position : SV_POSITION; // vertex position + float2 textureUV00 : TEXCOORD0; // kernel tap texture coords + float2 textureUV01 : TEXCOORD1; // kernel tap texture coords + float2 textureUV02 : TEXCOORD2; // kernel tap texture coords + float2 textureUV10 : TEXCOORD3; // kernel tap texture coords + float2 textureUV12 : TEXCOORD4; // kernel tap texture coords + float2 textureUV20 : TEXCOORD5; // kernel tap texture coords + float2 textureUV21 : TEXCOORD6; // kernel tap texture coords + float2 textureUV22 : TEXCOORD7; // kernel tap texture coords +}; + +//-------------------------------------------------------------------------------------- +// Functions +//-------------------------------------------------------------------------------------- + +float EdgeDetectScalar(float sx, float sy, float threshold) +{ + float dist = (sx * sx + sy * sy); + float e = (dist > threshold * ZFar) ? 1 : 0; + return e; +} + +/* +// We can select either back=to-front or front-to-back raycasting and blending. +// front-to-back may be slightly more expensive, but if the smoke is dense it allows +// early-out when the opacity gets saturated (close to 1.0), making it a bit cheaper +// +// Define BACK_TO_FRONT to use back-to-front raycasting +//#define BACK_TO_FRONT 1 +void DoSample(float weight, float3 O, inout float4 color ) +{ + // This value can be tuned to produce denser or thinner looking smoke + // Alternatively a transfer function could be used + #define OPACITY_MODULATOR 0.1 + + float3 texcoords; + float4 sample; + float t; + + texcoords = float3( O.x, 1 - O.y, O.z) ; +// sample = weight * colorTex.SampleLevel(samLinearClamp, texcoords, 0); +// sample = weight * abs(SampleTricubic(colorTex, texcoords)); +// sample = weight * abs(SampleTrilinear(colorTex, texcoords)); + sample = weight * abs(Sample(colorTex, texcoords)); + sample.a = (sample.r) * OPACITY_MODULATOR; + +#ifdef BACK_TO_FRONT // back-to-front blending + color.rgb = (1 - sample.a) * color.r + sample.a * sample.r; + color.a = (1 - sample.a) * color.a + sample.a; +#else // front-to-back blending + t = sample.a * (1.0-color.a); + color.rgb += t * sample.r; + color.a += t; +#endif + +} + +float4 Raycast( PS_INPUT_RAYCAST input ) +{ + float4 color = 0; + float4 rayData = rayDataTex.Sample(samLinearClamp, float2(input.pos.x/RTWidth,input.pos.y/RTHeight)); + + // Don't raycast if the starting position is negative + // (see use of OCCLUDED_PIXEL_RAYVALUE in PS_RAYDATA_FRONT) + if(rayData.x < 0) + return color; + + // If the front face of the box was clipped here by the near plane of the camera + // (see use of NEARCLIPPED_PIXEL_RAYPOS in PS_RAYDATA_BACK) + if(rayData.y < 0) + { + // Initialize the position of the fragment and adjust the depth + rayData.xyz = input.posInGrid; + rayData.w = rayData.w - ZNear; +// return float4 (1,0,0,saturate(rayData.w/5)); + } + + float3 rayOrigin = rayData.xyz; + float Offset = jitterTex.Sample( samRepeat, input.pos.xy / 256.0 ).r; + float rayLength = rayData.w; + + // Sample twice per voxel + float fSamples = ( rayLength / gridScaleFactor * maxGridDim ) * 2.0; + int nSamples = floor(fSamples); + float3 stepVec = normalize( (rayOrigin - eyeOnGrid) * gridDim ) * recGridDim * 0.5; + + float3 O = rayOrigin + stepVec*Offset; + +#ifdef BACK_TO_FRONT + // In back-to-front blending we start raycasting from the surface point and step towards the eye + O += fSamples * stepVec; + stepVec = -stepVec; +#endif + + for( int i=0; i 0.99 ) + break; +#endif + } + + // The last sample is weighted by the fractional part of the ray length in voxel + // space (fSamples), thus avoiding banding artifacts when the smoke is blended against the scene + if( i == nSamples ) + { + DoSample(frac(fSamples), O, color); + } + + return color; +} +*/ + +// #define RENDER_FIRE +void DoSample(float weight, float3 O, inout float4 color) +{ +// This value can be tuned to produce denser or thinner looking smoke +// Alternatively a transfer function could be used +#define OPACITY_MODULATOR 0.1 + + float3 texcoords; + texcoords = float3(O.x, 1 - O.y, O.z); + +#ifndef RENDER_FIRE + // render smoke with front to back blending + float t; + float4 sample = weight * abs(Sample(colorTex, texcoords)); + sample.a = (sample.r) * 0.1; + t = sample.a * (1.0 - color.a); + color.rgb += t * sample.r; + color.a += t; +#else // RENDER_FIRE + // render fire and smoke with back to front blending + + // dont render the area below where the fire originates + // if(O.z < OBSTACLE_MAX_HEIGHT/gridDim.z) + // return; + + // this is the threshold at which we decide whether to render fire or smoke + float threshold = 1.4; + float maxValue = 3; + + float s = colorTex.SampleLevel(samLinearClamp, texcoords, 0).x; + s = clamp(s, 0, maxValue); + + if (s > threshold) + { + // render fire + float lookUpVal = ((s - threshold) / (maxValue - threshold)); + lookUpVal = 1.0 - pow(lookUpVal, RednessFactor); + lookUpVal = clamp(lookUpVal, 0, 1); + float3 interpColor = fireTransferFunction.SampleLevel(samLinearClamp, float2(lookUpVal, 0), 0).xyz; + float mult = (s - threshold); + color += float4(weight * interpColor.rgb, weight * mult * mult * fireAlphaMultiplier); + } + else + { + // render smoke + float4 sample = weight * s; + sample.a = sample.r * 0.1 * smokeAlphaMultiplier; + float3 smokeColor = float3(0.9, 0.35, 0.055); + color.rgb = (1 - sample.a) * color.rgb + sample.a * sample.rrr * smokeColor * smokeColorMultiplier * 5.0; + color.a = (1 - sample.a) * color.a + sample.a; + } +#endif // RENDER_FIRE +} + +float4 Raycast(PS_INPUT_RAYCAST input) +{ + float4 color = 0; + float4 rayData = rayDataTex.Sample(samLinearClamp, float2(input.pos.x / RTWidth, input.pos.y / RTHeight)); + + // Don't raycast if the starting position is negative + // (see use of OCCLUDED_PIXEL_RAYVALUE in PS_RAYDATA_FRONT) + if (rayData.x < 0) + { + return color; + } + + // If the front face of the box was clipped here by the near plane of the camera + // (see use of NEARCLIPPED_PIXEL_RAYPOS in PS_RAYDATA_BACK) + if (rayData.y < 0) + { + // Initialize the position of the fragment and adjust the depth + rayData.xyz = input.posInGrid; + rayData.w = rayData.w - ZNear; + // return float4 (1,0,0,saturate(rayData.w/5)); + } + + float3 rayOrigin = rayData.xyz; + float Offset = jitterTex.Sample(samRepeat, input.pos.xy / 256.0).r; + float rayLength = rayData.w; + + // Sample twice per voxel + float fSamples = (rayLength / gridScaleFactor * maxGridDim) * 2.0; + int nSamples = floor(fSamples); + float3 stepVec = normalize((rayOrigin - eyeOnGrid.xyz) * gridDim.xyz) * recGridDim.xyz * 0.5; + + float3 O = rayOrigin + stepVec * Offset; + +#ifdef RENDER_FIRE + // In back-to-front blending we start raycasting from the surface point and step towards the eye + O += fSamples * stepVec; + stepVec = -stepVec; +#endif // RENDER_FIRE + + for (int i = 0; i < nSamples; i++) + { + DoSample(1, O, color); + O += stepVec; + +#ifndef RENDER_FIRE + // If doing front-to-back blending we can do early exit when opacity saturates + if (color.a > 0.99) + { + break; + } +#endif // RENDER_FIRE + } + + // The last sample is weighted by the fractional part of the ray length in voxel + // space (fSamples), thus avoiding banding artifacts when the smoke is blended against the scene + if (i == nSamples) + { + DoSample(frac(fSamples), O, color); + } + + return color; +} + diff --git a/gamedata/shaders/d3d11/fluid_common_tricubic.hlsli b/gamedata/shaders/d3d11/fluid_common_tricubic.hlsli new file mode 100644 index 0000000..6e39298 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_common_tricubic.hlsli @@ -0,0 +1,233 @@ +///////////////////////////////// +// BEGIN Custom Sampling Functions +Texture1D HHGGTex; + +// cubic b-spline +float bsW0(float a) +{ + return (1.0 / 6.0 * (-(a * a * a) + (3.0 * a * a) - (3.0 * a) + 1.0)); +} + +float bsW1(float a) +{ + return (1.0 / 6.0 * ((3.0 * a * a * a) - (6.0 * a * a) + 4.0)); +} + +float bsW2(float a) +{ + return (1.0 / 6.0 * (-(3.0 * a * a * a) + (3.0 * a * a) + (3.0 * a) + 1.0)); +} + +float bsW3(float a) +{ + return (1.0 / 6.0 * a * a * a); +} + +float g0(float a) +{ + return (bsW0(a) + bsW1(a)); +} + +float g1(float a) +{ + return (bsW2(a) + bsW3(a)); +} + +float h0texels(float a) +{ + return (1.0 + a - (bsW1(a) / (bsW0(a) + bsW1(a)))); +} + +float h1texels(float a) +{ + return (1.0 - a + (bsW3(a) / (bsW2(a) + bsW3(a)))); +} +/// end cubic-bspline + +// first derivative of cubic b-spline +float bsfdW0(float a) +{ + return (1.0 / 6.0 * (-(3.0 * a * a) + (6.0 * a) - 3.0)); +} + +float bsfdW1(float a) +{ + return (1.0 / 6.0 * ((9.0 * a * a) - (12.0 * a))); +} + +float bsfdW2(float a) +{ + return (1.0 / 6.0 * (-(9.0 * a * a) + (6.0 * a) + 3.0)); +} + +float bsfdW3(float a) +{ + return (1.0 / 6.0 * 3.0 * a * a); +} + +float gfd0(float a) +{ + return (bsfdW0(a) + bsfdW1(a)); +} + +float gfd1(float a) +{ + return (bsfdW2(a) + bsfdW3(a)); +} + +float hfd0texels(float a) +{ + return (1.0 + a - (bsfdW1(a) / (bsfdW0(a) + bsfdW1(a)))); +} + +float hfd1texels(float a) +{ + return (1.0 - a + (bsfdW3(a) / (bsfdW2(a) + bsfdW3(a)))); +} +/// end first derivative of cubic b-spline + +float4 getHHGG(float xTexels) +{ + // float a = frac(xTexels); + // return float4( -h0texels(a), h1texels(a), 1.0-g0(a), g0(a) ); + + return HHGGTex.SampleLevel(samRepeat, xTexels, 0); +} + +float4 getfdHHGG(float xTexels) +{ + float a = frac(xTexels); + return float4(-hfd0texels(a), hfd1texels(a), gfd1(a), -gfd1(a)); +} + +float4 SampleTricubicGeneric(Texture3D tex, float3 tc, float4 hg_x, float4 hg_y, float4 hg_z) +{ + float3 tc100, tc000, tc110, tc010, + tc101, tc001, tc111, tc011; + + tc100 = tc; + tc000 = tc; + tc100.x += (hg_x.x * recGridDim.x); + tc000.x += (hg_x.y * recGridDim.x); + + tc110 = tc100; + tc010 = tc000; + tc110.y += (hg_y.x * recGridDim.y); + tc010.y += (hg_y.x * recGridDim.y); + tc100.y += (hg_y.y * recGridDim.y); + tc000.y += (hg_y.y * recGridDim.y); + + tc111 = tc110; + tc011 = tc010; + tc101 = tc100; + tc001 = tc000; + tc111.z += (hg_z.x * recGridDim.z); + tc011.z += (hg_z.x * recGridDim.z); + tc101.z += (hg_z.x * recGridDim.z); + tc001.z += (hg_z.x * recGridDim.z); + + float4 v001 = tex.SampleLevel(samLinearClamp, tc001, 0); + float4 v011 = tex.SampleLevel(samLinearClamp, tc011, 0); + float4 v101 = tex.SampleLevel(samLinearClamp, tc101, 0); + float4 v111 = tex.SampleLevel(samLinearClamp, tc111, 0); + + float4 v0Y1 = (v001 * hg_y.z) + (v011 * hg_y.w); + float4 v1Y1 = (v101 * hg_y.z) + (v111 * hg_y.w); + + float4 vXY1 = (v0Y1 * hg_x.z) + (v1Y1 * hg_x.w); + + tc110.z += (hg_z.y * recGridDim.z); + tc010.z += (hg_z.y * recGridDim.z); + tc100.z += (hg_z.y * recGridDim.z); + tc000.z += (hg_z.y * recGridDim.z); + + float4 v000 = tex.SampleLevel(samLinearClamp, tc000, 0); + float4 v010 = tex.SampleLevel(samLinearClamp, tc010, 0); + float4 v100 = tex.SampleLevel(samLinearClamp, tc100, 0); + float4 v110 = tex.SampleLevel(samLinearClamp, tc110, 0); + + float4 v0Y0 = (v000 * hg_y.z) + (v010 * hg_y.w); + float4 v1Y0 = (v100 * hg_y.z) + (v110 * hg_y.w); + + float4 vXY0 = (v0Y0 * hg_x.z) + (v1Y0 * hg_x.w); + + float4 vXYZ = (vXY0 * hg_z.z) + (vXY1 * hg_z.w); + + return vXYZ; +} + +float4 SampleTricubic(Texture3D tex, float3 tc) +{ + float3 tcTexels = (tc * gridDim.xyz) - 0.49; + + float4 hg_x = getHHGG(tcTexels.x); + float4 hg_y = getHHGG(tcTexels.y); + float4 hg_z = getHHGG(tcTexels.z); + + return SampleTricubicGeneric(tex, tc, hg_x, hg_y, hg_z); +} + +float4 SampleGradientTricubic(Texture3D tex, float3 tc) +{ + float3 tcTexels = (tc * gridDim.xyz) - 0.49; + + float4 hg_x = getHHGG(tcTexels.x); + float4 hg_y = getHHGG(tcTexels.y); + float4 hg_z = getHHGG(tcTexels.z); + float4 hgfd_x = getfdHHGG(tcTexels.x); + float4 hgfd_y = getfdHHGG(tcTexels.y); + float4 hgfd_z = getfdHHGG(tcTexels.z); + + return float4(SampleTricubicGeneric(tex, tc, hgfd_x, hg_y, hg_z).r, + SampleTricubicGeneric(tex, tc, hg_x, hgfd_y, hg_z).r, + SampleTricubicGeneric(tex, tc, hg_x, hg_y, hgfd_z).r, 1.0); +} + +float4 SampleTrilinear(Texture3D tex, float3 tc) +{ + return tex.SampleLevel(samLinearClamp, tc, 0); +} + +float4 SampleGradientTrilinear(Texture3D tex, float3 tc) +{ +#define LEFTCELL float3(tc.x - (1.0 / gridDim.x), tc.y, tc.z) +#define RIGHTCELL float3(tc.x + (1.0 / gridDim.x), tc.y, tc.z) +#define BOTTOMCELL float3(tc.x, (tc.y - (1.0 / gridDim.y)), tc.z) +#define TOPCELL float3(tc.x, (tc.y + (1.0 / gridDim.y)), tc.z) +#define DOWNCELL float3(tc.x, tc.y, tc.z - (1.0 / gridDim.z)) +#define UPCELL float3(tc.x, tc.y, tc.z + (1.0 / gridDim.z)) + + float4 texL = tex.SampleLevel(samLinearClamp, LEFTCELL, 0); + float4 texR = tex.SampleLevel(samLinearClamp, RIGHTCELL, 0); + float4 texB = tex.SampleLevel(samLinearClamp, BOTTOMCELL, 0); + float4 texT = tex.SampleLevel(samLinearClamp, TOPCELL, 0); + float4 texU = tex.SampleLevel(samLinearClamp, UPCELL, 0); + float4 texD = tex.SampleLevel(samLinearClamp, DOWNCELL, 0); + return float4(texR.r - texL.r, texT.r - texB.r, texU.r - texD.r, 1); +} + +float4 Sample(Texture3D tex, float3 tc) +{ + if (g_bRaycastFilterTricubic) + { + return SampleTricubic(tex, tc); + } + else + { + return SampleTrilinear(tex, tc); + } +} + +float4 SampleGradient(Texture3D tex, float3 tc) +{ + if (g_bRaycastFilterTricubic) + { + return SampleGradientTricubic(tex, tc); + } + else + { + return SampleGradientTrilinear(tex, tc); + } +} +// END Custom Sampling Functions +///////////////////////////////// diff --git a/gamedata/shaders/d3d11/fluid_confinement.ps.hlsl b/gamedata/shaders/d3d11/fluid_confinement.ps.hlsl new file mode 100644 index 0000000..5f4e386 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_confinement.ps.hlsl @@ -0,0 +1,30 @@ +#include "fluid_common.hlsli" + +// Pixel +float3 main(p_fluidsim input) : SV_Target +{ + // Texture_tempvector contains the vorticity computed by PS_VORTICITY + float4 omega = Texture_tempvector.SampleLevel(samPointClamp, input.texcoords, 0); + + // Potential optimization: don't find length multiple times - do once for the entire texture + float omegaL = length(Texture_tempvector.SampleLevel(samPointClamp, LEFTCELL, 0)); + float omegaR = length(Texture_tempvector.SampleLevel(samPointClamp, RIGHTCELL, 0)); + float omegaB = length(Texture_tempvector.SampleLevel(samPointClamp, BOTTOMCELL, 0)); + float omegaT = length(Texture_tempvector.SampleLevel(samPointClamp, TOPCELL, 0)); + float omegaD = length(Texture_tempvector.SampleLevel(samPointClamp, DOWNCELL, 0)); + float omegaU = length(Texture_tempvector.SampleLevel(samPointClamp, UPCELL, 0)); + + float3 eta = 0.5 * float3(omegaR - omegaL, + omegaT - omegaB, + omegaU - omegaD); + + eta = normalize(eta + float3(0.001, 0.001, 0.001)); + + float3 force = timestep * epsilon * float3(eta.y * omega.z - eta.z * omega.y, + eta.z * omega.x - eta.x * omega.z, + eta.x * omega.y - eta.y * omega.x); + + // Note: the result is added to the current velocity at each cell using "additive blending" + return force; +} + diff --git a/gamedata/shaders/d3d11/fluid_divergence.ps.hlsl b/gamedata/shaders/d3d11/fluid_divergence.ps.hlsl new file mode 100644 index 0000000..96ed080 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_divergence.ps.hlsl @@ -0,0 +1,42 @@ +#include "fluid_common.hlsli" + +// Pixel +float4 main(p_fluidsim input) : SV_Target +{ + float4 fieldL = Texture_velocity1.SampleLevel(samPointClamp, LEFTCELL, 0); + float4 fieldR = Texture_velocity1.SampleLevel(samPointClamp, RIGHTCELL, 0); + float4 fieldB = Texture_velocity1.SampleLevel(samPointClamp, BOTTOMCELL, 0); + float4 fieldT = Texture_velocity1.SampleLevel(samPointClamp, TOPCELL, 0); + float4 fieldD = Texture_velocity1.SampleLevel(samPointClamp, DOWNCELL, 0); + float4 fieldU = Texture_velocity1.SampleLevel(samPointClamp, UPCELL, 0); + + if (IsBoundaryCell(LEFTCELL)) + { + fieldL = GetObstVelocity(LEFTCELL); + } + if (IsBoundaryCell(RIGHTCELL)) + { + fieldR = GetObstVelocity(RIGHTCELL); + } + if (IsBoundaryCell(BOTTOMCELL)) + { + fieldB = GetObstVelocity(BOTTOMCELL); + } + if (IsBoundaryCell(TOPCELL)) + { + fieldT = GetObstVelocity(TOPCELL); + } + if (IsBoundaryCell(DOWNCELL)) + { + fieldD = GetObstVelocity(DOWNCELL); + } + if (IsBoundaryCell(UPCELL)) + { + fieldU = GetObstVelocity(UPCELL); + } + + float divergence = 0.5 * + ((fieldR.x - fieldL.x) + (fieldT.y - fieldB.y) + (fieldU.z - fieldD.z)); + + return divergence; +} diff --git a/gamedata/shaders/d3d11/fluid_draw_texture.ps.hlsl b/gamedata/shaders/d3d11/fluid_draw_texture.ps.hlsl new file mode 100644 index 0000000..4440b28 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_draw_texture.ps.hlsl @@ -0,0 +1,19 @@ +#include "fluid_common.hlsli" + +// Pixel +float4 main(p_fluidsim input) : SV_Target +{ + if (textureNumber == 1) + { + return abs(Texture_color.SampleLevel(samLinear, input.texcoords, 0)).xxxx; + } + else if (textureNumber == 2) + { + return abs(Texture_velocity0.SampleLevel(samLinear, input.texcoords, 0)); + } + else + { + return float4(abs(Texture_obstvelocity.SampleLevel(samLinear, input.texcoords, 0).xy), + abs(Texture_obstacles.SampleLevel(samLinear, input.texcoords, 0).r), 1); + } +} diff --git a/gamedata/shaders/d3d11/fluid_edge_detect.ps.hlsl b/gamedata/shaders/d3d11/fluid_edge_detect.ps.hlsl new file mode 100644 index 0000000..932abd2 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_edge_detect.ps.hlsl @@ -0,0 +1,83 @@ +#include "fluid_common_render.hlsli" + +// Pixel +// A full-screen edge detection pass to locate artifacts +// these artifacts are located on a downsized version of the rayDataTexture +// We use a smaller texture both to accurately find all the depth artifacts +// when raycasting to this smaller size and to save on the cost of this pass +// Use col.a to find depth edges of objects occluding the smoke +// Use col.g to find the edges where the camera near plane cuts the smoke volume +// +float4 main(VS_OUTPUT_EDGE vIn) : SV_Target +{ + // We need eight samples (the centre has zero weight in both kernels). + float4 col; + col = rayDataTexSmall.Sample(samPointClamp, vIn.textureUV00); + float g00 = col.a; + if (col.g < 0) + { + g00 *= -1; + } + col = rayDataTexSmall.Sample(samPointClamp, vIn.textureUV01); + float g01 = col.a; + if (col.g < 0) + { + g01 *= -1; + } + col = rayDataTexSmall.Sample(samPointClamp, vIn.textureUV02); + float g02 = col.a; + if (col.g < 0) + { + g02 *= -1; + } + col = rayDataTexSmall.Sample(samPointClamp, vIn.textureUV10); + float g10 = col.a; + if (col.g < 0) + { + g10 *= -1; + } + col = rayDataTexSmall.Sample(samPointClamp, vIn.textureUV12); + float g12 = col.a; + if (col.g < 0) + { + g12 *= -1; + } + col = rayDataTexSmall.Sample(samPointClamp, vIn.textureUV20); + float g20 = col.a; + if (col.g < 0) + { + g20 *= -1; + } + col = rayDataTexSmall.Sample(samPointClamp, vIn.textureUV21); + float g21 = col.a; + if (col.g < 0) + { + g21 *= -1; + } + col = rayDataTexSmall.Sample(samPointClamp, vIn.textureUV22); + float g22 = col.a; + if (col.g < 0) + { + g22 *= -1; + } + + // Sobel in horizontal dir. + float sx = 0; + sx -= g00; + sx -= g01 * 2; + sx -= g02; + sx += g20; + sx += g21 * 2; + sx += g22; + // Sobel in vertical dir - weights are just rotated 90 degrees. + float sy = 0; + sy -= g00; + sy += g02; + sy -= g10 * 2; + sy += g12 * 2; + sy -= g20; + sy += g22; + + float e = EdgeDetectScalar(sx, sy, edgeThreshold); + return float4(e, e, e, 1); +} diff --git a/gamedata/shaders/d3d11/fluid_edge_detect.vs.hlsl b/gamedata/shaders/d3d11/fluid_edge_detect.vs.hlsl new file mode 100644 index 0000000..332cf94 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_edge_detect.vs.hlsl @@ -0,0 +1,26 @@ +#include "fluid_common_render.hlsli" + +// Vertex +// A full-screen edge detection pass to locate artifacts +VS_OUTPUT_EDGE main(VS_INPUT input) +{ + VS_OUTPUT_EDGE output = (VS_OUTPUT_EDGE)0; + output.position = float4(input.pos, 1); + + float2 texelSize = 1.0 / float2(RTWidth, RTHeight); + float2 center = float2((input.pos.x + 1) / 2.0, 1.0 - (input.pos.y + 1) / 2.0); + + // Eight nearest neighbours needed for Sobel. + output.textureUV00 = center + float2(-texelSize.x, -texelSize.y); + output.textureUV01 = center + float2(-texelSize.x, 0); + output.textureUV02 = center + float2(-texelSize.x, texelSize.y); + + output.textureUV10 = center + float2(0, -texelSize.y); + output.textureUV12 = center + float2(0, texelSize.y); + + output.textureUV20 = center + float2(texelSize.x, -texelSize.y); + output.textureUV21 = center + float2(texelSize.x, 0); + output.textureUV22 = center + float2(texelSize.x, texelSize.y); + + return output; +} diff --git a/gamedata/shaders/d3d11/fluid_gaussian.ps.hlsl b/gamedata/shaders/d3d11/fluid_gaussian.ps.hlsl new file mode 100644 index 0000000..74e05aa --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_gaussian.ps.hlsl @@ -0,0 +1,22 @@ +#include "fluid_common.hlsli" + +// Pixel +float4 main(p_fluidsim input) : SV_Target +{ + if (IsNonEmptyCell(input.texcoords.xyz)) + { + return 0; + } + + float dist = length(input.cell0 - center.xyz) * size; + // float dist = length( input.cell0 - center ) * size / 2; + float4 result; + // result.rgb = splatColor; // + sin(splatColor.rgb*10.0+cell*5.0)*0.2; + result.rgb = splatColor.xyz + length(splatColor) * sin(splatColor.xyz * 10.0 + input.cell0 * 5.0) * 0.2; + // result.a = exp( -dist*dist/(0.05) ); + // result.a = exp( -dist*dist ); + result.a = exp(-dist * dist / 0.5); + + return result; +} + diff --git a/gamedata/shaders/d3d11/fluid_grid.vs.hlsl b/gamedata/shaders/d3d11/fluid_grid.vs.hlsl new file mode 100644 index 0000000..00febd0 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_grid.vs.hlsl @@ -0,0 +1,28 @@ +#include "fluid_common.hlsli" + +// Vertex +v2g_fluidsim main(v_fluidsim input) +{ + v2g_fluidsim output = (v2g_fluidsim)0; + + output.pos = float4(input.position.x, input.position.y, input.position.z, 1.0); + output.cell0 = float3(input.textureCoords0.x, input.textureCoords0.y, input.textureCoords0.z); + output.texcoords = float3((input.textureCoords0.x) / (textureWidth), + (input.textureCoords0.y) / (textureHeight), + (input.textureCoords0.z + 0.5) / (textureDepth)); + + float x = output.texcoords.x; + float y = output.texcoords.y; + float z = output.texcoords.z; + + // compute single texel offsets in each dimension + float invW = 1.0 / textureWidth; + float invH = 1.0 / textureHeight; + float invD = 1.0 / textureDepth; + + output.LR = float2(x - invW, x + invW); + output.BT = float2(y - invH, y + invH); + output.DU = float2(z - invD, z + invD); + + return output; +} diff --git a/gamedata/shaders/d3d11/fluid_grid_dyn_oobb.vs.hlsl b/gamedata/shaders/d3d11/fluid_grid_dyn_oobb.vs.hlsl new file mode 100644 index 0000000..7aee2f6 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_grid_dyn_oobb.vs.hlsl @@ -0,0 +1,54 @@ +#include "fluid_common.hlsli" + +cbuffer DynOOBBData +{ + float3x4 WorldToLocal; // World to local of fog volume + float3x4 LocalToWorld; // Local of fog volume to world + float4 MassCenter; // Center for angular velocity + float4 OOBBWorldAngularVelocity; + float4 OOBBWorldTranslationVelocity; +} + +// Vertex +v2g_fluidsim_dyn_aabb main(v_fluidsim input) +{ + v2g_fluidsim_dyn_aabb output = (v2g_fluidsim_dyn_aabb)0; + + output.pos = float4(input.position.x, input.position.y, input.position.z, 1.0); + output.cell0 = float3(input.textureCoords0.x, input.textureCoords0.y, input.textureCoords0.z); + + output.velocity = 0; + + { + output.velocity = OOBBWorldTranslationVelocity.xyz; + + float3 r = mul(LocalToWorld, float4(output.cell0, 1)).xyz - MassCenter.xyz; + + float3 AngularVel = cross(OOBBWorldAngularVelocity.xyz, r); + + output.velocity += AngularVel; + + output.velocity = mul((float3x3)WorldToLocal, output.velocity); + } + + // for (int i = 0; i < 3; ++i) + // { + // output.clip0[i] = dot(float4(output.cell0, 1), OOBBClipPlane[i]); + // output.clip1[i] = dot(float4(output.cell0, 1), OOBBClipPlane[i + 3]); + // // Make box a voxel bigger in each direction + // // BOX_EXPANSION - voxel diagonal length + // // output.clip0[i] += BOX_EXPANSION; + // // output.clip1[i] += BOX_EXPANSION; + // } + + output.clip0.x = dot(float4(output.cell0, 1), OOBBClipPlane[0]); + output.clip0.y = dot(float4(output.cell0, 1), OOBBClipPlane[1]); + output.clip0.z = dot(float4(output.cell0, 1), OOBBClipPlane[2]); + + output.clip1.x = dot(float4(output.cell0, 1), OOBBClipPlane[3]); + output.clip1.y = dot(float4(output.cell0, 1), OOBBClipPlane[4]); + output.clip1.z = dot(float4(output.cell0, 1), OOBBClipPlane[5]); + + return output; +} + diff --git a/gamedata/shaders/d3d11/fluid_grid_oobb.vs.hlsl b/gamedata/shaders/d3d11/fluid_grid_oobb.vs.hlsl new file mode 100644 index 0000000..b2be738 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_grid_oobb.vs.hlsl @@ -0,0 +1,49 @@ +#include "fluid_common.hlsli" + +// Vertex +v2g_fluidsim_clip main(v_fluidsim input) +{ + v2g_fluidsim_clip output = (v2g_fluidsim_clip)0; + + output.pos = float4(input.position.x, input.position.y, input.position.z, 1.0); + output.cell0 = float3(input.textureCoords0.x, input.textureCoords0.y, input.textureCoords0.z); + output.texcoords = float3((input.textureCoords0.x) / (textureWidth), + (input.textureCoords0.y) / (textureHeight), + (input.textureCoords0.z + 0.5) / (textureDepth)); + + float x = output.texcoords.x; + float y = output.texcoords.y; + float z = output.texcoords.z; + + // compute single texel offsets in each dimension + float invW = 1.0 / textureWidth; + float invH = 1.0 / textureHeight; + float invD = 1.0 / textureDepth; + + output.LR = float2(x - invW, x + invW); + output.BT = float2(y - invH, y + invH); + output.DU = float2(z - invD, z + invD); + + // float3 clip0 : SV_ClipDistance0; + // float3 clip1 : SV_ClipDistance1; + // for (int i = 0; i < 3; ++i) + // { + // output.clip0[i] = dot(float4(output.cell0, 1), OOBBClipPlane[i]); + // output.clip1[i] = dot(float4(output.cell0, 1), OOBBClipPlane[i + 3]); + // // Make box a voxel bigger in each direction + // // BOX_EXPANSION - voxel diagonal length + // // output.clip0[i] += BOX_EXPANSION; + // // output.clip1[i] += BOX_EXPANSION; + // } + + output.clip0.x = dot(float4(output.cell0, 1), OOBBClipPlane[0]); + output.clip0.y = dot(float4(output.cell0, 1), OOBBClipPlane[1]); + output.clip0.z = dot(float4(output.cell0, 1), OOBBClipPlane[2]); + + output.clip1.x = dot(float4(output.cell0, 1), OOBBClipPlane[3]); + output.clip1.y = dot(float4(output.cell0, 1), OOBBClipPlane[4]); + output.clip1.z = dot(float4(output.cell0, 1), OOBBClipPlane[5]); + + return output; +} + diff --git a/gamedata/shaders/d3d11/fluid_jacobi.ps.hlsl b/gamedata/shaders/d3d11/fluid_jacobi.ps.hlsl new file mode 100644 index 0000000..0407c94 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_jacobi.ps.hlsl @@ -0,0 +1,44 @@ +#include "fluid_common.hlsli" + +// Pixel +float4 main(p_fluidsim input) : SV_Target +{ + float pCenter = Texture_pressure.SampleLevel(samPointClamp, input.texcoords, 0).x; + // Texture_tempvector contains the "divergence" computed by PS_DIVERGENCE + float bC = Texture_tempvector.SampleLevel(samPointClamp, input.texcoords, 0).x; + + float pL = Texture_pressure.SampleLevel(samPointClamp, LEFTCELL, 0).x; + float pR = Texture_pressure.SampleLevel(samPointClamp, RIGHTCELL, 0).x; + float pB = Texture_pressure.SampleLevel(samPointClamp, BOTTOMCELL, 0).x; + float pT = Texture_pressure.SampleLevel(samPointClamp, TOPCELL, 0).x; + float pD = Texture_pressure.SampleLevel(samPointClamp, DOWNCELL, 0).x; + float pU = Texture_pressure.SampleLevel(samPointClamp, UPCELL, 0).x; + + if (IsBoundaryCell(LEFTCELL)) + { + pL = pCenter; + } + if (IsBoundaryCell(RIGHTCELL)) + { + pR = pCenter; + } + if (IsBoundaryCell(BOTTOMCELL)) + { + pB = pCenter; + } + if (IsBoundaryCell(TOPCELL)) + { + pT = pCenter; + } + if (IsBoundaryCell(DOWNCELL)) + { + pD = pCenter; + } + if (IsBoundaryCell(UPCELL)) + { + pU = pCenter; + } + + return (pL + pR + pB + pT + pU + pD - bC) / 6.0; +} + diff --git a/gamedata/shaders/d3d11/fluid_obst_dynamic_oobb.ps.hlsl b/gamedata/shaders/d3d11/fluid_obst_dynamic_oobb.ps.hlsl new file mode 100644 index 0000000..0af3e7b --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_obst_dynamic_oobb.ps.hlsl @@ -0,0 +1,29 @@ +#include "fluid_common.hlsli" + +struct PSDrawBoxOut +{ + float4 obstacle : SV_TARGET0; + float4 velocity : SV_TARGET1; +}; + +// Pixel +PSDrawBoxOut main(p_fluidsim_dyn_aabb input) +{ + PSDrawBoxOut voxel; + + // cells completely inside box = 0.5 + if ((input.clip0.x > BOX_EXPANSION) && (input.clip1.x > BOX_EXPANSION) && + (input.clip0.y > BOX_EXPANSION) && (input.clip1.y > BOX_EXPANSION) && + (input.clip0.z > BOX_EXPANSION) && (input.clip1.z > BOX_EXPANSION)) + { + voxel.obstacle = 0.5; + voxel.velocity = 0; + return voxel; + } + else // cells in box boundary = 1.0 + { + voxel.obstacle = 1.0; + voxel.velocity = float4(input.velocity, 1); + return voxel; + } +} diff --git a/gamedata/shaders/d3d11/fluid_obst_static_oobb.ps.hlsl b/gamedata/shaders/d3d11/fluid_obst_static_oobb.ps.hlsl new file mode 100644 index 0000000..92e7e90 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_obst_static_oobb.ps.hlsl @@ -0,0 +1,37 @@ +#include "fluid_common.hlsli" + +struct PSDrawBoxOut +{ + float4 obstacle : SV_TARGET0; + float4 velocity : SV_TARGET1; +}; + +bool PointIsInsideBox(float3 p, float3 LBUcorner, float3 RTDcorner) +{ + return ((p.x > LBUcorner.x) && (p.x < RTDcorner.x) && + (p.y > LBUcorner.y) && (p.y < RTDcorner.y) && + (p.z > LBUcorner.z) && (p.z < RTDcorner.z)); +} + +// Pixel +PSDrawBoxOut main(p_fluidsim_clip input) +{ + PSDrawBoxOut voxel; + + // cells completely inside box = 0.5 + if ((input.clip0.x > BOX_EXPANSION) && (input.clip1.x > BOX_EXPANSION) && + (input.clip0.y > BOX_EXPANSION) && (input.clip1.y > BOX_EXPANSION) && + (input.clip0.z > BOX_EXPANSION) && (input.clip1.z > BOX_EXPANSION)) + { + voxel.obstacle = 0.5; + voxel.velocity = 0; + return voxel; + } + else // cells in box boundary = 1.0 + { + voxel.obstacle = 1.0; + // voxel.velocity = float4(obstVelocity.xyz,1); + voxel.velocity = 0; + return voxel; + } +} diff --git a/gamedata/shaders/d3d11/fluid_obststaticbox.ps.hlsl b/gamedata/shaders/d3d11/fluid_obststaticbox.ps.hlsl new file mode 100644 index 0000000..6650a08 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_obststaticbox.ps.hlsl @@ -0,0 +1,51 @@ +#include "fluid_common.hlsli" + +cbuffer BoxBounds +{ + // float3 boxLBDcorner; + // float3 boxRTUcorner; + float4 boxLBDcorner; + float4 boxRTUcorner; +} + +struct PSDrawBoxOut +{ + float4 obstacle : SV_TARGET0; + float4 velocity : SV_TARGET1; +}; + +bool PointIsInsideBox(float3 p, float3 LBUcorner, float3 RTDcorner) +{ + return ((p.x > LBUcorner.x) && (p.x < RTDcorner.x) && + (p.y > LBUcorner.y) && (p.y < RTDcorner.y) && + (p.z > LBUcorner.z) && (p.z < RTDcorner.z)); +} + +// Pixel +PSDrawBoxOut main(p_fluidsim input) +{ + PSDrawBoxOut voxel; + float3 innerboxLBDcorner = boxLBDcorner + 1; + float3 innerboxRTUcorner = boxRTUcorner - 1; + // cells completely inside box = 1.0 + if (PointIsInsideBox(input.cell0, innerboxLBDcorner, innerboxRTUcorner)) + { + voxel.obstacle = 0.5; + voxel.velocity = 0; + return voxel; + } + + // cells in box boundary = 0.5 + if (PointIsInsideBox(input.cell0, boxLBDcorner, boxRTUcorner)) + { + voxel.obstacle = 1.0; + // voxel.velocity = float4(obstVelocity.xyz,1); + voxel.velocity = 0; + return voxel; + } + + // Kill texel to preserve other obstacles + clip(-1); + + return (PSDrawBoxOut)0; +} diff --git a/gamedata/shaders/d3d11/fluid_project.ps.hlsl b/gamedata/shaders/d3d11/fluid_project.ps.hlsl new file mode 100644 index 0000000..df213b4 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_project.ps.hlsl @@ -0,0 +1,71 @@ +#include "fluid_common.hlsli" + +// Pixel +float3 main(p_fluidsim input) : SV_Target +{ + if (IsBoundaryCell(input.texcoords.xyz)) + { + return GetObstVelocity(input.texcoords.xyz).xyz; + } + + float pCenter = Texture_pressure.SampleLevel(samPointClamp, input.texcoords, 0).x; + float pL = Texture_pressure.SampleLevel(samPointClamp, LEFTCELL, 0).x; + float pR = Texture_pressure.SampleLevel(samPointClamp, RIGHTCELL, 0).x; + float pB = Texture_pressure.SampleLevel(samPointClamp, BOTTOMCELL, 0).x; + float pT = Texture_pressure.SampleLevel(samPointClamp, TOPCELL, 0).x; + float pD = Texture_pressure.SampleLevel(samPointClamp, DOWNCELL, 0).x; + float pU = Texture_pressure.SampleLevel(samPointClamp, UPCELL, 0).x; + + float3 obstV = float3(0, 0, 0); + float3 vMask = float3(1, 1, 1); + float3 vLeft = GetObstVelocity(LEFTCELL).xyz; + float3 vRight = GetObstVelocity(RIGHTCELL).xyz; + float3 vBottom = GetObstVelocity(BOTTOMCELL).xyz; + float3 vTop = GetObstVelocity(TOPCELL).xyz; + float3 vDown = GetObstVelocity(DOWNCELL).xyz; + float3 vUp = GetObstVelocity(UPCELL).xyz; + float3 v; + + if (IsBoundaryCell(LEFTCELL)) + { + pL = pCenter; + obstV.x = vLeft.x; + vMask.x = 0; + } + if (IsBoundaryCell(RIGHTCELL)) + { + pR = pCenter; + obstV.x = vRight.x; + vMask.x = 0; + } + if (IsBoundaryCell(BOTTOMCELL)) + { + pB = pCenter; + obstV.y = vBottom.y; + vMask.y = 0; + } + if (IsBoundaryCell(TOPCELL)) + { + pT = pCenter; + obstV.y = vTop.y; + vMask.y = 0; + } + if (IsBoundaryCell(DOWNCELL)) + { + pD = pCenter; + obstV.z = vDown.z; + vMask.z = 0; + } + if (IsBoundaryCell(UPCELL)) + { + pU = pCenter; + obstV.z = vUp.z; + vMask.z = 0; + } + + v = (Texture_velocity1.SampleLevel(samPointClamp, input.texcoords, 0).xyz - + (0.5 * modulate * float3(pR - pL, pT - pB, pU - pD))); + + return vMask * v + obstV; +} + diff --git a/gamedata/shaders/d3d11/fluid_raycast_quad.ps.hlsl b/gamedata/shaders/d3d11/fluid_raycast_quad.ps.hlsl new file mode 100644 index 0000000..7142c8d --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_raycast_quad.ps.hlsl @@ -0,0 +1,9 @@ +#include "fluid_common_render.hlsli" + +// Pixel +// TODO: DX10: replace WorldViewProjection with m_WVP +float4 main(PS_INPUT_RAYCAST input) : SV_Target +{ + return Raycast(input); +} + diff --git a/gamedata/shaders/d3d11/fluid_raycast_quad.vs.hlsl b/gamedata/shaders/d3d11/fluid_raycast_quad.vs.hlsl new file mode 100644 index 0000000..3e4355c --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_raycast_quad.vs.hlsl @@ -0,0 +1,13 @@ +#include "fluid_common_render.hlsli" + +// Vertex +// TODO: DX10: replace WorldViewProjection with m_WVP +PS_INPUT_RAYCAST main(VS_INPUT input) +{ + PS_INPUT_RAYCAST output = (PS_INPUT_RAYCAST)0; + output.pos = float4(input.pos, 1); + // output.posInGrid = mul( float4( input.pos.xy*ZNear, 0, ZNear ), InvWorldViewProjection ); + output.posInGrid = mul(InvWorldViewProjection, float4(input.pos.xy * ZNear, 0, ZNear)).xyz; + return output; +} + diff --git a/gamedata/shaders/d3d11/fluid_raycast_quad_fire.ps.hlsl b/gamedata/shaders/d3d11/fluid_raycast_quad_fire.ps.hlsl new file mode 100644 index 0000000..30200ee --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_raycast_quad_fire.ps.hlsl @@ -0,0 +1,4 @@ +#define RENDER_FIRE + +#include "fluid_raycast_quad.ps.hlsl" +// main diff --git a/gamedata/shaders/d3d11/fluid_raycastcopy_quad.ps.hlsl b/gamedata/shaders/d3d11/fluid_raycastcopy_quad.ps.hlsl new file mode 100644 index 0000000..b1d4d49 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_raycastcopy_quad.ps.hlsl @@ -0,0 +1,32 @@ +#include "fluid_common_render.hlsli" + +// Pixel +// TODO: DX10: replace WorldViewProjection with m_WVP +float4 main(PS_INPUT_RAYCAST input) : SV_Target +{ + float edge = edgeTex.Sample(samLinearClamp, float2(input.pos.x / RTWidth, input.pos.y / RTHeight)).r; + +#ifdef RENDER_FIRE + float4 tex = rayCastTex.Sample(samLinearClamp, float2(input.pos.x / RTWidth, input.pos.y / RTHeight)); + if (edge > 0 && tex.a > 0) + { + return Raycast(input); + } + else + { + return tex; + } +#else // RENDER_FIRE + float4 tex = rayCastTex.Sample(samLinearClamp, float2(input.pos.x / RTWidth, input.pos.y / RTHeight)); + if (edge > 0 && tex.a > 0) + { + return Raycast(input) * DiffuseLight; + } + // return float4(1,0,0,1); + else + { + return tex * DiffuseLight; + } +#endif // RENDER_FIRE +} + diff --git a/gamedata/shaders/d3d11/fluid_raycastcopy_quad_fire.ps.hlsl b/gamedata/shaders/d3d11/fluid_raycastcopy_quad_fire.ps.hlsl new file mode 100644 index 0000000..9c404bd --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_raycastcopy_quad_fire.ps.hlsl @@ -0,0 +1,4 @@ +#define RENDER_FIRE + +#include "fluid_raycastcopy_quad.ps.hlsl" +// main diff --git a/gamedata/shaders/d3d11/fluid_raydata_back.ps.hlsl b/gamedata/shaders/d3d11/fluid_raydata_back.ps.hlsl new file mode 100644 index 0000000..b0c8471 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_raydata_back.ps.hlsl @@ -0,0 +1,13 @@ +#include "fluid_common_render.hlsli" + +void main(PS_INPUT_RAYDATA_BACK input, out float4 output : SV_Target) +{ + float sceneZ = sceneDepthTex.SampleLevel(samLinearClamp, float2(input.pos.x / RTWidth, input.pos.y / RTHeight), 0).x; + sceneZ = DepthUnpack.x * rcp(sceneZ - DepthUnpack.y); + + // This value will only remain if no fragments get blended on top in the next pass (front-faces) + // which would happen if the front faces of the box get clipped by the near plane of the camera + + output.xyz = NEARCLIPPED_PIXEL_RAYPOS; + output.w = min(input.depth, sceneZ); +} \ No newline at end of file diff --git a/gamedata/shaders/d3d11/fluid_raydata_back.vs.hlsl b/gamedata/shaders/d3d11/fluid_raydata_back.vs.hlsl new file mode 100644 index 0000000..137d59e --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_raydata_back.vs.hlsl @@ -0,0 +1,12 @@ +#include "fluid_common_render.hlsli" + +// Vertex +// TODO: DX10: replace WorldViewProjection with m_WVP +PS_INPUT_RAYDATA_BACK main(VS_INPUT input) +{ + PS_INPUT_RAYDATA_BACK output = (PS_INPUT_RAYDATA_BACK)0; + // output.pos = mul(float4(input.pos,1), WorldViewProjection); + output.pos = mul(WorldViewProjection, float4(input.pos, 1)); + output.depth = output.pos.w; + return output; +} diff --git a/gamedata/shaders/d3d11/fluid_raydata_front.ps.hlsl b/gamedata/shaders/d3d11/fluid_raydata_front.ps.hlsl new file mode 100644 index 0000000..d21be5e --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_raydata_front.ps.hlsl @@ -0,0 +1,25 @@ +#include "fluid_common_render.hlsli" + +// Pixel +// TODO: DX10: replace WorldViewProjection with m_WVP +float4 main(PS_INPUT_RAYDATA_FRONT input) : SV_Target +{ + float4 output; + // float sceneZ = sceneDepthTex.SampleLevel( samLinearClamp, float2(input.pos.x/RTWidth, input.pos.y/RTHeight),0).r; + float sceneZ = sceneDepthTex.SampleLevel(samLinearClamp, float2(input.pos.x / RTWidth, input.pos.y / RTHeight), 0).z; + if (sceneZ < Z_EPSILON) + { + sceneZ = Z_MAX; + } + + if (sceneZ < input.depth) + { + // If the scene occludes intersection point we want to kill the pixel early in PS + return OCCLUDED_PIXEL_RAYVALUE; + } + // We negate input.posInGrid because we use subtractive blending in front faces + // Note that we set xyz to 0 when rendering back faces + output.xyz = -input.posInGrid; + output.w = input.depth; + return output; +} diff --git a/gamedata/shaders/d3d11/fluid_raydata_front.vs.hlsl b/gamedata/shaders/d3d11/fluid_raydata_front.vs.hlsl new file mode 100644 index 0000000..dbde7a4 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_raydata_front.vs.hlsl @@ -0,0 +1,13 @@ +#include "fluid_common_render.hlsli" + +// Vertex +// TODO: DX10: replace WorldViewProjection with m_WVP +PS_INPUT_RAYDATA_FRONT main(VS_INPUT input) +{ + PS_INPUT_RAYDATA_FRONT output = (PS_INPUT_RAYDATA_FRONT)0; + // output.pos = mul(float4(input.pos,1), WorldViewProjection); + output.pos = mul(WorldViewProjection, float4(input.pos, 1)); + output.posInGrid = input.pos; + output.depth = output.pos.w; + return output; +} diff --git a/gamedata/shaders/d3d11/fluid_raydatacopy_quad.ps.hlsl b/gamedata/shaders/d3d11/fluid_raydatacopy_quad.ps.hlsl new file mode 100644 index 0000000..410eebe --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_raydatacopy_quad.ps.hlsl @@ -0,0 +1,8 @@ +#include "fluid_common_render.hlsli" + +// Pixel +// TODO: DX10: replace WorldViewProjection with m_WVP +float4 main(PS_INPUT_RAYCAST input) : SV_Target +{ + return rayDataTex.Sample(samPointClamp, float2(input.pos.x / RTWidth, input.pos.y / RTHeight)); +} diff --git a/gamedata/shaders/d3d11/fluid_vorticity.ps.hlsl b/gamedata/shaders/d3d11/fluid_vorticity.ps.hlsl new file mode 100644 index 0000000..3659cf5 --- /dev/null +++ b/gamedata/shaders/d3d11/fluid_vorticity.ps.hlsl @@ -0,0 +1,19 @@ +#include "fluid_common.hlsli" + +// Pixel +float3 main(p_fluidsim input) : SV_Target +{ + float4 L = Texture_velocity1.SampleLevel(samPointClamp, LEFTCELL, 0); + float4 R = Texture_velocity1.SampleLevel(samPointClamp, RIGHTCELL, 0); + float4 B = Texture_velocity1.SampleLevel(samPointClamp, BOTTOMCELL, 0); + float4 T = Texture_velocity1.SampleLevel(samPointClamp, TOPCELL, 0); + float4 D = Texture_velocity1.SampleLevel(samPointClamp, DOWNCELL, 0); + float4 U = Texture_velocity1.SampleLevel(samPointClamp, UPCELL, 0); + + float3 vorticity = 0.5 * float3(((T.z - B.z) - (U.y - D.y)), + ((U.x - D.x) - (R.z - L.z)), + ((R.y - L.y) - (T.x - B.x))); + + return vorticity; +} + diff --git a/gamedata/shaders/d3d11/font2.ps.hlsl b/gamedata/shaders/d3d11/font2.ps.hlsl new file mode 100644 index 0000000..afd11bd --- /dev/null +++ b/gamedata/shaders/d3d11/font2.ps.hlsl @@ -0,0 +1,29 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base +}; + +// Pixel +float4 main(p_TL I) : SV_Target +{ + float4 r = s_base.Sample(smp_base, I.Tex0); + + r.w = 1 - r.w; + + return r; +} + +/* +float4 main( v2p I ) : SV_Target +{ +// float4 r = tex2D (s_base,I.tc0); + float4 r = s_base.Sample( smp_base, I.tc0 ); +// r.x = 1 - r.x; +// r.y = 1 - r.y; +// r.z = 1 - r.z; + r.w = 1 - r.w; + return r; +} +*/ diff --git a/gamedata/shaders/d3d11/forward_base.ps.hlsl b/gamedata/shaders/d3d11/forward_base.ps.hlsl new file mode 100644 index 0000000..858bb07 --- /dev/null +++ b/gamedata/shaders/d3d11/forward_base.ps.hlsl @@ -0,0 +1,99 @@ +#include "common.hlsli" +#include "sload.hlsli" + +#ifdef USE_OFFSCREEN_REFLECTIONS +#define USE_VIEW_REFLECTIONS +#define USE_OLD_VIEW_REFLECTIONS +#endif + +#include "metalic_roughness_light.hlsli" +#include "metalic_roughness_ambient.hlsli" + +void main(p_bumped_new I, out f_forward O) +{ + IXrayMaterial M; + M.Depth = I.position.z; + + M.Sun = I.tcdh.w; + M.Hemi = I.tcdh.z; + M.Point = I.position.xyz; + + SloadNew(I, M); + +#if defined(USE_LENGTH_BUFFER) && defined(USE_AREF) + clip(M.Color.w - def_aref); + #ifdef USE_DXT1_HACK + M.Color.xyz *= rcp(max(0.0001f, M.Color.w)); + #endif +#endif + +#if defined(USE_BUMP) || defined(USE_TDETAIL_BUMP) + M.Normal = mul(float3x3(I.M1, I.M2, I.M3), M.Normal); +#else + M.Normal = float3(I.M1.z, I.M2.z, I.M3.z); +#endif + + M.Normal = normalize(M.Normal); + +#ifdef USE_LM_HEMI + float4 hs = s_hemi.Sample(smp_rtlinear, I.tcdh.zw); + + M.Sun = get_sun(hs); + M.Hemi = get_hemi(hs); +#endif + + M.Sun = saturate(M.Sun * 2.0f); + M.Color.xyz = PushGamma(saturate(M.Color.xyz)); + +#ifndef USE_PBR + float3 F0 = 0.0f; +#else + float3 F0 = 0.04f; +#endif + +#ifdef USE_LEGACY_LIGHT + #ifndef USE_PBR + M.Metalness = L_material.w; + #else + M.Color.xyz *= M.AO; + M.AO = 1.0f; + float Specular = M.Metalness * dot(M.Color.xyz, LUMINANCE_VECTOR); + M.Color.xyz = lerp(M.Color.xyz, 0.04f, M.Metalness); + M.Metalness = 0.5f - M.Roughness * M.Roughness * 0.5f; + M.Roughness = Specular; + #endif +#endif + + float4 LightColor = float4(L_sun_color.xyz, 0.5f); + + float ViewLength = length(M.Point); + float3 View = M.Point.xyz * rcp(ViewLength); + + float3 Light = M.Sun * DirectLight(LightColor, mul((float3x3)m_V, L_sun_dir_w.xyz), M.Normal, View, M.Color.xyz, M.Metalness, M.Roughness, F0); + float3 Ambient = PushGamma(M.AO) * AmbientLighting(View, M.Normal, M.Color.xyz, M.Metalness, M.Roughness, M.Hemi, F0); + +#ifdef USE_LENGTH_BUFFER + #ifdef USE_LM_HEMI + float3 Lmap = s_lmap.Sample(smp_rtlinear, I.tcdh.zw).xyz; + #else + float3 Lmap = I.lmap; + #endif + + Light += DirectLight(float4(Lmap.xyz * 2.0f, 0.5f), View, M.Normal, View, M.Color.xyz, M.Metalness, M.Roughness, F0); +#endif + + O.Color.xyz = Ambient + Light.xyz; + O.Color.w = M.Color.w; + + float Fog = PushGamma(saturate(ViewLength * fog_params.w + fog_params.x)); + O.Color = lerp(O.Color, PushGamma(fog_color), Fog); + + O.Velocity = I.hpos_curr.xy / I.hpos_curr.w - I.hpos_old.xy / I.hpos_old.w; + O.Reactive = O.Color.w * 0.9f; + +#ifdef USE_LENGTH_BUFFER + O.Color.w = ViewLength; + O.Color.xyz = saturate(O.Color.xyz * rcp(1.0f + O.Color.xyz)); +#endif +} + diff --git a/gamedata/shaders/d3d11/friendly_indicator.lua b/gamedata/shaders/d3d11/friendly_indicator.lua new file mode 100644 index 0000000..78ac623 --- /dev/null +++ b/gamedata/shaders/d3d11/friendly_indicator.lua @@ -0,0 +1,12 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_default", "stub_default") + + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + + -- Decouple sampler and texture + -- shader:sampler ("s_base") : texture(t_base) : clamp() : f_linear () + -- TODO: DX10: move stub_default to smp_rtlinear + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/fxaa.hlsli b/gamedata/shaders/d3d11/fxaa.hlsli new file mode 100644 index 0000000..31a63ef --- /dev/null +++ b/gamedata/shaders/d3d11/fxaa.hlsli @@ -0,0 +1,1318 @@ +#include "common.hlsli" + +uniform float4 screen_res; + +#ifdef SM_5 + #define FXAA_HLSL_5 1 +#else + #define FXAA_HLSL_4 1 +#endif + +#define FXAA_PC 1 +#define FXAA_QUALITY__PRESET 39 +#define FXAA_GREEN_AS_LUMA 1 + +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_PC_CONSOLE + // + // The console algorithm for PC is included + // for developers targeting really low spec machines. + // Likely better to just run FXAA_PC, and use a really low preset. + // + #define FXAA_PC_CONSOLE 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GLSL_120 + #define FXAA_GLSL_120 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GLSL_130 + #define FXAA_GLSL_130 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_3 + #define FXAA_HLSL_3 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_4 + #define FXAA_HLSL_4 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_5 + #define FXAA_HLSL_5 0 +#endif +/*==========================================================================*/ +#ifndef FXAA_GREEN_AS_LUMA + // + // For those using non-linear color, + // and either not able to get luma in alpha, or not wanting to, + // this enables FXAA to run using green as a proxy for luma. + // So with this enabled, no need to pack luma in alpha. + // + // This will turn off AA on anything which lacks some amount of green. + // Pure red and blue or combination of only R and B, will get no AA. + // + // Might want to lower the settings for both, + // fxaaConsoleEdgeThresholdMin + // fxaaQualityEdgeThresholdMin + // In order to insure AA does not get turned off on colors + // which contain a minor amount of green. + // + // 1 = On. + // 0 = Off. + // + #define FXAA_GREEN_AS_LUMA 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_EARLY_EXIT + // + // Controls algorithm's early exit path. + // On PS3 turning this ON adds 2 cycles to the shader. + // On 360 turning this OFF adds 10ths of a millisecond to the shader. + // Turning this off on console will result in a more blurry image. + // So this defaults to on. + // + // 1 = On. + // 0 = Off. + // + #define FXAA_EARLY_EXIT 1 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_DISCARD + // + // Only valid for PC OpenGL currently. + // Probably will not work when FXAA_GREEN_AS_LUMA = 1. + // + // 1 = Use discard on pixels which don't need AA. + // For APIs which enable concurrent TEX+ROP from same surface. + // 0 = Return unchanged color on pixels which don't need AA. + // + #define FXAA_DISCARD 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_FAST_PIXEL_OFFSET + // + // Used for GLSL 120 only. + // + // 1 = GL API supports fast pixel offsets + // 0 = do not use fast pixel offsets + // + #ifdef GL_EXT_gpu_shader4 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifdef GL_NV_gpu_shader5 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifdef GL_ARB_gpu_shader5 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifndef FXAA_FAST_PIXEL_OFFSET + #define FXAA_FAST_PIXEL_OFFSET 0 + #endif +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GATHER4_ALPHA + // + // 1 = API supports gather4 on alpha channel. + // 0 = API does not support gather4 on alpha channel. + // + #if (FXAA_HLSL_5 == 1) + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifdef GL_ARB_gpu_shader5 + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifdef GL_NV_gpu_shader5 + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifndef FXAA_GATHER4_ALPHA + #define FXAA_GATHER4_ALPHA 0 + #endif +#endif + +/*============================================================================ + FXAA QUALITY - TUNING KNOBS +------------------------------------------------------------------------------ +NOTE the other tuning knobs are now in the shader function inputs! +============================================================================*/ +#ifndef FXAA_QUALITY__PRESET + // + // Choose the quality preset. + // This needs to be compiled into the shader as it effects code. + // Best option to include multiple presets is to + // in each shader define the preset, then include this file. + // + // OPTIONS + // ----------------------------------------------------------------------- + // 10 to 15 - default medium dither (10=fastest, 15=highest quality) + // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) + // 39 - no dither, very expensive + // + // NOTES + // ----------------------------------------------------------------------- + // 12 = slightly faster then FXAA 3.9 and higher edge quality (default) + // 13 = about same speed as FXAA 3.9 and better than 12 + // 23 = closest to FXAA 3.9 visually and performance wise + // _ = the lowest digit is directly related to performance + // _ = the highest digit is directly related to style + // + #define FXAA_QUALITY__PRESET 12 +#endif + +/*============================================================================ + + FXAA QUALITY - PRESETS + +============================================================================*/ + +/*============================================================================ + FXAA QUALITY - MEDIUM DITHER PRESETS +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 10) + #define FXAA_QUALITY__PS 3 + #define FXAA_QUALITY__P0 1.5 + #define FXAA_QUALITY__P1 3.0 + #define FXAA_QUALITY__P2 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 11) + #define FXAA_QUALITY__PS 4 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 3.0 + #define FXAA_QUALITY__P3 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 12) + #define FXAA_QUALITY__PS 5 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 4.0 + #define FXAA_QUALITY__P4 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 13) + #define FXAA_QUALITY__PS 6 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 4.0 + #define FXAA_QUALITY__P5 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 14) + #define FXAA_QUALITY__PS 7 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 4.0 + #define FXAA_QUALITY__P6 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 15) + #define FXAA_QUALITY__PS 8 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 4.0 + #define FXAA_QUALITY__P7 12.0 +#endif + +/*============================================================================ + FXAA QUALITY - LOW DITHER PRESETS +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 20) + #define FXAA_QUALITY__PS 3 + #define FXAA_QUALITY__P0 1.5 + #define FXAA_QUALITY__P1 2.0 + #define FXAA_QUALITY__P2 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 21) + #define FXAA_QUALITY__PS 4 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 22) + #define FXAA_QUALITY__PS 5 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 23) + #define FXAA_QUALITY__PS 6 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 24) + #define FXAA_QUALITY__PS 7 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 3.0 + #define FXAA_QUALITY__P6 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 25) + #define FXAA_QUALITY__PS 8 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 4.0 + #define FXAA_QUALITY__P7 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 26) + #define FXAA_QUALITY__PS 9 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 4.0 + #define FXAA_QUALITY__P8 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 27) + #define FXAA_QUALITY__PS 10 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 4.0 + #define FXAA_QUALITY__P9 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 28) + #define FXAA_QUALITY__PS 11 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 4.0 + #define FXAA_QUALITY__P10 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 29) + #define FXAA_QUALITY__PS 12 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 2.0 + #define FXAA_QUALITY__P10 4.0 + #define FXAA_QUALITY__P11 8.0 +#endif + +/*============================================================================ + FXAA QUALITY - EXTREME QUALITY +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 39) + #define FXAA_QUALITY__PS 12 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.0 + #define FXAA_QUALITY__P2 1.0 + #define FXAA_QUALITY__P3 1.0 + #define FXAA_QUALITY__P4 1.0 + #define FXAA_QUALITY__P5 1.5 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 2.0 + #define FXAA_QUALITY__P10 4.0 + #define FXAA_QUALITY__P11 8.0 +#endif + +/*============================================================================ + + API PORTING + +============================================================================*/ +#if (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1) + #define FxaaBool bool + #define FxaaDiscard discard + #define FxaaFloat float + #define FxaaFloat2 vec2 + #define FxaaFloat3 vec3 + #define FxaaFloat4 vec4 + #define FxaaInt2 ivec2 + #define FxaaSat(x) clamp(x, 0.0, 1.0) + #define FxaaTex sampler2D +#else + #define FxaaBool bool + #define FxaaDiscard clip(-1) + #define FxaaFloat float + #define FxaaFloat2 float2 + #define FxaaFloat3 float3 + #define FxaaFloat4 float4 + #define FxaaSat(x) saturate(x) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_GLSL_120 == 1) + // Requires, + // #version 120 + // And at least, + // #extension GL_EXT_gpu_shader4 : enable + // (or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9) + #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) + #if (FXAA_FAST_PIXEL_OFFSET == 1) + #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o) + #else + #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) + #endif + #if (FXAA_GATHER4_ALPHA == 1) + // use #extension GL_ARB_gpu_shader5 : enable + #define FxaaTexAlpha4(t, p) textureGather(t, p, 3) + #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3) + #define FxaaTexGreen4(t, p) textureGather(t, p, 1) + #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1) + #endif +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_GLSL_130 == 1) + // Requires "#version 130" or better + #define FxaaTexTop(t, p) textureLod(t, p, 0.0) + #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o) + #if (FXAA_GATHER4_ALPHA == 1) + // use #extension GL_ARB_gpu_shader5 : enable + #define FxaaTexAlpha4(t, p) textureGather(t, p, 3) + #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3) + #define FxaaTexGreen4(t, p) textureGather(t, p, 1) + #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1) + #endif +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_3 == 1) || (FXAA_360 == 1) || (FXAA_PS3 == 1) + #define FxaaInt2 float2 + #define FxaaTex sampler2D + #define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0)) + #define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0)) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_4 == 1) + #define FxaaInt2 int2 +struct FxaaTex +{ + SamplerState smpl; + Texture2D tex; +}; + #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0) + #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_5 == 1) + #define FxaaInt2 int2 +struct FxaaTex +{ + SamplerState smpl; + Texture2D tex; +}; + #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0) + #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o) + #define FxaaTexAlpha4(t, p) t.tex.GatherAlpha(t.smpl, p) + #define FxaaTexOffAlpha4(t, p, o) t.tex.GatherAlpha(t.smpl, p, o) + #define FxaaTexGreen4(t, p) t.tex.GatherGreen(t.smpl, p) + #define FxaaTexOffGreen4(t, p, o) t.tex.GatherGreen(t.smpl, p, o) +#endif + +/*============================================================================ + GREEN AS LUMA OPTION SUPPORT FUNCTION +============================================================================*/ +#if (FXAA_GREEN_AS_LUMA == 0) +FxaaFloat FxaaLuma(FxaaFloat4 rgba) +{ + return rgba.w; +} +#else +FxaaFloat FxaaLuma(FxaaFloat4 rgba) +{ + return rgba.y; +} +#endif + +/*============================================================================ + + FXAA3 QUALITY - PC + +============================================================================*/ +#if (FXAA_PC == 1) +/*--------------------------------------------------------------------------*/ +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Used only for FXAA Console, and not used on the 360 version. + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy__} = upper left of pixel + // {__zw} = lower right of pixel + FxaaFloat4 fxaaConsolePosPos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on the optimized 360 version of FXAA Console. + // For everything but 360, just use the same input here as for "tex". + // For 360, same texture, just alias with a 2nd sampler. + // This sampler needs to have an exponent bias of -1. + FxaaTex fxaaConsole360TexExpBiasNegOne, + // + // Only used on the optimized 360 version of FXAA Console. + // For everything but 360, just use the same input here as for "tex". + // For 360, same texture, just alias with a 3nd sampler. + // This sampler needs to have an exponent bias of -2. + FxaaTex fxaaConsole360TexExpBiasNegTwo, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Console. + // This must be from a constant/uniform. + // This effects sub-pixel AA quality and inversely sharpness. + // Where N ranges between, + // N = 0.50 (default) + // N = 0.33 (sharper) + // {x___} = -N/screenWidthInPixels + // {_y__} = -N/screenHeightInPixels + // {__z_} = N/screenWidthInPixels + // {___w} = N/screenHeightInPixels + FxaaFloat4 fxaaConsoleRcpFrameOpt, + // + // Only used on FXAA Console. + // Not used on 360, but used on PS3 and PC. + // This must be from a constant/uniform. + // {x___} = -2.0/screenWidthInPixels + // {_y__} = -2.0/screenHeightInPixels + // {__z_} = 2.0/screenWidthInPixels + // {___w} = 2.0/screenHeightInPixels + FxaaFloat4 fxaaConsoleRcpFrameOpt2, + // + // Only used on FXAA Console. + // Only used on 360 in place of fxaaConsoleRcpFrameOpt2. + // This must be from a constant/uniform. + // {x___} = 8.0/screenWidthInPixels + // {_y__} = 8.0/screenHeightInPixels + // {__z_} = -4.0/screenWidthInPixels + // {___w} = -4.0/screenHeightInPixels + FxaaFloat4 fxaaConsole360RcpFrameOpt2, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_SHARPNESS define. + // It is here now to allow easier tuning. + // This does not effect PS3, as this needs to be compiled in. + // Use FXAA_CONSOLE__PS3_EDGE_SHARPNESS for PS3. + // Due to the PS3 being ALU bound, + // there are only three safe values here: 2 and 4 and 8. + // These options use the shaders ability to a free *|/ by 2|4|8. + // For all other platforms can be a non-power of two. + // 8.0 is sharper (default!!!) + // 4.0 is softer + // 2.0 is really soft (good only for vector graphics inputs) + FxaaFloat fxaaConsoleEdgeSharpness, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // This does not effect PS3, as this needs to be compiled in. + // Use FXAA_CONSOLE__PS3_EDGE_THRESHOLD for PS3. + // Due to the PS3 being ALU bound, + // there are only two safe values here: 1/4 and 1/8. + // These options use the shaders ability to a free *|/ by 2|4|8. + // The console setting has a different mapping than the quality setting. + // Other platforms can use other values. + // 0.125 leaves less aliasing, but is softer (default!!!) + // 0.25 leaves more aliasing, and is sharper + FxaaFloat fxaaConsoleEdgeThreshold, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // The console setting has a different mapping than the quality setting. + // This only applies when FXAA_EARLY_EXIT is 1. + // This does not apply to PS3, + // PS3 was simplified to avoid more shader instructions. + // 0.06 - faster but more aliasing in darks + // 0.05 - default + // 0.04 - slower and less aliasing in darks + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaConsoleEdgeThresholdMin, + // + // Extra constants for 360 FXAA Console only. + // Use zeros or anything else for other platforms. + // These must be in physical constant registers and NOT immedates. + // Immedates will result in compiler un-optimizing. + // {xyzw} = float4(1.0, -1.0, 0.25, -0.25) + FxaaFloat4 fxaaConsole360ConstDir) +{ + /*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + #if (FXAA_GATHER4_ALPHA == 1) + #if (FXAA_DISCARD == 0) + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #if (FXAA_GREEN_AS_LUMA == 0) + #define lumaM rgbyM.w + #else + #define lumaM rgbyM.y + #endif + #endif + #if (FXAA_GREEN_AS_LUMA == 0) + FxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM); + FxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1)); + #else + FxaaFloat4 luma4A = FxaaTexGreen4(tex, posM); + FxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1)); + #endif + #if (FXAA_DISCARD == 1) + #define lumaM luma4A.w + #endif + #define lumaE luma4A.z + #define lumaS luma4A.x + #define lumaSE luma4A.y + #define lumaNW luma4B.w + #define lumaN luma4B.z + #define lumaW luma4B.x + #else + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #if (FXAA_GREEN_AS_LUMA == 0) + #define lumaM rgbyM.w + #else + #define lumaM rgbyM.y + #endif + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(0, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); + #endif + /*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; + /*--------------------------------------------------------------------------*/ + if (earlyExit) + #if (FXAA_DISCARD == 1) + FxaaDiscard; + #else + return rgbyM; + #endif + /*--------------------------------------------------------------------------*/ + #if (FXAA_GATHER4_ALPHA == 0) + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); + #else + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); + #endif + /*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0 / range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; + /*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; + /*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; + /*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; + /*--------------------------------------------------------------------------*/ + if (!horzSpan) + { + lumaN = lumaW; + } + if (!horzSpan) + { + lumaS = lumaE; + } + if (horzSpan) + { + lengthSign = fxaaQualityRcpFrame.y; + } + FxaaFloat subpixB = (subpixA * (1.0 / 12.0)) - lumaM; + /*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if (pairN) + { + lengthSign = -lengthSign; + } + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); + /*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = (horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if (!horzSpan) + { + posB.x += lengthSign * 0.5; + } + if (horzSpan) + { + posB.y += lengthSign * 0.5; + } + /*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY__P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY__P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY__P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY__P0; + FxaaFloat subpixD = ((-2.0) * subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); + /*--------------------------------------------------------------------------*/ + if (!pairN) + { + lumaNN = lumaSS; + } + FxaaFloat gradientScaled = gradient * 1.0 / 4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; + /*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P1; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P1; + } + FxaaBool doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P1; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P1; + } + /*--------------------------------------------------------------------------*/ + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P2; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P2; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P2; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P2; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 3) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P3; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P3; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P3; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P3; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 4) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P4; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P4; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P4; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P4; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 5) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P5; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P5; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P5; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P5; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 6) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P6; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P6; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P6; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P6; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 7) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P7; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P7; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P7; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P7; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 8) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P8; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P8; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P8; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P8; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 9) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P9; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P9; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P9; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P9; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 10) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P10; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P10; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P10; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P10; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 11) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P11; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P11; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P11; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P11; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 12) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P12; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P12; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P12; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P12; + } + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + /*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if (!horzSpan) + { + dstN = posM.y - posN.y; + } + if (!horzSpan) + { + dstP = posP.y - posM.y; + } + /*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0 / spanLength; + /*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; + /*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if (!horzSpan) + { + posM.x += pixelOffsetSubpix * lengthSign; + } + if (horzSpan) + { + posM.y += pixelOffsetSubpix * lengthSign; + } + #if (FXAA_DISCARD == 1) + return FxaaTexTop(tex, posM); + #else + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); + #endif +} +/*==========================================================================*/ +#endif diff --git a/gamedata/shaders/d3d11/fxaa_main.ps.hlsl b/gamedata/shaders/d3d11/fxaa_main.ps.hlsl new file mode 100644 index 0000000..a090da1 --- /dev/null +++ b/gamedata/shaders/d3d11/fxaa_main.ps.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" +#include "fxaa.hlsli" + +uniform float4 scaled_screen_res; + +float4 main(v2p_aa_AA I) : SV_Target +{ + float2 rcpFrame = scaled_screen_res.zw; + FxaaTex tex = {smp_rtlinear, s_image}; + + return FxaaPixelShader(I.Tex0.xy, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsolePosPos, + tex, // FxaaTex tex, + tex, // FxaaTex fxaaConsole360TexExpBiasNegOne, + tex, // FxaaTex fxaaConsole360TexExpBiasNegTwo, + rcpFrame, // FxaaFloat2 fxaaQualityRcpFrame, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsoleRcpFrameOpt, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsoleRcpFrameOpt2, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsole360RcpFrameOpt2, + 0.35f, // FxaaFloat fxaaQualitySubpix, + 0.166f, // FxaaFloat fxaaQualityEdgeThreshold, + 0.0f, // FxaaFloat fxaaQualityEdgeThresholdMin, + 0.0f, // FxaaFloat fxaaConsoleEdgeSharpness, + 0.0f, // FxaaFloat fxaaConsoleEdgeThreshold, + 0.0f, // FxaaFloat fxaaConsoleEdgeThresholdMin, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f) // FxaaFloat fxaaConsole360ConstDir, + ); +} diff --git a/gamedata/shaders/d3d11/gamma_apply.ps.hlsl b/gamedata/shaders/d3d11/gamma_apply.ps.hlsl new file mode 100644 index 0000000..e92c8b1 --- /dev/null +++ b/gamedata/shaders/d3d11/gamma_apply.ps.hlsl @@ -0,0 +1,21 @@ +#include "common.hlsli" + +uniform float4 color_params; +uniform float4 color_grading; + +struct PSInput +{ + float4 hpos : SV_POSITION; + float2 texcoord : TEXCOORD0; +}; + +float4 main(in PSInput I) : SV_Target +{ + float3 color = s_image.Sample(smp_nofilter, I.texcoord.xy).xyz; + + color = color_params.x * pow(color, color_params.y) + color_params.z; + color = saturate(color.xyz * color_grading.xyz); + + color = deband_color(color, I.texcoord.xy); + return float4(color, 1.0f); +} \ No newline at end of file diff --git a/gamedata/shaders/d3d11/gtao_filter.ps.hlsl b/gamedata/shaders/d3d11/gtao_filter.ps.hlsl new file mode 100644 index 0000000..b671d4c --- /dev/null +++ b/gamedata/shaders/d3d11/gtao_filter.ps.hlsl @@ -0,0 +1,69 @@ +/* + Guided GTAO filter + + References: + - https://bartwronski.com/2019/09/22/local-linear-models-guided-filter/ + + Author: + - LVutner + + This is a classic guided box filter, accelerated with GatherRed. + Because we read from (packed) UINT buffer, we can fetch occ&depth with single gather + some bitwise magic. + + ---IX-Ray Engine--- +*/ + +#include "common.hlsli" + +struct PSInput +{ + float4 hpos : SV_POSITION; + float4 texcoord : TEXCOORD0; +}; + +Texture2D t_gtao_packed; + +float main(PSInput I) : SV_Target +{ + int kernel = 7; + int half_kernel = kernel / 2; + + // We only need a depth tap, no reason to unpack occ + float center_tap = f16tof32(t_gtao_packed[I.hpos.xy] & 0x0000ffff); + + // Texture coordinates used for Gather4 + float2 gather_texcoord = (floor(I.texcoord.xy * pos_decompression_params2.xy - 0.5f) + 1.0f) * pos_decompression_params2.zw; + + // Accumulated moments + float4 x_x2_y_xy = (float4)0.0; + + [loop] + for (int i = -half_kernel; i <= half_kernel; i += 2) + { + [loop] + for (int j = -half_kernel; j <= half_kernel; j += 2) + { + // This is why I used UINT rendertarget ;) + uint4 tap = t_gtao_packed.Gather(smp_nofilter, gather_texcoord, int2(i, j)); + + // Unpack view-z and occlusion values + float4 depth_tap = f16tof32(tap & 0x0000ffff); + float4 occ_tap = f16tof32(tap >> 16); + + // Accumulate moments + x_x2_y_xy += float4(dot(depth_tap, (1.0).xxxx), dot(depth_tap, depth_tap), dot(occ_tap, (1.0).xxxx), dot(occ_tap, depth_tap)); + } + } + + // Weight the samples + x_x2_y_xy *= rcp((kernel + 1) * (kernel + 1)); + + float cyx = (x_x2_y_xy.w - x_x2_y_xy.x * x_x2_y_xy.z); + float vx = (x_x2_y_xy.y - x_x2_y_xy.x * x_x2_y_xy.x) + 1e-4; // Avoid NaNs + + float beta = cyx * rcp(vx); + float alpha = x_x2_y_xy.z - beta * x_x2_y_xy.x; + + // Final, filtered value + return saturate(beta * center_tap + alpha); +} diff --git a/gamedata/shaders/d3d11/gtao_render.ps.hlsl b/gamedata/shaders/d3d11/gtao_render.ps.hlsl new file mode 100644 index 0000000..e3d2989 --- /dev/null +++ b/gamedata/shaders/d3d11/gtao_render.ps.hlsl @@ -0,0 +1,183 @@ +/* + Ground-Truth *Based* Ambient Occlusion (unidirectional variant, no arccos) + + References: + - Practical Real-Time Strategies for Accurate Indirect Occlusion [Jimenez et. al]; + - Screen space indirect lighting with visibility bitmask [Olivier Therrien, Yannick Levesque, Guillaume Gilet] + - "GT-VBAO (uniformly weighted)" on ShaderToy [TinyTexel] + + Credits: + - MartyMcFly (huge help with GTAO(VB) implementation and understading the concept of visibility bitmask) + - TinyTexel (no-arccosine GTAO; main inspiration, https://www.shadertoy.com/view/4cdfzf) + - Olivier Therrien (original bitmask implementation, + https://x.com/volfaze/status/1865481248929456639) + + Author: + - LVutner + + ---IX-Ray Engine--- +*/ + +#include "common.hlsli" + +struct PSInput +{ + float4 hpos : SV_POSITION; + float2 texcoord : TEXCOORD0; +}; + +float gtao_parameters; //Factor used to transform world space radius into screen space + +float example_how_to_not_implement_gtao(float3 view_position, float3 view_normal, float2 texcoord, float2 jitter) +{ + //Few constants + //TBD: Put everything into common header + const float GTAO_PI = 3.1415927; + const float GTAO_TAU = 6.2831854; + const float GTAO_HALF_PI = 1.5707964; + const float GTAO_PI_RCP = 0.31830988148; + const float GTAO_2_OVER_PI = 0.63661976296; + + //Settings + int GTAO_DIRECTIONS = 3; //Direction count (3 is sufficient for low radii) + int GTAO_STEPS = 4; //Step count + float GTAO_RADIUS = 0.85; //World space radius (Keep it low. Cache-trasher. I am not joking.) + float GTAO_NEG_1_OVER_RADIUSQR = -1.0 / (GTAO_RADIUS * GTAO_RADIUS); //Just for falloff. Hardcode it if you need to + + //Bias the position to avoid numerical issues + //0.9992 would be OK even for vanilla view-z buffer + view_position *= 0.9992; + + //View direction + float3 view_direction = -normalize(view_position); + + //Screen-space radius (clamped) + float screen_radius = min((GTAO_RADIUS * gtao_parameters) / view_position.z, 256.0); + + //Slice scale + //Y flipped as in original GTAO paper, DirectX hello + float2 slice_scale = pos_decompression_params2.zw * screen_radius * float2(1.0, -1.0); + + //Slice angle, we integrate AO over 2*PI + float slice_angle = GTAO_TAU / float(GTAO_DIRECTIONS); + + //Accumulated occlusion and slice weight + float2 occ_weight = (0.0).xx; + + for (int i = 0; i < GTAO_DIRECTIONS; i++) + { + float angle = (float(i) + jitter.x) * slice_angle; + + //Slice direction + float3 slice_direction = float3(cos(angle), sin(angle), 0.0); + + //GTAO math + float3 axis = cross(view_direction, slice_direction); + float3 proj_normal = view_normal - axis * dot(view_normal, axis); + float3 proj_tangent = cross(axis, proj_normal); + float proj_normal_length = length(proj_normal); + float sin_n = dot(proj_tangent, view_direction) * rcp(proj_normal_length); + + //Init horizon + float max_horizon_cos = sin_n; + + //Find hot horizons in your area :flushed: + for(int j = 0; j < GTAO_STEPS; j += 2) + { + //Ray increment + float2 increment = (j + float2(0.0, 1.0) + jitter.yy) / GTAO_STEPS; + + //Squared for more detail in crevices... + increment *= increment; + + //le sample coords + float4 s_texcoord = texcoord.xyxy + slice_direction.xyxy * slice_scale.xyxy * increment.xxyy; + + //Guard band + if(dot(s_texcoord.zw - saturate(s_texcoord.zw), 1.0) != 0.0) + break; + + //Fetch z-buffer + float2 s_depth = { + s_position.SampleLevel(smp_nofilter, s_texcoord.xy, 0.0f).x, + s_position.SampleLevel(smp_nofilter, s_texcoord.zw, 0.0f).x + }; + + //1st tap + //Manual unrolling, process 2 steps at the time + { + // Sample the view space position + float3 s_vector = GbufferGetPointRealUnjitter(s_texcoord.xy, s_depth.x); + s_vector -= view_position; //Occlusion vector + + float s_vec_length = dot(s_vector, s_vector); + float s_horizon = dot(s_vector, view_direction) * rsqrt(s_vec_length); + + //'Obscurance' term, basically a simple falloff known from HBAO/HBAO+. Just a MAD + saturate + float falloff = saturate(s_vec_length * GTAO_NEG_1_OVER_RADIUSQR + 1.0); + s_horizon = lerp(-1.0, s_horizon, falloff); + + max_horizon_cos = max(max_horizon_cos, s_horizon); + } + + //2nd tap + { + float3 s_vector = GbufferGetPointRealUnjitter(s_texcoord.zw, s_depth.y); + s_vector -= view_position; + + float s_vec_length = dot(s_vector, s_vector); + float s_horizon = dot(s_vector, view_direction) * rsqrt(s_vec_length); + + float falloff = saturate(s_vec_length * GTAO_NEG_1_OVER_RADIUSQR + 1.0); + s_horizon = lerp(-1.0, s_horizon, falloff); + + max_horizon_cos = max(max_horizon_cos, s_horizon); + } + } + + //This is an approximation of importance sampling (Horizon remap is baked into equation) + //Marty's MXAO uses smoothstep() which is a neat approximation (~2% error IIRC?). + //Note: 1.0 + sinNm - c_horizon_cos is identical to uniformly weighted GTAO (See Jimenez et al presentation for details) + max_horizon_cos = saturate(0.5 * sin(GTAO_HALF_PI * (1.0 + sin_n) - GTAO_HALF_PI * max_horizon_cos) + 0.5); + + //Accumulate + //rcp(x) because we are supposed to weight samples by length of projected normal + occ_weight += float2(1.0 - max_horizon_cos, 1.0) * proj_normal_length; + } + + //Normalize + occ_weight.x *= rcp(occ_weight.y); + + //Compensate for missing side... + return saturate(1.0 - occ_weight.x * 2.0); +} + +Texture3D s_blue_noise; +uint main(PSInput I) : SV_Target +{ + //Sample depth buffer + float zbuffer = s_position.SampleLevel(smp_nofilter, I.texcoord.xy, 0.0f).x; + + //Early exit + if(zbuffer == 1.0) + return asuint(f32tof16(1000.0)) | (asuint(f32tof16(1.0)) << 16); + + //Sample blue noise texture + //You can replace 0 with m_taa_jitter.w % 32 to animate it (texture contains 32 frames) + float3 jitter_tex = s_blue_noise[uint3(uint2(I.hpos.xy) % 128, 0)].xyz; + + //Unpack G-Buffer data... + float3 Normal, Point; + { + Normal = s_normal.SampleLevel(smp_nofilter, I.texcoord.xy, 0.0f).xyz; + Normal = NormalDecode(Normal.xy); + Point = GbufferGetPointRealUnjitter(I.texcoord.xy, zbuffer); + } + + //Init. Don't render GTAO past 60 units. It will become a noisy mess... + //View-pos is shifted towards view normal; this eliminates self-occlusion + float occlusion = Point.z > 60.0 ? 1.0 : example_how_to_not_implement_gtao(Point + Normal * 0.0035, Normal, I.texcoord.xy, jitter_tex.xy); + + //Pack the data into R32_UINT (16 bits for depth, and 16 for occlusion) + return asuint(f32tof16(Point.z)) | (asuint(f32tof16(occlusion)) << 16); + +} diff --git a/gamedata/shaders/d3d11/hud3d.ps.hlsl b/gamedata/shaders/d3d11/hud3d.ps.hlsl new file mode 100644 index 0000000..9f19607 --- /dev/null +++ b/gamedata/shaders/d3d11/hud3d.ps.hlsl @@ -0,0 +1,14 @@ +#include "common.hlsli" + +struct ui_vert_out +{ + float2 tc0 : TEXCOORD0; +}; + +float4 main(ui_vert_out I) : SV_Target +{ + float4 r = s_base.Sample(smp_base, I.tc0); + r.xyz = PushGamma(r.xyz); + + return r; +} diff --git a/gamedata/shaders/d3d11/hud3d.vs.hlsl b/gamedata/shaders/d3d11/hud3d.vs.hlsl new file mode 100644 index 0000000..0b4c221 --- /dev/null +++ b/gamedata/shaders/d3d11/hud3d.vs.hlsl @@ -0,0 +1,27 @@ +#include "common.hlsli" + +struct ui_vert_in +{ + float4 P : POSITION; + float4 color : COLOR0; + float2 uv : TEXCOORD0; +}; + +struct ui_vert_out +{ + float2 tc0 : TEXCOORD0; + float4 P : SV_POSITION; +}; + +ui_vert_out main(ui_vert_in v) +{ + ui_vert_out O; + + O.tc0 = v.uv; + O.P = v.P; + O.P.w = 1; + O.P = mul(m_WVP, O.P); + + O.P.xy += m_taa_jitter.xy * O.P.w; + return O; +} diff --git a/gamedata/shaders/d3d11/hud_crosshair.lua b/gamedata/shaders/d3d11/hud_crosshair.lua new file mode 100644 index 0000000..90b0baa --- /dev/null +++ b/gamedata/shaders/d3d11/hud_crosshair.lua @@ -0,0 +1,6 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("hud_crosshair", "simple_color") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) +end diff --git a/gamedata/shaders/d3d11/hud_crosshair.vs.hlsl b/gamedata/shaders/d3d11/hud_crosshair.vs.hlsl new file mode 100644 index 0000000..90a7385 --- /dev/null +++ b/gamedata/shaders/d3d11/hud_crosshair.vs.hlsl @@ -0,0 +1,23 @@ +#include "common_iostructs.hlsli" +// #include "common.hlsli" + +uniform float4 screen_res; // Screen resolution (x-Width,y-Height, zw - 1/resolution) + +// Vertex +v2p_TL0uv main(v_TL0uv_positiont I) +{ + v2p_TL0uv O; + + { + I.P.xy += 0.5f; + // O.HPos.x = I.P.x/1024 * 2 - 1; + // O.HPos.y = (I.P.y/768 * 2 - 1)*-1; + O.HPos.x = I.P.x * screen_res.z * 2 - 1; + O.HPos.y = (I.P.y * screen_res.w * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + + O.Color = I.Color.bgra; // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/hud_font.lua b/gamedata/shaders/d3d11/hud_font.lua new file mode 100644 index 0000000..1e6583c --- /dev/null +++ b/gamedata/shaders/d3d11/hud_font.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_notransform_t", "hud_font") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + -- shader:sampler ("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/hud_font.ps.hlsl b/gamedata/shaders/d3d11/hud_font.ps.hlsl new file mode 100644 index 0000000..2dc7257 --- /dev/null +++ b/gamedata/shaders/d3d11/hud_font.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +// Pixel +float4 main(p_TL I) : SV_Target +{ + float4 r = s_base.Sample(smp_base, I.Tex0); + + r.rgb = I.Color.xyz; + r.a *= I.Color.a; + + return r; +} + diff --git a/gamedata/shaders/d3d11/hud_font2.lua b/gamedata/shaders/d3d11/hud_font2.lua new file mode 100644 index 0000000..1aa16fd --- /dev/null +++ b/gamedata/shaders/d3d11/hud_font2.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_notransform_t", "hud_font2") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + -- shader:sampler ("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/hud_font2.ps.hlsl b/gamedata/shaders/d3d11/hud_font2.ps.hlsl new file mode 100644 index 0000000..0344bc6 --- /dev/null +++ b/gamedata/shaders/d3d11/hud_font2.ps.hlsl @@ -0,0 +1,11 @@ +#include "common.hlsli" + +// Pixel +float4 main(p_TL I) : SV_Target +{ + float4 r = s_base.Sample(smp_base, I.Tex0); + r.w = 1 - r.w; + + return r; +} + diff --git a/gamedata/shaders/d3d11/hud_movie.lua b/gamedata/shaders/d3d11/hud_movie.lua new file mode 100644 index 0000000..3c3dbb8 --- /dev/null +++ b/gamedata/shaders/d3d11/hud_movie.lua @@ -0,0 +1,11 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_notransform_t", "yuv2rgb") + :fog(false) + :zb(false, false) + -- TODO: DX10: Setup samplers + :blend(true, blend.srcalpha, blend.invsrcalpha) + -- shader:sampler ("s_base") :texture (t_base) + + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/hud_p3d.lua b/gamedata/shaders/d3d11/hud_p3d.lua new file mode 100644 index 0000000..e2a46fc --- /dev/null +++ b/gamedata/shaders/d3d11/hud_p3d.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("hud3d", "hud3d") + :fog(false) + :zb(true, false) + :blend(true, blend.srcalpha, blend.one) + :dx10color_write_enable(true, true, true, false) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/lod.ps.hlsl b/gamedata/shaders/d3d11/lod.ps.hlsl new file mode 100644 index 0000000..0bc51bf --- /dev/null +++ b/gamedata/shaders/d3d11/lod.ps.hlsl @@ -0,0 +1,56 @@ +#include "common.hlsli" +#include "sload.hlsli" + +void sample_Textures(inout float4 D, inout float4 H, float2 tc1, float2 tc0, float4 af) +{ + float4 D1 = s_base.SampleLevel(smp_base, tc1, 0.0f); + float4 D0 = s_base.SampleLevel(smp_base, tc0, 0.0f); + float4 H0 = s_hemi.SampleLevel(smp_base, tc0, 0.0f); + float4 H1 = s_hemi.SampleLevel(smp_base, tc1, 0.0f); + + H0.xyz = H0.rgb * 2.0f - 1.0f; + H1.xyz = H1.rgb * 2.0f - 1.0f; + + D = lerp(D0, D1, af.w); + D.w *= af.z; + H = lerp(H0, H1, af.w); + H.w *= af.x; +} + +void main(in p_bilbord I, out IXrayGbufferPack O) +{ + float4 D, H; + sample_Textures(D, H, I.tc1, I.tc0, I.af); + float3 N = normalize(H.xyz); + + clip(D.w - def_aref); + + float Sun = saturate(H.w * 2.0f); + + IXrayMaterial M; + M.Depth = I.position.z; + + M.Point = I.position.xyz; + M.Color = D; + + M.Sun = Sun; + + M.AO = 1.0f; + M.SSS = 0.0f; + M.Hemi = H.w; + + M.Normal = N.xyz; + + M.Roughness = 0.95f; + M.Metalness = 0.0f; + +#ifdef USE_LEGACY_LIGHT + M.Metalness = L_material.w; + M.Roughness = def_gloss; +#endif + + M.SnowMask = 0.95f; + O.Velocity = I.hpos_curr.xy / I.hpos_curr.w - I.hpos_old.xy / I.hpos_old.w; + + GbufferPack(O, M); +} diff --git a/gamedata/shaders/d3d11/lod.vs.hlsl b/gamedata/shaders/d3d11/lod.vs.hlsl new file mode 100644 index 0000000..ca15747 --- /dev/null +++ b/gamedata/shaders/d3d11/lod.vs.hlsl @@ -0,0 +1,42 @@ +#include "common.hlsli" +#define L_SCALE 3.1f + +struct v_bolbord +{ + float3 pos0 : POSITION0; + float3 pos1 : POSITION1; + + float3 n0 : NORMAL0; + float3 n1 : NORMAL1; + + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + + float4 rgbh0 : TEXCOORD2; + float4 rgbh1 : TEXCOORD3; + + float4 sun_af : COLOR0; +}; + +void main(in v_bolbord I, out p_bilbord O) +{ + I.sun_af.xyz = I.sun_af.zyx; + I.rgbh0.xyz = I.rgbh0.zyx; + I.rgbh1.xyz = I.rgbh1.zyx; + + float4 pos = float4(lerp(I.pos0, I.pos1, I.sun_af.w), 1.0f); + float h = lerp(I.rgbh0.w, I.rgbh1.w, I.sun_af.w) * L_SCALE; + O.af = float4(h, h, I.sun_af.z, I.sun_af.w); + + O.hpos = mul(m_VP, pos); + O.position = mul(m_V, pos); + + O.tc0 = I.tc0; + O.tc1 = I.tc1; + + O.hpos_curr = O.hpos; + O.hpos_old = mul(m_VP_old, pos); + + O.hpos.xy += m_taa_jitter.xy * O.hpos.w; +} + diff --git a/gamedata/shaders/d3d11/mark_adjust.hlsli b/gamedata/shaders/d3d11/mark_adjust.hlsli new file mode 100644 index 0000000..e69de29 diff --git a/gamedata/shaders/d3d11/mblur.hlsli b/gamedata/shaders/d3d11/mblur.hlsli new file mode 100644 index 0000000..f6db396 --- /dev/null +++ b/gamedata/shaders/d3d11/mblur.hlsli @@ -0,0 +1,9 @@ +#ifndef MBLUR_H +#define MBLUR_H + +float3 mblur(float2 UV, float3 pos, float3 c_original) +{ + return c_original; +} + +#endif diff --git a/gamedata/shaders/d3d11/metalic_roughness_ambient.hlsli b/gamedata/shaders/d3d11/metalic_roughness_ambient.hlsli new file mode 100644 index 0000000..e25bd97 --- /dev/null +++ b/gamedata/shaders/d3d11/metalic_roughness_ambient.hlsli @@ -0,0 +1,172 @@ +#ifndef metalic_roughness_ambient_h_ixray_included +#define metalic_roughness_ambient_h_ixray_included + +#include "common.hlsli" + +//fitted for height-correlated smith +float2 EpicGamesEnvBRDFApprox(float NdotV, float roughness) +{ + //clamped cuz of extreme spike + NdotV = min(NdotV, 0.998); + + float nsqr = NdotV * NdotV; + float rsqr = roughness * roughness; + + float4 fac = float4(0.0187, 1.0133, 1.0000, 1.0000) + + float4(1.9496, -2.4717, -0.0333, 2.0508) * NdotV + + float4(1.2265, -1.2172, -1.3097, 0.2342) * roughness + + float4(-7.6907, 3.4300, 0.5972, -26.9406) * NdotV * roughness + + float4(18.3314, 1.4794, 19.3537, 11.1429) * nsqr + + float4(-0.2894, 0.5564, 1.5052, 7.0828) * rsqr + + float4(-19.3056, -2.2456, -28.2302, 18.5470) * nsqr * roughness + + float4(7.0144, -1.8934, 1.3307, 50.6469) * NdotV * rsqr + + float4(1.5728, 1.3618, 15.2939, -63.3557) * nsqr * rsqr; + + return saturate(fac.xy / fac.zw); +} + +float3 CompureDiffuseIrradance(float3 N, float3 Hemi) +{ + float3 LightDirection = mul((float3x3)m_invV, N).xyz; + +#ifdef IBL_REMAP_IRRADANCE + RemapVector(LightDirection); +#endif + +#ifdef USE_NORMAL_HEMI_DISTRIBUTION + Hemi = min(Hemi, LightDirection.yyy * 0.375f + 0.375f); +#endif + + float3 SampleLast = env_s0.SampleLevel(smp_linear, LightDirection, 0.0f).xyz; + float3 SampleNext = env_s1.SampleLevel(smp_linear, LightDirection, 0.0f).xyz; + +#ifdef USE_CGIM_SKY_TWEAK + float topToDownVec = saturate(LightDirection.y); + topToDownVec *= topToDownVec; + + float Factor = SMALLSKY_TOP_VECTOR_POWER; + Factor = saturate(Factor + (1.0 - Factor) * topToDownVec) + (1.0 - Factor) * 0.5f; + + Hemi *= Factor * Factor; float3 Irradance = 1.0f; + Hemi *= lerp(SampleLast, SampleNext, L_hemi_color.w); +#else + float3 Irradance = lerp(SampleLast, SampleNext, L_hemi_color.w); +#endif + +#ifdef USE_DIFFUSE_SKY_COLOR + #ifdef USE_BGRA_SKYCOLOR + Irradance *= L_sky_color.zyx; + #else + Irradance *= L_sky_color.xyz; + #endif +#else + Irradance *= L_hemi_color.xyz; +#endif + +#ifdef USE_LEGACY_LIGHT + Irradance *= Irradance; +#endif + + return Irradance * Hemi; +} + +float3 CompureSpecularIrradance(float3 R, float3 Hemi, float Roughness) +{ + float3 LightDirection = mul((float3x3)m_invV, R); + +#ifdef USE_OLD_VIEW_REFLECTIONS + R = mul(m_V_old, LightDirection); +#endif + +#ifndef IBL_MAX_LOD + float4 MipLevels = 0.0f; + sky_s0.GetDimensions(MipLevels.x, MipLevels.y, MipLevels.z, MipLevels.w); + float2 Lod = MipLevels.w * Roughness; + #ifdef USE_HQ_SKY2_LOD + sky_s1.GetDimensions(MipLevels.x, MipLevels.y, MipLevels.z, MipLevels.w); + Lod.y = MipLevels.w * Roughness; + #endif +#else + float2 Lod = IBL_MAX_LOD * Roughness; +#endif + +#ifdef IBL_FAKE_IRRADANCE + float3 SampleLastD = env_s0.SampleLevel(smp_rtlinear, LightDirection, 0.0f).xyz; + float3 SampleNextD = env_s1.SampleLevel(smp_rtlinear, LightDirection, 0.0f).xyz; +#endif + +#ifdef IBL_REMAP_POSITIVE_Y + LightDirection.y = abs(LightDirection.y); +#endif + +#ifdef IBL_REMAP_REFLECTIONS + RemapVector(LightDirection); +#endif + + float3 SampleLast = sky_s0.SampleLevel(smp_linear, LightDirection, Lod.x).xyz; + float3 SampleNext = sky_s1.SampleLevel(smp_linear, LightDirection, Lod.y).xyz; + +#ifdef IBL_FAKE_IRRADANCE + SampleLast = lerp(SampleLast, SampleLastD, Roughness); + SampleNext = lerp(SampleNext, SampleNextD, Roughness); +#endif + + float3 Irradance = lerp(SampleLast, SampleNext, L_hemi_color.w); + +#ifdef USE_SPECULAR_HEMI_COLOR + Irradance *= L_hemi_color.xyz; +#else + #ifdef USE_BGRA_SKYCOLOR + Irradance *= L_sky_color.zyx; + #else + Irradance *= L_sky_color.xyz; + #endif +#endif + +#ifdef USE_VIEW_REFLECTIONS + float4 SampleRef = s_env.SampleLevel(smp_linear, R, 8.0f * Roughness); + SampleRef.xyz *= rcp(1.00001f - SampleRef.xyz); + + float fog = saturate(SampleRef.w * fog_params.w + fog_params.x); + Irradance = lerp(PopGamma(SampleRef.xyz), Irradance, fog); +#endif + + return Irradance * Hemi; +} + +float3 AmbientLighting(float3 DiffuseIrradance, float3 SpecularIrradance, float NdotV, float3 Color, float Metalness, float Roughness, float3 F0 = 0.04f) +{ + DiffuseIrradance = PushGamma(DiffuseIrradance); + SpecularIrradance = PushGamma(SpecularIrradance); + + DiffuseIrradance *= (1.0f - Metalness) * Color; + + float2 BRDF = EpicGamesEnvBRDFApprox(NdotV, Roughness); + float3 F = lerp(F0, Color, Metalness) * BRDF.x + BRDF.y; + + return lerp(DiffuseIrradance, SpecularIrradance, F); +} + +float3 AmbientLighting(float3 View, float3 Normal, float3 Color, float Metalness, float Roughness, float Hemi, float3 F0 = 0.04f) +{ + float3 Reflect = reflect(View, Normal); + +#ifndef USE_LEGACY_LIGHT + float3 DiffuseIrradance = CompureDiffuseIrradance(Normal, Hemi) + L_ambient.xyz; + float3 SpecularIrradance = CompureSpecularIrradance(Reflect, Hemi, Roughness); + float NdotV = max(0.0, dot(Normal, -View)); + + return AmbientLighting(DiffuseIrradance, SpecularIrradance, NdotV, Color, Metalness, Roughness, F0); +#else + float Specular = 0.5f - 0.5f * dot(View, Reflect); + float2 Material = s_material.SampleLevel(smp_material, float3(Hemi, Specular, Metalness), 0).xy; + + float3 DiffuseIrradance = CompureDiffuseIrradance(Normal, Material.x) + L_ambient.xyz; + float3 SpecularIrradance = CompureDiffuseIrradance(Reflect, Material.y); + + return DiffuseIrradance * Color + SpecularIrradance * Roughness; +#endif +} +#endif + + diff --git a/gamedata/shaders/d3d11/metalic_roughness_base.hlsli b/gamedata/shaders/d3d11/metalic_roughness_base.hlsli new file mode 100644 index 0000000..994d8d1 --- /dev/null +++ b/gamedata/shaders/d3d11/metalic_roughness_base.hlsli @@ -0,0 +1,231 @@ +#ifndef metalic_roughness_base_h_ixray_included +#define metalic_roughness_base_h_ixray_included + +#include "common.hlsli" +#define PI 3.141592653589793f + +struct IXrayMaterial +{ + float Metalness; + float Roughness; + + float3 Normal; + float3 Point; + float4 Color; + + float Depth; + + float Hemi; + float Sun; + + float SSS; + float AO; + + float SnowMask; +}; + +struct IXrayGbufferPack +{ + float4 Color : SV_Target0; + + float4 Normal : SV_Target1; + float4 Material : SV_Target2; + + float2 Velocity : SV_Target3; +}; + +struct IXrayGbuffer +{ + float Metalness; + float Roughness; + + float3 Normal; + float3 Color; + float3 F0; + + float Depth; + float Hemi; + + float3 Point; + float3 PointHud; + float3 PointReal; + + float3 View; + float ViewDist; + + float SSS; + float AO; + float SnowMask; +}; + +float2 PackNormalVector(float3 Vector) { + float PackedZ = 0.5f + 0.5f * Vector.z; + float Scale = rcp(dot(Vector.xy, Vector.xy)); + return Vector.xy * sqrt(PackedZ * Scale); +} + +float3 UnPackNormalVector(float2 Packed) { + float PackedZ = dot(Packed, Packed); + + float3 Vector; + + Vector.z = PackedZ * 2.0f - 1.0f; + Vector.xy = Packed * sqrt(1.0f - PackedZ) * 2.0f; + + return Vector; +} + +float2 NormalEncode(float3 Normal) +{ + Normal *= rcp(abs(Normal.x) + abs(Normal.y) + abs(Normal.z)); + float Shift = saturate(-Normal.z); + Normal.xy += Normal.xy > 0.0f ? Shift : -Shift; + + return Normal.xy * 0.5f + 0.5f; +} + +float3 NormalDecode(float2 InNormal) +{ + InNormal = InNormal * 2.0f - 1.0f; + + float3 Normal = float3(InNormal, 1.0f - abs(InNormal.x) - abs(InNormal.y)); + float Shift = saturate(-Normal.z); + + Normal.xy -= Normal.xy > 0.0f ? Shift : -Shift; + + return normalize(Normal); +} + +void GbufferPack(inout IXrayGbufferPack O, inout IXrayMaterial M) +{ + O.Normal.xy = NormalEncode(M.Normal.xyz); + O.Normal.z = M.Roughness; + O.Normal.w = M.SnowMask; + + O.Color.xyz = M.Color.xyz; + O.Color.w = M.SSS; + +#ifdef USE_R2_STATIC_SUN + O.Color.w = M.Sun; +#endif + + O.Material.x = M.Metalness; + O.Material.y = M.Hemi; + + O.Material.z = M.AO; + +#ifndef USE_PBR + O.Material.w = 0.0f; +#else + O.Material.w = 1.0f; +#endif +} + +float4 GbufferGetPoint(in float2 HPos) +{ + float Depth = s_position.Load(int3(HPos, 0)).x; + HPos = HPos - m_taa_jitter.xy * float2(0.5f, -0.5f) * pos_decompression_params2.xy; + float3 Point = float3(HPos * pos_decompression_params.zw - pos_decompression_params.xy, 1.0f); + Point *= depth_unpack.x * rcp(Depth - depth_unpack.y); + return float4(Point, 1.0f); +} + +float3 GbufferGetPointRealUnjitter(in float2 TexCoord, in float Depth) +{ + float3 Point = float3(TexCoord * 2.0f - 1.0f, 1.0f); + + if(Depth < 0.02f) { + Point.z = depth_unpack.z * rcp(Depth * 50.0f - depth_unpack.w); + Point.xy *= pos_decompression_params_hud.xy * Point.z; + } else { + Point.z = depth_unpack.x * rcp(Depth - depth_unpack.y); + Point.xy *= pos_decompression_params.xy * Point.z; + } + + return Point; +} + +float3 GbufferGetPointRealUnjitter(in float2 TexCoord) +{ + float Depth = s_position.Load(int3(TexCoord * pos_decompression_params2.xy, 0)).x; + return GbufferGetPointRealUnjitter(TexCoord, Depth); +} + +void GbufferUnpack(in float2 TexCoord, in float2 HPos, inout IXrayGbuffer O) +{ + float4 NormalHemi = s_normal.Load(int3(HPos, 0)); + + float4 Material = s_surface.Load(int3(HPos, 0)); + float4 ColorSSS = s_diffuse.Load(int3(HPos, 0)); + + O.Depth = s_position.Load(int3(HPos, 0)).x; + + HPos = HPos - m_taa_jitter.xy * float2(0.5f, -0.5f) * pos_decompression_params2.xy; + + float3 P = float3(HPos * pos_decompression_params.zw - pos_decompression_params.xy, 1.0f); + float3 P_hud = float3(HPos * pos_decompression_params_hud.zw - pos_decompression_params_hud.xy, 1.0f); + + O.Point = P * depth_unpack.x * rcp(O.Depth - depth_unpack.y); + O.PointHud = P_hud * depth_unpack.z * rcp(O.Depth * 50.0f - depth_unpack.w); + + O.PointReal = O.Depth < 0.02f ? O.PointHud : O.Point; + + O.ViewDist = length(O.PointReal); + O.View = O.PointReal * rcp(O.ViewDist); + + O.Normal.xyz = NormalDecode(NormalHemi.xy); + O.Hemi = Material.y; + + O.Color.xyz = PushGamma(ColorSSS.xyz); + O.SSS = ColorSSS.w; + + O.Metalness = Material.x; + O.Roughness = NormalHemi.z; + + O.AO = PushGamma(Material.z); + O.F0 = 0.002f + 0.028f * Material.w; + + O.SnowMask = NormalHemi.w; +} + +void GbufferUnpack(in float2 TexCoord, inout IXrayGbuffer O) +{ + float2 HPos = TexCoord * pos_decompression_params2.xy; + + float4 NormalHemi = s_normal.SampleLevel(smp_rtlinear, TexCoord, 0); + + float4 Material = s_surface.SampleLevel(smp_rtlinear, TexCoord, 0); + float4 ColorSSS = s_diffuse.SampleLevel(smp_rtlinear, TexCoord, 0); + + O.Depth = s_position.Load(int3(HPos, 0)).x; + + HPos = HPos - m_taa_jitter.xy * float2(0.5f, -0.5f) * pos_decompression_params2.xy; + + float3 P = float3(HPos * pos_decompression_params.zw - pos_decompression_params.xy, 1.0f); + float3 P_hud = float3(HPos * pos_decompression_params_hud.zw - pos_decompression_params_hud.xy, 1.0f); + + O.Point = P * depth_unpack.x * rcp(O.Depth - depth_unpack.y); + O.PointHud = P_hud * depth_unpack.z * rcp(O.Depth * 50.0f - depth_unpack.w); + + O.PointReal = O.Depth < 0.02f ? O.PointHud : O.Point; + + O.ViewDist = length(O.PointReal); + O.View = O.PointReal * rcp(O.ViewDist); + + O.Normal.xyz = NormalDecode(NormalHemi.xy); + O.Hemi = Material.y; + + O.Color.xyz = PushGamma(ColorSSS.xyz); + O.SSS = ColorSSS.w; + + O.Metalness = Material.x; + O.Roughness = NormalHemi.z; + + O.AO = PushGamma(Material.z); + O.F0 = 0.002f + 0.028f * Material.w; + + O.SnowMask = NormalHemi.w; +} + +#endif + diff --git a/gamedata/shaders/d3d11/metalic_roughness_light.hlsli b/gamedata/shaders/d3d11/metalic_roughness_light.hlsli new file mode 100644 index 0000000..a89507c --- /dev/null +++ b/gamedata/shaders/d3d11/metalic_roughness_light.hlsli @@ -0,0 +1,79 @@ +#ifndef metalic_roughness_light_h_ixray_included +#define metalic_roughness_light_h_ixray_included + +#include "common.hlsli" + +float DistributionGGX(float NdotH, float Roughness) +{ + float Alpha = Roughness * Roughness; + float AlphaTwo = Alpha * Alpha; + + float AlphaTwoInv = AlphaTwo - 1.0f; + + float Divider = NdotH * NdotH * AlphaTwoInv + 1.0f; + return AlphaTwo * rcp(Divider * Divider); +} + +// Simple GSC - like attention +float ComputeLightAttention(float3 PointToLight, float MinAttention) +{ + return saturate(1.0f - dot(PointToLight, PointToLight) * MinAttention); +} + +float GeometrySmithD(float NdotL, float NdotV, float Roughness) +{ + float R = Roughness + 1.0f; + float K = R * R * 0.125f; + float InvK = 1.0f - K; + + float DivGGXL = 1.0f * rcp(K + NdotL * InvK); + float DivGGXV = 1.0f * rcp(K + NdotV * InvK); + + return 0.25f * DivGGXL * DivGGXV; +} + +float3 FresnelSchlick(float3 F, float NdotV) +{ + return F + (1.0f - F) * pow(1.0f - NdotV, 5.0f); +} + +float3 DirectLight(float4 Radiance, float3 Light, float3 Normal, float3 View, float3 Color, float Metalness, float Roughness, float3 F0 = 0.04f) +{ + float3 Half = normalize(Light + View); + + float NdotL = max(0.0f, -dot(Normal, Light)); + float NdotH = max(0.0f, -dot(Normal, Half)); + +#ifndef USE_LEGACY_LIGHT + float NdotV = max(0.0f, -dot(Normal, View)); + float HdotV = max(0.0f, dot(Half, View)); + + float3 D = DistributionGGX(NdotH, Roughness); + float3 G = GeometrySmithD(NdotL, NdotV, Roughness); + float3 F = FresnelSchlick(lerp(F0, Color, Metalness), HdotV); + + float3 Specular = D * G; + float3 Diffuse = Color * (1.0f - Metalness); + + float3 BRDF = lerp(Diffuse, Specular, F); + return PushGamma(Radiance.xyz) * NdotL * BRDF; +#else + float2 Material = s_material.SampleLevel(smp_material, float3(NdotL, NdotH, Metalness), 0).xy; + return Radiance.xyz * (Material.x * Color.xyz + Material.y * Roughness.x * Radiance.w); +#endif +} + +float3 SimpleTranslucency(float3 Radiance, float3 Light, float3 Normal) +{ + float NdotL = dot(Light, Normal); + float Scale = 0.36f * NdotL; + + float Attention = Scale + 0.0769f; Attention *= Attention * 1.171f; + float Factor = 1.0f - saturate(abs(Scale) * 13.0f - 1.0f); + + float SSS = lerp(saturate(NdotL), Attention, Factor * Factor); + return PushGamma(Radiance) * saturate(3.5f * SSS + 0.1f); +} + +#endif + diff --git a/gamedata/shaders/d3d11/model_clockarrow_h.ps.hlsl b/gamedata/shaders/d3d11/model_clockarrow_h.ps.hlsl new file mode 100644 index 0000000..1e7f2dc --- /dev/null +++ b/gamedata/shaders/d3d11/model_clockarrow_h.ps.hlsl @@ -0,0 +1,45 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +uniform float4 m_affects; +uniform float4 m_timearrow; + +float4 main( v2p I ) : SV_Target +{ + float2 coords = I.tc0; + float2 coords_new; + + // Rotate texture + float sin_a = m_timearrow.x; + float cos_a = m_timearrow.y; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = s_base.Sample( smp_base, coords_new ); + float4 t_noise = s_lmap.Sample( smp_base, coords_new ); + + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + + t_base.rgb += t_noise.rgb*noise+0.1; + t_base.xyz = detonemap(t_base.xyz); + + return t_base; +} diff --git a/gamedata/shaders/d3d11/model_clockarrow_m.ps.hlsl b/gamedata/shaders/d3d11/model_clockarrow_m.ps.hlsl new file mode 100644 index 0000000..29ec524 --- /dev/null +++ b/gamedata/shaders/d3d11/model_clockarrow_m.ps.hlsl @@ -0,0 +1,45 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +uniform float4 m_affects; +uniform float4 m_timearrow; + +float4 main( v2p I ) : SV_Target +{ + float2 coords = I.tc0; + float2 coords_new; + + // Rotate texture + float sin_a = m_timearrow.z; + float cos_a = m_timearrow.a; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = s_base.Sample( smp_base, coords_new ); + float4 t_noise = s_lmap.Sample( smp_base, coords_new ); + + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + + t_base.rgb += t_noise.rgb*noise+0.1; + t_base.xyz = detonemap(t_base.xyz); + + return t_base; +} diff --git a/gamedata/shaders/d3d11/model_clockarrow_s.ps.hlsl b/gamedata/shaders/d3d11/model_clockarrow_s.ps.hlsl new file mode 100644 index 0000000..59f2a71 --- /dev/null +++ b/gamedata/shaders/d3d11/model_clockarrow_s.ps.hlsl @@ -0,0 +1,45 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +uniform float4 m_affects; +uniform float4 m_timearrow2; + +float4 main( v2p I ) : SV_Target +{ + float2 coords = I.tc0; + float2 coords_new; + + // Rotate texture + float sin_a = m_timearrow2.x; + float cos_a = m_timearrow2.y; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = s_base.Sample( smp_base, coords_new ); + float4 t_noise = s_lmap.Sample( smp_base, coords_new ); + + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + + t_base.rgb += t_noise.rgb*noise+0.1; + t_base.xyz = detonemap(t_base.xyz); + + return t_base; +} diff --git a/gamedata/shaders/d3d11/model_compassarrow.ps.hlsl b/gamedata/shaders/d3d11/model_compassarrow.ps.hlsl new file mode 100644 index 0000000..f0cadf1 --- /dev/null +++ b/gamedata/shaders/d3d11/model_compassarrow.ps.hlsl @@ -0,0 +1,45 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +uniform float4 m_affects; +uniform float4 m_timearrow2; + +float4 main( v2p I ) : SV_Target +{ + float2 coords = I.tc0; + float2 coords_new; + + // Rotate texture + float sin_a = m_timearrow2.z; + float cos_a = m_timearrow2.a; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = s_base.Sample( smp_base, coords_new ); + float4 t_noise = s_lmap.Sample( smp_base, coords_new ); + + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + + t_base.rgb += t_noise.rgb*noise+0.1; + t_base.xyz = detonemap(t_base.xyz); + + return t_base; +} diff --git a/gamedata/shaders/d3d11/model_distort.vs.hlsl b/gamedata/shaders/d3d11/model_distort.vs.hlsl new file mode 100644 index 0000000..0f451a4 --- /dev/null +++ b/gamedata/shaders/d3d11/model_distort.vs.hlsl @@ -0,0 +1,71 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color + float4 hpos : SV_POSITION; + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul((float3x3)m_WV, v.N.xyz)); + float fade = 1 - abs(dot(dir_v, norm_v)); + o.c0 = fade; + o.fog = 1.0f - calc_fogging(float4(mul(m_W, v.P), 1.0f).xyz); // fog, input in world coords + + o.hpos.xy += m_taa_jitter.xy * o.hpos.w; + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/d3d11/model_distort4ghost.vs.hlsl b/gamedata/shaders/d3d11/model_distort4ghost.vs.hlsl new file mode 100644 index 0000000..d674324 --- /dev/null +++ b/gamedata/shaders/d3d11/model_distort4ghost.vs.hlsl @@ -0,0 +1,69 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color + float4 hpos : SV_POSITION; + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul((float3x3)m_WV, v.N.xyz)); + float fade = 1.3 * (1 - abs(dot(dir_v, norm_v))); + o.c0 = fade; + o.fog = 1.0f - calc_fogging(float4(mul(m_W, v.P), 1.0f).xyz); // fog, input in world coords + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/d3d11/model_distort4glass.vs.hlsl b/gamedata/shaders/d3d11/model_distort4glass.vs.hlsl new file mode 100644 index 0000000..5048207 --- /dev/null +++ b/gamedata/shaders/d3d11/model_distort4glass.vs.hlsl @@ -0,0 +1,70 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color + float4 hpos : SV_POSITION; + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul((float3x3)m_WV, v.N.xyz)); + float fade = 0.9 * abs(dot(dir_v, norm_v)); + o.c0 = fade; + o.fog = 1.0f - calc_fogging(float4(mul(m_W, v.P), 1.0f).xyz); // fog, input in world coords + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif + diff --git a/gamedata/shaders/d3d11/model_distort_inv.vs.hlsl b/gamedata/shaders/d3d11/model_distort_inv.vs.hlsl new file mode 100644 index 0000000..79e3329 --- /dev/null +++ b/gamedata/shaders/d3d11/model_distort_inv.vs.hlsl @@ -0,0 +1,69 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color + float4 hpos : SV_POSITION; + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul((float3x3)m_WV, v.N.xyz)); + float fade = abs(dot(dir_v, norm_v)); + o.c0 = fade; + o.fog = 1.0f - calc_fogging(float4(mul(m_W, v.P), 1.0f).xyz); // fog, input in world coords + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/d3d11/model_exohealth.ps.hlsl b/gamedata/shaders/d3d11/model_exohealth.ps.hlsl new file mode 100644 index 0000000..c07fd7c --- /dev/null +++ b/gamedata/shaders/d3d11/model_exohealth.ps.hlsl @@ -0,0 +1,50 @@ +#include "common.hlsli" + +uniform float4 m_actor_params; +uniform float4 m_affects; + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main( v2p I ) : SV_Target +{ + // ������� ������� ��������� + float problems = cos( ( frac( timers.z * 4 ) - 0.5 ) * 3.1416 )*2 - 0.8; + float AMPL = 0.3; + I.tc0.y -= ( m_affects.x > 0.15 && I.tc0.x > problems-AMPL && I.tc0.x < problems+AMPL) ? cos(4.71*(I.tc0.x-problems)/AMPL) * sin( frac(timers.z)*6.2831*90 ) * (m_affects.x/10) * (AMPL-abs(I.tc0.x-problems))/AMPL : 0; + + float4 t_base = s_base.Sample ( smp_base, I.tc0); + + + float tmp = 1-m_actor_params.y; + tmp = clamp(tmp, 0, 0.5); + t_base.r +=tmp*t_base.a; + + tmp = 0.5-abs(m_actor_params.y-0.5); + tmp = clamp(tmp, 0, 0.5); + t_base.g +=tmp*t_base.a; + + // Øóì ïðè âûáðîñå + float noise = get_noise(I.tc0*timers.z) * m_affects.x * 2; + t_base.r += noise; + t_base.g += noise; + t_base.b += noise; + t_base.xyz = detonemap(t_base.xyz); + + + return float4 (t_base.r, t_base.g, t_base.b, 1); + +} + + diff --git a/gamedata/shaders/d3d11/model_exoscreen.ps.hlsl b/gamedata/shaders/d3d11/model_exoscreen.ps.hlsl new file mode 100644 index 0000000..f83d8b2 --- /dev/null +++ b/gamedata/shaders/d3d11/model_exoscreen.ps.hlsl @@ -0,0 +1,33 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float4 c0: COLOR0; // sun +}; + +uniform float4 m_affects; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +////////////////////////////////////////////////////////////////////////////////////////// +// Pixel +float4 main( v2p I ) : SV_Target +{ + float4 t_base = s_base.Sample( smp_base, I.tc0 ); + + // Øóì ïðè âûáðîñå + float noise = get_noise(I.tc0*timers.z) * m_affects.x * 2; + t_base.r += noise; + t_base.g += noise; + t_base.b += noise; + + t_base.xyz = detonemap(t_base.xyz); + + // #TODO: plohoi fix, no aref model sloman + return float4(t_base.xyz*4.0f,t_base.w * I.c0.w); +} + diff --git a/gamedata/shaders/d3d11/model_green_conditionbar.ps.hlsl b/gamedata/shaders/d3d11/model_green_conditionbar.ps.hlsl new file mode 100644 index 0000000..660d0f1 --- /dev/null +++ b/gamedata/shaders/d3d11/model_green_conditionbar.ps.hlsl @@ -0,0 +1,39 @@ +#include "common.hlsli" + +uniform float4 m_actor_params; +uniform float4 m_affects; + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main( v2p I ) : SV_Target +{ + float4 t_base = s_base.Sample ( smp_base, I.tc0); + + t_base.a = (I.tc0.x < m_actor_params.z) ? 1 : 0; + t_base.r += (0.5 < m_actor_params.z) ? 0 : 0.5; + t_base.g -= (0.25 < m_actor_params.z) ? 0 : 0.5; + + // Øóì ïðè âûáðîñå + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + t_base.r += noise; + t_base.g += noise; + t_base.b += noise; + t_base.xyz = detonemap(t_base.xyz); + + return float4 (t_base.r, t_base.g, t_base.b, t_base.a); +} + + diff --git a/gamedata/shaders/d3d11/model_green_energybar.ps.hlsl b/gamedata/shaders/d3d11/model_green_energybar.ps.hlsl new file mode 100644 index 0000000..450ec29 --- /dev/null +++ b/gamedata/shaders/d3d11/model_green_energybar.ps.hlsl @@ -0,0 +1,38 @@ +#include "common.hlsli" + +uniform float4 m_actor_params; +uniform float4 m_affects; + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main( v2p I ) : SV_Target +{ + float4 t_base = s_base.Sample ( smp_base, I.tc0); + + t_base.a = (I.tc0.x < m_actor_params.a) ? 1 : 0; + t_base.r += (0.1 < m_actor_params.a) ? 0 : 0.5; + t_base.g -= (0.1 < m_actor_params.a) ? 0 : 0.5; + + // Øóì ïðè âûáðîñå + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + t_base.r += noise; + t_base.g += noise; + t_base.b += noise; + t_base.xyz = detonemap(t_base.xyz); + + return float4 (t_base.r, t_base.g, t_base.b, t_base.a); +} + + diff --git a/gamedata/shaders/d3d11/model_pda_screen.ps.hlsl b/gamedata/shaders/d3d11/model_pda_screen.ps.hlsl new file mode 100644 index 0000000..b060aef --- /dev/null +++ b/gamedata/shaders/d3d11/model_pda_screen.ps.hlsl @@ -0,0 +1,59 @@ +#include "common.hlsli" + +uniform float4 m_affects; + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +Texture2D s_vp2; +Texture2D s_load; +float4 problems_main( v2p I ) +{ + // óçêàÿ ïîëîñêà èñêàæåíèé + float problems = frac( timers.z * 5*(1 + 2 * m_affects.x) ); + I.tc0.x+= ( m_affects.x > 0.09 && I.tc0.y > problems-0.01 && I.tc0.y < problems) ? sin((I.tc0.y-problems)*5*m_affects.y) : 0; + + // øèðîêàÿ ïîëîñêà èñêàæåíèé + problems = cos( ( frac( timers.z *2 ) - 0.5 ) * 3.1416 )*2 - 0.8; + float AMPL = 0.13; + I.tc0.x -= ( m_affects.x > 0.15 && I.tc0.y > problems-AMPL && I.tc0.y < problems+AMPL) ? cos(4.71*(I.tc0.y-problems)/AMPL) * sin( frac(timers.z)*6.2831*90 ) * 0.02 * (AMPL-abs(I.tc0.y-problems))/AMPL : 0; + + // òðÿñêà âëåâî-âïðàâî â ôèíàëüíîé ñòàäèè + I.tc0.x += ( m_affects.x > 0.38 ) ? (m_affects.y - 0.5) * 0.04 : 0; + + float4 t_vp2 = (m_affects.x < 0.27) ? s_vp2.Sample ( smp_base, I.tc0) : s_base.Sample ( smp_base, I.tc0) ; + + // Øóì ïðè âûáðîñå + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 20; + t_vp2.r += noise; + t_vp2.g += noise; + t_vp2.b += noise; + + //îòêëþ÷åíèå ýêðàíà + t_vp2.rgb = (m_affects.x > 0.41) ? 0 : t_vp2.rgb; + + return float4 (t_vp2.r, t_vp2.g, t_vp2.b, 1); +} + + +float4 loading_main( v2p I ) +{ + float4 t_load = s_load.Sample ( smp_base, I.tc0); + return float4 (t_load.r, t_load.g, t_load.b, 1); +} + +float4 main( v2p I ) : SV_Target +{ + float4 t_base = (m_affects.a > 0 && m_affects.x >= 0.08 ) ? loading_main(I) : problems_main(I); + t_base.xyz = detonemap(t_base.xyz); + return t_base; +} \ No newline at end of file diff --git a/gamedata/shaders/d3d11/model_scope_gauss.ps.hlsl b/gamedata/shaders/d3d11/model_scope_gauss.ps.hlsl new file mode 100644 index 0000000..23337eb --- /dev/null +++ b/gamedata/shaders/d3d11/model_scope_gauss.ps.hlsl @@ -0,0 +1,119 @@ +// #include "common.hlsli" + +// uniform float4 m_hud_params; +// uniform float4 m_zoom_deviation; +// uniform float4 m_affects; + +// struct v2p +// { + // float2 tc0: TEXCOORD0; // base + // float3 tc1: TEXCOORD1; // environment + // float4 c0: COLOR0; // sun.(fog*fog) +// }; + +// float get_noise(float2 co) +// { + // return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +// }; + +// ////////////////////////////////////////////////////////////////////////////////////////// + +// float resize(float input, float factor, float offset) +// { + // return (input-0.5f+offset) / factor+0.5f-offset; +// } + +// // Pixel +// uniform float4 screen_res; + +// Texture2D s_vp2; +// //Texture2D s_skymap; + +// //uniform samplerCUBE s_env0; +// //uniform samplerCUBE s_env1; + +// float random(float2 co) +// { + // return 0.5+(frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +// }; + +// float4 main( v2p I ) : SV_Target +// { + // if (m_hud_params.y < 0.0001) return float4 (0,0,0,0); + +// // float2 distort = s_distort.Sample( smp_rtlinear, I.tc); +// // float3 image = s_base.Sample( smp_rtlinear, I.tc + offset); + + // float4 t_base = s_base.Sample ( smp_base, I.tc0); // Òåêñòóðà ñåòêè + // // float4 t_skymap = s_skymap.Sample ( smp_base, I.tc0); // Êàðòà îòðàæåíèÿ íåáà + + // //ñäâèã îò ñîñòîÿíèÿ îðóæèÿ + // I.tc0.x = I.tc0.x+m_zoom_deviation.x; + // I.tc0.y = I.tc0.y+m_zoom_deviation.y; + + // // Ðàñòÿãèâàåì êàðòèíêó â ëèíçå òàê, ÷òîáû íà ëþáîì ðàçðåøåíèè ýêðàíà áûëè ïðàâèëüíûå ïðîïîðöèè + // I.tc0.x = resize(I.tc0.x, screen_res.x/screen_res.y, 0); + + // float4 t_vp2 = s_vp2.Sample ( smp_base, I.tc0); // Èçîáðàæåíèå ñî âòîðîãî âüþïîðòà + + // //àááåðàöèÿ + // float2 offset = distance(I.tc0, float2( .5f, .5f ))*float2(m_hud_params.z, m_hud_params.z); + + // t_vp2.r = s_vp2.Sample ( smp_base, I.tc0+offset).r; + // t_vp2.b = s_vp2.Sample ( smp_base, I.tc0-offset).b; + + // float3 final = float3(0, 0, 0); + + // // Ðàññ÷èòûâàåì ñëó÷àéíûé øóì ïèêñåëÿ + // float noise = random(I.tc0*timers.z) * m_zoom_deviation.w; + + // float gray = ((t_vp2.r + t_vp2.g + t_vp2.b))*m_zoom_deviation.z*7; + // t_vp2.r = t_vp2.r*(1-m_zoom_deviation.z) + gray; + // t_vp2.g = t_vp2.g*(1-m_zoom_deviation.z) + gray; + // t_vp2.b = t_vp2.b*(1-m_zoom_deviation.z) + gray; + + // t_vp2.b+= (0.4 + noise)*m_zoom_deviation.z; + + // // Øóì ïðè âûáðîñå + // float blow_noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + // t_vp2.r += blow_noise; + // t_vp2.g += blow_noise; + // t_vp2.b += blow_noise; + // t_base.xyz = detonemap(t_base.xyz); + + // // Ìèêñóåì ñ ñåòêîé + // final = lerp (t_vp2, t_base, t_base.a); + + // // out + // return float4 (final.r, final.g, final.b, min(m_hud_params.y, m_hud_params.a)); +// } + +#include "common.hlsli" + +uniform float4 m_hud_params; + +struct v2p +{ + float2 tc0: TEXCOORD0; + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; +}; + +float4 main(v2p I, float4 pos2d : SV_POSITION) : SV_Target +{ + if (m_hud_params.y * m_hud_params.a < 0.0001f) { + return 0.0f; + } + + float4 t_base = s_base.Sample(smp_base, I.tc0); + t_base.xyz = detonemap(t_base.xyz); + + float4 t_vp2 = s_image[pos2d.xy]; + + float alpha = m_hud_params.y * m_hud_params.a; + t_vp2 *= saturate(alpha * 2.0f - 1.0f); + + float3 final = lerp(t_vp2.xyz, t_base.xyz, t_base.a); + return float4(final.xyz, saturate(alpha * 2.0f)); +} + diff --git a/gamedata/shaders/d3d11/model_scope_lense.lua b/gamedata/shaders/d3d11/model_scope_lense.lua new file mode 100644 index 0000000..48348e4 --- /dev/null +++ b/gamedata/shaders/d3d11/model_scope_lense.lua @@ -0,0 +1,31 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "forward_base") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + :scope(true) + + shader:dx10texture("s_base", t_base) + + shader:dx10texture("env_s0", "$user$env_s0") + shader:dx10texture("env_s1", "$user$env_s1") + + shader:dx10texture("sky_s0", "$user$sky0") + shader:dx10texture("sky_s1", "$user$sky1") + + shader:dx10texture("s_material", "$user$material") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_rtlinear") + shader:dx10sampler("smp_material") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("scope_lense_mask", "scope_lense_mask") + : zb(false, true) : scope(true) : fog(false) + + shader : dx10texture("s_position", "$user$position") + shader : dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/model_scope_lense.ps.hlsl b/gamedata/shaders/d3d11/model_scope_lense.ps.hlsl new file mode 100644 index 0000000..4cd6898 --- /dev/null +++ b/gamedata/shaders/d3d11/model_scope_lense.ps.hlsl @@ -0,0 +1,29 @@ +#include "common.hlsli" + +uniform float4 m_hud_params; + +struct v2p +{ + float2 tc0: TEXCOORD0; + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; +}; + +float4 main(v2p I, float4 pos2d : SV_POSITION) : SV_Target +{ + if (m_hud_params.y * m_hud_params.a < 0.0001f) { + return 0.0f; + } + + float4 t_base = s_base.Sample(smp_base, I.tc0); + t_base.xyz = detonemap(t_base.xyz); + + float4 t_vp2 = s_image[pos2d.xy]; + + float alpha = m_hud_params.y * m_hud_params.a; + t_vp2 *= saturate(alpha * 2.0f - 1.0f); + + float3 final = lerp(t_vp2.xyz, t_base.xyz, t_base.a); + return float4(final.xyz, saturate(alpha * 2.0f)); +} + diff --git a/gamedata/shaders/d3d11/model_scope_lense_lerp.ps.hlsl b/gamedata/shaders/d3d11/model_scope_lense_lerp.ps.hlsl new file mode 100644 index 0000000..5b6cc22 --- /dev/null +++ b/gamedata/shaders/d3d11/model_scope_lense_lerp.ps.hlsl @@ -0,0 +1,38 @@ +#include "common.hlsli" + +uniform float4 m_hud_params; +uniform float4 m_zoom_deviation; + +struct v2p +{ + float2 tc0: TEXCOORD0; + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; +}; + +float4 main(v2p I, float4 pos2d : SV_POSITION) : SV_Target +{ + if (m_hud_params.y * m_hud_params.a < 0.0001f) { + return 0.0f; + } + + float2 coords = I.tc0; + coords.x *= 0.5f; + + float4 base2 = s_base.Sample(smp_base, coords); + coords.x += 0.5f; + + float4 t_base = s_base.Sample(smp_base, coords); + + t_base = lerp(base2, t_base, m_zoom_deviation.z); + t_base.xyz = detonemap(t_base.xyz); + + float4 t_vp2 = s_image[pos2d.xy]; + + float alpha = m_hud_params.y * m_hud_params.a; + t_vp2 *= saturate(alpha * 2.0f - 1.0f); + + float3 final = lerp(t_vp2.xyz, t_base.xyz, t_base.a); + return float4(final.xyz, saturate(alpha * 2.0f)); +} + diff --git a/gamedata/shaders/d3d11/model_scope_lense_night.ps.hlsl b/gamedata/shaders/d3d11/model_scope_lense_night.ps.hlsl new file mode 100644 index 0000000..3e03f0d --- /dev/null +++ b/gamedata/shaders/d3d11/model_scope_lense_night.ps.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" +#include "pnv.hlsli" + +uniform float4 m_hud_params; + +struct v2p +{ + float2 tc0: TEXCOORD0; + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; +}; + +float4 main(v2p I, float4 pos2d : SV_POSITION) : SV_Target +{ + if (m_hud_params.y * m_hud_params.a < 0.0001f) { + return 0.0f; + } + + float4 t_base = s_base.Sample(smp_base, I.tc0); + t_base.xyz = detonemap(t_base.xyz); + + float4 t_vp2 = s_image[pos2d.xy]; + t_vp2.xyz = calc_night_vision_effect(I.tc0, t_vp2, float3(1.0, 2.0, 1.0)); + + float alpha = m_hud_params.y * m_hud_params.a; + t_vp2 *= saturate(alpha * 2.0f - 1.0f); + + float3 final = lerp(t_vp2.xyz, t_base.xyz, t_base.a); + return float4(final.xyz, saturate(alpha * 2.0f)); +} + diff --git a/gamedata/shaders/d3d11/model_tricolor_conditionbar.ps.hlsl b/gamedata/shaders/d3d11/model_tricolor_conditionbar.ps.hlsl new file mode 100644 index 0000000..ac5f117 --- /dev/null +++ b/gamedata/shaders/d3d11/model_tricolor_conditionbar.ps.hlsl @@ -0,0 +1,26 @@ +#include "common.hlsli" + +uniform float4 m_actor_params; + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main( v2p I ) : SV_Target +{ + float4 t_base; + t_base.r = ((m_actor_params.z<0.5) && (I.tc0.x < m_actor_params.z)) ? 1 : 0; + t_base.g = ((m_actor_params.z>0.25) && (I.tc0.x < m_actor_params.z)) ? 1 : 0; + t_base.b = 0; + t_base.a = (I.tc0.x < m_actor_params.z) ? 1 : 0; + + return float4 (t_base.r, t_base.g, t_base.b, t_base.a); + +} + + diff --git a/gamedata/shaders/d3d11/models_clockarrow_h.lua b/gamedata/shaders/d3d11/models_clockarrow_h.lua new file mode 100644 index 0000000..7f3d599 --- /dev/null +++ b/gamedata/shaders/d3d11/models_clockarrow_h.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_clockarrow_h") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_lmap", "$blackalpha") + shader:dx10sampler ("smp_base") +end \ No newline at end of file diff --git a/gamedata/shaders/d3d11/models_clockarrow_h_screen.lua b/gamedata/shaders/d3d11/models_clockarrow_h_screen.lua new file mode 100644 index 0000000..06d4bc7 --- /dev/null +++ b/gamedata/shaders/d3d11/models_clockarrow_h_screen.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_clockarrow_h") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_lmap", "$alphadxt1") + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_clockarrow_m.lua b/gamedata/shaders/d3d11/models_clockarrow_m.lua new file mode 100644 index 0000000..cf54b92 --- /dev/null +++ b/gamedata/shaders/d3d11/models_clockarrow_m.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_clockarrow_m") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_lmap", "$blackalpha") + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_clockarrow_m_screen.lua b/gamedata/shaders/d3d11/models_clockarrow_m_screen.lua new file mode 100644 index 0000000..4265e8d --- /dev/null +++ b/gamedata/shaders/d3d11/models_clockarrow_m_screen.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_clockarrow_m") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_lmap", "$alphadxt1") + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_clockarrow_s.lua b/gamedata/shaders/d3d11/models_clockarrow_s.lua new file mode 100644 index 0000000..891c101 --- /dev/null +++ b/gamedata/shaders/d3d11/models_clockarrow_s.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_clockarrow_s") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_lmap", "$blackalpha") + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_clockarrow_s_screen.lua b/gamedata/shaders/d3d11/models_clockarrow_s_screen.lua new file mode 100644 index 0000000..4d47486 --- /dev/null +++ b/gamedata/shaders/d3d11/models_clockarrow_s_screen.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_clockarrow_s") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_lmap", "$alphadxt1") + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_collimator.lua b/gamedata/shaders/d3d11/models_collimator.lua new file mode 100644 index 0000000..525e0d7 --- /dev/null +++ b/gamedata/shaders/d3d11/models_collimator.lua @@ -0,0 +1,11 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "base_lplanes_fft") + : fog(true) + : zb(true, false) + : blend(true, blend.one, blend.one) + : aref(true, 0) + : sorting(3, true) + : distort(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end \ No newline at end of file diff --git a/gamedata/shaders/d3d11/models_collimsight.lua b/gamedata/shaders/d3d11/models_collimsight.lua new file mode 100644 index 0000000..70fd6b3 --- /dev/null +++ b/gamedata/shaders/d3d11/models_collimsight.lua @@ -0,0 +1,11 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort_inv", "base_lplanes") + :fog(false) + :zb(true, false) + :blend(true, blend.srcalpha, blend.one) + :aref(true, 0) + :sorting(2, true) + --shader:sampler ("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_compass_arrow.lua b/gamedata/shaders/d3d11/models_compass_arrow.lua new file mode 100644 index 0000000..007d51d --- /dev/null +++ b/gamedata/shaders/d3d11/models_compass_arrow.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_compassarrow") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_lmap", "$blackalpha") + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_compass_arrow_screen.lua b/gamedata/shaders/d3d11/models_compass_arrow_screen.lua new file mode 100644 index 0000000..c492e58 --- /dev/null +++ b/gamedata/shaders/d3d11/models_compass_arrow_screen.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_compassarrow") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_lmap", "$alphadxt1") + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_compscreen.lua b/gamedata/shaders/d3d11/models_compscreen.lua new file mode 100644 index 0000000..88885dc --- /dev/null +++ b/gamedata/shaders/d3d11/models_compscreen.lua @@ -0,0 +1,18 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") + shader:dx10stencil(true, cmp_func.always, 255, 127, stencil_op.keep, stencil_op.replace, stencil_op.keep) + shader:dx10stencil_ref(1) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end \ No newline at end of file diff --git a/gamedata/shaders/d3d11/models_condition.lua b/gamedata/shaders/d3d11/models_condition.lua new file mode 100644 index 0000000..8636229 --- /dev/null +++ b/gamedata/shaders/d3d11/models_condition.lua @@ -0,0 +1,14 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_green_conditionbar") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_digiclock_hh_screen.lua b/gamedata/shaders/d3d11/models_digiclock_hh_screen.lua new file mode 100644 index 0000000..d43c5fd --- /dev/null +++ b/gamedata/shaders/d3d11/models_digiclock_hh_screen.lua @@ -0,0 +1,18 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") + shader:dx10stencil(true, cmp_func.always, 255, 127, stencil_op.keep, stencil_op.replace, stencil_op.keep) + shader:dx10stencil_ref(1) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_digiclock_hl_screen.lua b/gamedata/shaders/d3d11/models_digiclock_hl_screen.lua new file mode 100644 index 0000000..d43c5fd --- /dev/null +++ b/gamedata/shaders/d3d11/models_digiclock_hl_screen.lua @@ -0,0 +1,18 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") + shader:dx10stencil(true, cmp_func.always, 255, 127, stencil_op.keep, stencil_op.replace, stencil_op.keep) + shader:dx10stencil_ref(1) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_digiclock_mh_screen.lua b/gamedata/shaders/d3d11/models_digiclock_mh_screen.lua new file mode 100644 index 0000000..d43c5fd --- /dev/null +++ b/gamedata/shaders/d3d11/models_digiclock_mh_screen.lua @@ -0,0 +1,18 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") + shader:dx10stencil(true, cmp_func.always, 255, 127, stencil_op.keep, stencil_op.replace, stencil_op.keep) + shader:dx10stencil_ref(1) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_digiclock_ml_screen.lua b/gamedata/shaders/d3d11/models_digiclock_ml_screen.lua new file mode 100644 index 0000000..d43c5fd --- /dev/null +++ b/gamedata/shaders/d3d11/models_digiclock_ml_screen.lua @@ -0,0 +1,18 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") + shader:dx10stencil(true, cmp_func.always, 255, 127, stencil_op.keep, stencil_op.replace, stencil_op.keep) + shader:dx10stencil_ref(1) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_energy_gauss.lua b/gamedata/shaders/d3d11/models_energy_gauss.lua new file mode 100644 index 0000000..ecf7cf1 --- /dev/null +++ b/gamedata/shaders/d3d11/models_energy_gauss.lua @@ -0,0 +1,14 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_green_energybar") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_exohealth.lua b/gamedata/shaders/d3d11/models_exohealth.lua new file mode 100644 index 0000000..6f6f2fe --- /dev/null +++ b/gamedata/shaders/d3d11/models_exohealth.lua @@ -0,0 +1,14 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_exohealth") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_exoscreen01.lua b/gamedata/shaders/d3d11/models_exoscreen01.lua new file mode 100644 index 0000000..fefa49a --- /dev/null +++ b/gamedata/shaders/d3d11/models_exoscreen01.lua @@ -0,0 +1,11 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_exoscreen") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + --shader:sampler ("s_base") :texture (t_base) + shader:dx10texture ("s_base", t_base) + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_laserray.lua b/gamedata/shaders/d3d11/models_laserray.lua new file mode 100644 index 0000000..3824325 --- /dev/null +++ b/gamedata/shaders/d3d11/models_laserray.lua @@ -0,0 +1,11 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","base_lplanes") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + --shader:sampler ("s_base") :texture (t_base) + shader:dx10texture ("s_base", t_base) + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_lense_scope.lua b/gamedata/shaders/d3d11/models_lense_scope.lua new file mode 100644 index 0000000..335423f --- /dev/null +++ b/gamedata/shaders/d3d11/models_lense_scope.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("deffer_model","model_scope_lense") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_vp2", "$user$viewport2") + shader:dx10sampler ("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_lfo_glass_lens_weapons.lua b/gamedata/shaders/d3d11/models_lfo_glass_lens_weapons.lua new file mode 100644 index 0000000..c716089 --- /dev/null +++ b/gamedata/shaders/d3d11/models_lfo_glass_lens_weapons.lua @@ -0,0 +1,14 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("models_reflex_lens", "models_reflex_lens") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_tonemap", "$user$tonemap") + shader:dx10texture("s_env0", "$user$sky0") + shader:dx10texture("s_env1", "$user$sky1") + shader:dx10sampler("smp_rtlinear") +end diff --git a/gamedata/shaders/d3d11/models_lfo_light_dot_weapons.lua b/gamedata/shaders/d3d11/models_lfo_light_dot_weapons.lua new file mode 100644 index 0000000..a3aec79 --- /dev/null +++ b/gamedata/shaders/d3d11/models_lfo_light_dot_weapons.lua @@ -0,0 +1,11 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("parallax_mark", "parallax_mark") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_rtlinear") +end diff --git a/gamedata/shaders/d3d11/models_lightplanes.lua b/gamedata/shaders/d3d11/models_lightplanes.lua new file mode 100644 index 0000000..86820ba --- /dev/null +++ b/gamedata/shaders/d3d11/models_lightplanes.lua @@ -0,0 +1,11 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort_inv", "base_lplanes") + :fog(false) + :zb(true, false) + :blend(true, blend.srcalpha, blend.one) + :aref(true, 0) + :sorting(2, true) + --shader:sampler ("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_pautina.lua b/gamedata/shaders/d3d11/models_pautina.lua new file mode 100644 index 0000000..c0740bf --- /dev/null +++ b/gamedata/shaders/d3d11/models_pautina.lua @@ -0,0 +1,23 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort4ghost", "particle_hard") + :sorting(3, true) + :blend(true, blend.srccolor, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(false) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4ghost", "particle_distort_hard") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_distort", "pfx\\pfx_dist_glass") + shader:dx10sampler("smp_linear") +end diff --git a/gamedata/shaders/d3d11/models_pda.lua b/gamedata/shaders/d3d11/models_pda.lua new file mode 100644 index 0000000..809d7b0 --- /dev/null +++ b/gamedata/shaders/d3d11/models_pda.lua @@ -0,0 +1,18 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:dx10texture("s_base", "$user$ui_pda") + shader:dx10sampler("smp_base") + shader:dx10stencil(true, cmp_func.always, 255, 127, stencil_op.keep, stencil_op.replace, stencil_op.keep) + shader:dx10stencil_ref(1) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) + shader:dx10texture("s_base", "$user$ui_pda") + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_reflex_lens.lua b/gamedata/shaders/d3d11/models_reflex_lens.lua new file mode 100644 index 0000000..c716089 --- /dev/null +++ b/gamedata/shaders/d3d11/models_reflex_lens.lua @@ -0,0 +1,14 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("models_reflex_lens", "models_reflex_lens") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_tonemap", "$user$tonemap") + shader:dx10texture("s_env0", "$user$sky0") + shader:dx10texture("s_env1", "$user$sky1") + shader:dx10sampler("smp_rtlinear") +end diff --git a/gamedata/shaders/d3d11/models_reflex_lens.ps.hlsl b/gamedata/shaders/d3d11/models_reflex_lens.ps.hlsl new file mode 100644 index 0000000..9724798 --- /dev/null +++ b/gamedata/shaders/d3d11/models_reflex_lens.ps.hlsl @@ -0,0 +1,90 @@ +/* + ===================================================================== + Addon : Parallax Reflex Sights + Link : https://www.moddb.com/mods/stalker-anomaly/addons/parallax-reflex-sights + Authors : LVutner, party_50 + Date : 06.02.2024 + Last Edit : 15.05.2025 + ===================================================================== +*/ + +#include "common.hlsli" + +struct vf +{ + float4 hpos : SV_Position; + float2 tc0 : TEXCOORD0; + float3 T : TEXCOORD1; + float3 B : TEXCOORD2; + float3 N : TEXCOORD3; + float3 P : TEXCOORD4; +}; + +TextureCube s_env0; +TextureCube s_env1; + +float3 sample_sky(float3 dir) +{ + dir.y = (dir.y - max(cos(dir.x) * 0.65, cos(dir.z) * 0.65)) * 2.1; + dir.y -= -0.35; + + float3 sky0 = s_env0.SampleLevel(smp_base, dir, 0).xyz; + float3 sky1 = s_env1.SampleLevel(smp_base, dir, 0).xyz; + + return lerp(sky0, sky1, L_ambient.w); +} + +float current_lum() +{ + float lum_min = 0.85; + float lum_max = 3; + float lum = s_tonemap.Load(int3(0, 0, 0)).x; + return clamp(1 - (lum - lum_min) / (lum_max - lum_min), 0, 1); +} + +float3 sample_lens_normalmap(float2 tc, float radius) +{ + float2 xy = (tc - 0.5) * 2; + return float3(xy, sign(radius) * sqrt(pow(radius, 2) - dot(xy, xy))); +} + +float4 sample_reflections(float2 tc, float3x3 TBNw_inv, float3 w_pos, float3 w_nrm) +{ + float3 normalmap = sample_lens_normalmap(tc, 2); + float3 lensnormal = normalize(float3(dot(normalmap, TBNw_inv[0]), dot(normalmap, TBNw_inv[1]), dot(normalmap, TBNw_inv[2]))); + + float3 reflections = sample_sky(reflect(normalize(normalize(w_pos - eye_position)), lensnormal)); + + float angle_factor = (dot(normalize(w_pos - eye_position), normalize(w_nrm)) + 1) / 2; + + float4 color_direct = s_base.Sample(smp_rtlinear, float2(tc.x / 2 + 0.5, tc.y / 2)); + float4 color_angled = s_base.Sample(smp_rtlinear, float2(tc.x / 2 + 0.5, tc.y / 2 + 0.5)); + float4 color = lerp(color_direct, color_angled, smoothstep(0, 0.5, angle_factor)); + reflections = saturate(reflections * color.rgb); + + return float4(reflections, current_lum() * smoothstep(0, 0.03, angle_factor) * color.a); +} + +float4 sample_dirt(float2 tc, float3 w_nrm) +{ + float4 color = s_base.Sample(smp_rtlinear, float2(tc.x / 2, tc.y / 2 + 0.5)); + return float4(color.rgb * 2 * calc_model_lq_lighting(w_nrm), color.a); +} + +float4 rgba_blend(float4 b, float4 a) +{ + float na = a.a + b.a * (1 - a.a); + float3 nc = na > 0 ? (a.rgb * a.a + b.rgb * b.a * (1 - a.a)) / na : float3(0, 0, 0); + return float4(nc, na); +} + +float4 main(vf I): SV_Target +{ + float4 lens = s_base.Sample(smp_rtlinear, I.tc0 / 2); + lens.a *= current_lum(); + + float4 reflections = sample_reflections(I.tc0, transpose(float3x3(I.T, I.B, I.N)), I.P, I.N); + float4 dirt = sample_dirt(I.tc0, I.N); + + return rgba_blend(rgba_blend(lens, reflections), dirt); +} diff --git a/gamedata/shaders/d3d11/models_reflex_lens.vs.hlsl b/gamedata/shaders/d3d11/models_reflex_lens.vs.hlsl new file mode 100644 index 0000000..220940f --- /dev/null +++ b/gamedata/shaders/d3d11/models_reflex_lens.vs.hlsl @@ -0,0 +1,51 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : SV_Position; + float2 tc0 : TEXCOORD0; + float3 T : TEXCOORD1; + float3 B : TEXCOORD2; + float3 N : TEXCOORD3; + float3 P : TEXCOORD4; +}; + +vf _main (v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); + o.tc0 = v.tc.xy; + o.T = mul(m_W, v.T).xyz; + o.B = mul(m_W, v.B).xyz; + o.N = mul(m_W, v.N).xyz; + o.P = mul(m_W, v.P).xyz; + + return o; +} + +// Skinning +#ifdef SKIN_NONE +vf main(v_model v) { return _main(v); } +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) { return _main(skinning_0(v)); } +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) { return _main(skinning_1(v)); } +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) { return _main(skinning_2(v)); } +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) { return _main(skinning_3(v)); } +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) { return _main(skinning_4(v)); } +#endif diff --git a/gamedata/shaders/d3d11/models_reflex_reticle.lua b/gamedata/shaders/d3d11/models_reflex_reticle.lua new file mode 100644 index 0000000..a65cde7 --- /dev/null +++ b/gamedata/shaders/d3d11/models_reflex_reticle.lua @@ -0,0 +1,11 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("models_reflex_reticle", "models_reflex_reticle") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_rtlinear") +end diff --git a/gamedata/shaders/d3d11/models_reflex_reticle.ps.hlsl b/gamedata/shaders/d3d11/models_reflex_reticle.ps.hlsl new file mode 100644 index 0000000..cca21a5 --- /dev/null +++ b/gamedata/shaders/d3d11/models_reflex_reticle.ps.hlsl @@ -0,0 +1,41 @@ +/* + ===================================================================== + Addon : Parallax Reflex Sights + Link : https://www.moddb.com/mods/stalker-anomaly/addons/parallax-reflex-sights + Authors : LVutner, party_50 + Date : 06.02.2024 + Last Edit : 12.05.2025 + ===================================================================== +*/ + +#include "common.hlsli" +#include "mark_adjust.hlsli" + +#define OFFSET 0.0039 +#define PARALLAX 1000.0 +#define SCALE 160.0 + +struct vf +{ + float4 hpos : SV_Position; + float2 tc0 : TEXCOORD0; + float3 P : TEXCOORD1; + float3 T : TEXCOORD3; + float3 B : TEXCOORD4; + float3 N : TEXCOORD5; +}; + +float4 main(vf I): SV_Target +{ + float3x3 TBN = float3x3(I.T + OFFSET, I.B + OFFSET, I.N); + float3 V_tangent = normalize(float3(dot(-I.P, TBN[0]), dot(-I.P, TBN[1]), dot(-I.P, TBN[2]))); + float2 parallax_tc = I.tc0 - V_tangent.xy * PARALLAX; + + parallax_tc = (parallax_tc + (SCALE - 1) / 2) / SCALE; + + #ifdef MARK_ADJUST + parallax_tc = mark_adjust(parallax_tc); + #endif + + return s_base.SampleLevel(smp_rtlinear, parallax_tc, 0.0); +} diff --git a/gamedata/shaders/d3d11/models_reflex_reticle.vs.hlsl b/gamedata/shaders/d3d11/models_reflex_reticle.vs.hlsl new file mode 100644 index 0000000..70fc037 --- /dev/null +++ b/gamedata/shaders/d3d11/models_reflex_reticle.vs.hlsl @@ -0,0 +1,51 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : SV_Position; + float2 tc0 : TEXCOORD0; + float3 P : TEXCOORD1; + float3 T : TEXCOORD2; + float3 B : TEXCOORD3; + float3 N : TEXCOORD4; +}; + +vf _main (v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); + o.tc0 = v.tc.xy; + o.P = mul(m_WV, v.P).xyz; + o.T = mul(m_WV, v.T).xyz; + o.B = mul(m_WV, v.B).xyz; + o.N = mul(m_WV, v.N).xyz; + + return o; +} + +// Skinning +#ifdef SKIN_NONE +vf main(v_model v) { return _main(v); } +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) { return _main(skinning_0(v)); } +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) { return _main(skinning_1(v)); } +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) { return _main(skinning_2(v)); } +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) { return _main(skinning_3(v)); } +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) { return _main(skinning_4(v)); } +#endif diff --git a/gamedata/shaders/d3d11/models_selflight.lua b/gamedata/shaders/d3d11/models_selflight.lua new file mode 100644 index 0000000..4a22654 --- /dev/null +++ b/gamedata/shaders/d3d11/models_selflight.lua @@ -0,0 +1,18 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") + shader:dx10stencil(true, cmp_func.always, 255, 127, stencil_op.keep, stencil_op.replace, stencil_op.keep) + shader:dx10stencil_ref(1) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissive") + :zb(true, false) + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_selflight_det.lua b/gamedata/shaders/d3d11/models_selflight_det.lua new file mode 100644 index 0000000..fbadbe0 --- /dev/null +++ b/gamedata/shaders/d3d11/models_selflight_det.lua @@ -0,0 +1,23 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + -- shader:sampler ("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") + shader:dx10stencil(true, cmp_func.always, + 255, 127, + stencil_op.keep, stencil_op.replace, stencil_op.keep) + shader:dx10stencil_ref(1) + shader:dx10color_write_enable(true, true, true, false) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) + shader:dx10color_write_enable(true, true, true, false) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_selflightl.lua b/gamedata/shaders/d3d11/models_selflightl.lua new file mode 100644 index 0000000..d43c5fd --- /dev/null +++ b/gamedata/shaders/d3d11/models_selflightl.lua @@ -0,0 +1,18 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") + shader:dx10stencil(true, cmp_func.always, 255, 127, stencil_op.keep, stencil_op.replace, stencil_op.keep) + shader:dx10stencil_ref(1) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_selflightw.xml b/gamedata/shaders/d3d11/models_selflightw.xml new file mode 100644 index 0000000..e8857a8 --- /dev/null +++ b/gamedata/shaders/d3d11/models_selflightw.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gamedata/shaders/d3d11/models_xanomaly.lua b/gamedata/shaders/d3d11/models_xanomaly.lua new file mode 100644 index 0000000..28f4ab5 --- /dev/null +++ b/gamedata/shaders/d3d11/models_xanomaly.lua @@ -0,0 +1,34 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "forward_base") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + + shader:dx10texture("s_base", t_base) + + shader:dx10texture("env_s0", "$user$env_s0") + shader:dx10texture("env_s1", "$user$env_s1") + + shader:dx10texture("sky_s0", "$user$sky0") + shader:dx10texture("sky_s1", "$user$sky1") + + shader:dx10texture("s_material", "$user$material") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_rtlinear") + shader:dx10sampler("smp_material") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort_hard") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, true) + :fog(false) + :distort(true) + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_distort", "pfx\\pfx_dist_glass3") + shader:dx10sampler("smp_linear") +end diff --git a/gamedata/shaders/d3d11/models_xdistort.lua b/gamedata/shaders/d3d11/models_xdistort.lua new file mode 100644 index 0000000..256bd52 --- /dev/null +++ b/gamedata/shaders/d3d11/models_xdistort.lua @@ -0,0 +1,26 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_alphaonly") -- particle_alphaonly + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + -- shader:sampler("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort_hard") + :sorting(3, false) + :blend(true, blend.srccolor, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + -- shader:sampler ("s_base") :texture (t_base) + -- shader:sampler ("s_distort") :texture (t_base) -- "pfx\\pfx_distortion" + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_distort", t_base) + shader:dx10sampler("smp_linear") +end diff --git a/gamedata/shaders/d3d11/models_xdistortcolor.lua b/gamedata/shaders/d3d11/models_xdistortcolor.lua new file mode 100644 index 0000000..1fe8dc9 --- /dev/null +++ b/gamedata/shaders/d3d11/models_xdistortcolor.lua @@ -0,0 +1,25 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_hard") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort_hard") + :sorting(3, false) + :blend(true, blend.srccolor, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_distort", t_base) + shader:dx10sampler("smp_linear") +end diff --git a/gamedata/shaders/d3d11/models_xdistortcolorl.lua b/gamedata/shaders/d3d11/models_xdistortcolorl.lua new file mode 100644 index 0000000..cc4489c --- /dev/null +++ b/gamedata/shaders/d3d11/models_xdistortcolorl.lua @@ -0,0 +1,26 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_hard") -- particle_alphaonly + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + -- shader:sampler ("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort_hard") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + -- shader:sampler ("s_base") :texture (t_base) + -- shader:sampler ("s_distort") :texture (t_base) -- "pfx\\pfx_distortion" + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_distort", t_base) + shader:dx10sampler("smp_linear") +end diff --git a/gamedata/shaders/d3d11/models_xdistortcolorlinv.lua b/gamedata/shaders/d3d11/models_xdistortcolorlinv.lua new file mode 100644 index 0000000..c2a18f8 --- /dev/null +++ b/gamedata/shaders/d3d11/models_xdistortcolorlinv.lua @@ -0,0 +1,26 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort_inv", "particle_hard") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + -- shader:sampler ("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort_hard") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + -- shader:sampler ("s_base") :texture (t_base) + -- shader:sampler ("s_distort") :texture (t_base) -- "pfx\\pfx_distortion" + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_distort", t_base) + shader:dx10sampler("smp_linear") +end diff --git a/gamedata/shaders/d3d11/models_xdistortinv.lua b/gamedata/shaders/d3d11/models_xdistortinv.lua new file mode 100644 index 0000000..82817fc --- /dev/null +++ b/gamedata/shaders/d3d11/models_xdistortinv.lua @@ -0,0 +1,26 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort_inv", "particle_alphaonly") -- particle_alphaonly + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + -- shader:sampler ("s_base") :texture (t_base) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort_inv", "particle_distort_hard") + :sorting(3, false) + :blend(true, blend.srccolor, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + -- shader:sampler ("s_base") :texture (t_base) + -- shader:sampler ("s_distort") :texture (t_base) -- "pfx\\pfx_distortion" + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_distort", t_base) + shader:dx10sampler("smp_linear") +end diff --git a/gamedata/shaders/d3d11/models_xmonolith.lua b/gamedata/shaders/d3d11/models_xmonolith.lua new file mode 100644 index 0000000..5a0b4ae --- /dev/null +++ b/gamedata/shaders/d3d11/models_xmonolith.lua @@ -0,0 +1,35 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "forward_base") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + + shader:dx10texture("s_base", t_base) + + shader:dx10texture("env_s0", "$user$env_s0") + shader:dx10texture("env_s1", "$user$env_s1") + + shader:dx10texture("sky_s0", "$user$sky0") + shader:dx10texture("sky_s1", "$user$sky1") + + shader:dx10texture("s_material", "$user$material") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_rtlinear") + shader:dx10sampler("smp_material") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort_hard") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_distort", "pfx\\pfx_dist_glass4") + shader:dx10sampler("smp_linear") +end diff --git a/gamedata/shaders/d3d11/models_xwindows.lua b/gamedata/shaders/d3d11/models_xwindows.lua new file mode 100644 index 0000000..9dd5dde --- /dev/null +++ b/gamedata/shaders/d3d11/models_xwindows.lua @@ -0,0 +1,35 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "forward_base") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + + shader:dx10texture("s_base", t_base) + + shader:dx10texture("env_s0", "$user$env_s0") + shader:dx10texture("env_s1", "$user$env_s1") + + shader:dx10texture("sky_s0", "$user$sky0") + shader:dx10texture("sky_s1", "$user$sky1") + + shader:dx10texture("s_material", "$user$material") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_rtlinear") + shader:dx10sampler("smp_material") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort_hard") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_distort", "pfx\\pfx_dist_glass") + shader:dx10sampler("smp_linear") +end diff --git a/gamedata/shaders/d3d11/models_zoom.lua b/gamedata/shaders/d3d11/models_zoom.lua new file mode 100644 index 0000000..3bac93f --- /dev/null +++ b/gamedata/shaders/d3d11/models_zoom.lua @@ -0,0 +1,25 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_scope_lense") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_image", "$user$accum") + shader:dx10sampler ("smp_base") + shader:dx10sampler ("smp_rtlinear") + shader:dx10sampler ("smp_nofilter") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("scope_lense_mask", "scope_lense_mask") + : zb(false, true) : scope(true) : fog(false) + + shader : dx10texture("s_position", "$user$position") + shader : dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_zoom_gauss.lua b/gamedata/shaders/d3d11/models_zoom_gauss.lua new file mode 100644 index 0000000..3670157 --- /dev/null +++ b/gamedata/shaders/d3d11/models_zoom_gauss.lua @@ -0,0 +1,25 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_scope_gauss") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_image", "$user$accum") + shader:dx10sampler ("smp_base") + shader:dx10sampler ("smp_rtlinear") + shader:dx10sampler ("smp_nofilter") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("scope_lense_mask", "scope_lense_mask") + : zb(false, true) : scope(true) : fog(false) + + shader : dx10texture("s_position", "$user$position") + shader : dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_zoom_lerp.lua b/gamedata/shaders/d3d11/models_zoom_lerp.lua new file mode 100644 index 0000000..64a04f1 --- /dev/null +++ b/gamedata/shaders/d3d11/models_zoom_lerp.lua @@ -0,0 +1,25 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_scope_lense_lerp") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_image", "$user$accum") + shader:dx10sampler ("smp_base") + shader:dx10sampler ("smp_rtlinear") + shader:dx10sampler ("smp_nofilter") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("scope_lense_mask", "scope_lense_mask") + : zb(false, true) : scope(true) : fog(false) + + shader : dx10texture("s_position", "$user$position") + shader : dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/models_zoomnight.lua b/gamedata/shaders/d3d11/models_zoomnight.lua new file mode 100644 index 0000000..db8aa44 --- /dev/null +++ b/gamedata/shaders/d3d11/models_zoomnight.lua @@ -0,0 +1,25 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort","model_scope_lense_night") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:dx10texture ("s_base", t_base) + shader:dx10texture ("s_image", "$user$accum") + shader:dx10sampler ("smp_base") + shader:dx10sampler ("smp_rtlinear") + shader:dx10sampler ("smp_nofilter") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("scope_lense_mask", "scope_lense_mask") + : zb(false, true) : scope(true) : fog(false) + + shader : dx10texture("s_position", "$user$position") + shader : dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/parallax_mark.ps.hlsl b/gamedata/shaders/d3d11/parallax_mark.ps.hlsl new file mode 100644 index 0000000..e25fed6 --- /dev/null +++ b/gamedata/shaders/d3d11/parallax_mark.ps.hlsl @@ -0,0 +1,105 @@ +/* + ===================================================================== + Addon : Parallax Reflex Sights + Link : https://www.moddb.com/mods/stalker-anomaly/addons/parallax-reflex-sights + Authors : LVutner, party_50 + Date : 06.02.2024 + Last Edit : 06.02.2024 + ===================================================================== +*/ + +#include "common.hlsli" + +// Important: +// In perfect world OFFSET constants should be 0, but most of reflex sight lenses +// are not actually parallel to screen, so we compensate it. For PROJECT_DISTANCE=100 +// offset values should be at least 0.005 even for perfect models and position configs due +// to normal vectors resolution. +// +// If you want the most realistic look, set PROJECT_DISTANCE to some high value (like 100.0), +// increase SIZE_FACTOR to something like 20.0, set OFFSET_X and OFFSET_Y to 0.005. +// Then you will have to adjust models so that mark texture point is exactly in center +// and edit aim position in configs. + +#define OFFSET_X 0.004 // (default 0.004) Normal vector x coordinate max absolute value which is considered 0 +#define OFFSET_Y 0.05 // (default 0.05) Normal vector y coordinate max absolute value which is considered 0 +#define PROJECT_DISTANCE 20.0 // (default 20.0) Distance to projected mark +#define SIZE_FACTOR 4.0 // (default 4.0) Mark size factor + +// Vertex to Pixel struct +struct vf +{ + float2 tc0 : TEXCOORD0; + float3 v_pos : TEXCOORD1; + float3 v_nrm : TEXCOORD2; +}; + +// This gives us cotangent basis that can be used instead of TBN. +// It is useful when tangents of your mesh are broken, or not available. +// Source: http://www.thetenthplanet.de/archives/1180 +float3x3 cotangent_frame(float3 N, float3 P, float2 uv) +{ + // Get edge vectors of the pixel triangle + float3 dp1 = ddx(P); + float3 dp2 = ddy(P); + float2 duv1 = ddx(uv); + float2 duv2 = ddy(uv); + + // Solve the linear system + float3 dp2perp = cross(dp2, N); + float3 dp1perp = cross(N, dp1); + float3 T = dp2perp * duv1.x + dp1perp * duv2.x; + float3 B = dp2perp * duv1.y + dp1perp * duv2.y; + + // Construct a scale-invariant frame + float invmax = rsqrt(max(dot(T, T), dot(B, B))); + return float3x3(T * invmax, B * invmax, N); +} + +// If N.xy vector is close to zero, make it zero +float3 offset_normal(float3 N) +{ + if (N.x > 0) + N.x = max(N.x, OFFSET_X) - OFFSET_X; + else + N.x = min(N.x, -OFFSET_X) + OFFSET_X; + + if (N.y > 0) + N.y = max(N.y, OFFSET_Y) - OFFSET_Y; + else + N.y = min(N.y, -OFFSET_Y) + OFFSET_Y; + + return N; +} + +float4 main(vf I): SV_Target +{ + // Derive view direction from view space position + float3 V = -I.v_pos; + + // Build cotangent frame + // Important: In theory, you don't need to do this. It should be possible to pass TBN straight from VS + float3x3 TBN = cotangent_frame(offset_normal(I.v_nrm), I.v_pos, I.tc0.xy); + + // Transform view direction to tangent space, and normalize (Just in case) + float3 V_tangent = normalize(float3(dot(V, TBN[0]), dot(V, TBN[1]), dot(V, TBN[2]))); + + // Calculate texture coordinates used to fetch the mark texture + // Important: PROJECT_DISTANCE can be positive or negative, 0 = no projection at all + float2 parallax_tc = I.tc0 - V_tangent.xy * PROJECT_DISTANCE; + + // Upscaling the texture + parallax_tc.x = (parallax_tc.x + (SIZE_FACTOR - 1) / 2) / SIZE_FACTOR; + parallax_tc.y = (parallax_tc.y + (SIZE_FACTOR - 1) / 2) / SIZE_FACTOR; + + #ifdef MARK_ADJUST + parallax_tc = mark_adjust(parallax_tc); + #endif + + // Fetch the mark texture + // Important: We do not want texture to repeat itself, so we use sampler with CLAMP address + // Important2: We do not want to sample mip levels of the mark texture, let's keep this thing sharp as fuck + float4 mark_texture = s_base.SampleLevel(smp_rtlinear, parallax_tc, 0.0); + + return mark_texture; +} diff --git a/gamedata/shaders/d3d11/parallax_mark.vs.hlsl b/gamedata/shaders/d3d11/parallax_mark.vs.hlsl new file mode 100644 index 0000000..c4e9e36 --- /dev/null +++ b/gamedata/shaders/d3d11/parallax_mark.vs.hlsl @@ -0,0 +1,49 @@ +#include "common.hlsli" +#include "skin.hlsli" + +// Vertex to Pixel struct +struct vf +{ + float2 tc0 : TEXCOORD0; + float3 v_pos : TEXCOORD1; + float3 v_nrm : TEXCOORD2; + float4 hpos : SV_Position; +}; + +vf _main (v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // Homogenous position + o.tc0 = v.tc.xy; //Texture coordinates + + o.v_pos = mul(m_WV, v.P).xyz; // Position in view space + o.v_nrm = mul(m_WV, v.N).xyz; // Normal in view space + + return o; +} + +//Skinning +#ifdef SKIN_NONE +vf main(v_model v) { return _main(v); } +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) { return _main(skinning_0(v)); } +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) { return _main(skinning_1(v)); } +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) { return _main(skinning_2(v)); } +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) { return _main(skinning_3(v)); } +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) { return _main(skinning_4(v)); } +#endif diff --git a/gamedata/shaders/d3d11/particle-clip.vs.hlsl b/gamedata/shaders/d3d11/particle-clip.vs.hlsl new file mode 100644 index 0000000..6abd381 --- /dev/null +++ b/gamedata/shaders/d3d11/particle-clip.vs.hlsl @@ -0,0 +1,27 @@ +#include "common.hlsli" + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; +}; +struct v2p +{ + float2 tc : TEXCOORD0; + float4 c : COLOR0; + float4 hpos : SV_POSITION; +}; + +v2p main(vv v) +{ + v2p o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.hpos.z = abs(o.hpos.z); + o.hpos.w = abs(o.hpos.w); + o.tc = v.tc; // copy tc + o.c = v.c; // copy color + + return o; +} diff --git a/gamedata/shaders/d3d11/particle.ps.hlsl b/gamedata/shaders/d3d11/particle.ps.hlsl new file mode 100644 index 0000000..cd3dcc3 --- /dev/null +++ b/gamedata/shaders/d3d11/particle.ps.hlsl @@ -0,0 +1,32 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; + float4 c : COLOR0; + +// Igor: for additional depth dest +#ifdef USE_SOFT_PARTICLES + float4 tctexgen : TEXCOORD1; +#endif // USE_SOFT_PARTICLES + + float4 hpos : SV_POSITION; + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : SV_Target +{ + float4 result = I.c * s_base.Sample(smp_base, I.tc0); + + // Igor: additional depth test +#ifdef USE_SOFT_PARTICLES + float4 Point = GbufferGetPoint(I.hpos.xy); + float spaceDepth = Point.z - I.tctexgen.z; + result *= Contrast(saturate(spaceDepth * 1.3f), 2.0f); +#endif // USE_SOFT_PARTICLES + + clip(result.a - (0.01f / 255.0f)); + return PushGamma(lerp(fog_color, result, I.fog)); +} + diff --git a/gamedata/shaders/d3d11/particle.vs.hlsl b/gamedata/shaders/d3d11/particle.vs.hlsl new file mode 100644 index 0000000..7a3c24c --- /dev/null +++ b/gamedata/shaders/d3d11/particle.vs.hlsl @@ -0,0 +1,45 @@ +#include "common.hlsli" + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; +}; + +struct v2p +{ + float2 tc : TEXCOORD0; + float4 c : COLOR0; + +// Igor: for additional depth dest +#ifdef USE_SOFT_PARTICLES + float4 tctexgen : TEXCOORD1; +#endif // USE_SOFT_PARTICLES + + float4 hpos : SV_POSITION; + float fog : FOG; +}; + +uniform float4x4 mVPTexgen; + +v2p main(vv v) +{ + v2p o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + // o.hpos = mul (m_VP, v.P); // xform, input in world coords + o.tc = v.tc; // copy tc + o.c = unpack_D3DCOLOR(v.c); // copy color + + o.hpos.xy += m_taa_jitter.xy * o.hpos.w; +// Igor: for additional depth dest +#ifdef USE_SOFT_PARTICLES + o.tctexgen = mul(mVPTexgen, v.P); + o.tctexgen.z = mul(m_WV, v.P).z; +#endif // USE_SOFT_PARTICLES + + o.fog = 1.0f - calc_fogging(v.P.xyz); // fog, input in world coords + return o; +} + diff --git a/gamedata/shaders/d3d11/particle_add.ps.hlsl b/gamedata/shaders/d3d11/particle_add.ps.hlsl new file mode 100644 index 0000000..b6ae2f9 --- /dev/null +++ b/gamedata/shaders/d3d11/particle_add.ps.hlsl @@ -0,0 +1,39 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; + float4 c : COLOR0; + +// Igor: for additional depth dest +#ifdef USE_SOFT_PARTICLES + float4 tctexgen : TEXCOORD1; +#endif // USE_SOFT_PARTICLES + + float4 hpos : SV_POSITION; + float fog : FOG; +}; + +// Must be less than view near +#define DEPTH_EPSILON 0.1h + +float4 main(v2p I) : SV_Target +{ + float4 result = I.c * s_base.Sample(smp_base, I.tc0); + + // Igor: additional depth test +#ifdef USE_SOFT_PARTICLES + float4 Point = GbufferGetPoint(I.hpos.xy); + + float spaceDepth = Point.z - I.tctexgen.z; + result *= Contrast(saturate(spaceDepth * 1.3f), 2.0f); +#endif // USE_SOFT_PARTICLES + + clip(result.a - (0.01f / 255.0f)); + + result.w *= I.fog; + result.xyz *= I.fog; + + return PushGamma(result); +} + diff --git a/gamedata/shaders/d3d11/particle_alphaonly.ps.hlsl b/gamedata/shaders/d3d11/particle_alphaonly.ps.hlsl new file mode 100644 index 0000000..2c4ca01 --- /dev/null +++ b/gamedata/shaders/d3d11/particle_alphaonly.ps.hlsl @@ -0,0 +1,14 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : SV_Target +{ + return PushGamma(I.c.a * s_base.Sample(smp_base, I.tc0).a); +} + diff --git a/gamedata/shaders/d3d11/particle_distort.ps.hlsl b/gamedata/shaders/d3d11/particle_distort.ps.hlsl new file mode 100644 index 0000000..f408a73 --- /dev/null +++ b/gamedata/shaders/d3d11/particle_distort.ps.hlsl @@ -0,0 +1,32 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse + +#ifdef USE_SOFT_PARTICLES + // Igor: for additional depth dest + float4 tctexgen : TEXCOORD1; +#endif // USE_SOFT_PARTICLES + + float4 hpos : SV_POSITION; +}; + +// Pixel +Texture2D s_distort; +float4 main(v2p I) : SV_Target +{ + float4 distort = s_distort.Sample(smp_linear, I.tc0); + float factor = distort.w * dot(I.c.xyz, 0.3333f); + + // #ifdef USE_SOFT_PARTICLES + // float4 Point = GbufferGetPoint(I.hpos.xy); + + // float spaceDepth = Point.z - I.tctexgen.z; + // factor *= Contrast(saturate(spaceDepth * 1.3f), 2.0f); + // #endif // USE_SOFT_PARTICLES + + return float4(distort.xyz, factor); +} + diff --git a/gamedata/shaders/d3d11/particle_distort_hard.ps.hlsl b/gamedata/shaders/d3d11/particle_distort_hard.ps.hlsl new file mode 100644 index 0000000..0c6e97a --- /dev/null +++ b/gamedata/shaders/d3d11/particle_distort_hard.ps.hlsl @@ -0,0 +1,2 @@ +#undef USE_SOFT_PARTICLES +#include "particle_distort.ps.hlsl" diff --git a/gamedata/shaders/d3d11/particle_hard.ps.hlsl b/gamedata/shaders/d3d11/particle_hard.ps.hlsl new file mode 100644 index 0000000..385c7a7 --- /dev/null +++ b/gamedata/shaders/d3d11/particle_hard.ps.hlsl @@ -0,0 +1,2 @@ +#undef USE_SOFT_PARTICLES +#include "particle.ps.hlsl" diff --git a/gamedata/shaders/d3d11/particle_s-aadd.ps.hlsl b/gamedata/shaders/d3d11/particle_s-aadd.ps.hlsl new file mode 100644 index 0000000..78d9156 --- /dev/null +++ b/gamedata/shaders/d3d11/particle_s-aadd.ps.hlsl @@ -0,0 +1,16 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : SV_Target +{ + float4 c = I.c * s_base.Sample(smp_base, I.tc0); + c.xyz *= c.w; + float3 r = float3(1, 1, 1) - c.xyz + c.xyz * c.xyz; + return float4(PushGamma(r), 1); +} diff --git a/gamedata/shaders/d3d11/particle_s-add.ps.hlsl b/gamedata/shaders/d3d11/particle_s-add.ps.hlsl new file mode 100644 index 0000000..7b2abd1 --- /dev/null +++ b/gamedata/shaders/d3d11/particle_s-add.ps.hlsl @@ -0,0 +1,16 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : SV_Target +{ + float4 c = I.c * s_base.Sample(smp_base, I.tc0); + float3 r = float3(1, 1, 1) - c.xyz - c.xyz * c.xyz; + return float4(PushGamma(r), 1); +} + diff --git a/gamedata/shaders/d3d11/particle_s-blend.ps.hlsl b/gamedata/shaders/d3d11/particle_s-blend.ps.hlsl new file mode 100644 index 0000000..6b97382 --- /dev/null +++ b/gamedata/shaders/d3d11/particle_s-blend.ps.hlsl @@ -0,0 +1,16 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : SV_Target +{ + float4 c = I.c * s_base.Sample(smp_base, I.tc0); + float3 r = lerp(float3(1, 1, 1), c.xyz, c.w); + return float4(PushGamma(r), 1); +} + diff --git a/gamedata/shaders/d3d11/particle_s-mul.ps.hlsl b/gamedata/shaders/d3d11/particle_s-mul.ps.hlsl new file mode 100644 index 0000000..0e57a2f --- /dev/null +++ b/gamedata/shaders/d3d11/particle_s-mul.ps.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +////////////////////////////////////////////////////////////////////////////////////////// +// Pixel +float4 main(v2p I) : SV_Target +{ + float4 c = I.c * s_base.Sample(smp_base, I.tc0); + return float4(c.xyz, 1); +} \ No newline at end of file diff --git a/gamedata/shaders/d3d11/particles_add.lua b/gamedata/shaders/d3d11/particles_add.lua new file mode 100644 index 0000000..cc18dcd --- /dev/null +++ b/gamedata/shaders/d3d11/particles_add.lua @@ -0,0 +1,14 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("particle", "particle_add") + :sorting(3, false) + :blend(true, blend.one, blend.one) + :aref(false, 0) + :zb(true, false) + :fog(false) + + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_position", "$user$position") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_nofilter") +end diff --git a/gamedata/shaders/d3d11/particles_xadd.lua b/gamedata/shaders/d3d11/particles_xadd.lua new file mode 100644 index 0000000..e5948ec --- /dev/null +++ b/gamedata/shaders/d3d11/particles_xadd.lua @@ -0,0 +1,37 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("particle", "particle_add") + :sorting(3, false) + :blend(true, blend.one, blend.one) + :aref(false, 0) + :zb(true, false) + :fog(false) + :distort(true) + -- shader:sampler ("s_base") :texture (t_base) + -- shader:sampler ("s_position") :texture ("$user$position") + + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_position", "$user$position") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_nofilter") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("particle", "particle_distort") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + -- shader:sampler ("s_base") :texture (t_base) + -- shader:sampler ("s_distort") :texture (t_second) -- "pfx\\pfx_distortion" + -- shader:sampler ("s_position") :texture ("$user$position") + + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_distort", t_second) -- "pfx\\pfx_distortion" + shader:dx10texture("s_position", "$user$position") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_linear") + shader:dx10sampler("smp_nofilter") +end diff --git a/gamedata/shaders/d3d11/particles_xdistort.lua b/gamedata/shaders/d3d11/particles_xdistort.lua new file mode 100644 index 0000000..333d62a --- /dev/null +++ b/gamedata/shaders/d3d11/particles_xdistort.lua @@ -0,0 +1,19 @@ +function l_special(shader, t_base, t_second, t_detail) + shader:begin("particle", "particle_distort") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + -- shader:sampler ("s_base") :texture (t_base) + -- shader:sampler ("s_distort") :texture (t_base) -- "pfx\\pfx_distortion" + -- shader:sampler ("s_position") :texture ("$user$position") + + shader:dx10texture("s_base", t_base) + shader:dx10texture("s_distort", t_base) -- "pfx\\pfx_distortion" + shader:dx10texture("s_position", "$user$position") + + shader:dx10sampler("smp_base") + shader:dx10sampler("smp_linear") + shader:dx10sampler("smp_nofilter") +end diff --git a/gamedata/shaders/d3d11/pnv.hlsli b/gamedata/shaders/d3d11/pnv.hlsli new file mode 100644 index 0000000..84acf5f --- /dev/null +++ b/gamedata/shaders/d3d11/pnv.hlsli @@ -0,0 +1,57 @@ +////////////////////////////////////////////////////////////////////////////////////////// +//NV Shader by LVutner (basing on yaz NV) +//Last edit: 5:12 (22.05.19) +//Edit for 'GUNSLINGER Mod' by Romann[MNP_TEAM] (04.01.2020) +////////////////////////////////////////////////////////////////////////////////////////// + +//defines +#define NV_BRIGHTNESS 5.0 + +//effects +#define NV_FLICKERING +#define NV_NOISE +//#define NV_VIGNETTE +#define NV_SCANLINES + +//effect settings +#define FLICKERING_INTENSITY 0.003 // Èíòåíñèâíîñòü ìåðöàíèÿ +#define FLICKERING_FREQ 60.0 // ×àñòîòà ìåðöàíèÿ +#define NOISE_INTENSITY 0.13 // Èíòåíñèâíîñòü øóìà +#define SCANLINES_INTENSITY 0.015 // Ðàñòðîâàÿ Èíòåíñèâíîñòü +#define VIGNETTE_RADIUS 1.0 // + +// Pixel +uniform float4 screen_res; +uniform float4 m_zoom_deviation; + +float4 calc_night_vision_effect(float2 tc0, float4 color, float3 NV_COLOR) +{ + float lum = dot(color.rgb, float3( 0.3f, 0.38f, 0.22f)*NV_BRIGHTNESS ); //instead of float3 use LUMINANCE_floatTOR in stalker + color.rgb = m_zoom_deviation.z*NV_COLOR*lum; + + //cheap noise function + float noise = frac(sin(dot(tc0, float2(12.0, 78.0) + (timers.x*1.17f) )) * 43758.0); + + ////////////////////////////////////////////////////////////////////////////////////////// + // scanlines + #ifdef NV_SCANLINES + color += SCANLINES_INTENSITY*sin(tc0.y*screen_res.y*2.0); + #endif + ////////////////////////////////////////////////////////////////////////////////////////// + // noise + #ifdef NV_NOISE + color += noise * NOISE_INTENSITY; + #endif + ////////////////////////////////////////////////////////////////////////////////////////// + // screen flickering + #ifdef NV_FLICKERING + color += FLICKERING_INTENSITY * sin(timers.x*FLICKERING_FREQ); + #endif + ////////////////////////////////////////////////////////////////////////////////////////// + // vignette + #ifdef NV_VIGNETTE + color *= VIGNETTE_RADIUS-(distance(tc0.xy,float2( 0.5f, 0.5f))); + #endif + + return color; +} diff --git a/gamedata/shaders/d3d11/portal.lua b/gamedata/shaders/d3d11/portal.lua new file mode 100644 index 0000000..56e08e5 --- /dev/null +++ b/gamedata/shaders/d3d11/portal.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("portal", "portal") + :fog(true) + :zb(true, false) + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) +end diff --git a/gamedata/shaders/d3d11/portal.ps.hlsl b/gamedata/shaders/d3d11/portal.ps.hlsl new file mode 100644 index 0000000..6e1ae1a --- /dev/null +++ b/gamedata/shaders/d3d11/portal.ps.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +float4 main(float4 C : COLOR0) : SV_Target +{ + return PushGamma(C); +} + diff --git a/gamedata/shaders/d3d11/portal.vs.hlsl b/gamedata/shaders/d3d11/portal.vs.hlsl new file mode 100644 index 0000000..2645f81 --- /dev/null +++ b/gamedata/shaders/d3d11/portal.vs.hlsl @@ -0,0 +1,29 @@ +#include "common.hlsli" + +struct v_vert +{ + float4 pos : POSITION; // (float,float,float,1) + float4 color : COLOR0; // (r,g,b,dir-occlusion) +}; + +struct v2p +{ + float4 c : COLOR0; + float fog : FOG; + float4 hpos : SV_POSITION; +}; + +v2p main(v_vert v) +{ + v2p o; + + o.hpos = mul(m_VP, v.pos); // xform, input in world coords + o.c = v.color; + o.fog = calc_fogging(v.pos.xyz); // fog, input in world coords + o.c = lerp(o.c, fog_color, o.fog); + o.fog = 1.0f - o.fog; + + o.hpos.xy += m_taa_jitter.xy * o.hpos.w; + return o; +} + diff --git a/gamedata/shaders/d3d11/postprocess.lua b/gamedata/shaders/d3d11/postprocess.lua new file mode 100644 index 0000000..f6c6b29 --- /dev/null +++ b/gamedata/shaders/d3d11/postprocess.lua @@ -0,0 +1,32 @@ +-- normal pp +t_rt = "$user$albedo" +t_noise = "fx\\fx_noise2" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_notransform_postpr", "postprocess") + :fog(false) + :zb(false, false) + + shader:dx10texture("s_base0", "$user$backbuffer") + shader:dx10texture("s_base1", "$user$backbuffer") + shader:dx10texture("s_noise", "fx\\fx_noise2") + + shader:dx10sampler("smp_rtlinear") + shader:dx10sampler("smp_linear") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("stub_notransform_postpr", "postprocess_CM") + :fog(false) + :zb(false, false) + + shader:dx10texture("s_base0", "$user$backbuffer") + shader:dx10texture("s_base1", "$user$backbuffer") + shader:dx10texture("s_noise", "fx\\fx_noise2") + + shader:dx10texture("s_grad0", "$user$cmap0") + shader:dx10texture("s_grad1", "$user$cmap1") + + shader:dx10sampler("smp_rtlinear") + shader:dx10sampler("smp_linear") +end diff --git a/gamedata/shaders/d3d11/postprocess.ps.hlsl b/gamedata/shaders/d3d11/postprocess.ps.hlsl new file mode 100644 index 0000000..5f567af --- /dev/null +++ b/gamedata/shaders/d3d11/postprocess.ps.hlsl @@ -0,0 +1,27 @@ +#include "common.hlsli" + +Texture2D s_base0; +Texture2D s_base1; +Texture2D s_noise; + +uniform float4 c_brightness; + +// Pixel +float4 main(p_postpr I) : SV_Target +{ + float3 t_0 = saturate(s_base0.Sample(smp_rtlinear, I.Tex0.xy).xyz); + float3 t_1 = saturate(s_base1.Sample(smp_rtlinear, I.Tex1.xy).xyz); + float3 image = (t_0 + t_1) * 0.5f; + + float gray = dot(image, I.Gray.xyz); + image = lerp(gray, image, I.Gray.w); + + float3 t_noise = s_noise.Sample(smp_linear, I.Tex2.xy).xyz; + float3 noised = image * t_noise * 2.0f; + + image = lerp(noised, image, I.Color.w); + image = (image * I.Color.xyz + c_brightness.xyz) * 2.0f; + + return float4(image, 1.0h); +} + diff --git a/gamedata/shaders/d3d11/postprocess_cm.ps.hlsl b/gamedata/shaders/d3d11/postprocess_cm.ps.hlsl new file mode 100644 index 0000000..22ff548 --- /dev/null +++ b/gamedata/shaders/d3d11/postprocess_cm.ps.hlsl @@ -0,0 +1,38 @@ +#include "common.hlsli" + +Texture2D s_base0; +Texture2D s_base1; +Texture2D s_noise; + +Texture2D s_grad0; +Texture2D s_grad1; + +uniform float4 c_brightness; +uniform float4 c_colormap; + +// Pixel +float4 main(p_postpr I) : SV_Target +{ + float3 t_0 = saturate(s_base0.Sample(smp_rtlinear, I.Tex0.xy).xyz); + float3 t_1 = saturate(s_base1.Sample(smp_rtlinear, I.Tex1.xy).xyz); + float3 image_o = (t_0 + t_1) * 0.5f; + + float grad_i = dot(image_o, 0.3333f); + + float3 image0 = s_grad0.Sample(smp_rtlinear, float2(grad_i, 0.5f)).xyz; + float3 image1 = s_grad1.Sample(smp_rtlinear, float2(grad_i, 0.5f)).xyz; + + float3 image = lerp(image0, image1, c_colormap.y); + image = lerp(image_o, image, c_colormap.x); + + float gray = dot(image, I.Gray.xyz); + image = lerp(gray, image, I.Gray.w); + + float3 t_noise = s_noise.Sample(smp_linear, I.Tex2.xy).xyz; + float3 noised = image * t_noise * 2.0f; + + image = lerp(noised, image, I.Color.w); + image = (image * I.Color.xyz + c_brightness.xyz) * 2.0f; + + return float4(image, 1.0h); +} \ No newline at end of file diff --git a/gamedata/shaders/d3d11/rain_apply_gloss.ps.hlsl b/gamedata/shaders/d3d11/rain_apply_gloss.ps.hlsl new file mode 100644 index 0000000..4a77388 --- /dev/null +++ b/gamedata/shaders/d3d11/rain_apply_gloss.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +Texture2D s_patched_normal; + +float4 main(float2 tc : TEXCOORD0, float2 tcJ : TEXCOORD1) : SV_Target +{ + float Gloss = s_patched_normal.Sample(smp_nofilter, tc).w; + + float ColorIntencity = 1.0f - sqrt(Gloss); + ColorIntencity = max(ColorIntencity, 0.5f); + + return float4(ColorIntencity, ColorIntencity, ColorIntencity, 0.0f); +} diff --git a/gamedata/shaders/d3d11/rain_apply_normal.ps.hlsl b/gamedata/shaders/d3d11/rain_apply_normal.ps.hlsl new file mode 100644 index 0000000..9250529 --- /dev/null +++ b/gamedata/shaders/d3d11/rain_apply_normal.ps.hlsl @@ -0,0 +1,10 @@ +#include "common.hlsli" + +Texture2D s_patched_normal; + +float4 main(float2 tc : TEXCOORD0) : SV_Target +{ + float3 Normal = s_patched_normal.Sample(smp_nofilter, tc).xyz; + return float4(Normal, 1.0f); +} + diff --git a/gamedata/shaders/d3d11/rain_layer.ps.hlsl b/gamedata/shaders/d3d11/rain_layer.ps.hlsl new file mode 100644 index 0000000..913f875 --- /dev/null +++ b/gamedata/shaders/d3d11/rain_layer.ps.hlsl @@ -0,0 +1,26 @@ +#include "common.hlsli" +#include "shadow.hlsli" + +#ifndef USE_SUNMASK +float3x4 m_sunmask; +#endif + +Texture2D s_water; + +float4 main(float2 tc : TEXCOORD0, float2 tcJ : TEXCOORD1, float4 pos2d : SV_POSITION) : SV_Target +{ + float4 P = GbufferGetPoint(pos2d.xy); + float4 PS = mul(m_shadow, P); + + float s = shadow(PS); + float2 tc1 = mul(m_sunmask, P).xy; + + float4 water = s_water.SampleLevel(smp_linear, frac(tc1 * 0.5f), 0); + + water.xyz = (water.xzy - 0.5f) * 2.0f; + water.xyz = mul((float3x3)m_V, water.xyz); + water *= s; + + return float4(water.xyz, s * 0.5f); +} + diff --git a/gamedata/shaders/d3d11/rain_patch_normal.ps.hlsl b/gamedata/shaders/d3d11/rain_patch_normal.ps.hlsl new file mode 100644 index 0000000..91083db --- /dev/null +++ b/gamedata/shaders/d3d11/rain_patch_normal.ps.hlsl @@ -0,0 +1,124 @@ +#include "common.hlsli" +#include "shadow.hlsli" + +#ifndef USE_SUNMASK +float3x4 m_sunmask; // ortho-projection +#endif + +Texture3D s_water; +Texture2D s_waterFall; +float4 RainDensity; // float +float4 RainFallof; +float4 WorldX; // Float3 +float4 WorldZ; // Float3 + +float3 GetNVNMap(Texture3D s_texture, float2 tc, float time) +{ + // Unpack NVidia normal map + float4 water = s_texture.SampleBias(smp_base, float3(tc, time), -3.) - 0.5; + + // Swizzle + water.xyz = water.wyz; + + // Renormalize (*2) and scale (*3) + water.xyz *= 6; + water.y = 0; + + return water.xyz; +} + +float3 GetWaterNMap(Texture2D s_texture, float2 tc) +{ + // Unpack normal map + float4 water = s_texture.Sample(smp_base, tc); + water.xyz = (water.xzy - 0.5) * 2; + + water.xyz *= 0.3; + water.y = 0; + + return water.xyz; +} + +#ifndef ISAMPLE + #define ISAMPLE 0 +#endif + +float4 main(float2 tc : TEXCOORD0, float2 tcJ : TEXCOORD1, float4 Color : COLOR, float4 pos2d : SV_POSITION) : SV_Target +{ + IXrayGbuffer O; + GbufferUnpack(tc, pos2d.xy, O); + + float4 P = float4(O.PointReal, 1.0f); + float3 N = O.Normal; + float3 D = O.Color; + + P.xyz += N.xyz * 0.15f; + float4 PS = mul(m_shadow, P); + + float3 WorldP = mul(m_sunmask, P); + float3 WorldN = mul((float3x3)m_sunmask, N.xyz); + + // Read rain projection with some jetter. Also adding pixel normal + // factor to jitter to make rain strips more realistic. + float s = shadow_hw(PS) * saturate(O.Hemi * 10.0f); + + // Apply distance falloff + // Using fixed fallof factors according to float16 depth coordinate precision. + float fAtten = 1 - smoothstep(min(RainFallof.y - 15.0f, RainFallof.x), RainFallof.y, P.z); + s *= fAtten * fAtten; + //s *= 1.0f - O.SSS; + + // Apply rain density + s *= RainDensity.x; + + float fIsUp = -dot(Ldynamic_dir.xyz, N.xyz); + s *= saturate(fIsUp * 10.0f + 5.5); + + fIsUp = max(0, fIsUp); + + float fIsX = WorldN.x; + float fIsZ = WorldN.z; + + float3 waterSplash = GetNVNMap(s_water, WorldP.xz, timers.x * 3.0); + float3 tc1 = WorldP * 0.5f; + + float fAngleFactor = 1 - fIsUp; + fAngleFactor = 0.1 * ceil(10 * fAngleFactor); + + // Just slow down effect. + fAngleFactor *= 0.5; + + float3 waterFallX = GetWaterNMap(s_waterFall, float2(tc1.z, tc1.y + timers.x * fAngleFactor)); + float3 waterFallZ = GetWaterNMap(s_waterFall, float2(tc1.x, tc1.y + timers.x * fAngleFactor)); + + float2 IsDir = (float2(fIsZ, fIsX)); + + IsDir = normalize(IsDir); + + float3 waterFall = GetWaterNMap(s_waterFall, float2(dot(tc1.xz, IsDir), tc1.y + timers.x)); + float WeaponAttenuation = O.Depth > 0.2 ? 1.0f : 0.0f; + float ApplyNormalCoeff = s * WeaponAttenuation; + + float3 water = waterSplash * (fIsUp * ApplyNormalCoeff); + + water += waterFallX.yxz * (abs(fIsX) * ApplyNormalCoeff); + water += waterFallZ.zxy * (abs(fIsZ) * ApplyNormalCoeff); + + // Translate NM to view space + water.xyz = mul((float3x3)m_V, water.xyz); + s *= dot(D.xyz, float3(0.33, 0.33, 0.33)); + + N += water.xyz; + N = normalize(N); + + N.xy = NormalEncode(N); + +#ifdef USE_LEGACY_LIGHT + N.z = 0.8f * s + O.Roughness; +#else + N.z = lerp(O.Roughness, 0.01f, saturate(s * 4.0f)); +#endif + + return float4(N, s); +} + diff --git a/gamedata/shaders/d3d11/rain_patch_normal_new.ps.hlsl b/gamedata/shaders/d3d11/rain_patch_normal_new.ps.hlsl new file mode 100644 index 0000000..d34c9c6 --- /dev/null +++ b/gamedata/shaders/d3d11/rain_patch_normal_new.ps.hlsl @@ -0,0 +1,113 @@ +#include "common.hlsli" +#include "shadow.hlsli" + +#ifndef USE_SUNMASK +float3x4 m_sunmask; // ortho-projection +#endif + +// Texture2D s_water; +Texture3D s_water; +Texture3D s_waterFall; +float4 RainDensity; +float4 RainFallof; +float4 WorldX; // Float3 +float4 WorldZ; // Float3 + +float3 GetNVNMap(Texture3D s_texture, float2 tc, float time) +{ + // Unpack NVidia normal map + float4 water = s_texture.SampleBias(smp_base, float3(tc, time), -3.) - 0.5; + + // Swizzle + water.xyz = water.wyz; + + // Renormalize (*2) and scale (*3) + water.xyz *= 6; + water.y = 0; + + return water.xyz; +} + +float3 GetWaterNMap(Texture3D s_texture, float2 tc, float time) +{ + // Unpack normal map + float4 water = s_texture.Sample(smp_base, float3(tc, time)); + water.xyz = (water.xzy - 0.5) * 2; + + water.xyz *= 0.3; + water.y = 0; + + return water.xyz; +} + +#ifndef ISAMPLE + #define ISAMPLE 0 +#endif + +float4 main(float2 tc : TEXCOORD0, float2 tcJ : TEXCOORD1, float4 Color : COLOR, float4 pos2d : SV_POSITION) : SV_Target +{ + gbuffer_data gbd = gbuffer_load_data(tc, pos2d); + + float4 _P = float4(gbd.P, 1.0); + float3 _N = gbd.N; + float3 D = gbd.C; + + _N.xyz = normalize(_N.xyz); + + float4 PS = mul(m_shadow, _P); + + float3 WorldP = mul(m_sunmask, _P); + float3 WorldN = mul(m_sunmask, _N.xyz); + + float s = shadow_rain(PS, WorldP.xz * 2); + + // Apply distance falloff + float fAtten = 1 - smoothstep(10, 30, length(_P.xyz)); + s *= fAtten * fAtten; + + // Apply rain density + s *= RainDensity.x; + + float fIsUp = -dot(Ldynamic_dir.xyz, _N.xyz); + s *= saturate(fIsUp * 10 + (10 * 0.5) + 0.5); + fIsUp = max(0, fIsUp); + + float fIsX = WorldN.x; + float fIsZ = WorldN.z; + + float3 waterSplash = GetNVNMap(s_water, WorldP.xz, timers.x * 3.0); + + float3 tc1 = WorldP / 2; + + float fAngleFactor = 1 - fIsUp; + + fAngleFactor = 0.1 * ceil(10 * fAngleFactor); + + // Just slow down effect. + fAngleFactor *= 1.3; + + float3 waterFallX = GetWaterNMap(s_waterFall, float2(tc1.z, tc1.y + timers.x * fAngleFactor), 0.5); + float3 waterFallZ = GetWaterNMap(s_waterFall, float2(tc1.x, tc1.y + timers.x * fAngleFactor), 0.5); + + float2 IsDir = (float2(fIsZ, fIsX)); + IsDir = normalize(IsDir); + + float3 waterFall = GetWaterNMap(s_waterFall, float2(dot(tc1.xz, IsDir), tc1.y + timers.x), 0.5); + + float WeaponAttenuation = smoothstep(0.8, 0.9, length(_P.xyz)); + float ApplyNormalCoeff = s * WeaponAttenuation; + + float3 water = waterSplash * (fIsUp * ApplyNormalCoeff); + + water += waterFallX.yxz * (abs(fIsX) * ApplyNormalCoeff); + water += waterFallZ.zxy * (abs(fIsZ) * ApplyNormalCoeff); + + // Translate NM to view space + water.xyz = mul(m_V, water.xyz); + + _N += 0.01 * water.xyz; + _N = normalize(_N); + s *= dot(D.xyz, float3(0.33, 0.33, 0.33)); + + return float4(_N, s); +} diff --git a/gamedata/shaders/d3d11/reflections.hlsli b/gamedata/shaders/d3d11/reflections.hlsli new file mode 100644 index 0000000..b205728 --- /dev/null +++ b/gamedata/shaders/d3d11/reflections.hlsli @@ -0,0 +1,279 @@ +#ifndef reflections_h_2134124_inc +#define reflections_h_2134124_inc + +// Screen Space Sky Reflections off +#define SKYBLED_FADE +#define USE_BASE_HUD_REFLECTIONS + +#define USE_VASYAN_CUTOFF + +// #define VSLR_SLOW_BREAK +// #define SSLR_SLOW_BREAK + +uniform float4 scaled_screen_res; + +float get_depth_fast(float2 tc) +{ + float P = s_position.SampleLevel(smp_rtlinear, tc, 0).x; + return depth_unpack.x * rcp(P - depth_unpack.y); +} + +float3 gbuf_unpack_position(float2 uv) +{ + float depth = get_depth_fast(uv); + uv = uv * 2.0f - 1.0f; + return float3(uv * pos_decompression_params.xy, 1.0f) * depth; +} + +float3 gbuf_unpack_position(float2 uv, float depth) +{ + uv = uv * 2.0f - 1.0f; + return float3(uv * pos_decompression_params.xy, 1.0f) * depth; +} + +float2 gbuf_unpack_uv(float3 position) +{ + position.xy *= rcp(pos_decompression_params.xy * position.z); + return saturate(position.xy * 0.5 + 0.5); +} + +#define SSLR_STEPS 30 +#define MAX_FIND_STEP 5 + +float BinaryRefinement(inout float3 EndProj, float3 Reflect) +{ + float HitDepth = 0.0f; + + [unroll(MAX_FIND_STEP)] + for(int i = 0; i < MAX_FIND_STEP; ++i) + { + HitDepth = s_env.SampleLevel(smp_nofilter, EndProj.xyz, 0).w; + HitDepth *= HitDepth; + + Reflect *= 0.5f; + EndProj += dot(EndProj, EndProj) > HitDepth ? -Reflect : Reflect; + } + + HitDepth = s_env.SampleLevel(smp_nofilter, EndProj.xyz, 0).w; + HitDepth *= HitDepth; + + return HitDepth; +} + +float BinaryRefinementHUD(inout float3 EndProj, float3 Reflect) +{ + float HitDepth = 0.0f; + + [unroll(MAX_FIND_STEP)] + for(int i = 0; i < MAX_FIND_STEP; ++i) + { + HitDepth = s_position.SampleLevel(smp_nofilter, EndProj.xy, 0).x; + + Reflect *= 0.5f; + EndProj += EndProj.z > HitDepth ? -Reflect : Reflect; + } + + HitDepth = s_position.SampleLevel(smp_nofilter, EndProj.xy, 0).x; + + return HitDepth; +} + +float4 FastViewReflections(float3 Point, float3 Reflect) +{ + float3 SamplePoint = Reflect; + + float SampleHitPointLen = 0; + float Step = rcp(SSLR_STEPS + 1) * 0.01f; + float L = 0.011f; + + float RadiusS = fog_params.z * fog_params.z; + float DistanceS = dot(Point, Point); + + float DirectionS = dot(Reflect, Reflect); + + if(DistanceS >= RadiusS) { + return float4(SamplePoint, 0.0f); + } + + Step *= fog_params.z - length(Point); //sqrt((RadiusS - DistanceS) * rcp(DirectionS)); + + float Fade = 0; + float Delta = 0.0f; + + [loop] + for(uint i = 0; i < SSLR_STEPS; ++i) + { + float JStep = Step * lerp(0.8f, 1.2f, Hash(dot(sin(SamplePoint.xyz * timers.x), float3(12.989, 42.364, 78.233)))); + L += JStep; + + Step *= 1.25f; + + SamplePoint.xyz = Point.xyz + Reflect * L; + + SampleHitPointLen = s_env.SampleLevel(smp_nofilter, SamplePoint.xyz, 0).w; + SampleHitPointLen *= SampleHitPointLen; + + Delta = dot(SamplePoint, SamplePoint) - SampleHitPointLen; + + if (Delta > 0 /*&& Delta <= JStep * 0.8f*/) + { + float3 JReflect = Reflect * JStep * 0.5f; + SamplePoint.xyz -= JReflect; + + SampleHitPointLen = BinaryRefinement(SamplePoint.xyz, JReflect); + Delta = dot(SamplePoint.xyz, SamplePoint.xyz) - SampleHitPointLen; + Fade = abs(Delta) / max(dot(SamplePoint.xyz, SamplePoint.xyz), SampleHitPointLen) < 0.1f; + +#ifdef VSLR_SLOW_BREAK + if(Fade) +#endif + break; + } + } + + SamplePoint = normalize(SamplePoint) * sqrt(SampleHitPointLen); + return float4(SamplePoint, Fade); +} + +float4 FastViewReflectionsSSR(float3 Point, float3 Reflect, bool is_hud) +{ + float4 StartProj, EndProj; + float3 ReflectBase = Reflect; + + float Step = rcp(SSLR_STEPS + 1); + bool Fade = false; + + if(is_hud) { + StartProj = mul(m_P_hud, float4(Point, 1.0f)); StartProj.xyz /= StartProj.w; + EndProj = mul(m_P_hud, float4(Point + Reflect * Point.z, 1.0f)); EndProj.xyz /= EndProj.w; + + StartProj.z *= 0.02f; + EndProj.z *= 0.02f; + } else { + StartProj = mul(m_P, float4(Point, 1.0f)); StartProj.xyz /= StartProj.w; + EndProj = mul(m_P, float4(Point + Reflect * Point.z, 1.0f)); EndProj.xyz /= EndProj.w; + } + + Reflect = EndProj.xyz - StartProj.xyz; + + StartProj.xy = StartProj.xy * float2(0.5f, -0.5f) + 0.5f; + Reflect.xy = Reflect.xy * float2(0.5f, -0.5f); + + Reflect.xyz = normalize(Reflect.xyz); + Step *= GetMaxDirLength(StartProj.xyz, rcp(Reflect)); + + float L = 0.001f; + + Step *= is_hud ? 0.2f : 1.0f; + float StepScale = is_hud ? 1.095f : 1.0f; + + [loop] + for(uint i = 0; i < SSLR_STEPS; ++i) + { + float JStep = Step * lerp(0.8f, 1.2f, Hash(dot(sin(EndProj.xyz * timers.x), float3(12.989, 42.364, 78.233)))); + L += JStep; + + Step *= StepScale; + + EndProj.xyz = StartProj.xyz + Reflect * L; + + float HitDepth = s_position.SampleLevel(smp_nofilter, EndProj.xy, 0).x; + float Delta = EndProj.z - HitDepth; + + if (Delta > 0 && (is_hud || HitDepth > 0.02f)) + { + float3 JReflect = Reflect * JStep * 0.5f; + EndProj.xyz -= JReflect; + + HitDepth = BinaryRefinementHUD(EndProj.xyz, JReflect); + + float2 depthL = rcp(max(1.0f - HitDepth, 0.00001f)); + float2 depthR = rcp(max(1.0f - EndProj.z, 0.00001f)); + + EndProj.z = HitDepth; + + Fade = is_hud || abs(depthL - depthR) * rcp(max(depthL, depthR)) < 0.01f; + +#ifdef SSLR_SLOW_BREAK + if(Fade) +#endif + break; + } + } + + if(is_hud) { + Fade = Fade && EndProj.z < 0.02f; + +#ifdef USE_BASE_HUD_REFLECTIONS + if(!Fade && ReflectBase.z > 0.0f) { + EndProj = mul(m_P, float4(ReflectBase, 1.0f)); EndProj.xyz /= EndProj.w; + EndProj.xy = EndProj.xy * float2(0.5f, -0.5f) + 0.5f; + EndProj.xy = saturate(EndProj.xy); + + EndProj.z = s_position.SampleLevel(smp_nofilter, EndProj.xy, 0).x; + Fade = GetBorderAtten(EndProj.xy, 0.001f) > 0.0f; + Fade = Fade && EndProj.z > 0.02f && EndProj.z < 1.0f; + + EndProj.z *= 0.0002f; + } +#endif + } else { + Fade = Fade && EndProj.z < 1.0f && EndProj.z > 0.02f; + } + + float3 ReflPoint = GbufferGetPointRealUnjitter(EndProj.xy, EndProj.z); + return float4(ReflPoint, Fade); +} + +float4 ScreenSpaceLocalReflections(float3 Point, float3 Reflect) +{ + float2 ReflUV = 0.0; + float3 HitPos, TestPos; + float L = 0.025f, DeltaL = 0.0f; + + float Fade = saturate(dot(Reflect, normalize(Point)) * 4.0f); + + if (Fade < 0.001f) + { + return 0.0f; + } + + [unroll(15)] + for (int i = 0; i < 15; i++) + { + TestPos = Point + Reflect * L; + ReflUV = gbuf_unpack_uv(TestPos); + HitPos = gbuf_unpack_position(ReflUV); + if (all(min(min(1.f - ReflUV.x, ReflUV.x), min(1.f - ReflUV.y, ReflUV.y)))) + { + L = length(Point - HitPos); + } + else + { + return 0.0f; + } + } + + DeltaL = length(HitPos) - length(Point); + Fade *= step(-0.4f, DeltaL); + + float Attention = GetBorderAtten(ReflUV, 0.125f); + ReflUV -= s_velocity.SampleLevel(smp_rtlinear, ReflUV, 0).xy * float2(0.5f, -0.5f); + Fade *= min(Attention, GetBorderAtten(ReflUV, 0.125f)); + +#ifdef SKYBLED_FADE + float Fog = saturate(length(HitPos) * fog_params.w + fog_params.x); + Fade *= 1.f - Fog * Fog; +#endif + + float3 Color = s_image.SampleLevel(smp_rtlinear, ReflUV, 0).xyz; + return float4(Color, Fade); +} + +float4 calc_reflections(float2 pos2d, float zpos, float3 vreflect) +{ + float3 Point = zpos * float3(pos2d * pos_decompression_params.zw - pos_decompression_params.xy, 1.0f); + return ScreenSpaceLocalReflections(Point, mul((float3x3)m_V, vreflect)); +} +#endif + diff --git a/gamedata/shaders/d3d11/saturation.ps.hlsl b/gamedata/shaders/d3d11/saturation.ps.hlsl new file mode 100644 index 0000000..c2d4f98 --- /dev/null +++ b/gamedata/shaders/d3d11/saturation.ps.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +float3 pharse_saturation(float3 Color) +{ + float Luma = dot(Color.xyz, 0.33f) + 0.001f; + return lerp(Luma.xxx, Color.xyz, 1.2f); +} + +float4 main(p_shadow I) : SV_Target +{ + float3 col = s_image.Load(int3(I.hpos.xy, 0), 0).xyz; + col = 1.2f * pharse_saturation(col); + + return float4(col, 1.0f); +} diff --git a/gamedata/shaders/d3d11/scope_lense_mask.ps.hlsl b/gamedata/shaders/d3d11/scope_lense_mask.ps.hlsl new file mode 100644 index 0000000..df40086 --- /dev/null +++ b/gamedata/shaders/d3d11/scope_lense_mask.ps.hlsl @@ -0,0 +1,14 @@ +#include "common.hlsli" +uniform float4 m_hud_params; + +float main(float Z : TEXCOORD0, float4 pos2d : SV_POSITION) : SV_Depth +{ + float Depth = s_position.Load(int3(pos2d.xy, 0)).x; + float Alpha = m_hud_params.y * m_hud_params.w; + + if(Depth > pos2d.z * 0.02f && Alpha >= 0.5f) { + return 1.0f; + } + + return Depth; +} \ No newline at end of file diff --git a/gamedata/shaders/d3d11/scope_lense_mask.vs.hlsl b/gamedata/shaders/d3d11/scope_lense_mask.vs.hlsl new file mode 100644 index 0000000..ce6307f --- /dev/null +++ b/gamedata/shaders/d3d11/scope_lense_mask.vs.hlsl @@ -0,0 +1,41 @@ +#include "common.hlsli" +#include "skin.hlsli" + +void skinned_main(in v_model I, out float4 HPos) +{ + HPos = mul(m_WVP, I.P); + HPos.xy += m_taa_jitter.xy * HPos.w; +} + +#if defined(SKIN_0) +void main(in v_model_skinned_0 I, out float4 HPos : SV_POSITION) +{ + skinned_main(skinning_0(I), HPos); +} +#elif defined(SKIN_1) +void main(in v_model_skinned_1 I, out float4 HPos : SV_POSITION) +{ + skinned_main(skinning_1(I), HPos); +} +#elif defined(SKIN_2) +void main(in v_model_skinned_2 I, out float4 HPos : SV_POSITION) +{ + skinned_main(skinning_2(I), HPos); +} +#elif defined(SKIN_3) +void main(in v_model_skinned_3 I, out float4 HPos : SV_POSITION) +{ + skinned_main(skinning_3(I), HPos); +} +#elif defined(SKIN_4) +void main(in v_model_skinned_4 I, out float4 HPos : SV_POSITION) +{ + skinned_main(skinning_4(I), HPos); +} +#else +void main(in v_model I, out float4 HPos : SV_POSITION) +{ + skinned_main(I, HPos); +} +#endif + diff --git a/gamedata/shaders/d3d11/screenspacecontactshadows.hlsl b/gamedata/shaders/d3d11/screenspacecontactshadows.hlsl new file mode 100644 index 0000000..7d97375 --- /dev/null +++ b/gamedata/shaders/d3d11/screenspacecontactshadows.hlsl @@ -0,0 +1,66 @@ +#ifndef screenspacecontactshadows_hlsl_included +#define screenspacecontactshadows_hlsl_included + +#ifndef HUD_SHADOWS_STEPS +#define HUD_SHADOWS_STEPS 35 +#endif + +#ifndef HUD_SHADOWS_TRACE_LEN +#define HUD_SHADOWS_TRACE_LEN 0.07f +#endif + +float SampleHudHitPoint(float2 TexCoord) +{ + float depth = s_position.SampleLevel(smp_nofilter, TexCoord, 0).x; + return depth_unpack.z * rcp(min(1.0f, depth * 50.0f) - depth_unpack.w); +} + +float2 GetPointTexCoord(float3 Point) +{ + Point.xy *= rcp(pos_decompression_params_hud.xy * Point.z); + return saturate(Point.xy * 0.5f + 0.5f); +} + +void RayTraceContactShadow(float2 TexCoord, float3 Point, float3 LightDir, inout float3 Light) +{ + Point.xyz *= 0.99f; + + LightDir *= min(Point.z, HUD_SHADOWS_TRACE_LEN); + float4 StartProj = mul(m_P_hud, float4(Point, 1.0f)); StartProj.xyz /= StartProj.w; + float4 EndProj = mul(m_P_hud, float4(Point - LightDir, 1.0f)); EndProj.xyz /= EndProj.w; + + StartProj.xy = StartProj.xy * float2(0.5f, -0.5f) + 0.5f; StartProj.z *= 0.02f; + EndProj.xy = EndProj.xy * float2(0.5f, -0.5f) + 0.5f; EndProj.z *= 0.02f; + + LightDir = EndProj.xyz - StartProj.xyz; + StartProj.xy = TexCoord.xy; + + float Len = GetMaxDirLength(StartProj.xyz, rcp(LightDir)); + + LightDir *= min(1.0f, Len); + LightDir *= rcp(HUD_SHADOWS_STEPS); + + float ContactShadow = 0.0f; + + [unroll(HUD_SHADOWS_STEPS)] + for (int i = 0; i < HUD_SHADOWS_STEPS; ++i) + { + StartProj.xyz += LightDir * float(0.8f + 0.4f * Hash(StartProj.xyz)); + float HitDepth = s_position.SampleLevel(smp_nofilter, StartProj.xy, 0).x; + + if (HitDepth <= StartProj.z) + { + ContactShadow += 0.2f; + if (ContactShadow >= 1.0f) + { + ContactShadow = 1.0f; + break; + } + } + } + + ContactShadow *= GetBorderAtten(StartProj.xy, 0.0125f); + Light *= 1.0f - saturate(ContactShadow); +} +#endif + diff --git a/gamedata/shaders/d3d11/selflight.lua b/gamedata/shaders/d3d11/selflight.lua new file mode 100644 index 0000000..bed56fa --- /dev/null +++ b/gamedata/shaders/d3d11/selflight.lua @@ -0,0 +1,12 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("dumb", "dumb") + :fog(false) + :zb(false, false) + :blend(true, blend.zero, blend.one) + :aref(false, 0) + :sorting(2, false) + -- shader:sampler ("s_base") :texture (t_base) + + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/selflight2.lua b/gamedata/shaders/d3d11/selflight2.lua new file mode 100644 index 0000000..d08ab15 --- /dev/null +++ b/gamedata/shaders/d3d11/selflight2.lua @@ -0,0 +1,18 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_base", "deffer_base") + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") + shader:dx10stencil(true, cmp_func.always, 255, 127, stencil_op.keep, stencil_op.replace, stencil_op.keep) + shader:dx10stencil_ref(1) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_base", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/shadow.hlsli b/gamedata/shaders/d3d11/shadow.hlsli new file mode 100644 index 0000000..60ae9a4 --- /dev/null +++ b/gamedata/shaders/d3d11/shadow.hlsli @@ -0,0 +1,660 @@ +#ifndef SHADOW_H +#define SHADOW_H + +#include "common.hlsli" +uniform float4x4 m_shadow; + +Texture2D s_smap : register(ps, t0); +SamplerComparisonState smp_smap; +sampler smp_jitter; + +Texture2D jitter0; +Texture2D jitter1; + +#ifndef USE_ULTRA_SHADOWS + #define KERNEL 0.6f +#else + #define KERNEL 1.0f +#endif + +float4 sm_gather(float2 tc, int2 offset) +{ +#ifdef SM_4_1 + return s_smap.Gather(smp_nofilter, tc, offset); +#else + static const float scale = float(SMAP_size); + float2 fc = frac(tc * scale); + + tc -= fc / scale; + + float s0 = s_smap.SampleLevel(smp_nofilter, tc, 0, offset + int2(0, 1)).x; + float s1 = s_smap.SampleLevel(smp_nofilter, tc, 0, offset + int2(1, 1)).x; + float s2 = s_smap.SampleLevel(smp_nofilter, tc, 0, offset + int2(1, 0)).x; + float s3 = s_smap.SampleLevel(smp_nofilter, tc, 0, offset + int2(0, 0)).x; + + return float4(s0, s1, s2, s3); +#endif +} + +////////////////////////////////////////////////////////////////////////////////////////// +// hardware + PCF +////////////////////////////////////////////////////////////////////////////////////////// +float sample_hw_pcf(float4 tc, float4 shift) +{ + static const float ts = KERNEL / float(SMAP_size); + + tc.xyz /= tc.w; + tc.xy += shift.xy * ts; + + return s_smap.SampleCmpLevelZero(smp_smap, tc.xy, tc.z).x; +} + +#define GS2 3 + +float shadow_hw(float4 tc) +{ + float s0 = sample_hw_pcf(tc, float4(-1, -1, 0, 0)); + float s1 = sample_hw_pcf(tc, float4(+1, -1, 0, 0)); + float s2 = sample_hw_pcf(tc, float4(-1, +1, 0, 0)); + float s3 = sample_hw_pcf(tc, float4(+1, +1, 0, 0)); + + return (s0 + s1 + s2 + s3) / 4.h; +} + +#if SUN_QUALITY >= 4 + #define FILTER_SIZE 11 + #define FS FILTER_SIZE + #define FS2 (FILTER_SIZE / 2) + +static const float W2[11][11] = +{ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.0f }, + { 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f }, + { 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f }, + { 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f }, + { 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f }, + { 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f }, + { 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f }, + { 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f }, + { 0.0f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, +}; + +static const float W1[11][11] = +{ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.2f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.2f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, +}; + +static const float W0[11][11] = +{ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.1f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 1.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.1f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }, +}; + +float Fw(int r, int c, float fL) +{ + return (1.0 - fL) * (1.0 - fL) * (1.0 - fL) * W0[r][c] + + 3.0f * (1.0 - fL) * (1.0 - fL) * fL * W1[r][c] + + 3.0f * fL * fL * (1.0 - fL) * W2[r][c] + + fL * fL * fL * 1.0f; +} + + #define BLOCKER_FILTER_SIZE 11 + #define BFS BLOCKER_FILTER_SIZE + #define BFS2 (BLOCKER_FILTER_SIZE / 2) + + #define SUN_WIDTH 300.0f + +// uses gather for DX11/10.1 and visibilty encoding for DX10.0 +static const float2 poissonDisk[16] = { + float2( -0.94201624f, -0.39906216f ), + float2( 0.94558609f, -0.76890725f ), + float2( -0.094184101f, -0.92938870f ), + float2( 0.34495938f, 0.29387760f ), + float2( -0.91588581f, 0.45771432f ), + float2( -0.81544232f, -0.87912464f ), + float2( -0.38277543f, 0.27676845f ), + float2( 0.97484398f, 0.75648379f ), + float2( 0.44323325f, -0.97511554f ), + float2( 0.53742981f, -0.47373420f ), + float2( -0.26496911f, -0.41893023f ), + float2( 0.79197514f, 0.19090188f ), + float2( -0.24188840f, 0.99706507f ), + float2( -0.81409955f, 0.91437590f ), + float2( 0.19984126f, 0.78641367f ), + float2( 0.14383161f, -0.14100790f ) + }; + +#define PCSS_PIXEL 5 +#define PCSS_STEP 5 +#define PCSS_PIXEL_MIN 1.0f +#define PCSS_SUN_WIDTH 300.f +#define PCSS_NUM_SAMPLES 16 + +float shadow_extreme_quality( float3 tc ) +{ + int3 uv = int3(tc.xy * float(SMAP_size), 0); + float zBlock = tc.z - 0.0001f; + float avgBlockerDepth = 0.f; + float blockerCount = 0.f; + + [unroll] for( int row = -PCSS_PIXEL; row <= PCSS_PIXEL; row += PCSS_STEP ) + { + [unroll] for( int col = -PCSS_PIXEL; col <= PCSS_PIXEL; col += PCSS_STEP ) + { + float shadowMapDepth = s_smap.Load( uv, int2( col, row ) ).x; + float b1 = ( shadowMapDepth < zBlock ) ? 1.f : 0.f; + blockerCount += b1; + avgBlockerDepth += shadowMapDepth * b1; + } + } + + if( blockerCount < 1 || blockerCount >= 9 ) + return 1.f - min(1.f, blockerCount); + + avgBlockerDepth /= blockerCount; + float fRatio = saturate( ( ( tc.z - avgBlockerDepth ) * PCSS_SUN_WIDTH ) / avgBlockerDepth ); + fRatio *= fRatio; + fRatio = max(PCSS_PIXEL_MIN, fRatio * float(PCSS_PIXEL)) / float(SMAP_size); + + float s = 0.f; + [unroll] for( uint i = 0; i < PCSS_NUM_SAMPLES; ++i ) + { + float2 offset = poissonDisk[i] * fRatio; + s += s_smap.SampleCmpLevelZero( smp_smap, tc.xy + offset, tc.z ).x; + } + return s / PCSS_NUM_SAMPLES; +} + +float4 Fw(int r, int c) +{ + return float4(W0[r][c], W1[r][c], W2[r][c], 1.0f); +} + +//====================================================================================== +// This shader computes the contact hardening shadow filter +//====================================================================================== +float shadow_extreme_quality_fused(float3 tc) +{ + float4 s = (0.0f).xxxx; + float2 stc = (SMAP_size * tc.xy) + float2(0.5, 0.5); + float2 tcs = floor(stc); + float2 fc; + int row; + int col; + float w = 0.0; + float avgBlockerDepth = 0; + float blockerCount = 0; + float fRatio; + float4 v1[FS2 + 1]; + float2 v0[FS2 + 1]; + float2 off; + + fc = stc - tcs; + tc.xy = tc.xy - (fc * (1.0f / SMAP_size)); + + // filter shadow map samples using the dynamic weights + [unroll(FS)] + for (row = -FS2; row <= FS2; row += 2) + { + for (col = -FS2; col <= FS2; col += 2) + { + float4 d4; + + #ifndef PS_4 + d4 = s_smap.Gather(smp_nofilter, tc.xy + (1.0f / SMAP_size) * float2(col, row)); + #else + d4.w = s_smap.SampleLevel(smp_nofilter, tc.xy + (1.0f / SMAP_size) * float2(col, row), 0).x; + d4.z = s_smap.SampleLevel(smp_nofilter, tc.xy + (1.0f / SMAP_size) * float2(col + 1, row), 0).x; + d4.y = s_smap.SampleLevel(smp_nofilter, tc.xy + (1.0f / SMAP_size) * float2(col + 1, row + 1), 0).x; + d4.x = s_smap.SampleLevel(smp_nofilter, tc.xy + (1.0f / SMAP_size) * float2(col, row + 1), 0).x; + #endif + float4 b4 = (tc.zzzz <= d4) ? (0.0f).xxxx : (1.0f).xxxx; + + v1[(col + FS2) / 2] = (tc.zzzz <= d4) ? (1.0f).xxxx : (0.0f).xxxx; + blockerCount += dot(b4, (1.0).xxxx); + avgBlockerDepth += dot(d4, b4); + + if (col == -FS2) + { + s += (1 - fc.y) * (v1[0].w * (Fw(row + FS2, 0) - + Fw(row + FS2, 0) * fc.x) + + v1[0].z * + (fc.x * (Fw(row + FS2, 0) - + Fw(row + FS2, 1)) + + Fw(row + FS2, 1))); + s += (fc.y) * (v1[0].x * (Fw(row + FS2, 0) - + Fw(row + FS2, 0) * fc.x) + + v1[0].y * (fc.x * (Fw(row + FS2, 0) - + Fw(row + FS2, 1)) + + Fw(row + FS2, 1))); + if (row > -FS2) + { + s += (1 - fc.y) * (v0[0].x * (Fw(row + FS2 - 1, 0) - + Fw(row + FS2 - 1, 0) * fc.x) + + v0[0].y * + (fc.x * (Fw(row + FS2 - 1, 0) - + Fw(row + FS2 - 1, 1)) + + Fw(row + FS2 - 1, 1))); + s += (fc.y) * (v1[0].w * (Fw(row + FS2 - 1, 0) - + Fw(row + FS2 - 1, 0) * fc.x) + + v1[0].z * + (fc.x * (Fw(row + FS2 - 1, 0) - + Fw(row + FS2 - 1, 1)) + + Fw(row + FS2 - 1, 1))); + } + } + else if (col == FS2) + { + s += (1 - fc.y) * (v1[FS2].w * (fc.x * (Fw(row + FS2, FS - 2) - + Fw(row + FS2, FS - 1)) + + Fw(row + FS2, FS - 1)) + + v1[FS2].z * fc.x * + Fw(row + FS2, FS - 1)); + s += (fc.y) * (v1[FS2].x * (fc.x * (Fw(row + FS2, FS - 2) - + Fw(row + FS2, FS - 1)) + + Fw(row + FS2, FS - 1)) + + v1[FS2].y * fc.x * + Fw(row + FS2, FS - 1)); + if (row > -FS2) + { + s += (1 - fc.y) * (v0[FS2].x * (fc.x * + (Fw(row + FS2 - 1, FS - 2) - + Fw(row + FS2 - 1, FS - 1)) + + Fw(row + FS2 - 1, FS - 1)) + + v0[FS2].y * fc.x * Fw(row + FS2 - 1, FS - 1)); + s += (fc.y) * (v1[FS2].w * (fc.x * + (Fw(row + FS2 - 1, FS - 2) - + Fw(row + FS2 - 1, FS - 1)) + + Fw(row + FS2 - 1, FS - 1)) + + v1[FS2].z * fc.x * Fw(row + FS2 - 1, FS - 1)); + } + } + else + { + s += (1 - fc.y) * (v1[(col + FS2) / 2].w * (fc.x * + (Fw(row + FS2, col + FS2 - 1) - + Fw(row + FS2, col + FS2 + 0)) + + Fw(row + FS2, col + FS2 + 0)) + + v1[(col + FS2) / 2].z * (fc.x * + (Fw(row + FS2, col + FS2 - 0) - + Fw(row + FS2, col + FS2 + 1)) + + Fw(row + FS2, col + FS2 + 1))); + s += (fc.y) * (v1[(col + FS2) / 2].x * (fc.x * + (Fw(row + FS2, col + FS2 - 1) - + Fw(row + FS2, col + FS2 + 0)) + + Fw(row + FS2, col + FS2 + 0)) + + v1[(col + FS2) / 2].y * (fc.x * + (Fw(row + FS2, col + FS2 - 0) - + Fw(row + FS2, col + FS2 + 1)) + + Fw(row + FS2, col + FS2 + 1))); + if (row > -FS2) + { + s += (1 - fc.y) * (v0[(col + FS2) / 2].x * (fc.x * + (Fw(row + FS2 - 1, col + FS2 - 1) - + Fw(row + FS2 - 1, col + FS2 + 0)) + + Fw(row + FS2 - 1, col + FS2 + 0)) + + v0[(col + FS2) / 2].y * (fc.x * + (Fw(row + FS2 - 1, col + FS2 - 0) - + Fw(row + FS2 - 1, col + FS2 + 1)) + + Fw(row + FS2 - 1, col + FS2 + 1))); + s += (fc.y) * (v1[(col + FS2) / 2].w * (fc.x * + (Fw(row + FS2 - 1, col + FS2 - 1) - + Fw(row + FS2 - 1, col + FS2 + 0)) + + Fw(row + FS2 - 1, col + FS2 + 0)) + + v1[(col + FS2) / 2].z * (fc.x * + (Fw(row + FS2 - 1, col + FS2 - 0) - + Fw(row + FS2 - 1, col + FS2 + 1)) + + Fw(row + FS2 - 1, col + FS2 + 1))); + } + } + + if (row != FS2) + { + v0[(col + FS2) / 2] = v1[(col + FS2) / 2].xy; + } + } + } + + // compute ratio using formulas from PCSS + if (blockerCount > 0.0) + { + avgBlockerDepth /= blockerCount; + fRatio = saturate(((tc.z - avgBlockerDepth) * SUN_WIDTH) / avgBlockerDepth); + fRatio *= fRatio; + } + else + { + fRatio = 0.0; + } + + // sum up weights of dynamic filter matrix + for (row = 0; row < FS; ++row) + { + for (col = 0; col < FS; ++col) + { + w += Fw(row, col, fRatio); + } + } + + return dot(s, float4((1.0f - fRatio) * (1.0f - fRatio) * (1.0f - fRatio), + 3.0f * (1.0 - fRatio) * (1.0 - fRatio) * fRatio, + 3.0f * fRatio * fRatio * (1.0 - fRatio), + fRatio * fRatio * fRatio)) / + w; +} +#endif + +#ifdef SM_4_1 + +float dx10_1_hw_hq_7x7(float3 tc) +{ + float s = 0.0f; + float2 stc = (SMAP_size * tc.xy) + float2(0.5, 0.5); + float2 tcs = floor(stc); + float2 fc; + int row; + int col; + + fc.xy = stc - tcs; + tc.xy = tcs * (1.0 / SMAP_size); + + // loop over the rows + for (row = -GS2; row <= GS2; row += 2) + { + [unroll] for (col = -GS2; col <= GS2; col += 2) + { + float4 v = (tc.zzzz <= s_smap.Gather(smp_nofilter, tc.xy, int2(col, row))) ? (1.0).xxxx : (0.0).xxxx; + + if (row == -GS2) // top row + { + if (col == -GS2) // left + { + s += dot(float4(1.0 - fc.x, 1.0, 1.0 - fc.y, (1.0 - fc.x) * (1.0 - fc.y)), v); + } + else if (col == GS2) // right + { + s += dot(float4(1.0f, fc.x, fc.x * (1.0 - fc.y), 1.0 - fc.y), v); + } + else // center + { + s += dot(float4(1.0, 1.0, 1.0 - fc.y, 1.0 - fc.y), v); + } + } + else if (row == GS2) // bottom row + { + if (col == -GS2) // left + { + s += dot(float4((1.0 - fc.x) * fc.y, fc.y, 1.0, (1.0 - fc.x)), v); + } + else if (col == GS2) // right + { + s += dot(float4(fc.y, fc.x * fc.y, fc.x, 1.0), v); + } + else // center + { + s += dot(float4(fc.yy, 1.0, 1.0), v); + } + } + else // center rows + { + if (col == -GS2) // left + { + s += dot(float4((1.0 - fc.x), 1.0, 1.0, (1.0 - fc.x)), v); + } + else if (col == GS2) // right + { + s += dot(float4(1.0, fc.x, fc.x, 1.0), v); + } + else // center + { + s += dot((1.0).xxxx, v); + } + } + } + } + + return s * (1.0 / 49.0); +} + +#endif + +float dx10_0_hw_hq_7x7(float4 tc) +{ + tc.xyz /= tc.w; + + float s = 0.0; + float2 stc = (SMAP_size * tc.xy) + float2(0.5, 0.5); + float2 tcs = floor(stc); + float2 fc; + + fc = stc - tcs; + tc.xy = tc.xy - (fc * (1.0 / SMAP_size)); + + float2 pwAB = ((2.0).xx - fc); + float2 tcAB = (1.0 / SMAP_size).xx / pwAB; + float2 tcM = (0.5 / SMAP_size).xx; + float2 pwGH = ((1.0).xx + fc); + float2 tcGH = (1.0 / SMAP_size) * (fc / pwGH); + + for (int row = -GS2; row <= GS2; row += 2) + { + for (int col = -GS2; col <= GS2; col += 2) + { + if (row == -GS2) // top row + { + if (col == -GS2) // left + { + s += (pwAB.x * pwAB.y) * s_smap.SampleCmpLevelZero(smp_smap, tc.xy + tcAB, tc.z, int2(col, row)).x; + } + else if (col == GS2) // right + { + s += (pwGH.x * pwAB.y) * s_smap.SampleCmpLevelZero(smp_smap, tc.xy + float2(tcGH.x, tcAB.y), tc.z, int2(col, row)).x; + } + else // center + { + s += (2.0 * pwAB.y) * s_smap.SampleCmpLevelZero(smp_smap, tc.xy + float2(tcM.x, tcAB.y), tc.z, int2(col, row)).x; + } + } + else if (row == GS2) // bottom row + { + if (col == -GS2) // left + { + s += (pwAB.x * pwGH.y) * s_smap.SampleCmpLevelZero(smp_smap, tc.xy + float2(tcAB.x, tcGH.y), tc.z, int2(col, row)).x; + } + else if (col == GS2) // right + { + s += (pwGH.x * pwGH.y) * s_smap.SampleCmpLevelZero(smp_smap, tc.xy + tcGH, tc.z, int2(col, row)).x; + } + else // center + { + s += (2.0 * pwGH.y) * s_smap.SampleCmpLevelZero(smp_smap, tc.xy + float2(tcM.x, tcGH.y), tc.z, int2(col, row)).x; + } + } + else // center rows + { + if (col == -GS2) // left + { + s += (pwAB.x * 2.0) * s_smap.SampleCmpLevelZero(smp_smap, tc.xy + float2(tcAB.x, tcM.y), tc.z, int2(col, row)).x; + } + else if (col == GS2) // right + { + s += (pwGH.x * 2.0) * s_smap.SampleCmpLevelZero(smp_smap, tc.xy + float2(tcGH.x, tcM.y), tc.z, int2(col, row)).x; + } + else // center + { + s += (2.0 * 2.0) * s_smap.SampleCmpLevelZero(smp_smap, tc.xy + tcM, tc.z, int2(col, row)).x; + } + } + } + } + + return s / 49.0; +} + +float shadow_hw_hq(float4 tc) +{ +#if SUN_QUALITY >= 4 // extreme quality + return shadow_extreme_quality(tc.xyz / tc.w); +#else // SUN_QUALITY<4 + #ifdef SM_4_1 + return dx10_1_hw_hq_7x7(tc.xyz / tc.w); + #else // SM_4_1 + return dx10_0_hw_hq_7x7(tc); + #endif // SM_4_1 +#endif // SUN_QUALITY==4 +} + +////////////////////////////////////////////////////////////////////////////////////////// +// D24X8+PCF +////////////////////////////////////////////////////////////////////////////////////////// + +float4 test(float4 tc, float2 offset) +{ + tc.xyz /= tc.w; + tc.xy += offset; + return s_smap.SampleCmpLevelZero(smp_smap, tc.xy, tc.z).x; +} + +float shadowtest_sun(float4 tc, float4 tcJ) // jittered sampling +{ + float4 r; + + // const float scale = (2.0f/float(SMAP_size)); + const float scale = (0.7f / float(SMAP_size)); + + float2 tc_J = frac(tc.xy / tc.w * SMAP_size / 4.0f) * 0.5f; + float4 J0 = jitter0.Sample(smp_jitter, tc_J) * scale; + // float4 J1 = tex2D (jitter1,tc_J)*scale; + + const float k = 0.5f / float(SMAP_size); + r.x = test(tc, J0.xy + float2(-k, -k)).x; + r.y = test(tc, J0.wz + float2(k, -k)).y; + r.z = test(tc, -J0.xy + float2(-k, k)).z; + r.w = test(tc, -J0.wz + float2(k, k)).x; + + return dot(r, 1.0f / 4.0f); +} + +// jittered sampling +float shadow_high(float4 tc) +{ + const float scale = (0.5f / float(SMAP_size)); + + float2 tc_J = frac(tc.xy / tc.w * SMAP_size / 4.0f) * .5f; + float4 J0 = jitter0.Sample(smp_jitter, tc_J) * scale; + + const float k = 1.0f / float(SMAP_size); + float4 r; + r.x = test(tc, J0.xy + float2(-k, -k)).x; + r.y = test(tc, J0.wz + float2(k, -k)).y; + + r.z = test(tc, J0.xy + float2(-k, k)).z; + r.w = test(tc, J0.wz + float2(k, k)).x; + + const float k1 = 1.3f / float(SMAP_size); + float4 r1; + r1.x = test(tc, -J0.xy + float2(-k1, 0)).x; + r1.y = test(tc, -J0.wz + float2(0, -k1)).y; + + r1.z = test(tc, -2 * J0.xy + float2(k1, 0)).z; + r1.w = test(tc, -2 * J0.wz + float2(0, k1)).x; + + return (r.x + r.y + r.z + r.w + r1.x + r1.y + r1.z + r1.w) * 1.0f / 8.0f; +} + +float shadow(float4 tc) +{ +#ifdef USE_ULTRA_SHADOWS + return shadow_hw_hq(tc); +#else + #if SUN_QUALITY >= 2 + return shadow_hw(tc); + #else + return shadow_hw(tc); + #endif +#endif +} + +float shadow_volumetric(float4 tc) +{ + return sample_hw_pcf(tc, float4(-1, -1, 0, 0)); +} + +// testbed + +float shadowtest(float4 tc, float4 tcJ) // jittered sampling +{ + float4 r; + + const float scale = (2.7f / float(SMAP_size)); + + tcJ.xy /= tcJ.w; + float4 J0 = jitter0.Sample(smp_jitter, tcJ.xy) * scale; + float4 J1 = jitter1.Sample(smp_jitter, tcJ.xy) * scale; + + r.x = test(tc, J0.xy).x; + r.y = test(tc, J0.wz).y; + r.z = test(tc, J1.xy).z; + r.w = test(tc, J1.wz).x; + + return dot(r, 1.h / 4.h); +} + +float shadow_rain(float4 tc, float2 tcJ) // jittered sampling +{ + float4 r; + + const float scale = (4.0f / float(SMAP_size)); + // float4 J0 = jitter0.Sample( smp_jitter, tcJ )*scale; + // float4 J1 = jitter1.Sample( smp_jitter, tcJ )*scale; + float4 J0 = jitter0.Sample(smp_linear, tcJ) * scale; + float4 J1 = jitter1.Sample(smp_linear, tcJ) * scale; + + r.x = test(tc, J0.xy).x; + r.y = test(tc, J0.wz).y; + r.z = test(tc, J1.xy).z; + r.w = test(tc, J1.wz).x; + + return dot(r, 1.h / 4.h); +} + +#ifdef USE_SUNMASK + +float3x4 m_sunmask; +float sunmask(float4 P) +{ + float2 tc = mul(m_sunmask, P).xy; + return 0.25f + 0.75f * s_lmap.SampleLevel(smp_linear, tc, 0).w; +} + +#else + +float sunmask(float4 P) +{ + return 1.f; +} + +#endif +#endif + diff --git a/gamedata/shaders/d3d11/shadow_base.ps.hlsl b/gamedata/shaders/d3d11/shadow_base.ps.hlsl new file mode 100644 index 0000000..3001a85 --- /dev/null +++ b/gamedata/shaders/d3d11/shadow_base.ps.hlsl @@ -0,0 +1,12 @@ +#include "common.hlsli" + +float4 main(p_shadow I) : SV_Target +{ +#ifdef USE_AREF + float4 C = s_base.Sample(smp_linear, I.tc0); + clip(C.w - def_aref); +#endif + + return 0; +} + diff --git a/gamedata/shaders/d3d11/shadow_base.vs.hlsl b/gamedata/shaders/d3d11/shadow_base.vs.hlsl new file mode 100644 index 0000000..d6fc8a0 --- /dev/null +++ b/gamedata/shaders/d3d11/shadow_base.vs.hlsl @@ -0,0 +1,18 @@ +#include "common.hlsli" + +struct a2v +{ + float4 P : POSITION; +}; + +#ifdef USE_AREF +void main(in v_static I, out p_shadow O) +{ + O.tc0 = unpack_tc_base(I.tc, I.T.w, I.B.w); +#else +void main(in a2v I, out p_shadow O) +{ + O.tc0 = 0.0f; +#endif + O.hpos = mul(m_WVP, I.P); +} \ No newline at end of file diff --git a/gamedata/shaders/d3d11/shadow_lod.vs.hlsl b/gamedata/shaders/d3d11/shadow_lod.vs.hlsl new file mode 100644 index 0000000..e1087bf --- /dev/null +++ b/gamedata/shaders/d3d11/shadow_lod.vs.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +uniform float3x4 m_xform; +uniform float3x4 m_xform_v; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 c_scale, c_bias, wind, wave; + +// Vertex +void main(in v_shadow_direct_aref I, out p_shadow O) +{ + float4 pos = float4(mul(m_xform, I.P).xyz, 1.0f); + +#ifdef USE_TREEWAVE + float base = m_xform._24; + float dp = calc_cyclic(wave.w + dot(pos.xyz, wave.xyz)); + float H = pos.y - base; + float inten = H * dp; + float frac = I.tc.z * consts.x; + pos.xz += calc_xz_wave(wind.xz * inten, frac); +#endif + + O.hpos = mul(m_VP, pos); + O.tc0 = I.tc.xy * consts.xy; +} + diff --git a/gamedata/shaders/d3d11/shadow_model.vs.hlsl b/gamedata/shaders/d3d11/shadow_model.vs.hlsl new file mode 100644 index 0000000..b5c5f8e --- /dev/null +++ b/gamedata/shaders/d3d11/shadow_model.vs.hlsl @@ -0,0 +1,54 @@ +#include "common.hlsli" +#include "skin.hlsli" + +p_shadow _main(v_model I) +{ + p_shadow O; + + O.hpos = mul(m_WVP, I.P); + O.tc0 = I.tc; + + return O; +} + +#ifdef SKIN_NONE +p_shadow main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +p_shadow main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +p_shadow main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +p_shadow main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +p_shadow main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +p_shadow main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/d3d11/shared/cloudconfig.hlsli b/gamedata/shaders/d3d11/shared/cloudconfig.hlsli new file mode 100644 index 0000000..7f2e393 --- /dev/null +++ b/gamedata/shaders/d3d11/shared/cloudconfig.hlsli @@ -0,0 +1,11 @@ +#ifndef _CLOUDCONFIG_H +#define _CLOUDCONFIG_H + +// note: timers has resolution (sec), where x=1, y=10, z=1/10, +#define CLOUD_TILE0 (0.7f) +#define CLOUD_SPEED0 (2 * 0.05) //(0.033f) +#define CLOUD_TILE1 (2.8) //(2.5f) +#define CLOUD_SPEED1 (2 * 0.025) //(0.033f) +#define CLOUD_FADE (0.5) + +#endif diff --git a/gamedata/shaders/d3d11/shared/common.hlsli b/gamedata/shaders/d3d11/shared/common.hlsli new file mode 100644 index 0000000..40332e7 --- /dev/null +++ b/gamedata/shaders/d3d11/shared/common.hlsli @@ -0,0 +1,79 @@ +////////////////////////////////////////////////// +// All comments by Nivenhbro are preceded by ! +///////////////////////////////////////////////// + +#ifndef SHARED_COMMON_H +#define SHARED_COMMON_H + +// Used by VS +cbuffer dynamic_transforms +{ + uniform float4x4 m_WVP; + uniform float3x4 m_WV; + uniform float3x4 m_W; + + uniform float4x4 m_WVP_old; + uniform float3x4 m_WV_old; + uniform float3x4 m_W_old; + + uniform float4x4 m_P_hud; + + uniform float4 L_material; + uniform float4 hemi_cube_pos_faces; + uniform float4 hemi_cube_neg_faces; + uniform float4 dt_params; +} + +cbuffer shader_params +{ + float m_AlphaRef; +} + +cbuffer static_globals +{ + uniform float3x4 m_invV; + + uniform float3x4 m_V; + uniform float4x4 m_P; + uniform float4x4 m_VP; + + uniform float3x4 m_V_old; + uniform float4x4 m_P_old; + uniform float4x4 m_VP_old; + + uniform float4 timers; + + uniform float4 fog_plane; + uniform float4 fog_params; + uniform float4 fog_color; + + uniform float4 L_ambient; + uniform float3 L_sun_color; + uniform float3 L_sun_dir_w; + uniform float4 L_sky_color; + uniform float4 L_hemi_color; + + uniform float3 eye_position; + + uniform float4 pos_decompression_params; + uniform float4 pos_decompression_params2; + uniform float4 pos_decompression_params_hud; + uniform float4 depth_unpack; + uniform float def_aref; + uniform float4 parallax; + + uniform float4 m_taa_jitter; +} + +float calc_cyclic(float x) +{ + float f = 1.4142f * sin(x * 3.14159f); + return f * f - 1.0f; +} + +float2 calc_xz_wave(float2 dir2D, float frac) +{ + return dir2D * frac; +} +#endif + diff --git a/gamedata/shaders/d3d11/shared/waterconfig.hlsli b/gamedata/shaders/d3d11/shared/waterconfig.hlsli new file mode 100644 index 0000000..574ff65 --- /dev/null +++ b/gamedata/shaders/d3d11/shared/waterconfig.hlsli @@ -0,0 +1,55 @@ +#ifndef _WATERCONFIG_H + #define _WATERCONFIG_H + +// наÑтройки длÑ: (1) +// waterdistortion +// waterdistortion2 + + #define W_POSITION_SHIFT_HEIGHT (1.f / 60.f) //(1.f/100.f) //amplitude /50 - small, /10 - large + #define W_POSITION_SHIFT_SPEED (25.f) //(25.0f) + #define W_DISTORT_BASE_TILE_0 (1.0f) //(1.0f) + #define W_DISTORT_BASE_TILE_1 (1.1f) //(1.1f) + #define W_DISTORT_AMP_0 (+0.15f) //(+0.15f) + #define W_DISTORT_AMP_1 (+0.55f) //(-0.30f) + #define W_DISTORT_POWER (1.0f) //(1.0f) + +#endif + +/* +//////////////////////////////////////////////////////////////////////////////// +-- waters clear +//////////////////////////////////////////////////////////////////////////////// +наÑтройки длÑ: + waterdistortion + waterdistortion2 +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/50.f) //(1.f/100.f) //amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (15.f) //(25.0f) +#define W_DISTORT_BASE_TILE_0 (1.3f) //(1.6f) +#define W_DISTORT_BASE_TILE_1 (2.3f) //(1.1f) +#define W_DISTORT_AMP_0 (+0.35f) //(+0.15f) +#define W_DISTORT_AMP_1 (-1.75f) //(-0.30f) +#define W_DISTORT_POWER (1.0f) //(1.0f) +//////////////////////////////////////////////////////////////////////////////// +наÑтройки длÑ: + waterdistortion + waterdistortion +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/80.f) //(1.f/100.f) //amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (20.f) //(25.0f) +#define W_DISTORT_BASE_TILE_0 (1.6f) //(1.6f) +#define W_DISTORT_BASE_TILE_1 (1.1f) //(1.1f) +#define W_DISTORT_AMP_0 (+0.15f) //(+0.15f) +#define W_DISTORT_AMP_1 (-0.30f) //(-0.30f) +#define W_DISTORT_POWER (6.0f) //(6.0f) +//////////////////////////////////////////////////////////////////////////////// +-- waters mulyaka +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/50.f) // amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (25.f) +#define W_DISTORT_BASE_TILE (0.1f) //(1.0f) +#define W_DISTORT_AMP_0 (+0.58f) //(-0.08f) +#define W_DISTORT_AMP_1 (+0.38f) //(+0.18f) +#define W_DISTORT_POWER (3.0f) //(2.0f) +//////////////////////////////////////////////////////////////////////////////// +*/ diff --git a/gamedata/shaders/d3d11/shared/watermove.hlsli b/gamedata/shaders/d3d11/shared/watermove.hlsli new file mode 100644 index 0000000..dfc5045 --- /dev/null +++ b/gamedata/shaders/d3d11/shared/watermove.hlsli @@ -0,0 +1,30 @@ +#ifndef _WATERMOVE_H +#define _WATERMOVE_H + +float4 watermove(float4 P) +{ + float3 wave1 = float3(0.11f, 0.13f, 0.07f) * W_POSITION_SHIFT_SPEED; + float dh = sin(timers.x + dot((float3)P, wave1)); + P.y += dh * W_POSITION_SHIFT_HEIGHT; + return P; +} + +float2 watermove_tc(float2 base, float2 P, float amp) +{ + float2 wave1 = float2(0.2111f, 0.2333f) * amp; + float angle = timers.z + dot(P, wave1); + float du = sin(angle); + float dv = cos(angle); + return (base + amp * float2(du, dv)); +} + +float3 waterrefl(out float amount, float3 P, float3 N) +{ + float3 v2point = normalize(P - eye_position); + float3 vreflect = reflect(v2point, N); + float fresnel = (.5f + .5f * dot(vreflect, v2point)); + amount = 1 - fresnel * fresnel; // 0=full env, 1=no env + return vreflect; +} + +#endif diff --git a/gamedata/shaders/d3d11/shared/wmark.hlsli b/gamedata/shaders/d3d11/shared/wmark.hlsli new file mode 100644 index 0000000..8f44618 --- /dev/null +++ b/gamedata/shaders/d3d11/shared/wmark.hlsli @@ -0,0 +1,26 @@ +#ifndef WMARK_H +#define WMARK_H +#include "common.hlsli" + +#define NORMAL_SHIFT 0.007f +#define MIN_SHIFT 0.003f +#define MAX_SHIFT 0.011f +#define RANGE 100.f + +uniform float3 eye_direction; + +float4 wmark_shift(float3 P, float3 N) +{ + float3 sd = eye_position - P; + float d = length(sd); + + float w = min(d / RANGE, 1.f); + float s = lerp(MIN_SHIFT, MAX_SHIFT, d); + + P += N.xyz * NORMAL_SHIFT; + P -= normalize(eye_direction - sd * rcp(d)) * s; + + return float4(P, 1.f); +} +#endif + diff --git a/gamedata/shaders/d3d11/simple.ps.hlsl b/gamedata/shaders/d3d11/simple.ps.hlsl new file mode 100644 index 0000000..0d1cc45 --- /dev/null +++ b/gamedata/shaders/d3d11/simple.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base +}; + +// Pixel +float4 main(v2p I) : SV_Target +{ + // return tex2D (s_base,I.tc0); + return s_base.Sample(smp_rtlinear, I.tc0); +} diff --git a/gamedata/shaders/d3d11/simple_color.ps.hlsl b/gamedata/shaders/d3d11/simple_color.ps.hlsl new file mode 100644 index 0000000..7ba93cc --- /dev/null +++ b/gamedata/shaders/d3d11/simple_color.ps.hlsl @@ -0,0 +1,6 @@ +#include "common.hlsli" + +float4 main(float4 C : COLOR0) : SV_Target +{ + return C; +} diff --git a/gamedata/shaders/d3d11/skin.hlsli b/gamedata/shaders/d3d11/skin.hlsli new file mode 100644 index 0000000..cf2641c --- /dev/null +++ b/gamedata/shaders/d3d11/skin.hlsli @@ -0,0 +1,357 @@ +#ifndef SKIN_H +#define SKIN_H + +#include "common.hlsli" + +struct v_model_skinned_0 +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float3 N : NORMAL; // normal // DWORD + float3 T : TANGENT; // tangent // DWORD + float3 B : BINORMAL; // binormal // DWORD + float2 tc : TEXCOORD0; // (u,v) // short2 +}; + +struct v_model_skinned_1 // 24 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,index) // DWORD + float3 T : TANGENT; // tangent // DWORD + float3 B : BINORMAL; // binormal // DWORD + float2 tc : TEXCOORD0; // (u,v) // short2 +}; + +struct v_model_skinned_2 // 28 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,weight) // DWORD + float3 T : TANGENT; // tangent // DWORD + float3 B : BINORMAL; // binormal // DWORD + float4 tc : TEXCOORD0; // (u,v, w=m-index0, z=m-index1) // short4 +}; + +struct v_model_skinned_3 // 28 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,weight0) // DWORD + float4 T : TANGENT; // (tx,ty,tz,weight1) // DWORD + float4 B : BINORMAL; // (bx,by,bz,m-index2) // DWORD + float4 tc : TEXCOORD0; // (u,v, w=m-index0, z=m-index1) // short4 +}; + +struct v_model_skinned_4 // 28 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,weight0) // DWORD + float4 T : TANGENT; // (tx,ty,tz,weight1) // DWORD + float4 B : BINORMAL; // (bx,by,bz,weight2) // DWORD + float2 tc : TEXCOORD0; // (u,v) // short2 + float4 ind : TEXCOORD1; // (x=m-index0, y=m-index1, z=m-index2, w=m-index3) // DWORD +}; + +float4 u_position(float4 v) +{ + return float4(v.xyz, 1.f); +} // -12..+12 + +#define MAX_BONES_COUNT 128 + +cbuffer SkinConstants +{ + float4 sbones_array[MAX_BONES_COUNT * 3]; + +#ifndef DISABLE_VELOCITY + float4 sbones_array_old[MAX_BONES_COUNT * 3]; +#endif +} + +float3 skinning_dir(float3 dir, float3 m0, float3 m1, float3 m2) +{ + float3 U = unpack_normal(dir); + + return float3( + dot(m0, U), + dot(m1, U), + dot(m2, U) + ); +} + +float4 skinning_pos(float4 pos, float4 m0, float4 m1, float4 m2) +{ + float4 P = u_position(pos); // -12..+12 + + return float4( + dot(m0, P), + dot(m1, P), + dot(m2, P), + 1.0f); +} + +v_model skinning_0(v_model_skinned_0 v) +{ + // Swizzle for D3DCOLOUR format + v.N = v.N.zyx; + v.T = v.T.zyx; + v.B = v.B.zyx; + + // skinning + v_model o; + o.P = u_position(v.P); // -12..+12 + o.P_old = o.P; // -12..+12 + + o.N = unpack_normal(v.N); + o.T = unpack_normal(v.T); + o.B = unpack_normal(v.B); + + o.tc = v.tc; // -16..+16 + return o; +} + +v_model skinning_1(v_model_skinned_1 v) +{ + // Swizzle for D3DCOLOUR format + v.N.xyz = v.N.zyx; + v.T.xyz = v.T.zyx; + v.B.xyz = v.B.zyx; + + // matrices + int mid = v.N.w * 765 + 0.3; + float4 m0 = sbones_array[mid + 0]; + float4 m1 = sbones_array[mid + 1]; + float4 m2 = sbones_array[mid + 2]; + + // skinning + v_model o; + o.P = skinning_pos(v.P, m0, m1, m2); + o.N = skinning_dir(v.N.xyz, m0.xyz, m1.xyz, m2.xyz); + o.T = skinning_dir(v.T.xyz, m0.xyz, m1.xyz, m2.xyz); + o.B = skinning_dir(v.B.xyz, m0.xyz, m1.xyz, m2.xyz); + o.tc = v.tc; // -16..+ + +#ifndef DISABLE_VELOCITY + float4 m0_old = sbones_array_old[mid + 0]; + float4 m1_old = sbones_array_old[mid + 1]; + float4 m2_old = sbones_array_old[mid + 2]; + + o.P_old = skinning_pos(v.P, m0_old, m1_old, m2_old); +#else + o.P_old = o.P; +#endif + + return o; +} + +v_model skinning_2(v_model_skinned_2 v) +{ + // Swizzle for D3DCOLOUR format + v.N.xyz = v.N.zyx; + v.T.xyz = v.T.zyx; + v.B.xyz = v.B.zyx; + + // matrices + int id_0 = v.tc.z * 3; + float4 m0_0 = sbones_array[id_0 + 0]; + float4 m1_0 = sbones_array[id_0 + 1]; + float4 m2_0 = sbones_array[id_0 + 2]; + + int id_1 = v.tc.w * 3; + float4 m0_1 = sbones_array[id_1 + 0]; + float4 m1_1 = sbones_array[id_1 + 1]; + float4 m2_1 = sbones_array[id_1 + 2]; + + float w = v.N.w; + float4 m0 = lerp(m0_0, m0_1, w); + float4 m1 = lerp(m1_0, m1_1, w); + float4 m2 = lerp(m2_0, m2_1, w); + + // skinning + v_model o; + o.P = skinning_pos(v.P, m0, m1, m2); + o.N = skinning_dir(v.N.xyz, m0.xyz, m1.xyz, m2.xyz); + o.T = skinning_dir(v.T.xyz, m0.xyz, m1.xyz, m2.xyz); + o.B = skinning_dir(v.B.xyz, m0.xyz, m1.xyz, m2.xyz); + o.tc = v.tc.xy; // -16..+16 + +#ifndef DISABLE_VELOCITY + float4 m0_0_old = sbones_array_old[id_0 + 0]; + float4 m1_0_old = sbones_array_old[id_0 + 1]; + float4 m2_0_old = sbones_array_old[id_0 + 2]; + + float4 m0_1_old = sbones_array_old[id_1 + 0]; + float4 m1_1_old = sbones_array_old[id_1 + 1]; + float4 m2_1_old = sbones_array_old[id_1 + 2]; + + float4 m0_old = lerp(m0_0_old, m0_1_old, w); + float4 m1_old = lerp(m1_0_old, m1_1_old, w); + float4 m2_old = lerp(m2_0_old, m2_1_old, w); + + o.P_old = skinning_pos(v.P, m0_old, m1_old, m2_old); +#else + o.P_old = o.P; +#endif + + return o; +} + +v_model skinning_3(v_model_skinned_3 v) +{ + // Swizzle for D3DCOLOUR format + v.N.xyz = v.N.zyx; + v.T.xyz = v.T.zyx; + v.B.xyz = v.B.zyx; + + // matrices + int id_0 = v.tc.z * 3; + float4 m0_0 = sbones_array[id_0 + 0]; + float4 m1_0 = sbones_array[id_0 + 1]; + float4 m2_0 = sbones_array[id_0 + 2]; + + int id_1 = v.tc.w * 3; + float4 m0_1 = sbones_array[id_1 + 0]; + float4 m1_1 = sbones_array[id_1 + 1]; + float4 m2_1 = sbones_array[id_1 + 2]; + + int id_2 = v.B.w * 765 + 0.3; + float4 m0_2 = sbones_array[id_2 + 0]; + float4 m1_2 = sbones_array[id_2 + 1]; + float4 m2_2 = sbones_array[id_2 + 2]; + + // lerp + float w0 = v.N.w; + float w1 = v.T.w; + float w2 = 1.0f - w0 - w1; + + float4 m0 = m0_0 * w0; + float4 m1 = m1_0 * w0; + float4 m2 = m2_0 * w0; + + m0 += m0_1 * w1; + m1 += m1_1 * w1; + m2 += m2_1 * w1; + + m0 += m0_2 * w2; + m1 += m1_2 * w2; + m2 += m2_2 * w2; + + // skinning + v_model o; + o.P = skinning_pos(v.P, m0, m1, m2); + o.N = skinning_dir(v.N.xyz, m0.xyz, m1.xyz, m2.xyz); + o.T = skinning_dir(v.T.xyz, m0.xyz, m1.xyz, m2.xyz); + o.B = skinning_dir(v.B.xyz, m0.xyz, m1.xyz, m2.xyz); + o.tc = v.tc.xy; // -16..+16 + +#ifndef DISABLE_VELOCITY + float4 m0_0_old = sbones_array_old[id_0 + 0]; + float4 m1_0_old = sbones_array_old[id_0 + 1]; + float4 m2_0_old = sbones_array_old[id_0 + 2]; + + float4 m0_1_old = sbones_array_old[id_1 + 0]; + float4 m1_1_old = sbones_array_old[id_1 + 1]; + float4 m2_1_old = sbones_array_old[id_1 + 2]; + + float4 m0_2_old = sbones_array_old[id_2 + 0]; + float4 m1_2_old = sbones_array_old[id_2 + 1]; + float4 m2_2_old = sbones_array_old[id_2 + 2]; + + float4 m0_old = m0_0_old * w0; + float4 m1_old = m1_0_old * w0; + float4 m2_old = m2_0_old * w0; + + m0_old += m0_1_old * w1; + m1_old += m1_1_old * w1; + m2_old += m2_1_old * w1; + + m0_old += m0_2_old * w2; + m1_old += m1_2_old * w2; + m2_old += m2_2_old * w2; + + o.P_old = skinning_pos(v.P, m0_old, m1_old, m2_old); +#else + o.P_old = o.P; +#endif + + return o; +} + +v_model skinning_4(v_model_skinned_4 v) +{ + // Swizzle for D3DCOLOUR format + v.N.xyz = v.N.zyx; + v.T.xyz = v.T.zyx; + v.B.xyz = v.B.zyx; + v.ind.xyz = v.ind.zyx; + + // matrices + float id[4]; + float4 m[4][3]; // [bone index][matrix row or column???] + +#ifndef DISABLE_VELOCITY + float4 m_old[4][3]; // [bone index][matrix row or column???] +#endif + + [unroll(4)] + for (int i = 0; i < 4; ++i) + { + id[i] = v.ind[i] * 765 + 0.3; + + [unroll(3)] + for (int j = 0; j < 3; ++j) + { + m[i][j] = sbones_array[id[i] + j]; +#ifndef DISABLE_VELOCITY + m_old[i][j] = sbones_array_old[id[i] + j]; +#endif + } + } + + // lerp + float w[4]; + w[0] = v.N.w; + w[1] = v.T.w; + w[2] = v.B.w; + w[3] = 1.0f - w[0] - w[1] - w[2]; + + float4 m0 = m[0][0] * w[0]; + float4 m1 = m[0][1] * w[0]; + float4 m2 = m[0][2] * w[0]; + +#ifndef DISABLE_VELOCITY + float4 m0_old = m_old[0][0] * w[0]; + float4 m1_old = m_old[0][1] * w[0]; + float4 m2_old = m_old[0][2] * w[0]; +#endif + + [unroll] + for (int k = 1; k < 4; ++k) + { + m0 += m[k][0] * w[k]; + m1 += m[k][1] * w[k]; + m2 += m[k][2] * w[k]; + +#ifndef DISABLE_VELOCITY + m0_old += m_old[k][0] * w[k]; + m1_old += m_old[k][1] * w[k]; + m2_old += m_old[k][2] * w[k]; +#endif + } + + // skinning + v_model o; + o.P = skinning_pos(v.P, m0, m1, m2); + o.N = skinning_dir(v.N.xyz, m0.xyz, m1.xyz, m2.xyz); + o.T = skinning_dir(v.T.xyz, m0.xyz, m1.xyz, m2.xyz); + o.B = skinning_dir(v.B.xyz, m0.xyz, m1.xyz, m2.xyz); + o.tc = v.tc; // -16..+16 + +#ifndef DISABLE_VELOCITY + o.P_old = skinning_pos(v.P, m0_old, m1_old, m2_old); +#else + o.P_old = o.P; +#endif + + return o; +} + +#endif + diff --git a/gamedata/shaders/d3d11/sky.ps.hlsl b/gamedata/shaders/d3d11/sky.ps.hlsl new file mode 100644 index 0000000..f9429af --- /dev/null +++ b/gamedata/shaders/d3d11/sky.ps.hlsl @@ -0,0 +1,49 @@ +#include "common.hlsli" + +struct v2p +{ + float4 factor : COLOR0; + float3 p : TEXCOORD1; + + float4 hpos_curr : TEXCOORD2; + float4 hpos_old : TEXCOORD3; + + float4 hpos : SV_POSITION; +}; + +TextureCube s_sky0 : register(t0); +TextureCube s_sky1 : register(t1); + +struct sky +{ + float4 Color : SV_Target0; + float2 Velocity : SV_Target1; +}; + +void main(in v2p I, out sky O) +{ + float3 TexCoord = I.p; + +#ifndef USE_FULL_SKY_SPHERE + RemapVector(TexCoord); +#endif + + float3 s0 = s_sky0.SampleLevel(smp_rtlinear, TexCoord, 0.0f).xyz; + float3 s1 = s_sky1.SampleLevel(smp_rtlinear, TexCoord, 0.0f).xyz; + float3 sky = lerp(s0, s1, I.factor.w); + +#ifdef USE_BGRA_SKYCOLOR + sky *= L_sky_color.zyx; +#else + sky *= L_sky_color.xyz; +#endif + +#ifdef USE_LEGACY_SKY_TONEMAP + O.Color = float4(detonemap(sky * 0.66f), 0.0f); +#else + O.Color = float4(PushGamma(sky), 0.0f); +#endif + + O.Velocity = I.hpos_curr.xy / I.hpos_curr.w - I.hpos_old.xy / I.hpos_old.w; +} + diff --git a/gamedata/shaders/d3d11/sky.vs.hlsl b/gamedata/shaders/d3d11/sky.vs.hlsl new file mode 100644 index 0000000..17ba67c --- /dev/null +++ b/gamedata/shaders/d3d11/sky.vs.hlsl @@ -0,0 +1,35 @@ +#include "common.hlsli" + +struct vi +{ + float4 p : POSITION; + float4 c : COLOR0; + + float3 tc0 : TEXCOORD0; + float3 tc1 : TEXCOORD1; +}; + +struct v2p +{ + float4 factor : COLOR0; + float3 p : TEXCOORD1; + + float4 hpos_curr : TEXCOORD2; + float4 hpos_old : TEXCOORD3; + + float4 hpos : SV_POSITION; +}; + +void main(in vi v, out v2p o) +{ + o.hpos = mul(m_WVP, v.p); + + o.factor = v.c; + o.p = v.p.xyz; + + o.hpos_curr = o.hpos; + o.hpos_old = mul(m_WVP_old, v.p); + + o.hpos.xy += m_taa_jitter.xy * o.hpos.w; +} + diff --git a/gamedata/shaders/d3d11/sload.hlsli b/gamedata/shaders/d3d11/sload.hlsli new file mode 100644 index 0000000..95f7d46 --- /dev/null +++ b/gamedata/shaders/d3d11/sload.hlsli @@ -0,0 +1,204 @@ +#ifndef SLOAD_H +#define SLOAD_H +#include "common.hlsli" + +static const float fParallaxStartFade = 8.0f; +static const float fParallaxStopFade = 12.0f; +Texture2D s_snow; + +#ifndef PARALLAX_HEIGHT + #ifdef USE_PBR + #define PARALLAX_HEIGHT 0.02 + #else + #define PARALLAX_HEIGHT 0.01 + #endif +#endif + +#ifndef DYNAMIC_SNOW_COLOR +#define DYNAMIC_SNOW_COLOR float3(0.75f, 0.75f, 0.75f) +#endif + +void UpdateTC(inout p_bumped_new I, inout float2 texCoord, Texture2D heightMap, uint idx) +{ + float3x3 TBN = float3x3(I.M1, I.M2, I.M3); + float3 viewDir = mul(transpose(TBN), -I.position.xyz); + + viewDir = normalize(viewDir); + + float2 currTexCoord = texCoord; + float height = heightMap.Sample(smp_base, currTexCoord)[idx]; + texCoord += viewDir.xy * PARALLAX_HEIGHT * (height - 0.5f); + +#ifdef ALLOW_STEEPPARALLAX + if (I.position.z < fParallaxStopFade) + { + const float minLayers = 8.0f; + const float maxLayers = 20.0f; + const uint reliefSteps = 5; + + float numLayers = lerp(maxLayers, minLayers, abs(viewDir.z)); + float layerDepth = rcp(numLayers); + + float2 texcoordDelta = viewDir.xy * layerDepth * PARALLAX_HEIGHT; + + float currDepthMapVal = 1.0f - height; + float currLayerDepth = 0.5f; + +#ifdef USE_PBR + currLayerDepth = 0.0f; +#endif + + [loop] while(currLayerDepth < currDepthMapVal) + { + currLayerDepth += layerDepth; + currTexCoord -= texcoordDelta; + currDepthMapVal = 1.0f - heightMap.SampleLevel(smp_base, currTexCoord, 0.0f)[idx]; + } + + texcoordDelta *= 0.5; + layerDepth *= 0.5; + + currTexCoord += texcoordDelta; + currLayerDepth -= layerDepth; + + [unroll(reliefSteps)] + for(uint i = 0; i < reliefSteps; ++i) + { + currDepthMapVal = 1.0f - heightMap.SampleLevel(smp_base, currTexCoord, 0.0f)[idx]; + + texcoordDelta *= 0.5f; + layerDepth *= 0.5f; + + if(currDepthMapVal > currLayerDepth) + { + currTexCoord -= texcoordDelta; + currLayerDepth += layerDepth; + } + else + { + currTexCoord += texcoordDelta; + currLayerDepth -= layerDepth; + } + } + + float fParallaxFade = smoothstep(fParallaxStartFade, fParallaxStopFade, I.position.z); + texCoord = lerp(currTexCoord, texCoord, fParallaxFade); + } +#endif +} + +void SloadNew(inout p_bumped_new I, inout IXrayMaterial M) +{ +#if defined(USE_STEEPPARALLAX) && defined(USE_HIGH_QUALITY) + #ifdef USE_PBR + UpdateTC(I, I.tcdh.xy, s_bump, 0); + #else + UpdateTC(I, I.tcdh.xy, s_bumpX, 3); + #endif +#endif + + M.Color = s_base.Sample(smp_base, I.tcdh.xy); + M.SnowMask = smoothstep(0.7f, 0.8f, I.snow_mask); + +#ifdef USE_BUMP + float4 Bump = s_bump.Sample(smp_base, I.tcdh.xy); + float4 BumpX = s_bumpX.Sample(smp_base, I.tcdh.xy); + + #ifdef USE_PBR + M.Normal.xy = Bump.wy * 2.0 - 1.0; + M.Normal.z = sqrt(1.0f - saturate(dot(M.Normal.xy, M.Normal.xy))); + + M.Metalness = BumpX.x; + M.Roughness = BumpX.y; + + M.SSS = BumpX.z; + M.AO = BumpX.w; + #else + M.Normal = Bump.wzy + BumpX.xyz - 1.0f; + + M.Metalness = 0.0f; + M.Roughness = Bump.x; + +#ifdef USE_LEGACY_LIGHT + M.Roughness *= M.Roughness; +#endif + + M.SSS = 0.0; + M.AO = 1.0; + #endif +#else + + M.Normal = float3(0.0f, 0.0f, 1.0f); + + M.Roughness = def_gloss; + M.Metalness = 0.0f; + + M.SSS = 0.0f; + M.AO = 1.0f; + + #ifdef USE_PBR + M.Roughness = 1.0f - M.Roughness; + #endif +#endif + +#ifdef USE_TDETAIL + float2 tcdbump = I.tcdh.xy * dt_params.xy; + float4 Detail = s_detail.Sample(smp_base, tcdbump); + M.Color.xyz *= Detail.xyz * 2.0f; + + #ifndef USE_PBR + M.Roughness *= Detail.w * 2.0f; + #ifdef USE_TDETAIL_BUMP + float4 DetailBump = s_detailBump.Sample(smp_base, tcdbump); + float4 DetailBumpX = s_detailBumpX.Sample(smp_base, tcdbump); + M.Normal += DetailBump.wzy + DetailBumpX.xyz - 1.0f; + #endif + #else + #ifdef USE_TDETAIL_BUMP + float4 DetailBump = s_detailBump.Sample(smp_base, tcdbump); + float4 DetailBumpX = s_detailBumpX.Sample(smp_base, tcdbump); + + float3 DetailNormal = DetailBump.wyy - 128.0f / 255.0f; + DetailNormal.z = sqrt(1.0f - dot(DetailNormal.xy, DetailNormal.xy)); + + M.Normal += DetailNormal; + + M.Metalness *= DetailBumpX.x * 2.0f; + M.Roughness *= DetailBumpX.y * 2.0f; + + M.SSS *= DetailBumpX.z; + M.AO *= DetailBumpX.w; + #else + M.Roughness *= Detail.w * 2.0f; + #endif + #endif +#endif + +#ifdef USE_SNOW_TEXTURE + float4 Snow = s_snow.Sample(smp_base, I.tcdh.xy); + Snow.y *= smoothstep(0.2, 0.3, hemi_cube_pos_faces.y); + + M.Color.xyz = lerp(M.Color.xyz, DYNAMIC_SNOW_COLOR, Snow.y); + M.Roughness = lerp(M.Roughness, Snow.x, Snow.y); + M.Metalness = lerp(M.Metalness, Snow.z, Snow.y); +#endif + +#ifndef USE_PBR + #ifndef USE_TRUE_NORMAL_MAP + M.Normal.z *= 0.5f; + #endif + // Aprox GSC material to PBS + #ifndef USE_LEGACY_LIGHT + M.Roughness = 1.0f - M.Roughness; + M.Roughness = 0.1f + 0.9f * M.Roughness * M.Roughness; + #endif +#else + #ifndef USE_DX_NORMAL_MAP + M.Normal.y *= -1.0f; + #endif + M.Roughness = max(0.02f, M.Roughness); +#endif +} + + +#endif diff --git a/gamedata/shaders/d3d11/smaa.hlsli b/gamedata/shaders/d3d11/smaa.hlsli new file mode 100644 index 0000000..0c755b6 --- /dev/null +++ b/gamedata/shaders/d3d11/smaa.hlsli @@ -0,0 +1,1131 @@ +//----------------------------------------------------------------------------- +// SMAA Presets + +/** + * Note that if you use one of these presets, the following configuration + * macros will be ignored if set in the "Configurable Defines" section. + */ + +#if defined(SMAA_PRESET_LOW) + #define SMAA_THRESHOLD 0.15 + #define SMAA_MAX_SEARCH_STEPS 4 + #define SMAA_DISABLE_DIAG_DETECTION + #define SMAA_DISABLE_CORNER_DETECTION +#elif defined(SMAA_PRESET_MEDIUM) + #define SMAA_THRESHOLD 0.1 + #define SMAA_MAX_SEARCH_STEPS 8 + #define SMAA_DISABLE_DIAG_DETECTION + #define SMAA_DISABLE_CORNER_DETECTION +#elif defined(SMAA_PRESET_HIGH) + #define SMAA_THRESHOLD 0.1 + #define SMAA_MAX_SEARCH_STEPS 16 + #define SMAA_MAX_SEARCH_STEPS_DIAG 8 + #define SMAA_CORNER_ROUNDING 25 +#elif defined(SMAA_PRESET_ULTRA) + #define SMAA_THRESHOLD 0.05 + #define SMAA_MAX_SEARCH_STEPS 32 + #define SMAA_MAX_SEARCH_STEPS_DIAG 16 + #define SMAA_CORNER_ROUNDING 25 +#endif + +//----------------------------------------------------------------------------- +// Configurable Defines + +/** + * SMAA_THRESHOLD specifies the threshold or sensitivity to edges. + * Lowering this value you will be able to detect more edges at the expense of + * performance. + * + * Range: [0, 0.5] + * 0.1 is a reasonable value, and allows to catch most visible edges. + * 0.05 is a rather overkill value, that allows to catch 'em all. + * + * If temporal supersampling is used, 0.2 could be a reasonable value, as low + * contrast edges are properly filtered by just 2x. + */ +#ifndef SMAA_THRESHOLD + #define SMAA_THRESHOLD 0.1 +#endif + +/** + * SMAA_DEPTH_THRESHOLD specifies the threshold for depth edge detection. + * + * Range: depends on the depth range of the scene. + */ +#ifndef SMAA_DEPTH_THRESHOLD + #define SMAA_DEPTH_THRESHOLD (0.1 * SMAA_THRESHOLD) +#endif + +/** + * SMAA_MAX_SEARCH_STEPS specifies the maximum steps performed in the + * horizontal/vertical pattern searches, at each side of the pixel. + * + * In number of pixels, it's actually the double. So the maximum line length + * perfectly handled by, for example 16, is 64 (by perfectly, we meant that + * longer lines won't look as good, but still antialiased). + * + * Range: [0, 112] + */ +#ifndef SMAA_MAX_SEARCH_STEPS + #define SMAA_MAX_SEARCH_STEPS 16 +#endif + +/** + * SMAA_MAX_SEARCH_STEPS_DIAG specifies the maximum steps performed in the + * diagonal pattern searches, at each side of the pixel. In this case we jump + * one pixel at time, instead of two. + * + * Range: [0, 20] + * + * On high-end machines it is cheap (between a 0.8x and 0.9x slower for 16 + * steps), but it can have a significant impact on older machines. + * + * Define SMAA_DISABLE_DIAG_DETECTION to disable diagonal processing. + */ +#ifndef SMAA_MAX_SEARCH_STEPS_DIAG + #define SMAA_MAX_SEARCH_STEPS_DIAG 8 +#endif + +/** + * SMAA_CORNER_ROUNDING specifies how much sharp corners will be rounded. + * + * Range: [0, 100] + * + * Define SMAA_DISABLE_CORNER_DETECTION to disable corner processing. + */ +#ifndef SMAA_CORNER_ROUNDING + #define SMAA_CORNER_ROUNDING 25 +#endif + +/** + * If there is an neighbor edge that has SMAA_LOCAL_CONTRAST_FACTOR times + * bigger contrast than current edge, current edge will be discarded. + * + * This allows to eliminate spurious crossing edges, and is based on the fact + * that, if there is too much contrast in a direction, that will hide + * perceptually contrast in the other neighbors. + */ +#ifndef SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR + #define SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR 2.0 +#endif + +/** + * Predicated thresholding allows to better preserve texture details and to + * improve performance, by decreasing the number of detected edges using an + * additional buffer like the light accumulation buffer, object ids or even the + * depth buffer (the depth buffer usage may be limited to indoor or short range + * scenes). + * + * It locally decreases the luma or color threshold if an edge is found in an + * additional buffer (so the global threshold can be higher). + * + * This method was developed by Playstation EDGE MLAA team, and used in + * Killzone 3, by using the light accumulation buffer. More information here: + * http://iryoku.com/aacourse/downloads/06-MLAA-on-PS3.pptx + */ +#ifndef SMAA_PREDICATION + #define SMAA_PREDICATION 0 +#endif + +/** + * Threshold to be used in the additional predication buffer. + * + * Range: depends on the input, so you'll have to find the magic number that + * works for you. + */ +#ifndef SMAA_PREDICATION_THRESHOLD + #define SMAA_PREDICATION_THRESHOLD 0.01 +#endif + +/** + * How much to scale the global threshold used for luma or color edge + * detection when using predication. + * + * Range: [1, 5] + */ +#ifndef SMAA_PREDICATION_SCALE + #define SMAA_PREDICATION_SCALE 2.0 +#endif + +/** + * How much to locally decrease the threshold. + * + * Range: [0, 1] + */ +#ifndef SMAA_PREDICATION_STRENGTH + #define SMAA_PREDICATION_STRENGTH 0.4 +#endif + +/** + * Temporal reprojection allows to remove ghosting artifacts when using + * temporal supersampling. We use the CryEngine 3 method which also introduces + * velocity weighting. This feature is of extreme importance for totally + * removing ghosting. More information here: + * http://iryoku.com/aacourse/downloads/13-Anti-Aliasing-Methods-in-CryENGINE-3.pdf + * + * Note that you'll need to setup a velocity buffer for enabling reprojection. + * For static geometry, saving the previous depth buffer is a viable + * alternative. + */ +#ifndef SMAA_REPROJECTION + #define SMAA_REPROJECTION 0 +#endif + +/** + * SMAA_REPROJECTION_WEIGHT_SCALE controls the velocity weighting. It allows to + * remove ghosting trails behind the moving object, which are not removed by + * just using reprojection. Using low values will exhibit ghosting, while using + * high values will disable temporal supersampling under motion. + * + * Behind the scenes, velocity weighting removes temporal supersampling when + * the velocity of the subsamples differs (meaning they are different objects). + * + * Range: [0, 80] + */ +#ifndef SMAA_REPROJECTION_WEIGHT_SCALE + #define SMAA_REPROJECTION_WEIGHT_SCALE 30.0 +#endif + +/** + * On some compilers, discard cannot be used in vertex shaders. Thus, they need + * to be compiled separately. + */ +#ifndef SMAA_INCLUDE_VS + #define SMAA_INCLUDE_VS 1 +#endif +#ifndef SMAA_INCLUDE_PS + #define SMAA_INCLUDE_PS 1 +#endif + +//----------------------------------------------------------------------------- +// Texture Access Defines + +#ifndef SMAA_AREATEX_SELECT + #if defined(SMAA_HLSL_3) + #define SMAA_AREATEX_SELECT(sample) sample.ra + #else + #define SMAA_AREATEX_SELECT(sample) sample.rg + #endif +#endif + +#ifndef SMAA_SEARCHTEX_SELECT + #define SMAA_SEARCHTEX_SELECT(sample) sample.r +#endif + +#ifndef SMAA_DECODE_VELOCITY + #define SMAA_DECODE_VELOCITY(sample) sample.rg +#endif + +//----------------------------------------------------------------------------- +// Non-Configurable Defines + +#define SMAA_AREATEX_MAX_DISTANCE 16 +#define SMAA_AREATEX_MAX_DISTANCE_DIAG 20 +#define SMAA_AREATEX_PIXEL_SIZE (1.0 / float2(160.0, 560.0)) +#define SMAA_AREATEX_SUBTEX_SIZE (1.0 / 7.0) +#define SMAA_SEARCHTEX_SIZE float2(66.0, 33.0) +#define SMAA_SEARCHTEX_PACKED_SIZE float2(64.0, 16.0) +#define SMAA_CORNER_ROUNDING_NORM (float(SMAA_CORNER_ROUNDING) / 100.0) + +//----------------------------------------------------------------------------- +// Porting Functions + +#if defined(SMAA_HLSL_3) + #define SMAATexture2D(tex) sampler2D tex + #define SMAATexturePass2D(tex) tex + #define SMAASampleLevelZero(tex, coord) tex2Dlod(tex, float4(coord, 0.0, 0.0)) + #define SMAASampleLevelZeroPoint(tex, coord) tex2Dlod(tex, float4(coord, 0.0, 0.0)) + #define SMAASampleLevelZeroOffset(tex, coord, offset) tex2Dlod(tex, float4(coord + offset * SMAA_RT_METRICS.xy, 0.0, 0.0)) + #define SMAASample(tex, coord) tex2D(tex, coord) + #define SMAASamplePoint(tex, coord) tex2D(tex, coord) + #define SMAASampleOffset(tex, coord, offset) tex2D(tex, coord + offset * SMAA_RT_METRICS.xy) + #define SMAA_FLATTEN [flatten] + #define SMAA_BRANCH [branch] +#endif +#if defined(SMAA_HLSL_4) || defined(SMAA_HLSL_4_1) + //LV: Don't touch this ;) + #define LinearSampler smp_rtlinear + #define PointSampler smp_nofilter + + #define SMAATexture2D(tex) Texture2D tex + #define SMAATexturePass2D(tex) tex + #define SMAASampleLevelZero(tex, coord) tex.SampleLevel(LinearSampler, coord, 0) + #define SMAASampleLevelZeroPoint(tex, coord) tex.SampleLevel(PointSampler, coord, 0) + #define SMAASampleLevelZeroOffset(tex, coord, offset) tex.SampleLevel(LinearSampler, coord, 0, offset) + #define SMAASample(tex, coord) tex.Sample(LinearSampler, coord) + #define SMAASamplePoint(tex, coord) tex.Sample(PointSampler, coord) + #define SMAASampleOffset(tex, coord, offset) tex.Sample(LinearSampler, coord, offset) + #define SMAA_FLATTEN [flatten] + #define SMAA_BRANCH [branch] + #define SMAATexture2DMS2(tex) Texture2DMS tex + #define SMAALoad(tex, pos, sample) tex.Load(pos, sample) + #if defined(SMAA_HLSL_4_1) + #define SMAAGather(tex, coord) tex.Gather(LinearSampler, coord, 0) + #endif +#endif +#if defined(SMAA_GLSL_3) || defined(SMAA_GLSL_4) + #define SMAATexture2D(tex) sampler2D tex + #define SMAATexturePass2D(tex) tex + #define SMAASampleLevelZero(tex, coord) textureLod(tex, coord, 0.0) + #define SMAASampleLevelZeroPoint(tex, coord) textureLod(tex, coord, 0.0) + #define SMAASampleLevelZeroOffset(tex, coord, offset) textureLodOffset(tex, coord, 0.0, offset) + #define SMAASample(tex, coord) texture(tex, coord) + #define SMAASamplePoint(tex, coord) texture(tex, coord) + #define SMAASampleOffset(tex, coord, offset) texture(tex, coord, offset) + #define SMAA_FLATTEN + #define SMAA_BRANCH + #define lerp(a, b, t) mix(a, b, t) + #define saturate(a) clamp(a, 0.0, 1.0) + #if defined(SMAA_GLSL_4) + #define mad(a, b, c) fma(a, b, c) + #define SMAAGather(tex, coord) textureGather(tex, coord) + #else + #define mad(a, b, c) (a * b + c) + #endif + #define float2 vec2 + #define float3 vec3 + #define float4 vec4 + #define int2 ivec2 + #define int3 ivec3 + #define int4 ivec4 + #define bool2 bvec2 + #define bool3 bvec3 + #define bool4 bvec4 +#endif + +#if !defined(SMAA_HLSL_3) && !defined(SMAA_HLSL_4) && !defined(SMAA_HLSL_4_1) && !defined(SMAA_GLSL_3) && !defined(SMAA_GLSL_4) && !defined(SMAA_CUSTOM_SL) + #error you must define the shading language: SMAA_HLSL_*, SMAA_GLSL_* or SMAA_CUSTOM_SL +#endif + +//----------------------------------------------------------------------------- +// Misc functions + +/** + * Gathers current pixel, and the top-left neighbors. + */ +float3 SMAAGatherNeighbours(float2 texcoord, + float4 offset[3], + SMAATexture2D(tex)) +{ + // RainbowZerg: SMAAGather is not supported now, need depth to be stored as x-component + // #ifdef SMAAGather + // return SMAAGather(tex, texcoord + SMAA_RT_METRICS.xy * float2(-0.5, -0.5)).grb; + // #else + float P = SMAASamplePoint(tex, texcoord).z; // RainbowZerg: changed here .r to .z 'cause in X-Ray depth stored as z-component of s_position + float Pleft = SMAASamplePoint(tex, offset[0].xy).z; // RainbowZerg: changed here .r to .z 'cause in X-Ray depth stored as z-component of s_position + float Ptop = SMAASamplePoint(tex, offset[0].zw).z; // RainbowZerg: changed here .r to .z 'cause in X-Ray depth stored as z-component of s_position + return float3(P, Pleft, Ptop); + // #endif +} + +/** + * Adjusts the threshold by means of predication. + */ +float2 SMAACalculatePredicatedThreshold(float2 texcoord, + float4 offset[3], + SMAATexture2D(predicationTex)) +{ + float3 neighbours = SMAAGatherNeighbours(texcoord, offset, SMAATexturePass2D(predicationTex)); + float2 delta = abs(neighbours.xx - neighbours.yz); + float2 edges = step(SMAA_PREDICATION_THRESHOLD, delta); + return SMAA_PREDICATION_SCALE * SMAA_THRESHOLD * (1.0 - SMAA_PREDICATION_STRENGTH * edges); +} + +/** + * Conditional move: + */ +void SMAAMovc(bool2 cond, inout float2 variable, float2 value) +{ + SMAA_FLATTEN if (cond.x) variable.x = value.x; + SMAA_FLATTEN if (cond.y) variable.y = value.y; +} + +void SMAAMovc(bool4 cond, inout float4 variable, float4 value) +{ + SMAAMovc(cond.xy, variable.xy, value.xy); + SMAAMovc(cond.zw, variable.zw, value.zw); +} + +#if SMAA_INCLUDE_VS +//----------------------------------------------------------------------------- +// Vertex Shaders + +/** + * Edge Detection Vertex Shader + */ +void SMAAEdgeDetectionVS(float2 texcoord, + out float4 offset[3]) +{ + offset[0] = mad(SMAA_RT_METRICS.xyxy, float4(-1.0, 0.0, 0.0, -1.0), texcoord.xyxy); + offset[1] = mad(SMAA_RT_METRICS.xyxy, float4(1.0, 0.0, 0.0, 1.0), texcoord.xyxy); + offset[2] = mad(SMAA_RT_METRICS.xyxy, float4(-2.0, 0.0, 0.0, -2.0), texcoord.xyxy); +} + +/** + * Blend Weight Calculation Vertex Shader + */ +void SMAABlendingWeightCalculationVS(float2 texcoord, + out float2 pixcoord, + out float4 offset[3]) +{ + pixcoord = texcoord * SMAA_RT_METRICS.zw; + + // We will use these offsets for the searches later on (see @PSEUDO_GATHER4): + offset[0] = mad(SMAA_RT_METRICS.xyxy, float4(-0.25, -0.125, 1.25, -0.125), texcoord.xyxy); + offset[1] = mad(SMAA_RT_METRICS.xyxy, float4(-0.125, -0.25, -0.125, 1.25), texcoord.xyxy); + + // And these for the searches, they indicate the ends of the loops: + offset[2] = mad(SMAA_RT_METRICS.xxyy, + float4(-2.0, 2.0, -2.0, 2.0) * float(SMAA_MAX_SEARCH_STEPS), + float4(offset[0].xz, offset[1].yw)); +} + +/** + * Neighborhood Blending Vertex Shader + */ +void SMAANeighborhoodBlendingVS(float2 texcoord, + out float4 offset) +{ + offset = mad(SMAA_RT_METRICS.xyxy, float4(1.0, 0.0, 0.0, 1.0), texcoord.xyxy); +} +#endif // SMAA_INCLUDE_VS + +#if SMAA_INCLUDE_PS +//----------------------------------------------------------------------------- +// Edge Detection Pixel Shaders (First Pass) + +/** + * Luma Edge Detection + * + * IMPORTANT NOTICE: luma edge detection requires gamma-corrected colors, and + * thus 'colorTex' should be a non-sRGB texture. + */ +float2 SMAALumaEdgeDetectionPS(float2 texcoord, + float4 offset[3], + SMAATexture2D(colorTex) + #if SMAA_PREDICATION + , + SMAATexture2D(predicationTex) + #endif +) +{ + // Calculate the threshold: + #if SMAA_PREDICATION + float2 threshold = SMAACalculatePredicatedThreshold(texcoord, offset, SMAATexturePass2D(predicationTex)); + #else + float2 threshold = float2(SMAA_THRESHOLD, SMAA_THRESHOLD); + #endif + + // Calculate lumas: + float3 weights = float3(0.2126, 0.7152, 0.0722); + float L = dot(SMAASamplePoint(colorTex, texcoord).rgb, weights); + + float Lleft = dot(SMAASamplePoint(colorTex, offset[0].xy).rgb, weights); + float Ltop = dot(SMAASamplePoint(colorTex, offset[0].zw).rgb, weights); + + // We do the usual threshold: + float4 delta; + delta.xy = abs(L - float2(Lleft, Ltop)); + float2 edges = step(threshold, delta.xy); + + // Then discard if there is no edge: + if (dot(edges, float2(1.0, 1.0)) == 0.0) + { + discard; + } + + // Calculate right and bottom deltas: + float Lright = dot(SMAASamplePoint(colorTex, offset[1].xy).rgb, weights); + float Lbottom = dot(SMAASamplePoint(colorTex, offset[1].zw).rgb, weights); + delta.zw = abs(L - float2(Lright, Lbottom)); + + // Calculate the maximum delta in the direct neighborhood: + float2 maxDelta = max(delta.xy, delta.zw); + + // Calculate left-left and top-top deltas: + float Lleftleft = dot(SMAASamplePoint(colorTex, offset[2].xy).rgb, weights); + float Ltoptop = dot(SMAASamplePoint(colorTex, offset[2].zw).rgb, weights); + delta.zw = abs(float2(Lleft, Ltop) - float2(Lleftleft, Ltoptop)); + + // Calculate the final maximum delta: + maxDelta = max(maxDelta.xy, delta.zw); + float finalDelta = max(maxDelta.x, maxDelta.y); + + // Local contrast adaptation: + edges.xy *= step(finalDelta, SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR * delta.xy); + + return edges; +} + +/** + * Color Edge Detection + * + * IMPORTANT NOTICE: color edge detection requires gamma-corrected colors, and + * thus 'colorTex' should be a non-sRGB texture. + */ +float2 SMAAColorEdgeDetectionPS(float2 texcoord, + float4 offset[3], + SMAATexture2D(colorTex) + #if SMAA_PREDICATION + , + SMAATexture2D(predicationTex) + #endif +) +{ + // Calculate the threshold: + #if SMAA_PREDICATION + float2 threshold = SMAACalculatePredicatedThreshold(texcoord, offset, predicationTex); + #else + float2 threshold = float2(SMAA_THRESHOLD, SMAA_THRESHOLD); + #endif + + // Calculate color deltas: + float4 delta; + float3 C = SMAASamplePoint(colorTex, texcoord).rgb; + + float3 Cleft = SMAASamplePoint(colorTex, offset[0].xy).rgb; + float3 t = abs(C - Cleft); + delta.x = max(max(t.r, t.g), t.b); + + float3 Ctop = SMAASamplePoint(colorTex, offset[0].zw).rgb; + t = abs(C - Ctop); + delta.y = max(max(t.r, t.g), t.b); + + // We do the usual threshold: + float2 edges = step(threshold, delta.xy); + + // Then discard if there is no edge: + if (dot(edges, float2(1.0, 1.0)) == 0.0) + { + discard; + } + + // Calculate right and bottom deltas: + float3 Cright = SMAASamplePoint(colorTex, offset[1].xy).rgb; + t = abs(C - Cright); + delta.z = max(max(t.r, t.g), t.b); + + float3 Cbottom = SMAASamplePoint(colorTex, offset[1].zw).rgb; + t = abs(C - Cbottom); + delta.w = max(max(t.r, t.g), t.b); + + // Calculate the maximum delta in the direct neighborhood: + float2 maxDelta = max(delta.xy, delta.zw); + + // Calculate left-left and top-top deltas: + float3 Cleftleft = SMAASamplePoint(colorTex, offset[2].xy).rgb; + t = abs(C - Cleftleft); + delta.z = max(max(t.r, t.g), t.b); + + float3 Ctoptop = SMAASamplePoint(colorTex, offset[2].zw).rgb; + t = abs(C - Ctoptop); + delta.w = max(max(t.r, t.g), t.b); + + // Calculate the final maximum delta: + maxDelta = max(maxDelta.xy, delta.zw); + float finalDelta = max(maxDelta.x, maxDelta.y); + + // Local contrast adaptation: + edges.xy *= step(finalDelta, SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR * delta.xy); + + return edges; +} + +/** + * Depth Edge Detection + */ +float2 SMAADepthEdgeDetectionPS(float2 texcoord, + float4 offset[3], + SMAATexture2D(depthTex)) +{ + float3 neighbours = SMAAGatherNeighbours(texcoord, offset, SMAATexturePass2D(depthTex)); + float2 delta = abs(neighbours.xx - float2(neighbours.y, neighbours.z)); + float2 edges = step(SMAA_DEPTH_THRESHOLD, delta); + + if (dot(edges, float2(1.0, 1.0)) == 0.0) + { + discard; + } + + return edges; +} + +//----------------------------------------------------------------------------- +// Diagonal Search Functions + + #if !defined(SMAA_DISABLE_DIAG_DETECTION) + +/** + * Allows to decode two binary values from a bilinear-filtered access. + */ +float2 SMAADecodeDiagBilinearAccess(float2 e) +{ + // Bilinear access for fetching 'e' have a 0.25 offset, and we are + // interested in the R and G edges: + // + // +---G---+-------+ + // | x o R x | + // +-------+-------+ + // + // Then, if one of these edge is enabled: + // Red: (0.75 * X + 0.25 * 1) => 0.25 or 1.0 + // Green: (0.75 * 1 + 0.25 * X) => 0.75 or 1.0 + // + // This function will unpack the values (mad + mul + round): + // wolframalpha.com: round(x * abs(5 * x - 5 * 0.75)) plot 0 to 1 + e.r = e.r * abs(5.0 * e.r - 5.0 * 0.75); + return round(e); +} + +float4 SMAADecodeDiagBilinearAccess(float4 e) +{ + e.rb = e.rb * abs(5.0 * e.rb - 5.0 * 0.75); + return round(e); +} + +/** + * These functions allows to perform diagonal pattern searches. + */ +float2 SMAASearchDiag1(SMAATexture2D(edgesTex), float2 texcoord, float2 dir, out float2 e) +{ + float4 coord = float4(texcoord, -1.0, 1.0); + float3 t = float3(SMAA_RT_METRICS.xy, 1.0); + while (coord.z < float(SMAA_MAX_SEARCH_STEPS_DIAG - 1) && + coord.w > 0.9) + { + coord.xyz = mad(t, float3(dir, 1.0), coord.xyz); + e = SMAASampleLevelZero(edgesTex, coord.xy).rg; + coord.w = dot(e, float2(0.5, 0.5)); + } + return coord.zw; +} + +float2 SMAASearchDiag2(SMAATexture2D(edgesTex), float2 texcoord, float2 dir, out float2 e) +{ + float4 coord = float4(texcoord, -1.0, 1.0); + coord.x += 0.25 * SMAA_RT_METRICS.x; // See @SearchDiag2Optimization + float3 t = float3(SMAA_RT_METRICS.xy, 1.0); + while (coord.z < float(SMAA_MAX_SEARCH_STEPS_DIAG - 1) && + coord.w > 0.9) + { + coord.xyz = mad(t, float3(dir, 1.0), coord.xyz); + + // @SearchDiag2Optimization + // Fetch both edges at once using bilinear filtering: + e = SMAASampleLevelZero(edgesTex, coord.xy).rg; + e = SMAADecodeDiagBilinearAccess(e); + + // Non-optimized version: + // e.g = SMAASampleLevelZero(edgesTex, coord.xy).g; + // e.r = SMAASampleLevelZeroOffset(edgesTex, coord.xy, int2(1, 0)).r; + + coord.w = dot(e, float2(0.5, 0.5)); + } + return coord.zw; +} + +/** + * Similar to SMAAArea, this calculates the area corresponding to a certain + * diagonal distance and crossing edges 'e'. + */ +float2 SMAAAreaDiag(SMAATexture2D(areaTex), float2 dist, float2 e, float offset) +{ + float2 texcoord = mad(float2(SMAA_AREATEX_MAX_DISTANCE_DIAG, SMAA_AREATEX_MAX_DISTANCE_DIAG), e, dist); + + // We do a scale and bias for mapping to texel space: + texcoord = mad(SMAA_AREATEX_PIXEL_SIZE, texcoord, 0.5 * SMAA_AREATEX_PIXEL_SIZE); + + // Diagonal areas are on the second half of the texture: + texcoord.x += 0.5; + + // Move to proper place, according to the subpixel offset: + texcoord.y += SMAA_AREATEX_SUBTEX_SIZE * offset; + + // Do it! + return SMAA_AREATEX_SELECT(SMAASampleLevelZero(areaTex, texcoord)); +} + +/** + * This searches for diagonal patterns and returns the corresponding weights. + */ +float2 SMAACalculateDiagWeights(SMAATexture2D(edgesTex), SMAATexture2D(areaTex), float2 texcoord, float2 e, float4 subsampleIndices) +{ + float2 weights = float2(0.0, 0.0); + + // Search for the line ends: + float4 d; + float2 end; + if (e.r > 0.0) + { + d.xz = SMAASearchDiag1(SMAATexturePass2D(edgesTex), texcoord, float2(-1.0, 1.0), end); + d.x += float(end.y > 0.9); + } + else + { + d.xz = float2(0.0, 0.0); + } + d.yw = SMAASearchDiag1(SMAATexturePass2D(edgesTex), texcoord, float2(1.0, -1.0), end); + + SMAA_BRANCH + if (d.x + d.y > 2.0) + { // d.x + d.y + 1 > 3 + // Fetch the crossing edges: + float4 coords = mad(float4(-d.x + 0.25, d.x, d.y, -d.y - 0.25), SMAA_RT_METRICS.xyxy, texcoord.xyxy); + float4 c; + c.xy = SMAASampleLevelZeroOffset(edgesTex, coords.xy, int2(-1, 0)).rg; + c.zw = SMAASampleLevelZeroOffset(edgesTex, coords.zw, int2(1, 0)).rg; + c.yxwz = SMAADecodeDiagBilinearAccess(c.xyzw); + + // Non-optimized version: + // float4 coords = mad(float4(-d.x, d.x, d.y, -d.y), SMAA_RT_METRICS.xyxy, texcoord.xyxy); + // float4 c; + // c.x = SMAASampleLevelZeroOffset(edgesTex, coords.xy, int2(-1, 0)).g; + // c.y = SMAASampleLevelZeroOffset(edgesTex, coords.xy, int2( 0, 0)).r; + // c.z = SMAASampleLevelZeroOffset(edgesTex, coords.zw, int2( 1, 0)).g; + // c.w = SMAASampleLevelZeroOffset(edgesTex, coords.zw, int2( 1, -1)).r; + + // Merge crossing edges at each side into a single value: + float2 cc = mad(float2(2.0, 2.0), c.xz, c.yw); + + // Remove the crossing edge if we didn't found the end of the line: + SMAAMovc(bool2(step(0.9, d.zw)), cc, float2(0.0, 0.0)); + + // Fetch the areas for this line: + weights += SMAAAreaDiag(SMAATexturePass2D(areaTex), d.xy, cc, subsampleIndices.z); + } + + // Search for the line ends: + d.xz = SMAASearchDiag2(SMAATexturePass2D(edgesTex), texcoord, float2(-1.0, -1.0), end); + if (SMAASampleLevelZeroOffset(edgesTex, texcoord, int2(1, 0)).r > 0.0) + { + d.yw = SMAASearchDiag2(SMAATexturePass2D(edgesTex), texcoord, float2(1.0, 1.0), end); + d.y += float(end.y > 0.9); + } + else + { + d.yw = float2(0.0, 0.0); + } + + SMAA_BRANCH + if (d.x + d.y > 2.0) + { // d.x + d.y + 1 > 3 + // Fetch the crossing edges: + float4 coords = mad(float4(-d.x, -d.x, d.y, d.y), SMAA_RT_METRICS.xyxy, texcoord.xyxy); + float4 c; + c.x = SMAASampleLevelZeroOffset(edgesTex, coords.xy, int2(-1, 0)).g; + c.y = SMAASampleLevelZeroOffset(edgesTex, coords.xy, int2(0, -1)).r; + c.zw = SMAASampleLevelZeroOffset(edgesTex, coords.zw, int2(1, 0)).gr; + float2 cc = mad(float2(2.0, 2.0), c.xz, c.yw); + + // Remove the crossing edge if we didn't found the end of the line: + SMAAMovc(bool2(step(0.9, d.zw)), cc, float2(0.0, 0.0)); + + // Fetch the areas for this line: + weights += SMAAAreaDiag(SMAATexturePass2D(areaTex), d.xy, cc, subsampleIndices.w).gr; + } + + return weights; +} + #endif + +//----------------------------------------------------------------------------- +// Horizontal/Vertical Search Functions + +/** + * This allows to determine how much length should we add in the last step + * of the searches. It takes the bilinearly interpolated edge (see + * @PSEUDO_GATHER4), and adds 0, 1 or 2, depending on which edges and + * crossing edges are active. + */ +float SMAASearchLength(SMAATexture2D(searchTex), float2 e, float offset) +{ + // The texture is flipped vertically, with left and right cases taking half + // of the space horizontally: + float2 scale = SMAA_SEARCHTEX_SIZE * float2(0.5, -1.0); + float2 bias = SMAA_SEARCHTEX_SIZE * float2(offset, 1.0); + + // Scale and bias to access texel centers: + scale += float2(-1.0, 1.0); + bias += float2(0.5, -0.5); + + // Convert from pixel coordinates to texcoords: + // (We use SMAA_SEARCHTEX_PACKED_SIZE because the texture is cropped) + scale *= 1.0 / SMAA_SEARCHTEX_PACKED_SIZE; + bias *= 1.0 / SMAA_SEARCHTEX_PACKED_SIZE; + + // Lookup the search texture: + return SMAA_SEARCHTEX_SELECT(SMAASampleLevelZero(searchTex, mad(scale, e, bias))); +} + +/** + * Horizontal/vertical search functions for the 2nd pass. + */ +float SMAASearchXLeft(SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end) +{ + /** + * @PSEUDO_GATHER4 + * This texcoord has been offset by (-0.25, -0.125) in the vertex shader to + * sample between edge, thus fetching four edges in a row. + * Sampling with different offsets in each direction allows to disambiguate + * which edges are active from the four fetched ones. + */ + float2 e = float2(0.0, 1.0); + while (texcoord.x > end && + e.g > 0.8281 && // Is there some edge not activated? + e.r == 0.0) + { // Or is there a crossing edge that breaks the line? + e = SMAASampleLevelZero(edgesTex, texcoord).rg; + texcoord = mad(-float2(2.0, 0.0), SMAA_RT_METRICS.xy, texcoord); + } + + float offset = mad(-(255.0 / 127.0), SMAASearchLength(SMAATexturePass2D(searchTex), e, 0.0), 3.25); + return mad(SMAA_RT_METRICS.x, offset, texcoord.x); + + // Non-optimized version: + // We correct the previous (-0.25, -0.125) offset we applied: + // texcoord.x += 0.25 * SMAA_RT_METRICS.x; + + // The searches are bias by 1, so adjust the coords accordingly: + // texcoord.x += SMAA_RT_METRICS.x; + + // Disambiguate the length added by the last step: + // texcoord.x += 2.0 * SMAA_RT_METRICS.x; // Undo last step + // texcoord.x -= SMAA_RT_METRICS.x * (255.0 / 127.0) * SMAASearchLength(SMAATexturePass2D(searchTex), e, 0.0); + // return mad(SMAA_RT_METRICS.x, offset, texcoord.x); +} + +float SMAASearchXRight(SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end) +{ + float2 e = float2(0.0, 1.0); + while (texcoord.x < end && + e.g > 0.8281 && // Is there some edge not activated? + e.r == 0.0) + { // Or is there a crossing edge that breaks the line? + e = SMAASampleLevelZero(edgesTex, texcoord).rg; + texcoord = mad(float2(2.0, 0.0), SMAA_RT_METRICS.xy, texcoord); + } + float offset = mad(-(255.0 / 127.0), SMAASearchLength(SMAATexturePass2D(searchTex), e, 0.5), 3.25); + return mad(-SMAA_RT_METRICS.x, offset, texcoord.x); +} + +float SMAASearchYUp(SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end) +{ + float2 e = float2(1.0, 0.0); + while (texcoord.y > end && + e.r > 0.8281 && // Is there some edge not activated? + e.g == 0.0) + { // Or is there a crossing edge that breaks the line? + e = SMAASampleLevelZero(edgesTex, texcoord).rg; + texcoord = mad(-float2(0.0, 2.0), SMAA_RT_METRICS.xy, texcoord); + } + float offset = mad(-(255.0 / 127.0), SMAASearchLength(SMAATexturePass2D(searchTex), e.gr, 0.0), 3.25); + return mad(SMAA_RT_METRICS.y, offset, texcoord.y); +} + +float SMAASearchYDown(SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end) +{ + float2 e = float2(1.0, 0.0); + while (texcoord.y < end && + e.r > 0.8281 && // Is there some edge not activated? + e.g == 0.0) + { // Or is there a crossing edge that breaks the line? + e = SMAASampleLevelZero(edgesTex, texcoord).rg; + texcoord = mad(float2(0.0, 2.0), SMAA_RT_METRICS.xy, texcoord); + } + float offset = mad(-(255.0 / 127.0), SMAASearchLength(SMAATexturePass2D(searchTex), e.gr, 0.5), 3.25); + return mad(-SMAA_RT_METRICS.y, offset, texcoord.y); +} + +/** + * Ok, we have the distance and both crossing edges. So, what are the areas + * at each side of current edge? + */ +float2 SMAAArea(SMAATexture2D(areaTex), float2 dist, float e1, float e2, float offset) +{ + // Rounding prevents precision errors of bilinear filtering: + float2 texcoord = mad(float2(SMAA_AREATEX_MAX_DISTANCE, SMAA_AREATEX_MAX_DISTANCE), round(4.0 * float2(e1, e2)), dist); + + // We do a scale and bias for mapping to texel space: + texcoord = mad(SMAA_AREATEX_PIXEL_SIZE, texcoord, 0.5 * SMAA_AREATEX_PIXEL_SIZE); + + // Move to proper place, according to the subpixel offset: + texcoord.y = mad(SMAA_AREATEX_SUBTEX_SIZE, offset, texcoord.y); + + // Do it! + return SMAA_AREATEX_SELECT(SMAASampleLevelZero(areaTex, texcoord)); +} + +//----------------------------------------------------------------------------- +// Corner Detection Functions + +void SMAADetectHorizontalCornerPattern(SMAATexture2D(edgesTex), inout float2 weights, float4 texcoord, float2 d) +{ + #if !defined(SMAA_DISABLE_CORNER_DETECTION) + float2 leftRight = step(d.xy, d.yx); + float2 rounding = (1.0 - SMAA_CORNER_ROUNDING_NORM) * leftRight; + + rounding /= leftRight.x + leftRight.y; // Reduce blending for pixels in the center of a line. + + float2 factor = float2(1.0, 1.0); + factor.x -= rounding.x * SMAASampleLevelZeroOffset(edgesTex, texcoord.xy, int2(0, 1)).r; + factor.x -= rounding.y * SMAASampleLevelZeroOffset(edgesTex, texcoord.zw, int2(1, 1)).r; + factor.y -= rounding.x * SMAASampleLevelZeroOffset(edgesTex, texcoord.xy, int2(0, -2)).r; + factor.y -= rounding.y * SMAASampleLevelZeroOffset(edgesTex, texcoord.zw, int2(1, -2)).r; + + weights *= saturate(factor); + #endif +} + +void SMAADetectVerticalCornerPattern(SMAATexture2D(edgesTex), inout float2 weights, float4 texcoord, float2 d) +{ + #if !defined(SMAA_DISABLE_CORNER_DETECTION) + float2 leftRight = step(d.xy, d.yx); + float2 rounding = (1.0 - SMAA_CORNER_ROUNDING_NORM) * leftRight; + + rounding /= leftRight.x + leftRight.y; + + float2 factor = float2(1.0, 1.0); + factor.x -= rounding.x * SMAASampleLevelZeroOffset(edgesTex, texcoord.xy, int2(1, 0)).g; + factor.x -= rounding.y * SMAASampleLevelZeroOffset(edgesTex, texcoord.zw, int2(1, 1)).g; + factor.y -= rounding.x * SMAASampleLevelZeroOffset(edgesTex, texcoord.xy, int2(-2, 0)).g; + factor.y -= rounding.y * SMAASampleLevelZeroOffset(edgesTex, texcoord.zw, int2(-2, 1)).g; + + weights *= saturate(factor); + #endif +} + +//----------------------------------------------------------------------------- +// Blending Weight Calculation Pixel Shader (Second Pass) + +float4 SMAABlendingWeightCalculationPS(float2 texcoord, + float2 pixcoord, + float4 offset[3], + SMAATexture2D(edgesTex), + SMAATexture2D(areaTex), + SMAATexture2D(searchTex), + float4 subsampleIndices) +{ // Just pass zero for SMAA 1x, see @SUBSAMPLE_INDICES. + float4 weights = float4(0.0, 0.0, 0.0, 0.0); + + float2 e = SMAASample(edgesTex, texcoord).rg; + + SMAA_BRANCH + if (e.g > 0.0) + { // Edge at north + #if !defined(SMAA_DISABLE_DIAG_DETECTION) + // Diagonals have both north and west edges, so searching for them in + // one of the boundaries is enough. + weights.rg = SMAACalculateDiagWeights(SMAATexturePass2D(edgesTex), SMAATexturePass2D(areaTex), texcoord, e, subsampleIndices); + + // We give priority to diagonals, so if we find a diagonal we skip + // horizontal/vertical processing. + SMAA_BRANCH + if (weights.r == -weights.g) + { // weights.r + weights.g == 0.0 + #endif + + float2 d; + + // Find the distance to the left: + float3 coords; + coords.x = SMAASearchXLeft(SMAATexturePass2D(edgesTex), SMAATexturePass2D(searchTex), offset[0].xy, offset[2].x); + coords.y = offset[1].y; // offset[1].y = texcoord.y - 0.25 * SMAA_RT_METRICS.y (@CROSSING_OFFSET) + d.x = coords.x; + + // Now fetch the left crossing edges, two at a time using bilinear + // filtering. Sampling at -0.25 (see @CROSSING_OFFSET) enables to + // discern what value each edge has: + float e1 = SMAASampleLevelZero(edgesTex, coords.xy).r; + + // Find the distance to the right: + coords.z = SMAASearchXRight(SMAATexturePass2D(edgesTex), SMAATexturePass2D(searchTex), offset[0].zw, offset[2].y); + d.y = coords.z; + + // We want the distances to be in pixel units (doing this here allow to + // better interleave arithmetic and memory accesses): + d = abs(round(mad(SMAA_RT_METRICS.zz, d, -pixcoord.xx))); + + // SMAAArea below needs a sqrt, as the areas texture is compressed + // quadratically: + float2 sqrt_d = sqrt(d); + + // Fetch the right crossing edges: + float e2 = SMAASampleLevelZeroOffset(edgesTex, coords.zy, int2(1, 0)).r; + + // Ok, we know how this pattern looks like, now it is time for getting + // the actual area: + weights.rg = SMAAArea(SMAATexturePass2D(areaTex), sqrt_d, e1, e2, subsampleIndices.y); + + // Fix corners: + coords.y = texcoord.y; + SMAADetectHorizontalCornerPattern(SMAATexturePass2D(edgesTex), weights.rg, coords.xyzy, d); + + #if !defined(SMAA_DISABLE_DIAG_DETECTION) + } + else + { + e.r = 0.0; // Skip vertical processing. + } + #endif + } + + SMAA_BRANCH + if (e.r > 0.0) + { // Edge at west + float2 d; + + // Find the distance to the top: + float3 coords; + coords.y = SMAASearchYUp(SMAATexturePass2D(edgesTex), SMAATexturePass2D(searchTex), offset[1].xy, offset[2].z); + coords.x = offset[0].x; // offset[1].x = texcoord.x - 0.25 * SMAA_RT_METRICS.x; + d.x = coords.y; + + // Fetch the top crossing edges: + float e1 = SMAASampleLevelZero(edgesTex, coords.xy).g; + + // Find the distance to the bottom: + coords.z = SMAASearchYDown(SMAATexturePass2D(edgesTex), SMAATexturePass2D(searchTex), offset[1].zw, offset[2].w); + d.y = coords.z; + + // We want the distances to be in pixel units: + d = abs(round(mad(SMAA_RT_METRICS.ww, d, -pixcoord.yy))); + + // SMAAArea below needs a sqrt, as the areas texture is compressed + // quadratically: + float2 sqrt_d = sqrt(d); + + // Fetch the bottom crossing edges: + float e2 = SMAASampleLevelZeroOffset(edgesTex, coords.xz, int2(0, 1)).g; + + // Get the area for this direction: + weights.ba = SMAAArea(SMAATexturePass2D(areaTex), sqrt_d, e1, e2, subsampleIndices.x); + + // Fix corners: + coords.x = texcoord.x; + SMAADetectVerticalCornerPattern(SMAATexturePass2D(edgesTex), weights.ba, coords.xyxz, d); + } + + return weights; +} + +//----------------------------------------------------------------------------- +// Neighborhood Blending Pixel Shader (Third Pass) + +float4 SMAANeighborhoodBlendingPS(float2 texcoord, + float4 offset, + SMAATexture2D(colorTex), + SMAATexture2D(blendTex) + #if SMAA_REPROJECTION + , + SMAATexture2D(velocityTex) + #endif +) +{ + // Fetch the blending weights for current pixel: + float4 a; + a.x = SMAASample(blendTex, offset.xy).a; // Right + a.y = SMAASample(blendTex, offset.zw).g; // Top + a.wz = SMAASample(blendTex, texcoord).xz; // Bottom / Left + + // Is there any blending weight with a value greater than 0.0? + SMAA_BRANCH + if (dot(a, float4(1.0, 1.0, 1.0, 1.0)) < 1e-5) + { + float4 color = SMAASampleLevelZero(colorTex, texcoord); + + #if SMAA_REPROJECTION + float2 velocity = SMAA_DECODE_VELOCITY(SMAASampleLevelZero(velocityTex, texcoord)); + + // Pack velocity into the alpha channel: + color.a = sqrt(5.0 * length(velocity)); + #endif + + return color; + } + else + { + bool h = max(a.x, a.z) > max(a.y, a.w); // max(horizontal) > max(vertical) + + // Calculate the blending offsets: + float4 blendingOffset = float4(0.0, a.y, 0.0, a.w); + float2 blendingWeight = a.yw; + SMAAMovc(bool4(h, h, h, h), blendingOffset, float4(a.x, 0.0, a.z, 0.0)); + SMAAMovc(bool2(h, h), blendingWeight, a.xz); + blendingWeight /= dot(blendingWeight, float2(1.0, 1.0)); + + // Calculate the texture coordinates: + float4 blendingCoord = mad(blendingOffset, float4(SMAA_RT_METRICS.xy, -SMAA_RT_METRICS.xy), texcoord.xyxy); + + // We exploit bilinear filtering to mix current pixel with the chosen + // neighbor: + float4 color = blendingWeight.x * SMAASampleLevelZero(colorTex, blendingCoord.xy); + color += blendingWeight.y * SMAASampleLevelZero(colorTex, blendingCoord.zw); + + #if SMAA_REPROJECTION + // Antialias velocity for proper reprojection in a later stage: + float2 velocity = blendingWeight.x * SMAA_DECODE_VELOCITY(SMAASampleLevelZero(velocityTex, blendingCoord.xy)); + velocity += blendingWeight.y * SMAA_DECODE_VELOCITY(SMAASampleLevelZero(velocityTex, blendingCoord.zw)); + + // Pack velocity into the alpha channel: + color.a = sqrt(5.0 * length(velocity)); + #endif + + return color; + } +} + +//----------------------------------------------------------------------------- +// Temporal Resolve Pixel Shader (Optional Pass) + +float4 SMAAResolvePS(float2 texcoord, + SMAATexture2D(currentColorTex), + SMAATexture2D(previousColorTex) + #if SMAA_REPROJECTION + , + SMAATexture2D(velocityTex) + #endif +) +{ + #if SMAA_REPROJECTION + // Velocity is assumed to be calculated for motion blur, so we need to + // inverse it for reprojection: + float2 velocity = -SMAA_DECODE_VELOCITY(SMAASamplePoint(velocityTex, texcoord).rg); + + // Fetch current pixel: + float4 current = SMAASamplePoint(currentColorTex, texcoord); + + // Reproject current coordinates and fetch previous pixel: + float4 previous = SMAASamplePoint(previousColorTex, texcoord + velocity); + + // Attenuate the previous pixel if the velocity is different: + float delta = abs(current.a * current.a - previous.a * previous.a) / 5.0; + float weight = 0.5 * saturate(1.0 - sqrt(delta) * SMAA_REPROJECTION_WEIGHT_SCALE); + + // Blend the pixels according to the calculated weight: + return lerp(current, previous, weight); + #else + // Just blend the pixels: + float4 current = SMAASamplePoint(currentColorTex, texcoord); + float4 previous = SMAASamplePoint(previousColorTex, texcoord); + return lerp(current, previous, 0.5); + #endif +} + +//----------------------------------------------------------------------------- +// Separate Multisamples Pixel Shader (Optional Pass) + + #ifdef SMAALoad +void SMAASeparatePS(float4 position, + float2 texcoord, + out float4 target0, + out float4 target1, + SMAATexture2DMS2(colorTexMS)) +{ + int2 pos = int2(position.xy); + target0 = SMAALoad(colorTexMS, pos, 0); + target1 = SMAALoad(colorTexMS, pos, 1); +} + #endif + +//----------------------------------------------------------------------------- +#endif // SMAA_INCLUDE_PS diff --git a/gamedata/shaders/d3d11/smaa_bweight_calc.ps.hlsl b/gamedata/shaders/d3d11/smaa_bweight_calc.ps.hlsl new file mode 100644 index 0000000..4a414e2 --- /dev/null +++ b/gamedata/shaders/d3d11/smaa_bweight_calc.ps.hlsl @@ -0,0 +1,42 @@ +/* +------------------------------------------------------------------ +SMAA weight calculation pass +------------------------------------------------------------------ +References: +https://github.com/iryoku/smaa +------------------------------------------------------------------ +Back to the Roots +*/ + +#include "common.hlsli" + +#if defined(SM_5) || defined(SM_4_1) + #define SMAA_HLSL_4_1 +#else + #define SMAA_HLSL_4 +#endif + +uniform float4 scaled_screen_res; +#define SMAA_RT_METRICS scaled_screen_res.zwxy + +#define SMAA_PRESET_ULTRA + +#include "smaa.hlsli" + +Texture2D s_edgetex; +Texture2D s_areatex; +Texture2D s_searchtex; + +// Struct +struct p_smaa +{ + float4 hpos : SV_POSITION; + float2 tc0 : TEXCOORD0; // Texture coordinates (for sampling maps) + float2 pixcoord : TEXCOORD1; + float4 offset[3] : TEXCOORD2; +}; + +float4 main(p_smaa I) : SV_Target +{ + return SMAABlendingWeightCalculationPS(I.tc0, I.pixcoord, I.offset, s_edgetex, s_areatex, s_searchtex, 0.0f); +}; diff --git a/gamedata/shaders/d3d11/smaa_bweight_calc.vs.hlsl b/gamedata/shaders/d3d11/smaa_bweight_calc.vs.hlsl new file mode 100644 index 0000000..5702d65 --- /dev/null +++ b/gamedata/shaders/d3d11/smaa_bweight_calc.vs.hlsl @@ -0,0 +1,44 @@ +#include "common.hlsli" + +#if defined(SM_5) || defined(SM_4_1) + #define SMAA_HLSL_4_1 +#else + #define SMAA_HLSL_4 +#endif + +#define SMAA_INCLUDE_VS 1 +uniform float4 scaled_screen_res; +#define SMAA_RT_METRICS scaled_screen_res.zwxy + +#include "smaa.hlsli" + +// Struct +struct p_smaa +{ + float4 hpos : SV_POSITION; + float2 tc0 : TEXCOORD0; // Texture coordinates (for sampling maps) + float2 pixcoord : TEXCOORD1; + float4 offset[3] : TEXCOORD2; +}; + +struct v2p_smaa +{ + float2 tc0 : TEXCOORD0; + float4 HPos : POSITIONT; // Clip-space position (for rasterization) +}; + +// Vertex +p_smaa main(v2p_smaa I) +{ + p_smaa O; + // Transform to screen space (in d3d9 it was done automatically) + O.hpos.x = (I.HPos.x * scaled_screen_res.z * 2 - 1); + O.hpos.y = -(I.HPos.y * scaled_screen_res.w * 2 - 1); + O.hpos.zw = I.HPos.zw; + + O.tc0 = I.tc0; + + SMAABlendingWeightCalculationVS(I.tc0, O.pixcoord, O.offset); + + return O; +} diff --git a/gamedata/shaders/d3d11/smaa_edge_detect.ps.hlsl b/gamedata/shaders/d3d11/smaa_edge_detect.ps.hlsl new file mode 100644 index 0000000..c267a75 --- /dev/null +++ b/gamedata/shaders/d3d11/smaa_edge_detect.ps.hlsl @@ -0,0 +1,42 @@ +/* +------------------------------------------------------------------ +SMAA edge detection pass +------------------------------------------------------------------ +References: +https://github.com/iryoku/smaa +------------------------------------------------------------------ +Back to the Roots +*/ + +#include "common.hlsli" + +#if defined(SM_5) || defined(SM_4_1) + #define SMAA_HLSL_4_1 +#else + #define SMAA_HLSL_4 +#endif + +uniform float4 scaled_screen_res; +#define SMAA_RT_METRICS scaled_screen_res.zwxy + +#define SMAA_PRESET_ULTRA +#define EDGE_DETECT_COLOR + +#include "smaa.hlsli" + +// Struct +struct p_smaa +{ + float4 hpos : SV_POSITION; + float2 tc0 : TEXCOORD0; // Texture coordinates (for sampling maps) + float4 offset[3] : TEXCOORD1; +}; + +float4 main(p_smaa I) : SV_Target +{ +#if defined(EDGE_DETECT_COLOR) + return float4(SMAAColorEdgeDetectionPS(I.tc0, I.offset, s_image), 0.0f, 0.0f); +#else + return float4(SMAALumaEdgeDetectionPS(I.tc0, I.offset, s_image), 0.0f, 0.0f); +#endif +} diff --git a/gamedata/shaders/d3d11/smaa_edge_detect.vs.hlsl b/gamedata/shaders/d3d11/smaa_edge_detect.vs.hlsl new file mode 100644 index 0000000..f2949af --- /dev/null +++ b/gamedata/shaders/d3d11/smaa_edge_detect.vs.hlsl @@ -0,0 +1,43 @@ +#include "common.hlsli" + +#if defined(SM_5) || defined(SM_4_1) + #define SMAA_HLSL_4_1 +#else + #define SMAA_HLSL_4 +#endif + +#define SMAA_INCLUDE_VS 1 +uniform float4 scaled_screen_res; +#define SMAA_RT_METRICS scaled_screen_res.zwxy + +#include "smaa.hlsli" + +// Struct +struct p_smaa +{ + float4 hpos : SV_POSITION; + float2 tc0 : TEXCOORD0; // Texture coordinates (for sampling maps) + float4 offset[3] : TEXCOORD1; +}; + +struct v2p_smaa +{ + float2 tc0 : TEXCOORD0; + float4 HPos : POSITIONT; // Clip-space position (for rasterization) +}; + +// Vertex +p_smaa main(v2p_smaa I) +{ + p_smaa O; + // Transform to screen space (in d3d9 it was done automatically) + O.hpos.x = (I.HPos.x * scaled_screen_res.z * 2 - 1); + O.hpos.y = -(I.HPos.y * scaled_screen_res.w * 2 - 1); + O.hpos.zw = I.HPos.zw; + + O.tc0 = I.tc0; + + SMAAEdgeDetectionVS(I.tc0, O.offset); + + return O; +} diff --git a/gamedata/shaders/d3d11/smaa_neighbour_blend.ps.hlsl b/gamedata/shaders/d3d11/smaa_neighbour_blend.ps.hlsl new file mode 100644 index 0000000..51f6b7b --- /dev/null +++ b/gamedata/shaders/d3d11/smaa_neighbour_blend.ps.hlsl @@ -0,0 +1,37 @@ +/* +------------------------------------------------------------------ +SMAA neighbour blend pass +------------------------------------------------------------------ +References: +https://github.com/iryoku/smaa +------------------------------------------------------------------ +Back to the Roots +*/ + +#include "common.hlsli" + +#if defined(SM_5) || defined(SM_4_1) + #define SMAA_HLSL_4_1 +#else + #define SMAA_HLSL_4 +#endif + +uniform float4 scaled_screen_res; +#define SMAA_RT_METRICS scaled_screen_res.zwxy +#define SMAA_PRESET_ULTRA + +#include "smaa.hlsli" + +Texture2D s_blendtex; + +struct p_smaa +{ + float4 hpos : SV_POSITION; + float2 tc0 : TEXCOORD0; // Texture coordinates (for sampling maps) + float4 offset : TEXCOORD2; +}; + +float4 main(p_smaa I) : SV_Target +{ + return SMAANeighborhoodBlendingPS(I.tc0, I.offset, s_image, s_blendtex); +} diff --git a/gamedata/shaders/d3d11/smaa_neighbour_blend.vs.hlsl b/gamedata/shaders/d3d11/smaa_neighbour_blend.vs.hlsl new file mode 100644 index 0000000..9fa9327 --- /dev/null +++ b/gamedata/shaders/d3d11/smaa_neighbour_blend.vs.hlsl @@ -0,0 +1,43 @@ +#include "common.hlsli" + +#if defined(SM_5) || defined(SM_4_1) + #define SMAA_HLSL_4_1 +#else + #define SMAA_HLSL_4 +#endif + +#define SMAA_INCLUDE_VS 1 +uniform float4 scaled_screen_res; +#define SMAA_RT_METRICS scaled_screen_res.zwxy + +#include "smaa.hlsli" + +// Struct +struct p_smaa +{ + float4 hpos : SV_POSITION; + float2 tc0 : TEXCOORD0; // Texture coordinates (for sampling maps) + float4 offset : TEXCOORD1; +}; + +struct v2p_smaa +{ + float2 tc0 : TEXCOORD0; + float4 HPos : POSITIONT; // Clip-space position (for rasterization) +}; + +// Vertex +p_smaa main(v2p_smaa I) +{ + p_smaa O; + // Transform to screen space (in d3d9 it was done automatically) + O.hpos.x = (I.HPos.x * scaled_screen_res.z * 2 - 1); + O.hpos.y = -(I.HPos.y * scaled_screen_res.w * 2 - 1); + O.hpos.zw = I.HPos.zw; + + O.tc0 = I.tc0; + + SMAANeighborhoodBlendingVS(I.tc0, O.offset); + + return O; +} diff --git a/gamedata/shaders/d3d11/snowing_main.ps.hlsl b/gamedata/shaders/d3d11/snowing_main.ps.hlsl new file mode 100644 index 0000000..cb743b5 --- /dev/null +++ b/gamedata/shaders/d3d11/snowing_main.ps.hlsl @@ -0,0 +1,63 @@ +#include "common.hlsli" +#include "sload.hlsli" + +void main(p_shadow _I, out IXrayGbufferPack O) +{ + IXrayGbuffer G; + p_bumped_new I; + + GbufferUnpack(_I.tc0.xy, _I.hpos.xy, G); + + clip(G.SnowMask - 0.00001f); + clip(0.9999f - G.Depth); + + I.position = float4(G.Point.xyz, 1.0f); + I.snow_mask = G.SnowMask * smoothstep(0.2f, 0.3f, G.Hemi); + + float3 P = mul(m_invV, I.position); + float3 N = normalize(mul((float3x3)m_invV, G.Normal.xyz)); + + float3 T, B; + I.tcdh.xy = P.xz * 0.2f; + + build_contangent_frame(P, N, I.tcdh.xy, T, B); + + float3x3 xform = mul((float3x3)m_V, float3x3( + T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z + ) + ); + I.tcdh.zw = 0.5f; + + I.M1 = xform[0]; + I.M2 = xform[1]; + I.M3 = xform[2]; + + I.hpos_curr = I.hpos_old = I.hpos = _I.hpos; + IXrayMaterial M; + + M.Sun = G.SSS; + M.Hemi = G.Hemi; + + M.Depth = G.Point.z; + M.Point = G.Point.xyz; + + SloadNew(I, M); + + M.Normal = mul(xform, M.Normal); + + M.Normal = lerp(G.Normal, M.Normal, I.snow_mask); + M.Roughness = lerp(G.Roughness, M.Roughness, I.snow_mask); + + M.Normal = normalize(M.Normal); + + O.Velocity = 0.0f; + GbufferPack(O, M); + + O.Color.w = I.snow_mask; + O.Material.w = I.snow_mask; + + O.Normal.w = 1.0f; +} + diff --git a/gamedata/shaders/d3d11/ssao.ps.hlsl b/gamedata/shaders/d3d11/ssao.ps.hlsl new file mode 100644 index 0000000..4365992 --- /dev/null +++ b/gamedata/shaders/d3d11/ssao.ps.hlsl @@ -0,0 +1,99 @@ +#ifndef SSAO_1231242112 +#define SSAO_1231242112 +#include "common.hlsli" + +#define SSAO_RADIUS 0.8 + +Texture2D jitter0; +sampler smp_jitter; + +float4 scaled_screen_res; + +float3 uv_to_eye(float2 uv, float eye_z) +{ + uv = uv * float2(2.0f, 2.0f) - float2(1.0f, 1.0f); + return float3(uv * pos_decompression_params.xy, 1.0f) * eye_z; +} + +/* + SSAO Ðагло украдено у Sir Lancevrot (Ñ ÐµÐ³Ð¾ разрешениÑ) +*/ + +float3 GetViewPos(float2 uv) +{ + float depth = s_position.SampleLevel(smp_nofilter, uv, 0).x; + return uv_to_eye(uv, depth_unpack.x * rcp(depth - depth_unpack.y)); +} + +float doPBAO(float2 uv, float3 pos, float3 n, float invRad, float bias, float selfOcc) +{ + float3 p = GbufferGetPointRealUnjitter(uv); + float3 dist = p - pos; + + float len = length(dist); + float3 v = dist * rcp(len); + + float atten = len * invRad; + return max(-selfOcc, dot(n, v) - bias) * rcp(atten * atten + 1.0f); +} + +float calc_ssao(float depth, float3 normal, float2 tc0) +{ + // define kernel + float n = 0.0f; + const float step = 0.875f; + const float fScale = 0.57735f * 0.025f; + + const float inv2 = 0.5f; + const float inv5_3 = 0.188679245283f; + const float inv8 = 0.125f; + const float inv16 = 0.0625f; + const float selfOcc = 0.0f; // range: 0.0f to 1.0f + const float2 focalLen = rcp(pos_decompression_params.xy); + + const float3 arrKernel[8] = + { + float3( 1.0, 1.0, 1.0) * fScale * (n += step), + float3(-1.0, -1.0, -1.0) * fScale * (n += step), + float3(-1.0, -1.0, 1.0) * fScale * (n += step), + float3(-1.0, 1.0, -1.0) * fScale * (n += step), + float3(-1.0, 1.0, 1.0) * fScale * (n += step), + float3( 1.0, -1.0, -1.0) * fScale * (n += step), + float3( 1.0, -1.0, 1.0) * fScale * (n += step), + float3( 1.0, 1.0, -1.0) * fScale * (n += step), + }; + + float2 tc1 = (tc0 * scaled_screen_res.xy) * 0.015625f; + float3 rotSample = jitter0.Sample(smp_jitter, tc1).xyz; + + rotSample = frac(m_taa_jitter.z + rotSample); + rotSample = normalize(rotSample - 0.5f); + + float3 pos = GbufferGetPointRealUnjitter(tc0, depth) * 0.99f; + + // calculate angle bias + float bias = 0.0; + + // calculate contrast + float contrast = inv16 * rcp(1.0f - saturate(bias)); + + // calculate radius + float radius = SSAO_RADIUS * saturate(pos.z * inv5_3) * (1.0f + pos.z * inv8); + float invRad = rcp(radius); + + float2 radius2D = radius * focalLen * rcp(pos.z); + float ao = 0.0f; + + // calculate ao + [unroll] + for (int i = 0; i < 8; ++i) { + float2 deltaUV = reflect(arrKernel[i], rotSample).xy * radius2D; + ao += doPBAO(tc0 + deltaUV, pos, normal, invRad, bias, selfOcc); + ao += doPBAO(tc0 + deltaUV * inv2, pos, normal, invRad, bias, selfOcc); + } + + ao = 1.0f - (ao * contrast + selfOcc); + return ao * ao; +} +#endif + diff --git a/gamedata/shaders/d3d11/ssao_blur.ps.hlsl b/gamedata/shaders/d3d11/ssao_blur.ps.hlsl new file mode 100644 index 0000000..a68a4d5 --- /dev/null +++ b/gamedata/shaders/d3d11/ssao_blur.ps.hlsl @@ -0,0 +1,37 @@ +uniform float4 screen_res; +uniform Texture2D s_occ; + +float ssao_blur_ps(float2 centerTC) +{ + // low weight center sample - will be used on edges + float fSumWeight = 0.025f; + float2 centerData = s_occ.Sample(smp_nofilter, centerTC); + float fOcclusion = centerData.r * fSumWeight; + float centerDepth = centerData.g; + + float2 arrOffsets[4] = + { + float2(1, -1), + float2(-1, -1), + float2(1, 1), + float2(-1, 1) + }; + + [unroll] + for (int i = 0; i < 4; i++) + { + float2 sampleTC = centerTC + pos_decompression_params2.zw * arrOffsets[i]; + float2 sampleData = s_occ.Sample(smp_nofilter, sampleTC); + float fDepth = sampleData.g; + float fDiff = 8 * abs(fDepth - centerDepth) / min(fDepth, centerDepth); + float fWeight = saturate(1 - fDiff); + + fOcclusion += sampleData.r * fWeight; + + fSumWeight += fWeight; + } + + fOcclusion /= fSumWeight; + + return fOcclusion; +} diff --git a/gamedata/shaders/d3d11/ssao_calc.ps.hlsl b/gamedata/shaders/d3d11/ssao_calc.ps.hlsl new file mode 100644 index 0000000..00331ae --- /dev/null +++ b/gamedata/shaders/d3d11/ssao_calc.ps.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +uniform Texture2D s_half_depth; +#include "ssao.ps.hlsl" + +struct _input +{ + float4 tc0 : TEXCOORD0; // tc.xy, tc.w = tonemap scale + float2 tcJ : TEXCOORD1; // jitter coords + float4 pos2d : SV_POSITION; +}; + +float4 main(_input I) : SV_Target0 +{ + IXrayGbuffer O; + GbufferUnpack(I.tc0.xy, I.pos2d.xy, O); + + if(O.Depth > 0.9999f) { + return 1.0f; + } + + float occ = calc_ssao(O.Depth, O.Normal, I.tc0.xy); + return float4(occ, occ, occ, occ); +} + diff --git a/gamedata/shaders/d3d11/sslr_filter.ps.hlsl b/gamedata/shaders/d3d11/sslr_filter.ps.hlsl new file mode 100644 index 0000000..e583738 --- /dev/null +++ b/gamedata/shaders/d3d11/sslr_filter.ps.hlsl @@ -0,0 +1,118 @@ +#include "common.hlsli" +#include "reflections.hlsli" +#include "metalic_roughness_light.hlsli" + +struct PSInput +{ + float4 hpos : SV_POSITION; + float2 texcoord : TEXCOORD0; +}; + +#define mirror(x) saturate(1.0 - abs(abs(x) - 1.0)) + +#define DISK32_RADIUS8 2.443279f +#define DISK32_RADIUS16 1.48565f +#define DISK32_RADIUS32 1.0f + +#define NUM_SAMPLES 32 +#define DISK32_RADIUS DISK32_RADIUS32 + +static const float2 Disk32_Normalized[32] = { + float2(-0.50000f, 0.100000f), + float2(0.408569f, 0.024217f), + float2(0.162925f, 0.230704f), + float2(-0.108248f, 0.367911f), + float2(-0.329684f, 0.150003f), + float2(-0.223398f, -0.167128f), + float2(-0.067794f, -0.356288f), + float2(0.136270f, -0.214864f), + + float2(0.597250f, 0.006447f), + float2(0.464972f, 0.455376f), + float2(0.054674f, 0.571788f), + float2(-0.423541f, 0.423589f), + float2(-0.657243f, -0.046063f), + float2(-0.484844f, -0.466902f), + float2(0.019780f, -0.556973f), + float2(0.512536f, -0.384894f), + + float2(0.932249f, 0.011329f), + float2(0.857066f, 0.402364f), + float2(0.681793f, 0.580318f), + float2(0.323008f, 0.880092f), + float2(-0.016841f, 0.961073f), + float2(-0.422076f, 0.906560f), + float2(-0.676936f, 0.692191f), + float2(-0.925246f, 0.292709f), + + float2(-0.893555f, -0.016208f), + float2(-0.790589f, -0.380594f), + float2(-0.677237f, -0.701563f), + float2(-0.295770f, -0.880309f), + float2(-0.002152f, -0.909661f), + float2(0.336380f, -0.833836f), + float2(0.637664f, -0.692579f), + float2(0.895505f, -0.323214f), +}; + +float4 main(PSInput I) : SV_Target +{ + IXrayGbuffer O; + GbufferUnpack(I.texcoord.xy, I.hpos.xy, O); + + float4 SSLR = s_refl.SampleLevel(smp_rtlinear, I.texcoord.xy, 0); + float4 BaseColor = s_image.SampleLevel(smp_rtlinear, I.texcoord.xy, 0.0f); + + if(O.Depth >= 1.0f) + { + return 0.0f; + } + + float3 ReflectPoint = GbufferGetPointRealUnjitter(I.texcoord.xy, O.Depth); + float3 View = normalize(ReflectPoint); + + float4 FinalColor = BaseColor.xyzz; + FinalColor.w = length(O.Point - SSLR.xyz); + + float FinalWeight = 1; + float NdotV = max(0.0f, -dot(O.Normal, View)); + + [unroll(NUM_SAMPLES)] + for(uint i = 0; i < NUM_SAMPLES; ++i) + { + float2 offset = Disk32_Normalized[i] * scaled_screen_res.zw * DISK32_RADIUS; + offset = mirror(I.texcoord.xy + offset * 32.0f); + + SSLR = s_refl.SampleLevel(smp_nofilter, offset, 0); + + float4 Color = s_image.SampleLevel(smp_nofilter, offset, 0.0f); + float3 Light = O.Point - SSLR.xyz; + + float S = length(Light); + Light *= rcp(max(0.000001f, S)); + + float3 Half = normalize(Light + View); + + float NdotL = max(0.0f, -dot(O.Normal, Light)); + float NdotH = max(0.0f, -dot(O.Normal, Half)); + + float D = DistributionGGX(NdotH, O.Roughness); + float G = NdotL * GeometrySmithD(NdotL, NdotV, O.Roughness); + + float SampleWeight = D * G * SSLR.w; + SampleWeight *= 1.0f - abs(Color.w - BaseColor.w); + + Color.w = S; + FinalColor += Color * SampleWeight; + + FinalWeight += SampleWeight; + } + + FinalColor *= rcp(FinalWeight); + FinalColor.xyz = saturate(FinalColor.xyz); + + FinalColor.w += O.ViewDist; + + return FinalColor; +} + diff --git a/gamedata/shaders/d3d11/sslr_render.ps.hlsl b/gamedata/shaders/d3d11/sslr_render.ps.hlsl new file mode 100644 index 0000000..a6cf8ba --- /dev/null +++ b/gamedata/shaders/d3d11/sslr_render.ps.hlsl @@ -0,0 +1,138 @@ +#include "common.hlsli" +#include "reflections.hlsli" +#include "metalic_roughness_ambient.hlsli" + +struct PSInput +{ + float4 hpos : SV_POSITION; + float2 texcoord : TEXCOORD0; +}; + +Texture3D s_blue_noise; + +// TODO: Это можно упроÑтить потом +float3 TangentToWorld(in float3 N, in float3 H) +{ + float3 UpVector = abs(N.y) < 0.999f ? float3(0.0, 1.0, 0.0) : float3(0.0, 0.0, -1.0); + float3 T = normalize(cross(UpVector, N)); + float3 B = cross(N, T); + + return normalize(T * H.x + B * H.y + N * H.z); +} + +// Brian Karis, Epic Games "Real Shading in Unreal Engine 4" +float4 ImportanceSampleGGX(float3 N, float2 Xi, float Roughness) +{ + float m = Roughness * Roughness; + float m2 = m * m; + + float Phi = 2 * PI * Xi.x; + + float CosTheta = sqrt((1.0 - Xi.y) * rcp(1.0 + (m2 - 1.0) * Xi.y)); + float SinTheta = sqrt(abs(1.0 - CosTheta * CosTheta)); + + float3 H; + H.x = SinTheta * cos(Phi); + H.y = SinTheta * sin(Phi); + H.z = CosTheta; + + float d = (CosTheta * m2 - CosTheta) * CosTheta + 1.0f; + float D = m2 * rcp(d * d); + float pdf = D * CosTheta; + + H = TangentToWorld(N, H); + + return float4(H, pdf); +} + +void main(PSInput I, out float4 Point : SV_Target0, out float4 Final : SV_Target1) +{ + IXrayGbuffer O; + GbufferUnpack(I.texcoord.xy, I.hpos.xy, O); + + if(O.Depth >= 1.0f) + { + Point = 0.0f; + Final = 0.0f; + + return; + } + + float3 ReflectPoint = GbufferGetPointRealUnjitter(I.texcoord.xy, O.Depth); + float3 ViewVec = normalize(ReflectPoint); + + float2 Jitter = s_blue_noise[uint3(uint2(I.hpos.xy) % 128, uint(m_taa_jitter.w) % 32)].xy; + + Jitter.x = Jitter.x * 0.5f + 0.5f; + Jitter.y *= 0.7f; + + float3 BaseReflect = normalize(reflect(ViewVec, O.Normal.xyz)); + + float4 H = ImportanceSampleGGX(mul(m_invV, O.Normal.xyz), Jitter, O.Roughness); + H.xyz = mul(m_V, H.xyz); + + float3 Reflection = reflect(ViewVec, H.xyz); + + if (dot(Reflection, O.Normal) < 0.0f) + { + Reflection = normalize(Reflection + O.Normal); + } + + float3 StartPoint = ReflectPoint * 0.996f; + Point.xyz = StartPoint + Reflection * fog_params.z; + + bool isNotHUD = O.Depth >= 0.02f; + + if(isNotHUD) + { + StartPoint += O.Normal * 0.15f; + +#ifdef USE_OFFSCREEN_REFLECTIONS + float4 VSLR = FastViewReflections(StartPoint, Reflection); + Point.xyz = lerp(Point.xyz, VSLR.xyz, VSLR.w); +#endif + } + else + { + Point.xyz = Reflection.xyz * s_env.SampleLevel(smp_linear, Point.xyz, 0.0f).w; + } + + float4 SSLR = FastViewReflectionsSSR(StartPoint, Reflection, !isNotHUD); + + float4 EndProj = mul(O.Depth < 0.02f ? m_P_hud : m_P, float4(SSLR.xyz, 1.0f)); + EndProj.xy = EndProj.xy * rcp(EndProj.w) * float2(0.5f, -0.5f) + 0.5f; + + float2 Velocity = s_velocity.Sample(smp_rtlinear, EndProj.xy).xy * float2(0.5f, -0.5f); + float2 PrevSpecularUV = saturate(EndProj.xy - Velocity.xy); + + Final = s_image.Sample(smp_rtlinear, PrevSpecularUV.xy); + +#ifdef USE_OFFSCREEN_REFLECTIONS + O.Hemi = saturate(O.Hemi * 3.0f); +#endif + + float4 Hemi = CompureSpecularIrradance(Reflection.xyz, O.Hemi, 0.0f).xyzz; + SSLR.w *= GetBorderAtten(PrevSpecularUV); + +#ifdef USE_OFFSCREEN_REFLECTIONS + float3 Color = s_env.SampleLevel(smp_linear, Point.xyz, 0.0f); + Color.xyz *= rcp(1.00001f - Color.xyz); +#else + float3 Color = Hemi.xyz; +#endif + + Final.xyz = lerp(Color.xyz, Final.xyz, SSLR.w); + Point.xyz = lerp(Point.xyz, SSLR.xyz, SSLR.w); + Final.xyz = PopGamma(Final.xyz); + + Hemi.w = max(length(Point.xyz), length(StartPoint.xyz) + length(Point.xyz - StartPoint.xyz)); + Hemi.w = saturate(Hemi.w * fog_params.w + fog_params.x); + + Final.xyz = lerp(Final.xyz, Hemi.xyz, Hemi.w); + + Point.w = rcp(max(0.000001f, H.w)); + Final.xyz *= rcp(1.0f + Final.xyz); + + Final.w = isNotHUD; +} + diff --git a/gamedata/shaders/d3d11/sslr_temporal.ps.hlsl b/gamedata/shaders/d3d11/sslr_temporal.ps.hlsl new file mode 100644 index 0000000..deb34dc --- /dev/null +++ b/gamedata/shaders/d3d11/sslr_temporal.ps.hlsl @@ -0,0 +1,158 @@ +#include "common.hlsli" +#include "reflections.hlsli" +#include "metalic_roughness_ambient.hlsli" +#include "metalic_roughness_light.hlsli" + +struct PSInput +{ + float4 hpos : SV_POSITION; + float2 texcoord : TEXCOORD0; +}; + +float IntersectAABB(float3 Dir, float3 Org, float3 Box) { + float3 RcpDir = rcp(Dir); + + float3 TNeg = (Box - Org) * RcpDir; + float3 TPos = -RcpDir * (Box + Org); + + return max(min(TNeg.x, TPos.x), max(min(TNeg.y, TPos.y), min(TNeg.z, TPos.z))); +} + +float HistoryClamp(float3 History, float3 Filtered, float3 aabb_min, float3 aabb_max) { + float3 Min = min(Filtered, min(aabb_min, aabb_max)); + float3 Max = max(Filtered, max(aabb_min, aabb_max)); + + float3 Avg2 = Max + Min; + float3 Dir = Filtered - History; + + float3 Org = History - Avg2 * 0.5f; + float3 Scale = Max - Avg2 * 0.5f; + + return saturate(IntersectAABB(Dir, Org, Scale)); +} + +void sort(inout float4 a1, inout float4 a2) { + float4 t = min(a1, a2); + a2 = max(a1, a2); + a1 = t; +} + +float4 median3(float4 a1, float4 a2, float4 a3) { + sort(a2, a3); + sort(a1, a2); + + return min(a2, a3); +} + +float4 median5(float4 a1, float4 a2, float4 a3, float4 a4, float4 a5) { + sort(a1, a2); + sort(a3, a4); + sort(a1, a3); + sort(a2, a4); + + return median3(a2, a3, a5); +} + +float4 median9(float4 a1, float4 a2, float4 a3, float4 a4, float4 a5, float4 a6, float4 a7, float4 a8, float4 a9) { + sort(a1, a2); + sort(a3, a4); + sort(a5, a6); + sort(a7, a8); + sort(a1, a3); + sort(a5, a7); + sort(a1, a5); + + sort(a3, a5); + sort(a3, a7); + sort(a2, a4); + sort(a6, a8); + sort(a4, a8); + sort(a4, a6); + sort(a2, a6); + + return median5(a2, a4, a5, a7, a9); +} + +float4 main(PSInput I) : SV_Target +{ + IXrayGbuffer O; + GbufferUnpack(I.texcoord.xy, I.hpos.xy, O); + + float4 SSLR4 = s_image.SampleLevel(smp_nofilter, I.texcoord, 0); + + if(O.Depth >= 1.0f) { + return float4(SSLR4.xyz, O.Depth); + } + + float4 SSLR0 = s_image.SampleLevel(smp_nofilter, I.texcoord, 0, int2(+1, +0)); + float4 SSLR1 = s_image.SampleLevel(smp_nofilter, I.texcoord, 0, int2(-0, +1)); + float4 SSLR2 = s_image.SampleLevel(smp_nofilter, I.texcoord, 0, int2(-1, -0)); + float4 SSLR3 = s_image.SampleLevel(smp_nofilter, I.texcoord, 0, int2(-0, -1)); + + float4 SSLR5 = s_image.SampleLevel(smp_nofilter, I.texcoord, 0, int2(+1, +1)); + float4 SSLR6 = s_image.SampleLevel(smp_nofilter, I.texcoord, 0, int2(-1, +1)); + float4 SSLR7 = s_image.SampleLevel(smp_nofilter, I.texcoord, 0, int2(-1, -1)); + float4 SSLR8 = s_image.SampleLevel(smp_nofilter, I.texcoord, 0, int2(-1, -1)); + + float4 SSLRBoxMinPos = min(SSLR0, min(SSLR2, min(SSLR6, SSLR8))); + float4 SSLRBoxMaxPos = max(SSLR0, max(SSLR2, max(SSLR6, SSLR8))); + + float4 SSLRBoxMin = min(SSLR1, min(SSLR3, min(SSLR5, SSLR7))); + float4 SSLRBoxMax = max(SSLR1, max(SSLR3, max(SSLR5, SSLR7))); + + SSLRBoxMinPos = min(SSLRBoxMin, SSLRBoxMinPos); + SSLRBoxMaxPos = max(SSLRBoxMax, SSLRBoxMaxPos); + + SSLRBoxMin = SSLRBoxMinPos; //SSLRBoxMin * 0.5f + SSLRBoxMinPos * 0.5f; + SSLRBoxMax = SSLRBoxMaxPos; //SSLRBoxMax * 0.5f + SSLRBoxMaxPos * 0.5f; + + float4 SSLRMain = SSLR4; //rcp(9) * (SSLR0 + SSLR1 + SSLR2 + SSLR3 + SSLR4 + SSLR5 + SSLR6 + SSLR7 + SSLR8); + SSLRMain = median9(SSLR0, SSLR1, SSLR2, SSLR3, SSLR4, SSLR5, SSLR6, SSLR7, SSLR8); + + float3 Point = gbuf_unpack_position(I.texcoord.xy, O.PointReal.z); + float3 View = normalize(Point); + + float Fog = saturate(SSLRMain.w * fog_params.w + fog_params.x); + float3 ReflectPoint = View.xyz * SSLRMain.w; + + float2 PrevDiffuseUV = I.texcoord.xy + s_velocity.SampleLevel(smp_rtlinear, I.texcoord.xy, 0).xy * float2(-0.5f, 0.5f); + float4 PrevSpecularUV = mul(m_VP_old, float4(mul(m_invV, float4(ReflectPoint, 1.0f)).xyz, 1.0f)); + + PrevSpecularUV.xy = PrevSpecularUV.xy / PrevSpecularUV.w * float2(0.5f, -0.5f) + 0.5f; + PrevSpecularUV.xy = O.Depth > 0.02f ? PrevSpecularUV.xy : PrevDiffuseUV.xy; + SSLRMain.w = O.Depth; + + float4 SSLR_OldDiffyse = s_refl.SampleLevel(smp_rtlinear, PrevDiffuseUV.xy, 0.0f); + SSLR_OldDiffyse = lerp(SSLRMain, SSLR_OldDiffyse, GetBorderAtten(PrevDiffuseUV)); + + float Fade = 1.0f; // - Fog * 0.1f; + + float DepthClamp = 1.0f - saturate(50.0f * abs(SSLR_OldDiffyse.w - O.Depth)); + + if(O.Depth < 0.02f) { + Fade = 0.95f - Fog * 0.1f; + + DepthClamp = 1.0f - saturate(80.0f * abs(SSLR_OldDiffyse.w - O.Depth) * rcp(O.Depth) - 0.5f); + SSLRMain.xyz = lerp(SSLRMain.xyz, SSLR4.xyz, GetBorderAtten(PrevDiffuseUV)); + SSLRMain.xyz = lerp(SSLRMain.xyz, SSLR_OldDiffyse.xyz, DepthClamp * 0.98f * Fade); + + return saturate(SSLRMain); + } + + float4 SSLR_Diffuse = lerp(SSLRMain, SSLR_OldDiffyse, 0.98f * Fade); + float4 SSLR_OldSpecular = s_refl.SampleLevel(smp_rtlinear, PrevSpecularUV.xy, 0.0f); + + SSLR_OldSpecular = lerp(SSLR_Diffuse, SSLR_OldSpecular, GetBorderAtten(PrevSpecularUV)); + + float SpecularFactor = 1.0f - HistoryClamp(SSLR_OldSpecular.xyz, SSLRMain.xyz, SSLRBoxMin.xyz, SSLRBoxMax.xyz); + SSLR_OldSpecular = lerp(SSLRMain * 0.5f + SSLR_Diffuse * 0.5f, SSLR_OldSpecular, 0.98 * SpecularFactor * Fade); + + SpecularFactor = 1.0f - saturate(length(PrevDiffuseUV.xy - PrevSpecularUV.xy) * 300.0f); + float4 SSLR_Specular = lerp(SSLR_OldSpecular, SSLR_Diffuse, 0.95f * SpecularFactor); + + SSLR_Diffuse.xyz = lerp(SSLR_Specular.xyz, SSLR_Diffuse.xyz, O.Roughness); + SSLRMain.xyz = lerp(SSLRMain.xyz, SSLR_Diffuse.xyz, DepthClamp); + + return saturate(SSLRMain); +} + diff --git a/gamedata/shaders/d3d11/stub_default.lua b/gamedata/shaders/d3d11/stub_default.lua new file mode 100644 index 0000000..d7ae33b --- /dev/null +++ b/gamedata/shaders/d3d11/stub_default.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("stub_default", "stub_default") + + -- Decouple sampler and texture + -- shader:sampler ("s_base") : texture(t_base) : clamp() : f_linear () + -- TODO: DX10: move stub_default to smp_rtlinear + shader:dx10texture("s_base", t_base) + shader:dx10sampler("smp_base") +end diff --git a/gamedata/shaders/d3d11/stub_default.ps.hlsl b/gamedata/shaders/d3d11/stub_default.ps.hlsl new file mode 100644 index 0000000..793e6c8 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_default.ps.hlsl @@ -0,0 +1,12 @@ +#include "common.hlsli" + +// Pixel +float4 main(p_TL I) : SV_Target +{ + return s_base.Sample(smp_base, I.Tex0) * I.Color; + + // float4 res = s_base.Sample( smp_base, I.Tex0 )*I.Color; + // clip(res-m_AlphaRef); + // clip(res-0.5); + // return res; +} diff --git a/gamedata/shaders/d3d11/stub_default.vs.hlsl b/gamedata/shaders/d3d11/stub_default.vs.hlsl new file mode 100644 index 0000000..4c161d4 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_default.vs.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +// Vertex +v2p_TL main(v_TL I) +{ + v2p_TL O; + + O.HPos = mul(m_WVP, I.P); + O.Tex0 = I.Tex0; + O.Color = I.Color.bgra; // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_default_ma.ps.hlsl b/gamedata/shaders/d3d11/stub_default_ma.ps.hlsl new file mode 100644 index 0000000..1a569c7 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_default_ma.ps.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +// Texture2D s_base; +// sampler smp_base; + + +// Pixel +float4 main(p_TL I) : SV_Target +{ + float4 res = s_base.Sample(smp_base, I.Tex0); + // res.rgb = lerp( I.Color.rgb, res.rgb, I.Color.a); + res.rgb = lerp(res.rgb, I.Color.rgb, I.Color.a); + res.a *= I.Color.a; + + // clip(res-m_AlphaRef); + // clip(res-0.5); + + return res; + // return float4(1,1,1,1); +} diff --git a/gamedata/shaders/d3d11/stub_fullscreen_triangle.vs.hlsl b/gamedata/shaders/d3d11/stub_fullscreen_triangle.vs.hlsl new file mode 100644 index 0000000..5199b52 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_fullscreen_triangle.vs.hlsl @@ -0,0 +1,21 @@ +struct VSInput +{ + float2 texcoord : TEXCOORD0; + float4 hpos : POSITIONT; +}; + +struct VSOutput +{ + float4 hpos : SV_POSITION; + float2 texcoord : TEXCOORD0; +}; + +VSOutput main(VSInput I) +{ + VSOutput O; + + O.hpos = I.hpos; + O.texcoord = I.texcoord; + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform.vs.hlsl new file mode 100644 index 0000000..44cd3f6 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform.vs.hlsl @@ -0,0 +1,14 @@ +#include "common_iostructs.hlsli" + +// Vertex +v2p_TL main(v_TL I) +{ + v2p_TL O; + + O.HPos = I.P; + O.Tex0 = I.Tex0; + // Some shaders that use this stub don't need Color at all + O.Color = I.Color.bgra; // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform_2uv.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform_2uv.vs.hlsl new file mode 100644 index 0000000..bca7d92 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform_2uv.vs.hlsl @@ -0,0 +1,15 @@ +#include "common_iostructs.hlsli" + +// Vertex +v2p_TL2uv main(v_TL2uv I) +{ + v2p_TL2uv O; + + O.HPos = I.P; + O.Tex0 = I.Tex0; + O.Tex1 = I.Tex1; + // Some shaders that use this stub don't need Color at all + O.Color = I.Color.bgra; // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform_aa_aa.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform_aa_aa.vs.hlsl new file mode 100644 index 0000000..a671df3 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform_aa_aa.vs.hlsl @@ -0,0 +1,30 @@ +#include "common_iostructs.hlsli" + +uniform float4 screen_res; // Screen resolution (x-Width,y-Height, zw - 1/resolution) + +// Vertex +v2p_aa_AA main(v_aa_AA I) +{ + v2p_aa_AA O; + + // O.HPos = I.P; + + { + I.P.xy += 0.5f; + // O.HPos.x = I.P.x/1024 * 2 - 1; + // O.HPos.y = (I.P.y/768 * 2 - 1)*-1; + O.HPos.x = I.P.x * screen_res.z * 2 - 1; + O.HPos.y = (I.P.y * screen_res.w * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + + O.Tex0 = I.Tex0; + O.Tex1 = I.Tex1; + O.Tex2 = I.Tex2; + O.Tex3 = I.Tex3; + O.Tex4 = I.Tex4; + O.Tex5 = I.Tex5; + O.Tex6 = I.Tex6; + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform_build.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform_build.vs.hlsl new file mode 100644 index 0000000..415fe06 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform_build.vs.hlsl @@ -0,0 +1,25 @@ +#include "common_iostructs.hlsli" + +float4 screen_res; // Screen resolution (x-Width,y-Height, zw - 1/resolution) + +// Vertex +v2p_build main(v_build I) +{ + v2p_build O; + + { + I.P.xy += 0.5f; // Bugs with rasterizer??? Possible float-pixel shift. + // O.HPos.x = I.P.x/1024 * 2 - 1; + // O.HPos.y = (I.P.y/768 * 2 - 1)*-1; + O.HPos.x = I.P.x * screen_res.z * 2 - 1; + O.HPos.y = (I.P.y * screen_res.w * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + + O.Tex0 = I.Tex0; + O.Tex1 = I.Tex1; + O.Tex2 = I.Tex2; + O.Tex3 = I.Tex3; + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform_filter.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform_filter.vs.hlsl new file mode 100644 index 0000000..b86d179 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform_filter.vs.hlsl @@ -0,0 +1,29 @@ +#include "common_iostructs.hlsli" + +float4 screen_res; // Screen resolution (x-Width,y-Height, zw - 1/resolution) + +// Vertex +v2p_filter main(v_filter I) +{ + v2p_filter O; + + // O.HPos = I.P; + { + I.P.xy += 0.5f; // Bugs with rasterizer??? Possible float-pixel shift. + // O.HPos.x = I.P.x/1024 * 2 - 1; + // O.HPos.y = (I.P.y/768 * 2 - 1)*-1; + O.HPos.x = I.P.x * screen_res.z * 2 - 1; + O.HPos.y = (I.P.y * screen_res.w * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + O.Tex0 = I.Tex0; + O.Tex1 = I.Tex1; + O.Tex2 = I.Tex2; + O.Tex3 = I.Tex3; + O.Tex4 = I.Tex4; + O.Tex5 = I.Tex5; + O.Tex6 = I.Tex6; + O.Tex7 = I.Tex7; + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform_postpr.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform_postpr.vs.hlsl new file mode 100644 index 0000000..98d4d95 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform_postpr.vs.hlsl @@ -0,0 +1,29 @@ +#include "common_iostructs.hlsli" + +uniform float4 screen_res; // Screen resolution (x-Width,y-Height, zw - 1/resolution) + +// Vertex +v2p_postpr main(v_postpr I) +{ + v2p_postpr O; + + // O.HPos = I.P; + + { + I.P.xy += 0.5f; + // O.HPos.x = I.P.x/1024 * 2 - 1; + // O.HPos.y = (I.P.y/768 * 2 - 1)*-1; + O.HPos.x = I.P.x * screen_res.z * 2 - 1; + O.HPos.y = (I.P.y * screen_res.w * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + + O.Tex0 = I.Tex0; + O.Tex1 = I.Tex1; + O.Tex2 = I.Tex2; + + O.Color = I.Color.bgra; // swizzle vertex colour + O.Gray = I.Gray.bgra; // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform_t.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform_t.vs.hlsl new file mode 100644 index 0000000..9567a1b --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform_t.vs.hlsl @@ -0,0 +1,25 @@ +#include "common_iostructs.hlsli" + +uniform float4 screen_res; // Screen resolution (x-Width,y-Height, zw - 1/resolution) + +// Vertex +v2p_TL main(v_TL_positiont I) +{ + v2p_TL O; + + // O.HPos = P; + + { + I.P.xy += 0.5f; + // O.HPos.x = I.P.x/1024 * 2 - 1; + // O.HPos.y = (I.P.y/768 * 2 - 1)*-1; + O.HPos.x = I.P.x * screen_res.z * 2 - 1; + O.HPos.y = (I.P.y * screen_res.w * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + + O.Tex0 = I.Tex0; + O.Color = I.Color.bgra; // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform_t_font.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform_t_font.vs.hlsl new file mode 100644 index 0000000..0764398 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform_t_font.vs.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +uniform float4 screen_res; +v2p_TL main(v_TL_positiont I) +{ + v2p_TL O; + + { + // I.P.xy += 0.5f; + + O.HPos.x = I.P.x * screen_res.z * 2 - 1; + O.HPos.y = (I.P.y * screen_res.w * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + + O.Tex0 = I.Tex0; + O.Color = I.Color.bgra; // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform_t_m2.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform_t_m2.vs.hlsl new file mode 100644 index 0000000..2e20859 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform_t_m2.vs.hlsl @@ -0,0 +1,25 @@ +#include "common_iostructs.hlsli" + +uniform float4 screen_res; // Screen resolution (x-Width,y-Height, zw - 1/resolution) + +// Vertex +v2p_TL main(v_TL_positiont I) +{ + v2p_TL O; + + // O.HPos = P; + + { + I.P.xy += 0.5f; + // O.HPos.x = I.P.x/1024 * 2 - 1; + // O.HPos.y = (I.P.y/768 * 2 - 1)*-1; + O.HPos.x = I.P.x * screen_res.z * 2 - 1; + O.HPos.y = (I.P.y * screen_res.w * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + + O.Tex0 = I.Tex0; + O.Color = float4(I.Color.bgr * 2, 1.0f); // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform_t_m4.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform_t_m4.vs.hlsl new file mode 100644 index 0000000..f6a4457 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform_t_m4.vs.hlsl @@ -0,0 +1,25 @@ +#include "common_iostructs.hlsli" + +uniform float4 screen_res; // Screen resolution (x-Width,y-Height, zw - 1/resolution) + +// Vertex +v2p_TL main(v_TL_positiont I) +{ + v2p_TL O; + + // O.HPos = P; + + { + I.P.xy += 0.5f; + // O.HPos.x = I.P.x/1024 * 2 - 1; + // O.HPos.y = (I.P.y/768 * 2 - 1)*-1; + O.HPos.x = I.P.x * screen_res.z * 2 - 1; + O.HPos.y = (I.P.y * screen_res.w * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + + O.Tex0 = I.Tex0; + O.Color = float4(I.Color.bgr * 4, 1.0f); // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform_t_ma.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform_t_ma.vs.hlsl new file mode 100644 index 0000000..a4608df --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform_t_ma.vs.hlsl @@ -0,0 +1,21 @@ +#include "common_iostructs.hlsli" + +// Vertex +v2p_TL main(v_TL_positiont I) +{ + v2p_TL O; + + // O.HPos = P; + + { + I.P.xy += 0.5f; + O.HPos.x = I.P.x / 1024 * 2 - 1; + O.HPos.y = (I.P.y / 768 * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + + O.Tex0 = I.Tex0; + O.Color = I.Color.aaaa; // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_notransform_t_scaled.vs.hlsl b/gamedata/shaders/d3d11/stub_notransform_t_scaled.vs.hlsl new file mode 100644 index 0000000..c4107bf --- /dev/null +++ b/gamedata/shaders/d3d11/stub_notransform_t_scaled.vs.hlsl @@ -0,0 +1,21 @@ +#include "common_iostructs.hlsli" + +uniform float4 scaled_screen_res; // Screen resolution (x-Width,y-Height, zw - 1/resolution) + +// Vertex +v2p_TL main(v_TL_positiont I) +{ + v2p_TL O; + + { + I.P.xy += 0.5f; + O.HPos.x = I.P.x * scaled_screen_res.z * 2 - 1; + O.HPos.y = (I.P.y * scaled_screen_res.w * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + + O.Tex0 = I.Tex0; + O.Color = I.Color.bgra; // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_screen_space.vs.hlsl b/gamedata/shaders/d3d11/stub_screen_space.vs.hlsl new file mode 100644 index 0000000..b139636 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_screen_space.vs.hlsl @@ -0,0 +1,17 @@ +#include "common.hlsli" + +// Vertex +uniform float4 screen_res; + +p_shadow main(v2p_screen I) +{ + p_shadow O; + // Transform to screen space (in d3d9 it was done automatically) + O.hpos.x = (I.HPos.x * screen_res.z * 2 - 1); + O.hpos.y = -(I.HPos.y * screen_res.w * 2 - 1); + O.hpos.zw = I.HPos.zw; + + O.tc0 = I.tc0; + + return O; +} diff --git a/gamedata/shaders/d3d11/stub_srgb.ps.hlsl b/gamedata/shaders/d3d11/stub_srgb.ps.hlsl new file mode 100644 index 0000000..d176b22 --- /dev/null +++ b/gamedata/shaders/d3d11/stub_srgb.ps.hlsl @@ -0,0 +1,9 @@ +#include "common.hlsli" + +// Pixel +float4 main(p_TL I) : SV_Target +{ + float4 final = s_base.Sample(smp_base, I.Tex0) * I.Color; + return PushGamma(final); +} + diff --git a/gamedata/shaders/d3d11/taa_render.ps.hlsl b/gamedata/shaders/d3d11/taa_render.ps.hlsl new file mode 100644 index 0000000..d15ef6d --- /dev/null +++ b/gamedata/shaders/d3d11/taa_render.ps.hlsl @@ -0,0 +1,216 @@ +/* + Simple TAA + + References: + - https://gdcvault.com/play/1022970/Temporal-Reprojection-Anti-Aliasing-in + - https://research.nvidia.com/labs/rtr/publication/yang2020survey/ + - https://github.com/iryoku/smaa + - https://michaldrobot.com/2014/08/13/hraa-siggraph-2014-slides-available/ + - https://gpuopen.com/learn/optimized-reversible-tonemapper-for-resolve/ + - https://research.activision.com/publications/2020-03/dynamic-temporal-antialiasing-and-upsampling-in-call-of-duty + + Author: + - LVutner + + ---IX-Ray Engine--- +*/ + +#include "common.hlsli" + +struct PSInput +{ + float4 hpos : SV_POSITION; + float4 texcoord : TEXCOORD0; +}; + +Texture2D s_image_prev; //Previous rt_generic_0 +float4 scaled_screen_res; //Render resolution + +//Settings... +#define TAA_ALT_PATH //Different min-max estimation. Old path may be slower [todo: check] +#define TAA_BLEND_WEIGHT 0.925 //Blend weight +#define TAA_HISTORY_SHARPNESS 0.75 //Sharpness factor for history filtering +#define TAA_DEVIATION 1.75 //Deviation. 1.75 pix + +//From Timothy Lottes +float3 Lottes_Tonemap(float3 c) +{ + return saturate(c * rcp(1.0f + c)); +} + +float3 Lottes_Tonemap_Inverse(float3 c) +{ + c = saturate(c); + return c * rcp(1.00001f - c); +} + +static const int2 offset_3x3[9] = +{ + int2(-1, -1), + int2(0, -1), + int2(1, -1), + int2(-1, 0), + int2(0, 0), + int2(1, 0), + int2(-1, 1), + int2(0, 1), + int2(1, 1), +}; + +//From CoD presentation +float3 SMAABicubicFilter( + float3 current_top, + float3 current_bottom, + float3 current_left, + float3 current_right, + float3 current_center, + float3 previous_center, + float2 f) +{ + float2 w = 0.8 * TAA_HISTORY_SHARPNESS * (f * f - f); //hardcoded sharpness, refer to slides + float4 color = + float4(lerp(current_left, current_right, f.x), 1.0) * w.x + + float4(lerp(current_top, current_bottom, f.y), 1.0) * w.y; + + color += float4((1.0 + color.w) * previous_center - color.w * current_center, 1.0); + return color.xyz / color.w; +} + +//Cheapest way to get 3x3 neighborhood of single channel texture +void get_3x3_depth(float2 texcoord, float2 gather_texcoord, inout float d_3x3[9]) +{ + float4 d_gather0 = s_position.Gather(smp_nofilter, gather_texcoord); + float4 d_gather1 = s_position.Gather(smp_nofilter, gather_texcoord, int2(-1, -1)); + + d_3x3[0] = d_gather1.w; + d_3x3[1] = d_gather1.z; + d_3x3[2] = s_position.SampleLevel(smp_nofilter, texcoord, 0, int2(1, -1)).x; + d_3x3[3] = d_gather1.x; + d_3x3[4] = d_gather0.w; //d_gather1.y overlap + d_3x3[5] = d_gather0.z; + d_3x3[6] = s_position.SampleLevel(smp_nofilter, texcoord, 0, int2(-1, 1)).x; + d_3x3[7] = d_gather0.x; + d_3x3[8] = d_gather0.y; +} + +//SM_5 path, we save 1 sample +#ifdef SM_5 +void get_3x3_color(float2 texcoord, float2 gather_texcoord, inout float3 c_3x3[9]) +{ + float4 c_gather0_r = s_image.GatherRed(smp_nofilter, gather_texcoord); + float4 c_gather0_g = s_image.GatherGreen(smp_nofilter, gather_texcoord); + float4 c_gather0_b = s_image.GatherBlue(smp_nofilter, gather_texcoord); + + c_3x3[0] = s_image.SampleLevel(smp_nofilter, texcoord, 0, int2(-1, -1)).xyz; + c_3x3[1] = s_image.SampleLevel(smp_nofilter, texcoord, 0, int2(0, -1)).xyz; + c_3x3[2] = s_image.SampleLevel(smp_nofilter, texcoord, 0, int2(1, -1)).xyz; + c_3x3[3] = s_image.SampleLevel(smp_nofilter, texcoord, 0, int2(-1, 0)).xyz; + c_3x3[4] = float3(c_gather0_r.w, c_gather0_g.w, c_gather0_b.w); + c_3x3[5] = float3(c_gather0_r.z, c_gather0_g.z, c_gather0_b.z); + c_3x3[6] = s_image.SampleLevel(smp_nofilter, texcoord, 0, int2(-1, 1)).xyz; + c_3x3[7] = float3(c_gather0_r.x, c_gather0_g.x, c_gather0_b.x); + c_3x3[8] = float3(c_gather0_r.y, c_gather0_g.y, c_gather0_b.y); +} +#endif + +float4 main(PSInput I) : SV_Target +{ + //https://wojtsterna.blogspot.com/2018/02/directx-11-hlsl-gatherred.html + float2 gather_texcoord = I.texcoord.xy + scaled_screen_res.zw * 0.5; + + //Fetch 3x3 depth neighborhood + float d_3x3[9]; + get_3x3_depth(I.texcoord.xy, gather_texcoord, d_3x3); + + //Fetch 3x3 color neighborhood + float3 c_3x3[9]; + #ifdef SM_5 + get_3x3_color(I.texcoord.xy, gather_texcoord, c_3x3); + #endif + + int2 depth_offset = int2(0, 0); + float depth_closest = 1.0; + + #ifdef TAA_ALT_PATH + float3 c_m = (0.0).xxx; + float3 c_m2 = (0.0).xxx; + #endif + + [unroll] + for (int i = 0; i < 9; i++) + { + #ifdef SM_5 + c_3x3[i] = Lottes_Tonemap(c_3x3[i]); + #else + int2 offset_hpos = clamp(I.hpos.xy + offset_3x3[i], 0, scaled_screen_res.xy - 1); + c_3x3[i] = Lottes_Tonemap(s_image[offset_hpos].xyz); + #endif + + //Accumulate moments + #ifdef TAA_ALT_PATH + c_m += c_3x3[i] * (1.0 / 9.0); + c_m2 += c_3x3[i] * c_3x3[i] * (1.0 / 9.0); + #endif + + float sampled_depth = d_3x3[i]; + + //Find closest depth. Sign and initial value should be changed for reverse-z + if(sampled_depth < depth_closest) + { + depth_closest = sampled_depth; + depth_offset = offset_3x3[i]; + } + } + + //Get min and max color of 3x3 neighborhood + #ifdef TAA_ALT_PATH + //1.75 is for stability + float3 c_stddev = sqrt(max(c_m2 - c_m * c_m, 0.0)); + float3 c_min = c_m - c_stddev * TAA_DEVIATION; + float3 c_max = c_m + c_stddev * TAA_DEVIATION; + #else + //Soft window + float3 c_min = min(c_3x3[0], min(c_3x3[1], min(c_3x3[2], min(c_3x3[3], min(c_3x3[4], min(c_3x3[5], min(c_3x3[6], min(c_3x3[7], c_3x3[8])))))))); + c_min += min(c_3x3[1], min(c_3x3[3], min(c_3x3[4], min(c_3x3[5], c_3x3[7])))); + c_min *= 0.5; + + float3 c_max = max(c_3x3[0], max(c_3x3[1], max(c_3x3[2], max(c_3x3[3], max(c_3x3[4], max(c_3x3[5], max(c_3x3[6], max(c_3x3[7], c_3x3[8])))))))); + c_max += max(c_3x3[1], max(c_3x3[3], max(c_3x3[4], max(c_3x3[5], c_3x3[7])))); + c_max *= 0.5; + #endif + + //Fetch motion vectors and reproject + float2 motion_vector = s_velocity[clamp(I.hpos.xy + depth_offset, 0, scaled_screen_res.xy - 1)].xy * float2(0.5, -0.5); + float2 reprojected_tc = I.texcoord.xy - motion_vector; + + //Early quit + if(any(reprojected_tc != saturate(reprojected_tc))) + return float4(Lottes_Tonemap_Inverse(c_3x3[4]), 0.0); + + //Fetch previous frame + float3 p_4 = Lottes_Tonemap(s_image_prev.SampleLevel(smp_rtlinear, reprojected_tc, 0).xyz); + + //Spatio-temporal bicubic filter + p_4 = SMAABicubicFilter(c_3x3[1], c_3x3[7], c_3x3[3], c_3x3[5], c_3x3[4], p_4, frac(reprojected_tc * scaled_screen_res.xy - 0.5)); + + //Clamp history + p_4 = clamp(p_4, c_min, c_max); + + //SMAA-ish velocity weighting. Something better should be used... + float2 p_motion_vector = s_velocity[reprojected_tc * scaled_screen_res.xy].xy * float2(0.5, -0.5); + + float2 mags = (0.0).xx; + mags.x = sqrt(5.0 * length(motion_vector)); + mags.y = sqrt(5.0 * length(p_motion_vector)); + + float delta = abs(mags.x * mags.x - mags.y * mags.y) * (1.0 / 5.0); + float weight = TAA_BLEND_WEIGHT * saturate(1.0 - sqrt(delta) * 8.0); + + //Simple lerp is ok, RGBA16F lmao + float3 reprojected_color = lerp(c_3x3[4], p_4, weight); + + reprojected_color = max(reprojected_color, 0.0); + reprojected_color = Lottes_Tonemap_Inverse(reprojected_color); + + return float4(reprojected_color, 1.0); +} \ No newline at end of file diff --git a/gamedata/shaders/d3d11/tess.ds.hlsl b/gamedata/shaders/d3d11/tess.ds.hlsl new file mode 100644 index 0000000..9530a6a --- /dev/null +++ b/gamedata/shaders/d3d11/tess.ds.hlsl @@ -0,0 +1,79 @@ +#include "common.hlsli" +#include "tess.hlsli" + +[domain("tri")] +void main(in HS_CONSTANT_DATA_OUTPUT input, + in float3 uvw : SV_DomainLocation, in const OutputPatch bp, out p_bumped_new output) +{ + float minc = min(uvw.x, min(uvw.y, uvw.z)); + + [flatten] + if (minc != 0.0f) + { + [flatten] + if (((1.0f / 3.0f) - minc) > 0.01f) + { + float fK = (1.0f / 3.0f) / ((1.0f / 3.0f) - minc); + fK = minc < 0.1 ? fK : 1.0f; + uvw = lerp((1.0f / 3.0f).xxx, uvw, fK); + } + } + + float u = uvw.x; + float v = uvw.y; + float w = uvw.z; + + output.tcdh = bp[0].tcdh * w + bp[1].tcdh * v + bp[2].tcdh * u; + output.position = bp[0].position * w + bp[1].position * v + bp[2].position * u; + output.snow_mask = bp[0].snow_mask * w + bp[1].snow_mask * v + bp[2].snow_mask * u; + + float3 M1 = bp[0].M1 * w + bp[1].M1 * v + bp[2].M1 * u; + output.M1 = M1; + float3 M2 = bp[0].M2 * w + bp[1].M2 * v + bp[2].M2 * u; + output.M2 = M2; + float3 M3 = bp[0].M3 * w + bp[1].M3 * v + bp[2].M3 * u; + output.M3 = M3; + float3 Normal = normalize(float3(M1.z, M2.z, M3.z)); + float3 triPos = output.position.xyz; + +#if TESS_PN + float3 N[3] = + { + float3(bp[0].M1.z, bp[0].M2.z, bp[0].M3.z), + float3(bp[1].M1.z, bp[1].M2.z, bp[1].M3.z), + float3(bp[2].M1.z, bp[2].M2.z, bp[2].M3.z) + }; + + float3 P[3] = + { + bp[0].position.xyz, + bp[1].position.xyz, + bp[2].position.xyz + }; + + ComputePatchVertex(P, N, uvw, input.patch, output.position.xyz, Normal); +#endif + +#if TESS_HM + ComputeDisplacedVertex(output.position.xyz, Normal, output.tcdh, output.tcdh.xy * dt_params.xy); +#endif + + [flatten] + if (minc == 0) + { + output.position.xyz = triPos; + } + + output.hpos = mul(m_P, float4(output.position.xyz, 1)); + + output.hpos_curr = bp[0].hpos_curr * w + bp[1].hpos_curr * v + bp[2].hpos_curr * u; + output.hpos_old = bp[0].hpos_old * w + bp[1].hpos_old * v + bp[2].hpos_old * u; + +#if 0 + output.hpos_curr = mul(m_P, float4(output.position.xyz, 1.0)); + output.hpos_old = mul(m_VP_old, float4(mul(m_invV, float4(output.position.xyz, 1.0)).xyz, 1.0)); +#endif + + output.hpos.xy += m_taa_jitter.xy * output.hpos.w; +} + diff --git a/gamedata/shaders/d3d11/tess.hlsli b/gamedata/shaders/d3d11/tess.hlsli new file mode 100644 index 0000000..9edd0fc --- /dev/null +++ b/gamedata/shaders/d3d11/tess.hlsli @@ -0,0 +1,113 @@ +#ifndef TESS_H_INCLUDED +#define TESS_H_INCLUDED + +// Output patch constant data. +struct PNPatch +{ + // Geometry cubic control points (excluding corners) + float3 f3B210 : POSITION3; + float3 f3B120 : POSITION4; + float3 f3B021 : POSITION5; + float3 f3B012 : POSITION6; + float3 f3B102 : POSITION7; + float3 f3B201 : POSITION8; + float3 f3B111 : CENTER; + + // Normal quadratic control points (excluding corners) + float3 f3N110 : NORMAL3; + float3 f3N011 : NORMAL4; + float3 f3N101 : NORMAL5; +}; + +struct HS_CONSTANT_DATA_OUTPUT +{ + float Edges[3] : SV_TessFactor; + float Inside : SV_InsideTessFactor; +#ifdef TESS_PN + PNPatch patch; +#endif +}; + +float triLOD; + +void ComputeTessFactor(out float Edges[3] : SV_TessFactor, out float Inside : SV_InsideTessFactor) +{ + Edges[0] = Edges[1] = Edges[2] = triLOD; + Inside = triLOD; +} + +void ComputePNPatch(float3 P[3], float3 N[3], out PNPatch patch) +{ + // Compute the cubic geometry control points + // Edge control points + patch.f3B210 = (2.0f * P[0].xyz + P[1].xyz - dot(P[1].xyz - P[0].xyz, N[0]) * N[0]) / 3.0f; + patch.f3B120 = (2.0f * P[1].xyz + P[0].xyz - dot(P[0].xyz - P[1].xyz, N[1]) * N[1]) / 3.0f; + patch.f3B021 = (2.0f * P[1].xyz + P[2].xyz - dot(P[2].xyz - P[1].xyz, N[1]) * N[1]) / 3.0f; + patch.f3B012 = (2.0f * P[2].xyz + P[1].xyz - dot(P[1].xyz - P[2].xyz, N[2]) * N[2]) / 3.0f; + patch.f3B102 = (2.0f * P[2].xyz + P[0].xyz - dot(P[0].xyz - P[2].xyz, N[2]) * N[2]) / 3.0f; + patch.f3B201 = (2.0f * P[0].xyz + P[2].xyz - dot(P[2].xyz - P[0].xyz, N[0]) * N[0]) / 3.0f; + + // Center control point + float3 f3E = (patch.f3B210 + patch.f3B120 + patch.f3B021 + patch.f3B012 + patch.f3B102 + patch.f3B201) / 6.0f; + float3 f3V = (P[0].xyz + P[1].xyz + P[2].xyz) / 3.0f; + patch.f3B111 = f3E + ((f3E - f3V) / 2.0f); + + // Compute the quadratic normal control points, and rotate into world space + float fV12 = 2.0f * dot(P[1].xyz - P[0].xyz, N[0] + N[1]) / dot(P[1].xyz - P[0].xyz, P[1].xyz - P[0].xyz); + patch.f3N110 = normalize(N[0] + N[1] - fV12 * (P[1].xyz - P[0].xyz)); + float fV23 = 2.0f * dot(P[2].xyz - P[1].xyz, N[1] + N[2]) / dot(P[2].xyz - P[1].xyz, P[2].xyz - P[1].xyz); + patch.f3N011 = normalize(N[1] + N[2] - fV23 * (P[2].xyz - P[1].xyz)); + float fV31 = 2.0f * dot(P[0].xyz - P[2].xyz, N[2] + N[0]) / dot(P[0].xyz - P[2].xyz, P[0].xyz - P[2].xyz); + patch.f3N101 = normalize(N[2] + N[0] - fV31 * (P[0].xyz - P[2].xyz)); +} + +void ComputePatchVertex(float3 P[3], float3 N[3], float3 uvw, in PNPatch patch, out float3 Pos, out float3 Norm) +{ + float u = uvw.y; + float v = uvw.x; + float w = uvw.z; + + Pos = P[0] * w * w * w + + P[1] * u * u * u + + P[2] * v * v * v + + patch.f3B210 * 3.0f * w * w * u + + patch.f3B120 * 3.0f * w * u * u + + patch.f3B201 * 3.0f * w * w * v + + patch.f3B021 * 3.0f * u * u * v + + patch.f3B102 * 3.0f * w * v * v + + patch.f3B012 * 3.0f * u * v * v + + patch.f3B111 * 6.0f * w * u * v; + + // Compute normal from quadratic control points and barycentric coords + Norm = N[0] * w * w + + N[1] * u * u + + N[2] * v * v + + patch.f3N110 * w * u + + patch.f3N011 * u * v + + patch.f3N101 * w * v; +} + +sampler smp_bump_ds; +Texture2D s_tbump; +Texture2D s_tbumpX; +Texture2D s_tdetailBumpX; + +void ComputeDisplacedVertex(inout float3 P, float3 N, float2 tc, float2 tcd) +{ +#ifdef USE_TDETAIL + float4 Nu = s_tbump.SampleLevel(smp_bump_ds, tc, 0.0f); + float4 NuE = s_tbumpX.SampleLevel(smp_bump_ds, tc, 0.0f); + + float3 Ne = Nu.wzy + NuE.xyz - 1.0f; + float height = NuE.w; + + #ifdef USE_TDETAIL_BUMP + float4 NDetailX = s_tdetailBumpX.SampleLevel(smp_bump_ds, tcd, 0.0f); + height += 0.2f * (NDetailX.w - 0.5f); + #endif + + P += N * height * 0.07f; +#endif +} + +#endif diff --git a/gamedata/shaders/d3d11/tess.hs.hlsl b/gamedata/shaders/d3d11/tess.hs.hlsl new file mode 100644 index 0000000..92ecc54 --- /dev/null +++ b/gamedata/shaders/d3d11/tess.hs.hlsl @@ -0,0 +1,60 @@ +#include "common.hlsli" +#include "tess.hlsli" + +void PatchConstantsHS(in InputPatch ip, in uint PatchID : SV_PrimitiveID, out HS_CONSTANT_DATA_OUTPUT Output) +{ + ComputeTessFactor(Output.Edges, Output.Inside); + +#ifdef TESS_PN + float3 N[3] = + { + normalize(float3(ip[0].M1.z, ip[0].M2.z, ip[0].M3.z)), + normalize(float3(ip[1].M1.z, ip[1].M2.z, ip[1].M3.z)), + normalize(float3(ip[2].M1.z, ip[2].M2.z, ip[2].M3.z)) + }; + + float3 P[3] = + { + ip[0].position.xyz, + ip[1].position.xyz, + ip[2].position.xyz + }; + + ComputePNPatch(P, N, Output.patch); + + #ifndef TESS_HM + bool doDiscard = (N[0].z > 0.1f) && (N[1].z > 0.1f) && (N[2].z > 0.1f) && + (Output.patch.f3N110.z > 0.1f) && (Output.patch.f3N011.z > 0.1f) && (Output.patch.f3N101.z > 0.1f) && + (P[0].z > 5.0f) && (P[1].z > 5.0f) && (P[2].z > 5.0f); + + if (doDiscard) + { + Output.Edges[0] = Output.Edges[1] = Output.Edges[2] = Output.Inside = -1; + } + #endif +#endif +} + +[domain("tri")] +[partitioning("pow2")] +[outputtopology("triangle_ccw")] +[outputcontrolpoints(3)] +[patchconstantfunc("PatchConstantsHS")] +p_bumped_new main(in InputPatch ip, in uint i : SV_OutputControlPointID, in uint PatchID : SV_PrimitiveID) +{ + p_bumped_new ouput; + + ouput.tcdh = ip[i].tcdh; + ouput.position = ip[i].position; + ouput.M1 = ip[i].M1; + ouput.M2 = ip[i].M2; + ouput.M3 = ip[i].M3; + + ouput.hpos_curr = ip[i].hpos_curr; + ouput.hpos_old = ip[i].hpos_old; + + ouput.hpos = ip[i].hpos; + ouput.snow_mask = ip[i].snow_mask; + + return ouput; +} diff --git a/gamedata/shaders/d3d11/test.gs.hlsl b/gamedata/shaders/d3d11/test.gs.hlsl new file mode 100644 index 0000000..68becc5 --- /dev/null +++ b/gamedata/shaders/d3d11/test.gs.hlsl @@ -0,0 +1,17 @@ +#include "common.hlsli" + +// Geometry +[maxvertexcount(3)] +void main(triangle v2p_TL In[3], inout TriangleStream triStream) +{ + v2p_TL Out; + + for (int v = 0; v < 3; v++) + { + Out.HPos = In[v].HPos; + Out.Tex0 = In[v].Tex0; + Out.Color = float4(0, 0, 1, 1); // swizzle vertex colour + triStream.Append(Out); + } + triStream.RestartStrip(); +} diff --git a/gamedata/shaders/d3d11/vignette.ps.hlsl b/gamedata/shaders/d3d11/vignette.ps.hlsl new file mode 100644 index 0000000..098060b --- /dev/null +++ b/gamedata/shaders/d3d11/vignette.ps.hlsl @@ -0,0 +1,9 @@ +#include "common.hlsli" + +float4 main(p_shadow I) : SV_Target +{ + float3 col = s_image.Load(int3(I.hpos.xy, 0), 0).xyz; + col *= 1.0f - saturate(distance(I.tc0, float2(0.5f, 0.5f))); + + return float4(col, 1.0f); +} diff --git a/gamedata/shaders/d3d11/water.ps.hlsl b/gamedata/shaders/d3d11/water.ps.hlsl new file mode 100644 index 0000000..d605619 --- /dev/null +++ b/gamedata/shaders/d3d11/water.ps.hlsl @@ -0,0 +1,162 @@ +#include "common.hlsli" +#include "reflections.hlsli" + +struct vf +{ + float2 tbase : TEXCOORD0; + float2 tnorm0 : TEXCOORD1; + float2 tnorm1 : TEXCOORD2; + float3 M1 : TEXCOORD3; + float3 M2 : TEXCOORD4; + float3 M3 : TEXCOORD5; + float3 v2point : TEXCOORD6; + float4 tctexgen : TEXCOORD7; + float3 pos : TEXCOORD8; + float4 c0 : COLOR0; + float4 hpos : SV_POSITION; +}; + +uniform float3 water_intensity; + +Texture2D s_nmap; +TextureCube s_env0; +TextureCube s_env1; + +Texture2D s_leaves; +Texture2D s_caustic; + +float3 SpecularPhong(float3 Point, float3 Normal, float3 Light) +{ + float3 LightColor = max(0.0f, L_sun_color.xyz * 4.0f - 1.0f); + return LightColor * pow(dot(normalize(Point + Light), -Normal), 256.0); +} + +// Pixel +float4 main(vf I, float4 pos2d : SV_POSITION) : SV_Target +{ + float4 base = s_base.Sample(smp_base, I.tbase); + + float3 n0 = s_nmap.Sample(smp_base, I.tnorm0).xyz; + float3 n1 = s_nmap.Sample(smp_base, I.tnorm1).xyz; + float3 Navg = n0 + n1 - 1.0f; + Navg.z = abs(Navg.z); + + float3 Nw = normalize(mul(float3x3(I.M1, I.M2, I.M3), Navg).xyz); + + float3 envd0 = env_s0.SampleLevel(smp_rtlinear, Nw, 0).xyz; + float3 envd1 = env_s1.SampleLevel(smp_rtlinear, Nw, 0).xyz; + + float3 envd = lerp(envd0, envd1, L_ambient.w) * L_hemi_color.xyz; + float3 color = I.c0.xyz + envd * envd * I.c0.w; + base.xyz *= color; + + float3 v2point = normalize(I.v2point); + float3 vreflect = reflect(v2point, Nw); + + float fresnel = saturate(dot(vreflect, v2point)); + +#ifdef USE_SSLR_ON_WATER + float3 WaterPoint = I.tctexgen.z * float3(pos2d.xy * pos_decompression_params.zw - pos_decompression_params.xy, 1.0f); + float3 Reflect = mul((float3x3)m_V, vreflect); + + float4 sslr = ScreenSpaceLocalReflections(WaterPoint, Reflect); + + #ifdef USE_OFFSCREEN_REFLECTIONS + float4 vslr = FastViewReflections(WaterPoint, Reflect); + + float Fog = saturate(length(vslr.xyz) * fog_params.w + fog_params.x); + vslr.w *= 1.f - Fog * Fog; + + vslr.xyz = s_env.SampleLevel(smp_rtlinear, vslr.xyz, 0.0f); + vslr.xyz *= rcp(1.00001f - vslr.xyz); + #endif +#else + #ifdef USE_OFFSCREEN_REFLECTIONS + float3 Reflect = mul((float3x3)m_V, vreflect); + float4 vslr = s_env.SampleLevel(smp_rtlinear, Reflect.xyz, 0.0f); + vslr.xyz *= rcp(1.00001f - vslr.xyz); + + float Fog = saturate(vslr.w * fog_params.w + fog_params.x); + vslr.w = 1.f - Fog * Fog; + #endif +#endif + + float2 rotation = 0.0f; + sincos(L_sky_color.w, rotation.x, rotation.y); + vreflect.xz = float2(vreflect.x * rotation.y - vreflect.z * rotation.x, vreflect.x * rotation.x + vreflect.z * rotation.y); + +#ifndef USE_FULL_SKY_SPHERE + RemapVector(vreflect); +#endif + + float3 env0 = s_env0.SampleLevel(smp_rtlinear, vreflect, 0).xyz; + float3 env1 = s_env1.SampleLevel(smp_rtlinear, vreflect, 0).xyz; + + float3 env = lerp(env0, env1, L_ambient.w); + +#ifdef USE_BGRA_SKYCOLOR + env *= L_sky_color.zyx; +#else + env *= L_sky_color.xyz; +#endif + +#ifdef USE_OFFSCREEN_REFLECTIONS + env.xyz = lerp(env, PopGamma(vslr.xyz), vslr.w); +#endif + +#ifdef USE_SSLR_ON_WATER + env = lerp(env, PopGamma(sslr.xyz), sslr.w); +#endif + + float power = pow(fresnel, 5.0f); + float amount = 0.25f + 0.25f * power; + + float3 final = lerp(env * amount * 0.8f, base.xyz, base.w); + float alpha = 0.25f + 0.65f * power; + + alpha = lerp(alpha, 1.0f, base.w); + + // Igor: additional depth test +#ifdef USE_SOFT_WATER + float4 Point = GbufferGetPoint(pos2d.xy); + + float3 waterPos = Point.xyz * rcp(Point.z) * I.tctexgen.z; + float waterDepth = length(waterPos - Point.xyz) * 0.75f; + + // water fog + float3 Fc = 0.1f * water_intensity.xxx * color; + final = lerp(Fc, final, alpha); + + alpha = min(alpha, saturate(waterDepth)); + alpha = max(1.0f - exp(-4.0f * waterDepth), alpha); + + float4 leaves = s_leaves.Sample(smp_base, I.tbase); + leaves.xyz *= water_intensity.xxx * color; + leaves.w *= 1.0f - base.w; + + float calc_cos = -dot(float3(I.M1.z, I.M2.z, I.M3.z), v2point); + float calc_depth = saturate(waterDepth * calc_cos); + + float fLeavesFactor = smoothstep(0.025f, 0.05f, calc_depth); + fLeavesFactor *= smoothstep(0.1f, 0.075f, calc_depth); + float4 Light = s_accumulator.Load(int3(pos2d.xy, 0), 0); + Light *= 1.0f - base.w; + + float2 CausticTexcoord = mul(m_invV, float4(Point.xyz, 1.0f)).xz * 0.45f; + float3 Caustic = s_caustic.Sample(smp_base, CausticTexcoord).yyy; + + //LV: Subtle chromatic abberation effect + //https://x.com/XorDev/status/1831738521935360079 + Caustic += ddx(Caustic) * float3(1.25, 0.0, -1.25); + Caustic += ddy(Caustic) * float3(1.25, 0.0, -1.25); + + final += SpecularPhong(v2point, Nw, L_sun_dir_w.xyz) * Light.w; + final += Caustic * Light.xyz * 0.25f; + + final = lerp(final, leaves.xyz, leaves.w * fLeavesFactor); + alpha = max(alpha, leaves.w * fLeavesFactor); +#endif + + return PushGamma(lerp(float4(final, PopGamma(alpha)), fog_color, calc_fogging(I.pos.xyz))); +} + diff --git a/gamedata/shaders/d3d11/water.vs.hlsl b/gamedata/shaders/d3d11/water.vs.hlsl new file mode 100644 index 0000000..417c683 --- /dev/null +++ b/gamedata/shaders/d3d11/water.vs.hlsl @@ -0,0 +1,94 @@ +#include "common.hlsli" +#include "shared\waterconfig.hlsli" +#include "shared\watermove.hlsli" + +struct v_vert +{ + float4 P : POSITION; // (float,float,float,1) + float4 N : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; + float4 B : BINORMAL; + float4 color : COLOR0; // (r,g,b,dir-occlusion) + int2 uv : TEXCOORD0; // (u0,v0) +}; + +struct vf +{ + float2 tbase : TEXCOORD0; // base + float2 tnorm0 : TEXCOORD1; // nm0 + float2 tnorm1 : TEXCOORD2; // nm1 + float3 M1 : TEXCOORD3; + float3 M2 : TEXCOORD4; + float3 M3 : TEXCOORD5; + float3 v2point : TEXCOORD6; + float4 tctexgen : TEXCOORD7; + float3 pos : TEXCOORD8; + float4 c0 : COLOR0; + float4 hpos : SV_POSITION; +}; + +uniform float4x4 m_texgen; + +void main(in v_vert v, out vf o) +{ + v.N = unpack_D3DCOLOR(v.N); + v.T = unpack_D3DCOLOR(v.T); + v.B = unpack_D3DCOLOR(v.B); + v.color = unpack_D3DCOLOR(v.color); + + // world + float4 P = v.P; + P = watermove(P); + + o.pos = P.xyz; + o.v2point = P.xyz - eye_position; + + o.tbase = P.xz * 0.3; // unpack_tc_base(v.uv, v.T.w, v.B.w); + o.tnorm0 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_0, P.xz, W_DISTORT_AMP_0); + o.tnorm1 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_1, P.xz, W_DISTORT_AMP_1); + + // Calculate the 3x3 transform from tangent space to eye-space + // TangentToEyeSpace = object2eye * tangent2object + // = object2eye * transpose(object2tangent) (since the inverse of a rotation is its transpose) + + float3 N = normalize(unpack_bx2(v.N.xyz)); + + float3 T = float3(-1.0f, 0.0f, 0.0f); + T = normalize(T - dot(T, N) * N); + + float3 B = cross(N, T); + + float3x3 xform = mul((float3x3)m_W, float3x3( + T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z)); + + // The pixel shader operates on the bump-map in [0..1] range + // Remap this range in the matrix, anyway we are pixel-shader limited :) + // ...... [ 2 0 0 0] + // ...... [ 0 2 0 0] + // ...... [ 0 0 2 0] + // ...... [-1 -1 -1 1] + // issue: strange, but it's slower :( + // issue: interpolators? dp4? VS limited? black magic? + + // Feed this transform to pixel shader + o.M1 = xform[0]; + o.M2 = xform[1]; + o.M3 = xform[2]; + + float3 L_rgb = v.color.xyz; // precalculated RGB lighting + float3 L_sun = v_sun(N) * v.color.w; // sun + float3 L_final = L_rgb + L_sun + L_ambient.xyz; + + // xform, input in world coords + o.hpos = mul(m_VP, P); + + o.c0 = float4(L_final, v.N.w); + o.hpos.xy += m_taa_jitter.xy * o.hpos.w; + + // Igor: for additional depth dest + o.tctexgen = mul(m_texgen, P); + o.tctexgen.z = mul(m_V, P).z; +} + diff --git a/gamedata/shaders/d3d11/water_puddles.ps.hlsl b/gamedata/shaders/d3d11/water_puddles.ps.hlsl new file mode 100644 index 0000000..5fcfa1e --- /dev/null +++ b/gamedata/shaders/d3d11/water_puddles.ps.hlsl @@ -0,0 +1,124 @@ +#include "common.hlsli" +#include "reflections.hlsli" + +struct PSInput +{ + float4 hpos : SV_POSITION; + float3 world_position : TEXCOORD0; +}; + +uniform float3 water_intensity; + +Texture2D s_nmap; +TextureCube s_env0; +TextureCube s_env1; + +float3 SpecularPhong(float3 Point, float3 Normal, float3 Light) +{ + float3 LightColor = max(0.0f, L_sun_color.xyz * 4.0f - 1.0f); + return LightColor * pow(dot(normalize(Point + Light), -Normal), 256.0); +} + +// Pixel +float4 main(PSInput I) : SV_Target +{ + float2 tcdh = I.world_position.xz * 0.3f; + float4 base = s_base.Sample(smp_base, tcdh); + float3 normal = s_nmap.Sample(smp_base, tcdh).xyz * 2.0 - 1.0; + + //Build cotangent frame and transform our normal to world space + float3x3 TBN = {float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 1.0, 0.0)}; + + build_contangent_frame(I.world_position.xyz, TBN[2], tcdh, TBN[0], TBN[1]); + + float3 Nw = normalize(mul(TBN, normal)); + + float3 envd0 = env_s0.Sample(smp_rtlinear, Nw).xyz; + float3 envd1 = env_s1.Sample(smp_rtlinear, Nw).xyz; + + float3 envd = lerp(envd0, envd1, L_ambient.w) * L_hemi_color.xyz; + base.xyz *= envd * envd; //Ambient + + float3 v2point = normalize(I.world_position - eye_position); + float3 vreflect = reflect(v2point, Nw); + + float fresnel = saturate(dot(vreflect, v2point)); + float3 WaterPos = mul(m_V, float4(I.world_position, 1.0)).xyz; + +#ifdef USE_SSLR_ON_WATER + float3 WaterPoint = WaterPos.z * float3(I.hpos.xy * pos_decompression_params.zw - pos_decompression_params.xy, 1.0f); + float3 Reflect = mul((float3x3)m_V, vreflect); + + float4 sslr = ScreenSpaceLocalReflections(WaterPoint, Reflect); + + #ifdef USE_OFFSCREEN_REFLECTIONS + float4 vslr = FastViewReflections(WaterPoint, Reflect); + + float Fog = saturate(length(vslr.xyz) * fog_params.w + fog_params.x); + vslr.w *= 1.f - Fog * Fog; + + vslr.xyz = s_env.SampleLevel(smp_rtlinear, vslr.xyz, 0.0f); + vslr.xyz *= rcp(1.00001f - vslr.xyz); + #endif +#else + #ifdef USE_OFFSCREEN_REFLECTIONS + float3 Reflect = mul((float3x3)m_V, vreflect); + float4 vslr = s_env.SampleLevel(smp_rtlinear, Reflect.xyz, 0.0f); + vslr.xyz *= rcp(1.00001f - vslr.xyz); + + float Fog = saturate(vslr.w * fog_params.w + fog_params.x); + vslr.w = 1.f - Fog * Fog; + #endif +#endif + + float2 rotation = 0.0f; + sincos(L_sky_color.w, rotation.x, rotation.y); + vreflect.xz = float2(vreflect.x * rotation.y - vreflect.z * rotation.x, vreflect.x * rotation.x + vreflect.z * rotation.y); + +#ifndef USE_FULL_SKY_SPHERE + RemapVector(vreflect); +#endif + + float3 env0 = s_env0.Sample(smp_rtlinear, vreflect).xyz; + float3 env1 = s_env1.Sample(smp_rtlinear, vreflect).xyz; + + float3 env = lerp(env0, env1, L_ambient.w); + +#ifdef USE_BGRA_SKYCOLOR + env *= L_sky_color.zyx; +#else + env *= L_sky_color.xyz; +#endif + +#ifdef USE_OFFSCREEN_REFLECTIONS + env.xyz = lerp(env, PopGamma(vslr.xyz), vslr.w); +#endif + +#ifdef USE_SSLR_ON_WATER + env = lerp(env, PopGamma(sslr.xyz), sslr.w); +#endif + + float power = pow(fresnel, 5.0f); + float amount = 0.25f + 0.25f * power; + + float3 final = lerp(env * amount * 0.8f, base.xyz, base.w); + float alpha = 0.25f + 0.65f * power; + + alpha = lerp(alpha, 1.0f, base.w); + + // Igor: additional depth test +#ifdef USE_SOFT_WATER + float4 Point = GbufferGetPoint(I.hpos.xy); + float waterDepth = length(WaterPos.xyz - Point.xyz) * 0.75f; + + alpha = min(alpha, saturate(waterDepth)); + alpha = max(1.0f - exp(-4.0f * waterDepth), alpha); + + float4 Light = s_accumulator.Sample(smp_nofilter, I.hpos.xy * pos_decompression_params2.zw); + Light *= 1.0f - base.w; + + final += SpecularPhong(v2point, Nw, L_sun_dir_w.xyz) * Light.w; +#endif + + return PushGamma(lerp(float4(final, PopGamma(alpha)), fog_color, calc_fogging(I.world_position))); +} diff --git a/gamedata/shaders/d3d11/water_puddles.vs.hlsl b/gamedata/shaders/d3d11/water_puddles.vs.hlsl new file mode 100644 index 0000000..81872ba --- /dev/null +++ b/gamedata/shaders/d3d11/water_puddles.vs.hlsl @@ -0,0 +1,34 @@ +#include "common.hlsli" + +static const float2 quad_geometry[6] = +{ + float2(-1.0, -1.0), + float2(-1.0, 1.0), + float2(1.0, -1.0), + float2(-1.0, 1.0), + float2(1.0, 1.0), + float2(1.0, -1.0) +}; + +struct VSOutput +{ + float4 hpos : SV_POSITION; + float3 world_position : TEXCOORD0; +}; + +float puddle_constants; + +VSOutput main(uint vertex_id : SV_VertexID) +{ + VSOutput O; + + float3 vertex_position; + vertex_position.xz = quad_geometry[vertex_id]; + vertex_position.y = puddle_constants; + O.world_position = mul(m_W, float4(vertex_position, 1.0)); + + O.hpos = mul(m_VP, float4(O.world_position, 1.0)); + O.hpos.xy += m_taa_jitter.xy * O.hpos.w; + + return O; +} \ No newline at end of file diff --git a/gamedata/shaders/d3d11/waterd.ps.hlsl b/gamedata/shaders/d3d11/waterd.ps.hlsl new file mode 100644 index 0000000..22a6a91 --- /dev/null +++ b/gamedata/shaders/d3d11/waterd.ps.hlsl @@ -0,0 +1,43 @@ +#include "common.hlsli" +#include "shared\waterconfig.hlsli" + +struct vf +{ + float2 tbase : TEXCOORD0; + float2 tnorm0 : TEXCOORD1; + float2 tnorm1 : TEXCOORD2; + float3 M1 : TEXCOORD3; + float3 M2 : TEXCOORD4; + float3 M3 : TEXCOORD5; + float3 v2point : TEXCOORD6; + float4 tctexgen : TEXCOORD7; + float3 pos : TEXCOORD8; + float4 c0 : COLOR0; + float4 hpos : SV_POSITION; +}; + +Texture2D s_distort; + +// Pixel +float4 main(vf I, float4 pos2d : SV_POSITION) : SV_Target +{ + float alpha = 1.0f - s_base.Sample(smp_base, I.tbase).w; + + float2 t_d0 = s_distort.Sample(smp_base, I.tnorm0).xy; + float2 t_d1 = s_distort.Sample(smp_base, I.tnorm1).xy; + float2 distort = (t_d0 + t_d1) * 0.5f; + + +#ifdef USE_SOFT_WATER + float4 Point = GbufferGetPoint(pos2d.xy); + + float3 waterPos = Point.xyz * rcp(Point.z) * I.tctexgen.z; + float waterDepth = length(waterPos - Point.xyz) * 0.75f; + + alpha *= saturate(5.0f * waterDepth); +#endif + + float fog = 1.0f - calc_fogging(I.pos); + return float4(distort, 0.08f, alpha * fog * 0.25f); +} + diff --git a/gamedata/shaders/d3d11/wmark.vs.hlsl b/gamedata/shaders/d3d11/wmark.vs.hlsl new file mode 100644 index 0000000..79ccac9 --- /dev/null +++ b/gamedata/shaders/d3d11/wmark.vs.hlsl @@ -0,0 +1,26 @@ +#include "common.hlsli" +#include "shared\wmark.hlsli" + +struct vf +{ + float2 tc0 : TEXCOORD0; + float3 c0 : COLOR0; // c0=all lighting + float fog : FOG; + float4 hpos : SV_POSITION; +}; + +vf main(v_static v) +{ + vf o; + + float3 N = unpack_normal(v.Nh.zyx); + float4 P = wmark_shift(v.P.xyz, N); + o.hpos = mul(m_VP, P); + o.tc0 = unpack_tc_base(v.tc, v.T.w, v.B.w); + o.c0 = 0; + o.fog = 1.0f - calc_fogging(v.P.xyz); + o.hpos.xy += m_taa_jitter.xy * o.hpos.w; + + return o; +} + diff --git a/gamedata/shaders/d3d11/yuv2rgb.ps.hlsl b/gamedata/shaders/d3d11/yuv2rgb.ps.hlsl new file mode 100644 index 0000000..a95fd87 --- /dev/null +++ b/gamedata/shaders/d3d11/yuv2rgb.ps.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +float4 main(float2 uv : TEXCOORD0) : SV_Target +{ + float3 YUV = s_base.Sample(smp_base, uv).xyz; + + float Y = YUV.z; + float U = YUV.y; + float V = YUV.x; + + float c = 1.16406f; + float3 _Y = float3(c, c, c) * Y; + float3 _U = float3(0, -0.390625f, +2.01562f) * U; + float3 _V = float3(+1.59765f, -0.8125f, 0) * V; + float3 _S = float3(-0.86961f, +0.53076f, -1.0786f); + + return float4(_Y + _U + _V + _S, 1); +} + diff --git a/gamedata/shaders/d3d11/zfill.lua b/gamedata/shaders/d3d11/zfill.lua new file mode 100644 index 0000000..89ee7f2 --- /dev/null +++ b/gamedata/shaders/d3d11/zfill.lua @@ -0,0 +1,15 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("particle", "particle_hard") + : sorting (3, false) + : blend (true,blend.srcalpha,blend.one) + : aref (false,0) + : zb (false,false) + : fog (false) + + shader:dx10texture ("s_base" ,t_base) + shader:dx10texture ("s_position" ,"$user$position") + + shader:dx10sampler ("smp_base") + shader:dx10sampler ("smp_nofilter") +end + diff --git a/gamedata/shaders/d3d11/zfill2.lua b/gamedata/shaders/d3d11/zfill2.lua new file mode 100644 index 0000000..4989bd2 --- /dev/null +++ b/gamedata/shaders/d3d11/zfill2.lua @@ -0,0 +1,15 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("particle", "particle_hard") + : sorting (3, false) + : blend (true,blend.one,blend.one) + : aref (false,0) + : zb (false,false) + : fog (false) + + shader:dx10texture ("s_base" ,t_base) + shader:dx10texture ("s_position" ,"$user$position") + + shader:dx10sampler ("smp_base") + shader:dx10sampler ("smp_nofilter") +end + diff --git a/gamedata/shaders/editor/accum_base.ps.hlsl b/gamedata/shaders/editor/accum_base.ps.hlsl new file mode 100644 index 0000000..72fad22 --- /dev/null +++ b/gamedata/shaders/editor/accum_base.ps.hlsl @@ -0,0 +1,51 @@ +#include "common.hlsli" +#include "lmodel.hlsli" + +////////////////////////////////////////////////////////////////////////////////////////// +// This is the basic primitive used by convex, volumetric lights +// for example spot-lights, one face of the omni lights, etc. +////////////////////////////////////////////////////////////////////////////////////////// +// following options are available to configure compilation: +// USE_LMAP +// USE_LMAPXFORM +// USE_SHADOW +////////////////////////////////////////////////////////////////////////////////////////// + +uniform float4x4 m_shadow; + +uniform sampler s_position; +uniform sampler s_normal; + +uniform float4 Ldynamic_color; +uniform float4 Ldynamic_pos; +uniform float4 Ldynamic_dir; + +float4 main(float4 tc : TEXCOORD0) : COLOR +{ + float4 _P = tex2Dproj(s_position, tc); + + if(_P.z < 0.001f) + return 0.0f; + + float4 _C = tex2Dproj(s_base, tc); + float4 _N = tex2Dproj(s_normal, tc); + + _N.xyz = normalize(_N.xyz); + + // ----- light-model + float4 light = plight_local(_P.w, _P, _N, Ldynamic_pos, Ldynamic_pos.w); + + // ----- shadow + float4 P4 = float4(_P.xyz, 1.0f); + float4 PS = mul(m_shadow, P4); + +#ifdef USE_LMAP + light *= tex2Dlod(s_lmap, float4(PS.xy / PS.w, 0.0f, 0.0f)); +#endif + + float4 color = Ldynamic_color * light; + color.xyz = color.xyz * _C.xyz + color.w * _C.w; + + return color; +} + diff --git a/gamedata/shaders/editor/accum_mask.vs.hlsl b/gamedata/shaders/editor/accum_mask.vs.hlsl new file mode 100644 index 0000000..c3c6826 --- /dev/null +++ b/gamedata/shaders/editor/accum_mask.vs.hlsl @@ -0,0 +1,8 @@ +#include "common.hlsli" + +float4 main(float4 P : POSITION) : POSITION +{ + return mul(m_WVP, P); +} + + diff --git a/gamedata/shaders/editor/accum_volume.vs.hlsl b/gamedata/shaders/editor/accum_volume.vs.hlsl new file mode 100644 index 0000000..c0a2f69 --- /dev/null +++ b/gamedata/shaders/editor/accum_volume.vs.hlsl @@ -0,0 +1,18 @@ +#include "common.hlsli" + +struct v2p +{ + float4 hpos : POSITION; // Clip-space position (for rasterization) + float4 tc : TEXCOORD0; +}; + +uniform float4x4 m_texgen; + +// Vertex +v2p main(float4 P : POSITION) +{ + v2p O; + O.hpos = mul(m_WVP, P); + O.tc = mul(m_texgen, P); + return O; +} \ No newline at end of file diff --git a/gamedata/shaders/editor/common.hlsli b/gamedata/shaders/editor/common.hlsli new file mode 100644 index 0000000..da87374 --- /dev/null +++ b/gamedata/shaders/editor/common.hlsli @@ -0,0 +1,247 @@ +#ifndef COMMON_H +#define COMMON_H + +#include "shared\common.hlsli" + +uniform float4 L_material; // per object, xyz=sun,w=hemi +uniform float4 L_dynamic_props; // per object, xyz=sun,w=hemi +uniform float4 L_dynamic_color; // dynamic light color (rgb1) - spot/point +uniform float4 L_dynamic_pos; // dynamic light pos+1/range(w) - spot/point +uniform float4x4 L_dynamic_xform; + +uniform float4x4 m_plmap_xform; +uniform float4 m_plmap_clamp[2]; // 0.w = factor +uniform sampler s_material; + +#define def_aref 0.5f +#define def_gloss 0.04f + +#ifndef xmaterial +#define xmaterial 0.25f +#endif + +uniform float4 is_lighting_enable; + +float calc_fogging(float3 pos) +{ + return saturate(length(pos - eye_position) * fog_params.w + fog_params.x); +} + +float2 calc_detail(float3 w_pos) +{ + float dtl = distance(w_pos, eye_position) * dt_params.w; + dtl = min(dtl * dtl, 1.0f); + float dt_mul = 1.0f - dtl; // dt* [1 .. 0 ] + float dt_add = 0.5f * dtl; // dt+ [0 .. 0.5] + return float2(dt_mul, dt_add); +} + +float3 calc_reflection(float3 pos_w, float3 norm_w) +{ + return reflect(normalize(pos_w - eye_position), norm_w); +} + +float4 calc_spot(out float4 tc_lmap, out float2 tc_att, float4 w_pos, float3 w_norm) +{ + float4 s_pos = mul(L_dynamic_xform, w_pos); + tc_lmap = s_pos.xyww; // projected in ps/ttf + tc_att = s_pos.z; // z=distance * (1/range) + float3 L_dir_n = normalize(w_pos - L_dynamic_pos.xyz); + float L_scale = dot(w_norm, -L_dir_n); + return L_dynamic_color * L_scale * saturate(calc_fogging(w_pos)); +} + +float4 calc_point(out float2 tc_att0, out float2 tc_att1, float4 w_pos, float3 w_norm) +{ + float3 L_dir_n = normalize(w_pos - L_dynamic_pos.xyz); + float L_scale = dot(w_norm, -L_dir_n); + float3 L_tc = (w_pos - L_dynamic_pos.xyz) * L_dynamic_pos.w + .5f; // tc coords + tc_att0 = L_tc.xz; + tc_att1 = L_tc.xy; + return L_dynamic_color * L_scale * saturate(calc_fogging(w_pos)); +} + +float3 calc_sun(float3 norm_w) +{ + return L_sun_color * max(dot((norm_w), -L_sun_dir_w), 0); +} + +float3 calc_model_hemi(float3 norm_w) +{ + return (norm_w.y * 0.5 + 0.5) * L_dynamic_props.w * L_hemi_color; +} + +float3 calc_model_lq_lighting(float3 norm_w) +{ + return calc_model_hemi(norm_w) + L_ambient + L_dynamic_props.xyz * calc_sun(norm_w); +} + +float3 _calc_model_hemi(float3 norm_w) +{ + return max(0, norm_w.y) * .2 * L_hemi_color; +} + +float3 _calc_model_lq_lighting(float3 norm_w) +{ + return calc_model_hemi(norm_w) + L_ambient + .5 * calc_sun(norm_w); +} + +float4 calc_model_lmap(float3 pos_w) +{ + float3 pos_wc = clamp(pos_w, m_plmap_clamp[0], m_plmap_clamp[1]); // clamp to BBox + float4 pos_w4c = float4(pos_wc, 1); + float4 plmap = mul(m_plmap_xform, pos_w4c); // calc plmap tc + return plmap.xyww; +} + +struct v_lmap +{ + float4 P : POSITION; // (float,float,float,1) + float4 N : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; + float4 B : BINORMAL; + float2 uv0 : TEXCOORD0; // (base) + float2 uv1 : TEXCOORD1; // (lmap/compressed) +}; + +struct v_vert +{ + float4 P : POSITION; // (float,float,float,1) + float4 N : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; + float4 B : BINORMAL; + float4 color : COLOR0; // (r,g,b,dir-occlusion) + float2 uv : TEXCOORD0; // (u0,v0) +}; + +struct v_editor +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float3 N : NORMAL; + float4 color : COLOR0; +}; + +struct v_model +{ + float4 P : POSITION; // (float,float,float,1) + float3 N : NORMAL; // (nx,ny,nz) + float3 T : TANGENT; // (nx,ny,nz) + float3 B : BINORMAL; // (nx,ny,nz) + float2 tc : TEXCOORD0; // (u,v) +}; + +struct v_detail +{ + float4 pos : POSITION; // (float,float,float,1) + int4 misc : TEXCOORD0; // (u(Q),v(Q),frac,matrix-id) +}; + +struct vf_spot +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 tc1 : TEXCOORD1; // lmap, projected + float2 tc2 : TEXCOORD2; // att + clipper + float4 color : COLOR0; +}; + +struct vf_point +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // att1 + clipper + float2 tc2 : TEXCOORD2; // att2 + clipper + float4 color : COLOR0; +}; + +struct p_bumped_new +{ + float4 hpos : POSITION; + + float4 tcdh : TEXCOORD0; // Texture coordinates, sun_occlusion || lm-hemi + float4 position : TEXCOORD1; // position + hemi + float3 M1 : TEXCOORD2; // nmap 2 eye - 1 + float3 M2 : TEXCOORD3; // nmap 2 eye - 2 + float3 M3 : TEXCOORD4; // nmap 2 eye - 3 +}; + +uniform sampler2D s_base; +uniform samplerCUBE s_env; +uniform sampler2D s_lmap; +uniform sampler2D s_hemi; +uniform sampler2D s_att; +uniform sampler2D s_detail; + +#define def_distort float(0.05f) // we get -0.5 .. 0.5 range, this is -512 .. 512 for 1024, so scale it + +float3 v_hemi(float3 n) +{ + return L_hemi_color /* *(.5f + .5f*n.y) */; +} + +float3 v_hemi_wrap(float3 n, float w) +{ + return L_hemi_color /* *(w + (1-w)*n.y) */; +} + +float3 v_sun(float3 n) +{ + return L_sun_color * max(0, dot(n, -L_sun_dir_w)); +} + +float3 v_sun_wrap(float3 n, float w) +{ + return L_sun_color * (w + (1 - w) * dot(n, -L_sun_dir_w)); +} + +float3 p_hemi(float2 tc) +{ + // float3 t_lmh = tex2D (s_hemi, tc); + // return dot (t_lmh,1.h/3.h); + float4 t_lmh = tex2D(s_hemi, tc); + return t_lmh.a; +} + +struct f_editor_gbuffer +{ + float4 Color : COLOR0; + +#ifndef FORWARD_ONLY + float4 Albedo : COLOR1; + float4 Normal : COLOR2; + float4 PointZ : COLOR3; +#endif +}; + +void cotangent_frame(inout p_bumped_new O) +{ + // Get edge vectors of the pixel triangle + float3 dp1 = ddx(O.position.xyz); + float3 dp2 = ddy(O.position.xyz); + + float2 duv1 = ddx(O.tcdh.xy); + float2 duv2 = ddy(O.tcdh.xy); + + float3 N = normalize(O.M1); + + // Solve the linear system + float3 dp2perp = cross(dp2, N); + float3 dp1perp = cross(N, dp1); + + float3 T = normalize(dp2perp * duv1.x + dp1perp * duv2.x); + float3 B = normalize(dp2perp * duv1.y + dp1perp * duv2.y); + + float3x3 xform = float3x3( + T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z + ); + + O.M1 = xform[0]; + O.M2 = xform[1]; + O.M3 = xform[2]; +} + +#endif // COMMON_H + diff --git a/gamedata/shaders/editor/deffer_base.ps.hlsl b/gamedata/shaders/editor/deffer_base.ps.hlsl new file mode 100644 index 0000000..1e25613 --- /dev/null +++ b/gamedata/shaders/editor/deffer_base.ps.hlsl @@ -0,0 +1,64 @@ +#include "common.hlsli" +#include "sload.hlsli" +#include "lmodel.hlsli" +#include "hmodel.hlsli" + +void main(p_bumped_new I, out f_editor_gbuffer O) +{ + if(is_lighting_enable.x < 0.5f) { + O.Color = tex2D(s_base, I.tcdh.xy); + +#ifdef USE_AREF + clip(O.Color.w - def_aref); +#endif + +#ifndef FORWARD_ONLY + O.Normal = float4(I.M1.xyz, def_gloss); + O.Albedo = float4(O.Color.xyz, def_gloss); + O.PointZ = float4(I.position.xyz, xmaterial); +#endif + + return; + } + + cotangent_frame(I); + XrayMaterial M; + + M.Sun = I.tcdh.w; + M.Hemi = I.tcdh.z; + M.Point = I.position.xyz; + + SloadNew(I, M); + +#ifdef USE_AREF + clip(M.Color.w - def_aref); +#endif + + M.Normal = mul(float3x3(I.M1, I.M2, I.M3), M.Normal); + M.Normal = normalize(M.Normal); + + M.Sun = saturate(M.Sun * 2.0f); + M.Color.xyz = saturate(M.Color.xyz); + float MaterialID = xmaterial; + + float Gloss = 1.0f - M.Roughness; + +#ifndef FORWARD_ONLY + O.Albedo = float4(M.Color.xyz, Gloss); + O.Normal = float4(M.Normal.xyz, Gloss); + O.PointZ = float4(M.Point.xyz, MaterialID); +#endif + + float4 Light = float4(L_sun_color, 1.0f) * M.Sun * plight_infinity(MaterialID, M.Point, M.Normal, L_sun_dir_e); + float3 Diffuse, Specular; + + hmodel(Diffuse, Specular, MaterialID, M.Hemi, Gloss, M.Point, M.Normal); + + O.Color = float4(Diffuse + Light.xyz, M.Color.w); + O.Color.xyz *= M.Color.xyz; + O.Color.xyz += Light.w * Gloss + Specular; + + float fog = saturate(length(M.Point) * fog_params.w + fog_params.x); + O.Color = lerp(O.Color, fog_color, fog); +} + diff --git a/gamedata/shaders/editor/deffer_base.vs.hlsl b/gamedata/shaders/editor/deffer_base.vs.hlsl new file mode 100644 index 0000000..788d6d8 --- /dev/null +++ b/gamedata/shaders/editor/deffer_base.vs.hlsl @@ -0,0 +1,25 @@ +#ifndef SKIN_NONE +#include "deffer_model.vs.hlsl" +#else + +#include "common.hlsli" + +void main(in v_editor I, out p_bumped_new O) +{ + float3 Pe = mul(m_WV, I.P); + + O.tcdh = float4(I.tc.xy, 0.7f, 0.5f); + O.position = float4(Pe, 1.0f); + + float3 N = normalize(mul(m_W, I.N)); + O.tcdh.z = N.y * 0.3f + 0.5f; + N = normalize(mul(m_V, N)); + + O.M1 = N; + O.M2 = N; + O.M3 = N; + + O.hpos = mul(m_WVP, I.P); +} + +#endif \ No newline at end of file diff --git a/gamedata/shaders/editor/deffer_detail.vs.hlsl b/gamedata/shaders/editor/deffer_detail.vs.hlsl new file mode 100644 index 0000000..8cc9230 --- /dev/null +++ b/gamedata/shaders/editor/deffer_detail.vs.hlsl @@ -0,0 +1,63 @@ +#include "common.hlsli" + +uniform float4 consts; + +uniform float4 wave; +uniform float4 dir2D; + +uniform float2x4 array[50]; + +float3x3 setMatrix (float3 hpb) +{ + + float _ch, _cp, _cb, _sh, _sp, _sb, _cc, _cs, _sc, _ss; + + sincos(hpb.x, _sh, _ch); + sincos(hpb.y, _sp, _cp); + sincos(hpb.z, _sb, _cb); + + _cc = _ch*_cb; _cs = _ch*_sb; _sc = _sh*_cb; _ss = _sh*_sb; + + return float3x3(_cc-_sp*_ss, _sp*_sc+_cs, -_cp*_sh, + -_cp*_sb, _cp*_cb, _sp, + _sp*_cs+_sc, _ss-_sp*_cc, _cp*_ch); +}; + +void main(in v_detail I, out p_bumped_new O) +{ + int i = I.misc.w; + float2x4 mm = array[i]; + + float3x3 mmhpb = setMatrix(mm[0].xyz); + float3 posi = float3(mm[1].xyz); + + float scale = mm[0].w; + float4 m0 = float4(mmhpb[0]*scale, posi.x); + float4 m1 = float4(mmhpb[1]*scale, posi.y); + float4 m2 = float4(mmhpb[2]*scale, posi.z); + + float4 pos; + pos.x = dot(m0, I.pos); + pos.y = dot(m1, I.pos); + pos.z = dot(m2, I.pos); + pos.w = 1.0f; + + float3 Pe = mul(m_WV, pos); + float2 tc = I.misc.xy * consts.xy; + + float3 N; + N.x = pos.x - m0.w; + N.y = pos.y - m1.w + 0.75f; + N.z = pos.z - m2.w; + + O.tcdh = float4(tc.xy, 0.7, 0.5); + O.position = float4(Pe, 1.0f); + + N = normalize(mul(m_WV, N)); + + O.M1 = N; + O.M2 = N; + O.M3 = N; + + O.hpos = mul(m_WVP, pos); +} diff --git a/gamedata/shaders/editor/deffer_impl.ps.hlsl b/gamedata/shaders/editor/deffer_impl.ps.hlsl new file mode 100644 index 0000000..fed137e --- /dev/null +++ b/gamedata/shaders/editor/deffer_impl.ps.hlsl @@ -0,0 +1,142 @@ +#include "common.hlsli" +#include "sload.hlsli" +#include "lmodel.hlsli" +#include "hmodel.hlsli" + +// void main(p_bumped_new I, out f_editor_gbuffer O) +// { + // cotangent_frame(I); + // XrayMaterial M; + + // M.Sun = I.tcdh.w; + // M.Hemi = I.tcdh.z; + // M.Point = I.position.xyz; + + // SloadNew(I, M); + +// #ifdef USE_AREF + // clip(M.Color.w - def_aref); +// #endif + + // M.Normal = mul(float3x3(I.M1, I.M2, I.M3), M.Normal); + // M.Normal = normalize(M.Normal); + + // M.Sun = saturate(M.Sun * 2.0f); + // M.Color.xyz = saturate(M.Color.xyz); + // float MaterialID = 0.25f; + + // float Gloss = 1.0f - M.Roughness; + +// #ifndef FORWARD_ONLY + // O.Albedo = float4(M.Color.xyz, Gloss); + // O.Normal = float4(M.Normal.xyz, Gloss); + // O.PointZ = float4(M.Point.xyz, MaterialID); +// #endif + + // float4 Light = float4(L_sun_color, 1.0f) * M.Sun * plight_infinity(MaterialID, M.Point, M.Normal, L_sun_dir_e); + // float3 Diffuse, Specular; + + // hmodel(Diffuse, Specular, MaterialID, M.Hemi, Gloss, M.Point, M.Normal); + + // O.Color = float4(Diffuse + Light.xyz, M.Color.w); + // O.Color.xyz *= M.Color.xyz; + // O.Color.xyz += Light.w * Gloss + Specular; + + // float fog = saturate(length(M.Point) * fog_params.w + fog_params.x); + // O.Color = lerp(O.Color, fog_color, fog); +// } + +uniform sampler2D s_mask; + +uniform sampler2D s_dt_r; +uniform sampler2D s_dt_g; +uniform sampler2D s_dt_b; +uniform sampler2D s_dt_a; + +uniform sampler2D s_dn_r; +uniform sampler2D s_dn_g; +uniform sampler2D s_dn_b; +uniform sampler2D s_dn_a; + +void main(p_bumped_new I, out f_editor_gbuffer O) +{ + if(is_lighting_enable.x < 0.5f) { + O.Color = tex2D(s_base, I.tcdh.xy); + + float2 tcdbump = I.tcdh.xy * dt_params.xy; + float4 Detail = tex2D(s_detail, tcdbump); + + O.Color.xyz *= Detail.xyz * 2.0f; + +#ifndef FORWARD_ONLY + O.Normal = float4(I.M1.xyz, def_gloss); + O.Albedo = float4(O.Color.xyz, def_gloss); + O.PointZ = float4(I.position.xyz, xmaterial); +#endif + + return; + } + + cotangent_frame(I); + XrayMaterial M; + + M.Sun = I.tcdh.w; + M.Hemi = I.tcdh.z; + M.Point = I.position.xyz; + + M.Color = tex2D(s_base, I.tcdh.xy); + + float4 Mask = tex2D(s_mask, I.tcdh.xy); + Mask /= dot(Mask, 1.0f); + + float2 tcdbump = I.tcdh.xy * dt_params.xy; + + float3 Detail_R = tex2D(s_dt_r, tcdbump).xyz * Mask.x; + float3 Detail_G = tex2D(s_dt_g, tcdbump).xyz * Mask.y; + float3 Detail_B = tex2D(s_dt_b, tcdbump).xyz * Mask.z; + float3 Detail_A = tex2D(s_dt_a, tcdbump).xyz * Mask.w; + float3 Detail = Detail_R + Detail_G + Detail_B + Detail_A; + + float4 Normal_R = tex2D(s_dn_r, tcdbump) * Mask.x; + float4 Normal_G = tex2D(s_dn_g, tcdbump) * Mask.y; + float4 Normal_B = tex2D(s_dn_b, tcdbump) * Mask.z; + float4 Normal_A = tex2D(s_dn_a, tcdbump) * Mask.w; + + float3 Normal = Normal_R.wzy + Normal_G.wzy + Normal_B.wzy + Normal_A.wzy - 0.5; + Normal.z *= 0.5f; + + M.Roughness = saturate(1.0f - Normal_R.x + Normal_G.x + Normal_B.x + Normal_A.x); + M.Color.xyz *= Detail * 2.0f; + + M.Metalness = 0.0f; + M.SSS = 0.0f; + M.AO = 1.0f; + + M.Normal = mul(float3x3(I.M1, I.M2, I.M3), Normal); + M.Normal = normalize(M.Normal); + + M.Sun = saturate(M.Sun * 2.0f); + M.Color.xyz = saturate(M.Color.xyz); + + float MaterialID = 0.25f; + float Gloss = 1.0f - M.Roughness; + +#ifndef FORWARD_ONLY + O.Albedo = float4(M.Color.xyz, Gloss); + O.Normal = float4(M.Normal.xyz, Gloss); + O.PointZ = float4(M.Point.xyz, MaterialID); +#endif + + float4 Light = float4(L_sun_color, 1.0f) * M.Sun * plight_infinity(MaterialID, M.Point, M.Normal, L_sun_dir_e); + float3 Diffuse, Specular; + + hmodel(Diffuse, Specular, MaterialID, M.Hemi, Gloss, M.Point, M.Normal); + + O.Color = float4(Diffuse + Light.xyz, M.Color.w); + O.Color.xyz *= M.Color.xyz; + O.Color.xyz += Light.w * Gloss + Specular; + + float fog = saturate(length(M.Point) * fog_params.w + fog_params.x); + O.Color = lerp(O.Color, fog_color, fog); +} + diff --git a/gamedata/shaders/editor/deffer_model.vs.hlsl b/gamedata/shaders/editor/deffer_model.vs.hlsl new file mode 100644 index 0000000..706f32b --- /dev/null +++ b/gamedata/shaders/editor/deffer_model.vs.hlsl @@ -0,0 +1,50 @@ +#include "common.hlsli" +#include "skin.hlsli" + +void skinned_main(in v_model I, out p_bumped_new O) +{ + float3 Nw = normalize(mul((float3x3)m_W, (float3)I.N)); + float hemi_val = Nw.y * 0.3f + 0.5f; + float3 Pe = mul(m_WV, I.P); + + O.tcdh = float4(I.tc.xy, hemi_val, 0.5f); + O.position = float4(Pe, 1.0f); + + O.M1 = mul(m_WV, I.N.xyz * 2.0f); + O.M2 = mul(m_WV, I.T.xyz * 2.0f); + O.M3 = mul(m_WV, I.B.xyz * 2.0f); + + O.hpos = mul(m_WVP, I.P); +} + +#if defined(SKIN_0) +void main(in v_model_skinned_0 I, out p_bumped_new O) +{ + skinned_main(skinning_0(I), O); +} +#elif defined(SKIN_1) +void main(in v_model_skinned_1 I, out p_bumped_new O) +{ + skinned_main(skinning_1(I), O); +} +#elif defined(SKIN_2) +void main(in v_model_skinned_2 I, out p_bumped_new O) +{ + skinned_main(skinning_2(I), O); +} +#elif defined(SKIN_3) +void main(in v_model_skinned_3 I, out p_bumped_new O) +{ + skinned_main(skinning_3(I), O); +} +#elif defined(SKIN_4) +void main(in v_model_skinned_4 I, out p_bumped_new O) +{ + skinned_main(skinning_4(I), O); +} +#else +void main(in v_model I, out p_bumped_new O) +{ + skinned_main(I, O); +} +#endif diff --git a/gamedata/shaders/editor/dumb.ps.hlsl b/gamedata/shaders/editor/dumb.ps.hlsl new file mode 100644 index 0000000..1bf0b85 --- /dev/null +++ b/gamedata/shaders/editor/dumb.ps.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +// Pixel +float4 main() : COLOR +{ + return 0; +} diff --git a/gamedata/shaders/editor/effects_water.lua b/gamedata/shaders/editor/effects_water.lua new file mode 100644 index 0000000..f6bc3bb --- /dev/null +++ b/gamedata/shaders/editor/effects_water.lua @@ -0,0 +1,32 @@ +local tex_base = "water\\water_water" +local tex_nmap = "water\\water_normal" +local tex_dist = "water\\water_dudv" +local tex_caustic = "water\\water_caustic" + +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +local tex_env = "sky\\sky_8_cube" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("water", "water") + + :sorting(2, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(true) + + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_nmap"):texture(tex_nmap) + + shader:sampler("s_env0"):texture(tex_env0) + shader:sampler("s_env1"):texture(tex_env1) + + shader:sampler("env_s0"):texture("$user$env_s0") + shader:sampler("env_s1"):texture("$user$env_s1") + + shader:sampler("s_image"):texture("$user$rt_color") + shader:sampler("s_caustic"):texture(tex_caustic) + + shader:sampler("s_env"):texture(tex_env) +end \ No newline at end of file diff --git a/gamedata/shaders/editor/font2.ps.hlsl b/gamedata/shaders/editor/font2.ps.hlsl new file mode 100644 index 0000000..7892ebe --- /dev/null +++ b/gamedata/shaders/editor/font2.ps.hlsl @@ -0,0 +1,18 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 r = tex2D(s_base, I.tc0); + // r.x = 1 - r.x; + // r.y = 1 - r.y; + // r.z = 1 - r.z; + r.w = 1 - r.w; + return r; + // return /*(float4(1,1,1,1) - */ tex2D (s_base,I.tc0); +} diff --git a/gamedata/shaders/editor/forward_base.ps.hlsl b/gamedata/shaders/editor/forward_base.ps.hlsl new file mode 100644 index 0000000..d656a3b --- /dev/null +++ b/gamedata/shaders/editor/forward_base.ps.hlsl @@ -0,0 +1,48 @@ +#include "common.hlsli" +#include "sload.hlsli" +#include "lmodel.hlsli" +#include "hmodel.hlsli" + +void main(p_bumped_new I, out float4 Color : COLOR0) +{ + XrayMaterial M; + + M.Sun = I.tcdh.w; + M.Hemi = I.tcdh.z; + M.Point = I.position.xyz; + + SloadNew(I, M); + +#ifdef USE_AREF + clip(M.Color.w - def_aref); +#endif + + M.Normal = mul(float3x3(I.M1, I.M2, I.M3), M.Normal); + M.Normal = normalize(M.Normal); + +#ifdef USE_LM_HEMI + float4 lm = tex2D(s_hemi, I.tcdh.zw); + + M.Sun = get_sun(lm); + M.Hemi = get_hemi(lm); +#endif + + M.Sun = saturate(M.Sun * 2.0f); + M.Color.xyz = saturate(M.Color.xyz); + + float MaterialID = 0.5f; + float Gloss = 1.0f - M.Roughness; + + float4 Light = float4(L_sun_color, 1.0f) * M.Sun * plight_infinity(MaterialID, M.Point, M.Normal, L_sun_dir_e); + float3 Diffuse, Specular; + + hmodel(Diffuse, Specular, MaterialID, M.Hemi, Gloss, M.Point, M.Normal); + + Color = float4(Diffuse + Light.xyz, M.Color.w); + Color.xyz *= M.Color.xyz; + Color.xyz += Light.w * Gloss + Specular; + + float fog = saturate(length(M.Point) * fog_params.w + fog_params.x); + Color.xyz = M.Normal * 0.5f + 0.5f; //lerp(Color, fog_color, fog); +} + diff --git a/gamedata/shaders/editor/hmodel.hlsli b/gamedata/shaders/editor/hmodel.hlsli new file mode 100644 index 0000000..de2bc9c --- /dev/null +++ b/gamedata/shaders/editor/hmodel.hlsli @@ -0,0 +1,48 @@ +#ifndef HMODEL_H +#define HMODEL_H + +#include "common.hlsli" + +uniform samplerCUBE env_s0; +uniform samplerCUBE env_s1; +uniform samplerCUBE sky_s0; +uniform samplerCUBE sky_s1; + +void hmodel(out float3 hdiffuse, out float3 hspecular, + float m, float h, float s, float3 Pnt, float3 normal) +{ + // hscale - something like diffuse reflection + float3 nw = mul(m_invV, normal); + float hscale = h; + +#ifdef USE_GAMMA_22 + hscale = (hscale * hscale); // make it more linear +#endif + + // reflection vector + float3 v2PntL = normalize(Pnt); + float3 v2Pnt = mul(m_invV, v2PntL); + float3 vreflect = reflect(v2Pnt, nw); + float hspec = .5h + .5h * dot(vreflect, v2Pnt); + + // material + float4 light = tex3D(s_material, float3(hscale, hspec, m)); + + // diffuse color + float3 e0d = texCUBElod(env_s0, float4(nw, 0.0f)); + float3 e1d = texCUBElod(env_s1, float4(nw, 0.0f)); + float3 env_d = L_hemi_color.xyz * lerp(e0d, e1d, L_hemi_color.w); + env_d *= env_d; // contrast + hdiffuse = env_d * light.xyz + L_ambient.rgb; + + // specular color + vreflect.y = vreflect.y * 2 - 1; + + float3 e0s = texCUBElod(env_s0, float4(vreflect, 0.0f)); + float3 e1s = texCUBElod(env_s1, float4(vreflect, 0.0f)); + float3 env_s = L_hemi_color.xyz * lerp(e0s, e1s, L_hemi_color.w); + env_s *= env_s; + hspecular = env_s * light.w * s; +} +#endif + diff --git a/gamedata/shaders/editor/hud3d.ps.hlsl b/gamedata/shaders/editor/hud3d.ps.hlsl new file mode 100644 index 0000000..df4d764 --- /dev/null +++ b/gamedata/shaders/editor/hud3d.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +struct ui_vert_out +{ + float2 tc0 : TEXCOORD0; + float4 P : POSITION; +}; + +float4 main(ui_vert_out I) : COLOR +{ + float4 r = tex2D(s_base, I.tc0); + return r; +} diff --git a/gamedata/shaders/editor/hud3d.vs.hlsl b/gamedata/shaders/editor/hud3d.vs.hlsl new file mode 100644 index 0000000..47bef8b --- /dev/null +++ b/gamedata/shaders/editor/hud3d.vs.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +struct ui_vert_in +{ + float4 P : POSITION; + float4 color : COLOR0; + float2 uv : TEXCOORD0; +}; + +struct ui_vert_out +{ + float2 tc0 : TEXCOORD0; + float4 P : POSITION; +}; + +ui_vert_out main(ui_vert_in v) +{ + ui_vert_out O; + + O.tc0 = v.uv; + O.P = v.P; + O.P.w = 1; + O.P = mul(m_WVP, O.P); + return O; +} diff --git a/gamedata/shaders/editor/hud_crosshair.lua b/gamedata/shaders/editor/hud_crosshair.lua new file mode 100644 index 0000000..7c5097d --- /dev/null +++ b/gamedata/shaders/editor/hud_crosshair.lua @@ -0,0 +1,6 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "simple_color") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) +end diff --git a/gamedata/shaders/editor/hud_font.lua b/gamedata/shaders/editor/hud_font.lua new file mode 100644 index 0000000..6f41a55 --- /dev/null +++ b/gamedata/shaders/editor/hud_font.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "hud_font") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/editor/hud_font.ps.hlsl b/gamedata/shaders/editor/hud_font.ps.hlsl new file mode 100644 index 0000000..7ab06f8 --- /dev/null +++ b/gamedata/shaders/editor/hud_font.ps.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; + float4 c0 : COLOR0; +}; + +float4 main(v2p I) : COLOR +{ + float4 r = tex2D(s_base, I.tc0); + r.rgb = I.c0.rgb; + r.a *= I.c0.a; + return r; +} diff --git a/gamedata/shaders/editor/hud_font2.lua b/gamedata/shaders/editor/hud_font2.lua new file mode 100644 index 0000000..f7c9151 --- /dev/null +++ b/gamedata/shaders/editor/hud_font2.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "font2") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/editor/hud_movie.lua b/gamedata/shaders/editor/hud_movie.lua new file mode 100644 index 0000000..4a61a6c --- /dev/null +++ b/gamedata/shaders/editor/hud_movie.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "yuv2rgb") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/editor/hud_p3d.lua b/gamedata/shaders/editor/hud_p3d.lua new file mode 100644 index 0000000..7465274 --- /dev/null +++ b/gamedata/shaders/editor/hud_p3d.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("hud3d", "hud3d") + :fog(false) + :zb(true, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/editor/impl_dt.ps.hlsl b/gamedata/shaders/editor/impl_dt.ps.hlsl new file mode 100644 index 0000000..db5f44a --- /dev/null +++ b/gamedata/shaders/editor/impl_dt.ps.hlsl @@ -0,0 +1,35 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // lmap + float2 tc2 : TEXCOORD2; // detail +}; +uniform sampler2D s_mask; // + +uniform sampler2D s_dt_r; // +uniform sampler2D s_dt_g; // +uniform sampler2D s_dt_b; // +uniform sampler2D s_dt_a; // + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + + float4 mask = tex2D(s_mask, I.tc0); + float mag = dot(mask, 1); + mask = mask / mag; + + float3 d_R = tex2D(s_dt_r, I.tc2) * mask.r; + float3 d_G = tex2D(s_dt_g, I.tc2) * mask.g; + float3 d_B = tex2D(s_dt_b, I.tc2) * mask.b; + float3 d_A = tex2D(s_dt_a, I.tc2) * mask.a; + float3 dt = d_R + d_G + d_B + d_A; + t_base.xyz *= 2.0f * dt; + + // out + return float4(t_base.xyz, 1); +} + diff --git a/gamedata/shaders/editor/impl_dt.vs.hlsl b/gamedata/shaders/editor/impl_dt.vs.hlsl new file mode 100644 index 0000000..6ac20bf --- /dev/null +++ b/gamedata/shaders/editor/impl_dt.vs.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + float2 tc2 : TEXCOORD2; + float fog : FOG; +}; + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float3 N : NORMAL; +}; + +vf main(vv v) +{ + vf o; + float3 N = unpack_normal(v.N); + o.hpos = mul(m_WVP, float4(v.P.xyz, 1)); // xform, input in world coords + o.tc0 = v.tc; + o.tc1 = o.tc0; // copy tc + o.tc2 = o.tc0 * dt_params; // dt tc + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} + diff --git a/gamedata/shaders/editor/lmodel.hlsli b/gamedata/shaders/editor/lmodel.hlsli new file mode 100644 index 0000000..f099cc4 --- /dev/null +++ b/gamedata/shaders/editor/lmodel.hlsli @@ -0,0 +1,28 @@ +#ifndef LMODEL_H +#define LMODEL_H + +#include "common.hlsli" + +float4 plight_infinity(float m, float3 _point, float3 normal, float3 light_direction) +{ + float3 N = normal; // normal + float3 V = -normalize(_point); // vector2eye + float3 L = -light_direction; // vector2light + float3 H = normalize(L + V); // float-angle-vector + return tex3D(s_material, float3(dot(L, N), dot(H, N), m)); // sample material +} + +float4 plight_local(float m, float3 _point, float3 normal, float3 light_position, float light_range_rsq) +{ + float3 N = normal; // normal + float3 L2P = _point - light_position; // light2point + float3 V = -normalize(_point); // vector2eye + float3 L = -normalize((float3)L2P); // vector2light + float3 H = normalize(L + V); // float-angle-vector + float rsqr = dot(L2P, L2P); // distance 2 light (squared) + float att = saturate(1 - rsqr * light_range_rsq); // q-linear attenuate + float4 light = tex3D(s_material, float3(dot(L, N), dot(H, N), m)); // sample material + return att * light; +} + +#endif \ No newline at end of file diff --git a/gamedata/shaders/editor/model_def_hq.ps.hlsl b/gamedata/shaders/editor/model_def_hq.ps.hlsl new file mode 100644 index 0000000..bfc2c99 --- /dev/null +++ b/gamedata/shaders/editor/model_def_hq.ps.hlsl @@ -0,0 +1,12 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base +}; + +// Pixel +float4 main_ps_1_1(v2p I) : COLOR +{ + return tex2D(s_base, I.tc0); +} diff --git a/gamedata/shaders/editor/model_def_hq.vs.hlsl b/gamedata/shaders/editor/model_def_hq.vs.hlsl new file mode 100644 index 0000000..2afd393 --- /dev/null +++ b/gamedata/shaders/editor/model_def_hq.vs.hlsl @@ -0,0 +1,23 @@ +#include "common.hlsli" +#include "skin.hlsli" + +// #define SKIN_2 + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + o.hpos = mul(m_WVP, v.pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.fog = calc_fogging(v.pos); + return o; +} + +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/editor/model_env_hq.ps.hlsl b/gamedata/shaders/editor/model_env_hq.ps.hlsl new file mode 100644 index 0000000..c673ac4 --- /dev/null +++ b/gamedata/shaders/editor/model_env_hq.ps.hlsl @@ -0,0 +1,23 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float3 tc1 : TEXCOORD1; // environment +}; + +// Pixel +float4 main_ps_1_1(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_env = texCUBE(s_env, I.tc1); + + // lighting + + // final-color + float3 base = lerp(t_env, t_base, t_base.a); + float3 final = base; + + // out + return float4(final.r, final.g, final.b, t_base.a); +} diff --git a/gamedata/shaders/editor/model_env_hq.vs.hlsl b/gamedata/shaders/editor/model_env_hq.vs.hlsl new file mode 100644 index 0000000..ab504a8 --- /dev/null +++ b/gamedata/shaders/editor/model_env_hq.vs.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" +#include "skin.hlsli" + +// #define SKIN_2 + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float3 tc1 : TEXCOORD1; // environment + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + float4 pos = v.pos; + float3 pos_w = mul(m_W, pos); + float4 pos_w4 = float4(pos_w, 1); + float3 norm_w = normalize(mul(m_W, v.norm)); + + o.hpos = mul(m_WVP, pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.tc1 = calc_reflection(pos_w, norm_w); + o.fog = calc_fogging(pos_w4); // fog, input in world coords + return o; +} + +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/editor/particle.ps.hlsl b/gamedata/shaders/editor/particle.ps.hlsl new file mode 100644 index 0000000..9eb22a5 --- /dev/null +++ b/gamedata/shaders/editor/particle.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + return I.c * tex2D(s_base, I.tc0); +} diff --git a/gamedata/shaders/editor/particle.vs.hlsl b/gamedata/shaders/editor/particle.vs.hlsl new file mode 100644 index 0000000..9c25f23 --- /dev/null +++ b/gamedata/shaders/editor/particle.vs.hlsl @@ -0,0 +1,27 @@ +#include "common.hlsli" + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; +}; +struct vf +{ + float4 hpos : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; + float fog : FOG; +}; + +vf main(vv v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc = v.tc; // copy tc + o.c = v.c; // copy color + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/editor/particle_distort.ps.hlsl b/gamedata/shaders/editor/particle_distort.ps.hlsl new file mode 100644 index 0000000..dbeaa04 --- /dev/null +++ b/gamedata/shaders/editor/particle_distort.ps.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 proj : TEXCOORD1; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +uniform sampler s_distort; +uniform sampler s_image; + +float4 main(v2p I) : COLOR +{ + float2 uv = I.proj.xy / I.proj.w * float2(0.5f, -0.5f) + 0.5f; + float4 distort = tex2D(s_distort, I.tc0); + + float factor = distort.a * dot(I.c.xyz, 0.33f); + float2 offset = (distort.xy - (127.0f / 255.0f)) * factor; + float3 image = tex2D(s_image, uv + offset * 0.05f).xyz; + + return float4(image.xyz, 1.0f); +} + diff --git a/gamedata/shaders/editor/particle_distort.vs.hlsl b/gamedata/shaders/editor/particle_distort.vs.hlsl new file mode 100644 index 0000000..fe059e5 --- /dev/null +++ b/gamedata/shaders/editor/particle_distort.vs.hlsl @@ -0,0 +1,30 @@ +#include "common.hlsli" + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; +}; +struct vf +{ + float4 hpos : POSITION; + float2 tc : TEXCOORD0; + float4 proj : TEXCOORD1; + float4 c : COLOR0; + float fog : FOG; +}; + +vf main(vv v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc = v.tc; // copy tc + o.c = v.c; // copy color + o.fog = calc_fogging(v.P); // fog, input in world coords + o.proj = o.hpos; + + return o; +} + diff --git a/gamedata/shaders/editor/particles_xdistort.lua b/gamedata/shaders/editor/particles_xdistort.lua new file mode 100644 index 0000000..4823a04 --- /dev/null +++ b/gamedata/shaders/editor/particles_xdistort.lua @@ -0,0 +1,10 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("particle_distort", "particle_distort") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + shader:sampler("s_base") : texture(t_base) + shader:sampler("s_distort") : texture(t_base) + shader:sampler("s_image") : texture("$user$rt_color") : mirror () +end diff --git a/gamedata/shaders/editor/portal.lua b/gamedata/shaders/editor/portal.lua new file mode 100644 index 0000000..734ec69 --- /dev/null +++ b/gamedata/shaders/editor/portal.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("portal", "portal") + :fog(true) + :zb(true, false) + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) +end diff --git a/gamedata/shaders/editor/portal.ps.hlsl b/gamedata/shaders/editor/portal.ps.hlsl new file mode 100644 index 0000000..61cc072 --- /dev/null +++ b/gamedata/shaders/editor/portal.ps.hlsl @@ -0,0 +1,8 @@ +#include "common.hlsli" + +float4 main(float4 color : COLOR0, float fog : FOG) : COLOR +{ + float4 final = color; + final.xyz = lerp(fog_color.xyz, final.xyz, fog); + return final; +} diff --git a/gamedata/shaders/editor/portal.vs.hlsl b/gamedata/shaders/editor/portal.vs.hlsl new file mode 100644 index 0000000..00bb692 --- /dev/null +++ b/gamedata/shaders/editor/portal.vs.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float4 c : COLOR0; + float fog : FOG; +}; + +vf main(v_vert v) +{ + vf o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.c = v.color; + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/editor/shared/cloudconfig.hlsli b/gamedata/shaders/editor/shared/cloudconfig.hlsli new file mode 100644 index 0000000..92b2422 --- /dev/null +++ b/gamedata/shaders/editor/shared/cloudconfig.hlsli @@ -0,0 +1,11 @@ +#ifndef _CLOUDCONFIG_H +#define _CLOUDCONFIG_H + +// note: timers has resolution (sec), where x=1, y=10, z=1/10, +#define CLOUD_TILE0 (0.7f) +#define CLOUD_SPEED0 (2 * 0.05) //(0.033f) +#define CLOUD_TILE1 (2.8) //(2.5f) +#define CLOUD_SPEED1 (2 * 0.025) //(0.033f) +#define CLOUD_FADE (0.5) + +#endif diff --git a/gamedata/shaders/editor/shared/common.hlsli b/gamedata/shaders/editor/shared/common.hlsli new file mode 100644 index 0000000..b42d52d --- /dev/null +++ b/gamedata/shaders/editor/shared/common.hlsli @@ -0,0 +1,65 @@ +#ifndef SHARED_COMMON_H +#define SHARED_COMMON_H + +uniform float3x4 m_W; +uniform float3x4 m_V; +uniform float3x4 m_invV; +uniform float4x4 m_P; +uniform float3x4 m_WV; +uniform float4x4 m_VP; +uniform float4x4 m_WVP; +uniform float4 timers; +uniform float4 fog_plane; +uniform float4 fog_params; // x=near*(1/(far-near)), ?,?, w = -1/(far-near) +uniform float4 fog_color; +uniform float4 L_sky_color; +uniform float3 L_sun_color; +uniform float3 L_sun_dir_w; +uniform float3 L_sun_dir_e; +uniform float4 L_hemi_color; +uniform float4 L_ambient; // L_ambient.w = skynbox-lerp-factor +uniform float3 eye_position; +uniform float3 eye_direction; +uniform float3 eye_normal; +uniform float4 dt_params; + +float3 unpack_normal(float3 v) +{ + return 2 * v - 1; +} +float3 unpack_bx2(float3 v) +{ + return 2 * v - 1; +} +float3 unpack_bx4(float3 v) +{ + return 4 * v - 2; +} + +float2 unpack_tc_base(float2 tc, float du, float dv) +{ + return (tc.xy + float2(du, dv)) * (32.f / 32768.f); +} + +float2 unpack_tc_lmap(float2 tc) +{ + return tc * (1.f / 32768.f); +} // [-1 .. +1 ] + +float calc_cyclic(float x) +{ + float phase = 1 / (2 * 3.141592653589f); + float sqrt2 = 1.4142136f; + float sqrt2m2 = 2.8284271f; + float f = sqrt2m2 * frac(x) - sqrt2; // [-sqrt2 .. +sqrt2] + return f * f - 1.f; // [-1 .. +1] +} +float2 calc_xz_wave(float2 dir2D, float frac) +{ + // Beizer + float2 ctrl_A = float2(0.f, 0.f); + float2 ctrl_B = float2(dir2D.x, dir2D.y); + return lerp(ctrl_A, ctrl_B, frac); +} + +#endif diff --git a/gamedata/shaders/editor/shared/waterconfig.hlsli b/gamedata/shaders/editor/shared/waterconfig.hlsli new file mode 100644 index 0000000..0001f14 --- /dev/null +++ b/gamedata/shaders/editor/shared/waterconfig.hlsli @@ -0,0 +1,55 @@ +#ifndef _WATERCONFIG_H + #define _WATERCONFIG_H + +// íàñòðîéêè äëÿ: (1) +// waterdistortion +// waterdistortion2 + + #define W_POSITION_SHIFT_HEIGHT (1.f / 60.f) //(1.f/100.f) //amplitude /50 - small, /10 - large + #define W_POSITION_SHIFT_SPEED (25.f) //(25.0f) + #define W_DISTORT_BASE_TILE_0 (1.0f) //(1.0f) + #define W_DISTORT_BASE_TILE_1 (1.1f) //(1.1f) + #define W_DISTORT_AMP_0 (+0.15f) //(+0.15f) + #define W_DISTORT_AMP_1 (+0.55f) //(-0.30f) + #define W_DISTORT_POWER (1.0f) //(1.0f) + +#endif + +/* +//////////////////////////////////////////////////////////////////////////////// +-- waters clear +//////////////////////////////////////////////////////////////////////////////// +íàñòðîéêè äëÿ: + waterdistortion + waterdistortion2 +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/50.f) //(1.f/100.f) //amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (15.f) //(25.0f) +#define W_DISTORT_BASE_TILE_0 (1.3f) //(1.6f) +#define W_DISTORT_BASE_TILE_1 (2.3f) //(1.1f) +#define W_DISTORT_AMP_0 (+0.35f) //(+0.15f) +#define W_DISTORT_AMP_1 (-1.75f) //(-0.30f) +#define W_DISTORT_POWER (1.0f) //(1.0f) +//////////////////////////////////////////////////////////////////////////////// +íàñòðîéêè äëÿ: + waterdistortion + waterdistortion +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/80.f) //(1.f/100.f) //amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (20.f) //(25.0f) +#define W_DISTORT_BASE_TILE_0 (1.6f) //(1.6f) +#define W_DISTORT_BASE_TILE_1 (1.1f) //(1.1f) +#define W_DISTORT_AMP_0 (+0.15f) //(+0.15f) +#define W_DISTORT_AMP_1 (-0.30f) //(-0.30f) +#define W_DISTORT_POWER (6.0f) //(6.0f) +//////////////////////////////////////////////////////////////////////////////// +-- waters mulyaka +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/50.f) // amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (25.f) +#define W_DISTORT_BASE_TILE (0.1f) //(1.0f) +#define W_DISTORT_AMP_0 (+0.58f) //(-0.08f) +#define W_DISTORT_AMP_1 (+0.38f) //(+0.18f) +#define W_DISTORT_POWER (3.0f) //(2.0f) +//////////////////////////////////////////////////////////////////////////////// +*/ diff --git a/gamedata/shaders/editor/shared/watermove.hlsli b/gamedata/shaders/editor/shared/watermove.hlsli new file mode 100644 index 0000000..5148108 --- /dev/null +++ b/gamedata/shaders/editor/shared/watermove.hlsli @@ -0,0 +1,29 @@ +#ifndef _WATERMOVE_H +#define _WATERMOVE_H + +float4 watermove(float4 P) +{ + float3 wave1 = float3(0.11f, 0.13f, 0.07f) * W_POSITION_SHIFT_SPEED; + float dh = sin(timers.x + dot((float3)P, wave1)); + P.y += dh * W_POSITION_SHIFT_HEIGHT; + return P; +} +float2 watermove_tc(float2 base, float2 P, float amp) +{ + float2 wave1 = float2(0.2111f, 0.2333f) * amp; + float angle = timers.z + dot(P, wave1); + float du = sin(angle); + float dv = cos(angle); + return (base + amp * float2(du, dv)); +} + +float3 waterrefl(out float amount, float3 P, float3 N) +{ + float3 v2point = normalize(P - eye_position); + float3 vreflect = reflect(v2point, N); + float fresnel = (.5f + .5f * dot(vreflect, v2point)); + amount = 1 - fresnel * fresnel; // 0=full env, 1=no env + return vreflect; +} + +#endif diff --git a/gamedata/shaders/editor/shared/wmark.hlsli b/gamedata/shaders/editor/shared/wmark.hlsli new file mode 100644 index 0000000..34c6b5b --- /dev/null +++ b/gamedata/shaders/editor/shared/wmark.hlsli @@ -0,0 +1,23 @@ +#ifndef WMARK_H +#define WMARK_H + +#include "common.hlsli" + +#define NORMAL_SHIFT 0.007f +#define MIN_SHIFT 0.003f +#define MAX_SHIFT 0.011f +#define RANGE 100.f + +float4 wmark_shift(float3 pos, float3 norm) +{ + float3 P = pos; + float3 N = norm; + float3 sd = eye_position - P; + float d = length(sd); + float w = min(d / RANGE, 1.f); + float s = lerp(MIN_SHIFT, MAX_SHIFT, d); + P += N.xyz * NORMAL_SHIFT; + P -= normalize(eye_direction + normalize(P - eye_position)) * s; + return float4(P, 1.f); +} +#endif diff --git a/gamedata/shaders/editor/simple_color.ps.hlsl b/gamedata/shaders/editor/simple_color.ps.hlsl new file mode 100644 index 0000000..86490e4 --- /dev/null +++ b/gamedata/shaders/editor/simple_color.ps.hlsl @@ -0,0 +1,6 @@ +#include "common.hlsli" + +float4 main(float4 C : COLOR0) : COLOR +{ + return C; +} diff --git a/gamedata/shaders/editor/simple_color.vs.hlsl b/gamedata/shaders/editor/simple_color.vs.hlsl new file mode 100644 index 0000000..f2f975e --- /dev/null +++ b/gamedata/shaders/editor/simple_color.vs.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float4 C : COLOR0; +}; + +uniform float4 tfactor; + +vf main(float4 P : POSITION) +{ + vf o; + + o.hpos = mul(m_WVP, P); // xform, input in world coords + o.C = tfactor; + + return o; +} diff --git a/gamedata/shaders/editor/skin.hlsli b/gamedata/shaders/editor/skin.hlsli new file mode 100644 index 0000000..144873c --- /dev/null +++ b/gamedata/shaders/editor/skin.hlsli @@ -0,0 +1,226 @@ +#ifndef SKIN_H +#define SKIN_H + +#include "common.hlsli" + +struct v_model_skinned_0 +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float3 N : NORMAL; // normal // DWORD + float3 T : TANGENT; // tangent // DWORD + float3 B : BINORMAL; // binormal // DWORD + float2 tc : TEXCOORD0; // (u,v) // short2 +}; +struct v_model_skinned_1 // 24 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,index) // DWORD + float3 T : TANGENT; // tangent // DWORD + float3 B : BINORMAL; // binormal // DWORD + float2 tc : TEXCOORD0; // (u,v) // short2 +}; +struct v_model_skinned_2 // 28 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,weight) // DWORD + float3 T : TANGENT; // tangent // DWORD + float3 B : BINORMAL; // binormal // DWORD + float4 tc : TEXCOORD0; // (u,v, w=m-index0, z=m-index1) // short4 +}; + +struct v_model_skinned_3 // 28 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,weight0) // DWORD + float4 T : TANGENT; // (tx,ty,tz,weight1) // DWORD + float4 B : BINORMAL; // (bx,by,bz,m-index2) // DWORD + float4 tc : TEXCOORD0; // (u,v, w=m-index0, z=m-index1) // short4 +}; + +struct v_model_skinned_4 // 28 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,weight0) // DWORD + float4 T : TANGENT; // (tx,ty,tz,weight1) // DWORD + float4 B : BINORMAL; // (bx,by,bz,weight2) // DWORD + float2 tc : TEXCOORD0; // (u,v) // short2 + float4 ind : TEXCOORD1; // (x=m-index0, y=m-index1, z=m-index2, w=m-index3) // DWORD +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 u_position(float4 v) +{ + return float4(v.xyz, 1.f); +} // -12..+12 + +////////////////////////////////////////////////////////////////////////////////////////// +// uniform float4 sbones_array [256-22]; +// Igor: Max number of bones per mesh - 64. 3 registers per bone. +uniform float4 sbones_array[230]; +float3 skinning_dir(float3 dir, float3 m0, float3 m1, float3 m2) +{ + float3 U = unpack_normal(dir); + return float3( + dot(m0, U), + dot(m1, U), + dot(m2, U)); +} +float4 skinning_pos(float4 pos, float4 m0, float4 m1, float4 m2) +{ + float4 P = u_position(pos); // -12..+12 + return float4( + dot(m0, P), + dot(m1, P), + dot(m2, P), + 1); +} + +v_model skinning_0(v_model_skinned_0 v) +{ + // skinning + v_model o; + o.P = u_position(v.P); + o.N = unpack_normal(v.N); + o.T = unpack_normal(v.T); + o.B = unpack_normal(v.B); + o.tc = v.tc; // -16..+16 + return o; +} +v_model skinning_1(v_model_skinned_1 v) +{ + // matrices + int mid = v.N.w * (int)255; + float4 m0 = sbones_array[mid + 0]; + float4 m1 = sbones_array[mid + 1]; + float4 m2 = sbones_array[mid + 2]; + + // skinning + v_model o; + o.P = skinning_pos(v.P, m0, m1, m2); + o.N = skinning_dir(v.N, m0, m1, m2); + o.T = skinning_dir(v.T, m0, m1, m2); + o.B = skinning_dir(v.B, m0, m1, m2); + o.tc = v.tc; // -16..+16 + return o; +} +v_model skinning_2(v_model_skinned_2 v) +{ + // matrices + int id_0 = v.tc.z; + float4 m0_0 = sbones_array[id_0 + 0]; + float4 m1_0 = sbones_array[id_0 + 1]; + float4 m2_0 = sbones_array[id_0 + 2]; + int id_1 = v.tc.w; + float4 m0_1 = sbones_array[id_1 + 0]; + float4 m1_1 = sbones_array[id_1 + 1]; + float4 m2_1 = sbones_array[id_1 + 2]; + + // lerp + float w = v.N.w; + float4 m0 = lerp(m0_0, m0_1, w); + float4 m1 = lerp(m1_0, m1_1, w); + float4 m2 = lerp(m2_0, m2_1, w); + + // skinning + v_model o; + o.P = skinning_pos(v.P, m0, m1, m2); + o.N = skinning_dir(v.N, m0, m1, m2); + o.T = skinning_dir(v.T, m0, m1, m2); + o.B = skinning_dir(v.B, m0, m1, m2); + o.tc = v.tc; // -16..+16 + return o; +} +v_model skinning_3(v_model_skinned_3 v) +{ + // matrices + int id_0 = v.tc.z; + float4 m0_0 = sbones_array[id_0 + 0]; + float4 m1_0 = sbones_array[id_0 + 1]; + float4 m2_0 = sbones_array[id_0 + 2]; + int id_1 = v.tc.w; + float4 m0_1 = sbones_array[id_1 + 0]; + float4 m1_1 = sbones_array[id_1 + 1]; + float4 m2_1 = sbones_array[id_1 + 2]; + int id_2 = v.B.w * 255 + 0.3; + float4 m0_2 = sbones_array[id_2 + 0]; + float4 m1_2 = sbones_array[id_2 + 1]; + float4 m2_2 = sbones_array[id_2 + 2]; + + // lerp + float w0 = v.N.w; + float w1 = v.T.w; + float w2 = 1 - w0 - w1; + float4 m0 = m0_0 * w0; + float4 m1 = m1_0 * w0; + float4 m2 = m2_0 * w0; + + m0 += m0_1 * w1; + m1 += m1_1 * w1; + m2 += m2_1 * w1; + + m0 += m0_2 * w2; + m1 += m1_2 * w2; + m2 += m2_2 * w2; + + // skinning + v_model o; + o.P = skinning_pos(v.P, m0, m1, m2); + o.N = skinning_dir(v.N, m0, m1, m2); + o.T = skinning_dir(v.T, m0, m1, m2); + o.B = skinning_dir(v.B, m0, m1, m2); + o.tc = v.tc; // -16..+16 +#ifdef SKIN_COLOR + o.rgb_tint = float3(2, 0, 0); + if (id_0 == id_1) + { + o.rgb_tint = float3(1, 2, 0); + } +#endif + return o; +} +v_model skinning_4(v_model_skinned_4 v) +{ + // matrices + float id[4]; + float4 m[4][3]; // [bone index][matrix row or column???] + for (int i = 0; i < 4; ++i) + { + id[i] = v.ind[i] * 255 + 0.3; + for (int j = 0; j < 3; ++j) + { + m[i][j] = sbones_array[id[i] + j]; + } + } + + // lerp + float w[4]; + w[0] = v.N.w; + w[1] = v.T.w; + w[2] = v.B.w; + w[3] = 1 - w[0] - w[1] - w[2]; + + float4 m0 = m[0][0] * w[0]; + float4 m1 = m[0][1] * w[0]; + float4 m2 = m[0][2] * w[0]; + + for (int i = 1; i < 4; ++i) + { + m0 += m[i][0] * w[i]; + m1 += m[i][1] * w[i]; + m2 += m[i][2] * w[i]; + } + + // skinning + v_model o; + o.P = skinning_pos(v.P, m0, m1, m2); + o.N = skinning_dir(v.N, m0, m1, m2); + o.T = skinning_dir(v.T, m0, m1, m2); + o.B = skinning_dir(v.B, m0, m1, m2); + o.tc = v.tc; // -16..+16 + + return o; +} + +#endif + diff --git a/gamedata/shaders/editor/skin_main.hlsli b/gamedata/shaders/editor/skin_main.hlsli new file mode 100644 index 0000000..4a10ddd --- /dev/null +++ b/gamedata/shaders/editor/skin_main.hlsli @@ -0,0 +1,100 @@ +#ifndef SKIN_MAIN_INCLUDED +#define SKIN_MAIN_INCLUDED + +////////////////////////////////////////////////////// +#ifdef SKIN_LQ + ////////////////////////////////////////////////////// + + #ifdef SKIN_NONE +SKIN_VF main(v_model v) +{ + return _main(v); +} + #endif + + #ifdef SKIN_0 +SKIN_VF main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} + #endif + + #ifdef SKIN_1 +SKIN_VF main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} + #endif + + #ifdef SKIN_2 +SKIN_VF main(v_model_skinned_2 v) +{ + return _main(skinning_2lq(v)); +} + #endif + + #ifdef SKIN_3 +SKIN_VF main(v_model_skinned_3 v) +{ + return _main(skinning_3lq(v)); +} + #endif + + #ifdef SKIN_4 +SKIN_VF main(v_model_skinned_4 v) +{ + return _main(skinning_4lq(v)); +} + #endif + +////////////////////////////////////////////////////// +#else // SKIN_LQ + ////////////////////////////////////////////////////// + + #ifdef SKIN_NONE +SKIN_VF main(v_model v) +{ + return _main(v); +} + #endif + + #ifdef SKIN_0 +SKIN_VF main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} + #endif + + #ifdef SKIN_1 +SKIN_VF main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} + #endif + + #ifdef SKIN_2 +SKIN_VF main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} + #endif + + #ifdef SKIN_3 +SKIN_VF main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} + #endif + + #ifdef SKIN_4 +SKIN_VF main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} + #endif + +////////////////////////////////////////////////////// +#endif // SKIN_LQ +////////////////////////////////////////////////////// + +#endif // SKIN_MAIN_INCLUDED diff --git a/gamedata/shaders/editor/sky.ps.hlsl b/gamedata/shaders/editor/sky.ps.hlsl new file mode 100644 index 0000000..c4c52f2 --- /dev/null +++ b/gamedata/shaders/editor/sky.ps.hlsl @@ -0,0 +1,22 @@ +#include "common.hlsli" + +struct v2p +{ + float4 factor : COLOR0; + float3 tc0 : TEXCOORD0; + float3 tc1 : TEXCOORD1; +}; + +uniform samplerCUBE s_sky0 : register(s0); +uniform samplerCUBE s_sky1 : register(s1); +uniform float3 color; + +// Pixel +float4 main(v2p I) : COLOR +{ + float3 s0 = texCUBE(s_sky0, I.tc0); + float3 s1 = texCUBE(s_sky1, I.tc1); + float3 sky = I.factor * lerp(s0, s1, I.factor.w); + + return float4(sky, 1); +} diff --git a/gamedata/shaders/editor/sky.vs.hlsl b/gamedata/shaders/editor/sky.vs.hlsl new file mode 100644 index 0000000..13b7c5a --- /dev/null +++ b/gamedata/shaders/editor/sky.vs.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" + +struct vi +{ + float4 p : POSITION; + float4 c : COLOR0; + float3 tc0 : TEXCOORD0; + float3 tc1 : TEXCOORD1; +}; + +struct vf +{ + float4 hpos : POSITION; + float4 c : COLOR0; + float3 tc0 : TEXCOORD0; + float3 tc1 : TEXCOORD1; +}; + +vf main(vi v) +{ + vf o; + + float4 tpos = mul(1000, v.p); + o.hpos = mul(m_WVP, tpos); // xform, input in world coords, 1000 - magic number + o.hpos.z = o.hpos.w; + o.c = v.c; // copy color + o.tc0 = v.tc0; // copy tc + o.tc1 = v.tc1; // copy tc + + return o; +} diff --git a/gamedata/shaders/editor/sky2.ps b/gamedata/shaders/editor/sky2.ps new file mode 100644 index 0000000..5877888 --- /dev/null +++ b/gamedata/shaders/editor/sky2.ps @@ -0,0 +1,23 @@ +#include "common.h" + +struct v2p +{ + float4 factor: COLOR0; + float3 tc0: TEXCOORD0; + float3 tc1: TEXCOORD1; +}; + +uniform samplerCUBE s_sky0 : register(s0); +uniform samplerCUBE s_sky1 : register(s1); +uniform float3 color; + +////////////////////////////////////////////////////////////////////////////////////////// +// Pixel +float4 main ( v2p I ) : COLOR +{ + float3 s0 = texCUBE(s_sky0,I.tc0); + float3 s1 = texCUBE(s_sky1,I.tc1); + float3 sky = I.factor*lerp(s0,s1,I.factor.w); + + return float4 (sky,1); +} diff --git a/gamedata/shaders/editor/sky2.vs b/gamedata/shaders/editor/sky2.vs new file mode 100644 index 0000000..7157752 --- /dev/null +++ b/gamedata/shaders/editor/sky2.vs @@ -0,0 +1,31 @@ +#include "common.h" + +struct vi +{ + float4 p : POSITION; + float4 c : COLOR0; + float3 tc0 : TEXCOORD0; + float3 tc1 : TEXCOORD1; +}; + +struct vf +{ + float4 hpos : POSITION; + float4 c : COLOR0; + float3 tc0 : TEXCOORD0; + float3 tc1 : TEXCOORD1; +}; + +vf main (vi v) +{ + vf o; + + float4 tpos = mul (1000, v.p); + o.hpos = mul (m_WVP, tpos); // xform, input in world coords, 1000 - magic number + o.hpos.z = o.hpos.w; + o.c = v.c; // copy color + o.tc0 = v.tc0; // copy tc + o.tc1 = v.tc1; // copy tc + + return o; +} diff --git a/gamedata/shaders/editor/sload.hlsli b/gamedata/shaders/editor/sload.hlsli new file mode 100644 index 0000000..3d5eb7c --- /dev/null +++ b/gamedata/shaders/editor/sload.hlsli @@ -0,0 +1,82 @@ +#ifndef SLOAD_H +#define SLOAD_H +#include "common.hlsli" + +static const float fParallaxStartFade = 8.0f; +static const float fParallaxStopFade = 12.0f; + +uniform sampler s_detailBumpX; +uniform sampler s_detailBump; + +uniform sampler s_bumpX; +uniform sampler s_bump; + +struct XrayMaterial +{ + float Metalness; + float Roughness; + + float3 Normal; + float3 Point; + + float4 Color; + float Hemi; + float Sun; + + float SSS; + float AO; +}; + +void SloadNew(inout p_bumped_new I, inout XrayMaterial M) +{ + M.Color = tex2D(s_base, I.tcdh.xy); + +#ifdef USE_BUMP + float4 Bump = tex2D(s_bump, I.tcdh.xy); + float4 BumpX = tex2D(s_bumpX, I.tcdh.xy); + + // #ifndef USE_PBR + M.Normal = Bump.wzy + BumpX.xyz - 1.0f; + M.Normal.z *= 0.5f; + + M.Roughness = Bump.x * Bump.x; + M.Metalness = 0.0f; + + M.SSS = 0.0; + M.AO = 1.0; +// #endif +#else + M.Normal = float3(0.0f, 0.0f, 1.0f); + + M.Roughness = 0.04f; + M.Metalness = 0.0f; + + M.SSS = 0.0f; + M.AO = 1.0f; +#endif + +#ifdef USE_TDETAIL + float2 tcdbump = I.tcdh.xy * dt_params.xy; + float4 Detail = tex2D(s_detail, tcdbump); + #ifndef USE_PBR + M.Color.xyz *= Detail.xyz * 2.0f; + + #ifdef USE_TDETAIL_BUMP + float4 DetailBump = tex2D(s_detailBump, tcdbump); + float4 DetailBumpX = tex2D(s_detailBumpX, tcdbump); + M.Normal += DetailBump.wzy + DetailBumpX.xyz - 1.0f; + M.Roughness *= DetailBump.x * 2.0f; + #else + M.Roughness *= Detail.w * 2.0f; + #endif + #endif +#endif + +#ifndef USE_PBR + M.Metalness = M.Roughness * 0.1f; + M.Roughness = saturate(1.0f - M.Roughness); +#endif +} + +#endif + diff --git a/gamedata/shaders/editor/water.ps.hlsl b/gamedata/shaders/editor/water.ps.hlsl new file mode 100644 index 0000000..e472f13 --- /dev/null +++ b/gamedata/shaders/editor/water.ps.hlsl @@ -0,0 +1,136 @@ +#include "common.hlsli" + +struct vf +{ + float2 tbase : TEXCOORD0; + float2 tnorm0 : TEXCOORD1; + float2 tnorm1 : TEXCOORD2; + float3 M1 : TEXCOORD3; + float3 M2 : TEXCOORD4; + float3 M3 : TEXCOORD5; + float3 v2point : TEXCOORD6; + float4 tctexgen : TEXCOORD7; + float3 pos : TEXCOORD8; + float4 c0 : COLOR0; +}; + +uniform float3 water_intensity; + +uniform sampler s_image; +uniform sampler s_nmap; +uniform sampler s_env0; +uniform sampler s_env1; +uniform sampler env_s0; +uniform sampler env_s1; +uniform sampler s_leaves; +uniform sampler s_caustic; +uniform float4 screen_res; + +float3 SpecularPhong(float3 Point, float3 Normal, float3 Light) +{ + float3 LightColor = max(0.0f, L_sun_color.xyz * 4.0f - 1.0f); + return LightColor * pow(dot(normalize(Point + Light), -Normal), 256.0); +} + +float GetBorderAtten(float2 tc, float2 att) +{ + att.x *= screen_res.y * screen_res.z; + float2 factors = saturate(min(1.0f - tc, tc) / att); + return factors.x * factors.y; +} + +float4 ScreenSpaceLocalReflections(float3 vreflect) //Initial beam length +{ + float3 refl_vec = mul((float3x3)m_V, vreflect); + float4 new_pos_proj = mul(m_P,float4(refl_vec,1));//переводим её в Ñкрин ÑÐ¿ÐµÐ¹Ñ + new_pos_proj.xy /= new_pos_proj.w; //нормализуем + new_pos_proj.xy = new_pos_proj.xy * float2(0.5h, -0.5h) + 0.5h; + + float2 reflPos = saturate(new_pos_proj); // We get the pixel position in Screen Space of the reflected geometry + + float canrefl = smoothstep(0.0f, 0.05f, refl_vec.z); + float borderAtten = GetBorderAtten(reflPos, 0.125f); // Grease the edges of the reflections for a smoother transition + + float3 color = tex2D(s_image, reflPos); + return float4(color, borderAtten * canrefl); +} + +// Pixel +float4 main(vf I) : COLOR +{ + float4 base = tex2D(s_base, I.tbase); + + float3 n0 = tex2D(s_nmap, I.tnorm0); + float3 n1 = tex2D(s_nmap, I.tnorm1); + float3 Navg = n0 + n1 - 1.0f; + + float3 Nw = normalize(mul(float3x3(I.M1, I.M2, I.M3), Navg).xyz); + + float3 v2point = normalize(I.v2point); + float3 vreflect = reflect(v2point, Nw); + + float fresnel = saturate(dot(vreflect, v2point)); + + float power = pow(fresnel, 5.0f); + float amount = 0.25f + 0.25f * power; + + float3 reflection = vreflect; + + float2 rotation = 0.0f; + sincos(L_sky_color.w, rotation.x, rotation.y); + vreflect.xz = float2(vreflect.x * rotation.y - vreflect.z * rotation.x, vreflect.x * rotation.x + vreflect.z * rotation.y); + + // true remapping. Slow. + float3 vreflectabs = abs(vreflect); + float vreflectmax = max(vreflectabs.x, max(vreflectabs.y, vreflectabs.z)); + + vreflect /= vreflectmax; + vreflect.y = vreflect.y * 2.0f - 1.0f; + + if(is_lighting_enable.x < 0.5f) { + float3 env = texCUBE(s_env, vreflect) * amount * 0.8f; + + env = lerp(env.xyz, base.xyz, base.w); + return float4(env, 0.8f + 0.2f * base.w); + } + + float3 envd0 = texCUBE(env_s0, Nw); + float3 envd1 = texCUBE(env_s1, Nw); + + float3 envd = lerp(envd0, envd1, L_ambient.w) * L_hemi_color.xyz; + float3 color = I.c0.xyz + envd * envd * I.c0.w; + base.xyz *= color; + + float3 env0 = texCUBE(s_env0, vreflect); + float3 env1 = texCUBE(s_env1, vreflect); + + float3 env = lerp(env0, env1, L_ambient.w) * L_sky_color.xyz; + + float4 sslr = ScreenSpaceLocalReflections(reflection); + env = lerp(env, sslr.xyz, sslr.w); + + float3 final = lerp(env * amount * 0.8f, base.xyz, base.w); + + float alpha = 0.25f + 0.65f * power; + alpha = lerp(alpha, 1.0f, base.w); + float waterDepth = 0.75f; + + // water fog + float3 Fc = 0.1f * water_intensity.xxx * color; + final = lerp(Fc, final, alpha); + + alpha = min(alpha, saturate(waterDepth)); + alpha = max(1.0f - exp(-4.0f * waterDepth), alpha); + + float4 Light = float4(L_sun_color.xyz * 0.66f, 1.0f); + Light *= 1.0f - base.w; + + float2 CausticTexcoord = I.pos.xz * 0.45f + v2point.xz / (0.0001f + abs(v2point.y)) * 0.3f; + float3 Caustic = tex2D(s_caustic, CausticTexcoord).yyy; + + final += SpecularPhong(v2point, Nw, L_sun_dir_w.xyz) * Light.w; + final += Caustic * Light.xyz * 0.25f; + + return lerp(float4(final, alpha), fog_color, calc_fogging(I.pos)); +} + diff --git a/gamedata/shaders/editor/water.vs.hlsl b/gamedata/shaders/editor/water.vs.hlsl new file mode 100644 index 0000000..8af7811 --- /dev/null +++ b/gamedata/shaders/editor/water.vs.hlsl @@ -0,0 +1,83 @@ +#include "common.hlsli" +#include "shared\waterconfig.hlsli" +#include "shared\watermove.hlsli" + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float3 N : NORMAL; + float4 C : COLOR0; +}; + +struct vf +{ + float2 tbase : TEXCOORD0; // base + float2 tnorm0 : TEXCOORD1; // nm0 + float2 tnorm1 : TEXCOORD2; // nm1 + float3 M1 : TEXCOORD3; + float3 M2 : TEXCOORD4; + float3 M3 : TEXCOORD5; + float3 v2point : TEXCOORD6; + float4 tctexgen : TEXCOORD7; + float3 pos : TEXCOORD8; + float4 c0 : COLOR0; + float4 hpos : POSITION; +}; + +uniform float4x4 m_texgen; +void main(in vv v, out vf o) +{ + // v.N = unpack_normal(v.N.xyz); + + // world + float4 P = float4(mul(m_W, v.P), 1.0f); + P = watermove(P); + + o.pos = P.xyz; + o.v2point = P - eye_position; + + o.tbase = P.xz * 0.3; // unpack_tc_base(v.uv, v.T.w, v.B.w); + o.tnorm0 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_0, P.xz, W_DISTORT_AMP_0); + o.tnorm1 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_1, P.xz, W_DISTORT_AMP_1); + + // Calculate the 3x3 transform from tangent space to eye-space + // TangentToEyeSpace = object2eye * tangent2object + // = object2eye * transpose(object2tangent) (since the inverse of a rotation is its transpose) + + float3 N = normalize(v.N); + + float3 T = float3(-1.0f, 0.0f, 0.0f); + T = normalize(T - dot(T, N) * N); + + float3 B = cross(N, T); + + float3x3 xform = mul((float3x3)m_W, float3x3( + T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z)); + + // The pixel shader operates on the bump-map in [0..1] range + // Remap this range in the matrix, anyway we are pixel-shader limited :) + // ...... [ 2 0 0 0] + // ...... [ 0 2 0 0] + // ...... [ 0 0 2 0] + // ...... [-1 -1 -1 1] + // issue: strange, but it's slower :( + // issue: interpolators? dp4? VS limited? black magic? + + // Feed this transform to pixel shader + o.M1 = xform[0]; + o.M2 = xform[1]; + o.M3 = xform[2]; + + // xform, input in world coords + o.hpos = mul(m_VP, P); + + o.c0 = v.C; + + // Igor: for additional depth dest + o.tctexgen = mul(m_texgen, P); + o.tctexgen.z = mul(m_V, P).z; +} + diff --git a/gamedata/shaders/editor/yuv2rgb.ps.hlsl b/gamedata/shaders/editor/yuv2rgb.ps.hlsl new file mode 100644 index 0000000..0016caa --- /dev/null +++ b/gamedata/shaders/editor/yuv2rgb.ps.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +float4 main(float2 uv : TEXCOORD0) : COLOR +{ + float3 YUV = tex2D(s_base, uv); + + float Y = YUV.x; + float U = YUV.y; + float V = YUV.z; + + /* + float _T = 1.16406f*Y; + float R1 = _T + 1.59765f*V - 0.86961f; + float G1 = _T - 0.390625f*U - 0.8125f*V + 0.53076f; + float B1 = _T + 2.01562f*U - 1.0786f; + */ + + float c = 1.16406f; + float3 _Y = float3(c, c, c) * Y; + float3 _U = float3(0, -0.390625f, +2.01562f) * U; + float3 _V = float3(+1.59765f, -0.8125f, 0) * V; + float3 _S = float3(-0.86961f, +0.53076f, -1.0786f); + + return float4(_Y + _U + _V + _S, 1); +} diff --git a/gamedata/shaders/r1/.lua b/gamedata/shaders/r1/.lua new file mode 100644 index 0000000..751b1ce --- /dev/null +++ b/gamedata/shaders/r1/.lua @@ -0,0 +1,39 @@ +function printf(fmt, ...) + log(string.format(fmt, unpack(arg))) +end + +t_point_att = "internal\\internal_light_attpoint" +t_rt = "$user$rendertarget" +t_distort = "$user$distort" +t_noise = "fx\\fx_noise2" + +function r1_lspot(shader, t_base, vs, aref) + shader:begin(vs, "add_spot") + :fog(false) + :zb(true, false) + :blend(true, blend.one, blend.one) + :aref(true, aref or 0) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_lmap"):texture("internal\\internal_light_att") + :clamp() + :f_linear() + :project(true) + shader:sampler("s_att"):texture("internal\\internal_light_attclip") + :clamp() + :f_linear() +end + +function r1_lpoint(shader, t_base, vs, aref) + shader:begin(vs, "add_point") + :fog(false) + :zb(true, false) + :blend(true, blend.one, blend.one) + :aref(true, aref or 0) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_lmap"):texture(t_point_att) + :clamp() + :f_linear() + shader:sampler("s_att"):texture(t_point_att) + :clamp() + :f_linear() +end diff --git a/gamedata/shaders/r1/add_point.ps.hlsl b/gamedata/shaders/r1/add_point.ps.hlsl new file mode 100644 index 0000000..47326a3 --- /dev/null +++ b/gamedata/shaders/r1/add_point.ps.hlsl @@ -0,0 +1,18 @@ +#include "common.hlsli" + +// Pixel +float4 main(vf_point I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_att1 = tex2D(s_lmap, I.tc1); // point-att + float4 t_att2 = tex2D(s_att, I.tc2); // point-att + float4 t_att = t_att1 * t_att2; + + float4 final_color = t_base * t_att * I.color; + final_color.rgb *= t_base.a; + float3 final_rgb = (final_color + final_color) * 2.0f; + float final_a = final_color.w; + + // out + return final_color * 2.0f; // float4 (final_rgb,final_a); +} diff --git a/gamedata/shaders/r1/add_ppa.ps.hlsl b/gamedata/shaders/r1/add_ppa.ps.hlsl new file mode 100644 index 0000000..726e4f9 --- /dev/null +++ b/gamedata/shaders/r1/add_ppa.ps.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // base +}; + +uniform sampler2D s_base0; +uniform sampler2D s_base1; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_0 = tex2D(s_base0, I.tc0); + float4 t_1 = tex2D(s_base1, I.tc1); + + // out + return t_0 * t_1 * L_dynamic_color; +} diff --git a/gamedata/shaders/r1/add_spot.ps.hlsl b/gamedata/shaders/r1/add_spot.ps.hlsl new file mode 100644 index 0000000..317ce1c --- /dev/null +++ b/gamedata/shaders/r1/add_spot.ps.hlsl @@ -0,0 +1,17 @@ +#include "common.hlsli" + +// Pixel +float4 main(vf_spot I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_lmap = tex2Dproj(s_lmap, I.tc1); // spot-projector + float4 t_att = tex2D(s_att, I.tc2); // spot-att + + float4 final_color = t_base * t_lmap * t_att * I.color; + final_color.rgb *= t_base.a; + float3 final_rgb = (final_color + final_color) * 2.0f; + float final_a = final_color.w; + + // out + return final_color * 2; // float4 (final_rgb,final_a); +} diff --git a/gamedata/shaders/r1/avg2.ps.hlsl b/gamedata/shaders/r1/avg2.ps.hlsl new file mode 100644 index 0000000..a1c67f8 --- /dev/null +++ b/gamedata/shaders/r1/avg2.ps.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // base +}; + +uniform sampler2D s_base0; +uniform sampler2D s_base1; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_0 = tex2D(s_base0, I.tc0); + float4 t_1 = tex2D(s_base1, I.tc1); + + // out + return (t_0 + t_1) * .5; +} diff --git a/gamedata/shaders/r1/avg4.ps.hlsl b/gamedata/shaders/r1/avg4.ps.hlsl new file mode 100644 index 0000000..507ca01 --- /dev/null +++ b/gamedata/shaders/r1/avg4.ps.hlsl @@ -0,0 +1,26 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // base + float2 tc2 : TEXCOORD2; // base + float2 tc3 : TEXCOORD3; // base +}; + +uniform sampler2D s_base0; +uniform sampler2D s_base1; +uniform sampler2D s_base2; +uniform sampler2D s_base3; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_0 = tex2D(s_base0, I.tc0); + float4 t_1 = tex2D(s_base1, I.tc1); + float4 t_2 = tex2D(s_base2, I.tc2); + float4 t_3 = tex2D(s_base3, I.tc3); + + // out + return ((t_0 + t_1) * .5 + (t_2 + t_3) * .5) * .5; +} diff --git a/gamedata/shaders/r1/base_laser.ps.hlsl b/gamedata/shaders/r1/base_laser.ps.hlsl new file mode 100644 index 0000000..5bbecdb --- /dev/null +++ b/gamedata/shaders/r1/base_laser.ps.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float2 tc1: TEXCOORD1; // lmap + float4 c0: COLOR0; // sun +}; + +////////////////////////////////////////////////////////////////////////////////////////// +// Pixel +float4 main ( v2p I ) : COLOR +{ + float4 t_base = tex2D (s_base,I.tc0); + + // out + return float4 (t_base.r,t_base.g,t_base.b,t_base.a * I.c0.a); + + +} diff --git a/gamedata/shaders/r1/base_lplanes.ps.hlsl b/gamedata/shaders/r1/base_lplanes.ps.hlsl new file mode 100644 index 0000000..26d3f22 --- /dev/null +++ b/gamedata/shaders/r1/base_lplanes.ps.hlsl @@ -0,0 +1,17 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // lmap + float4 c0 : COLOR0; // sun +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + + // out + return float4(t_base.r, t_base.g, t_base.b, t_base.a * I.c0.a); +} diff --git a/gamedata/shaders/r1/base_lplanes.vs.hlsl b/gamedata/shaders/r1/base_lplanes.vs.hlsl new file mode 100644 index 0000000..59e1225 --- /dev/null +++ b/gamedata/shaders/r1/base_lplanes.vs.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color +}; + +vf main(v_vert v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base (v.tc); // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul(m_WV, unpack_normal(v.N))); + float fade = abs(dot(dir_v, norm_v)); + o.c0 = fade; + + return o; +} diff --git a/gamedata/shaders/r1/base_lplanes_fft.ps.hlsl b/gamedata/shaders/r1/base_lplanes_fft.ps.hlsl new file mode 100644 index 0000000..461f592 --- /dev/null +++ b/gamedata/shaders/r1/base_lplanes_fft.ps.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float2 tc1: TEXCOORD1; // lmap + float4 c0: COLOR0; // sun +}; + +inline bool isCollimatorActive() +{ + return (m_hud_params.w == 1.0f); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base,I.tc0); + + // out + + if(isCollimatorActive()) + { + return float4(t_base.r,t_base.g,t_base.b,t_base.a * I.c0.a); + } + else + { + return float4(t_base.r,t_base.g,t_base.b,t_base.a * 0.0f); + } +} diff --git a/gamedata/shaders/r1/blur2.lua b/gamedata/shaders/r1/blur2.lua new file mode 100644 index 0000000..8aa1756 --- /dev/null +++ b/gamedata/shaders/r1/blur2.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "avg2") + :fog(false) + :zb(false, false) + shader:sampler("s_base0"):texture(t_base):clamp():f_linear() + shader:sampler("s_base1"):texture(t_base):clamp():f_linear() +end diff --git a/gamedata/shaders/r1/blur4.lua b/gamedata/shaders/r1/blur4.lua new file mode 100644 index 0000000..7b6d201 --- /dev/null +++ b/gamedata/shaders/r1/blur4.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "avg4") + :fog(false) + :zb(false, false) + shader:sampler("s_base0"):texture(t_base):clamp():f_linear() + shader:sampler("s_base1"):texture(t_base):clamp():f_linear() + shader:sampler("s_base2"):texture(t_base):clamp():f_linear() + shader:sampler("s_base3"):texture(t_base):clamp():f_linear() +end diff --git a/gamedata/shaders/r1/clouds.lua b/gamedata/shaders/r1/clouds.lua new file mode 100644 index 0000000..88b3006 --- /dev/null +++ b/gamedata/shaders/r1/clouds.lua @@ -0,0 +1,10 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("clouds", "clouds") + :fog(false) + :zb(true, false) + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_clouds0"):texture("null"):wrap():f_anisotropic() + shader:sampler("s_clouds1"):texture("null"):wrap():f_anisotropic() + shader:sampler("s_tonemap"):texture("$user$tonemap") +end diff --git a/gamedata/shaders/r1/clouds.ps.hlsl b/gamedata/shaders/r1/clouds.ps.hlsl new file mode 100644 index 0000000..7de5c17 --- /dev/null +++ b/gamedata/shaders/r1/clouds.ps.hlsl @@ -0,0 +1,21 @@ +#include "common.hlsli" + +struct v2p +{ + float4 color : COLOR0; // rgb. intensity + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; +}; + +uniform sampler2D s_clouds0 : register(s0); +uniform sampler2D s_clouds1 : register(s1); + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 s0 = tex2D(s_clouds0, I.tc0); + float4 s1 = tex2D(s_clouds1, I.tc1); + float4 mix = I.color * (s0 + s1); + + return float4(mix.rgb, mix.a); +} diff --git a/gamedata/shaders/r1/clouds.vs.hlsl b/gamedata/shaders/r1/clouds.vs.hlsl new file mode 100644 index 0000000..8b1a396 --- /dev/null +++ b/gamedata/shaders/r1/clouds.vs.hlsl @@ -0,0 +1,37 @@ +#include "common.hlsli" +#include "shared\cloudconfig.hlsli" + +struct vi +{ + float4 p : POSITION; + float4 dir : COLOR0; // dir0,dir1(w<->z) + float4 color : COLOR1; // rgb. intensity +}; + +struct vf +{ + float4 hpos : POSITION; + float4 color : COLOR0; // rgb. intensity + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; +}; + +vf main(vi v) +{ + vf o; + + o.hpos = mul(m_WVP, v.p); // xform, input in world coords + o.color = v.color; // copy color + + o.color.w *= pow(v.p.y, 25); + + // if (length(float3(v.p.x,0,v.p.z))>CLOUD_FADE) o.color.w = 0 ; + + // generate tcs + float2 d0 = v.dir.xy * 2 - 1; + float2 d1 = v.dir.wz * 2 - 1; + o.tc0 = v.p.xz * CLOUD_TILE0 + d0 * timers.z * CLOUD_SPEED0; + o.tc1 = v.p.xz * CLOUD_TILE1 + d1 * timers.z * CLOUD_SPEED1; + + return o; +} diff --git a/gamedata/shaders/r1/common.hlsli b/gamedata/shaders/r1/common.hlsli new file mode 100644 index 0000000..2d26ae7 --- /dev/null +++ b/gamedata/shaders/r1/common.hlsli @@ -0,0 +1,160 @@ +#ifndef COMMON_H +#define COMMON_H + +#include "shared\common.hlsli" + +uniform float4 L_dynamic_props; // per object, xyz=sun,w=hemi +uniform float4 L_dynamic_color; // dynamic light color (rgb1) - spot/point +uniform float4 L_dynamic_pos; // dynamic light pos+1/range(w) - spot/point +uniform float4x4 L_dynamic_xform; + +uniform float4x4 m_plmap_xform; +uniform float4 m_plmap_clamp[2]; // 0.w = factor + +float calc_fogging(float4 w_pos) +{ + return saturate(dot(w_pos, fog_plane)); +} +float2 calc_detail(float3 w_pos) +{ + float dtl = distance(w_pos, eye_position) * dt_params.w; + dtl = min(dtl * dtl, 1.0f); + float dt_mul = 1.0f - dtl; // dt* [1 .. 0 ] + float dt_add = 0.5f * dtl; // dt+ [0 .. 0.5] + return float2(dt_mul, dt_add); +} +float3 calc_reflection(float3 pos_w, float3 norm_w) +{ + return reflect(normalize(pos_w - eye_position), norm_w); +} +float4 calc_spot(out float4 tc_lmap, out float2 tc_att, float4 w_pos, float3 w_norm) +{ + float4 s_pos = mul(L_dynamic_xform, w_pos); + tc_lmap = s_pos.xyww; // projected in ps/ttf + tc_att = s_pos.z; // z=distance * (1/range) + float3 L_dir_n = normalize(w_pos - L_dynamic_pos.xyz); + float L_scale = dot(w_norm, -L_dir_n); + return L_dynamic_color * L_scale * saturate(calc_fogging(w_pos)); +} +float4 calc_point(out float2 tc_att0, out float2 tc_att1, float4 w_pos, float3 w_norm) +{ + float3 L_dir_n = normalize(w_pos - L_dynamic_pos.xyz); + float L_scale = dot(w_norm, -L_dir_n); + float3 L_tc = (w_pos - L_dynamic_pos.xyz) * L_dynamic_pos.w + .5f; // tc coords + tc_att0 = L_tc.xz; + tc_att1 = L_tc.xy; + return L_dynamic_color * L_scale * saturate(calc_fogging(w_pos)); +} +float3 calc_sun(float3 norm_w) +{ + return L_sun_color * max(dot((norm_w), -L_sun_dir_w), 0); +} +float3 calc_model_hemi(float3 norm_w) +{ + return (norm_w.y * 0.5 + 0.5) * L_dynamic_props.w * L_hemi_color; +} +float3 calc_model_lq_lighting(float3 norm_w) +{ + return calc_model_hemi(norm_w) + L_ambient + L_dynamic_props.xyz * calc_sun(norm_w); +} +float3 _calc_model_hemi(float3 norm_w) +{ + return max(0, norm_w.y) * .2 * L_hemi_color; +} +float3 _calc_model_lq_lighting(float3 norm_w) +{ + return calc_model_hemi(norm_w) + L_ambient + .5 * calc_sun(norm_w); +} +float4 calc_model_lmap(float3 pos_w) +{ + float3 pos_wc = clamp(pos_w, m_plmap_clamp[0], m_plmap_clamp[1]); // clamp to BBox + float4 pos_w4c = float4(pos_wc, 1); + float4 plmap = mul(m_plmap_xform, pos_w4c); // calc plmap tc + return plmap.xyww; +} + +struct v_lmap +{ + float4 P : POSITION; // (float,float,float,1) + float4 N : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; + float4 B : BINORMAL; + float2 uv0 : TEXCOORD0; // (base) + float2 uv1 : TEXCOORD1; // (lmap/compressed) +}; +struct v_vert +{ + float4 P : POSITION; // (float,float,float,1) + float4 N : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; + float4 B : BINORMAL; + float4 color : COLOR0; // (r,g,b,dir-occlusion) + float2 uv : TEXCOORD0; // (u0,v0) +}; +struct v_model +{ + float4 pos : POSITION; // (float,float,float,1) + float3 norm : NORMAL; // (nx,ny,nz) + float3 T : TANGENT; // (nx,ny,nz) + float3 B : BINORMAL; // (nx,ny,nz) + float2 tc : TEXCOORD0; // (u,v) +#ifdef SKIN_COLOR + float3 rgb_tint; +#endif +}; +struct v_detail +{ + float4 pos : POSITION; // (float,float,float,1) + int4 misc : TEXCOORD0; // (u(Q),v(Q),frac,matrix-id) +}; +struct vf_spot +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 tc1 : TEXCOORD1; // lmap, projected + float2 tc2 : TEXCOORD2; // att + clipper + float4 color : COLOR0; +}; +struct vf_point +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // att1 + clipper + float2 tc2 : TEXCOORD2; // att2 + clipper + float4 color : COLOR0; +}; + +uniform sampler2D s_base; +uniform samplerCUBE s_env; +uniform sampler2D s_lmap; +uniform sampler2D s_hemi; +uniform sampler2D s_att; +uniform sampler2D s_detail; + +#define def_distort float(0.05f) // we get -0.5 .. 0.5 range, this is -512 .. 512 for 1024, so scale it + +float3 v_hemi(float3 n) +{ + return L_hemi_color /* *(.5f + .5f*n.y) */; +} +float3 v_hemi_wrap(float3 n, float w) +{ + return L_hemi_color /* *(w + (1-w)*n.y) */; +} +float3 v_sun(float3 n) +{ + return L_sun_color * max(0, dot(n, -L_sun_dir_w)); +} +float3 v_sun_wrap(float3 n, float w) +{ + return L_sun_color * (w + (1 - w) * dot(n, -L_sun_dir_w)); +} +float3 p_hemi(float2 tc) +{ + // float3 t_lmh = tex2D (s_hemi, tc); + // return dot (t_lmh,1.h/3.h); + float4 t_lmh = tex2D(s_hemi, tc); + return t_lmh.a; +} + +#endif // COMMON_H diff --git a/gamedata/shaders/r1/detail.ps.hlsl b/gamedata/shaders/r1/detail.ps.hlsl new file mode 100644 index 0000000..8d18c6c --- /dev/null +++ b/gamedata/shaders/r1/detail.ps.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float3 c0 : COLOR0; + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float3 final = t_base * I.c0 * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + + // out + return float4(final, t_base.a); +} diff --git a/gamedata/shaders/r1/detail_still.vs.hlsl b/gamedata/shaders/r1/detail_still.vs.hlsl new file mode 100644 index 0000000..3559b89 --- /dev/null +++ b/gamedata/shaders/r1/detail_still.vs.hlsl @@ -0,0 +1,68 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float4 C : COLOR0; + float2 tc : TEXCOORD0; + float fog : FOG; +}; + +uniform float4 consts; // {1/quant,1/quant,diffusescale,ambient} + +uniform float2x4 array[50] : register(c10); + +float3x3 setMatrix (float3 hpb) +{ + + float _ch, _cp, _cb, _sh, _sp, _sb, _cc, _cs, _sc, _ss; + + sincos(hpb.x, _sh, _ch); + sincos(hpb.y, _sp, _cp); + sincos(hpb.z, _sb, _cb); + + _cc = _ch*_cb; _cs = _ch*_sb; _sc = _sh*_cb; _ss = _sh*_sb; + + return float3x3(_cc-_sp*_ss, _sp*_sc+_cs, -_cp*_sh, + -_cp*_sb, _cp*_cb, _sp, + _sp*_cs+_sc, _ss-_sp*_cc, _cp*_ch); +}; + +vf main(v_detail v) +{ + vf o; + + // index + int i = v.misc.w; + float2x4 mm = array[i]; + + float3x3 mmhpb = setMatrix(mm[0].xyz); + float3 posi = float3(mm[1].xyz); + + float scale = mm[0].w; + + float hemi = abs(mm[1].w); + float sun = sign(mm[1].w)*0.25f+0.25f; + + float4 m0 = float4(mmhpb[0]*scale, posi.x); + float4 m1 = float4(mmhpb[1]*scale, posi.y); + float4 m2 = float4(mmhpb[2]*scale, posi.z); + float4 c0 = float4(L_ambient.rgb+L_hemi_color.rgb*hemi+L_sun_color.rgb*sun, 1.0f); + + // Transform to world coords + float4 pos; + pos.x = dot(m0, v.pos); + pos.y = dot(m1, v.pos); + pos.z = dot(m2, v.pos); + pos.w = 1; + + // Calc fog + o.fog = calc_fogging(pos); + + // Final out + o.hpos = mul(m_WVP, pos); + o.C = c0; + o.tc.xy = (v.misc * consts).xy; + + return o; +} diff --git a/gamedata/shaders/r1/detail_wave.vs.hlsl b/gamedata/shaders/r1/detail_wave.vs.hlsl new file mode 100644 index 0000000..4ac25ee --- /dev/null +++ b/gamedata/shaders/r1/detail_wave.vs.hlsl @@ -0,0 +1,82 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float4 C : COLOR0; + float2 tc : TEXCOORD0; + float fog : FOG; +}; + +uniform float4 consts; // {1/quant,1/quant,diffusescale,ambient} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 dir2D; + +uniform float2x4 array[50] : register(c10); + +float3x3 setMatrix (float3 hpb) +{ + + float _ch, _cp, _cb, _sh, _sp, _sb, _cc, _cs, _sc, _ss; + + sincos(hpb.x, _sh, _ch); + sincos(hpb.y, _sp, _cp); + sincos(hpb.z, _sb, _cb); + + _cc = _ch*_cb; _cs = _ch*_sb; _sc = _sh*_cb; _ss = _sh*_sb; + + return float3x3(_cc-_sp*_ss, _sp*_sc+_cs, -_cp*_sh, + -_cp*_sb, _cp*_cb, _sp, + _sp*_cs+_sc, _ss-_sp*_cc, _cp*_ch); +}; + +vf main(v_detail v) +{ + vf o; + + // index + int i = v.misc.w; + float2x4 mm = array[i]; + + float3x3 mmhpb = setMatrix(mm[0].xyz); + float3 posi = float3(mm[1].xyz); + + float scale = mm[0].w; + + float hemi = abs(mm[1].w); + float sun = sign(mm[1].w)*0.25f+0.25f; + + float4 m0 = float4(mmhpb[0]*scale, posi.x); + float4 m1 = float4(mmhpb[1]*scale, posi.y); + float4 m2 = float4(mmhpb[2]*scale, posi.z); + float4 c0 = float4(L_ambient.rgb+L_hemi_color.rgb*hemi+L_sun_color.rgb*sun, 1.0f); + + // Transform to world coords + float4 pos; + pos.x = dot(m0, v.pos); + pos.y = dot(m1, v.pos); + pos.z = dot(m2, v.pos); + pos.w = 1; + + // + float base = m1.w; + float dp = calc_cyclic(dot(pos, wave)); + float H = v.pos.y * length(m1.xyz); + float fractional = v.misc.z * consts.x; // fractional + float inten = H * dp; + float2 result = calc_xz_wave(dir2D.xz * inten, fractional); + pos = float4(pos.x + result.x, pos.y, pos.z + result.y, 1); + o.hpos = mul(m_WVP, pos); + + // Calc fog + o.fog = calc_fogging(pos); + + // Fake lighting + float dpc = max(0.f, dp); + o.C = c0 * (consts.w + consts.z * dpc * fractional); + + // final xform, color, tc + o.tc.xy = (v.misc * consts).xy; + + return o; +} diff --git a/gamedata/shaders/r1/details_lod.lua b/gamedata/shaders/r1/details_lod.lua new file mode 100644 index 0000000..5344f3c --- /dev/null +++ b/gamedata/shaders/r1/details_lod.lua @@ -0,0 +1,23 @@ +function l_special(shader, t_base, t_second, t_detail) + shader:begin("lod", "lod") + :blend(false, blend.one, blend.zero) + :aref(true, 200) + :zb(true, true) + :fog(true) + shader:sampler("s_base0"):texture(t_base) + shader:sampler("s_base1"):texture(t_base) + shader:sampler("s_hemi0"):texture(t_base .. "_nm") + shader:sampler("s_hemi1"):texture(t_base .. "_nm") +end + +function normal(shader, t_base, t_second, t_detail) + shader:begin("lod", "lod") + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 8) + :zb(true, false) + :fog(true) + shader:sampler("s_base0"):texture(t_base) + shader:sampler("s_base1"):texture(t_base) + shader:sampler("s_hemi0"):texture(t_base .. "_nm") + shader:sampler("s_hemi1"):texture(t_base .. "_nm") +end diff --git a/gamedata/shaders/r1/editor.vs.hlsl b/gamedata/shaders/r1/editor.vs.hlsl new file mode 100644 index 0000000..d8639fe --- /dev/null +++ b/gamedata/shaders/r1/editor.vs.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct vf +{ + float4 P : POSITION; + float4 C : COLOR0; +}; + +uniform float4 tfactor; + +vf main(vf i) +{ + vf o; + + o.P = mul(m_WVP, i.P); // xform, input in world coords + o.C = tfactor * i.C; + + return o; +} diff --git a/gamedata/shaders/r1/effects_lightplanes.lua b/gamedata/shaders/r1/effects_lightplanes.lua new file mode 100644 index 0000000..b885de8 --- /dev/null +++ b/gamedata/shaders/r1/effects_lightplanes.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("base_lplanes", "base_lplanes") + :fog(false) + :zb(true, false) + :blend(true, blend.srcalpha, blend.one) + :aref(true, 0) + :sorting(2, false) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r1/effects_wallmarkblend.lua b/gamedata/shaders/r1/effects_wallmarkblend.lua new file mode 100644 index 0000000..6739e4c --- /dev/null +++ b/gamedata/shaders/r1/effects_wallmarkblend.lua @@ -0,0 +1,19 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("wmark", "wmark") + :sorting(2, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "wmark_spot") + shader:sorting(2, false) +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "wmark_point") + shader:sorting(2, false) +end diff --git a/gamedata/shaders/r1/effects_wallmarkmult.lua b/gamedata/shaders/r1/effects_wallmarkmult.lua new file mode 100644 index 0000000..d2eb950 --- /dev/null +++ b/gamedata/shaders/r1/effects_wallmarkmult.lua @@ -0,0 +1,18 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("wmark", "wmarkmult") + :sorting(2, false) + :blend(true, blend.destcolor, blend.srccolor) + :aref(false, 0) + :zb(true, true) + :fog(true) + :wmark(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "wmark_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "wmark_point") +end diff --git a/gamedata/shaders/r1/effects_wallmarkset.lua b/gamedata/shaders/r1/effects_wallmarkset.lua new file mode 100644 index 0000000..7c352bd --- /dev/null +++ b/gamedata/shaders/r1/effects_wallmarkset.lua @@ -0,0 +1,16 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("wmark", "wmark") + :sorting(1, false) + :aref(false, 0) + :zb(true, true) + :fog(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "wmark_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "wmark_point") +end diff --git a/gamedata/shaders/r1/effects_water.lua b/gamedata/shaders/r1/effects_water.lua new file mode 100644 index 0000000..8ba0e8a --- /dev/null +++ b/gamedata/shaders/r1/effects_water.lua @@ -0,0 +1,27 @@ +local tex_base = "water\\water_water" +local tex_nmap = "water\\water_normal" +local tex_dist = "water\\water_dudv" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("water", "water") + :sorting(2, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :distort(true) + :fog(false) + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_nmap"):texture(tex_nmap) + shader:sampler("s_env0"):texture("$user$sky0"):clamp() + shader:sampler("s_env1"):texture("$user$sky1"):clamp() +end + +--function l_special(shader, t_base, t_second, t_detail) +-- shader:begin ("waterd","waterd") +-- : sorting (2, true) +-- : blend (true,blend.srcalpha,blend.invsrcalpha) +-- : zb (true,false) +-- : fog (false) +-- : distort (true) +-- shader:sampler ("s_base") :texture (tex_base) +-- shader:sampler ("s_distort") :texture (tex_dist) +--end diff --git a/gamedata/shaders/r1/effects_waterryaska.lua b/gamedata/shaders/r1/effects_waterryaska.lua new file mode 100644 index 0000000..46baa69 --- /dev/null +++ b/gamedata/shaders/r1/effects_waterryaska.lua @@ -0,0 +1,28 @@ +local tex_base = "water\\water_ryaska1" +local tex_env = "sky\\sky_5_cube" +local tex_dist = "water\\water_dudv" +local tex_dist2 = "water\\water_dudv" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("water", "water") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :distort(true) + :fog(true) + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_env"):texture(tex_env):clamp() +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("waterd", "waterd") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_distort0"):texture(tex_dist) + shader:sampler("s_distort1"):texture(tex_dist2) +end diff --git a/gamedata/shaders/r1/effects_waterstuden.lua b/gamedata/shaders/r1/effects_waterstuden.lua new file mode 100644 index 0000000..fe1c71a --- /dev/null +++ b/gamedata/shaders/r1/effects_waterstuden.lua @@ -0,0 +1,28 @@ +local tex_base = "water\\water_studen" +local tex_env = "sky\\sky_5_cube" +local tex_dist = "water\\water_dudv" +local tex_dist2 = "water\\water_dudv" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("water", "water") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :distort(true) + :fog(true) + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_env"):texture(tex_env):clamp() +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("waterd", "waterd") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_distort0"):texture(tex_dist) + shader:sampler("s_distort1"):texture(tex_dist2) +end diff --git a/gamedata/shaders/r1/font2.ps.hlsl b/gamedata/shaders/r1/font2.ps.hlsl new file mode 100644 index 0000000..7892ebe --- /dev/null +++ b/gamedata/shaders/r1/font2.ps.hlsl @@ -0,0 +1,18 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 r = tex2D(s_base, I.tc0); + // r.x = 1 - r.x; + // r.y = 1 - r.y; + // r.z = 1 - r.z; + r.w = 1 - r.w; + return r; + // return /*(float4(1,1,1,1) - */ tex2D (s_base,I.tc0); +} diff --git a/gamedata/shaders/r1/fxaa.hlsli b/gamedata/shaders/r1/fxaa.hlsli new file mode 100644 index 0000000..73c17a1 --- /dev/null +++ b/gamedata/shaders/r1/fxaa.hlsli @@ -0,0 +1,1309 @@ +#define FXAA_PC 1 +#define FXAA_HLSL_3 1 +#define FXAA_QUALITY__PRESET 39 +#define FXAA_GREEN_AS_LUMA 1 + +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_PC_CONSOLE + // + // The console algorithm for PC is included + // for developers targeting really low spec machines. + // Likely better to just run FXAA_PC, and use a really low preset. + // + #define FXAA_PC_CONSOLE 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GLSL_120 + #define FXAA_GLSL_120 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GLSL_130 + #define FXAA_GLSL_130 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_3 + #define FXAA_HLSL_3 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_4 + #define FXAA_HLSL_4 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_5 + #define FXAA_HLSL_5 0 +#endif +/*==========================================================================*/ +#ifndef FXAA_GREEN_AS_LUMA + // + // For those using non-linear color, + // and either not able to get luma in alpha, or not wanting to, + // this enables FXAA to run using green as a proxy for luma. + // So with this enabled, no need to pack luma in alpha. + // + // This will turn off AA on anything which lacks some amount of green. + // Pure red and blue or combination of only R and B, will get no AA. + // + // Might want to lower the settings for both, + // fxaaConsoleEdgeThresholdMin + // fxaaQualityEdgeThresholdMin + // In order to insure AA does not get turned off on colors + // which contain a minor amount of green. + // + // 1 = On. + // 0 = Off. + // + #define FXAA_GREEN_AS_LUMA 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_EARLY_EXIT + // + // Controls algorithm's early exit path. + // On PS3 turning this ON adds 2 cycles to the shader. + // On 360 turning this OFF adds 10ths of a millisecond to the shader. + // Turning this off on console will result in a more blurry image. + // So this defaults to on. + // + // 1 = On. + // 0 = Off. + // + #define FXAA_EARLY_EXIT 1 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_DISCARD + // + // Only valid for PC OpenGL currently. + // Probably will not work when FXAA_GREEN_AS_LUMA = 1. + // + // 1 = Use discard on pixels which don't need AA. + // For APIs which enable concurrent TEX+ROP from same surface. + // 0 = Return unchanged color on pixels which don't need AA. + // + #define FXAA_DISCARD 1 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_FAST_PIXEL_OFFSET + // + // Used for GLSL 120 only. + // + // 1 = GL API supports fast pixel offsets + // 0 = do not use fast pixel offsets + // + #ifdef GL_EXT_gpu_shader4 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifdef GL_NV_gpu_shader5 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifdef GL_ARB_gpu_shader5 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifndef FXAA_FAST_PIXEL_OFFSET + #define FXAA_FAST_PIXEL_OFFSET 0 + #endif +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GATHER4_ALPHA + // + // 1 = API supports gather4 on alpha channel. + // 0 = API does not support gather4 on alpha channel. + // + #if (FXAA_HLSL_5 == 1) + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifdef GL_ARB_gpu_shader5 + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifdef GL_NV_gpu_shader5 + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifndef FXAA_GATHER4_ALPHA + #define FXAA_GATHER4_ALPHA 0 + #endif +#endif + +/*============================================================================ + FXAA QUALITY - TUNING KNOBS +------------------------------------------------------------------------------ +NOTE the other tuning knobs are now in the shader function inputs! +============================================================================*/ +#ifndef FXAA_QUALITY__PRESET + // + // Choose the quality preset. + // This needs to be compiled into the shader as it effects code. + // Best option to include multiple presets is to + // in each shader define the preset, then include this file. + // + // OPTIONS + // ----------------------------------------------------------------------- + // 10 to 15 - default medium dither (10=fastest, 15=highest quality) + // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) + // 39 - no dither, very expensive + // + // NOTES + // ----------------------------------------------------------------------- + // 12 = slightly faster then FXAA 3.9 and higher edge quality (default) + // 13 = about same speed as FXAA 3.9 and better than 12 + // 23 = closest to FXAA 3.9 visually and performance wise + // _ = the lowest digit is directly related to performance + // _ = the highest digit is directly related to style + // + #define FXAA_QUALITY__PRESET 12 +#endif + +/*============================================================================ + + FXAA QUALITY - PRESETS + +============================================================================*/ + +/*============================================================================ + FXAA QUALITY - MEDIUM DITHER PRESETS +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 10) + #define FXAA_QUALITY__PS 3 + #define FXAA_QUALITY__P0 1.5 + #define FXAA_QUALITY__P1 3.0 + #define FXAA_QUALITY__P2 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 11) + #define FXAA_QUALITY__PS 4 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 3.0 + #define FXAA_QUALITY__P3 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 12) + #define FXAA_QUALITY__PS 5 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 4.0 + #define FXAA_QUALITY__P4 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 13) + #define FXAA_QUALITY__PS 6 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 4.0 + #define FXAA_QUALITY__P5 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 14) + #define FXAA_QUALITY__PS 7 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 4.0 + #define FXAA_QUALITY__P6 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 15) + #define FXAA_QUALITY__PS 8 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 4.0 + #define FXAA_QUALITY__P7 12.0 +#endif + +/*============================================================================ + FXAA QUALITY - LOW DITHER PRESETS +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 20) + #define FXAA_QUALITY__PS 3 + #define FXAA_QUALITY__P0 1.5 + #define FXAA_QUALITY__P1 2.0 + #define FXAA_QUALITY__P2 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 21) + #define FXAA_QUALITY__PS 4 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 22) + #define FXAA_QUALITY__PS 5 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 23) + #define FXAA_QUALITY__PS 6 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 24) + #define FXAA_QUALITY__PS 7 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 3.0 + #define FXAA_QUALITY__P6 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 25) + #define FXAA_QUALITY__PS 8 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 4.0 + #define FXAA_QUALITY__P7 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 26) + #define FXAA_QUALITY__PS 9 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 4.0 + #define FXAA_QUALITY__P8 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 27) + #define FXAA_QUALITY__PS 10 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 4.0 + #define FXAA_QUALITY__P9 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 28) + #define FXAA_QUALITY__PS 11 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 4.0 + #define FXAA_QUALITY__P10 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 29) + #define FXAA_QUALITY__PS 12 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 2.0 + #define FXAA_QUALITY__P10 4.0 + #define FXAA_QUALITY__P11 8.0 +#endif + +/*============================================================================ + FXAA QUALITY - EXTREME QUALITY +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 39) + #define FXAA_QUALITY__PS 12 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.0 + #define FXAA_QUALITY__P2 1.0 + #define FXAA_QUALITY__P3 1.0 + #define FXAA_QUALITY__P4 1.0 + #define FXAA_QUALITY__P5 1.5 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 2.0 + #define FXAA_QUALITY__P10 4.0 + #define FXAA_QUALITY__P11 8.0 +#endif + +/*============================================================================ + + API PORTING + +============================================================================*/ +#if (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1) + #define FxaaBool bool + #define FxaaDiscard discard + #define FxaaFloat float + #define FxaaFloat2 vec2 + #define FxaaFloat3 vec3 + #define FxaaFloat4 vec4 + #define FxaaInt2 ivec2 + #define FxaaSat(x) clamp(x, 0.0, 1.0) + #define FxaaTex sampler2D +#else + #define FxaaBool bool + #define FxaaDiscard clip(-1) + #define FxaaFloat float + #define FxaaFloat2 float2 + #define FxaaFloat3 float3 + #define FxaaFloat4 float4 + #define FxaaSat(x) saturate(x) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_GLSL_120 == 1) + // Requires, + // #version 120 + // And at least, + // #extension GL_EXT_gpu_shader4 : enable + // (or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9) + #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) + #if (FXAA_FAST_PIXEL_OFFSET == 1) + #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o) + #else + #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) + #endif + #if (FXAA_GATHER4_ALPHA == 1) + // use #extension GL_ARB_gpu_shader5 : enable + #define FxaaTexAlpha4(t, p) textureGather(t, p, 3) + #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3) + #define FxaaTexGreen4(t, p) textureGather(t, p, 1) + #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1) + #endif +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_GLSL_130 == 1) + // Requires "#version 130" or better + #define FxaaTexTop(t, p) textureLod(t, p, 0.0) + #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o) + #if (FXAA_GATHER4_ALPHA == 1) + // use #extension GL_ARB_gpu_shader5 : enable + #define FxaaTexAlpha4(t, p) textureGather(t, p, 3) + #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3) + #define FxaaTexGreen4(t, p) textureGather(t, p, 1) + #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1) + #endif +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_3 == 1) || (FXAA_360 == 1) || (FXAA_PS3 == 1) + #define FxaaInt2 float2 + #define FxaaTex sampler2D + #define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0)) + #define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0)) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_4 == 1) + #define FxaaInt2 int2 +struct FxaaTex +{ + SamplerState smpl; + Texture2D tex; +}; + #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0) + #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_5 == 1) + #define FxaaInt2 int2 +struct FxaaTex +{ + SamplerState smpl; + Texture2D tex; +}; + #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0) + #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o) + #define FxaaTexAlpha4(t, p) t.tex.GatherAlpha(t.smpl, p) + #define FxaaTexOffAlpha4(t, p, o) t.tex.GatherAlpha(t.smpl, p, o) + #define FxaaTexGreen4(t, p) t.tex.GatherGreen(t.smpl, p) + #define FxaaTexOffGreen4(t, p, o) t.tex.GatherGreen(t.smpl, p, o) +#endif + +/*============================================================================ + GREEN AS LUMA OPTION SUPPORT FUNCTION +============================================================================*/ +#if (FXAA_GREEN_AS_LUMA == 0) +FxaaFloat FxaaLuma(FxaaFloat4 rgba) +{ + return rgba.w; +} +#else +FxaaFloat FxaaLuma(FxaaFloat4 rgba) +{ + return rgba.y; +} +#endif + +/*============================================================================ + + FXAA3 QUALITY - PC + +============================================================================*/ +#if (FXAA_PC == 1) +/*--------------------------------------------------------------------------*/ +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Used only for FXAA Console, and not used on the 360 version. + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy__} = upper left of pixel + // {__zw} = lower right of pixel + FxaaFloat4 fxaaConsolePosPos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on the optimized 360 version of FXAA Console. + // For everything but 360, just use the same input here as for "tex". + // For 360, same texture, just alias with a 2nd sampler. + // This sampler needs to have an exponent bias of -1. + FxaaTex fxaaConsole360TexExpBiasNegOne, + // + // Only used on the optimized 360 version of FXAA Console. + // For everything but 360, just use the same input here as for "tex". + // For 360, same texture, just alias with a 3nd sampler. + // This sampler needs to have an exponent bias of -2. + FxaaTex fxaaConsole360TexExpBiasNegTwo, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Console. + // This must be from a constant/uniform. + // This effects sub-pixel AA quality and inversely sharpness. + // Where N ranges between, + // N = 0.50 (default) + // N = 0.33 (sharper) + // {x___} = -N/screenWidthInPixels + // {_y__} = -N/screenHeightInPixels + // {__z_} = N/screenWidthInPixels + // {___w} = N/screenHeightInPixels + FxaaFloat4 fxaaConsoleRcpFrameOpt, + // + // Only used on FXAA Console. + // Not used on 360, but used on PS3 and PC. + // This must be from a constant/uniform. + // {x___} = -2.0/screenWidthInPixels + // {_y__} = -2.0/screenHeightInPixels + // {__z_} = 2.0/screenWidthInPixels + // {___w} = 2.0/screenHeightInPixels + FxaaFloat4 fxaaConsoleRcpFrameOpt2, + // + // Only used on FXAA Console. + // Only used on 360 in place of fxaaConsoleRcpFrameOpt2. + // This must be from a constant/uniform. + // {x___} = 8.0/screenWidthInPixels + // {_y__} = 8.0/screenHeightInPixels + // {__z_} = -4.0/screenWidthInPixels + // {___w} = -4.0/screenHeightInPixels + FxaaFloat4 fxaaConsole360RcpFrameOpt2, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_SHARPNESS define. + // It is here now to allow easier tuning. + // This does not effect PS3, as this needs to be compiled in. + // Use FXAA_CONSOLE__PS3_EDGE_SHARPNESS for PS3. + // Due to the PS3 being ALU bound, + // there are only three safe values here: 2 and 4 and 8. + // These options use the shaders ability to a free *|/ by 2|4|8. + // For all other platforms can be a non-power of two. + // 8.0 is sharper (default!!!) + // 4.0 is softer + // 2.0 is really soft (good only for vector graphics inputs) + FxaaFloat fxaaConsoleEdgeSharpness, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // This does not effect PS3, as this needs to be compiled in. + // Use FXAA_CONSOLE__PS3_EDGE_THRESHOLD for PS3. + // Due to the PS3 being ALU bound, + // there are only two safe values here: 1/4 and 1/8. + // These options use the shaders ability to a free *|/ by 2|4|8. + // The console setting has a different mapping than the quality setting. + // Other platforms can use other values. + // 0.125 leaves less aliasing, but is softer (default!!!) + // 0.25 leaves more aliasing, and is sharper + FxaaFloat fxaaConsoleEdgeThreshold, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // The console setting has a different mapping than the quality setting. + // This only applies when FXAA_EARLY_EXIT is 1. + // This does not apply to PS3, + // PS3 was simplified to avoid more shader instructions. + // 0.06 - faster but more aliasing in darks + // 0.05 - default + // 0.04 - slower and less aliasing in darks + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaConsoleEdgeThresholdMin, + // + // Extra constants for 360 FXAA Console only. + // Use zeros or anything else for other platforms. + // These must be in physical constant registers and NOT immedates. + // Immedates will result in compiler un-optimizing. + // {xyzw} = float4(1.0, -1.0, 0.25, -0.25) + FxaaFloat4 fxaaConsole360ConstDir) +{ + /*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + #if (FXAA_GATHER4_ALPHA == 1) + #if (FXAA_DISCARD == 0) + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #if (FXAA_GREEN_AS_LUMA == 0) + #define lumaM rgbyM.w + #else + #define lumaM rgbyM.y + #endif + #endif + #if (FXAA_GREEN_AS_LUMA == 0) + FxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM); + FxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1)); + #else + FxaaFloat4 luma4A = FxaaTexGreen4(tex, posM); + FxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1)); + #endif + #if (FXAA_DISCARD == 1) + #define lumaM luma4A.w + #endif + #define lumaE luma4A.z + #define lumaS luma4A.x + #define lumaSE luma4A.y + #define lumaNW luma4B.w + #define lumaN luma4B.z + #define lumaW luma4B.x + #else + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #if (FXAA_GREEN_AS_LUMA == 0) + #define lumaM rgbyM.w + #else + #define lumaM rgbyM.y + #endif + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(0, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); + #endif + /*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; + /*--------------------------------------------------------------------------*/ + if (earlyExit) + #if (FXAA_DISCARD == 1) + FxaaDiscard; + #else + return rgbyM; + #endif + /*--------------------------------------------------------------------------*/ + #if (FXAA_GATHER4_ALPHA == 0) + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); + #else + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); + #endif + /*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0 / range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; + /*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; + /*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; + /*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; + /*--------------------------------------------------------------------------*/ + if (!horzSpan) + { + lumaN = lumaW; + } + if (!horzSpan) + { + lumaS = lumaE; + } + if (horzSpan) + { + lengthSign = fxaaQualityRcpFrame.y; + } + FxaaFloat subpixB = (subpixA * (1.0 / 12.0)) - lumaM; + /*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if (pairN) + { + lengthSign = -lengthSign; + } + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); + /*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = (horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if (!horzSpan) + { + posB.x += lengthSign * 0.5; + } + if (horzSpan) + { + posB.y += lengthSign * 0.5; + } + /*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY__P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY__P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY__P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY__P0; + FxaaFloat subpixD = ((-2.0) * subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); + /*--------------------------------------------------------------------------*/ + if (!pairN) + { + lumaNN = lumaSS; + } + FxaaFloat gradientScaled = gradient * 1.0 / 4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; + /*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P1; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P1; + } + FxaaBool doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P1; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P1; + } + /*--------------------------------------------------------------------------*/ + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P2; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P2; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P2; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P2; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 3) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P3; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P3; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P3; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P3; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 4) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P4; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P4; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P4; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P4; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 5) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P5; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P5; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P5; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P5; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 6) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P6; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P6; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P6; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P6; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 7) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P7; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P7; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P7; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P7; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 8) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P8; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P8; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P8; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P8; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 9) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P9; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P9; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P9; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P9; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 10) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P10; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P10; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P10; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P10; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 11) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P11; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P11; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P11; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P11; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 12) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P12; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P12; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P12; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P12; + } + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + /*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if (!horzSpan) + { + dstN = posM.y - posN.y; + } + if (!horzSpan) + { + dstP = posP.y - posM.y; + } + /*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0 / spanLength; + /*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; + /*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if (!horzSpan) + { + posM.x += pixelOffsetSubpix * lengthSign; + } + if (horzSpan) + { + posM.y += pixelOffsetSubpix * lengthSign; + } + #if (FXAA_DISCARD == 1) + return FxaaTexTop(tex, posM); + #else + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); + #endif +} +/*==========================================================================*/ +#endif diff --git a/gamedata/shaders/r1/fxaa_luma.ps.hlsl b/gamedata/shaders/r1/fxaa_luma.ps.hlsl new file mode 100644 index 0000000..7aeecac --- /dev/null +++ b/gamedata/shaders/r1/fxaa_luma.ps.hlsl @@ -0,0 +1,17 @@ +#include "common.hlsli" + +#define LUMINANCE_VECTOR float3(0.3f, 0.38f, 0.22f) + +uniform sampler2D s_image; + +struct v2p +{ + float2 tc0 : TEXCOORD0; + float4 HPos : POSITION; +}; + +float4 main(v2p I) : COLOR +{ + float3 image = tex2D(s_image, I.tc0); + return float4(image, dot(image, LUMINANCE_VECTOR)); +} diff --git a/gamedata/shaders/r1/fxaa_main.ps.hlsl b/gamedata/shaders/r1/fxaa_main.ps.hlsl new file mode 100644 index 0000000..d6fcc5f --- /dev/null +++ b/gamedata/shaders/r1/fxaa_main.ps.hlsl @@ -0,0 +1,34 @@ +#include "common.hlsli" +#include "fxaa.hlsli" + +uniform float4 screen_res; +uniform sampler2D s_image; + +struct v2p +{ + float2 tc0 : TEXCOORD0; + float4 HPos : POSITION; +}; + +float4 main(v2p I) : COLOR +{ + float2 rcpFrame = screen_res.zw; + + return FxaaPixelShader(I.tc0, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsolePosPos, + s_image, // FxaaTex tex, + s_image, // FxaaTex fxaaConsole360TexExpBiasNegOne, + s_image, // FxaaTex fxaaConsole360TexExpBiasNegTwo, + rcpFrame, // FxaaFloat2 fxaaQualityRcpFrame, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsoleRcpFrameOpt, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsoleRcpFrameOpt2, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsole360RcpFrameOpt2, + 0.35f, // FxaaFloat fxaaQualitySubpix, + 0.125f, // FxaaFloat fxaaQualityEdgeThreshold, + 0.0f, // 0.0625f, // FxaaFloat fxaaQualityEdgeThresholdMin, + 0.0f, // FxaaFloat fxaaConsoleEdgeSharpness, + 0.0f, // FxaaFloat fxaaConsoleEdgeThreshold, + 0.0f, // FxaaFloat fxaaConsoleEdgeThresholdMin, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f) // FxaaFloat fxaaConsole360ConstDir, + ); +} diff --git a/gamedata/shaders/r1/fxaa_main.vs.hlsl b/gamedata/shaders/r1/fxaa_main.vs.hlsl new file mode 100644 index 0000000..713c1ac --- /dev/null +++ b/gamedata/shaders/r1/fxaa_main.vs.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +uniform float4 screen_res; // Screen resolution (x-Width,y-Height, zw - 1/resolution) + +struct v +{ + float3 P : POSITION; + float2 tc0 : TEXCOORD0; +}; + +struct v2p +{ + float2 tc0 : TEXCOORD0; + float4 HPos : POSITION; +}; + +// Vertex +v2p main(v I) +{ + v2p O; + O.HPos = float4(I.P.x * screen_res.z * 2 - 1, (I.P.y * screen_res.w * 2 - 1) * -1, 0, 1); + O.tc0 = I.tc0; + + return O; +} diff --git a/gamedata/shaders/r1/hud3d.ps.hlsl b/gamedata/shaders/r1/hud3d.ps.hlsl new file mode 100644 index 0000000..df4d764 --- /dev/null +++ b/gamedata/shaders/r1/hud3d.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +struct ui_vert_out +{ + float2 tc0 : TEXCOORD0; + float4 P : POSITION; +}; + +float4 main(ui_vert_out I) : COLOR +{ + float4 r = tex2D(s_base, I.tc0); + return r; +} diff --git a/gamedata/shaders/r1/hud3d.vs.hlsl b/gamedata/shaders/r1/hud3d.vs.hlsl new file mode 100644 index 0000000..47bef8b --- /dev/null +++ b/gamedata/shaders/r1/hud3d.vs.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +struct ui_vert_in +{ + float4 P : POSITION; + float4 color : COLOR0; + float2 uv : TEXCOORD0; +}; + +struct ui_vert_out +{ + float2 tc0 : TEXCOORD0; + float4 P : POSITION; +}; + +ui_vert_out main(ui_vert_in v) +{ + ui_vert_out O; + + O.tc0 = v.uv; + O.P = v.P; + O.P.w = 1; + O.P = mul(m_WVP, O.P); + return O; +} diff --git a/gamedata/shaders/r1/hud_crosshair.lua b/gamedata/shaders/r1/hud_crosshair.lua new file mode 100644 index 0000000..7c5097d --- /dev/null +++ b/gamedata/shaders/r1/hud_crosshair.lua @@ -0,0 +1,6 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "simple_color") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) +end diff --git a/gamedata/shaders/r1/hud_font.lua b/gamedata/shaders/r1/hud_font.lua new file mode 100644 index 0000000..6f41a55 --- /dev/null +++ b/gamedata/shaders/r1/hud_font.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "hud_font") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r1/hud_font.ps.hlsl b/gamedata/shaders/r1/hud_font.ps.hlsl new file mode 100644 index 0000000..7ab06f8 --- /dev/null +++ b/gamedata/shaders/r1/hud_font.ps.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; + float4 c0 : COLOR0; +}; + +float4 main(v2p I) : COLOR +{ + float4 r = tex2D(s_base, I.tc0); + r.rgb = I.c0.rgb; + r.a *= I.c0.a; + return r; +} diff --git a/gamedata/shaders/r1/hud_font2.lua b/gamedata/shaders/r1/hud_font2.lua new file mode 100644 index 0000000..f7c9151 --- /dev/null +++ b/gamedata/shaders/r1/hud_font2.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "font2") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r1/hud_movie.lua b/gamedata/shaders/r1/hud_movie.lua new file mode 100644 index 0000000..4a61a6c --- /dev/null +++ b/gamedata/shaders/r1/hud_movie.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "yuv2rgb") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r1/hud_p3d.lua b/gamedata/shaders/r1/hud_p3d.lua new file mode 100644 index 0000000..7465274 --- /dev/null +++ b/gamedata/shaders/r1/hud_p3d.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("hud3d", "hud3d") + :fog(false) + :zb(true, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r1/impl.ps.hlsl b/gamedata/shaders/r1/impl.ps.hlsl new file mode 100644 index 0000000..3097727 --- /dev/null +++ b/gamedata/shaders/r1/impl.ps.hlsl @@ -0,0 +1,29 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // lmap + float3 c0 : COLOR0; // hemi + float3 c1 : COLOR1; // sun + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_lmap = tex2D(s_lmap, I.tc1); + + // lighting + float3 l_base = t_lmap.rgb; // base light-map + float3 l_hemi = I.c0 * t_base.a; // hemi is implicitly inside texture + float3 l_sun = I.c1 * t_lmap.a; // sun color + float3 light = L_ambient + l_base + l_sun + l_hemi; + + // final-color + float3 final = light * t_base * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + // out + return float4(final.rgb, 1.0f); +} diff --git a/gamedata/shaders/r1/impl.vs.hlsl b/gamedata/shaders/r1/impl.vs.hlsl new file mode 100644 index 0000000..e21ca01 --- /dev/null +++ b/gamedata/shaders/r1/impl.vs.hlsl @@ -0,0 +1,26 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + float3 c0 : COLOR0; // c0=hemi, c0.a = dt* + float3 c1 : COLOR1; // c1=sun, c1.a = dt+ + float fog : FOG; +}; + +vf main(v_lmap v) +{ + vf o; + + float3 N = unpack_normal(v.N); + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + o.tc1 = o.tc0; // copy tc + o.c0 = v_hemi(N); // hemi + o.c1 = v_sun(N); // sun + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/impl_dt.ps.hlsl b/gamedata/shaders/r1/impl_dt.ps.hlsl new file mode 100644 index 0000000..c33da3c --- /dev/null +++ b/gamedata/shaders/r1/impl_dt.ps.hlsl @@ -0,0 +1,34 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // lmap + float2 tc2 : TEXCOORD2; // detail + float4 c0 : COLOR0; // hemi, c0.a * + float4 c1 : COLOR1; // sun, c1.a + + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_lmap = tex2D(s_lmap, I.tc1); + + // lighting + float3 l_base = t_lmap.rgb; // base light-map + float3 l_hemi = I.c0 * t_base.a; // hemi is implicitly inside texture + float3 l_sun = I.c1 * t_lmap.a; // sun color + float3 light = L_ambient + l_base + l_sun + l_hemi; + + // calc D-texture + float3 detail = tex2D(s_detail, I.tc2); + + // final-color + float3 final = (light * t_base.rgb * 2.0f) * detail * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + // out + return float4(final.rgb, 1.0f); + // return float4 (light*detail*2,1); +} diff --git a/gamedata/shaders/r1/impl_dt.vs.hlsl b/gamedata/shaders/r1/impl_dt.vs.hlsl new file mode 100644 index 0000000..392897d --- /dev/null +++ b/gamedata/shaders/r1/impl_dt.vs.hlsl @@ -0,0 +1,29 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + float2 tc2 : TEXCOORD2; + float4 c0 : COLOR0; // c0=hemi+v-lights, c0.a = dt* + float4 c1 : COLOR1; // c1=sun, c1.a = dt+ + float fog : FOG; +}; + +vf main(v_lmap v) +{ + vf o; + + float2 dt = calc_detail(v.P); + float3 N = unpack_normal(v.N); + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + o.tc1 = o.tc0; // copy tc + o.tc2 = o.tc0 * dt_params; // dt tc + o.c0 = float4(v_hemi(N), dt.x); // c0=v-lights, c0.a = dt* + o.c1 = float4(v_sun(N), dt.y); // c1=sun, c1.a = dt+ + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/impl_dt_hq.ps.hlsl b/gamedata/shaders/r1/impl_dt_hq.ps.hlsl new file mode 100644 index 0000000..ba4c8da --- /dev/null +++ b/gamedata/shaders/r1/impl_dt_hq.ps.hlsl @@ -0,0 +1,48 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // lmap + float2 tc2 : TEXCOORD2; // detail + float4 c0 : COLOR0; // hemi, c0.a * + float4 c1 : COLOR1; // sun, c1.a + + float fog : FOG; +}; + +uniform sampler2D s_dt_r; +uniform sampler2D s_dt_g; +uniform sampler2D s_dt_b; +uniform sampler2D s_dt_a; + +uniform sampler2D s_mask; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_mask = tex2D(s_mask, I.tc0); + + t_mask = t_mask / dot(t_mask, 1.0); + + float4 t_lmap = tex2D(s_lmap, I.tc1); + + // lighting + float3 l_base = t_lmap.rgb; // base light-map + float3 l_hemi = I.c0 * t_base.a; // hemi is implicitly inside texture + float3 l_sun = I.c1 * t_lmap.a; // sun color + float3 light = L_ambient + l_base + l_sun + l_hemi; + + // calc D-texture + float3 t_dt_r = tex2D(s_dt_r, I.tc2) * t_mask.r; + float3 t_dt_g = tex2D(s_dt_g, I.tc2) * t_mask.g; + float3 t_dt_b = tex2D(s_dt_b, I.tc2) * t_mask.b; + float3 t_dt_a = tex2D(s_dt_a, I.tc2) * t_mask.a; + float3 detail = t_dt_a + t_dt_b + t_dt_g + t_dt_r; + + // final-color + float3 final = (light * t_base.rgb * 2.0f) * detail * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + // out + return float4(final.rgb, 1.0f); +} diff --git a/gamedata/shaders/r1/impl_l.ps.hlsl b/gamedata/shaders/r1/impl_l.ps.hlsl new file mode 100644 index 0000000..be5d438 --- /dev/null +++ b/gamedata/shaders/r1/impl_l.ps.hlsl @@ -0,0 +1,22 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // lmap + float2 tc1 : TEXCOORD1; // lmap + float3 c0 : COLOR0; // hemi +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_lmap = tex2D(s_lmap, I.tc1); + + // lighting + float3 l_base = t_lmap.rgb; // base light-map + float3 l_hemi = I.c0 * t_base.a; // hemi is implicitly inside texture + float l_sun = t_lmap.a; // sun color + float3 light = L_ambient + l_base + l_hemi; + return float4(light, l_sun); +} diff --git a/gamedata/shaders/r1/impl_l.vs.hlsl b/gamedata/shaders/r1/impl_l.vs.hlsl new file mode 100644 index 0000000..82be7c4 --- /dev/null +++ b/gamedata/shaders/r1/impl_l.vs.hlsl @@ -0,0 +1,21 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + float3 c0 : COLOR0; +}; + +vf main(v_lmap v) +{ + vf o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + o.tc1 = o.tc0; // copy tc + o.c0 = v_hemi(unpack_normal(v.N)); // just ambient + + return o; +} diff --git a/gamedata/shaders/r1/impl_point.vs.hlsl b/gamedata/shaders/r1/impl_point.vs.hlsl new file mode 100644 index 0000000..d2cec75 --- /dev/null +++ b/gamedata/shaders/r1/impl_point.vs.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +vf_point main(v_lmap v) +{ + vf_point o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base(v.tc0); // copy tc + o.color = calc_point(o.tc1, o.tc2, v.P, unpack_normal(v.N)); // just hemisphere + + return o; +} diff --git a/gamedata/shaders/r1/impl_spot.vs.hlsl b/gamedata/shaders/r1/impl_spot.vs.hlsl new file mode 100644 index 0000000..2845b98 --- /dev/null +++ b/gamedata/shaders/r1/impl_spot.vs.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +vf_spot main(v_lmap v) +{ + vf_spot o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base(v.tc0); // copy tc + o.color = calc_spot(o.tc1, o.tc2, v.P, unpack_normal(v.N)); // just hemisphere + + return o; +} diff --git a/gamedata/shaders/r1/lmap.ps.hlsl b/gamedata/shaders/r1/lmap.ps.hlsl new file mode 100644 index 0000000..cd83a8a --- /dev/null +++ b/gamedata/shaders/r1/lmap.ps.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // lmap + float2 tc2 : TEXCOORD2; // lmap-hemi + float3 c0 : COLOR0; // hemi + float3 c1 : COLOR1; // sun + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_lmap = tex2D(s_lmap, I.tc1); + + // lighting + float3 l_base = t_lmap.rgb; // base light-map + float3 l_hemi = I.c0 * p_hemi(I.tc2); // hemi + float3 l_sun = I.c1 * t_lmap.a; // sun color + float3 light = L_ambient + l_base + l_sun + l_hemi; + + // final-color + float3 final = light * t_base * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + + // out + return float4(final, t_base.a); +} diff --git a/gamedata/shaders/r1/lmap.vs.hlsl b/gamedata/shaders/r1/lmap.vs.hlsl new file mode 100644 index 0000000..7045276 --- /dev/null +++ b/gamedata/shaders/r1/lmap.vs.hlsl @@ -0,0 +1,29 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + float2 tch : TEXCOORD2; + float3 c0 : COLOR0; // c0=hemi+v-lights, c0.a = dt* + float3 c1 : COLOR1; // c1=sun, c1.a = dt+ + float fog : FOG; +}; + +vf main(v_lmap v) +{ + vf o; + + float3 N = unpack_normal(v.N); + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base (v.tc0); // copy tc + o.tc1 = unpack_tc_lmap(v.uv1); // copy tc + o.tch = o.tc1; + o.c0 = v_hemi(N); // just hemisphere + o.c1 = v_sun(N); // sun + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/lmap_dt.ps.hlsl b/gamedata/shaders/r1/lmap_dt.ps.hlsl new file mode 100644 index 0000000..e8c4ecd --- /dev/null +++ b/gamedata/shaders/r1/lmap_dt.ps.hlsl @@ -0,0 +1,36 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // lmap + float2 tc2 : TEXCOORD2; // hemi + float2 tc3 : TEXCOORD3; // detail + float4 c0 : COLOR0; // c0.a * + float4 c1 : COLOR1; // c1.a + + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_lmap = tex2D(s_lmap, I.tc1); + + // lighting + float3 l_base = t_lmap.rgb; // base light-map + float3 l_hemi = I.c0 * p_hemi(I.tc2); // hemi + float3 l_sun = I.c1 * t_lmap.a; // sun color + float3 light = L_ambient + l_base + l_sun + l_hemi; + + // calc D-texture + float4 t_dt = tex2D(s_detail, I.tc3); + float3 detail = t_dt * I.c0.a + I.c1.a; + + // final-color + float3 final = (light * t_base * 2.0f) * detail * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + + // out + return float4(final, t_base.a); +} diff --git a/gamedata/shaders/r1/lmap_dt.vs.hlsl b/gamedata/shaders/r1/lmap_dt.vs.hlsl new file mode 100644 index 0000000..83374ce --- /dev/null +++ b/gamedata/shaders/r1/lmap_dt.vs.hlsl @@ -0,0 +1,33 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + float2 tch : TEXCOORD2; + float2 tc2 : TEXCOORD3; + float4 c0 : COLOR0; // c0=hemi+v-lights, c0.a = dt* + float4 c1 : COLOR1; // c1=sun, c1.a = dt+ + float fog : FOG; +}; + +vf main(v_lmap v) +{ + vf o; + + float2 dt = calc_detail(v.P); + float3 N = unpack_normal(v.N); + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base (v.tc0); // copy tc + o.tc1 = unpack_tc_lmap(v.uv1); // copy tc + o.tch = o.tc1; + o.tc2 = o.tc0 * dt_params; // dt tc + o.c0 = float4(v_hemi(N), dt.x); // c0=hemi+v-lights, c0.a = dt* + o.c1 = float4(v_sun(N), dt.y); // c1=sun, c1.a = dt+ + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/lmap_l.ps.hlsl b/gamedata/shaders/r1/lmap_l.ps.hlsl new file mode 100644 index 0000000..39d4025 --- /dev/null +++ b/gamedata/shaders/r1/lmap_l.ps.hlsl @@ -0,0 +1,24 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // lmap + float2 tc1 : TEXCOORD1; // hemi + float3 c0 : COLOR0; + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_lmap = tex2D(s_lmap, I.tc0); + + // lighting + float3 l_base = t_lmap.rgb; // base light-map + float3 l_hemi = I.c0 * p_hemi(I.tc1); // hemi + float l_sun = t_lmap.a; // sun color + float3 light = L_ambient + l_base + l_hemi; + light = lerp(fog_color.xyz, light, I.fog); + + return float4(light, l_sun); +} diff --git a/gamedata/shaders/r1/lmap_l.vs.hlsl b/gamedata/shaders/r1/lmap_l.vs.hlsl new file mode 100644 index 0000000..44a0c1d --- /dev/null +++ b/gamedata/shaders/r1/lmap_l.vs.hlsl @@ -0,0 +1,23 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + float3 c0 : COLOR0; + float fog : FOG; +}; + +vf main(v_lmap v) +{ + vf o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_lmap(v.uv1); // copy tc + o.tc1 = o.tc0; + o.c0 = v_hemi(unpack_normal(v.N)); // just hemisphere + ambient + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/lmap_point.vs.hlsl b/gamedata/shaders/r1/lmap_point.vs.hlsl new file mode 100644 index 0000000..c59198b --- /dev/null +++ b/gamedata/shaders/r1/lmap_point.vs.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +vf_point main(v_lmap v) +{ + vf_point o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base(v.tc0); // copy tc + o.color = calc_point(o.tc1, o.tc2, v.P, unpack_normal(v.N)); // just hemisphere + + return o; +} diff --git a/gamedata/shaders/r1/lmap_spot.vs.hlsl b/gamedata/shaders/r1/lmap_spot.vs.hlsl new file mode 100644 index 0000000..9d25d16 --- /dev/null +++ b/gamedata/shaders/r1/lmap_spot.vs.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +vf_spot main(v_lmap v) +{ + vf_spot o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base(v.tc0); // copy tc + o.color = calc_spot(o.tc1, o.tc2, v.P, unpack_normal(v.N)); // just hemisphere + + return o; +} diff --git a/gamedata/shaders/r1/lmape.ps.hlsl b/gamedata/shaders/r1/lmape.ps.hlsl new file mode 100644 index 0000000..ee8314f --- /dev/null +++ b/gamedata/shaders/r1/lmape.ps.hlsl @@ -0,0 +1,33 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // lmap + float2 tc2 : TEXCOORD2; // hemi + float3 tc3 : TEXCOORD3; // env + float3 c0 : COLOR0; + float3 c1 : COLOR1; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_lmap = tex2D(s_lmap, I.tc1); + float4 t_env = texCUBE(s_env, I.tc3); + + // lighting + float3 l_base = t_lmap.rgb; // base light-map + float3 l_hemi = I.c0 * p_hemi(I.tc2); // hemi + float3 l_sun = I.c1 * t_lmap.a; // sun color + float3 light = L_ambient + l_base + l_sun + l_hemi; + + // final-color + float3 base = lerp(t_env, t_base, t_base.a); + float3 final = light * base * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + + // out + return float4(final, t_base.a); +} diff --git a/gamedata/shaders/r1/lmape.vs.hlsl b/gamedata/shaders/r1/lmape.vs.hlsl new file mode 100644 index 0000000..af148df --- /dev/null +++ b/gamedata/shaders/r1/lmape.vs.hlsl @@ -0,0 +1,33 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + float2 tch : TEXCOORD2; + float3 tc2 : TEXCOORD3; + float3 c0 : COLOR0; // c0=hemi+v-lights, c0.a = dt* + float3 c1 : COLOR1; // c1=sun, c1.a = dt+ + float fog : FOG; +}; + +vf main(v_lmap v) +{ + vf o; + + float3 pos_w = v.P; + float3 norm_w = normalize(unpack_normal(v.N)); + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base (v.tc0); // copy tc + o.tc1 = unpack_tc_lmap(v.uv1); // copy tc + o.tch = o.tc1; + o.tc2 = calc_reflection(pos_w, norm_w); + o.c0 = v_hemi(norm_w); // just hemisphere + o.c1 = v_sun(norm_w); // sun + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/lod.ps.hlsl b/gamedata/shaders/r1/lod.ps.hlsl new file mode 100644 index 0000000..8ddefd2 --- /dev/null +++ b/gamedata/shaders/r1/lod.ps.hlsl @@ -0,0 +1,34 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base0 + float2 tc1 : TEXCOORD1; // base1 + float2 tc2 : TEXCOORD2; // hemi0 + float2 tc3 : TEXCOORD3; // hemi1 + float4 c : COLOR0; // color + float4 f : COLOR1; // color + float fog : FOG; +}; + +// Pixel +uniform sampler2D s_base0; +uniform sampler2D s_base1; +uniform sampler2D s_hemi0; +uniform sampler2D s_hemi1; + +float4 main(v2p I) : COLOR +{ + float4 base0 = tex2D(s_base0, I.tc0); + float4 base1 = tex2D(s_base1, I.tc1); + float4 hemi0 = tex2D(s_hemi0, I.tc2); + float4 hemi1 = tex2D(s_hemi1, I.tc3); + + float4 base = lerp(base0, base1, I.f.w) * I.c; + float hemi = lerp(hemi0, hemi1, I.f.w).w; + + float3 color = base * 2.0f * (0.5f + 0.5f * hemi); + color = lerp(fog_color.xyz, color, I.fog); + + return float4(color, base.a); +} diff --git a/gamedata/shaders/r1/lod.vs.hlsl b/gamedata/shaders/r1/lod.vs.hlsl new file mode 100644 index 0000000..c706e00 --- /dev/null +++ b/gamedata/shaders/r1/lod.vs.hlsl @@ -0,0 +1,64 @@ +#include "common.hlsli" + +struct vv +{ + float3 pos0 : POSITION0; + float3 pos1 : POSITION1; + float3 n0 : NORMAL0; + float3 n1 : NORMAL1; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + float4 rgbh0 : TEXCOORD2; // rgb.h + float4 rgbh1 : TEXCOORD3; // rgb.h + float4 sun_af : COLOR0; // x=sun_0, y=sun_1, z=alpha, w=factor +}; + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base0 + float2 tc1 : TEXCOORD1; // base1 + float2 tc2 : TEXCOORD2; // hemi0 + float2 tc3 : TEXCOORD3; // hemi1 + float4 c : COLOR0; // color.alpha + float4 f : COLOR1; // factor + float fog : FOG; +}; + +#define L_SCALE (1.55) +#define L_SUN_HACK (.7) + +vf main(vv v) +{ + vf o; + + // lerp pos + float factor = v.sun_af.w; + float4 pos = float4(lerp(v.pos0, v.pos1, factor), 1); + o.hpos = mul(m_VP, pos); // xform, input in world coords + + // replicate TCs + o.tc0 = v.tc0; + o.tc1 = v.tc1; + o.tc2 = v.tc0; + o.tc3 = v.tc1; + + // calc normal & lighting + float3 normal = normalize(lerp(v.n0, v.n1, factor)); + normal.y += 1; + normal = normalize(normal); + float4 rgbh = lerp(v.rgbh0, v.rgbh1, factor) * L_SCALE; + float sun = lerp(v.sun_af.x, v.sun_af.y, factor) * L_SCALE; + float sun_c = 1 + L_SUN_HACK * dot(normal, L_sun_dir_w); // [1+-delta], normal already inverted + + float3 L_rgb = rgbh.rgb; // precalculated RGB lighting + float3 L_hemi = L_hemi_color * rgbh.w; // hemisphere + float3 L_sun = L_sun_color * sun * sun_c; // sun + float3 L_final = L_rgb + L_hemi + L_sun + L_ambient; + + o.c = float4(L_final, v.sun_af.z); + o.f = factor; + o.fog = calc_fogging(pos); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/model_clockarrow_h.ps.hlsl b/gamedata/shaders/r1/model_clockarrow_h.ps.hlsl new file mode 100644 index 0000000..7230b9d --- /dev/null +++ b/gamedata/shaders/r1/model_clockarrow_h.ps.hlsl @@ -0,0 +1,39 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float2 coords = I.tc0; + float2 coords_new; + + + + // Rotate texture + float sin_a = m_timearrow.x; + float cos_a = m_timearrow.y; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = tex2D (s_base,coords_new); + + //получаем пикÑель шума и маÑштабируем его в ÑоответÑтвии Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ уровнем проблем + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb; + + return t_base; +} \ No newline at end of file diff --git a/gamedata/shaders/r1/model_clockarrow_m.ps.hlsl b/gamedata/shaders/r1/model_clockarrow_m.ps.hlsl new file mode 100644 index 0000000..a8795f5 --- /dev/null +++ b/gamedata/shaders/r1/model_clockarrow_m.ps.hlsl @@ -0,0 +1,39 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float2 coords = I.tc0; + float2 coords_new; + + + + // Rotate texture + float sin_a = m_timearrow.z; + float cos_a = m_timearrow.a; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = tex2D (s_base,coords_new); + + //получаем пикÑель шума и маÑштабируем его в ÑоответÑтвии Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ уровнем проблем + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb; + + return t_base; +} \ No newline at end of file diff --git a/gamedata/shaders/r1/model_clockarrow_s.ps.hlsl b/gamedata/shaders/r1/model_clockarrow_s.ps.hlsl new file mode 100644 index 0000000..0548348 --- /dev/null +++ b/gamedata/shaders/r1/model_clockarrow_s.ps.hlsl @@ -0,0 +1,39 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float2 coords = I.tc0; + float2 coords_new; + + + + // Rotate texture + float sin_a = m_timearrow2.x; + float cos_a = m_timearrow2.y; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = tex2D (s_base,coords_new); + + //получаем пикÑель шума и маÑштабируем его в ÑоответÑтвии Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ уровнем проблем + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb; + + return t_base; +} \ No newline at end of file diff --git a/gamedata/shaders/r1/model_compassarrow.ps.hlsl b/gamedata/shaders/r1/model_compassarrow.ps.hlsl new file mode 100644 index 0000000..1967873 --- /dev/null +++ b/gamedata/shaders/r1/model_compassarrow.ps.hlsl @@ -0,0 +1,39 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float2 coords = I.tc0; + float2 coords_new; + + + + // Rotate texture + float sin_a = m_timearrow2.z; + float cos_a = m_timearrow2.a; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = tex2D (s_base,coords_new); + + //получаем пикÑель шума и маÑштабируем его в ÑоответÑтвии Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ уровнем проблем + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb; + + return t_base; +} \ No newline at end of file diff --git a/gamedata/shaders/r1/model_compscreen.ps.hlsl b/gamedata/shaders/r1/model_compscreen.ps.hlsl new file mode 100644 index 0000000..8e785a0 --- /dev/null +++ b/gamedata/shaders/r1/model_compscreen.ps.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base +}; + +////////////////////////////////////////////////////////////////////////////////////////// +// Pixel +float4 main ( v2p I ) : COLOR +{ + // ïîëó÷àåì êîîðäèíàòó íîðìàëüíîé òåêñòóðû + float4 t_base = tex2D (s_base, I.tc0); + + //ïîëó÷àåì ïèêñåëü øóìà è ìàñøòàáèðóåì åãî â ñîîòâåòñòâèè ñ òåêóùèì óðîâíåì ïðîáëåì + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb+0.1; + + return t_base; +} diff --git a/gamedata/shaders/r1/model_def_hq.ps.hlsl b/gamedata/shaders/r1/model_def_hq.ps.hlsl new file mode 100644 index 0000000..9f2aca2 --- /dev/null +++ b/gamedata/shaders/r1/model_def_hq.ps.hlsl @@ -0,0 +1,29 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 tc1 : TEXCOORD1; // lmap + float3 c0 : COLOR0; // sun + float4 c1 : COLOR1; // lq-color + factor + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_lmap = tex2Dproj(s_lmap, I.tc1); + + // lighting + float3 l_base = t_lmap.rgb; // base light-map (lmap color, ambient, hemi, etc - inside) + float3 l_sun = I.c0 * t_lmap.a; // sun color + float3 light = lerp(l_base + l_sun, I.c1, I.c1.w); + + // final-color + float3 final = light * t_base * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + + // out + return float4(final.r, final.g, final.b, t_base.a); +} diff --git a/gamedata/shaders/r1/model_def_hq.vs.hlsl b/gamedata/shaders/r1/model_def_hq.vs.hlsl new file mode 100644 index 0000000..11051b2 --- /dev/null +++ b/gamedata/shaders/r1/model_def_hq.vs.hlsl @@ -0,0 +1,41 @@ +#include "common.hlsli" +#include "skin.hlsli" + +// #define SKIN_2 + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 tc1 : TEXCOORD1; // projected lmap + float3 c0 : COLOR0; // sun-color + float4 c1 : COLOR1; // lq-color + factor + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + float4 pos = v.pos; + float3 pos_w = mul(m_W, pos); + float4 pos_w4 = float4(pos_w, 1); + float3 norm_w = normalize(mul(m_W, v.norm)); + + o.hpos = mul(m_WVP, pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.tc1 = calc_model_lmap(pos_w); // + o.c0 = calc_sun(norm_w); // sun + o.c1 = float4(calc_model_lq_lighting(norm_w), m_plmap_clamp[0].w); + o.fog = calc_fogging(pos_w4); // fog, input in world coords + +#ifdef SKIN_COLOR + o.c1.rgb *= v.rgb_tint; + o.c1.w = 1; +#endif + + return o; +} + +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_def_lplanes.vs.hlsl b/gamedata/shaders/r1/model_def_lplanes.vs.hlsl new file mode 100644 index 0000000..74fd144 --- /dev/null +++ b/gamedata/shaders/r1/model_def_lplanes.vs.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.pos)); + float3 norm_v = normalize(mul(m_WV, v.norm)); + float fade = abs(dot(dir_v, norm_v)); + o.c0 = fade; + + return o; +} + +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_def_lq.ps.hlsl b/gamedata/shaders/r1/model_def_lq.ps.hlsl new file mode 100644 index 0000000..af33d28 --- /dev/null +++ b/gamedata/shaders/r1/model_def_lq.ps.hlsl @@ -0,0 +1,22 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // lmap + float3 c0 : COLOR0; // sun + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + + float3 light = I.c0; + float3 final = light * t_base * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + + // out + return float4(final.r, final.g, final.b, t_base.a); +} diff --git a/gamedata/shaders/r1/model_def_lq.vs.hlsl b/gamedata/shaders/r1/model_def_lq.vs.hlsl new file mode 100644 index 0000000..f9d0a8c --- /dev/null +++ b/gamedata/shaders/r1/model_def_lq.vs.hlsl @@ -0,0 +1,34 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float3 c0 : COLOR0; // color + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + float4 pos = v.pos; + float3 pos_w = mul(m_W, pos); + float3 norm_w = normalize(mul(m_W, v.norm)); + + o.hpos = mul(m_WVP, pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.c0 = calc_model_lq_lighting(norm_w); + o.fog = calc_fogging(float4(pos_w, 1)); // fog, input in world coords + +#ifdef SKIN_COLOR + o.c0.rgb *= v.rgb_tint; +#endif + + return o; +} + +#define SKIN_LQ +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_def_lqs.vs.hlsl b/gamedata/shaders/r1/model_def_lqs.vs.hlsl new file mode 100644 index 0000000..03cda72 --- /dev/null +++ b/gamedata/shaders/r1/model_def_lqs.vs.hlsl @@ -0,0 +1,33 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float3 c0 : COLOR0; // color + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + float4 pos = v.pos; + float3 pos_w = mul(m_W, pos); + float3 norm_w = normalize(mul(m_W, v.norm)); + + o.hpos = mul(m_WVP, pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.c0 = calc_model_lq_lighting(norm_w); + o.fog = calc_fogging(float4(pos_w, 1)); // fog, input in world coords + +#ifdef SKIN_COLOR + o.c0.rgb *= v.rgb_tint; +#endif + + return o; +} + +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_def_point.vs.hlsl b/gamedata/shaders/r1/model_def_point.vs.hlsl new file mode 100644 index 0000000..6064450 --- /dev/null +++ b/gamedata/shaders/r1/model_def_point.vs.hlsl @@ -0,0 +1,21 @@ +#include "common.hlsli" +#include "skin.hlsli" + +vf_point _main(v_model v) +{ + vf_point o; + + float4 pos = v.pos; + float3 pos_w = mul(m_W, pos); + float4 pos_w4 = float4(pos_w, 1); + float3 norm_w = normalize(mul(m_W, v.norm)); + + o.hpos = mul(m_WVP, pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.color = calc_point(o.tc1, o.tc2, pos_w4, norm_w); // just hemisphere + + return o; +} + +#define SKIN_VF vf_point +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_def_shadow.vs.hlsl b/gamedata/shaders/r1/model_def_shadow.vs.hlsl new file mode 100644 index 0000000..b5cab1b --- /dev/null +++ b/gamedata/shaders/r1/model_def_shadow.vs.hlsl @@ -0,0 +1,21 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float4 c0 : COLOR0; // color +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.pos); // xform, input in world coords + o.c0 = 0; + return o; +} + +#define SKIN_LQ +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_def_spot.vs.hlsl b/gamedata/shaders/r1/model_def_spot.vs.hlsl new file mode 100644 index 0000000..93581ce --- /dev/null +++ b/gamedata/shaders/r1/model_def_spot.vs.hlsl @@ -0,0 +1,21 @@ +#include "common.hlsli" +#include "skin.hlsli" + +vf_spot _main(v_model v) +{ + vf_spot o; + + float4 pos = v.pos; + float3 pos_w = mul(m_W, pos); + float4 pos_w4 = float4(pos_w, 1); + float3 norm_w = normalize(mul(m_W, v.norm)); + + o.hpos = mul(m_WVP, pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.color = calc_spot(o.tc1, o.tc2, pos_w4, norm_w); // just hemisphere + + return o; +} + +#define SKIN_VF vf_spot +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_digiclock_hh.ps.hlsl b/gamedata/shaders/r1/model_digiclock_hh.ps.hlsl new file mode 100644 index 0000000..953e81d --- /dev/null +++ b/gamedata/shaders/r1/model_digiclock_hh.ps.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float digit = m_digiclock.x; + + float2 coords = I.tc0; + coords.x = digit + (coords.x * 0.1); + float4 t_base = tex2D (s_base,coords); + + //получаем пикÑель шума и маÑштабируем его в ÑоответÑтвии Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ уровнем проблем + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb+0.1; + + return t_base; +} \ No newline at end of file diff --git a/gamedata/shaders/r1/model_digiclock_hl.ps.hlsl b/gamedata/shaders/r1/model_digiclock_hl.ps.hlsl new file mode 100644 index 0000000..44243fb --- /dev/null +++ b/gamedata/shaders/r1/model_digiclock_hl.ps.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float digit = m_digiclock.y; + + float2 coords = I.tc0; + coords.x = digit + (coords.x * 0.1); + float4 t_base = tex2D (s_base,coords); + + //получаем пикÑель шума и маÑштабируем его в ÑоответÑтвии Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ уровнем проблем + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb+0.1; + + return t_base; +} \ No newline at end of file diff --git a/gamedata/shaders/r1/model_digiclock_mh.ps.hlsl b/gamedata/shaders/r1/model_digiclock_mh.ps.hlsl new file mode 100644 index 0000000..3650a1c --- /dev/null +++ b/gamedata/shaders/r1/model_digiclock_mh.ps.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float digit = m_digiclock.z; + + float2 coords = I.tc0; + coords.x = digit + (coords.x * 0.1); + float4 t_base = tex2D (s_base,coords); + + //получаем пикÑель шума и маÑштабируем его в ÑоответÑтвии Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ уровнем проблем + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb+0.1; + + return t_base; +} \ No newline at end of file diff --git a/gamedata/shaders/r1/model_digiclock_ml.ps.hlsl b/gamedata/shaders/r1/model_digiclock_ml.ps.hlsl new file mode 100644 index 0000000..fe623a9 --- /dev/null +++ b/gamedata/shaders/r1/model_digiclock_ml.ps.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float digit = m_digiclock.a; + + float2 coords = I.tc0; + coords.x = digit + (coords.x * 0.1); + float4 t_base = tex2D (s_base,coords); + + //получаем пикÑель шума и маÑштабируем его в ÑоответÑтвии Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ уровнем проблем + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb+0.1; + + return t_base; +} \ No newline at end of file diff --git a/gamedata/shaders/r1/model_distort.vs.hlsl b/gamedata/shaders/r1/model_distort.vs.hlsl new file mode 100644 index 0000000..21bd894 --- /dev/null +++ b/gamedata/shaders/r1/model_distort.vs.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.pos)); + float3 norm_v = normalize(mul(m_WV, v.norm)); + float fade = 1 - abs(dot(dir_v, norm_v)); + o.c0 = fade; + + return o; +} + +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_distort2t.vs.hlsl b/gamedata/shaders/r1/model_distort2t.vs.hlsl new file mode 100644 index 0000000..aa6074c --- /dev/null +++ b/gamedata/shaders/r1/model_distort2t.vs.hlsl @@ -0,0 +1,30 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // another + float4 c0 : COLOR0; // color +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.pos)); + float3 norm_v = normalize(mul(m_WV, v.norm)); + float fade = abs(dot(dir_v, norm_v)); + o.c0 = fade; + o.tc1 = fade; + + return o; +} + +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_distort4ghost.vs.hlsl b/gamedata/shaders/r1/model_distort4ghost.vs.hlsl new file mode 100644 index 0000000..a604428 --- /dev/null +++ b/gamedata/shaders/r1/model_distort4ghost.vs.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.pos)); + float3 norm_v = normalize(mul(m_WV, v.norm)); + float fade = 0.9 * abs(dot(dir_v, norm_v)); + o.c0 = fade; + + return o; +} + +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_distort4glass.vs.hlsl b/gamedata/shaders/r1/model_distort4glass.vs.hlsl new file mode 100644 index 0000000..a604428 --- /dev/null +++ b/gamedata/shaders/r1/model_distort4glass.vs.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.pos)); + float3 norm_v = normalize(mul(m_WV, v.norm)); + float fade = 0.9 * abs(dot(dir_v, norm_v)); + o.c0 = fade; + + return o; +} + +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_distort_inv.vs.hlsl b/gamedata/shaders/r1/model_distort_inv.vs.hlsl new file mode 100644 index 0000000..74fd144 --- /dev/null +++ b/gamedata/shaders/r1/model_distort_inv.vs.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.pos)); + float3 norm_v = normalize(mul(m_WV, v.norm)); + float fade = abs(dot(dir_v, norm_v)); + o.c0 = fade; + + return o; +} + +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_env.ps.hlsl b/gamedata/shaders/r1/model_env.ps.hlsl new file mode 100644 index 0000000..3640811 --- /dev/null +++ b/gamedata/shaders/r1/model_env.ps.hlsl @@ -0,0 +1,21 @@ +#include "common.hlsli" + +struct v2p +{ + float4 diffuse : COLOR0; + float4 tc0 : TEXCOORD0; // projector + float4 tc1 : TEXCOORD1; // env + float4 tc2 : TEXCOORD2; // base +}; + +uniform sampler2D s_projector; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 light = I.diffuse + tex2D(s_projector, I.tc0); + float4 t_env = texCUBE(s_env, I.tc1); + float4 t_base = tex2D(s_base, I.tc2); + float4 base = lerp(t_env, t_base, t_base.a); + return light * base * 2; +} diff --git a/gamedata/shaders/r1/model_env_hq.ps.hlsl b/gamedata/shaders/r1/model_env_hq.ps.hlsl new file mode 100644 index 0000000..c3ce299 --- /dev/null +++ b/gamedata/shaders/r1/model_env_hq.ps.hlsl @@ -0,0 +1,32 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float3 tc1 : TEXCOORD1; // environment + float4 tc2 : TEXCOORD2; // lmap + float3 c0 : COLOR0; // sun + float4 c1 : COLOR1; // lq-color + factor + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_env = texCUBE(s_env, I.tc1); + float4 t_lmap = tex2Dproj(s_lmap, I.tc2); + + // lighting + float3 l_base = t_lmap.rgb; // base light-map (lmap color, ambient, hemi, etc - inside) + float3 l_sun = I.c0 * t_lmap.a; // sun color + float3 light = lerp(l_base + l_sun, I.c1, I.c1.w); + + // final-color + float3 base = lerp(t_env, t_base, t_base.a); + float3 final = light * base * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + + // out + return float4(final.r, final.g, final.b, t_base.a); +} diff --git a/gamedata/shaders/r1/model_env_hq.vs.hlsl b/gamedata/shaders/r1/model_env_hq.vs.hlsl new file mode 100644 index 0000000..7d9de6d --- /dev/null +++ b/gamedata/shaders/r1/model_env_hq.vs.hlsl @@ -0,0 +1,41 @@ +#include "common.hlsli" +#include "skin.hlsli" + +// #define SKIN_2 + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float3 tc1 : TEXCOORD1; // environment + float4 tc2 : TEXCOORD2; // projected lmap + float3 c0 : COLOR0; // sun-color + float4 c1 : COLOR1; // lq-color + factor + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + float4 pos = v.pos; + float3 pos_w = mul(m_W, pos); + float4 pos_w4 = float4(pos_w, 1); + float3 norm_w = normalize(mul(m_W, v.norm)); + + o.hpos = mul(m_WVP, pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.tc1 = calc_reflection(pos_w, norm_w); + o.tc2 = calc_model_lmap(pos_w); // + o.c0 = calc_sun(norm_w); // sun + o.c1 = float4(calc_model_lq_lighting(norm_w), m_plmap_clamp[0].w); + o.fog = calc_fogging(pos_w4); // fog, input in world coords +#ifdef SKIN_COLOR + o.c1.rgb *= v.rgb_tint; + o.c1.w = 1; +#endif + return o; +} + +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_env_lq.ps.hlsl b/gamedata/shaders/r1/model_env_lq.ps.hlsl new file mode 100644 index 0000000..a9b9d72 --- /dev/null +++ b/gamedata/shaders/r1/model_env_lq.ps.hlsl @@ -0,0 +1,24 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float3 tc1 : TEXCOORD1; // environment + float3 c0 : COLOR0; // sun + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_env = texCUBE(s_env, I.tc1); + + float3 base = lerp(t_env, t_base, t_base.a); + float3 light = I.c0; + float3 final = light * base * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + + // out + return float4(final.r, final.g, final.b, t_base.a); +} diff --git a/gamedata/shaders/r1/model_env_lq.vs.hlsl b/gamedata/shaders/r1/model_env_lq.vs.hlsl new file mode 100644 index 0000000..0afacf7 --- /dev/null +++ b/gamedata/shaders/r1/model_env_lq.vs.hlsl @@ -0,0 +1,35 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float3 tc1 : TEXCOORD1; // environment + float3 c0 : COLOR0; // color + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + float4 pos = v.pos; + float3 pos_w = mul(m_W, pos); + float3 norm_w = normalize(mul(m_W, v.norm)); + + o.hpos = mul(m_WVP, pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.tc1 = calc_reflection(pos_w, norm_w); + o.c0 = calc_model_lq_lighting(norm_w); + o.fog = calc_fogging(float4(pos_w, 1)); // fog, input in world coords + +#ifdef SKIN_COLOR + o.c0.rgb *= v.rgb_tint; +#endif + return o; +} + +#define SKIN_LQ +#define SKIN_VF vf +#include "skin_main.hlsli" diff --git a/gamedata/shaders/r1/model_env_sl.ps.hlsl b/gamedata/shaders/r1/model_env_sl.ps.hlsl new file mode 100644 index 0000000..4891b6b --- /dev/null +++ b/gamedata/shaders/r1/model_env_sl.ps.hlsl @@ -0,0 +1,23 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float3 tc1 : TEXCOORD1; // environment + float2 tc2 : TEXCOORD2; // lmap + float3 c0 : COLOR0; // sun + float4 c1 : COLOR1; // lq-color + factor +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_env = texCUBE(s_env, I.tc1); + + // final-color + float3 final = lerp(t_env, t_base, t_base.a); + + // out + return float4(final.r, final.g, final.b, t_base.a); +} diff --git a/gamedata/shaders/r1/model_exohealth.ps.hlsl b/gamedata/shaders/r1/model_exohealth.ps.hlsl new file mode 100644 index 0000000..156af68 --- /dev/null +++ b/gamedata/shaders/r1/model_exohealth.ps.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float4 t_base = tex2D (s_base,I.tc0); + t_base.g += clamp(0.5-abs(m_actor_params.y-0.5), 0, 0.5)*t_base.a; + t_base.r += (1-m_actor_params.y)*t_base.a; + + //ïîëó÷àåì ïèêñåëü øóìà è ìàñøòàáèðóåì åãî â ñîîòâåòñòâèè ñ òåêóùèì óðîâíåì ïðîáëåì + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb; + + return float4 (t_base.r, t_base.g, t_base.b, 1); +} + + diff --git a/gamedata/shaders/r1/model_exoscreen.ps.hlsl b/gamedata/shaders/r1/model_exoscreen.ps.hlsl new file mode 100644 index 0000000..5adfac9 --- /dev/null +++ b/gamedata/shaders/r1/model_exoscreen.ps.hlsl @@ -0,0 +1,22 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float2 tc1: TEXCOORD1; // lmap + float4 c0: COLOR0; // sun +}; + +////////////////////////////////////////////////////////////////////////////////////////// +// Pixel +float4 main ( v2p I ) : COLOR +{ + float4 t_base = tex2D (s_base,I.tc0); + + //ïîëó÷àåì ïèêñåëü øóìà è ìàñøòàáèðóåì åãî â ñîîòâåòñòâèè ñ òåêóùèì óðîâíåì ïðîáëåì + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb; + + // out + return float4 (t_base.r,t_base.g,t_base.b,t_base.a * I.c0.a); +} diff --git a/gamedata/shaders/r1/model_green_conditionbar.ps.hlsl b/gamedata/shaders/r1/model_green_conditionbar.ps.hlsl new file mode 100644 index 0000000..be7eb92 --- /dev/null +++ b/gamedata/shaders/r1/model_green_conditionbar.ps.hlsl @@ -0,0 +1,22 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float4 t_base = tex2D (s_base,I.tc0); + t_base.a = (I.tc0.x < m_actor_params.z) ? 1 : 0; + t_base.r += (0.5 < m_actor_params.z) ? 0 : 0.5; + t_base.g -= (0.25 < m_actor_params.z) ? 0 : 0.5; + + return float4 (t_base.r, t_base.g, t_base.b, t_base.a); +} + + diff --git a/gamedata/shaders/r1/model_green_energybar.ps.hlsl b/gamedata/shaders/r1/model_green_energybar.ps.hlsl new file mode 100644 index 0000000..96e437b --- /dev/null +++ b/gamedata/shaders/r1/model_green_energybar.ps.hlsl @@ -0,0 +1,26 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float4 t_base = tex2D (s_base,I.tc0); + t_base.a = (I.tc0.x < m_actor_params.a) ? 1 : 0; + t_base.r += (0.1 < m_actor_params.a) ? 0 : 0.5; + t_base.g -= (0.1 < m_actor_params.a) ? 0 : 0.5; + + //ïîëó÷àåì ïèêñåëü øóìà è ìàñøòàáèðóåì åãî â ñîîòâåòñòâèè ñ òåêóùèì óðîâíåì ïðîáëåì + float4 t_noise = tex2D(s_lmap, I.tc0) * m_affects.x * 2; + t_base.rgb += t_noise.rgb; + + return float4 (t_base.r, t_base.g, t_base.b, t_base.a); +} + + diff --git a/gamedata/shaders/r1/model_pda_screen.ps.hlsl b/gamedata/shaders/r1/model_pda_screen.ps.hlsl new file mode 100644 index 0000000..34da217 --- /dev/null +++ b/gamedata/shaders/r1/model_pda_screen.ps.hlsl @@ -0,0 +1,30 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +// Pixel +uniform sampler2D s_vp2; +uniform sampler2D s_load; +uniform sampler2D s_noise; + +//float4 problems_main( v2p I ) +float4 main ( v2p I ) : COLOR +{ + //выбираем оÑновное изображение, которое выведетÑÑ Ð½Ð° Ñкран + float4 t_vp2 = ( m_affects.a * m_affects.x > 0 ) ? tex2D(s_load, I.tc0) : ((m_affects.x < 0.27) ? tex2D(s_vp2, I.tc0) : tex2D(s_base, I.tc0)); + + //получаем пикÑель шума и маÑштабируем его в ÑоответÑтвии Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ уровнем проблем + float4 t_noise = tex2D(s_noise, I.tc0) * m_affects.x * (1-m_affects.a) * 2; + //t_vp2.rgb += t_noise.rgb; + + t_vp2.rgb = (m_affects.x > 0.41) ? 0 : t_vp2.rgb + t_noise.rgb; + + return float4 (t_vp2.r, t_vp2.g, t_vp2.b, 1); +} \ No newline at end of file diff --git a/gamedata/shaders/r1/model_scope_gauss.ps.hlsl b/gamedata/shaders/r1/model_scope_gauss.ps.hlsl new file mode 100644 index 0000000..2350bf7 --- /dev/null +++ b/gamedata/shaders/r1/model_scope_gauss.ps.hlsl @@ -0,0 +1,36 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +// Pixel +uniform sampler2D s_vp2; +uniform sampler2D s_noise; + +float4 main ( v2p I ) : COLOR +{ + float4 t_base = tex2D (s_base,I.tc0); + + + I.tc0.x = (I.tc0.x-0.5f)*m_hud_params.x+0.5f+m_zoom_deviation.x; // РаÑÑ‚Ñгиваем картинку в линзе так, чтобы на любом разрешении Ñкрана были правильные пропорции + I.tc0.y = I.tc0.y+m_zoom_deviation.y; + float4 t_vp2 = tex2D (s_vp2, I.tc0); // Изображение Ñо второго вьюпорта + + t_vp2.b = t_vp2.b + (t_vp2.r + t_vp2.g + t_vp2.b+1)*m_zoom_deviation.z; + + //получаем пикÑель шума и маÑштабируем его в ÑоответÑтвии Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ уровнем проблем + float4 t_noise = tex2D(s_noise, I.tc0) * m_affects.x * 2; + t_vp2.rgb += t_noise.rgb; + + // МикÑуем Ñ Ñеткой + float4 res = lerp (t_vp2, t_base, t_base.a); + + // out + return float4 (res.r, res.g, res.b, min(m_hud_params.y, m_hud_params.a)); +} diff --git a/gamedata/shaders/r1/model_scope_lense.ps.hlsl b/gamedata/shaders/r1/model_scope_lense.ps.hlsl new file mode 100644 index 0000000..9fbbff7 --- /dev/null +++ b/gamedata/shaders/r1/model_scope_lense.ps.hlsl @@ -0,0 +1,36 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +// Pixel +uniform sampler2D s_vp2; + +float4 main ( v2p I ) : COLOR +{ + + float4 t_base = tex2D (s_base,I.tc0); + + + I.tc0.x = (I.tc0.x-0.5f)*m_hud_params.x+0.5f+m_zoom_deviation.x; // РаÑÑ‚Ñгиваем картинку в линзе так, чтобы на любом разрешении Ñкрана были правильные пропорции + I.tc0.y = I.tc0.y+m_zoom_deviation.y; + float4 t_vp2 = tex2D (s_vp2, I.tc0); // Изображение Ñо второго вьюпорта + + + float4 final = float4 (0, 0, 0, 0); + + { //** Стандартный режим **// + // МикÑуем вÑÑ‘ и Ñобираем финальную картинку + float4 base = lerp (t_vp2, t_base, t_base.a); // Сетку Ñ Ð²ÑŒÑŽÐ¿Ð¾Ñ€Ñ‚Ð¾Ð¼ + final = base; + } + + // out + return float4 (final.r, final.g, final.b, min(m_hud_params.y, m_hud_params.a)); +} diff --git a/gamedata/shaders/r1/model_scope_lense_lerp.ps.hlsl b/gamedata/shaders/r1/model_scope_lense_lerp.ps.hlsl new file mode 100644 index 0000000..1e5119f --- /dev/null +++ b/gamedata/shaders/r1/model_scope_lense_lerp.ps.hlsl @@ -0,0 +1,36 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +// Pixel +uniform sampler2D s_vp2; +uniform sampler2D s_base2; + +float4 main (v2p I) : COLOR +{ + // Производим выборку правой и левой половин текÑтуры Ñ Ñеткой + float2 coords = I.tc0; + coords.x *= 0.5; + float4 base2 = tex2D(s_base2, coords); + coords.x += 0.5; + float4 t_base = tex2D(s_base, coords); + // МикÑуем половинки в ÑоответÑтвии Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ уровнем подÑветки + t_base = lerp(base2, t_base, m_zoom_deviation.z); + + // ÐšÐ¾Ñ€Ñ€ÐµÐºÑ†Ð¸Ñ Ð¿Ñ€Ð¾Ð¿Ð¾Ñ€Ñ†Ð¸Ð¹ в завиÑимоÑти от Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ + I.tc0.x = (I.tc0.x - 0.5f) * m_hud_params.x + 0.5f + m_zoom_deviation.x; + I.tc0.y = I.tc0.y + m_zoom_deviation.y; + float4 t_vp2 = tex2D(s_vp2, I.tc0); + + + float4 final = lerp(t_vp2, t_base, t_base.a); + // out + return float4(final.r, final.g, final.b, min(m_hud_params.y, m_hud_params.a)); +} diff --git a/gamedata/shaders/r1/model_scope_lense_night.ps.hlsl b/gamedata/shaders/r1/model_scope_lense_night.ps.hlsl new file mode 100644 index 0000000..9953e0f --- /dev/null +++ b/gamedata/shaders/r1/model_scope_lense_night.ps.hlsl @@ -0,0 +1,36 @@ +#include "common.hlsli" +uniform float4 screen_res; +#include "pnv.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +// Pixel +uniform sampler2D s_vp2; + +float4 main ( v2p I ) : COLOR +{ + + float4 t_base = tex2D (s_base,I.tc0); + + I.tc0.x = (I.tc0.x-0.5f)*m_hud_params.x+0.5f+m_zoom_deviation.x; // РаÑÑ‚Ñгиваем картинку в линзе так, чтобы на любом разрешении Ñкрана были правильные пропорции + I.tc0.y = I.tc0.y+m_zoom_deviation.y; + float4 t_vp2 = tex2D (s_vp2, I.tc0); // Изображение Ñо второго вьюпорта + + float4 final = float4 (0, 0, 0, 0); + + //** Ðочной режим **// //Зеленый ПÐÐ’ + t_vp2.rgb = calc_night_vision_effect(I.tc0, t_vp2, float3(1.0, 2.0, 1.0)); + + // МикÑуем Ñ Ñеткой + float4 res = lerp (t_vp2, t_base, t_base.a); + + // out + return float4 (res.r, res.g, res.b, min(m_hud_params.y, m_hud_params.a)); +} diff --git a/gamedata/shaders/r1/model_shadow.ps.hlsl b/gamedata/shaders/r1/model_shadow.ps.hlsl new file mode 100644 index 0000000..b035e0e --- /dev/null +++ b/gamedata/shaders/r1/model_shadow.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +struct v2p +{ + float4 c0 : COLOR0; // color +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + // out + return I.c0; +} diff --git a/gamedata/shaders/r1/model_tricolor_conditionbar.ps.hlsl b/gamedata/shaders/r1/model_tricolor_conditionbar.ps.hlsl new file mode 100644 index 0000000..b0f8580 --- /dev/null +++ b/gamedata/shaders/r1/model_tricolor_conditionbar.ps.hlsl @@ -0,0 +1,23 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0: TEXCOORD0; // base + float4 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 main ( v2p I ) : COLOR +{ + float4 t_base; + t_base.r = ((m_actor_params.z<0.5) && (I.tc0.x < m_actor_params.z)) ? 1 : 0; + t_base.g = ((m_actor_params.z>0.25) && (I.tc0.x < m_actor_params.z)) ? 1 : 0; + t_base.b = 0; + t_base.a = (I.tc0.x < m_actor_params.z) ? 1 : 0; + + return float4 (t_base.r, t_base.g, t_base.b, t_base.a); +} + + diff --git a/gamedata/shaders/r1/models_clockarrow_h.lua b/gamedata/shaders/r1/models_clockarrow_h.lua new file mode 100644 index 0000000..475baec --- /dev/null +++ b/gamedata/shaders/r1/models_clockarrow_h.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_clockarrow_h") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture ("$blackalpha") +end diff --git a/gamedata/shaders/r1/models_clockarrow_h_screen.lua b/gamedata/shaders/r1/models_clockarrow_h_screen.lua new file mode 100644 index 0000000..1b02aaf --- /dev/null +++ b/gamedata/shaders/r1/models_clockarrow_h_screen.lua @@ -0,0 +1,16 @@ +function normal (shader, t_base, t_second, t_detail) + shader :begin ("model_def_lqs","model_clockarrow_h") + :fog (true) + :blend (true,blend.srcalpha,blend.invsrcalpha) + + shader:sampler ("s_base"):texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end + +function l_spot (shader, t_base, t_second, t_detail) + r1_lspot (shader, t_base, "model_def_spot") +end + +function l_point (shader, t_base, t_second, t_detail) + r1_lpoint (shader, t_base, "model_def_point") +end diff --git a/gamedata/shaders/r1/models_clockarrow_m.lua b/gamedata/shaders/r1/models_clockarrow_m.lua new file mode 100644 index 0000000..6403087 --- /dev/null +++ b/gamedata/shaders/r1/models_clockarrow_m.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_clockarrow_m") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture ("$blackalpha") +end diff --git a/gamedata/shaders/r1/models_clockarrow_m_screen.lua b/gamedata/shaders/r1/models_clockarrow_m_screen.lua new file mode 100644 index 0000000..f8d7abf --- /dev/null +++ b/gamedata/shaders/r1/models_clockarrow_m_screen.lua @@ -0,0 +1,16 @@ +function normal (shader, t_base, t_second, t_detail) + shader :begin ("model_def_lqs","model_clockarrow_m") + :fog (true) + :blend (true,blend.srcalpha,blend.invsrcalpha) + + shader:sampler ("s_base"):texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end + +function l_spot (shader, t_base, t_second, t_detail) + r1_lspot (shader, t_base, "model_def_spot") +end + +function l_point (shader, t_base, t_second, t_detail) + r1_lpoint (shader, t_base, "model_def_point") +end diff --git a/gamedata/shaders/r1/models_clockarrow_s.lua b/gamedata/shaders/r1/models_clockarrow_s.lua new file mode 100644 index 0000000..7faa7f3 --- /dev/null +++ b/gamedata/shaders/r1/models_clockarrow_s.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_clockarrow_s") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture ("$blackalpha") +end diff --git a/gamedata/shaders/r1/models_clockarrow_s_screen.lua b/gamedata/shaders/r1/models_clockarrow_s_screen.lua new file mode 100644 index 0000000..51e3f26 --- /dev/null +++ b/gamedata/shaders/r1/models_clockarrow_s_screen.lua @@ -0,0 +1,16 @@ +function normal (shader, t_base, t_second, t_detail) + shader :begin ("model_def_lqs","model_clockarrow_s") + :fog (true) + :blend (true,blend.srcalpha,blend.invsrcalpha) + + shader:sampler ("s_base"):texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end + +function l_spot (shader, t_base, t_second, t_detail) + r1_lspot (shader, t_base, "model_def_spot") +end + +function l_point (shader, t_base, t_second, t_detail) + r1_lpoint (shader, t_base, "model_def_point") +end diff --git a/gamedata/shaders/r1/models_collimator.lua b/gamedata/shaders/r1/models_collimator.lua new file mode 100644 index 0000000..7c24361 --- /dev/null +++ b/gamedata/shaders/r1/models_collimator.lua @@ -0,0 +1,10 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_def_lplanes", "base_lplanes_fft") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (false) + shader:sampler ("s_base") :texture (t_base) +end \ No newline at end of file diff --git a/gamedata/shaders/r1/models_collimsight.lua b/gamedata/shaders/r1/models_collimsight.lua new file mode 100644 index 0000000..e9a8b70 --- /dev/null +++ b/gamedata/shaders/r1/models_collimsight.lua @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_def_lplanes","base_lplanes") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/gamedata/shaders/r1/models_compass_arrow.lua b/gamedata/shaders/r1/models_compass_arrow.lua new file mode 100644 index 0000000..9040465 --- /dev/null +++ b/gamedata/shaders/r1/models_compass_arrow.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_compassarrow") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture ("$blackalpha") +end diff --git a/gamedata/shaders/r1/models_compass_arrow_screen.lua b/gamedata/shaders/r1/models_compass_arrow_screen.lua new file mode 100644 index 0000000..3087b78 --- /dev/null +++ b/gamedata/shaders/r1/models_compass_arrow_screen.lua @@ -0,0 +1,16 @@ +function normal (shader, t_base, t_second, t_detail) + shader :begin ("model_def_lqs","model_compassarrow") + :fog (true) + :blend (true,blend.srcalpha,blend.invsrcalpha) + + shader:sampler ("s_base"):texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end + +function l_spot (shader, t_base, t_second, t_detail) + r1_lspot (shader, t_base, "model_def_spot") +end + +function l_point (shader, t_base, t_second, t_detail) + r1_lpoint (shader, t_base, "model_def_point") +end diff --git a/gamedata/shaders/r1/models_compscreen.lua b/gamedata/shaders/r1/models_compscreen.lua new file mode 100644 index 0000000..fc80a15 --- /dev/null +++ b/gamedata/shaders/r1/models_compscreen.lua @@ -0,0 +1,15 @@ +function normal (shader, t_base, t_second, t_detail) + shader :begin ("model_def_lqs","model_compscreen") + :fog (true) + + shader:sampler ("s_base"):texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end + +function l_spot (shader, t_base, t_second, t_detail) + r1_lspot (shader, t_base, "model_def_spot") +end + +function l_point (shader, t_base, t_second, t_detail) + r1_lpoint (shader, t_base, "model_def_point") +end diff --git a/gamedata/shaders/r1/models_condition.lua b/gamedata/shaders/r1/models_condition.lua new file mode 100644 index 0000000..689945e --- /dev/null +++ b/gamedata/shaders/r1/models_condition.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_green_conditionbar") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end diff --git a/gamedata/shaders/r1/models_digiclock_hh_screen.lua b/gamedata/shaders/r1/models_digiclock_hh_screen.lua new file mode 100644 index 0000000..40df709 --- /dev/null +++ b/gamedata/shaders/r1/models_digiclock_hh_screen.lua @@ -0,0 +1,15 @@ +function normal (shader, t_base, t_second, t_detail) + shader :begin ("model_def_lqs","model_digiclock_hh") + :fog (true) + + shader:sampler ("s_base"):texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end + +function l_spot (shader, t_base, t_second, t_detail) + r1_lspot (shader, t_base, "model_def_spot") +end + +function l_point (shader, t_base, t_second, t_detail) + r1_lpoint (shader, t_base, "model_def_point") +end \ No newline at end of file diff --git a/gamedata/shaders/r1/models_digiclock_hl_screen.lua b/gamedata/shaders/r1/models_digiclock_hl_screen.lua new file mode 100644 index 0000000..7508844 --- /dev/null +++ b/gamedata/shaders/r1/models_digiclock_hl_screen.lua @@ -0,0 +1,15 @@ +function normal (shader, t_base, t_second, t_detail) + shader :begin ("model_def_lqs","model_digiclock_hl") + :fog (true) + + shader:sampler ("s_base"):texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end + +function l_spot (shader, t_base, t_second, t_detail) + r1_lspot (shader, t_base, "model_def_spot") +end + +function l_point (shader, t_base, t_second, t_detail) + r1_lpoint (shader, t_base, "model_def_point") +end \ No newline at end of file diff --git a/gamedata/shaders/r1/models_digiclock_mh_screen.lua b/gamedata/shaders/r1/models_digiclock_mh_screen.lua new file mode 100644 index 0000000..f088f62 --- /dev/null +++ b/gamedata/shaders/r1/models_digiclock_mh_screen.lua @@ -0,0 +1,15 @@ +function normal (shader, t_base, t_second, t_detail) + shader :begin ("model_def_lqs","model_digiclock_mh") + :fog (true) + + shader:sampler ("s_base"):texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end + +function l_spot (shader, t_base, t_second, t_detail) + r1_lspot (shader, t_base, "model_def_spot") +end + +function l_point (shader, t_base, t_second, t_detail) + r1_lpoint (shader, t_base, "model_def_point") +end \ No newline at end of file diff --git a/gamedata/shaders/r1/models_digiclock_ml_screen.lua b/gamedata/shaders/r1/models_digiclock_ml_screen.lua new file mode 100644 index 0000000..9092346 --- /dev/null +++ b/gamedata/shaders/r1/models_digiclock_ml_screen.lua @@ -0,0 +1,15 @@ +function normal (shader, t_base, t_second, t_detail) + shader :begin ("model_def_lqs","model_digiclock_ml") + :fog (true) + + shader:sampler ("s_base"):texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end + +function l_spot (shader, t_base, t_second, t_detail) + r1_lspot (shader, t_base, "model_def_spot") +end + +function l_point (shader, t_base, t_second, t_detail) + r1_lpoint (shader, t_base, "model_def_point") +end \ No newline at end of file diff --git a/gamedata/shaders/r1/models_energy_gauss.lua b/gamedata/shaders/r1/models_energy_gauss.lua new file mode 100644 index 0000000..b94e442 --- /dev/null +++ b/gamedata/shaders/r1/models_energy_gauss.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_green_energybar") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end diff --git a/gamedata/shaders/r1/models_exohealth.lua b/gamedata/shaders/r1/models_exohealth.lua new file mode 100644 index 0000000..9ae5f37 --- /dev/null +++ b/gamedata/shaders/r1/models_exohealth.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_exohealth") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end diff --git a/gamedata/shaders/r1/models_exoscreen01.lua b/gamedata/shaders/r1/models_exoscreen01.lua new file mode 100644 index 0000000..ce9c109 --- /dev/null +++ b/gamedata/shaders/r1/models_exoscreen01.lua @@ -0,0 +1,10 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_def_lplanes","model_exoscreen") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture ("ui\\ui_mono_noise") +end diff --git a/gamedata/shaders/r1/models_laserray.lua b/gamedata/shaders/r1/models_laserray.lua new file mode 100644 index 0000000..06fa0bd --- /dev/null +++ b/gamedata/shaders/r1/models_laserray.lua @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_def_lplanes","base_laser") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/gamedata/shaders/r1/models_lense_scope.lua b/gamedata/shaders/r1/models_lense_scope.lua new file mode 100644 index 0000000..e8b21e7 --- /dev/null +++ b/gamedata/shaders/r1/models_lense_scope.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_scope_lense") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_vp2") :texture ("$user$viewport2") +end diff --git a/gamedata/shaders/r1/models_lenses.lua b/gamedata/shaders/r1/models_lenses.lua new file mode 100644 index 0000000..cad1612 --- /dev/null +++ b/gamedata/shaders/r1/models_lenses.lua @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_def_lplanes","base_lplanes") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, false) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/gamedata/shaders/r1/models_lfo_light_dot_weapons.lua b/gamedata/shaders/r1/models_lfo_light_dot_weapons.lua new file mode 100644 index 0000000..6dada58 --- /dev/null +++ b/gamedata/shaders/r1/models_lfo_light_dot_weapons.lua @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("parallax_mark", "parallax_mark") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + shader:sampler ("s_base") :texture (t_base) : clamp() +end diff --git a/gamedata/shaders/r1/models_lightplanes.lua b/gamedata/shaders/r1/models_lightplanes.lua new file mode 100644 index 0000000..e9a8b70 --- /dev/null +++ b/gamedata/shaders/r1/models_lightplanes.lua @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_def_lplanes","base_lplanes") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/gamedata/shaders/r1/models_magazine.lua b/gamedata/shaders/r1/models_magazine.lua new file mode 100644 index 0000000..4b4f477 --- /dev/null +++ b/gamedata/shaders/r1/models_magazine.lua @@ -0,0 +1,12 @@ + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_env_hq","model_env_hq") + : fog (true) + : zb (true,true) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_env") :texture ("sky\\sky_cube_weapons") : clamp() + +end \ No newline at end of file diff --git a/gamedata/shaders/r1/models_pautina.lua b/gamedata/shaders/r1/models_pautina.lua new file mode 100644 index 0000000..6d4efe9 --- /dev/null +++ b/gamedata/shaders/r1/models_pautina.lua @@ -0,0 +1,31 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort4ghost", "particle") -- particle_alphaonly + :sorting(3, true) + :blend(true, blend.srccolor, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(false) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4ghost", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass") --:texture (t_base) -- ("pfx\\pfx_dist_glass2" +end + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_def_lplanes", "base_lplanes") + :fog(false) + :zb(true, false) + :blend(true, blend.srccolor, blend.one) + :aref(true, 0) + :sorting(2, true) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r1/models_pda.lua b/gamedata/shaders/r1/models_pda.lua new file mode 100644 index 0000000..93e89cc --- /dev/null +++ b/gamedata/shaders/r1/models_pda.lua @@ -0,0 +1,14 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_pda_screen") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_vp2") :texture ("$user$ui") + shader:sampler ("s_load") :texture ("ui\\ui_pda_loadscreen") + shader:sampler ("s_noise") :texture ("ui\\ui_mono_noise") +end diff --git a/gamedata/shaders/r1/models_reflex_reticle.lua b/gamedata/shaders/r1/models_reflex_reticle.lua new file mode 100644 index 0000000..6dada58 --- /dev/null +++ b/gamedata/shaders/r1/models_reflex_reticle.lua @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("parallax_mark", "parallax_mark") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + shader:sampler ("s_base") :texture (t_base) : clamp() +end diff --git a/gamedata/shaders/r1/models_selflight.lua b/gamedata/shaders/r1/models_selflight.lua new file mode 100644 index 0000000..8de8227 --- /dev/null +++ b/gamedata/shaders/r1/models_selflight.lua @@ -0,0 +1,13 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_def_lqs", "simple") + :fog(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "model_def_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "model_def_point") +end diff --git a/gamedata/shaders/r1/models_selflight_det.lua b/gamedata/shaders/r1/models_selflight_det.lua new file mode 100644 index 0000000..8de8227 --- /dev/null +++ b/gamedata/shaders/r1/models_selflight_det.lua @@ -0,0 +1,13 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_def_lqs", "simple") + :fog(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "model_def_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "model_def_point") +end diff --git a/gamedata/shaders/r1/models_selflightl.lua b/gamedata/shaders/r1/models_selflightl.lua new file mode 100644 index 0000000..8de8227 --- /dev/null +++ b/gamedata/shaders/r1/models_selflightl.lua @@ -0,0 +1,13 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_def_lqs", "simple") + :fog(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "model_def_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "model_def_point") +end diff --git a/gamedata/shaders/r1/models_xanomaly.lua b/gamedata/shaders/r1/models_xanomaly.lua new file mode 100644 index 0000000..9d5b538 --- /dev/null +++ b/gamedata/shaders/r1/models_xanomaly.lua @@ -0,0 +1,89 @@ +--[[ +function l_spot (shader, t_base, t_second, t_detail) + r1_lspot (shader, t_base, "model_def_spot") +end + +function l_point (shader, t_base, t_second, t_detail) + r1_lpoint (shader, t_base, "model_def_point") +end + + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort4glass","particle") + : sorting (2,true) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : zb (true,true) + : fog (false) + : distort (false) + shader:sampler ("s_base") :texture (t_base) +end + +function l_special (shader, t_base, t_second, t_detail) + shader:begin ("model_distort4glass","particle_distort") + : sorting (2, true) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : zb (true,true) + : fog (false) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_distort") :texture ("pfx\\pfx_dist_glass3") +end + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_env_hq","model_env_sl") + : fog (false) + : zb (true,true) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (3, false) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_env") :texture ("sky\\sky_5_cube") + : clamp() +end +]] + +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "model_def_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "model_def_point") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass3") +end + +function normal_hq(shader, t_base, t_second, t_detail) + shader:begin("model_env_hq", "model_env_hq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() + shader:sampler("s_lmap"):texture("$user$projector") + :clamp() + :f_linear() + :project(true) +end + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_env_lq", "model_env_lq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() +end diff --git a/gamedata/shaders/r1/models_xdistort.lua b/gamedata/shaders/r1/models_xdistort.lua new file mode 100644 index 0000000..870cb70 --- /dev/null +++ b/gamedata/shaders/r1/models_xdistort.lua @@ -0,0 +1,10 @@ +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort") + :sorting(3, false) + :blend(true, blend.srccolor, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r1/models_xdistortcolor.lua b/gamedata/shaders/r1/models_xdistortcolor.lua new file mode 100644 index 0000000..ecf867a --- /dev/null +++ b/gamedata/shaders/r1/models_xdistortcolor.lua @@ -0,0 +1,21 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle") -- particle_alphaonly + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort") + :sorting(3, false) + :blend(true, blend.srccolor, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r1/models_xdistortcolorl.lua b/gamedata/shaders/r1/models_xdistortcolorl.lua new file mode 100644 index 0000000..a707b46 --- /dev/null +++ b/gamedata/shaders/r1/models_xdistortcolorl.lua @@ -0,0 +1,21 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle") -- particle_alphaonly + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r1/models_xdistortcolorlinv.lua b/gamedata/shaders/r1/models_xdistortcolorlinv.lua new file mode 100644 index 0000000..3c55b1b --- /dev/null +++ b/gamedata/shaders/r1/models_xdistortcolorlinv.lua @@ -0,0 +1,21 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort_inv", "particle") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r1/models_xdistortinv.lua b/gamedata/shaders/r1/models_xdistortinv.lua new file mode 100644 index 0000000..d060712 --- /dev/null +++ b/gamedata/shaders/r1/models_xdistortinv.lua @@ -0,0 +1,21 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort_inv", "particle_alphaonly") -- particle_alphaonly + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort_inv", "particle_distort") + :sorting(3, false) + :blend(true, blend.srccolor, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r1/models_xglass.lua b/gamedata/shaders/r1/models_xglass.lua new file mode 100644 index 0000000..8ddbc35 --- /dev/null +++ b/gamedata/shaders/r1/models_xglass.lua @@ -0,0 +1,44 @@ +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "model_def_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "model_def_point") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass2") +end + +function normal_hq(shader, t_base, t_second, t_detail) + shader:begin("model_env_hq", "model_env_hq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() + shader:sampler("s_lmap"):texture("$user$projector") + :clamp() + :f_linear() + :project(true) +end + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_env_lq", "model_env_lq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() +end diff --git a/gamedata/shaders/r1/models_xglass2.lua b/gamedata/shaders/r1/models_xglass2.lua new file mode 100644 index 0000000..b9b7af2 --- /dev/null +++ b/gamedata/shaders/r1/models_xglass2.lua @@ -0,0 +1,44 @@ +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "model_def_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "model_def_point") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass3") +end + +function normal_hq(shader, t_base, t_second, t_detail) + shader:begin("model_env_hq", "model_env_hq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() + shader:sampler("s_lmap"):texture("$user$projector") + :clamp() + :f_linear() + :project(true) +end + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_env_lq", "model_env_lq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() +end diff --git a/gamedata/shaders/r1/models_xlens.lua b/gamedata/shaders/r1/models_xlens.lua new file mode 100644 index 0000000..25811b1 --- /dev/null +++ b/gamedata/shaders/r1/models_xlens.lua @@ -0,0 +1,44 @@ +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "model_def_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "model_def_point") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture("pfx\\pfx_dist_lens_base") --(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_lens") +end + +function normal_hq(shader, t_base, t_second, t_detail) + shader:begin("model_env_hq", "model_env_hq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() + shader:sampler("s_lmap"):texture("$user$projector") + :clamp() + :f_linear() + :project(true) +end + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_env_lq", "model_env_lq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() +end diff --git a/gamedata/shaders/r1/models_xmonolith.lua b/gamedata/shaders/r1/models_xmonolith.lua new file mode 100644 index 0000000..ff3fdc2 --- /dev/null +++ b/gamedata/shaders/r1/models_xmonolith.lua @@ -0,0 +1,44 @@ +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "model_def_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "model_def_point") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass4") +end + +function normal_hq(shader, t_base, t_second, t_detail) + shader:begin("model_env_hq", "model_env_hq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() + shader:sampler("s_lmap"):texture("$user$projector") + :clamp() + :f_linear() + :project(true) +end + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_env_lq", "model_env_lq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() +end diff --git a/gamedata/shaders/r1/models_xwindows.lua b/gamedata/shaders/r1/models_xwindows.lua new file mode 100644 index 0000000..b708141 --- /dev/null +++ b/gamedata/shaders/r1/models_xwindows.lua @@ -0,0 +1,44 @@ +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "model_def_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "model_def_point") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true):distort(false) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass") +end + +function normal_hq(shader, t_base, t_second, t_detail) + shader:begin("model_env_hq", "model_env_hq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() + shader:sampler("s_lmap"):texture("$user$projector") + :clamp() + :f_linear() + :project(true) +end + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_env_lq", "model_env_lq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() +end diff --git a/gamedata/shaders/r1/models_zoom.lua b/gamedata/shaders/r1/models_zoom.lua new file mode 100644 index 0000000..edecaa3 --- /dev/null +++ b/gamedata/shaders/r1/models_zoom.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_scope_lense") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_vp2") :texture ("$user$scope") +end diff --git a/gamedata/shaders/r1/models_zoom_gauss.lua b/gamedata/shaders/r1/models_zoom_gauss.lua new file mode 100644 index 0000000..1825085 --- /dev/null +++ b/gamedata/shaders/r1/models_zoom_gauss.lua @@ -0,0 +1,13 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_scope_gauss") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_vp2") :texture ("$user$scopeui") + shader:sampler ("s_noise") :texture ("ui\\ui_mono_noise") +end diff --git a/gamedata/shaders/r1/models_zoom_lerp.lua b/gamedata/shaders/r1/models_zoom_lerp.lua new file mode 100644 index 0000000..0389448 --- /dev/null +++ b/gamedata/shaders/r1/models_zoom_lerp.lua @@ -0,0 +1,13 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_scope_lense_lerp") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_base2") :texture (t_base) + shader:sampler ("s_vp2") :texture ("$user$scope") +end diff --git a/gamedata/shaders/r1/models_zoomnight.lua b/gamedata/shaders/r1/models_zoomnight.lua new file mode 100644 index 0000000..625e27f --- /dev/null +++ b/gamedata/shaders/r1/models_zoomnight.lua @@ -0,0 +1,13 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_scope_lense_night") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_vp2") :texture ("$user$scope") + shader:sampler ("s_noise") :texture ("ui\\ui_mono_noise") +end diff --git a/gamedata/shaders/r1/parallax_mark.ps.hlsl b/gamedata/shaders/r1/parallax_mark.ps.hlsl new file mode 100644 index 0000000..7053eeb --- /dev/null +++ b/gamedata/shaders/r1/parallax_mark.ps.hlsl @@ -0,0 +1,100 @@ +/* + ===================================================================== + Addon : Parallax Reflex Sights + Link : https://www.moddb.com/mods/stalker-anomaly/addons/parallax-reflex-sights + Authors : LVutner, party_50 + Date : 06.02.2024 + Last Edit : 06.02.2024 + Info : Ported back to shitX9 by LVutner + ===================================================================== +*/ + +#include "common.hlsli" + +// Important: +// In perfect world OFFSET constants should be 0, but most of reflex sight lenses +// are not actually parallel to screen, so we compensate it. For PROJECT_DISTANCE=100 +// offset values should be at least 0.005 even for perfect models and position configs due +// to normal vectors resolution. +// +// If you want the most realistic look, set PROJECT_DISTANCE to some high value (like 100.0), +// increase SIZE_FACTOR to something like 20.0, set OFFSET_X and OFFSET_Y to 0.005. +// Then you will have to adjust models so that mark texture point is exactly in center +// and edit aim position in configs. + +#define OFFSET_X 0.004 // (default 0.004) Normal vector x coordinate max absolute value which is considered 0 +#define OFFSET_Y 0.05 // (default 0.05) Normal vector y coordinate max absolute value which is considered 0 +#define PROJECT_DISTANCE 20.0 // (default 20.0) Distance to projected mark +#define SIZE_FACTOR 4.0 // (default 4.0) Mark size factor + +// Vertex to Pixel struct +struct vf +{ + float2 tc0 : TEXCOORD0; + float3 v_pos : TEXCOORD1; + float3 v_nrm : TEXCOORD2; +}; + +// This gives us cotangent basis that can be used instead of TBN. +// It is useful when tangents of your mesh are broken, or not available. +// Source: http://www.thetenthplanet.de/archives/1180 +float3x3 cotangent_frame(float3 N, float3 P, float2 uv) +{ + // Get edge vectors of the pixel triangle + float3 dp1 = ddx(P); + float3 dp2 = ddy(P); + float2 duv1 = ddx(uv); + float2 duv2 = ddy(uv); + + // Solve the linear system + float3 dp2perp = cross(dp2, N); + float3 dp1perp = cross(N, dp1); + float3 T = dp2perp * duv1.x + dp1perp * duv2.x; + float3 B = dp2perp * duv1.y + dp1perp * duv2.y; + + // Construct a scale-invariant frame + float invmax = rsqrt(max(dot(T, T), dot(B, B))); + return float3x3(T * invmax, B * invmax, N); +} + +// If N.xy vector is close to zero, make it zero +float3 offset_normal(float3 N) +{ + if (N.x > 0) + N.x = max(N.x, OFFSET_X) - OFFSET_X; + else + N.x = min(N.x, -OFFSET_X) + OFFSET_X; + + if (N.y > 0) + N.y = max(N.y, OFFSET_Y) - OFFSET_Y; + else + N.y = min(N.y, -OFFSET_Y) + OFFSET_Y; + + return N; +} + +float4 main(vf I) : COLOR +{ + // Derive view direction from view space position + float3 V = -I.v_pos; + + // Build cotangent frame + // Important: In theory, you don't need to do this. It should be possible to pass TBN straight from VS + float3x3 TBN = cotangent_frame(offset_normal(I.v_nrm), I.v_pos, I.tc0.xy); + + // Transform view direction to tangent space, and normalize (Just in case) + float3 V_tangent = normalize(float3(dot(V, TBN[0]), dot(V, TBN[1]), dot(V, TBN[2]))); + + // Calculate texture coordinates used to fetch the mark texture + // Important: PROJECT_DISTANCE can be positive or negative, 0 = no projection at all + float2 parallax_tc = I.tc0 - V_tangent.xy * PROJECT_DISTANCE; + + // Upscaling the texture + parallax_tc.x = (parallax_tc.x + (SIZE_FACTOR - 1) / 2) / SIZE_FACTOR; + parallax_tc.y = (parallax_tc.y + (SIZE_FACTOR - 1) / 2) / SIZE_FACTOR; + + // Fetch the mark texture + // Important: We do not want texture to repeat itself, so we use sampler with CLAMP address + // Important2: We do not want to sample mip levels of the mark texture, let's keep this thing sharp as fuck + return tex2Dlod(s_base, float4(parallax_tc, 0.0, 0.0)); +} diff --git a/gamedata/shaders/r1/parallax_mark.vs.hlsl b/gamedata/shaders/r1/parallax_mark.vs.hlsl new file mode 100644 index 0000000..f4ff80d --- /dev/null +++ b/gamedata/shaders/r1/parallax_mark.vs.hlsl @@ -0,0 +1,49 @@ +#include "common.hlsli" +#include "skin.hlsli" + +// Vertex to Pixel struct +struct vf +{ + float2 tc0 : TEXCOORD0; + float3 v_pos : TEXCOORD1; + float3 v_nrm : TEXCOORD2; + float4 hpos : POSITION; +}; + +vf _main (v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.pos); // Homogenous position + o.tc0 = v.tc.xy; //Texture coordinates + + o.v_pos = mul(m_WV, v.pos).xyz; // Position in view space + o.v_nrm = mul(m_WV, v.norm).xyz; // Normal in view space + + return o; +} + +//Skinning +#ifdef SKIN_NONE +vf main(v_model v) { return _main(v); } +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) { return _main(skinning_0(v)); } +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) { return _main(skinning_1(v)); } +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) { return _main(skinning_2(v)); } +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) { return _main(skinning_3(v)); } +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) { return _main(skinning_4(v)); } +#endif diff --git a/gamedata/shaders/r1/particle.ps.hlsl b/gamedata/shaders/r1/particle.ps.hlsl new file mode 100644 index 0000000..f90bbb1 --- /dev/null +++ b/gamedata/shaders/r1/particle.ps.hlsl @@ -0,0 +1,16 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 result = I.c * tex2D(s_base, I.tc0); + clip(result.a - (0.01f / 255.0f)); + + return result; +} diff --git a/gamedata/shaders/r1/particle.vs.hlsl b/gamedata/shaders/r1/particle.vs.hlsl new file mode 100644 index 0000000..c639049 --- /dev/null +++ b/gamedata/shaders/r1/particle.vs.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; +}; + +struct vf +{ + float4 hpos : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; + float fog : FOG; +}; + +vf main(vv v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc = v.tc; // copy tc + o.c = v.c; // copy color + o.fog = calc_fogging(v.P); // fog, input in world coords + o.c.w *= o.fog; + return o; +} diff --git a/gamedata/shaders/r1/particle2t.ps.hlsl b/gamedata/shaders/r1/particle2t.ps.hlsl new file mode 100644 index 0000000..1e9325e --- /dev/null +++ b/gamedata/shaders/r1/particle2t.ps.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // another + float4 c : COLOR0; // diffuse +}; + +// Pixel +uniform sampler2D s_another; + +float4 main(v2p I) : COLOR +{ + float3 base = I.c * tex2D(s_base, I.tc0); + float4 grad = tex2D(s_another, I.tc1); + float3 mult = base * grad * 2.0f; + return float4(lerp(base, mult, grad.w), 1.0f); +} diff --git a/gamedata/shaders/r1/particle_add.vs.hlsl b/gamedata/shaders/r1/particle_add.vs.hlsl new file mode 100644 index 0000000..c109047 --- /dev/null +++ b/gamedata/shaders/r1/particle_add.vs.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; +}; + +struct vf +{ + float4 hpos : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; + float fog : FOG; +}; + +vf main(vv v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc = v.tc; // copy tc + o.c = v.c; // copy color + o.fog = calc_fogging(v.P); // fog, input in world coords + o.c *= o.fog; + return o; +} diff --git a/gamedata/shaders/r1/particle_alphaonly.ps.hlsl b/gamedata/shaders/r1/particle_alphaonly.ps.hlsl new file mode 100644 index 0000000..15d369f --- /dev/null +++ b/gamedata/shaders/r1/particle_alphaonly.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + return I.c.a * tex2D(s_base, I.tc0).a; +} diff --git a/gamedata/shaders/r1/particle_distort.ps.hlsl b/gamedata/shaders/r1/particle_distort.ps.hlsl new file mode 100644 index 0000000..82cfc7d --- /dev/null +++ b/gamedata/shaders/r1/particle_distort.ps.hlsl @@ -0,0 +1,17 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +uniform sampler s_distort; + +float4 main(v2p I) : COLOR +{ + float4 distort = tex2D(s_distort, I.tc0); + float factor = distort.a * dot(I.c.rgb, 0.33f); + return float4(distort.rgb, factor); +} diff --git a/gamedata/shaders/r1/particles_add.lua b/gamedata/shaders/r1/particles_add.lua new file mode 100644 index 0000000..0844a20 --- /dev/null +++ b/gamedata/shaders/r1/particles_add.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("particle_add", "particle") + :sorting(3, false) + :blend(true, blend.one, blend.one) + :aref(false, 0) + :zb(true, false) + :fog(false) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r1/particles_xadd.lua b/gamedata/shaders/r1/particles_xadd.lua new file mode 100644 index 0000000..bab7110 --- /dev/null +++ b/gamedata/shaders/r1/particles_xadd.lua @@ -0,0 +1,21 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("particle_add", "particle") + :sorting(3, false) + :blend(true, blend.one, blend.one) + :aref(false, 0) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("particle", "particle_distort") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_second) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r1/particles_xdistort.lua b/gamedata/shaders/r1/particles_xdistort.lua new file mode 100644 index 0000000..3e58ce1 --- /dev/null +++ b/gamedata/shaders/r1/particles_xdistort.lua @@ -0,0 +1,10 @@ +function l_special(shader, t_base, t_second, t_detail) + shader:begin("particle", "particle_distort") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r1/pnv.hlsli b/gamedata/shaders/r1/pnv.hlsli new file mode 100644 index 0000000..a86c1b9 --- /dev/null +++ b/gamedata/shaders/r1/pnv.hlsli @@ -0,0 +1,53 @@ +////////////////////////////////////////////////////////////////////////////////////////// +//NV Shader by LVutner (basing on yaz NV) +//Last edit: 5:12 (22.05.19) +//Edit for 'GUNSLINGER Mod' by Romann[MNP_TEAM] (04.01.2020) +////////////////////////////////////////////////////////////////////////////////////////// + +//defines +#define NV_BRIGHTNESS 10.0 + +//effects +#define NV_FLICKERING +#define NV_NOISE +//#define NV_VIGNETTE +#define NV_SCANLINES + +//effect settings +#define FLICKERING_INTENSITY 0.003 // Èíòåíñèâíîñòü ìåðöàíèÿ +#define FLICKERING_FREQ 60.0 // ×àñòîòà ìåðöàíèÿ +#define NOISE_INTENSITY 0.13 // Èíòåíñèâíîñòü øóìà +#define SCANLINES_INTENSITY 0.015 // Ðàñòðîâàÿ Èíòåíñèâíîñòü +#define VIGNETTE_RADIUS 1.0 // + +float4 calc_night_vision_effect(float2 tc0, float4 color, float3 NV_COLOR) +{ + float lum = dot(color.rgb, float3( 0.3f, 0.38f, 0.22f)*NV_BRIGHTNESS ); //instead of float3 use LUMINANCE_floatTOR in stalker + color.rgb = m_zoom_deviation.z*NV_COLOR*lum; + + //cheap noise function + float noise = frac(sin(dot(tc0, float2(12.0, 78.0) + (timers.x*1.17f) )) * 43758.0); + + ////////////////////////////////////////////////////////////////////////////////////////// + // scanlines + #ifdef NV_SCANLINES + color += SCANLINES_INTENSITY*sin(tc0.y*screen_res.y*2.0); + #endif + ////////////////////////////////////////////////////////////////////////////////////////// + // noise + #ifdef NV_NOISE + color += noise * NOISE_INTENSITY; + #endif + ////////////////////////////////////////////////////////////////////////////////////////// + // screen flickering + #ifdef NV_FLICKERING + color += FLICKERING_INTENSITY * sin(timers.x*FLICKERING_FREQ); + #endif + ////////////////////////////////////////////////////////////////////////////////////////// + // vignette + #ifdef NV_VIGNETTE + color *= VIGNETTE_RADIUS-(distance(tc0.xy,float2( 0.5f, 0.5f))); + #endif + + return color; +} diff --git a/gamedata/shaders/r1/portal.lua b/gamedata/shaders/r1/portal.lua new file mode 100644 index 0000000..56e08e5 --- /dev/null +++ b/gamedata/shaders/r1/portal.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("portal", "portal") + :fog(true) + :zb(true, false) + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) +end diff --git a/gamedata/shaders/r1/portal.ps.hlsl b/gamedata/shaders/r1/portal.ps.hlsl new file mode 100644 index 0000000..155bcae --- /dev/null +++ b/gamedata/shaders/r1/portal.ps.hlsl @@ -0,0 +1,8 @@ +#include "common.hlsli" + +float4 main(float4 color : COLOR0, float fog : FOG) : COLOR +{ + float4 final = color; + final.xyz = lerp(fog_color.xyz, final.xyz, fog); + return final; +} diff --git a/gamedata/shaders/r1/portal.vs.hlsl b/gamedata/shaders/r1/portal.vs.hlsl new file mode 100644 index 0000000..ef9c510 --- /dev/null +++ b/gamedata/shaders/r1/portal.vs.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float4 c : COLOR0; + float fog : FOG; +}; + +vf main(v_vert v) +{ + vf o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.c = v.color; + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/postprocess.lua b/gamedata/shaders/r1/postprocess.lua new file mode 100644 index 0000000..6e5c3e3 --- /dev/null +++ b/gamedata/shaders/r1/postprocess.lua @@ -0,0 +1,9 @@ +-- normal pp +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "postprocess") + :fog(false) + :zb(false, false) + shader:sampler("s_base0"):texture(t_rt):clamp():f_linear() + shader:sampler("s_base1"):texture(t_rt):clamp():f_linear() + shader:sampler("s_noise"):texture(t_noise):f_linear() +end diff --git a/gamedata/shaders/r1/postprocess.ps.hlsl b/gamedata/shaders/r1/postprocess.ps.hlsl new file mode 100644 index 0000000..b33af79 --- /dev/null +++ b/gamedata/shaders/r1/postprocess.ps.hlsl @@ -0,0 +1,35 @@ +#include "common.hlsli" + +struct v2p +{ + float4 color : COLOR0; // multiplier, color.w = noise_amount + float4 gray : COLOR1; // (.3,.3,.3.,amount) + float2 tc0 : TEXCOORD0; // base1 (duality) + float2 tc1 : TEXCOORD1; // base2 (duality) + float2 tc2 : TEXCOORD2; // base (noise) +}; + +uniform sampler2D s_base0; +uniform sampler2D s_base1; +uniform sampler2D s_noise; +uniform float4 c_brightness; + +// Pixel +float4 main(v2p I) : COLOR +{ + float3 t_0 = tex2D(s_base0, I.tc0); + float3 t_1 = tex2D(s_base1, I.tc1); + float3 image = (t_0 + t_1) * 0.5f; // add_d2 + float gray = dot(image, I.gray); // dp3 + image = lerp(gray, image, I.gray.w); // mul/mad + + float4 t_noise = tex2D(s_noise, I.tc2); + float3 noised = image * t_noise * 2.0f; // mul_2x + image = lerp(noised, image, I.color.w); // lrp ? + image = (image * I.color + c_brightness) * 2.0f; // mad + // image = (image + c_brightness) * I.color; // mad ? + + // out + // return float4 (image.r,0,0,1); // +mov + return float4(image, 1.0f); // +mov +} diff --git a/gamedata/shaders/r1/postprocess_cm.lua b/gamedata/shaders/r1/postprocess_cm.lua new file mode 100644 index 0000000..750d92c --- /dev/null +++ b/gamedata/shaders/r1/postprocess_cm.lua @@ -0,0 +1,25 @@ +-- normal color mapped pp +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "postprocess") + :fog(false) + :zb(false, false) + -- shader:sampler ("s_base0") :texture(t_rt) : clamp() : f_linear () + -- shader:sampler ("s_base1") :texture(t_rt) : clamp() : f_linear () + shader:sampler("s_base0"):texture("$user$rendertarget_color_map"):clamp():f_linear() + shader:sampler("s_base1"):texture("$user$rendertarget_color_map"):clamp():f_linear() + shader:sampler("s_noise"):texture(t_noise):f_linear() +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("null", "postprocess_cm_pre") + :fog(false) + :zb(false, false) + shader:sampler("s_distort"):texture(t_distort):clamp():f_linear() + shader:sampler("s_base0"):texture(t_rt):clamp():f_linear() + shader:sampler("s_base1"):texture(t_rt):clamp():f_linear() + shader:sampler("s_noise"):texture(t_noise):f_linear() + -- shader:sampler ("s_grad0") :texture("grad\\grad_red_yellow") : clamp() : f_linear () + -- shader:sampler ("s_grad1") :texture("grad\\grad_test1") : clamp() : f_linear () + shader:sampler("s_grad0"):texture("$user$cmap0"):clamp():f_linear() + shader:sampler("s_grad1"):texture("$user$cmap1"):clamp():f_linear() +end diff --git a/gamedata/shaders/r1/postprocess_cm_pre.ps.hlsl b/gamedata/shaders/r1/postprocess_cm_pre.ps.hlsl new file mode 100644 index 0000000..1e9f5fa --- /dev/null +++ b/gamedata/shaders/r1/postprocess_cm_pre.ps.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" + +struct v2p +{ + float4 color : COLOR0; // multiplier, color.w = noise_amount + float4 gray : COLOR1; // (.3,.3,.3.,amount) + float2 tc0 : TEXCOORD0; // base1 (duality) + float2 tc1 : TEXCOORD1; // base2 (duality) + float2 tc2 : TEXCOORD2; // base (noise) +}; + +uniform sampler2D s_base0; +uniform sampler2D s_base1; +uniform sampler2D s_distort; +uniform sampler2D s_grad0; +uniform sampler2D s_grad1; +uniform float4 c_colormap; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 pre_pass = tex2D(s_base0, I.tc0); + float grad_i = dot(pre_pass.rgb, (0.3333f).xxx); + + float3 image0 = tex2D(s_grad0, float2(grad_i, 0.5f)); + float3 image1 = tex2D(s_grad1, float2(grad_i, 0.5f)); + float3 image = lerp(image0, image1, c_colormap.y); + image = lerp(pre_pass.rgb, image, c_colormap.x); + + return float4(image, 1.0f); // +mov +} diff --git a/gamedata/shaders/r1/postprocess_d.lua b/gamedata/shaders/r1/postprocess_d.lua new file mode 100644 index 0000000..204b75f --- /dev/null +++ b/gamedata/shaders/r1/postprocess_d.lua @@ -0,0 +1,10 @@ +-- distort +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "postprocess_d") + :fog(false) + :zb(false, false) + shader:sampler("s_distort"):texture(t_distort):clamp():f_linear() + shader:sampler("s_base0"):texture(t_rt):clamp():f_linear() + shader:sampler("s_base1"):texture(t_rt):clamp():f_linear() + shader:sampler("s_noise"):texture(t_noise):f_linear() +end diff --git a/gamedata/shaders/r1/postprocess_d.ps.hlsl b/gamedata/shaders/r1/postprocess_d.ps.hlsl new file mode 100644 index 0000000..51f8dc5 --- /dev/null +++ b/gamedata/shaders/r1/postprocess_d.ps.hlsl @@ -0,0 +1,39 @@ +#include "common.hlsli" + +struct v2p +{ + float4 color : COLOR0; // multiplier, color.w = noise_amount + float4 gray : COLOR1; // (.3,.3,.3.,amount) + float2 tc0 : TEXCOORD0; // base1 (duality) + float2 tc1 : TEXCOORD1; // base2 (duality) + float2 tc2 : TEXCOORD2; // base (noise) +}; + +uniform sampler2D s_base0; +uniform sampler2D s_base1; +uniform sampler2D s_noise; +uniform sampler2D s_distort; +uniform sampler2D s_intensity; +uniform sampler2D s_grad0; +uniform float4 c_brightness; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 distort = tex2D(s_distort, I.tc0); + float2 offset = (distort.xy - (127.0f / 255.0f)) * def_distort; + float3 t_0 = tex2D(s_base0, I.tc0 + offset); + float3 t_1 = tex2D(s_base1, I.tc1 + offset); + float3 image = (t_0 + t_1) * 0.5f; // add_d2 + + float gray = dot(image, I.gray); // dp3 + image = lerp(gray, image, I.gray.w); // mul/mad + + float4 t_noise = tex2D(s_noise, I.tc2); + float3 noised = image * t_noise * 2.0f; // mul_2x + image = lerp(noised, image, I.color.w); // lrp ? + image = (image * I.color + c_brightness) * 2.0f; // mad + // image = (image + c_brightness) * I.color; // mad ? + + return float4(image, 1.0f); // +mov +} diff --git a/gamedata/shaders/r1/postprocess_dcm.lua b/gamedata/shaders/r1/postprocess_dcm.lua new file mode 100644 index 0000000..dfc2841 --- /dev/null +++ b/gamedata/shaders/r1/postprocess_dcm.lua @@ -0,0 +1,26 @@ +-- distort colormapped +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "postprocess_d") + :fog(false) + :zb(false, false) + shader:sampler("s_distort"):texture(t_distort):clamp():f_linear() + -- shader:sampler ("s_base0") :texture(t_rt) : clamp() : f_linear () + -- shader:sampler ("s_base1") :texture(t_rt) : clamp() : f_linear () + shader:sampler("s_base0"):texture("$user$rendertarget_color_map"):clamp():f_linear() + shader:sampler("s_base1"):texture("$user$rendertarget_color_map"):clamp():f_linear() + shader:sampler("s_noise"):texture(t_noise):f_linear() +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("null", "postprocess_cm_pre") + :fog(false) + :zb(false, false) + shader:sampler("s_distort"):texture(t_distort):clamp():f_linear() + shader:sampler("s_base0"):texture(t_rt):clamp():f_linear() + shader:sampler("s_base1"):texture(t_rt):clamp():f_linear() + shader:sampler("s_noise"):texture(t_noise):f_linear() + -- shader:sampler ("s_grad0") :texture("grad\\grad_red_yellow") : clamp() : f_linear () + -- shader:sampler ("s_grad1") :texture("grad\\grad_test1") : clamp() : f_linear () + shader:sampler("s_grad0"):texture("$user$cmap0"):clamp():f_linear() + shader:sampler("s_grad1"):texture("$user$cmap1"):clamp():f_linear() +end diff --git a/gamedata/shaders/r1/selflight.lua b/gamedata/shaders/r1/selflight.lua new file mode 100644 index 0000000..623b44c --- /dev/null +++ b/gamedata/shaders/r1/selflight.lua @@ -0,0 +1,19 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("simple", "simple") + :fog(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_spot(shader, t_base, t_second, t_detail) + r1_lspot(shader, t_base, "simple_spot") +end + +function l_point(shader, t_base, t_second, t_detail) + r1_lpoint(shader, t_base, "simple_point") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("simple", "simple") + :fog(false) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r1/shared/cloudconfig.hlsli b/gamedata/shaders/r1/shared/cloudconfig.hlsli new file mode 100644 index 0000000..7f2e393 --- /dev/null +++ b/gamedata/shaders/r1/shared/cloudconfig.hlsli @@ -0,0 +1,11 @@ +#ifndef _CLOUDCONFIG_H +#define _CLOUDCONFIG_H + +// note: timers has resolution (sec), where x=1, y=10, z=1/10, +#define CLOUD_TILE0 (0.7f) +#define CLOUD_SPEED0 (2 * 0.05) //(0.033f) +#define CLOUD_TILE1 (2.8) //(2.5f) +#define CLOUD_SPEED1 (2 * 0.025) //(0.033f) +#define CLOUD_FADE (0.5) + +#endif diff --git a/gamedata/shaders/r1/shared/common.hlsli b/gamedata/shaders/r1/shared/common.hlsli new file mode 100644 index 0000000..f8ee027 --- /dev/null +++ b/gamedata/shaders/r1/shared/common.hlsli @@ -0,0 +1,69 @@ +#ifndef SHARED_COMMON_H +#define SHARED_COMMON_H + +uniform float3x4 m_W; +uniform float3x4 m_V; +uniform float4x4 m_P; +uniform float3x4 m_WV; +uniform float4x4 m_VP; +uniform float4x4 m_WVP; +uniform float4 timers; +uniform float4 fog_plane; +uniform float4 fog_params; // x=near*(1/(far-near)), ?,?, w = -1/(far-near) +uniform float4 fog_color; +uniform float3 L_sun_color; +uniform float3 L_sun_dir_w; +uniform float3 L_sun_dir_e; +uniform float4 L_hemi_color; +uniform float4 L_ambient; // L_ambient.w = skynbox-lerp-factor +uniform float3 eye_position; +uniform float3 eye_direction; +uniform float3 eye_normal; +uniform float4 dt_params; + +//GUNSLINGER**************************// +uniform float4 m_hud_params; +//uniform float4 screen_res; +uniform float4 m_zoom_deviation; +uniform float4 m_actor_params; +uniform float4 m_affects; +uniform float4 m_timearrow; +uniform float4 m_timearrow2; +uniform float4 m_digiclock; +//************************************// + +float3 unpack_normal(float3 v) +{ + return 2.0f * v - 1.0f; +} +float3 unpack_bx2(float3 v) +{ + return 2.0f * v - 1.0f; +} +float3 unpack_bx4(float3 v) +{ + return 4.0f * v - 2.0f; +} + +float2 unpack_tc_base(float2 tc, float du, float dv) +{ + return (tc.xy + float2(du, dv)) * (32.f / 32768.f); +} + +float2 unpack_tc_lmap(float2 tc) +{ + return tc * (1.f / 32768.f); +} // [-1 .. +1 ] + +float calc_cyclic(float x) +{ + float f = 1.4142f * sin(x * 3.14159f); + return f * f - 1.0f; +} + +float2 calc_xz_wave(float2 dir2D, float frac) +{ + return dir2D * frac; +} + +#endif diff --git a/gamedata/shaders/r1/shared/waterconfig.hlsli b/gamedata/shaders/r1/shared/waterconfig.hlsli new file mode 100644 index 0000000..574ff65 --- /dev/null +++ b/gamedata/shaders/r1/shared/waterconfig.hlsli @@ -0,0 +1,55 @@ +#ifndef _WATERCONFIG_H + #define _WATERCONFIG_H + +// наÑтройки длÑ: (1) +// waterdistortion +// waterdistortion2 + + #define W_POSITION_SHIFT_HEIGHT (1.f / 60.f) //(1.f/100.f) //amplitude /50 - small, /10 - large + #define W_POSITION_SHIFT_SPEED (25.f) //(25.0f) + #define W_DISTORT_BASE_TILE_0 (1.0f) //(1.0f) + #define W_DISTORT_BASE_TILE_1 (1.1f) //(1.1f) + #define W_DISTORT_AMP_0 (+0.15f) //(+0.15f) + #define W_DISTORT_AMP_1 (+0.55f) //(-0.30f) + #define W_DISTORT_POWER (1.0f) //(1.0f) + +#endif + +/* +//////////////////////////////////////////////////////////////////////////////// +-- waters clear +//////////////////////////////////////////////////////////////////////////////// +наÑтройки длÑ: + waterdistortion + waterdistortion2 +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/50.f) //(1.f/100.f) //amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (15.f) //(25.0f) +#define W_DISTORT_BASE_TILE_0 (1.3f) //(1.6f) +#define W_DISTORT_BASE_TILE_1 (2.3f) //(1.1f) +#define W_DISTORT_AMP_0 (+0.35f) //(+0.15f) +#define W_DISTORT_AMP_1 (-1.75f) //(-0.30f) +#define W_DISTORT_POWER (1.0f) //(1.0f) +//////////////////////////////////////////////////////////////////////////////// +наÑтройки длÑ: + waterdistortion + waterdistortion +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/80.f) //(1.f/100.f) //amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (20.f) //(25.0f) +#define W_DISTORT_BASE_TILE_0 (1.6f) //(1.6f) +#define W_DISTORT_BASE_TILE_1 (1.1f) //(1.1f) +#define W_DISTORT_AMP_0 (+0.15f) //(+0.15f) +#define W_DISTORT_AMP_1 (-0.30f) //(-0.30f) +#define W_DISTORT_POWER (6.0f) //(6.0f) +//////////////////////////////////////////////////////////////////////////////// +-- waters mulyaka +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/50.f) // amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (25.f) +#define W_DISTORT_BASE_TILE (0.1f) //(1.0f) +#define W_DISTORT_AMP_0 (+0.58f) //(-0.08f) +#define W_DISTORT_AMP_1 (+0.38f) //(+0.18f) +#define W_DISTORT_POWER (3.0f) //(2.0f) +//////////////////////////////////////////////////////////////////////////////// +*/ diff --git a/gamedata/shaders/r1/shared/watermove.hlsli b/gamedata/shaders/r1/shared/watermove.hlsli new file mode 100644 index 0000000..dfc5045 --- /dev/null +++ b/gamedata/shaders/r1/shared/watermove.hlsli @@ -0,0 +1,30 @@ +#ifndef _WATERMOVE_H +#define _WATERMOVE_H + +float4 watermove(float4 P) +{ + float3 wave1 = float3(0.11f, 0.13f, 0.07f) * W_POSITION_SHIFT_SPEED; + float dh = sin(timers.x + dot((float3)P, wave1)); + P.y += dh * W_POSITION_SHIFT_HEIGHT; + return P; +} + +float2 watermove_tc(float2 base, float2 P, float amp) +{ + float2 wave1 = float2(0.2111f, 0.2333f) * amp; + float angle = timers.z + dot(P, wave1); + float du = sin(angle); + float dv = cos(angle); + return (base + amp * float2(du, dv)); +} + +float3 waterrefl(out float amount, float3 P, float3 N) +{ + float3 v2point = normalize(P - eye_position); + float3 vreflect = reflect(v2point, N); + float fresnel = (.5f + .5f * dot(vreflect, v2point)); + amount = 1 - fresnel * fresnel; // 0=full env, 1=no env + return vreflect; +} + +#endif diff --git a/gamedata/shaders/r1/shared/wmark.hlsli b/gamedata/shaders/r1/shared/wmark.hlsli new file mode 100644 index 0000000..0ba79ba --- /dev/null +++ b/gamedata/shaders/r1/shared/wmark.hlsli @@ -0,0 +1,23 @@ +#ifndef WMARK_H +#define WMARK_H + +#include "common.hlsli" + +#define NORMAL_SHIFT 0.007f +#define MIN_SHIFT 0.003f +#define MAX_SHIFT 0.011f +#define RANGE 100.f + +float4 wmark_shift(float3 pos, float3 norm) +{ + float3 P = pos; + float3 N = norm; + float3 sd = eye_position - P; + float d = length(sd); + float w = min(d / RANGE, 1.f); + float s = lerp(MIN_SHIFT, MAX_SHIFT, d); + P += N.xyz * NORMAL_SHIFT; + P -= normalize(eye_direction + normalize(P - eye_position)) * s; + return float4(P, 1.f); +} +#endif diff --git a/gamedata/shaders/r1/simple.ps.hlsl b/gamedata/shaders/r1/simple.ps.hlsl new file mode 100644 index 0000000..9da9a94 --- /dev/null +++ b/gamedata/shaders/r1/simple.ps.hlsl @@ -0,0 +1,12 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + return /*(float4(1,1,1,1) - */ tex2D(s_base, I.tc0); +} diff --git a/gamedata/shaders/r1/simple.vs.hlsl b/gamedata/shaders/r1/simple.vs.hlsl new file mode 100644 index 0000000..a755094 --- /dev/null +++ b/gamedata/shaders/r1/simple.vs.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float fog : FOG; +}; + +vf main(v_vert v) +{ + vf o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/simple_color.ps.hlsl b/gamedata/shaders/r1/simple_color.ps.hlsl new file mode 100644 index 0000000..86490e4 --- /dev/null +++ b/gamedata/shaders/r1/simple_color.ps.hlsl @@ -0,0 +1,6 @@ +#include "common.hlsli" + +float4 main(float4 C : COLOR0) : COLOR +{ + return C; +} diff --git a/gamedata/shaders/r1/simple_color.vs.hlsl b/gamedata/shaders/r1/simple_color.vs.hlsl new file mode 100644 index 0000000..f2f975e --- /dev/null +++ b/gamedata/shaders/r1/simple_color.vs.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float4 C : COLOR0; +}; + +uniform float4 tfactor; + +vf main(float4 P : POSITION) +{ + vf o; + + o.hpos = mul(m_WVP, P); // xform, input in world coords + o.C = tfactor; + + return o; +} diff --git a/gamedata/shaders/r1/simple_point.vs.hlsl b/gamedata/shaders/r1/simple_point.vs.hlsl new file mode 100644 index 0000000..e9c1a32 --- /dev/null +++ b/gamedata/shaders/r1/simple_point.vs.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +vf_point main(v_lmap v) +{ + vf_point o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base(v.tc0); // copy tc + o.color = calc_point(o.tc1, o.tc2, v.P, unpack_normal(v.N)); // just hemisphere + + return o; +} diff --git a/gamedata/shaders/r1/simple_spot.vs.hlsl b/gamedata/shaders/r1/simple_spot.vs.hlsl new file mode 100644 index 0000000..2845b98 --- /dev/null +++ b/gamedata/shaders/r1/simple_spot.vs.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +vf_spot main(v_lmap v) +{ + vf_spot o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv0, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base(v.tc0); // copy tc + o.color = calc_spot(o.tc1, o.tc2, v.P, unpack_normal(v.N)); // just hemisphere + + return o; +} diff --git a/gamedata/shaders/r1/skin.hlsli b/gamedata/shaders/r1/skin.hlsli new file mode 100644 index 0000000..1ad67d9 --- /dev/null +++ b/gamedata/shaders/r1/skin.hlsli @@ -0,0 +1,277 @@ +#ifndef SKIN_H +#define SKIN_H + +#include "common.hlsli" + +struct v_model_skinned_0 +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float3 N : NORMAL; // normal // DWORD + float3 T : TANGENT; // tangent // DWORD + float3 B : BINORMAL; // binormal // DWORD + float2 tc : TEXCOORD0; // (u,v) // short2 +}; +struct v_model_skinned_1 // 24 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + int4 N : NORMAL; // (nx,ny,nz,index) // DWORD + float3 T : TANGENT; // tangent // DWORD + float3 B : BINORMAL; // binormal // DWORD + float2 tc : TEXCOORD0; // (u,v) // short2 +}; +struct v_model_skinned_2 // 28 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,weight) // DWORD + float3 T : TANGENT; // tangent // DWORD + float3 B : BINORMAL; // binormal // DWORD + float4 tc : TEXCOORD0; // (u,v, w=m-index0, z=m-index1) // short4 +}; + +struct v_model_skinned_3 // 28 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,weight0) // DWORD + float4 T : TANGENT; // (tx,ty,tz,weight1) // DWORD + float4 B : BINORMAL; // (bx,by,bz,m-index2) // DWORD + float4 tc : TEXCOORD0; // (u,v, w=m-index0, z=m-index1) // short4 +}; + +struct v_model_skinned_4 // 28 bytes +{ + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,weight0) // DWORD + float4 T : TANGENT; // (tx,ty,tz,weight1) // DWORD + float4 B : BINORMAL; // (bx,by,bz,weight2) // DWORD + float2 tc : TEXCOORD0; // (u,v) // short2 + float4 ind : TEXCOORD1; // (x=m-index0, y=m-index1, z=m-index2, w=m-index3) // DWORD +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float4 u_position(float4 v) +{ + return float4(v.xyz, 1.f); +} // -12..+12 + +////////////////////////////////////////////////////////////////////////////////////////// +// uniform float4 sbones_array [256-22] : register(vs,c22); +// Igor: some shaders in r1 need more free constant registers +uniform float4 sbones_array[65 * 3] : register(vs, c22); +float3 skinning_dir(float3 dir, float3 m0, float3 m1, float3 m2) +{ + float3 U = unpack_normal(dir); + return float3( + dot(m0, U), + dot(m1, U), + dot(m2, U)); +} +float4 skinning_pos(float4 pos, float4 m0, float4 m1, float4 m2) +{ + float4 P = u_position(pos); + return float4( + dot(m0, P), + dot(m1, P), + dot(m2, P), + 1); +} + +v_model skinning_0(v_model_skinned_0 v) +{ + // skinning + v_model o; + o.pos = u_position(v.P); + o.norm = unpack_normal(v.N); + o.T = unpack_normal(v.T); + o.B = unpack_normal(v.B); + o.tc = v.tc; // -16..+16 +#ifdef SKIN_COLOR + o.rgb_tint = float3(0, 0, 2); +#endif + return o; +} +v_model skinning_1(v_model_skinned_1 v) +{ + // matrices + int mid = v.N.w * (int)255; + float4 m0 = sbones_array[mid + 0]; + float4 m1 = sbones_array[mid + 1]; + float4 m2 = sbones_array[mid + 2]; + + // skinning + v_model o; + o.pos = skinning_pos(v.P, m0, m1, m2); + o.norm = skinning_dir(v.N, m0, m1, m2); + o.T = skinning_dir(v.T, m0, m1, m2); + o.B = skinning_dir(v.B, m0, m1, m2); + o.tc = v.tc; // -16..+16 +#ifdef SKIN_COLOR + o.rgb_tint = float3(0, 2, 0); +#endif + return o; +} +v_model skinning_2(v_model_skinned_2 v) +{ + // matrices + int id_0 = v.tc.z; + float4 m0_0 = sbones_array[id_0 + 0]; + float4 m1_0 = sbones_array[id_0 + 1]; + float4 m2_0 = sbones_array[id_0 + 2]; + int id_1 = v.tc.w; + float4 m0_1 = sbones_array[id_1 + 0]; + float4 m1_1 = sbones_array[id_1 + 1]; + float4 m2_1 = sbones_array[id_1 + 2]; + + // lerp + float w = v.N.w; + float4 m0 = lerp(m0_0, m0_1, w); + float4 m1 = lerp(m1_0, m1_1, w); + float4 m2 = lerp(m2_0, m2_1, w); + + // skinning + v_model o; + o.pos = skinning_pos(v.P, m0, m1, m2); + o.norm = skinning_dir(v.N, m0, m1, m2); + o.T = skinning_dir(v.T, m0, m1, m2); + o.B = skinning_dir(v.B, m0, m1, m2); + o.tc = v.tc; +#ifdef SKIN_COLOR + o.rgb_tint = float3(2, 0, 0); + if (id_0 == id_1) + { + o.rgb_tint = float3(1, 2, 0); + } +#endif + return o; +} + +v_model skinning_2lq(v_model_skinned_2 v) +{ + // matrices + int id_0 = v.tc.z; + float4 m0 = sbones_array[id_0 + 0]; + float4 m1 = sbones_array[id_0 + 1]; + float4 m2 = sbones_array[id_0 + 2]; + + // skinning + v_model o; + o.pos = skinning_pos(v.P, m0, m1, m2); + o.norm = skinning_dir(v.N, m0, m1, m2); + o.T = skinning_dir(v.T, m0, m1, m2); + o.B = skinning_dir(v.B, m0, m1, m2); + o.tc = v.tc; // -16..+16 +#ifdef SKIN_COLOR + o.rgb_tint = float3(0, 2, 0); +#endif + return o; +} + +v_model skinning_3(v_model_skinned_3 v) +{ + // matrices + int id_0 = v.tc.z; + float4 m0_0 = sbones_array[id_0 + 0]; + float4 m1_0 = sbones_array[id_0 + 1]; + float4 m2_0 = sbones_array[id_0 + 2]; + int id_1 = v.tc.w; + float4 m0_1 = sbones_array[id_1 + 0]; + float4 m1_1 = sbones_array[id_1 + 1]; + float4 m2_1 = sbones_array[id_1 + 2]; + int id_2 = v.B.w * 255 + 0.3; + float4 m0_2 = sbones_array[id_2 + 0]; + float4 m1_2 = sbones_array[id_2 + 1]; + float4 m2_2 = sbones_array[id_2 + 2]; + + // lerp + float w0 = v.N.w; + float w1 = v.T.w; + float w2 = 1 - w0 - w1; + float4 m0 = m0_0 * w0; + float4 m1 = m1_0 * w0; + float4 m2 = m2_0 * w0; + + m0 += m0_1 * w1; + m1 += m1_1 * w1; + m2 += m2_1 * w1; + + m0 += m0_2 * w2; + m1 += m1_2 * w2; + m2 += m2_2 * w2; + + // skinning + v_model o; + o.pos = skinning_pos(v.P, m0, m1, m2); + o.norm = skinning_dir(v.N, m0, m1, m2); + o.T = skinning_dir(v.T, m0, m1, m2); + o.B = skinning_dir(v.B, m0, m1, m2); + o.tc = v.tc; // -16..+16 +#ifdef SKIN_COLOR + o.rgb_tint = float3(2, 0, 0); + if (id_0 == id_1) + { + o.rgb_tint = float3(1, 2, 0); + } +#endif + return o; +} + +v_model skinning_3lq(v_model_skinned_3 v) +{ + return skinning_3(v); +} + +v_model skinning_4(v_model_skinned_4 v) +{ + // matrices + float id[4]; + float4 m[4][3]; // [bone index][matrix row or column???] + for (int i = 0; i < 4; ++i) + { + id[i] = v.ind[i] * 255 + 0.3; + for (int j = 0; j < 3; ++j) + { + m[i][j] = sbones_array[id[i] + j]; + } + } + + // lerp + float w[4]; + w[0] = v.N.w; + w[1] = v.T.w; + w[2] = v.B.w; + w[3] = 1 - w[0] - w[1] - w[2]; + + float4 m0 = m[0][0] * w[0]; + float4 m1 = m[0][1] * w[0]; + float4 m2 = m[0][2] * w[0]; + + for (int i = 1; i < 4; ++i) + { + m0 += m[i][0] * w[i]; + m1 += m[i][1] * w[i]; + m2 += m[i][2] * w[i]; + } + + // skinning + v_model o; + o.pos = skinning_pos(v.P, m0, m1, m2); + o.norm = skinning_dir(v.N, m0, m1, m2); + o.T = skinning_dir(v.T, m0, m1, m2); + o.B = skinning_dir(v.B, m0, m1, m2); + o.tc = v.tc; // -16..+16 +#ifdef SKIN_COLOR + o.rgb_tint = float3(2, 0, 0); + if (id_0 == id_1) + { + o.rgb_tint = float3(1, 2, 0); + } +#endif + return o; +} + +v_model skinning_4lq(v_model_skinned_4 v) +{ + return skinning_4(v); +} + +#endif diff --git a/gamedata/shaders/r1/skin_main.hlsli b/gamedata/shaders/r1/skin_main.hlsli new file mode 100644 index 0000000..4a10ddd --- /dev/null +++ b/gamedata/shaders/r1/skin_main.hlsli @@ -0,0 +1,100 @@ +#ifndef SKIN_MAIN_INCLUDED +#define SKIN_MAIN_INCLUDED + +////////////////////////////////////////////////////// +#ifdef SKIN_LQ + ////////////////////////////////////////////////////// + + #ifdef SKIN_NONE +SKIN_VF main(v_model v) +{ + return _main(v); +} + #endif + + #ifdef SKIN_0 +SKIN_VF main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} + #endif + + #ifdef SKIN_1 +SKIN_VF main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} + #endif + + #ifdef SKIN_2 +SKIN_VF main(v_model_skinned_2 v) +{ + return _main(skinning_2lq(v)); +} + #endif + + #ifdef SKIN_3 +SKIN_VF main(v_model_skinned_3 v) +{ + return _main(skinning_3lq(v)); +} + #endif + + #ifdef SKIN_4 +SKIN_VF main(v_model_skinned_4 v) +{ + return _main(skinning_4lq(v)); +} + #endif + +////////////////////////////////////////////////////// +#else // SKIN_LQ + ////////////////////////////////////////////////////// + + #ifdef SKIN_NONE +SKIN_VF main(v_model v) +{ + return _main(v); +} + #endif + + #ifdef SKIN_0 +SKIN_VF main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} + #endif + + #ifdef SKIN_1 +SKIN_VF main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} + #endif + + #ifdef SKIN_2 +SKIN_VF main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} + #endif + + #ifdef SKIN_3 +SKIN_VF main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} + #endif + + #ifdef SKIN_4 +SKIN_VF main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} + #endif + +////////////////////////////////////////////////////// +#endif // SKIN_LQ +////////////////////////////////////////////////////// + +#endif // SKIN_MAIN_INCLUDED diff --git a/gamedata/shaders/r1/sky.ps.hlsl b/gamedata/shaders/r1/sky.ps.hlsl new file mode 100644 index 0000000..cd83723 --- /dev/null +++ b/gamedata/shaders/r1/sky.ps.hlsl @@ -0,0 +1,22 @@ +#include "common.hlsli" + +struct v2p +{ + float4 factor : COLOR0; + float3 tc0 : TEXCOORD0; + float3 tc1 : TEXCOORD1; +}; + +uniform samplerCUBE s_sky0 : register(s0); +uniform samplerCUBE s_sky1 : register(s1); +uniform float3 color; + +// Pixel +float4 main(v2p I) : COLOR +{ + float3 s0 = texCUBE(s_sky0, I.tc0); + float3 s1 = texCUBE(s_sky1, I.tc1); + float3 sky = I.factor * lerp(s0, s1, I.factor.w); + + return float4(sky, 1.0f); +} diff --git a/gamedata/shaders/r1/sky.vs.hlsl b/gamedata/shaders/r1/sky.vs.hlsl new file mode 100644 index 0000000..13b7c5a --- /dev/null +++ b/gamedata/shaders/r1/sky.vs.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" + +struct vi +{ + float4 p : POSITION; + float4 c : COLOR0; + float3 tc0 : TEXCOORD0; + float3 tc1 : TEXCOORD1; +}; + +struct vf +{ + float4 hpos : POSITION; + float4 c : COLOR0; + float3 tc0 : TEXCOORD0; + float3 tc1 : TEXCOORD1; +}; + +vf main(vi v) +{ + vf o; + + float4 tpos = mul(1000, v.p); + o.hpos = mul(m_WVP, tpos); // xform, input in world coords, 1000 - magic number + o.hpos.z = o.hpos.w; + o.c = v.c; // copy color + o.tc0 = v.tc0; // copy tc + o.tc1 = v.tc1; // copy tc + + return o; +} diff --git a/gamedata/shaders/r1/tree_s.vs.hlsl b/gamedata/shaders/r1/tree_s.vs.hlsl new file mode 100644 index 0000000..0914767 --- /dev/null +++ b/gamedata/shaders/r1/tree_s.vs.hlsl @@ -0,0 +1,63 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +struct vf +{ + float4 HPOS : POSITION; + float3 COL0 : COLOR0; + float2 TEX0 : TEXCOORD0; + float fog : FOG; +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf main(av v) +{ + vf o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos, 1); // float4 (pos.x+result.x, pos.y, pos.z+result.y, 1); + + // Calc fog + o.fog = calc_fogging(f_pos); + + // Final xform + o.HPOS = mul(m_VP, f_pos); + + // Lighting + float3 N = mul(m_xform, unpack_normal(v.nc)); // normalize (mul (m_xform, unpack_normal(v.nc))); + float L_base = v.nc.w; // base hemisphere + float4 L_unpack = c_scale * L_base + c_bias; // unpacked and decompressed + float3 L_rgb = L_unpack.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi_wrap(N, .75f) * L_unpack.w; // hemisphere + float3 L_sun = v_sun(N) * (L_base * c_sun.x + c_sun.y); // sun + // float3 L_sun = L_sun_color*(.25f+.75f*dot(N,-L_sun_dir_w))*(L_base*c_sun.x+c_sun.y); + float3 L_final = L_rgb + L_hemi + L_sun; + o.COL0 = L_final; + + // final xform, color, tc + o.TEX0.xy = (v.misc * consts).xy; + + return o; +} diff --git a/gamedata/shaders/r1/tree_s_dt.vs.hlsl b/gamedata/shaders/r1/tree_s_dt.vs.hlsl new file mode 100644 index 0000000..b96152c --- /dev/null +++ b/gamedata/shaders/r1/tree_s_dt.vs.hlsl @@ -0,0 +1,67 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +struct vf +{ + float4 HPOS : POSITION; + float4 COL0 : COLOR0; + float4 c1 : COLOR1; + float2 TEX0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; // detail + float fog : FOG; +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf main(av v) +{ + vf o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos, 1); // float4 (pos.x+result.x, pos.y, pos.z+result.y, 1); + + // Calc fog + o.fog = calc_fogging(f_pos); + + // Final xform + o.HPOS = mul(m_VP, f_pos); + + // Lighting + float3 N = mul(m_xform, unpack_normal(v.nc)); // normalize (mul (m_xform, unpack_normal(v.nc))); + float L_base = v.nc.w; // base hemisphere + float4 L_unpack = c_scale * L_base + c_bias; // unpacked and decompressed + float3 L_rgb = L_unpack.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi_wrap(N, .75f) * L_unpack.w; // hemisphere + float3 L_sun = v_sun(N) * (L_base * c_sun.x + c_sun.y); // sun + float3 L_final = L_rgb + L_hemi + L_sun; + + // final xform, color, tc + o.TEX0.xy = (v.misc * consts).xy; + o.tc1 = o.TEX0 * dt_params; // dt tc + float2 dt = calc_detail(f_pos); // + o.COL0 = float4(L_final, dt.x); // + o.c1 = dt.y; // + + return o; +} diff --git a/gamedata/shaders/r1/tree_s_point.vs.hlsl b/gamedata/shaders/r1/tree_s_point.vs.hlsl new file mode 100644 index 0000000..248d174 --- /dev/null +++ b/gamedata/shaders/r1/tree_s_point.vs.hlsl @@ -0,0 +1,41 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf_point main(av v) +{ + vf_point o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos, 1); // float4 (pos.x+result.x, pos.y, pos.z+result.y, 1); + float3 f_N = normalize(mul(m_xform, unpack_normal(v.nc))); + + // Final xform + o.hpos = mul(m_VP, f_pos); + o.tc0 = (v.misc * consts).xy; + o.color = calc_point(o.tc1, o.tc2, f_pos, f_N); + + return o; +} diff --git a/gamedata/shaders/r1/tree_s_spot.vs.hlsl b/gamedata/shaders/r1/tree_s_spot.vs.hlsl new file mode 100644 index 0000000..14221e6 --- /dev/null +++ b/gamedata/shaders/r1/tree_s_spot.vs.hlsl @@ -0,0 +1,41 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf_spot main(av v) +{ + vf_spot o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos, 1); // float4 (pos.x+result.x, pos.y, pos.z+result.y, 1); + float3 f_N = normalize(mul(m_xform, unpack_normal(v.nc))); + + // Final xform + o.hpos = mul(m_VP, f_pos); + o.tc0 = (v.misc * consts).xy; + o.color = calc_spot(o.tc1, o.tc2, f_pos, f_N); + + return o; +} diff --git a/gamedata/shaders/r1/tree_test.vs.hlsl b/gamedata/shaders/r1/tree_test.vs.hlsl new file mode 100644 index 0000000..16836f3 --- /dev/null +++ b/gamedata/shaders/r1/tree_test.vs.hlsl @@ -0,0 +1,62 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +struct vf +{ + float4 HPOS : POSITION; + float3 COL0 : COLOR0; + float2 TEX0 : TEXCOORD0; + float fog : FOG; +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf main(av v) +{ + vf o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos, 1); // float4(pos.x+result.x, pos.y, pos.z+result.y, 1); + + // Calc fog + o.fog = calc_fogging(f_pos); + + // Final xform + o.HPOS = mul(m_VP, f_pos); + + // Lighting + float3 N = mul(m_xform, unpack_normal(v.nc)); // normalize (mul (m_xform, unpack_normal(v.nc))); + float L_base = v.nc.w; // base hemisphere + float4 L_unpack = c_scale * L_base + c_bias; // unpacked and decompressed + float3 L_rgb = L_unpack.xyz; + float3 L_hemi = v_hemi_wrap(N, .75f) * L_unpack.w; // hemisphere + float3 L_sun = v_sun_wrap(N, .25f) * (L_base * c_sun.x + c_sun.y); // sun + float3 L_final = L_rgb + L_hemi + L_sun + L_ambient; + o.COL0 = L_final; //,1); + + // final xform, color, tc + o.TEX0.xy = (v.misc * consts).xy; + + return o; +} diff --git a/gamedata/shaders/r1/tree_w.vs.hlsl b/gamedata/shaders/r1/tree_w.vs.hlsl new file mode 100644 index 0000000..5dcbfe9 --- /dev/null +++ b/gamedata/shaders/r1/tree_w.vs.hlsl @@ -0,0 +1,62 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +struct vf +{ + float4 HPOS : POSITION; + float3 COL0 : COLOR0; + float2 TEX0 : TEXCOORD0; + float fog : FOG; +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf main(av v) +{ + vf o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos.x + result.x, pos.y, pos.z + result.y, 1); + + // Calc fog + o.fog = calc_fogging(f_pos); + + // Final xform + o.HPOS = mul(m_VP, f_pos); + + // Lighting + float3 N = mul(m_xform, unpack_normal(v.nc)); // normalize (mul (m_xform, unpack_normal(v.nc))); + float L_base = v.nc.w; // base hemisphere + float4 L_unpack = c_scale * L_base + c_bias; // unpacked and decompressed + float3 L_rgb = L_unpack.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi_wrap(N, .75f) * L_unpack.w; // hemisphere + float3 L_sun = v_sun(N) * (L_base * c_sun.x + c_sun.y); // sun + float3 L_final = L_rgb + L_hemi + L_sun; + o.COL0 = L_final; + + // final xform, color, tc + o.TEX0.xy = (v.misc * consts).xy; + + return o; +} diff --git a/gamedata/shaders/r1/tree_w_dt.vs.hlsl b/gamedata/shaders/r1/tree_w_dt.vs.hlsl new file mode 100644 index 0000000..d28c384 --- /dev/null +++ b/gamedata/shaders/r1/tree_w_dt.vs.hlsl @@ -0,0 +1,67 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +struct vf +{ + float4 HPOS : POSITION; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; // detail + float4 c0 : COLOR0; // c0=all lighting, c0.a needed for details + float4 c1 : COLOR1; // ps_1_1 read ports + float fog : FOG; +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf main(av v) +{ + vf o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos.x + result.x, pos.y, pos.z + result.y, 1); + + // Calc fog + o.fog = calc_fogging(f_pos); + + // Final xform + o.HPOS = mul(m_VP, f_pos); + + // Lighting + float3 N = mul(m_xform, unpack_normal(v.nc)); // normalize (mul (m_xform, unpack_normal(v.nc))); + float L_base = v.nc.w; // base hemisphere + float4 L_unpack = c_scale * L_base + c_bias; // unpacked and decompressed + float3 L_rgb = L_unpack.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi_wrap(N, .75f) * L_unpack.w; // hemisphere + float3 L_sun = v_sun(N) * (L_base * c_sun.x + c_sun.y); // sun + float3 L_final = L_rgb + L_hemi + L_sun; + + // final xform, color, tc + o.tc0.xy = (v.misc * consts).xy; + o.tc1 = o.tc0 * dt_params; // dt tc + float2 dt = calc_detail(f_pos); // + o.c0 = float4(L_final, dt.x); // + o.c1 = dt.y; // + + return o; +} diff --git a/gamedata/shaders/r1/tree_w_point.vs.hlsl b/gamedata/shaders/r1/tree_w_point.vs.hlsl new file mode 100644 index 0000000..a83ebfe --- /dev/null +++ b/gamedata/shaders/r1/tree_w_point.vs.hlsl @@ -0,0 +1,41 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf_point main(av v) +{ + vf_point o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos.x + result.x, pos.y, pos.z + result.y, 1); + float3 f_N = normalize(mul(m_xform, unpack_normal(v.nc))); + + // Final xform + o.hpos = mul(m_VP, f_pos); + o.tc0 = (v.misc * consts).xy; + o.color = calc_point(o.tc1, o.tc2, f_pos, f_N); + + return o; +} diff --git a/gamedata/shaders/r1/tree_w_spot.vs.hlsl b/gamedata/shaders/r1/tree_w_spot.vs.hlsl new file mode 100644 index 0000000..81de4b6 --- /dev/null +++ b/gamedata/shaders/r1/tree_w_spot.vs.hlsl @@ -0,0 +1,41 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf_spot main(av v) +{ + vf_spot o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos.x + result.x, pos.y, pos.z + result.y, 1); + float3 f_N = normalize(mul(m_xform, unpack_normal(v.nc))); + + // Final xform + o.hpos = mul(m_VP, f_pos); + o.tc0 = (v.misc * consts).xy; + o.color = calc_spot(o.tc1, o.tc2, f_pos, f_N); + + return o; +} diff --git a/gamedata/shaders/r1/tree_wave.vs.hlsl b/gamedata/shaders/r1/tree_wave.vs.hlsl new file mode 100644 index 0000000..3d7ebfa --- /dev/null +++ b/gamedata/shaders/r1/tree_wave.vs.hlsl @@ -0,0 +1,62 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +struct vf +{ + float4 HPOS : POSITION; + float4 COL0 : COLOR0; + float2 TEX0 : TEXCOORD0; + float fog : FOG; +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf main(av v) +{ + vf o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos.x + result.x, pos.y, pos.z + result.y, 1); + + // Calc fog + o.fog = calc_fogging(f_pos); + + // Final xform + o.HPOS = mul(m_VP, f_pos); + + // Lighting + float3 N = normalize(mul(m_xform, unpack_normal(v.nc))); + float L_base = v.nc.w; // base hemisphere + float4 L_unpack = c_scale * L_base + c_bias; // unpacked and decompressed + float3 L_rgb = L_unpack.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi_wrap(N, .75f) * L_unpack.w; // hemisphere + float3 L_sun = v_sun(N) * (L_base * c_sun.x + c_sun.y); // sun + float3 L_final = L_rgb + L_hemi + L_sun + L_ambient; + o.COL0 = float4(L_final, 1); + + // final xform, color, tc + o.TEX0.xy = (v.misc * consts).xy; + + return o; +} diff --git a/gamedata/shaders/r1/tree_wave_dt.vs.hlsl b/gamedata/shaders/r1/tree_wave_dt.vs.hlsl new file mode 100644 index 0000000..d27baf7 --- /dev/null +++ b/gamedata/shaders/r1/tree_wave_dt.vs.hlsl @@ -0,0 +1,67 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +struct vf +{ + float4 HPOS : POSITION; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; // detail + float4 c0 : COLOR0; // c0=all lighting + float4 c1 : COLOR1; // ps_1_1 read ports + float fog : FOG; +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf main(av v) +{ + vf o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos.x + result.x, pos.y, pos.z + result.y, 1); + + // Calc fog + o.fog = calc_fogging(f_pos); + + // Final xform + o.HPOS = mul(m_VP, f_pos); + + // Lighting + float3 N = normalize(mul(m_xform, unpack_normal(v.nc))); + float L_base = v.nc.w; // base hemisphere + float4 L_unpack = c_scale * L_base + c_bias; // unpacked and decompressed + float3 L_rgb = L_unpack.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi_wrap(N, .75f) * L_unpack.w; // hemisphere + float3 L_sun = v_sun(N) * (L_base * c_sun.x + c_sun.y); // sun + float3 L_final = L_rgb + L_hemi + L_sun + L_ambient; + + // final xform, color, tc + o.tc0.xy = (v.misc * consts).xy; + o.tc1 = o.tc0 * dt_params; // dt tc + float2 dt = calc_detail(f_pos); // + o.c0 = float4(L_final, dt.x); // + o.c1 = dt.y; // + + return o; +} diff --git a/gamedata/shaders/r1/tree_wave_point.vs.hlsl b/gamedata/shaders/r1/tree_wave_point.vs.hlsl new file mode 100644 index 0000000..a83ebfe --- /dev/null +++ b/gamedata/shaders/r1/tree_wave_point.vs.hlsl @@ -0,0 +1,41 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf_point main(av v) +{ + vf_point o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos.x + result.x, pos.y, pos.z + result.y, 1); + float3 f_N = normalize(mul(m_xform, unpack_normal(v.nc))); + + // Final xform + o.hpos = mul(m_VP, f_pos); + o.tc0 = (v.misc * consts).xy; + o.color = calc_point(o.tc1, o.tc2, f_pos, f_N); + + return o; +} diff --git a/gamedata/shaders/r1/tree_wave_spot.vs.hlsl b/gamedata/shaders/r1/tree_wave_spot.vs.hlsl new file mode 100644 index 0000000..81de4b6 --- /dev/null +++ b/gamedata/shaders/r1/tree_wave_spot.vs.hlsl @@ -0,0 +1,41 @@ +#include "common.hlsli" + +struct av +{ + float4 pos : POSITION; // (float,float,float,1) + float4 nc : NORMAL; // (float,float,float,clr) + float4 misc : TEXCOORD0; // (u(Q),v(Q),frac,???) +}; + +uniform float3x4 m_xform; +uniform float4 consts; // {1/quant,1/quant,???,???} +uniform float4 wave; // cx,cy,cz,tm +uniform float4 wind; // direction2D +uniform float4 c_bias; // + color +uniform float4 c_scale; // * color +uniform float2 c_sun; // x=*, y=+ + +vf_spot main(av v) +{ + vf_spot o; + + // Transform to world coords + float3 pos = mul(m_xform, v.pos); + + // + float base = m_xform._24; // take base height from matrix + float dp = calc_cyclic(wave.w + dot(pos, (float3)wave)); + float H = pos.y - base; // height of vertex (scaled, rotated, etc.) + float frac = v.misc.z * consts.x; // fractional (or rigidity) + float inten = H * dp; // intensity + float2 result = calc_xz_wave(wind.xz * inten, frac); + float4 f_pos = float4(pos.x + result.x, pos.y, pos.z + result.y, 1); + float3 f_N = normalize(mul(m_xform, unpack_normal(v.nc))); + + // Final xform + o.hpos = mul(m_VP, f_pos); + o.tc0 = (v.misc * consts).xy; + o.color = calc_spot(o.tc1, o.tc2, f_pos, f_N); + + return o; +} diff --git a/gamedata/shaders/r1/vert.ps.hlsl b/gamedata/shaders/r1/vert.ps.hlsl new file mode 100644 index 0000000..10bbe06 --- /dev/null +++ b/gamedata/shaders/r1/vert.ps.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float3 c0 : COLOR0; + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float3 final = t_base * I.c0 * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + + // out + return float4(final, t_base.a); +} diff --git a/gamedata/shaders/r1/vert.vs.hlsl b/gamedata/shaders/r1/vert.vs.hlsl new file mode 100644 index 0000000..279af93 --- /dev/null +++ b/gamedata/shaders/r1/vert.vs.hlsl @@ -0,0 +1,29 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float3 c0 : COLOR0; // c0=all lighting + float fog : FOG; +}; + +vf main(v_vert v) +{ + vf o; + + float3 N = unpack_normal(v.N); + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base (v.tc); // copy tc + + float3 L_rgb = v.color.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi(N) * v.N.w; // hemisphere + float3 L_sun = v_sun(N) * v.color.w; // sun + float3 L_final = L_rgb + L_hemi + L_sun + L_ambient; + + o.c0 = L_final; + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/vert_dt.ps.hlsl b/gamedata/shaders/r1/vert_dt.ps.hlsl new file mode 100644 index 0000000..4424ea7 --- /dev/null +++ b/gamedata/shaders/r1/vert_dt.ps.hlsl @@ -0,0 +1,24 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // base + float4 c0 : COLOR0; + float4 c1 : COLOR1; + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_dt = tex2D(s_detail, I.tc1); + + float3 detail = t_dt * I.c0.a + I.c1.a; + float3 final = (t_base * I.c0 * 2.0f) * detail * 2.0f; + final = lerp(fog_color.xyz, final, I.fog); + + // out + return float4(final.r, final.g, final.b, t_base.a); +} diff --git a/gamedata/shaders/r1/vert_dt.vs.hlsl b/gamedata/shaders/r1/vert_dt.vs.hlsl new file mode 100644 index 0000000..7be5614 --- /dev/null +++ b/gamedata/shaders/r1/vert_dt.vs.hlsl @@ -0,0 +1,35 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; // detail + float4 c0 : COLOR0; // c0=all lighting + float4 c1 : COLOR1; // ps_1_1 read ports + float fog : FOG; +}; + +vf main(v_vert v) +{ + vf o; + + float3 N = unpack_normal(v.N); + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base (v.tc); // copy tc + o.tc1 = o.tc0 * dt_params; // dt tc + + float3 L_rgb = v.color.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi(N) * v.N.w; // hemisphere + float3 L_sun = v_sun(N) * v.color.w; // sun + float3 L_final = L_rgb + L_hemi + L_sun + L_ambient; + + float2 dt = calc_detail(v.P); + + o.c0 = float4(L_final.x, L_final.y, L_final.z, dt.x); + o.c1 = dt.y; // + o.fog = calc_fogging(v.P); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/vert_l.ps.hlsl b/gamedata/shaders/r1/vert_l.ps.hlsl new file mode 100644 index 0000000..8772bc1 --- /dev/null +++ b/gamedata/shaders/r1/vert_l.ps.hlsl @@ -0,0 +1,12 @@ +#include "common.hlsli" + +struct v2p +{ + float4 c0 : COLOR0; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + return I.c0; +} diff --git a/gamedata/shaders/r1/vert_l.vs.hlsl b/gamedata/shaders/r1/vert_l.vs.hlsl new file mode 100644 index 0000000..34e4bb3 --- /dev/null +++ b/gamedata/shaders/r1/vert_l.vs.hlsl @@ -0,0 +1,22 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float4 c0 : COLOR0; // c0=all lighting +}; + +vf main(v_vert v) +{ + vf o; + + float3 N = unpack_normal(v.N); + float3 L_rgb = v.color.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi(N) * v.N.w; // hemisphere + float L_sun = v.color.w; // sun occl only + float3 L_final = L_rgb + L_hemi + L_ambient; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.c0 = float4(L_final.x, L_final.y, L_final.z, L_sun); + return o; +} diff --git a/gamedata/shaders/r1/vert_point.vs.hlsl b/gamedata/shaders/r1/vert_point.vs.hlsl new file mode 100644 index 0000000..9b6237b --- /dev/null +++ b/gamedata/shaders/r1/vert_point.vs.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +vf_point main(v_vert v) +{ + vf_point o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base (v.tc); // copy tc + o.color = calc_point(o.tc1, o.tc2, v.P, unpack_normal(v.N)); // just hemisphere + + return o; +} diff --git a/gamedata/shaders/r1/vert_spot.vs.hlsl b/gamedata/shaders/r1/vert_spot.vs.hlsl new file mode 100644 index 0000000..24ba8bd --- /dev/null +++ b/gamedata/shaders/r1/vert_spot.vs.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +vf_spot main(v_vert v) +{ + vf_spot o; + + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base (v.tc); // copy tc + o.color = calc_spot(o.tc1, o.tc2, v.P, unpack_normal(v.N)); // just hemisphere + + return o; +} diff --git a/gamedata/shaders/r1/water.ps.hlsl b/gamedata/shaders/r1/water.ps.hlsl new file mode 100644 index 0000000..bc7a57b --- /dev/null +++ b/gamedata/shaders/r1/water.ps.hlsl @@ -0,0 +1,56 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tbase : TEXCOORD0; // base + float2 tnorm0 : TEXCOORD1; // nm0 + float2 tnorm1 : TEXCOORD2; // nm1 + float3 M1 : TEXCOORD3; + float3 M2 : TEXCOORD4; + float3 M3 : TEXCOORD5; + float3 v2point : TEXCOORD6; + float4 c0 : COLOR0; + float fog : FOG; +}; + +uniform sampler2D s_nmap; +uniform samplerCUBE s_env0; +uniform samplerCUBE s_env1; + +float4 main(vf I) : COLOR +{ + float4 base = tex2D(s_base, I.tbase); + float3 n0 = tex2D(s_nmap, I.tnorm0); + float3 n1 = tex2D(s_nmap, I.tnorm1); + float3 Navg = n0 + n1 - 1.0f; + + float3 Nw = mul(float3x3(I.M1, I.M2, I.M3), Navg); + Nw = normalize(Nw); + + float3 v2point = normalize(I.v2point); + float3 vreflect = reflect(v2point, Nw); + float fresnel = saturate(dot(vreflect, v2point)); + float3 vreflectabs = abs(vreflect); + float vreflectmax = max(vreflectabs.x, max(vreflectabs.y, vreflectabs.z)); + vreflect /= vreflectmax; + vreflect.y = vreflect.y * 2.0f - 1.0f; + + float3 env0 = texCUBE(s_env0, vreflect); + float3 env1 = texCUBE(s_env1, vreflect); + float3 env = lerp(env0, env1, L_ambient.w); + + float power = pow(fresnel, 9); + float amount = 0.55f + 0.25f * power; // 1=full env, 0=no env // 1=full env, 0=no env + float alpha = 0.75f + 0.25f * power; // 1=full env, 0=no env + float3 c_reflection = env * amount; + float3 final = lerp(c_reflection, base.rgb, base.a); + final *= I.c0 * 2; + + // Fogging + float fog = 1.0f - I.c0.w; + final = lerp(final, fog_color.xyz, fog); + alpha *= 1.0f - fog * fog; + + return float4(final, alpha); +} diff --git a/gamedata/shaders/r1/water.vs.hlsl b/gamedata/shaders/r1/water.vs.hlsl new file mode 100644 index 0000000..7eaa16a --- /dev/null +++ b/gamedata/shaders/r1/water.vs.hlsl @@ -0,0 +1,76 @@ +#include "common.hlsli" +#include "shared\waterconfig.hlsli" +#include "shared\watermove.hlsli" + +struct v_vertx +{ + float4 P : POSITION; // (float,float,float,1) + float4 N : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; + float4 B : BINORMAL; + float4 color : COLOR0; // (r,g,b,dir-occlusion) + float2 uv : TEXCOORD0; // (u0,v0) +}; + +struct vf +{ + float4 hpos : POSITION; + float2 tbase : TEXCOORD0; // base + float2 tnorm0 : TEXCOORD1; // nm0 + float2 tnorm1 : TEXCOORD2; // nm1 + float3 M1 : TEXCOORD3; + float3 M2 : TEXCOORD4; + float3 M3 : TEXCOORD5; + float3 v2point : TEXCOORD6; + float4 c0 : COLOR0; + float fog : FOG; +}; + +vf main(v_vertx v) +{ + vf o; + + float4 P = v.P; // world + float3 NN = unpack_normal(v.N); + P = watermove(P); + + o.v2point = P - eye_position; + o.tbase = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + o.tnorm0 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_0, P.xz, W_DISTORT_AMP_0); + o.tnorm1 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_1, P.xz, W_DISTORT_AMP_1); + + // Calculate the 3x3 transform from tangent space to eye-space + // TangentToEyeSpace = object2eye * tangent2object + // = object2eye * transpose(object2tangent) (since the inverse of a rotation is its transpose) + float3 N = unpack_bx2(v.N); // just scale (assume normal in the -.5f, .5f) + float3 T = unpack_bx2(v.T); // + float3 B = unpack_bx2(v.B); // + float3x3 xform = mul((float3x3)m_W, + float3x3(T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z)); + // The pixel shader operates on the bump-map in [0..1] range + // Remap this range in the matrix, anyway we are pixel-shader limited :) + // ...... [ 2 0 0 0] + // ...... [ 0 2 0 0] + // ...... [ 0 0 2 0] + // ...... [-1 -1 -1 1] + // issue: strange, but it's slower :( + // issue: interpolators? dp4? VS limited? black magic? + + // Feed this transform to pixel shader + o.M1 = xform[0]; + o.M2 = xform[1]; + o.M3 = xform[2]; + + float3 L_rgb = v.color.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi(N) * v.N.w; // hemisphere + float3 L_sun = v_sun(N) * v.color.w; // sun + float3 L_final = L_rgb + L_hemi + L_sun + L_ambient; + + o.hpos = mul(m_VP, P); // xform, input in world coords + o.fog = calc_fogging(v.P); + o.c0 = float4(L_final, o.fog); + + return o; +} diff --git a/gamedata/shaders/r1/waterd.ps.hlsl b/gamedata/shaders/r1/waterd.ps.hlsl new file mode 100644 index 0000000..bf65920 --- /dev/null +++ b/gamedata/shaders/r1/waterd.ps.hlsl @@ -0,0 +1,30 @@ +#include "common.hlsli" +#include "shared\waterconfig.hlsli" + +struct v2p +{ + float2 tbase : TEXCOORD0; // base + float2 tdist0 : TEXCOORD1; // d0 + float2 tdist1 : TEXCOORD2; // d1 +}; + +uniform sampler2D s_distort0; +uniform sampler2D s_distort1; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tbase); + + float2 t_d0 = tex2D(s_distort0, I.tdist0); + float2 t_d1 = tex2D(s_distort1, I.tdist1); + float2 distort = (t_d0 + t_d1) * 0.5f; // average + float2 zero = float2(0.5f, 0.5f); + float2 faded = lerp(distort, zero, t_base.a); + + float2 faded_bx2 = (faded * 2.0f - 1.0f) * W_DISTORT_POWER; + float faded_dot = dot(float3(faded_bx2, 0.0f), 0.75f); // 0.75 + float alpha = 0.5f; // abs (faded_dot); + // out + return float4(faded, 0.0f, alpha); +} diff --git a/gamedata/shaders/r1/waterd.vs.hlsl b/gamedata/shaders/r1/waterd.vs.hlsl new file mode 100644 index 0000000..4321306 --- /dev/null +++ b/gamedata/shaders/r1/waterd.vs.hlsl @@ -0,0 +1,27 @@ +#include "common.hlsli" +#include "shared\waterconfig.hlsli" +#include "shared\watermove.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tbase : TEXCOORD0; + float2 tdist0 : TEXCOORD1; + float2 tdist1 : TEXCOORD2; +}; + +vf main(v_vert v) +{ + vf o; + + float4 P = v.P; + float3 N = unpack_normal(v.N); + P = watermove(P); + + o.tbase = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + o.tdist0 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_0, P.xz, W_DISTORT_AMP_0); + o.tdist1 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_1, P.xz, W_DISTORT_AMP_1); + o.hpos = mul(m_VP, P); // xform, input in world coords + + return o; +} diff --git a/gamedata/shaders/r1/wmark.ps.hlsl b/gamedata/shaders/r1/wmark.ps.hlsl new file mode 100644 index 0000000..d1544e0 --- /dev/null +++ b/gamedata/shaders/r1/wmark.ps.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; + float fog : FOG; +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 final = t_base * I.c0 * 2; + final.w = t_base.w * I.c0.w; + final.w *= I.fog; + + // out + return final; +} diff --git a/gamedata/shaders/r1/wmark.vs.hlsl b/gamedata/shaders/r1/wmark.vs.hlsl new file mode 100644 index 0000000..3c489b8 --- /dev/null +++ b/gamedata/shaders/r1/wmark.vs.hlsl @@ -0,0 +1,65 @@ +#include "common.hlsli" +#include "shared\wmark.hlsli" + +// for multiplicative decal + +// For alpha-blend decal +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float4 c0 : COLOR0; // c0=all lighting + float fog : FOG; +}; + +vf main(v_vert v) +{ + vf o; + + float3 N = unpack_normal(v.N); + float4 P = wmark_shift(v.P, N); + o.hpos = mul(m_VP, P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + + float3 L_rgb = v.color.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi(N) * v.N.w; // hemisphere + float3 L_sun = v_sun(N) * v.color.w; // sun + float3 L_final = L_rgb + L_hemi + L_sun + L_ambient; + + o.c0.rgb = L_final; + o.c0.a = calc_fogging(P); // fog, input in world coords + o.fog = 1; // fog, input in world coords + + return o; +} + +/* +// For alpha-blend decal +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float3 c0 : COLOR0; // c0=all lighting + float fog : FOG; +}; + +vf main (v_vert v) +{ + vf o; + + float3 N = unpack_normal (v.N); + float4 P = wmark_shift (v.P,N); + o.hpos = mul (m_VP, P); // xform, input in world coords + o.tc0 = unpack_tc_base (v.uv,v.T.w,v.B.w); // copy tc + + float3 L_rgb = v.color.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi(N)*v.N.w; // hemisphere + float3 L_sun = v_sun(N)*v.color.w; // sun + float3 L_final = L_rgb + L_hemi + L_sun + L_ambient; + + o.c0 = L_final; + o.fog = calc_fogging (P); // fog, input in world coords + + return o; +} +*/ diff --git a/gamedata/shaders/r1/wmark_point.vs.hlsl b/gamedata/shaders/r1/wmark_point.vs.hlsl new file mode 100644 index 0000000..e5ff46f --- /dev/null +++ b/gamedata/shaders/r1/wmark_point.vs.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" +#include "shared\wmark.hlsli" + +vf_point main(v_vert v) +{ + vf_point o; + + float3 N = unpack_normal(v.N); + float4 P = wmark_shift(v.P, N); + o.hpos = mul(m_VP, P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + o.color = calc_point(o.tc1, o.tc2, P, N); // just hemisphere + + return o; +} diff --git a/gamedata/shaders/r1/wmark_spot.vs.hlsl b/gamedata/shaders/r1/wmark_spot.vs.hlsl new file mode 100644 index 0000000..5a8e3f5 --- /dev/null +++ b/gamedata/shaders/r1/wmark_spot.vs.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" +#include "shared\wmark.hlsli" + +vf_spot main(v_vert v) +{ + vf_spot o; + + float3 N = unpack_normal(v.N); + float4 P = wmark_shift(v.P, N); + o.hpos = mul(m_VP, P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + o.color = calc_spot(o.tc1, o.tc2, P, N); // just hemisphere + + return o; +} diff --git a/gamedata/shaders/r1/wmarkmult.ps.hlsl b/gamedata/shaders/r1/wmarkmult.ps.hlsl new file mode 100644 index 0000000..2a4ce55 --- /dev/null +++ b/gamedata/shaders/r1/wmarkmult.ps.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // c0=all lighting +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 res = tex2D(s_base, I.tc0); + res = lerp(0.5f, res, I.c0.a); + return res; +} diff --git a/gamedata/shaders/r1/yuv2rgb.ps.hlsl b/gamedata/shaders/r1/yuv2rgb.ps.hlsl new file mode 100644 index 0000000..96350c1 --- /dev/null +++ b/gamedata/shaders/r1/yuv2rgb.ps.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +float4 main(float2 uv : TEXCOORD0) : COLOR +{ + float3 YUV = tex2D(s_base, uv); + + float Y = YUV.x; + float U = YUV.y; + float V = YUV.z; + + /* + float _T = 1.16406f*Y; + float R1 = _T + 1.59765f*V - 0.86961f; + float G1 = _T - 0.390625f*U - 0.8125f*V + 0.53076f; + float B1 = _T + 2.01562f*U - 1.0786f; + */ + + float c = 1.16406f; + float3 _Y = float3(c, c, c) * Y; + float3 _U = float3(0.0f, -0.390625f, +2.01562f) * U; + float3 _V = float3(+1.59765f, -0.8125f, 0.0f) * V; + float3 _S = float3(-0.86961f, +0.53076f, -1.0786f); + + return float4(_Y + _U + _V + _S, 1.0f); +} diff --git a/gamedata/shaders/r2/.lua b/gamedata/shaders/r2/.lua new file mode 100644 index 0000000..af790cb --- /dev/null +++ b/gamedata/shaders/r2/.lua @@ -0,0 +1,38 @@ +function printf(fmt, ...) + log(string.format(fmt, unpack(arg))) +end + +--[[ +t_point_att = "internal\\internal_light_attpoint" + +function r1_lspot (shader, t_base, vs, aref) + shader:begin (vs,"add_spot") + : fog (false) + : zb (true,false) + : blend (true,blend.one,blend.one) + : aref (true,aref or 0) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap") :texture ("internal\\internal_light_att") + : clamp () + : f_linear () + : project (true) + shader:sampler ("s_att") :texture ("internal\\internal_light_attclip") + : clamp () + : f_linear () +end + +function r1_lpoint (shader, t_base, vs, aref) + shader:begin (vs,"add_point") + : fog (false) + : zb (true,false) + : blend (true,blend.one,blend.one) + : aref (true,aref or 0) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap") :texture (t_point_att) + : clamp () + : f_linear () + shader:sampler ("s_att") :texture (t_point_att) + : clamp () + : f_linear () +end +]] -- diff --git a/gamedata/shaders/r2/accum_base.ps.hlsl b/gamedata/shaders/r2/accum_base.ps.hlsl new file mode 100644 index 0000000..e3941a4 --- /dev/null +++ b/gamedata/shaders/r2/accum_base.ps.hlsl @@ -0,0 +1,51 @@ +#include "common.hlsli" +#include "lmodel.hlsli" +#include "shadow.hlsli" + +////////////////////////////////////////////////////////////////////////////////////////// +// This is the basic primitive used by convex, volumetric lights +// for example spot-lights, one face of the omni lights, etc. +////////////////////////////////////////////////////////////////////////////////////////// +// following options are available to configure compilation: +// USE_LMAP +// USE_LMAPXFORM +// USE_SHADOW +////////////////////////////////////////////////////////////////////////////////////////// + +uniform float4 m_lmap[2]; + +float4 main(float4 tc : TEXCOORD0, float4 tcJ : TEXCOORD1) : COLOR +{ + float4 _P = tex2Dproj(s_position, tc); + float4 _N = tex2Dproj(s_normal, tc); + + _P.xyz += normalize(_N.xyz) * 0.025f; + + float m = xmaterial; +#ifndef USE_R2_STATIC_SUN + m = _P.w; +#endif + // ----- light-model + float rsqr; + float4 light = plight_local(m, _P, _N, Ldynamic_pos, Ldynamic_pos.w, rsqr); + + // ----- shadow + float4 P4 = float4(_P.x, _P.y, _P.z, 1.0f); + float4 PS = mul(m_shadow, P4); + float s = 1.0f; +#ifdef USE_SHADOW + s = shadow(PS); +#endif + + // ----- lightmap + float4 lightmap = 1.0f; +#ifdef USE_LMAP + #ifdef USE_LMAPXFORM + PS.x = dot(P4, m_lmap[0]); + PS.y = dot(P4, m_lmap[1]); + #endif + lightmap = tex2Dlod(s_lmap, float4(PS.xy / PS.w, 0.0f, 0.0f)); // +#endif + + return blendp(Ldynamic_color * light * s * lightmap, tc); +} diff --git a/gamedata/shaders/r2/accum_emissive.ps.hlsl b/gamedata/shaders/r2/accum_emissive.ps.hlsl new file mode 100644 index 0000000..6a5a8a6 --- /dev/null +++ b/gamedata/shaders/r2/accum_emissive.ps.hlsl @@ -0,0 +1,6 @@ +#include "common.hlsli" + +float4 main(p_flat I) : COLOR +{ + return float4(1.0f, 1.0f, 1.0f, 1.0f) * 16.0f; +} diff --git a/gamedata/shaders/r2/accum_emissivel.ps.hlsl b/gamedata/shaders/r2/accum_emissivel.ps.hlsl new file mode 100644 index 0000000..ba85a5e --- /dev/null +++ b/gamedata/shaders/r2/accum_emissivel.ps.hlsl @@ -0,0 +1,6 @@ +#include "common.hlsli" + +float4 main(p_flat I) : COLOR +{ + return float4(1.0f, 1.0f, 1.0f, 0.0f) * 1.0f; +} diff --git a/gamedata/shaders/r2/accum_indirect.ps.hlsl b/gamedata/shaders/r2/accum_indirect.ps.hlsl new file mode 100644 index 0000000..035626e --- /dev/null +++ b/gamedata/shaders/r2/accum_indirect.ps.hlsl @@ -0,0 +1,22 @@ +#include "common.hlsli" +#include "lmodel.hlsli" + +// Pixel +// Note: this is a float-sphere +uniform float3 direction; + +float4 main(float4 tc : TEXCOORD0) : COLOR +{ + float4 _P = tex2Dproj(s_position, tc); + float4 _N = tex2Dproj(s_normal, tc); + + float3 L2P = _P.xyz - Ldynamic_pos.xyz; // light2point + float3 L2P_N = normalize(L2P); // light2point + float rsqr = dot(L2P, L2P); // distance 2 light (squared) + float att = saturate(1.0f - rsqr * Ldynamic_pos.w); // q-linear attenuate + float light = saturate(dot(-L2P_N, _N.xyz)); + float hemi = saturate(dot(L2P_N, direction)); + + // Final color + return blendp(float4(Ldynamic_color.xyz * att * light * hemi, 0.0f), tc); +} diff --git a/gamedata/shaders/r2/accum_mask.vs.hlsl b/gamedata/shaders/r2/accum_mask.vs.hlsl new file mode 100644 index 0000000..ba0d638 --- /dev/null +++ b/gamedata/shaders/r2/accum_mask.vs.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +float4 main(float4 P : POSITION) : POSITION +{ + return mul(m_WVP, P); +} +FXVS; diff --git a/gamedata/shaders/r2/accum_sun.ps.hlsl b/gamedata/shaders/r2/accum_sun.ps.hlsl new file mode 100644 index 0000000..8ef4efa --- /dev/null +++ b/gamedata/shaders/r2/accum_sun.ps.hlsl @@ -0,0 +1,44 @@ +#include "common.hlsli" +#include "lmodel.hlsli" +#include "shadow.hlsli" + +float4 main(float4 tc : TEXCOORD0, float4 tcJ : TEXCOORD1) : COLOR +{ + float4 _P = tex2Dproj(s_position, tc); + float4 _N = tex2Dproj(s_normal, tc); + _P.xyz += normalize(_N.xyz) * 0.015f; + + // ----- light-model + float m = xmaterial; +#ifndef USE_R2_STATIC_SUN + m = _P.w; +#endif + float4 light = plight_infinity(m, _P, _N, Ldynamic_dir); + + // ----- shadow + float4 P4 = float4(_P.x, _P.y, _P.z, 1.0f); + float4 PS = mul(m_shadow, P4); + float s = 1.0f; +#if SUN_QUALITY == 2 + #ifndef USE_FAR_ATTENTION + s *= shadow_high(PS); + #else + s *= shadowtest_sun(PS, float4(0, 0, 0, 0)); + #endif +#else + s *= shadow(PS); +#endif + +#ifdef USE_FAR_ATTENTION + // Far edge fading code + float3 tc_f = abs(PS.xyz / PS.w - float3(0.5f, 0.5f, 0.5f)); + + float3 border = 0.4f; + float3 fac = 1.0f - saturate((tc_f - border) / (0.5f - border)); + + s = lerp(s, 1.0f, 1.0f - fac.x * fac.y * fac.z); +#endif + + s *= sunmask(P4); + return blend(Ldynamic_color * light * s, tc); +} diff --git a/gamedata/shaders/r2/accum_sun_mask.ps.hlsl b/gamedata/shaders/r2/accum_sun_mask.ps.hlsl new file mode 100644 index 0000000..4defa0f --- /dev/null +++ b/gamedata/shaders/r2/accum_sun_mask.ps.hlsl @@ -0,0 +1,11 @@ +#include "common.hlsli" + +#define EPS (0.9f / 255.f) + +float4 main(p_screen I) : COLOR +{ + // Sample the fat framebuffer: + float4 NH = tex2D(s_normal, I.tc0); + float L = dot(Ldynamic_dir, (float3)NH) + EPS; // Use hemisphere as approximation of max light + return float4(L, L, L, L); +} diff --git a/gamedata/shaders/r2/accum_volume.vs.hlsl b/gamedata/shaders/r2/accum_volume.vs.hlsl new file mode 100644 index 0000000..20c5d3d --- /dev/null +++ b/gamedata/shaders/r2/accum_volume.vs.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +struct v2p +{ + float4 hpos : POSITION; // Clip-space position (for rasterization) + float4 tc : TEXCOORD0; +}; + +// uniform float4x4 m_texgen; +uniform float4x4 m_texgen_J; + +// Vertex +v2p main(float4 P : POSITION) +{ + v2p O; + O.hpos = mul(m_WVP, P); + O.tc = mul(m_texgen, P); + return O; +} +FXVS; diff --git a/gamedata/shaders/r2/accum_volumetric.lua b/gamedata/shaders/r2/accum_volumetric.lua new file mode 100644 index 0000000..73801c5 --- /dev/null +++ b/gamedata/shaders/r2/accum_volumetric.lua @@ -0,0 +1,12 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("accum_volumetric", "accum_volumetric") + :fog(false) + :zb(true, false) + :blend(true, blend.one, blend.one) + -- : aref (true,0) + :sorting(2, false) + shader:sampler("s_lmap"):texture(t_base):clamp() + shader:sampler("s_smap"):texture("null") + -- shader:sampler ("s_noise") :texture("fx\\fx_noise2") : f_linear () + shader:sampler("s_noise"):texture("fx\\fx_noise"):f_linear() +end diff --git a/gamedata/shaders/r2/accum_volumetric.ps.hlsl b/gamedata/shaders/r2/accum_volumetric.ps.hlsl new file mode 100644 index 0000000..caf68cd --- /dev/null +++ b/gamedata/shaders/r2/accum_volumetric.ps.hlsl @@ -0,0 +1,76 @@ +#include "common.hlsli" +#include "shadow.hlsli" + +struct v2p +{ + float3 lightToPos : TEXCOORD0; // light center to plane vector + float3 vPos : TEXCOORD1; // position in camera space + float fDensity : TEXCOORD2; // plane density alon Z axis + // float2 tNoise : TEXCOORD3; // projective noise +}; + +uniform float4 m_lmap[2]; +uniform sampler2D s_noise; + +#define USE_LMAP +#define USE_LMAPXFORM +#define USE_SHADOW + +// Pixel +float4 main(v2p I) : COLOR +{ + // ----- shadow + float4 P4 = float4(I.vPos, 1.0f); + float4 PS = mul(m_shadow, P4); + float s = 1.0f; +#ifdef USE_SHADOW + s = shadow(PS); +#endif + + // ----- lightmap + float4 lightmap = 1.0f; +#ifdef USE_LMAP + #ifdef USE_LMAPXFORM + PS.x = dot(P4, m_lmap[0]); + PS.y = dot(P4, m_lmap[1]); + #endif + lightmap = tex2Dproj(s_lmap, PS); // +#endif + + // ----- attenuate + float rsqr = dot(I.lightToPos, I.lightToPos); // distance 2 light (squared) + float att = saturate(1 - rsqr * Ldynamic_pos.w); // q-linear attenuate + // float att = saturate( 1 - (rsqr * Ldynamic_pos.w)*(rsqr * Ldynamic_pos.w) ); // q-linear attenuate + // float att = 10*(1/(1+0.1*rsqr)); + // float att = 1.0h/rsqr; + // float att = 1.0h/rsqr-Ldynamic_pos.w; + // float att = 5*(sqrt(1.0h/rsqr)-sqrt(Ldynamic_pos.w)); + + // ----- noise + PS.xy /= PS.w; + float time = timers.z * 0.1f; + PS.xy /= 3; + PS.x += time; + float4 t_noise = tex2D(s_noise, PS); + PS.x -= time; + PS.y -= time * 0.70091f; + t_noise *= tex2D(s_noise, PS); + // t_noise *= 4; + t_noise = t_noise * 0.5f + 0.5f; + + // out + // float maxIntens = 1.0h/100.0h; + // float maxIntens = 1.0h/40.0h; + // float maxIntens = 1.0h/10.0h; + float maxIntens = I.fDensity; + float3 result = maxIntens * s * att; + result *= lightmap; + result *= Ldynamic_color * t_noise; + + // result = maxIntens; + // result *= lightmap; + + // result = 0.1h; + // result = 0.0h; + return float4(result, 0.0f); +} diff --git a/gamedata/shaders/r2/accum_volumetric.vs.hlsl b/gamedata/shaders/r2/accum_volumetric.vs.hlsl new file mode 100644 index 0000000..ef27a7d --- /dev/null +++ b/gamedata/shaders/r2/accum_volumetric.vs.hlsl @@ -0,0 +1,32 @@ +#include "common.hlsli" + +float3 vMinBounds; +float3 vMaxBounds; + +struct vf +{ + float4 hpos : POSITION; + float3 lightToPos : TEXCOORD0; // light center to plane vector + float3 vPos : TEXCOORD1; // position in camera space + float fDensity : TEXCOORD2; // plane density alon Z axis + // float2 tNoise : TEXCOORD3; // projective noise +}; + +vf main(v_static v) +{ + vf o; + float4 vPos; + vPos.xyz = lerp(vMinBounds, vMaxBounds, v.P); // Position in camera space + vPos.w = 1; + o.hpos = mul(m_P, vPos); // xform, input in camera coordinates + + o.lightToPos = vPos.xyz - Ldynamic_pos.xyz; + o.vPos = vPos; + + // o.fDensity = (vMaxBounds.z-vMinBounds.z)/2000.0h; + // o.fDensity = (vMaxBounds.z-vMinBounds.z)/2000.0h*2; + o.fDensity = 1.0h / 40.0h; + // o.fDensity = 1.0h/20.0h; + + return o; +} diff --git a/gamedata/shaders/r2/accum_volumetric_sun_cascade.lua b/gamedata/shaders/r2/accum_volumetric_sun_cascade.lua new file mode 100644 index 0000000..4938496 --- /dev/null +++ b/gamedata/shaders/r2/accum_volumetric_sun_cascade.lua @@ -0,0 +1,10 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("accum_volume", "accum_volumetric_sun_cascade") + :fog(false) + :zb(false, false) + :blend(true, blend.one, blend.one) + :sorting(2, false) + shader:sampler("s_smap"):texture("null") + shader:sampler("s_position"):texture("$user$position"):f_none() + shader:sampler("jitter0"):texture("$user$jitter_0"):f_none() +end diff --git a/gamedata/shaders/r2/accum_volumetric_sun_cascade.ps.hlsl b/gamedata/shaders/r2/accum_volumetric_sun_cascade.ps.hlsl new file mode 100644 index 0000000..6df3ec2 --- /dev/null +++ b/gamedata/shaders/r2/accum_volumetric_sun_cascade.ps.hlsl @@ -0,0 +1,108 @@ +// Allow dynamic branching usage for HW PCF support +#ifdef USE_HWSMAP_PCF + #define SUNSHAFTS_DYNAMIC +#endif // USE_HWSMAP_PCF + +#include "common.hlsli" +#include "shadow.hlsli" + +#define RAY_PATH 2.0h +#define JITTER_TEXTURE_SIZE 64.0f + +#define JITTER_SUN_SHAFTS + +#ifdef SUN_SHAFTS_QUALITY + #if SUN_SHAFTS_QUALITY == 1 + #define FILTER_LOW + #define RAY_SAMPLES 20 + #elif SUN_SHAFTS_QUALITY == 2 + #define FILTER_LOW + #define RAY_SAMPLES 30 + #elif SUN_SHAFTS_QUALITY == 3 + #define FILTER_LOW + #define RAY_SAMPLES 40 + #endif +#endif + +float4 volume_range; // x - near plane, y - far plane +float4 sun_shafts_intensity; + +uniform float4 screen_res; +// #ifdef USE_BRANCHING +// "If" in loop + +float4 main(float2 tc : TEXCOORD0) : COLOR +{ +#ifndef SUN_SHAFTS_QUALITY + return float4(0.0f, 0.0f, 0.0f, 0.0f); +#else // SUN_SHAFTS_QUALITY + + float3 P = tex2D(s_position, tc).xyz; +#ifndef JITTER_SUN_SHAFTS + // Fixed ray length, fixed step dencity + // float3 direction = (RAY_PATH/RAY_SAMPLES)*normalize(P); + // Variable ray length, variable step dencity + float3 direction = P / RAY_SAMPLES; +#else // JITTER_SUN_SHAFTS + // Variable ray length, variable step dencity, use jittering + float4 J0 = tex2D(jitter0, float4(screen_res.x / JITTER_TEXTURE_SIZE * tc, 0.0f, 0.0f)); // tcJ); + float coeff = (RAY_SAMPLES - 1.0f * J0.x) / (RAY_SAMPLES * RAY_SAMPLES); + float3 direction = P * coeff; +#endif // JITTER_SUN_SHAFTS + + float depth = P.z; + float deltaDepth = direction.z; + + float4 current = mul(m_shadow, float4(P, 1.0f)); + float4 delta = mul(m_shadow, float4(direction, 0.0f)); + + float res = 0.0f; + float max_density = sun_shafts_intensity; + float density = max_density / RAY_SAMPLES; + + if (depth < 0.0001) + { + res = max_density; + } + + #ifndef SUNSHAFTS_DYNAMIC + for (int i = 0; i < RAY_SAMPLES; ++i) + { + if (depth > 0.3) + #ifndef FILTER_LOW + res += density * shadow_volumetric(current); + #else // FILTER_LOW + res += density * sample_hw_pcf(current, float4(0, 0, 0, 0)); + #endif // FILTER_LOW + depth -= deltaDepth; + current -= delta; + } + #else + int n = (int)((P.z - 0.3) / deltaDepth); + for (int i = 0; i < n; ++i) + { + #ifndef FILTER_LOW + res += density * shadow_volumetric(current); + #else // FILTER_LOW + res += density * sample_hw_pcf(current, float4(0, 0, 0, 0)); + #endif // FILTER_LOW + depth -= deltaDepth; + current -= delta; + } + #endif + + // float fSturation = -dot(Ldynamic_dir, float3(0,0,1)); + float fSturation = -Ldynamic_dir.z; + + // Normalize dot product to + fSturation = 0.5 * fSturation + 0.5; + // Map saturation to 0.2..1 + fSturation = 0.80 * fSturation + 0.20; + + float fog = saturate(length(P.xyz) * fog_params.w + fog_params.x); + res = lerp(res, max_density, fog); + res *= fSturation; + + return res * Ldynamic_color * 1.0; +#endif // SUN_SHAFTS_QUALITY +} diff --git a/gamedata/shaders/r2/avg4.ps.hlsl b/gamedata/shaders/r2/avg4.ps.hlsl new file mode 100644 index 0000000..0256661 --- /dev/null +++ b/gamedata/shaders/r2/avg4.ps.hlsl @@ -0,0 +1,26 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // base + float2 tc2 : TEXCOORD2; // base + float2 tc3 : TEXCOORD3; // base +}; + +uniform sampler2D s_base0; +uniform sampler2D s_base1; +uniform sampler2D s_base2; +uniform sampler2D s_base3; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_0 = tex2D(s_base0, I.tc0); + float4 t_1 = tex2D(s_base1, I.tc1); + float4 t_2 = tex2D(s_base2, I.tc2); + float4 t_3 = tex2D(s_base3, I.tc3); + + // out + return ((t_0 + t_1) * 0.5f + (t_2 + t_3) * 0.5f) * 0.5f; +} diff --git a/gamedata/shaders/r2/base_lplanes.ps.hlsl b/gamedata/shaders/r2/base_lplanes.ps.hlsl new file mode 100644 index 0000000..26d3f22 --- /dev/null +++ b/gamedata/shaders/r2/base_lplanes.ps.hlsl @@ -0,0 +1,17 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // lmap + float4 c0 : COLOR0; // sun +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + + // out + return float4(t_base.r, t_base.g, t_base.b, t_base.a * I.c0.a); +} diff --git a/gamedata/shaders/r2/base_lplanes.vs.hlsl b/gamedata/shaders/r2/base_lplanes.vs.hlsl new file mode 100644 index 0000000..d285989 --- /dev/null +++ b/gamedata/shaders/r2/base_lplanes.vs.hlsl @@ -0,0 +1,24 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color +}; + +vf main(v_static v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.tc, v.T.w, v.B.w); // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul(m_WV, unpack_normal(v.Nh))); + float fade = abs(dot(dir_v, norm_v)); + o.c0 = fade; + + return o; +} diff --git a/gamedata/shaders/r2/base_lplanes_fft.ps.hlsl b/gamedata/shaders/r2/base_lplanes_fft.ps.hlsl new file mode 100644 index 0000000..2352dac --- /dev/null +++ b/gamedata/shaders/r2/base_lplanes_fft.ps.hlsl @@ -0,0 +1,33 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float2 tc1: TEXCOORD1; // lmap + float4 c0: COLOR0; // sun +}; + +uniform float4 m_hud_params; // + +inline bool isCollimatorActive() +{ + return (m_hud_params.w == 1.f); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// Pixel +float4 main ( v2p I ) : COLOR +{ + float4 t_base = tex2D (s_base,I.tc0); + + // out + + if(isCollimatorActive()) + { + return float4 (t_base.r,t_base.g,t_base.b,t_base.a * I.c0.a); + } + else + { + return float4 (t_base.r,t_base.g,t_base.b,t_base.a * 0.0f); + } +} diff --git a/gamedata/shaders/r2/bloom_build.ps.hlsl b/gamedata/shaders/r2/bloom_build.ps.hlsl new file mode 100644 index 0000000..7c0e20e --- /dev/null +++ b/gamedata/shaders/r2/bloom_build.ps.hlsl @@ -0,0 +1,26 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // Texture coordinates (for sampling maps) + float2 tc1 : TEXCOORD1; // Texture coordinates (for sampling maps) + float2 tc2 : TEXCOORD2; // Texture coordinates (for sampling maps) + float2 tc3 : TEXCOORD3; // Texture coordinates (for sampling maps) +}; + +uniform float4 b_params; + +// Pixel +float4 main(v2p I) : COLOR +{ + // hi-rgb.base-lum + float3 s0 = tex2D(s_image, I.tc0); + float3 s1 = tex2D(s_image, I.tc1); + float3 s2 = tex2D(s_image, I.tc2); + float3 s3 = tex2D(s_image, I.tc3); + + float3 avg = (s0 + s1 + s2 + s3) / (2.0f * def_hdr); + float hi = dot(avg, 1.0f) - b_params.x; // assume def_hdr equal to 3.0 + + return float4(avg, hi); +} diff --git a/gamedata/shaders/r2/bloom_filter.ps.hlsl b/gamedata/shaders/r2/bloom_filter.ps.hlsl new file mode 100644 index 0000000..4d8a3b9 --- /dev/null +++ b/gamedata/shaders/r2/bloom_filter.ps.hlsl @@ -0,0 +1,51 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // Central + float4 tc1 : TEXCOORD1; // -1,+1 + float4 tc2 : TEXCOORD2; // -2,+2 + float4 tc3 : TEXCOORD3; // -3,+3 + float4 tc4 : TEXCOORD4; // -4,+4 + float4 tc5 : TEXCOORD5; // -5,+5 + float4 tc6 : TEXCOORD6; // -6,+6 + float4 tc7 : TEXCOORD7; // -7,+7 +}; + +uniform float4 weight[2]; + +// Pixel +// Separable gauss filter: 2*7 + 1 + 7*2 = 29 samples +// Samples: 0-central, -1, -2,..., -7, 1, 2,... 7 +// Approximated i-count: 15t + 15a + 7a(d) + 1(out) = 38, HLSL compiled to 38 :) +float4 main(v2p I) : COLOR +{ + // central + float4 accum = weight[1].w * tex2D(s_bloom, I.tc0); + + // left (7) + // right (7) - no swizles on 'texld', so this is dep-read infact + accum += weight[0].x * tex2D(s_bloom, I.tc1.xy); + accum += weight[0].x * tex2D(s_bloom, I.tc1.wz); + + accum += weight[0].y * tex2D(s_bloom, I.tc2.xy); + accum += weight[0].y * tex2D(s_bloom, I.tc2.wz); + + accum += weight[0].z * tex2D(s_bloom, I.tc3.xy); + accum += weight[0].z * tex2D(s_bloom, I.tc3.wz); + + accum += weight[0].w * tex2D(s_bloom, I.tc4.xy); + accum += weight[0].w * tex2D(s_bloom, I.tc4.wz); + + accum += weight[1].x * tex2D(s_bloom, I.tc5.xy); + accum += weight[1].x * tex2D(s_bloom, I.tc5.wz); + + accum += weight[1].y * tex2D(s_bloom, I.tc6.xy); + accum += weight[1].y * tex2D(s_bloom, I.tc6.wz); + + accum += weight[1].z * tex2D(s_bloom, I.tc7.xy); + accum += weight[1].z * tex2D(s_bloom, I.tc7.wz); + + // OK + return accum; +} diff --git a/gamedata/shaders/r2/bloom_filter_f.ps.hlsl b/gamedata/shaders/r2/bloom_filter_f.ps.hlsl new file mode 100644 index 0000000..d47c57f --- /dev/null +++ b/gamedata/shaders/r2/bloom_filter_f.ps.hlsl @@ -0,0 +1,21 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // base + float2 tc2 : TEXCOORD2; // base + float2 tc3 : TEXCOORD3; // base +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_0 = tex2D(s_bloom, I.tc0); + float4 t_1 = tex2D(s_bloom, I.tc1); + float4 t_2 = tex2D(s_bloom, I.tc2); + float4 t_3 = tex2D(s_bloom, I.tc3); + + // out + return (t_0 + t_1 + t_2 + t_3) / 2; +} diff --git a/gamedata/shaders/r2/bloom_luminance_1.ps.hlsl b/gamedata/shaders/r2/bloom_luminance_1.ps.hlsl new file mode 100644 index 0000000..81b2b50 --- /dev/null +++ b/gamedata/shaders/r2/bloom_luminance_1.ps.hlsl @@ -0,0 +1,39 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0 : TEXCOORD0; // Central + float4 tc1 : TEXCOORD1; // -1,+1 + float4 tc2 : TEXCOORD2; // -2,+2 + float4 tc3 : TEXCOORD3; // -3,+3 + float4 tc4 : TEXCOORD4; // -4,+4 + float4 tc5 : TEXCOORD5; // -5,+5 + float4 tc6 : TEXCOORD6; // -6,+6 + float4 tc7 : TEXCOORD7; // -7,+7 +}; + +#define LUMINANCE_BASE 0.0001f + +float luminance(float2 tc) +{ + float3 source = tex2D(s_image, tc); + return dot(source, LUMINANCE_VECTOR * def_hdr); +} + +// perform 2x2=4s convolution, working on 4x4=16p area +// that means 256x256 source will be scaled to (256/4)x(256/4) = 64x64p +// a): 256x256 => 64x64p with log +// b): 64x64p => 8x8p +// c): 8x8p => 1x1p with exp +float4 main(v2p I) : COLOR +{ + // first 8 bilinear samples (8x4 = 32 pixels) + float4 final; + final.x = luminance(I.tc0); + final.y = luminance(I.tc1); + final.z = luminance(I.tc2); + final.w = luminance(I.tc3); + + // OK + return final; +} diff --git a/gamedata/shaders/r2/bloom_luminance_2.ps.hlsl b/gamedata/shaders/r2/bloom_luminance_2.ps.hlsl new file mode 100644 index 0000000..6a4ea4c --- /dev/null +++ b/gamedata/shaders/r2/bloom_luminance_2.ps.hlsl @@ -0,0 +1,73 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0 : TEXCOORD0; // Central + float4 tc1 : TEXCOORD1; // -1,+1 + float4 tc2 : TEXCOORD2; // -2,+2 + float4 tc3 : TEXCOORD3; // -3,+3 + float4 tc4 : TEXCOORD4; // -4,+4 + float4 tc5 : TEXCOORD5; // -5,+5 + float4 tc6 : TEXCOORD6; // -6,+6 + float4 tc7 : TEXCOORD7; // -7,+7 +}; + +// perform 4x4 bilinear, 8x8p, the step (B) +// b): 64x64p => 8x8p +#ifdef FP16_FILTER +// native bilinear +float sample(float2 tc) +{ + return dot(tex2D(s_image, tc), 1.0f / 4.0f); // sum components +} +#else +// emulate bilinear +float sample(float2 tc) +{ + float pfloat = 0.5f / 64.0f; + float4 res; + res.x = dot(tex2D(s_image, tc + float2(-pfloat, -pfloat)), 1.0f / 4.0f); // sum components + res.y = dot(tex2D(s_image, tc + float2(+pfloat, -pfloat)), 1.0f / 4.0f); // sum components + res.z = dot(tex2D(s_image, tc + float2(-pfloat, +pfloat)), 1.0f / 4.0f); // sum components + res.w = dot(tex2D(s_image, tc + float2(+pfloat, +pfloat)), 1.0f / 4.0f); // sum components + return dot(res, 1.0f / 4.0f); // sum components +} +#endif + +float4 main(v2p I) : COLOR +{ + // sample + float4 accum0; + accum0.x = sample(I.tc0); + accum0.y = sample(I.tc1); + accum0.z = sample(I.tc2); + accum0.w = sample(I.tc3); + + float4 accum1; + accum1.x = sample(I.tc4); + accum1.y = sample(I.tc5); + accum1.z = sample(I.tc6); + accum1.w = sample(I.tc7); + + float4 accum2; + accum2.x = sample(I.tc0.wz); + accum2.y = sample(I.tc1.wz); + accum2.z = sample(I.tc2.wz); + accum2.w = sample(I.tc3.wz); + + float4 accum3; + accum3.x = sample(I.tc4.wz); + accum3.y = sample(I.tc5.wz); + accum3.z = sample(I.tc6.wz); + accum3.w = sample(I.tc7.wz); + + // perform accumulation + float4 final; + final.x = dot(accum0, 1 / 4.h); + final.y = dot(accum1, 1 / 4.h); + final.z = dot(accum2, 1 / 4.h); + final.w = dot(accum3, 1 / 4.h); + + // OK + return final; +} diff --git a/gamedata/shaders/r2/bloom_luminance_3.ps.hlsl b/gamedata/shaders/r2/bloom_luminance_3.ps.hlsl new file mode 100644 index 0000000..25f8c17 --- /dev/null +++ b/gamedata/shaders/r2/bloom_luminance_3.ps.hlsl @@ -0,0 +1,84 @@ +#include "common.hlsli" + +struct v2p +{ + float4 tc0 : TEXCOORD0; // Central + float4 tc1 : TEXCOORD1; // -1,+1 + float4 tc2 : TEXCOORD2; // -2,+2 + float4 tc3 : TEXCOORD3; // -3,+3 + float4 tc4 : TEXCOORD4; // -4,+4 + float4 tc5 : TEXCOORD5; // -5,+5 + float4 tc6 : TEXCOORD6; // -6,+6 + float4 tc7 : TEXCOORD7; // -7,+7 +}; + +uniform float4 MiddleGray; + +// perform 4x4 bilinear, 8x8p, the step (C) +// c): 8x8p => 1x1p with exp +#ifdef FP16_FILTER +// native bilinear +float sample(float2 tc) +{ + return dot(tex2D(s_image, tc), 1.0f / 4.0f); // sum components +} +#else +// emulate bilinear +float sample(float2 tc) +{ + float pfloat = 0.5f / 8.0f; + float4 res; + res.x = dot(tex2D(s_image, tc + float2(-pfloat, -pfloat)), 1.0f / 4.0f); // sum components + res.y = dot(tex2D(s_image, tc + float2(+pfloat, -pfloat)), 1.0f / 4.0f); // sum components + res.z = dot(tex2D(s_image, tc + float2(-pfloat, +pfloat)), 1.0f / 4.0f); // sum components + res.w = dot(tex2D(s_image, tc + float2(+pfloat, +pfloat)), 1.0f / 4.0f); // sum components + return dot(res, 1.0f / 4.0f); // sum components +} +#endif + +float4 main(v2p I) : COLOR +{ + // sample + float4 accum0; + accum0.x = sample(I.tc0); + accum0.y = sample(I.tc1); + accum0.z = sample(I.tc2); + accum0.w = sample(I.tc3); + + float4 accum1; + accum1.x = sample(I.tc4); + accum1.y = sample(I.tc5); + accum1.z = sample(I.tc6); + accum1.w = sample(I.tc7); + + float4 accum2; + accum2.x = sample(I.tc0.wz); + accum2.y = sample(I.tc1.wz); + accum2.z = sample(I.tc2.wz); + accum2.w = sample(I.tc3.wz); + + float4 accum3; + accum3.x = sample(I.tc4.wz); + accum3.y = sample(I.tc5.wz); + accum3.z = sample(I.tc6.wz); + accum3.w = sample(I.tc7.wz); + + // perform accumulation + float4 final; + final.x = dot(accum0, 1 / 4.h); + final.y = dot(accum1, 1 / 4.h); + final.z = dot(accum2, 1 / 4.h); + final.w = dot(accum3, 1 / 4.h); + float result = dot(final, 1 / 4.h); + + // OK + float scale = MiddleGray.x / (result * MiddleGray.y + MiddleGray.z); // final + float scale_prev = tex2D(s_tonemap, I.tc0).x; + float rvalue = lerp(scale_prev, scale, MiddleGray.w); + + // clamp (rvalue, 1.f/8.f, 2.0f); + + clamp(rvalue, 1.f / 128.f, 20.0f); + + return rvalue; +} diff --git a/gamedata/shaders/r2/chromatic_aberration.ps.hlsl b/gamedata/shaders/r2/chromatic_aberration.ps.hlsl new file mode 100644 index 0000000..dadd818 --- /dev/null +++ b/gamedata/shaders/r2/chromatic_aberration.ps.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +uniform float4 screen_res; + +float4 main(p_shadow I) : COLOR +{ + float3 col; + float factor = saturate(distance(I.tc0, float2(0.5f, 0.5f))); + + col.r = tex2D(s_image, I.tc0 + float2(screen_res.z * factor, 0.0f)).r; + col.g = tex2D(s_image, I.tc0 + float2(-0.866f, -0.5f) * screen_res.zw * factor).g; + col.b = tex2D(s_image, I.tc0 + float2(0.866f, -0.5f) * screen_res.zw * factor).b; + + return float4(col, 1.0f); +} diff --git a/gamedata/shaders/r2/clouds.lua b/gamedata/shaders/r2/clouds.lua new file mode 100644 index 0000000..b51e665 --- /dev/null +++ b/gamedata/shaders/r2/clouds.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("clouds", "clouds") + :fog(false) + :zb(false, false) + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_clouds0"):texture("null"):wrap():f_anisotropic() + shader:sampler("s_clouds1"):texture("null"):wrap():f_anisotropic() +end diff --git a/gamedata/shaders/r2/clouds.ps.hlsl b/gamedata/shaders/r2/clouds.ps.hlsl new file mode 100644 index 0000000..168b61f --- /dev/null +++ b/gamedata/shaders/r2/clouds.ps.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +struct v2p +{ + float4 color : COLOR0; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; +}; + +uniform sampler2D s_clouds0 : register(s0); +uniform sampler2D s_clouds1 : register(s1); + +float4 main(v2p I) : COLOR +{ + float4 s0 = tex2D(s_clouds0, I.tc0); + float4 s1 = tex2D(s_clouds1, I.tc1); + float4 mix = I.color * (s0 + s1); + + return mix; +} diff --git a/gamedata/shaders/r2/clouds.vs.hlsl b/gamedata/shaders/r2/clouds.vs.hlsl new file mode 100644 index 0000000..3a869bd --- /dev/null +++ b/gamedata/shaders/r2/clouds.vs.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" +#include "shared\cloudconfig.hlsli" + +struct vi +{ + float4 p : POSITION; + float4 dir : COLOR0; // dir0,dir1(w<->z) + float4 color : COLOR1; // rgb. intensity +}; + +struct vf +{ + float4 hpos : POSITION; + float4 color : COLOR0; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; +}; + +void main(in vi v, out vf o) +{ + o.hpos = mul(m_WVP, v.p); + + float2 d0 = v.dir.xy * 2.0f - 1.0f; + float2 d1 = v.dir.wz * 2.0f - 1.0f; + + o.tc0 = v.p.xz * CLOUD_TILE0 + d0 * timers.z * CLOUD_SPEED0; + o.tc1 = v.p.xz * CLOUD_TILE1 + d1 * timers.z * CLOUD_SPEED1; + + o.color = v.color; + o.color.w *= pow(v.p.y, 25); +} diff --git a/gamedata/shaders/r2/combine_1.ps.hlsl b/gamedata/shaders/r2/combine_1.ps.hlsl new file mode 100644 index 0000000..32d8e7f --- /dev/null +++ b/gamedata/shaders/r2/combine_1.ps.hlsl @@ -0,0 +1,63 @@ +#include "common.hlsli" + +uniform sampler2D s_half_depth; +uniform float3x4 m_v2w; + +#include "lmodel.hlsli" +#include "hmodel.hlsli" + +#include "ssao_blur.ps.hlsl" +#include "ssao.ps.hlsl" + +struct _input +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float2 tcJ : TEXCOORD1; +}; + +float4 main(_input I) : COLOR0 +{ + // Sample the buffers: + float4 P = tex2D(s_position, I.tc0); // position.(mtl or sun) + float4 N = tex2D(s_normal, I.tc0); // normal.hemi + float4 D = tex2D(s_diffuse, I.tc0); // rgb.gloss + float4 L = tex2D(s_accumulator, I.tc0); // diffuse.specular + +#ifdef USE_GAMMA_22 + D.rgb = (D.rgb * D.rgb); +#endif + + // static sun + float mtl = P.w; +#ifdef USE_R2_STATIC_SUN + float sun_occ = P.w * 2.0f; + mtl = xmaterial; + L += Ldynamic_color * sun_occ * plight_infinity(mtl, P.xyz, N.xyz, Ldynamic_dir); +#endif + + // Calculate SSAO +// #ifdef USE_SSAO_BLUR +// float occ = ssao_blur_ps(I.tc0); + float occ = calc_ssao(P, N, I.tc0, I.tcJ); + + float3 hdiffuse, hspecular; + hmodel(hdiffuse, hspecular, mtl, N.w, D.w, P.xyz, N.xyz); + + hdiffuse *= occ; + hspecular *= occ; + + float4 light = float4(L.xyz + hdiffuse, L.w); + float4 C = D * light; + float3 spec = C.www + hspecular; + spec *= 0.4f; + + float3 color = C.xyz + spec; + + // here should be distance fog + float distance = length(P.xyz); + float fog = saturate(distance * fog_params.w + fog_params.x); + color = lerp(color, fog_color, fog); + + return float4(color, fog * fog); +} diff --git a/gamedata/shaders/r2/combine_1.vs.hlsl b/gamedata/shaders/r2/combine_1.vs.hlsl new file mode 100644 index 0000000..2fbffc2 --- /dev/null +++ b/gamedata/shaders/r2/combine_1.vs.hlsl @@ -0,0 +1,22 @@ +#include "common.hlsli" + +struct _in +{ + float4 p : POSITION; + float2 tcJ : TEXCOORD0; +}; + +struct _out +{ + float4 hpos : POSITION; + float4 tc0 : TEXCOORD0; + float2 tcJ : TEXCOORD1; +}; + +void main(in _in I, out _out O) +{ + O.hpos = float4(I.p.x, -I.p.y, 0.0f, 1.0f); + O.tc0 = float4(I.p.zw, 1.0f, 1.0f); + + O.tcJ = I.tcJ; +} diff --git a/gamedata/shaders/r2/combine_2.ps.hlsl b/gamedata/shaders/r2/combine_2.ps.hlsl new file mode 100644 index 0000000..11e1388 --- /dev/null +++ b/gamedata/shaders/r2/combine_2.ps.hlsl @@ -0,0 +1,48 @@ +#include "common.hlsli" +#include "mblur.hlsli" +#include "dof.hlsli" + +struct v2p +{ + float4 tc0 : TEXCOORD0; // Center + float4 tc1 : TEXCOORD1; // LT + float4 tc2 : TEXCOORD2; // RB + float4 tc3 : TEXCOORD3; // RT + float4 tc4 : TEXCOORD4; // LB + float4 tc5 : TEXCOORD5; // Left / Right + float4 tc6 : TEXCOORD6; // Top / Bottom +}; + +uniform sampler2D s_distort; + +#define EPSDEPTH 0.001 + +float4 main(v2p I) : COLOR +{ +#ifdef USE_DISTORT + float depth = tex2D(s_position, I.tc0).z; + float4 distort = tex2D(s_distort, I.tc0); + float2 offset = (distort.xy - (127.0f / 255.0f)) * def_distort; + float2 center = I.tc0 + offset; + float depth_x = tex2D(s_position, center).z; + if ((depth_x + EPSDEPTH) < depth) + { + center = I.tc0; + } +#else + float2 center = I.tc0; +#endif + + float3 img = dof(center); + float4 bloom = tex2D(s_bloom, center); + + img = mblur(center, tex2D(s_position, I.tc0), img.rgb); + img = tonemap(img, tex2Dlod(s_tonemap, float4(0.5f, 0.5f, 0.5f, 0.5f)).x); + +#ifdef USE_DISTORT + float3 blurred = bloom * def_hdr; + img = lerp(img, blurred, distort.z); +#endif + + return combine_bloom(img, bloom); +} diff --git a/gamedata/shaders/r2/combine_volumetric.lua b/gamedata/shaders/r2/combine_volumetric.lua new file mode 100644 index 0000000..0214f45 --- /dev/null +++ b/gamedata/shaders/r2/combine_volumetric.lua @@ -0,0 +1,8 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("combine_1", "combine_volumetric") + :fog(false) + :zb(false, false) + :blend(true, blend.one, blend.one) + :sorting(2, false) + shader:sampler("s_vollight"):texture("$user$generic2") +end diff --git a/gamedata/shaders/r2/combine_volumetric.ps.hlsl b/gamedata/shaders/r2/combine_volumetric.ps.hlsl new file mode 100644 index 0000000..3150187 --- /dev/null +++ b/gamedata/shaders/r2/combine_volumetric.ps.hlsl @@ -0,0 +1,8 @@ +#include "common.hlsli" + +uniform sampler2D s_vollight; + +float4 main(float2 tc : TEXCOORD0) : COLOR +{ + return tex2D(s_vollight, tc); +} diff --git a/gamedata/shaders/r2/common.hlsli b/gamedata/shaders/r2/common.hlsli new file mode 100644 index 0000000..3a785a2 --- /dev/null +++ b/gamedata/shaders/r2/common.hlsli @@ -0,0 +1,350 @@ +#ifndef COMMON_H +#define COMMON_H + +// #define USE_SUPER_SPECULAR + +#include "shared\common.hlsli" +////////////////////////////////////////////////////////////////////////////////////////// +// *** options + +// #define DBG_TEST_NMAP +// #define DBG_TEST_NMAP_SPEC +// #define DBG_TEST_SPEC +// #define DBG_TEST_LIGHT +// #define DBG_TEST_LIGHT_SPEC + +// #define USE_GAMMA_22 +// #define USE_FETCH4 +// #define USE_HWSMAP //- HW-options defined + +// #define USE_HWSMAP_PCF //- nVidia GF3+, R600+ + +// #define USE_BRANCHING //- HW-options defined +// #define USE_VTF //- HW-options defined, VertexTextureFetch +// #define FP16_FILTER //- HW-options defined +// #define FP16_BLEND //- HW-options defined +// +// #define USE_PARALLAX //- shader defined +// #define USE_TDETAIL //- shader defined +// #define USE_LM_HEMI //- shader defined +// #define USE_DISTORT //- shader defined +// #define DBG_TMAPPING +////////////////////////////////////////////////////////////////////////////////////////// +#ifndef SMAP_size + #define SMAP_size 1024 +#endif + +#ifdef USE_R2_STATIC_SUN + #define xmaterial float(1.0f / 4.0f) +#else + #define xmaterial float(L_material.w) +#endif +////////////////////////////////////////////////////////////////////////////////////////// +uniform float4 def_aref; +uniform float4 parallax; +uniform float4 hemi_cube_pos_faces; +uniform float4 hemi_cube_neg_faces; +uniform float4 L_material; +uniform float4 Ldynamic_color; +uniform float4 Ldynamic_pos; +uniform float4 Ldynamic_dir; + +uniform float4 J_direct[6]; +uniform float4 J_spot[6]; + +float calc_fogging(float3 w_pos) +{ + return 1.0f - saturate(length(w_pos.xyz - eye_position.xyz) * fog_params.w + fog_params.x); +} + +float2 calc_detail(float3 w_pos) +{ + float dtl = distance(w_pos, eye_position) * dt_params.w; + dtl = min(dtl * dtl, 1.0f); + float dt_mul = 1.0f - dtl; // dt* [1 .. 0 ] + float dt_add = 0.5f * dtl; // dt+ [0 .. 0.5] + return float2(dt_mul, dt_add); +} +float3 calc_reflection(float3 pos_w, float3 norm_w) +{ + return reflect(normalize(pos_w - eye_position), norm_w); +} + +float3 calc_sun_r1(float3 norm_w) +{ + return L_sun_color * saturate(dot((norm_w), -L_sun_dir_w)); +} +float3 calc_model_hemi_r1(float3 norm_w) +{ + return max(0, norm_w.y) * L_hemi_color; +} +float3 calc_model_lq_lighting(float3 norm_w) +{ + return L_material.x * calc_model_hemi_r1(norm_w) + L_ambient + L_material.y * calc_sun_r1(norm_w); +} + +////////////////////////////////////////////////////////////////////////////////////////// +struct v_static +{ + float4 P : POSITION; // (float,float,float,1) + float4 Nh : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; // tangent + float4 B : BINORMAL; // binormal + float2 tc : TEXCOORD0; // (u,v) + float2 lmh : TEXCOORD1; // (lmu,lmv) + float4 color : COLOR0; // (r,g,b,dir-occlusion) +}; + +struct v_tree +{ + float4 P : POSITION; // (float,float,float,1) + float4 Nh : NORMAL; // (nx,ny,nz) + float3 T : TANGENT; // tangent + float3 B : BINORMAL; // binormal + float4 tc : TEXCOORD0; // (u,v,frac,???) +}; + +struct v_model +{ + float4 P : POSITION; // (float,float,float,1) + float3 N : NORMAL; // (nx,ny,nz) + float3 T : TANGENT; // (nx,ny,nz) + float3 B : BINORMAL; // (nx,ny,nz) + float2 tc : TEXCOORD0; // (u,v) +}; + +struct v_detail +{ + float4 pos : POSITION; // (float,float,float,1) + int4 misc : TEXCOORD0; // (u(Q),v(Q),frac,matrix-id) +}; + +struct v_shadow_direct_aref +{ + float4 P : POSITION; // Clip-space position (for rasterization) + float4 tc : TEXCOORD1; // Diffuse map for aref +}; + +struct p_bumped_new +{ + float4 hpos : POSITION; + + float4 tcdh : TEXCOORD0; // Texture coordinates, sun_occlusion || lm-hemi + float4 position : TEXCOORD1; // position + hemi + float3 M1 : TEXCOORD2; // nmap 2 eye - 1 + float3 M2 : TEXCOORD3; // nmap 2 eye - 2 + float3 M3 : TEXCOORD4; // nmap 2 eye - 3 +}; + +////////////////////////////////////////////////////////////////////////////////////////// +struct p_bumped +{ + float4 hpos : POSITION; +#if defined(USE_R2_STATIC_SUN) && !defined(USE_LM_HEMI) + float4 tcdh : TEXCOORD0; // Texture coordinates, w=sun_occlusion +#else + float2 tcdh : TEXCOORD0; // Texture coordinates +#endif + float4 position : TEXCOORD1; // position + hemi + float3 M1 : TEXCOORD2; // nmap 2 eye - 1 + float3 M2 : TEXCOORD3; // nmap 2 eye - 2 + float3 M3 : TEXCOORD4; // nmap 2 eye - 3 +#ifdef USE_TDETAIL + float2 tcdbump : TEXCOORD5; // d-bump + #ifdef USE_LM_HEMI + float2 lmh : TEXCOORD6; // lm-hemi + #endif +#else + #ifdef USE_LM_HEMI + float2 lmh : TEXCOORD5; // lm-hemi + #endif +#endif +}; +////////////////////////////////////////////////////////////////////////////////////////// +struct p_flat +{ + float4 hpos : POSITION; +#if defined(USE_R2_STATIC_SUN) && !defined(USE_LM_HEMI) + float4 tcdh : TEXCOORD0; // Texture coordinates, w=sun_occlusion +#else + float2 tcdh : TEXCOORD0; // Texture coordinates +#endif + float4 position : TEXCOORD1; // position + hemi + float3 N : TEXCOORD2; // Eye-space normal (for lighting) +#ifdef USE_TDETAIL + float2 tcdbump : TEXCOORD3; // d-bump + #ifdef USE_LM_HEMI + float2 lmh : TEXCOORD4; // lm-hemi + #endif +#else + #ifdef USE_LM_HEMI + float2 lmh : TEXCOORD3; // lm-hemi + #endif +#endif +}; + +////////////////////////////////////////////////////////////////////////////////////////// +// struct f_deffer { +// float4 position : COLOR0; // px,py,pz, m-id +// float4 Ne : COLOR1; // nx,ny,nz, hemi +// float4 C : COLOR2; // r, g, b, gloss +// }; + +struct f_deffer +{ + float4 P : COLOR0; + float4 N : COLOR1; + float4 C : COLOR2; +}; + +struct f_forward +{ + float4 Color : COLOR0; +}; + +struct p_shadow +{ + float2 tc0 : TEXCOORD0; + float4 hpos : POSITION; +}; +////////////////////////////////////////////////////////////////////////////////////////// +struct p_screen +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; +}; +////////////////////////////////////////////////////////////////////////////////////////// +// Geometry phase / deferring // +uniform sampler2D s_base; // +uniform sampler2D s_bump; // +uniform sampler2D s_bumpX; // +uniform sampler2D s_detail; // +uniform sampler2D s_detailBump; // +uniform sampler2D s_detailBumpX; // Error for bump detail +uniform sampler2D s_bumpD; // +uniform sampler2D s_hemi; // + +uniform sampler2D s_mask; // + +uniform sampler2D s_dt_r; // +uniform sampler2D s_dt_g; // +uniform sampler2D s_dt_b; // +uniform sampler2D s_dt_a; // + +uniform sampler2D s_dn_r; // +uniform sampler2D s_dn_g; // +uniform sampler2D s_dn_b; // +uniform sampler2D s_dn_a; // + +////////////////////////////////////////////////////////////////////////////////////////// +// Lighting/shadowing phase // +uniform sampler2D s_depth; // +uniform sampler2D s_position; // +uniform sampler2D s_normal; // +uniform sampler s_lmap; // 2D/cube projector lightmap +uniform sampler3D s_material; // +uniform sampler1D s_attenuate; // +////////////////////////////////////////////////////////////////////////////////////////// +// Combine phase // +uniform sampler2D s_diffuse; // rgb.a = diffuse.gloss +uniform sampler2D s_accumulator; // rgb.a = diffuse.specular +uniform sampler2D s_generic; // +uniform sampler2D s_bloom; // +uniform sampler s_image; // used in various post-processing +uniform sampler2D s_tonemap; // actually MidleGray / exp(Lw + eps) + +#define def_gloss float(4.0f / 255.0f) +#define def_dbumph float(0.333f) +#define def_virtualh float(0.05f) +#define def_distort float(0.05f) +#define def_hdr float(9.0f) +#define def_hdr_clip float(0.75f) +#define LUMINANCE_VECTOR float3(0.3f, 0.38f, 0.22f) + +float3 tonemap(float3 rgb, float scale) +{ + rgb = rgb * scale; + + const float fWhiteIntensity = 1.7f; + const float fWhiteIntensitySQR = fWhiteIntensity * fWhiteIntensity; + + return rgb * (1.0f + rgb / fWhiteIntensitySQR) / (rgb + 1.0f); +} + +float4 combine_bloom(float3 low, float4 high) +{ + return float4(low + high * high.a, 1.0f); +} + +float3 v_hemi(float3 n) +{ + return L_hemi_color * (.5f + .5f * n.y); +} +float3 v_hemi_wrap(float3 n, float w) +{ + return L_hemi_color * (w + (1 - w) * n.y); +} +float3 v_sun(float3 n) +{ + return L_sun_color * dot(n, -L_sun_dir_w); +} +float3 v_sun_wrap(float3 n, float w) +{ + return L_sun_color * (w + (1 - w) * dot(n, -L_sun_dir_w)); +} +float3 p_hemi(float2 tc) +{ + // float3 t_lmh = tex2D (s_hemi, tc); + // return dot (t_lmh,1.h/4.h); + float4 t_lmh = tex2D(s_hemi, tc); + return t_lmh.a; +} + +float get_hemi(float4 lmh) +{ + return lmh.a; +} + +float get_sun(float4 lmh) +{ + return lmh.g; +} + +// contrast function +float Contrast(float Input, float ContrastPower) +{ + // piecewise contrast function + bool IsAbovefloat = Input > 0.5f; + float ToRaise = saturate(2.0f * (IsAbovefloat ? 1.0f - Input : Input)); + float Output = 0.5f * pow(ToRaise, ContrastPower); + Output = IsAbovefloat ? 1.0f - Output : Output; + return Output; +} + +f_deffer pack_gbuffer(float4 Normal, float4 Point, float4 Color) +{ + f_deffer Output; + Output.N = Normal; + Output.P = Point; + Output.C = Color; + return Output; +} + +#define FXPS \ + technique _render \ + { \ + pass _code \ + { \ + PixelShader = compile ps_3_0 main(); \ + } \ + } +#define FXVS \ + technique _render \ + { \ + pass _code \ + { \ + VertexShader = compile vs_3_0 main(); \ + } \ + } + +#endif diff --git a/gamedata/shaders/r2/copy.ps.hlsl b/gamedata/shaders/r2/copy.ps.hlsl new file mode 100644 index 0000000..29e7b0b --- /dev/null +++ b/gamedata/shaders/r2/copy.ps.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +// Pixel +float4 main(float2 tc : TEXCOORD0) : COLOR +{ + return tex2D(s_base, tc); +} diff --git a/gamedata/shaders/r2/copy_p.ps.hlsl b/gamedata/shaders/r2/copy_p.ps.hlsl new file mode 100644 index 0000000..e37cc38 --- /dev/null +++ b/gamedata/shaders/r2/copy_p.ps.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +// Pixel +float4 main(float4 tc : TEXCOORD0) : COLOR +{ + return tex2Dproj(s_base, tc); +} diff --git a/gamedata/shaders/r2/deffer_base.ps.hlsl b/gamedata/shaders/r2/deffer_base.ps.hlsl new file mode 100644 index 0000000..988d366 --- /dev/null +++ b/gamedata/shaders/r2/deffer_base.ps.hlsl @@ -0,0 +1,33 @@ +#include "common.hlsli" +#include "sload.hlsli" + +void main(p_bumped_new I, out f_deffer O) +{ + XrayMaterial M; + + M.Sun = I.tcdh.w; + M.Hemi = I.tcdh.z; + M.Point = I.position.xyz; + + SloadNew(I, M); + +#ifdef USE_AREF + clip(M.Color.w - def_aref); +#endif + + M.Normal = mul(float3x3(I.M1, I.M2, I.M3), M.Normal); + M.Normal = normalize(M.Normal); + +#ifdef USE_LM_HEMI + float4 lm = tex2D(s_hemi, I.tcdh.zw); + + M.Sun = get_sun(lm); + M.Hemi = get_hemi(lm); +#endif + +#ifndef USE_R2_STATIC_SUN + M.Sun = xmaterial; +#endif + + O = pack_gbuffer(float4(M.Normal, M.Hemi), float4(M.Point, M.Sun), float4(M.Color.xyz, 1.0f - M.Roughness)); +} diff --git a/gamedata/shaders/r2/deffer_base.vs.hlsl b/gamedata/shaders/r2/deffer_base.vs.hlsl new file mode 100644 index 0000000..ee3e6c9 --- /dev/null +++ b/gamedata/shaders/r2/deffer_base.vs.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" + +void main(in v_static I, out p_bumped_new O) +{ + float2 tc = unpack_tc_base(I.tc, I.T.w, I.B.w); + float3 Pe = mul(m_WV, I.P); + + O.tcdh = float4(tc.xy, I.Nh.w, I.Nh.w); + O.position = float4(Pe, 1.0f); + + float3 N = unpack_bx4(I.Nh); + float3 T = unpack_bx4(I.T); + float3 B = unpack_bx4(I.B); + + float3x3 xform = mul((float3x3)m_WV, float3x3( + T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z)); + + O.M1 = xform[0]; + O.M2 = xform[1]; + O.M3 = xform[2]; + +#ifdef USE_LM_HEMI + O.tcdh.zw = unpack_tc_lmap(I.lmh); +#else + O.tcdh.w = I.color.w; +#endif + + O.hpos = mul(m_WVP, I.P); +} diff --git a/gamedata/shaders/r2/deffer_detail.vs.hlsl b/gamedata/shaders/r2/deffer_detail.vs.hlsl new file mode 100644 index 0000000..ab61873 --- /dev/null +++ b/gamedata/shaders/r2/deffer_detail.vs.hlsl @@ -0,0 +1,81 @@ +#include "common.hlsli" + +uniform float4 consts; + +uniform float4 wave; +uniform float4 dir2D; + +uniform float2x4 array[50]; + +float3x3 setMatrix (float3 hpb) +{ + + float _ch, _cp, _cb, _sh, _sp, _sb, _cc, _cs, _sc, _ss; + + sincos(hpb.x, _sh, _ch); + sincos(hpb.y, _sp, _cp); + sincos(hpb.z, _sb, _cb); + + _cc = _ch*_cb; _cs = _ch*_sb; _sc = _sh*_cb; _ss = _sh*_sb; + + return float3x3(_cc-_sp*_ss, _sp*_sc+_cs, -_cp*_sh, + -_cp*_sb, _cp*_cb, _sp, + _sp*_cs+_sc, _ss-_sp*_cc, _cp*_ch); +}; + +void main(in v_detail I, out p_bumped_new O) +{ + int i = I.misc.w; + float2x4 mm = array[i]; + + float3x3 mmhpb = setMatrix(mm[0].xyz); + float3 posi = float3(mm[1].xyz); + + float scale = mm[0].w; + + float hemi = abs(mm[1].w); + float sun = sign(mm[1].w)*0.25f+0.25f; + + float4 m0 = float4(mmhpb[0]*scale, posi.x); + float4 m1 = float4(mmhpb[1]*scale, posi.y); + float4 m2 = float4(mmhpb[2]*scale, posi.z); + + float4 pos; + pos.x = dot(m0, I.pos); + pos.y = dot(m1, I.pos); + pos.z = dot(m2, I.pos); + pos.w = 1.0f; + +#ifdef USE_TREEWAVE + float base = m1.w; + float H = I.pos.y * length(m1.xyz); + float fractional = I.misc.z * consts.x; + + float dp = calc_cyclic(dot(pos, wave)); + float inten = H * dp; + + pos.xz += calc_xz_wave(dir2D.xz * inten, fractional); +#endif + + float3 Pe = mul(m_WV, pos); + float2 tc = I.misc.xy * consts.xy; + + float3 N; + N.x = pos.x - m0.w; + N.y = pos.y - m1.w + 0.75f; + N.z = pos.z - m2.w; + + O.tcdh = float4(tc.xy, hemi, sun); + O.position = float4(Pe, 1.0f); + + float3x3 xform = mul((float3x3)m_WV, float3x3( + 0.0f, 0.0f, N.x, + 0.0f, 0.0f, N.y, + 0.0f, 0.0f, N.z)); + + O.M1 = xform[0]; + O.M2 = xform[1]; + O.M3 = xform[2]; + + O.hpos = mul(m_WVP, pos); +} diff --git a/gamedata/shaders/r2/deffer_impl.ps.hlsl b/gamedata/shaders/r2/deffer_impl.ps.hlsl new file mode 100644 index 0000000..971d652 --- /dev/null +++ b/gamedata/shaders/r2/deffer_impl.ps.hlsl @@ -0,0 +1,52 @@ +#include "common.hlsli" +#include "sload.hlsli" + +void main(p_bumped_new I, out f_deffer O) +{ + XrayMaterial M; + + M.Sun = I.tcdh.w; + M.Hemi = I.tcdh.z; + M.Point = I.position.xyz; + + M.Color = tex2D(s_base, I.tcdh.xy); + + float4 Lmap = tex2D(s_lmap, I.tcdh.xy); + float4 Mask = tex2D(s_mask, I.tcdh.xy); + Mask /= dot(Mask, 1.0f); + + float2 tcdbump = I.tcdh.xy * dt_params.xy; + + float3 Detail_R = tex2D(s_dt_r, tcdbump).xyz * Mask.x; + float3 Detail_G = tex2D(s_dt_g, tcdbump).xyz * Mask.y; + float3 Detail_B = tex2D(s_dt_b, tcdbump).xyz * Mask.z; + float3 Detail_A = tex2D(s_dt_a, tcdbump).xyz * Mask.w; + float3 Detail = Detail_R + Detail_G + Detail_B + Detail_A; + + float4 Normal_R = tex2D(s_dn_r, tcdbump) * Mask.x; + float4 Normal_G = tex2D(s_dn_g, tcdbump) * Mask.y; + float4 Normal_B = tex2D(s_dn_b, tcdbump) * Mask.z; + float4 Normal_A = tex2D(s_dn_a, tcdbump) * Mask.w; + + float3 Normal = Normal_R.wzy + Normal_G.wzy + Normal_B.wzy + Normal_A.wzy - 0.5; + Normal.z *= 0.5f; + + M.Roughness = saturate(1.0f - Normal_R.x + Normal_G.x + Normal_B.x + Normal_A.x); + M.Color.xyz *= Detail * 2.0f; + + M.Metalness = 0.0f; + M.SSS = 0.0f; + M.AO = 1.0f; + + M.Normal = mul(float3x3(I.M1, I.M2, I.M3), Normal); + M.Normal = normalize(M.Normal); + + M.Sun = Lmap.w; + M.Hemi = M.Color.w; + +#ifndef USE_R2_STATIC_SUN + M.Sun = xmaterial; +#endif + + O = pack_gbuffer(float4(M.Normal, M.Hemi), float4(M.Point, M.Sun), float4(M.Color.xyz, 1.0f - M.Roughness)); +} diff --git a/gamedata/shaders/r2/deffer_lod.vs.hlsl b/gamedata/shaders/r2/deffer_lod.vs.hlsl new file mode 100644 index 0000000..d27e7be --- /dev/null +++ b/gamedata/shaders/r2/deffer_lod.vs.hlsl @@ -0,0 +1,53 @@ +#include "common.hlsli" + +uniform float3x4 m_xform; +uniform float3x4 m_xform_v; + +uniform float4 consts; +uniform float4 wind; +uniform float4 wave; + +uniform float4 c_scale; +uniform float4 c_bias; + +uniform float2 c_sun; + +void main(in v_tree I, out p_bumped_new O) +{ + float4 pos = float4(mul(m_xform, I.P).xyz, 1.0); + + float2 tc = I.tc.xy * consts.xy; + float sun = I.Nh.w * c_sun.x + c_sun.y; + float hemi = I.Nh.w * c_scale.w + c_bias.w; + +#ifdef USE_TREEWAVE + float base = m_xform._24; + float H = pos.y - base; + + float dp = calc_cyclic(wave.w + dot(pos, wave.xyz)); + float frac = I.tc.z * consts.x; + float inten = H * dp; + + pos.xz += calc_xz_wave(wind.xz * inten, frac); +#endif + + float3 Pe = mul(m_V, pos); + + O.tcdh = float4(tc.xy, hemi, sun); + O.position = float4(Pe, 1.0f); + + float3 N = unpack_bx4(I.Nh); + float3 T = unpack_bx4(I.T); + float3 B = unpack_bx4(I.B); + + float3x3 xform = mul((float3x3)m_xform_v, float3x3( + T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z)); + + O.M1 = xform[0]; + O.M2 = xform[1]; + O.M3 = xform[2]; + + O.hpos = mul(m_VP, pos); +} diff --git a/gamedata/shaders/r2/deffer_model.vs.hlsl b/gamedata/shaders/r2/deffer_model.vs.hlsl new file mode 100644 index 0000000..13572c0 --- /dev/null +++ b/gamedata/shaders/r2/deffer_model.vs.hlsl @@ -0,0 +1,62 @@ +#include "common.hlsli" +#include "skin.hlsli" + +void skinned_main(in v_model I, out p_bumped_new O) +{ + float3 Nw = mul((float3x3)m_W, (float3)I.N); + float3 hc_pos = (float3)hemi_cube_pos_faces; + float3 hc_neg = (float3)hemi_cube_neg_faces; + float3 hc_mixed = (Nw < 0.0f) ? -hc_neg : hc_pos; + float hemi_val = saturate(dot(hc_mixed, Nw)); + float3 Pe = mul(m_WV, I.P); + + O.tcdh = float4(I.tc.xy, hemi_val, L_material.y); + O.position = float4(Pe, 1.0f); + + float3 N = I.N * 2.0f; + float3 T = I.T * 2.0f; + float3 B = I.B * 2.0f; + + float3x3 xform = mul((float3x3)m_WV, float3x3( + T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z)); + + O.M1 = xform[0]; + O.M2 = xform[1]; + O.M3 = xform[2]; + + O.hpos = mul(m_WVP, I.P); +} + +#if defined(SKIN_0) +void main(in v_model_skinned_0 I, out p_bumped_new O) +{ + skinned_main(skinning_0(I), O); +} +#elif defined(SKIN_1) +void main(in v_model_skinned_1 I, out p_bumped_new O) +{ + skinned_main(skinning_1(I), O); +} +#elif defined(SKIN_2) +void main(in v_model_skinned_2 I, out p_bumped_new O) +{ + skinned_main(skinning_2(I), O); +} +#elif defined(SKIN_3) +void main(in v_model_skinned_3 I, out p_bumped_new O) +{ + skinned_main(skinning_3(I), O); +} +#elif defined(SKIN_4) +void main(in v_model_skinned_4 I, out p_bumped_new O) +{ + skinned_main(skinning_4(I), O); +} +#else +void main(in v_model I, out p_bumped_new O) +{ + skinned_main(I, O); +} +#endif diff --git a/gamedata/shaders/r2/deffer_particle.ps.hlsl b/gamedata/shaders/r2/deffer_particle.ps.hlsl new file mode 100644 index 0000000..f6534e9 --- /dev/null +++ b/gamedata/shaders/r2/deffer_particle.ps.hlsl @@ -0,0 +1,27 @@ +#include "common.hlsli" +#include "sload.hlsli" + +struct p_particle +{ + float4 color : COLOR0; + p_flat base; +}; + +f_deffer main(p_particle II) +{ + f_deffer O; + p_flat I; + + I = II.base; + + // 1. Base texture + kill pixels with low alpha + float4 D = tex2D(s_base, I.tcdh); + D *= II.color; + clip(D.w - def_aref); + + // 2. Standart output + float4 Ne = float4(normalize((float3)I.N.xyz), I.position.w); + O = pack_gbuffer(Ne, float4(I.position.xyz, xmaterial), float4(D.xyz, def_gloss)); + + return O; +} diff --git a/gamedata/shaders/r2/deffer_particle.vs.hlsl b/gamedata/shaders/r2/deffer_particle.vs.hlsl new file mode 100644 index 0000000..933fb60 --- /dev/null +++ b/gamedata/shaders/r2/deffer_particle.vs.hlsl @@ -0,0 +1,37 @@ +#include "common.hlsli" + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; +}; + +struct v2p_particle +{ + float4 color : COLOR0; + p_flat base; +}; + +v2p_particle main(vv I) +{ + float4 w_pos = I.P; + + // Eye-space pos/normal + p_flat O; + O.hpos = mul(m_WVP, w_pos); + O.N = normalize(eye_position - w_pos); + float3 Pe = mul(m_WV, I.P); + O.tcdh = float4(I.tc.xyyy); + O.position = float4(Pe, .2h); + +#ifdef USE_TDETAIL + O.tcdbump = O.tcdh * dt_params; // dt tc +#endif + + v2p_particle pp; + pp.color = I.c; + pp.base = O; + + return pp; +} diff --git a/gamedata/shaders/r2/depth.ps.hlsl b/gamedata/shaders/r2/depth.ps.hlsl new file mode 100644 index 0000000..8a85d65 --- /dev/null +++ b/gamedata/shaders/r2/depth.ps.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +// Pixel +float4 main(float4 depth : TEXCOORD1) : COLOR +{ + return depth.z / depth.w; +} diff --git a/gamedata/shaders/r2/depth_downs.ps.hlsl b/gamedata/shaders/r2/depth_downs.ps.hlsl new file mode 100644 index 0000000..d09fa89 --- /dev/null +++ b/gamedata/shaders/r2/depth_downs.ps.hlsl @@ -0,0 +1,34 @@ +#include "common.hlsli" + +uniform float4 screen_res; + +float4 main(float2 tc : TEXCOORD0) : COLOR +{ +#if SSAO_OPT_DATA == 2 + // FIXME: Should add a float-texel offset to I.tc0 here + // This would fix horizontal line issue + float4 P0 = tex2D(s_position, tc + 0.5f * screen_res.zw); // position.(mtl or sun) + float4 P1 = tex2D(s_position, tc - 0.5f * screen_res.zw); // position.(mtl or sun) + float4 P2 = tex2D(s_position, tc + 0.5f * float2(screen_res.z, -screen_res.w)); // position.(mtl or sun) + float4 P3 = tex2D(s_position, tc + 0.5f * float2(-screen_res.z, screen_res.w)); // position.(mtl or sun) + + float4 P = P0; + + if (P1.z < P.z) + { + P = P1; + } + if (P2.z < P.z) + { + P = P2; + } + if (P3.z < P.z) + { + P = P3; + } + + return float4(P.zzzz); +#else + return tex2D(s_position, tc - 0.5f * screen_res.zw).zzzz; +#endif +} diff --git a/gamedata/shaders/r2/details_lod.lua b/gamedata/shaders/r2/details_lod.lua new file mode 100644 index 0000000..e2b02bd --- /dev/null +++ b/gamedata/shaders/r2/details_lod.lua @@ -0,0 +1,8 @@ +function l_special(shader, t_base, t_second, t_detail) + shader:begin("lod", "lod") + :blend(false, blend.one, blend.zero) + :zb(true, true) + :fog(false) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_hemi"):texture(t_base .. "_nm") +end diff --git a/gamedata/shaders/r2/distort.lua b/gamedata/shaders/r2/distort.lua new file mode 100644 index 0000000..d71fe5a --- /dev/null +++ b/gamedata/shaders/r2/distort.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "distort") + :fog(false) + :zb(false, false) + shader:sampler("s_base"):texture("$user$generic0"):clamp():f_linear() + shader:sampler("s_distort"):texture("$user$generic1"):clamp():f_linear() +end diff --git a/gamedata/shaders/r2/distort.ps.hlsl b/gamedata/shaders/r2/distort.ps.hlsl new file mode 100644 index 0000000..1114b50 --- /dev/null +++ b/gamedata/shaders/r2/distort.ps.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc : TEXCOORD0; // base & distort +}; + +// uniform sampler2D s_base; +uniform sampler2D s_distort; + +// Pixel +float4 main(v2p I) : COLOR +{ + float2 distort = tex2D(s_distort, I.tc); + float2 offset = (distort.xy - 0.5f) * def_distort; + float3 image = tex2D(s_base, I.tc + offset); + + // out + return float4(image, 1.0f); // +mov +} diff --git a/gamedata/shaders/r2/dof.hlsli b/gamedata/shaders/r2/dof.hlsli new file mode 100644 index 0000000..6064c30 --- /dev/null +++ b/gamedata/shaders/r2/dof.hlsli @@ -0,0 +1,202 @@ +#ifndef DOF_H_INCLUDED +#define DOF_H_INCLUDED + +// #define USE_DOF + +#ifndef USE_DOF + +float3 dof(float2 center) +{ + float3 img = tex2D(s_image, center); + return img; +} + +#else // USE_DOF + +// x - near y - focus z - far w - sky distance +float4 dof_params; +float3 dof_kernel; // x,y - resolution pre-scaled z - just kernel size + +float DOFFactor(float depth) +{ + float dist_to_focus = depth - dof_params.y; + float blur_far = saturate(dist_to_focus / (dof_params.z - dof_params.y)); + float blur_near = saturate(dist_to_focus / (dof_params.x - dof_params.y)); + float blur = blur_near + blur_far; + blur *= blur; + return blur; +} + + // #define MAXCOF 5.h + #define MAXCOF 7.h + #define EPSDEPTH 0.0001h +float3 dof(float2 center) +{ + // Scale tap offsets based on render target size + float depth = tex2D(s_position, center).z; + if (depth <= EPSDEPTH) + { + depth = dof_params.w; + } + float blur = DOFFactor(depth); + + // float blur = 1; + // const amount of blur: define controlled + // float2 scale = float2 (.5f / 1024.h, .5f / 768.h) * MAXCOF * blur; + // const amount of blur: engine controlled + float2 scale = float2(0.5f / 1024.0f, 0.5f / 768.0f) * (dof_kernel.z * blur); + // amount of blur varies according to resolution + // but kernel size in pixels is fixed. + // float2 scale = dof_kernel.xy * blur; + + // poisson + float2 o[12]; + o[0] = float2(-0.326212f, -0.405810f) * scale; + o[1] = float2(-0.840144f, -0.073580f) * scale; + o[2] = float2(-0.695914f, 0.457137f) * scale; + o[3] = float2(-0.203345f, 0.620716f) * scale; + o[4] = float2(0.962340f, -0.194983f) * scale; + o[5] = float2(0.473434f, -0.480026f) * scale; + o[6] = float2(0.519456f, 0.767022f) * scale; + o[7] = float2(0.185461f, -0.893124f) * scale; + o[8] = float2(0.507431f, 0.064425f) * scale; + o[9] = float2(0.896420f, 0.412458f) * scale; + o[10] = float2(-0.321940f, -0.932615f) * scale; + o[11] = float2(-0.791559f, -0.597710f) * scale; + + // sample + float3 sum = tex2D(s_image, center); + float contrib = 1.0f; + + for (int i = 0; i < 12; i++) + { + float2 tap = center + o[i]; + float4 tap_color = tex2D(s_image, tap); + float tap_depth = tex2D(s_position, tap).z; + if (tap_depth <= EPSDEPTH) + { + tap_depth = dof_params.w; + } + float tap_contrib = DOFFactor(tap_depth); + sum += tap_color * tap_contrib; + contrib += tap_contrib; + } + + return float3(sum / contrib); +} + +/* +// edge along sky line. More light-weight +float3 dof(float2 center) +{ + // Scale tap offsets based on render target size + float depth = tex2D(s_position,center).z; +// if (depth <= EPSDEPTH) depth = dof_params.w; + if (depth <= EPSDEPTH) depth = (dof_params.z-dof_params.y)*0.3; + float dist_to_focus = depth-dof_params.y; + float blur_far = saturate( dist_to_focus + / (dof_params.z-dof_params.y) ); + float blur_near = saturate( dist_to_focus + / (dof_params.x-dof_params.y) ); + float blur = (blur_near+blur_far); + blur*=blur; + + //float blur = 1; + // const amount of blur: define controlled + //float2 scale = float2 (.5f / 1024.h, .5f / 768.h) * MAXCOF * blur; + // const amount of blur: engine controlled + float2 scale = float2 (.5f / 1024.h, .5f / 768.h) * (dof_kernel.z * blur); + // amount of blur varies according to resolution + // but kernel size in pixels is fixed. + // float2 scale = dof_kernel.xy * blur; + + // poisson + float2 o [12]; + o[0] = float2(-0.326212f , -0.405810f)*scale; + o[1] = float2(-0.840144f , -0.073580f)*scale; + o[2] = float2(-0.695914f , 0.457137f)*scale; + o[3] = float2(-0.203345f , 0.620716f)*scale; + o[4] = float2( 0.962340f , -0.194983f)*scale; + o[5] = float2( 0.473434f , -0.480026f)*scale; + o[6] = float2( 0.519456f , 0.767022f)*scale; + o[7] = float2( 0.185461f , -0.893124f)*scale; + o[8] = float2( 0.507431f , 0.064425f)*scale; + o[9] = float2( 0.896420f , 0.412458f)*scale; + o[10] = float2(-0.321940f , -0.932615f)*scale; + o[11] = float2(-0.791559f , -0.597710f)*scale; + + // sample + float3 sum = tex2D(s_image,center); + float contrib = 1.h; + for (int i=0; i<12; i++) + { + float2 tap = center + o[i]; + float4 tap_color = tex2D (s_image,tap); + float tap_depth = tex2D (s_position,tap).z; +// if (tap_depth <= EPSDEPTH) tap_depth = dof_params.w; + if (tap_depth <= EPSDEPTH) tap_depth = (dof_params.z-dof_params.y)*0.3; +// float tap_contrib = 1.h; //(tap_depth>depth)?1.h:0.h; + float tap_contrib = 1-saturate(abs(tap_depth-depth)/dist_to_focus); + sum += tap_color * tap_contrib; + contrib += tap_contrib; + } + return float3 (sum/contrib); +} +*/ + +/* +#define NEAR 0.2h +//#define MINDIST 0.4h +#define MINDIST 1.4h +//#define MAXDIST 100.h +//#define MAXDIST 300.h +#define MAXDIST 2.0h +#define MAXCOF 5.h +#define MAXCOF_NEAR 100.h +#define EPSDEPTH 0.0001h +float3 dof(float2 center) +{ + // Scale tap offsets based on render target size + float depth = tex2D(s_position,center).z; + if (depth<=EPSDEPTH) depth = MAXDIST; + float blur = saturate( (depth-MINDIST)/(MAXDIST-MINDIST) ); + blur*=blur; + //float blur_near = pow(saturate( 1-(depth-NEAR)/MINDIST ), 2) * MAXCOF_NEAR; + //float blur = (blur_near+blur_far); + + //float blur = 1; + float2 scale = float2 (.5f / 1024.h, .5f / 768.h) * MAXCOF * blur; + + // poisson + float2 o [12]; + o[0] = float2(-0.326212f , -0.405810f)*scale; + o[1] = float2(-0.840144f , -0.073580f)*scale; + o[2] = float2(-0.695914f , 0.457137f)*scale; + o[3] = float2(-0.203345f , 0.620716f)*scale; + o[4] = float2( 0.962340f , -0.194983f)*scale; + o[5] = float2( 0.473434f , -0.480026f)*scale; + o[6] = float2( 0.519456f , 0.767022f)*scale; + o[7] = float2( 0.185461f , -0.893124f)*scale; + o[8] = float2( 0.507431f , 0.064425f)*scale; + o[9] = float2( 0.896420f , 0.412458f)*scale; + o[10] = float2(-0.321940f , -0.932615f)*scale; + o[11] = float2(-0.791559f , -0.597710f)*scale; + + // sample + float3 sum = tex2D(s_image,center); + float contrib = 1.h; + for (int i=0; i<12; i++) + { + float2 tap = center + o[i]; + float4 tap_color = tex2D (s_image,tap); + float tap_depth = tex2D (s_position,tap).z; + float tap_contrib = 1.h; //(tap_depth>depth)?1.h:0.h; + sum += tap_color * tap_contrib; + contrib += tap_contrib; + } + return float3 (sum/contrib); +} +/**/ +#endif // USE_DOF + +#endif // DOF_H_INCLUDED diff --git a/gamedata/shaders/r2/dumb.ps.hlsl b/gamedata/shaders/r2/dumb.ps.hlsl new file mode 100644 index 0000000..c7688bc --- /dev/null +++ b/gamedata/shaders/r2/dumb.ps.hlsl @@ -0,0 +1,7 @@ +#include "common.hlsli" + +// Pixel +float4 main() : COLOR +{ + return 0; +} diff --git a/gamedata/shaders/r2/dumb.vs.hlsl b/gamedata/shaders/r2/dumb.vs.hlsl new file mode 100644 index 0000000..3e8c8dd --- /dev/null +++ b/gamedata/shaders/r2/dumb.vs.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +struct v2p +{ + float4 hpos : POSITION; // Clip-space position (for rasterization) +}; + +// Vertex +v2p main(float4 P : POSITION) +{ + v2p O; + O.hpos = mul(m_WVP, P); + return O; +} +FXVS; diff --git a/gamedata/shaders/r2/editor.vs.hlsl b/gamedata/shaders/r2/editor.vs.hlsl new file mode 100644 index 0000000..d8639fe --- /dev/null +++ b/gamedata/shaders/r2/editor.vs.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct vf +{ + float4 P : POSITION; + float4 C : COLOR0; +}; + +uniform float4 tfactor; + +vf main(vf i) +{ + vf o; + + o.P = mul(m_WVP, i.P); // xform, input in world coords + o.C = tfactor * i.C; + + return o; +} diff --git a/gamedata/shaders/r2/effects_lightplanes.lua b/gamedata/shaders/r2/effects_lightplanes.lua new file mode 100644 index 0000000..38a0a19 --- /dev/null +++ b/gamedata/shaders/r2/effects_lightplanes.lua @@ -0,0 +1,22 @@ +--[[ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("dumb","dumb") + : fog (false) + : zb (false,false) + : blend (true,blend.zero,blend.one) + : aref (false,0) + : sorting (2, false) + shader:sampler ("s_base") :texture (t_base) +end +]] + +function normal(shader, t_base, t_second, t_detail) + shader:begin("base_lplanes", "base_lplanes") + :fog(false) + -- : fog (true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.one) + :aref(true, 0) + :sorting(2, false) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/effects_sun.lua b/gamedata/shaders/r2/effects_sun.lua new file mode 100644 index 0000000..a70bb33 --- /dev/null +++ b/gamedata/shaders/r2/effects_sun.lua @@ -0,0 +1,6 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("effects_sun", "stub_default") + :blend(true, blend.srcalpha, blend.one) + :zb(true, false) + :sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/effects_sun.vs.hlsl b/gamedata/shaders/r2/effects_sun.vs.hlsl new file mode 100644 index 0000000..bd76674 --- /dev/null +++ b/gamedata/shaders/r2/effects_sun.vs.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" + +struct v_TL +{ + float4 P : POSITION; + float2 Tex0 : TEXCOORD0; + float4 Color : COLOR; +}; + +struct v2p_TL +{ + float2 Tex0 : TEXCOORD0; + float4 Color : COLOR; + float4 HPos : POSITION; // Clip-space position (for rasterization) +}; + +// Vertex +v2p_TL main(v_TL I) +{ + v2p_TL O; + + O.HPos = mul(m_VP, I.P); + O.HPos.z = O.HPos.w; + O.Tex0 = I.Tex0; + O.Color = I.Color; + + return O; +} diff --git a/gamedata/shaders/r2/effects_wallmarkblend.lua b/gamedata/shaders/r2/effects_wallmarkblend.lua new file mode 100644 index 0000000..efd73a2 --- /dev/null +++ b/gamedata/shaders/r2/effects_wallmarkblend.lua @@ -0,0 +1,10 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("wmark", "simple") + :sorting(1, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :wmark(true) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/effects_wallmarkmult.lua b/gamedata/shaders/r2/effects_wallmarkmult.lua new file mode 100644 index 0000000..354186e --- /dev/null +++ b/gamedata/shaders/r2/effects_wallmarkmult.lua @@ -0,0 +1,10 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("wmark", "simple") + :sorting(1, false) + :blend(true, blend.destcolor, blend.srccolor) + :aref(true, 0) + :zb(true, false) + :fog(false) + :wmark(true) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/effects_wallmarkset.lua b/gamedata/shaders/r2/effects_wallmarkset.lua new file mode 100644 index 0000000..70bf594 --- /dev/null +++ b/gamedata/shaders/r2/effects_wallmarkset.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("wmark", "simple") + :sorting(1, false) + :aref(false, 0) + :zb(true, true) + :fog(false) + :wmark(true) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/effects_water.lua b/gamedata/shaders/r2/effects_water.lua new file mode 100644 index 0000000..db2349a --- /dev/null +++ b/gamedata/shaders/r2/effects_water.lua @@ -0,0 +1,47 @@ +local tex_base = "water\\water_water" +local tex_nmap = "water\\water_normal" +local tex_dist = "water\\water_dudv" +local tex_env0 = "$user$sky0" -- "sky\\sky_8_cube" +local tex_env1 = "$user$sky1" -- "sky\\sky_8_cube" +local tex_leaves = "water\\water_foam" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("water_soft", "water_soft") + :sorting(2, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :distort(true) + :fog(true) + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_nmap"):texture(tex_nmap) + shader:sampler("s_env0"):texture(tex_env0):clamp() + shader:sampler("s_env1"):texture(tex_env1):clamp() + shader:sampler("s_position"):texture("$user$position"):f_none() + + shader:sampler("s_leaves"):texture(tex_leaves):wrap():f_anisotropic() +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("waterd_soft", "waterd_soft") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_distort"):texture(tex_dist) + shader:sampler("s_position"):texture("$user$position"):f_none() +end + +--[[ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("waterd","waterd") + : sorting (2, true) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : zb (true,false) + : fog (false) + : distort (true) + shader:sampler ("s_base") :texture (tex_base) + shader:sampler ("s_distort") :texture (tex_dist) +end +]] diff --git a/gamedata/shaders/r2/effects_waterryaska.lua b/gamedata/shaders/r2/effects_waterryaska.lua new file mode 100644 index 0000000..a2367a3 --- /dev/null +++ b/gamedata/shaders/r2/effects_waterryaska.lua @@ -0,0 +1,47 @@ +local tex_base = "water\\water_ryaska1" +local tex_nmap = "water\\water_normal" +local tex_dist = "water\\water_dudv" +local tex_env0 = "$user$sky0" -- "sky\\sky_8_cube" +local tex_env1 = "$user$sky1" -- "sky\\sky_8_cube" +local tex_leaves = "ui\\ui_empty" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("water_soft", "water_soft") + :sorting(2, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :distort(true) + :fog(true) + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_nmap"):texture(tex_nmap) + shader:sampler("s_env0"):texture(tex_env0):clamp() + shader:sampler("s_env1"):texture(tex_env1):clamp() + shader:sampler("s_position"):texture("$user$position"):f_none() + + shader:sampler("s_leaves"):texture(tex_leaves):wrap():f_anisotropic() +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("waterd_soft", "waterd_soft") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_distort"):texture(tex_dist) + shader:sampler("s_position"):texture("$user$position"):f_none() +end + +--[[ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("waterd","waterd") + : sorting (2, true) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : zb (true,false) + : fog (false) + : distort (true) + shader:sampler ("s_base") :texture (tex_base) + shader:sampler ("s_distort") :texture (tex_dist) +end +]] diff --git a/gamedata/shaders/r2/effects_waterstuden.lua b/gamedata/shaders/r2/effects_waterstuden.lua new file mode 100644 index 0000000..b3e32b0 --- /dev/null +++ b/gamedata/shaders/r2/effects_waterstuden.lua @@ -0,0 +1,47 @@ +local tex_base = "water\\water_studen" +local tex_nmap = "water\\water_normal" +local tex_dist = "water\\water_dudv" +local tex_env0 = "$user$sky0" -- "sky\\sky_8_cube" +local tex_env1 = "$user$sky1" -- "sky\\sky_8_cube" +local tex_leaves = "ui\\ui_empty" + +function normal(shader, t_base, t_second, t_detail) + shader:begin("water_soft", "water_soft") + :sorting(2, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :distort(true) + :fog(true) + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_nmap"):texture(tex_nmap) + shader:sampler("s_env0"):texture(tex_env0):clamp() + shader:sampler("s_env1"):texture(tex_env1):clamp() + shader:sampler("s_position"):texture("$user$position"):f_none() + + shader:sampler("s_leaves"):texture(tex_leaves):wrap():f_anisotropic() +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("waterd_soft", "waterd_soft") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(tex_base) + shader:sampler("s_distort"):texture(tex_dist) + shader:sampler("s_position"):texture("$user$position"):f_none() +end + +--[[ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("waterd","waterd") + : sorting (2, true) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : zb (true,false) + : fog (false) + : distort (true) + shader:sampler ("s_base") :texture (tex_base) + shader:sampler ("s_distort") :texture (tex_dist) +end +]] diff --git a/gamedata/shaders/r2/fencode.hlsli b/gamedata/shaders/r2/fencode.hlsli new file mode 100644 index 0000000..4bbc8a5 --- /dev/null +++ b/gamedata/shaders/r2/fencode.hlsli @@ -0,0 +1,32 @@ +#ifndef FENCODE_H +#define FENCODE_H + +#include "common.hlsli" + +uniform float3 v_encodeZ01; +uniform float3 v_decodeZ01; + +float3 encode_tcRG(float z) +{ + return z * v_encodeZ01.xyz; +} +float2 encode_tcB(float z) +{ + return z * v_encodeZ01.z; +} + +// 0..1 encoding with 21 bit precision +static const float3 pe_scale = {1.f, 128.f, 16384.f}; +static const float3 pe_unscale21 = {2.f / 1.f, 2.f / 128.f, 2.f / 16384.f}; +static const float3 pe_unscale24 = {1.f / 1.f, 1.f / 256.f, 1.f / 65536.f}; + +float decode_float21(float3 rgb) +{ + return dot(rgb, pe_unscale21); +} +float decode_float24(float3 rgb) +{ + return dot(rgb, pe_unscale24); +} + +#endif diff --git a/gamedata/shaders/r2/font2.ps.hlsl b/gamedata/shaders/r2/font2.ps.hlsl new file mode 100644 index 0000000..7892ebe --- /dev/null +++ b/gamedata/shaders/r2/font2.ps.hlsl @@ -0,0 +1,18 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 r = tex2D(s_base, I.tc0); + // r.x = 1 - r.x; + // r.y = 1 - r.y; + // r.z = 1 - r.z; + r.w = 1 - r.w; + return r; + // return /*(float4(1,1,1,1) - */ tex2D (s_base,I.tc0); +} diff --git a/gamedata/shaders/r2/forward_base.ps.hlsl b/gamedata/shaders/r2/forward_base.ps.hlsl new file mode 100644 index 0000000..2e6f0b2 --- /dev/null +++ b/gamedata/shaders/r2/forward_base.ps.hlsl @@ -0,0 +1,47 @@ +#include "common.hlsli" +#include "sload.hlsli" +#include "lmodel.hlsli" +#include "hmodel.hlsli" + +void main(p_bumped_new I, out float4 Color : COLOR0) +{ + XrayMaterial M; + + M.Sun = I.tcdh.w; + M.Hemi = I.tcdh.z; + M.Point = I.position.xyz; + + SloadNew(I, M); + +#ifdef USE_AREF + clip(M.Color.w - def_aref); +#endif + + M.Normal = mul(float3x3(I.M1, I.M2, I.M3), M.Normal); + M.Normal = normalize(M.Normal); + +#ifdef USE_LM_HEMI + float4 lm = tex2D(s_hemi, I.tcdh.zw); + + M.Sun = get_sun(lm); + M.Hemi = get_hemi(lm); +#endif + + M.Sun = saturate(M.Sun * 2.0f); + M.Color.xyz = saturate(M.Color.xyz); + + float MaterialID = xmaterial; + float Gloss = 1.0f - M.Roughness; + + float4 Light = float4(L_sun_color, 1.0f) * M.Sun * plight_infinity(MaterialID, M.Point, M.Normal, L_sun_dir_e); + float3 Diffuse, Specular; + + hmodel(Diffuse, Specular, MaterialID, M.Hemi, Gloss, M.Point, M.Normal); + + Color = float4(Diffuse + Light.xyz, M.Color.w); + Color.xyz *= M.Color.xyz; + Color.xyz += Light.w * Gloss + Specular; + + float fog = saturate(length(M.Point) * fog_params.w + fog_params.x); + Color = lerp(Color, fog_color, fog); +} diff --git a/gamedata/shaders/r2/fxaa.hlsli b/gamedata/shaders/r2/fxaa.hlsli new file mode 100644 index 0000000..f3ddc2c --- /dev/null +++ b/gamedata/shaders/r2/fxaa.hlsli @@ -0,0 +1,1308 @@ +#define FXAA_PC 1 +#define FXAA_HLSL_3 1 +#define FXAA_QUALITY__PRESET 39 + +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_PC_CONSOLE + // + // The console algorithm for PC is included + // for developers targeting really low spec machines. + // Likely better to just run FXAA_PC, and use a really low preset. + // + #define FXAA_PC_CONSOLE 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GLSL_120 + #define FXAA_GLSL_120 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GLSL_130 + #define FXAA_GLSL_130 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_3 + #define FXAA_HLSL_3 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_4 + #define FXAA_HLSL_4 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_5 + #define FXAA_HLSL_5 0 +#endif +/*==========================================================================*/ +#ifndef FXAA_GREEN_AS_LUMA + // + // For those using non-linear color, + // and either not able to get luma in alpha, or not wanting to, + // this enables FXAA to run using green as a proxy for luma. + // So with this enabled, no need to pack luma in alpha. + // + // This will turn off AA on anything which lacks some amount of green. + // Pure red and blue or combination of only R and B, will get no AA. + // + // Might want to lower the settings for both, + // fxaaConsoleEdgeThresholdMin + // fxaaQualityEdgeThresholdMin + // In order to insure AA does not get turned off on colors + // which contain a minor amount of green. + // + // 1 = On. + // 0 = Off. + // + #define FXAA_GREEN_AS_LUMA 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_EARLY_EXIT + // + // Controls algorithm's early exit path. + // On PS3 turning this ON adds 2 cycles to the shader. + // On 360 turning this OFF adds 10ths of a millisecond to the shader. + // Turning this off on console will result in a more blurry image. + // So this defaults to on. + // + // 1 = On. + // 0 = Off. + // + #define FXAA_EARLY_EXIT 1 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_DISCARD + // + // Only valid for PC OpenGL currently. + // Probably will not work when FXAA_GREEN_AS_LUMA = 1. + // + // 1 = Use discard on pixels which don't need AA. + // For APIs which enable concurrent TEX+ROP from same surface. + // 0 = Return unchanged color on pixels which don't need AA. + // + #define FXAA_DISCARD 1 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_FAST_PIXEL_OFFSET + // + // Used for GLSL 120 only. + // + // 1 = GL API supports fast pixel offsets + // 0 = do not use fast pixel offsets + // + #ifdef GL_EXT_gpu_shader4 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifdef GL_NV_gpu_shader5 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifdef GL_ARB_gpu_shader5 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifndef FXAA_FAST_PIXEL_OFFSET + #define FXAA_FAST_PIXEL_OFFSET 0 + #endif +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GATHER4_ALPHA + // + // 1 = API supports gather4 on alpha channel. + // 0 = API does not support gather4 on alpha channel. + // + #if (FXAA_HLSL_5 == 1) + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifdef GL_ARB_gpu_shader5 + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifdef GL_NV_gpu_shader5 + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifndef FXAA_GATHER4_ALPHA + #define FXAA_GATHER4_ALPHA 0 + #endif +#endif + +/*============================================================================ + FXAA QUALITY - TUNING KNOBS +------------------------------------------------------------------------------ +NOTE the other tuning knobs are now in the shader function inputs! +============================================================================*/ +#ifndef FXAA_QUALITY__PRESET + // + // Choose the quality preset. + // This needs to be compiled into the shader as it effects code. + // Best option to include multiple presets is to + // in each shader define the preset, then include this file. + // + // OPTIONS + // ----------------------------------------------------------------------- + // 10 to 15 - default medium dither (10=fastest, 15=highest quality) + // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) + // 39 - no dither, very expensive + // + // NOTES + // ----------------------------------------------------------------------- + // 12 = slightly faster then FXAA 3.9 and higher edge quality (default) + // 13 = about same speed as FXAA 3.9 and better than 12 + // 23 = closest to FXAA 3.9 visually and performance wise + // _ = the lowest digit is directly related to performance + // _ = the highest digit is directly related to style + // + #define FXAA_QUALITY__PRESET 12 +#endif + +/*============================================================================ + + FXAA QUALITY - PRESETS + +============================================================================*/ + +/*============================================================================ + FXAA QUALITY - MEDIUM DITHER PRESETS +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 10) + #define FXAA_QUALITY__PS 3 + #define FXAA_QUALITY__P0 1.5 + #define FXAA_QUALITY__P1 3.0 + #define FXAA_QUALITY__P2 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 11) + #define FXAA_QUALITY__PS 4 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 3.0 + #define FXAA_QUALITY__P3 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 12) + #define FXAA_QUALITY__PS 5 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 4.0 + #define FXAA_QUALITY__P4 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 13) + #define FXAA_QUALITY__PS 6 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 4.0 + #define FXAA_QUALITY__P5 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 14) + #define FXAA_QUALITY__PS 7 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 4.0 + #define FXAA_QUALITY__P6 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 15) + #define FXAA_QUALITY__PS 8 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 4.0 + #define FXAA_QUALITY__P7 12.0 +#endif + +/*============================================================================ + FXAA QUALITY - LOW DITHER PRESETS +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 20) + #define FXAA_QUALITY__PS 3 + #define FXAA_QUALITY__P0 1.5 + #define FXAA_QUALITY__P1 2.0 + #define FXAA_QUALITY__P2 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 21) + #define FXAA_QUALITY__PS 4 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 22) + #define FXAA_QUALITY__PS 5 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 23) + #define FXAA_QUALITY__PS 6 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 24) + #define FXAA_QUALITY__PS 7 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 3.0 + #define FXAA_QUALITY__P6 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 25) + #define FXAA_QUALITY__PS 8 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 4.0 + #define FXAA_QUALITY__P7 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 26) + #define FXAA_QUALITY__PS 9 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 4.0 + #define FXAA_QUALITY__P8 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 27) + #define FXAA_QUALITY__PS 10 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 4.0 + #define FXAA_QUALITY__P9 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 28) + #define FXAA_QUALITY__PS 11 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 4.0 + #define FXAA_QUALITY__P10 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 29) + #define FXAA_QUALITY__PS 12 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 2.0 + #define FXAA_QUALITY__P10 4.0 + #define FXAA_QUALITY__P11 8.0 +#endif + +/*============================================================================ + FXAA QUALITY - EXTREME QUALITY +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 39) + #define FXAA_QUALITY__PS 12 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.0 + #define FXAA_QUALITY__P2 1.0 + #define FXAA_QUALITY__P3 1.0 + #define FXAA_QUALITY__P4 1.0 + #define FXAA_QUALITY__P5 1.5 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 2.0 + #define FXAA_QUALITY__P10 4.0 + #define FXAA_QUALITY__P11 8.0 +#endif + +/*============================================================================ + + API PORTING + +============================================================================*/ +#if (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1) + #define FxaaBool bool + #define FxaaDiscard discard + #define FxaaFloat float + #define FxaaFloat2 vec2 + #define FxaaFloat3 vec3 + #define FxaaFloat4 vec4 + #define FxaaInt2 ivec2 + #define FxaaSat(x) clamp(x, 0.0, 1.0) + #define FxaaTex sampler2D +#else + #define FxaaBool bool + #define FxaaDiscard clip(-1) + #define FxaaFloat float + #define FxaaFloat2 float2 + #define FxaaFloat3 float3 + #define FxaaFloat4 float4 + #define FxaaSat(x) saturate(x) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_GLSL_120 == 1) + // Requires, + // #version 120 + // And at least, + // #extension GL_EXT_gpu_shader4 : enable + // (or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9) + #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) + #if (FXAA_FAST_PIXEL_OFFSET == 1) + #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o) + #else + #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) + #endif + #if (FXAA_GATHER4_ALPHA == 1) + // use #extension GL_ARB_gpu_shader5 : enable + #define FxaaTexAlpha4(t, p) textureGather(t, p, 3) + #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3) + #define FxaaTexGreen4(t, p) textureGather(t, p, 1) + #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1) + #endif +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_GLSL_130 == 1) + // Requires "#version 130" or better + #define FxaaTexTop(t, p) textureLod(t, p, 0.0) + #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o) + #if (FXAA_GATHER4_ALPHA == 1) + // use #extension GL_ARB_gpu_shader5 : enable + #define FxaaTexAlpha4(t, p) textureGather(t, p, 3) + #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3) + #define FxaaTexGreen4(t, p) textureGather(t, p, 1) + #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1) + #endif +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_3 == 1) || (FXAA_360 == 1) || (FXAA_PS3 == 1) + #define FxaaInt2 float2 + #define FxaaTex sampler2D + #define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0)) + #define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0)) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_4 == 1) + #define FxaaInt2 int2 +struct FxaaTex +{ + SamplerState smpl; + Texture2D tex; +}; + #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0) + #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_5 == 1) + #define FxaaInt2 int2 +struct FxaaTex +{ + SamplerState smpl; + Texture2D tex; +}; + #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0) + #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o) + #define FxaaTexAlpha4(t, p) t.tex.GatherAlpha(t.smpl, p) + #define FxaaTexOffAlpha4(t, p, o) t.tex.GatherAlpha(t.smpl, p, o) + #define FxaaTexGreen4(t, p) t.tex.GatherGreen(t.smpl, p) + #define FxaaTexOffGreen4(t, p, o) t.tex.GatherGreen(t.smpl, p, o) +#endif + +/*============================================================================ + GREEN AS LUMA OPTION SUPPORT FUNCTION +============================================================================*/ +#if (FXAA_GREEN_AS_LUMA == 0) +FxaaFloat FxaaLuma(FxaaFloat4 rgba) +{ + return rgba.w; +} +#else +FxaaFloat FxaaLuma(FxaaFloat4 rgba) +{ + return rgba.y; +} +#endif + +/*============================================================================ + + FXAA3 QUALITY - PC + +============================================================================*/ +#if (FXAA_PC == 1) +/*--------------------------------------------------------------------------*/ +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Used only for FXAA Console, and not used on the 360 version. + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy__} = upper left of pixel + // {__zw} = lower right of pixel + FxaaFloat4 fxaaConsolePosPos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on the optimized 360 version of FXAA Console. + // For everything but 360, just use the same input here as for "tex". + // For 360, same texture, just alias with a 2nd sampler. + // This sampler needs to have an exponent bias of -1. + FxaaTex fxaaConsole360TexExpBiasNegOne, + // + // Only used on the optimized 360 version of FXAA Console. + // For everything but 360, just use the same input here as for "tex". + // For 360, same texture, just alias with a 3nd sampler. + // This sampler needs to have an exponent bias of -2. + FxaaTex fxaaConsole360TexExpBiasNegTwo, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Console. + // This must be from a constant/uniform. + // This effects sub-pixel AA quality and inversely sharpness. + // Where N ranges between, + // N = 0.50 (default) + // N = 0.33 (sharper) + // {x___} = -N/screenWidthInPixels + // {_y__} = -N/screenHeightInPixels + // {__z_} = N/screenWidthInPixels + // {___w} = N/screenHeightInPixels + FxaaFloat4 fxaaConsoleRcpFrameOpt, + // + // Only used on FXAA Console. + // Not used on 360, but used on PS3 and PC. + // This must be from a constant/uniform. + // {x___} = -2.0/screenWidthInPixels + // {_y__} = -2.0/screenHeightInPixels + // {__z_} = 2.0/screenWidthInPixels + // {___w} = 2.0/screenHeightInPixels + FxaaFloat4 fxaaConsoleRcpFrameOpt2, + // + // Only used on FXAA Console. + // Only used on 360 in place of fxaaConsoleRcpFrameOpt2. + // This must be from a constant/uniform. + // {x___} = 8.0/screenWidthInPixels + // {_y__} = 8.0/screenHeightInPixels + // {__z_} = -4.0/screenWidthInPixels + // {___w} = -4.0/screenHeightInPixels + FxaaFloat4 fxaaConsole360RcpFrameOpt2, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_SHARPNESS define. + // It is here now to allow easier tuning. + // This does not effect PS3, as this needs to be compiled in. + // Use FXAA_CONSOLE__PS3_EDGE_SHARPNESS for PS3. + // Due to the PS3 being ALU bound, + // there are only three safe values here: 2 and 4 and 8. + // These options use the shaders ability to a free *|/ by 2|4|8. + // For all other platforms can be a non-power of two. + // 8.0 is sharper (default!!!) + // 4.0 is softer + // 2.0 is really soft (good only for vector graphics inputs) + FxaaFloat fxaaConsoleEdgeSharpness, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // This does not effect PS3, as this needs to be compiled in. + // Use FXAA_CONSOLE__PS3_EDGE_THRESHOLD for PS3. + // Due to the PS3 being ALU bound, + // there are only two safe values here: 1/4 and 1/8. + // These options use the shaders ability to a free *|/ by 2|4|8. + // The console setting has a different mapping than the quality setting. + // Other platforms can use other values. + // 0.125 leaves less aliasing, but is softer (default!!!) + // 0.25 leaves more aliasing, and is sharper + FxaaFloat fxaaConsoleEdgeThreshold, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // The console setting has a different mapping than the quality setting. + // This only applies when FXAA_EARLY_EXIT is 1. + // This does not apply to PS3, + // PS3 was simplified to avoid more shader instructions. + // 0.06 - faster but more aliasing in darks + // 0.05 - default + // 0.04 - slower and less aliasing in darks + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaConsoleEdgeThresholdMin, + // + // Extra constants for 360 FXAA Console only. + // Use zeros or anything else for other platforms. + // These must be in physical constant registers and NOT immedates. + // Immedates will result in compiler un-optimizing. + // {xyzw} = float4(1.0, -1.0, 0.25, -0.25) + FxaaFloat4 fxaaConsole360ConstDir) +{ + /*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + #if (FXAA_GATHER4_ALPHA == 1) + #if (FXAA_DISCARD == 0) + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #if (FXAA_GREEN_AS_LUMA == 0) + #define lumaM rgbyM.w + #else + #define lumaM rgbyM.y + #endif + #endif + #if (FXAA_GREEN_AS_LUMA == 0) + FxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM); + FxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1)); + #else + FxaaFloat4 luma4A = FxaaTexGreen4(tex, posM); + FxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1)); + #endif + #if (FXAA_DISCARD == 1) + #define lumaM luma4A.w + #endif + #define lumaE luma4A.z + #define lumaS luma4A.x + #define lumaSE luma4A.y + #define lumaNW luma4B.w + #define lumaN luma4B.z + #define lumaW luma4B.x + #else + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #if (FXAA_GREEN_AS_LUMA == 0) + #define lumaM rgbyM.w + #else + #define lumaM rgbyM.y + #endif + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(0, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); + #endif + /*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; + /*--------------------------------------------------------------------------*/ + if (earlyExit) + #if (FXAA_DISCARD == 1) + FxaaDiscard; + #else + return rgbyM; + #endif + /*--------------------------------------------------------------------------*/ + #if (FXAA_GATHER4_ALPHA == 0) + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); + #else + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); + #endif + /*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0 / range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; + /*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; + /*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; + /*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; + /*--------------------------------------------------------------------------*/ + if (!horzSpan) + { + lumaN = lumaW; + } + if (!horzSpan) + { + lumaS = lumaE; + } + if (horzSpan) + { + lengthSign = fxaaQualityRcpFrame.y; + } + FxaaFloat subpixB = (subpixA * (1.0 / 12.0)) - lumaM; + /*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if (pairN) + { + lengthSign = -lengthSign; + } + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); + /*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = (horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if (!horzSpan) + { + posB.x += lengthSign * 0.5; + } + if (horzSpan) + { + posB.y += lengthSign * 0.5; + } + /*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY__P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY__P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY__P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY__P0; + FxaaFloat subpixD = ((-2.0) * subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); + /*--------------------------------------------------------------------------*/ + if (!pairN) + { + lumaNN = lumaSS; + } + FxaaFloat gradientScaled = gradient * 1.0 / 4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; + /*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P1; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P1; + } + FxaaBool doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P1; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P1; + } + /*--------------------------------------------------------------------------*/ + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P2; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P2; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P2; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P2; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 3) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P3; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P3; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P3; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P3; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 4) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P4; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P4; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P4; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P4; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 5) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P5; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P5; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P5; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P5; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 6) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P6; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P6; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P6; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P6; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 7) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P7; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P7; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P7; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P7; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 8) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P8; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P8; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P8; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P8; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 9) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P9; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P9; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P9; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P9; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 10) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P10; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P10; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P10; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P10; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 11) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P11; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P11; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P11; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P11; + } + /*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 12) + if (doneNP) + { + if (!doneN) + { + lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + } + if (!doneP) + { + lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + } + if (!doneN) + { + lumaEndN = lumaEndN - lumaNN * 0.5; + } + if (!doneP) + { + lumaEndP = lumaEndP - lumaNN * 0.5; + } + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if (!doneN) + { + posN.x -= offNP.x * FXAA_QUALITY__P12; + } + if (!doneN) + { + posN.y -= offNP.y * FXAA_QUALITY__P12; + } + doneNP = (!doneN) || (!doneP); + if (!doneP) + { + posP.x += offNP.x * FXAA_QUALITY__P12; + } + if (!doneP) + { + posP.y += offNP.y * FXAA_QUALITY__P12; + } + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + #endif + /*--------------------------------------------------------------------------*/ + } + /*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if (!horzSpan) + { + dstN = posM.y - posN.y; + } + if (!horzSpan) + { + dstP = posP.y - posM.y; + } + /*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0 / spanLength; + /*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; + /*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if (!horzSpan) + { + posM.x += pixelOffsetSubpix * lengthSign; + } + if (horzSpan) + { + posM.y += pixelOffsetSubpix * lengthSign; + } + #if (FXAA_DISCARD == 1) + return FxaaTexTop(tex, posM); + #else + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); + #endif +} +/*==========================================================================*/ +#endif diff --git a/gamedata/shaders/r2/fxaa_luma.ps.hlsl b/gamedata/shaders/r2/fxaa_luma.ps.hlsl new file mode 100644 index 0000000..92815b9 --- /dev/null +++ b/gamedata/shaders/r2/fxaa_luma.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; + float4 HPos : POSITION; +}; + +float4 main(v2p I) : COLOR +{ + float3 image = tex2D(s_image, I.tc0); + return float4(image, dot(image, LUMINANCE_VECTOR)); +} diff --git a/gamedata/shaders/r2/fxaa_main.ps.hlsl b/gamedata/shaders/r2/fxaa_main.ps.hlsl new file mode 100644 index 0000000..77de0dc --- /dev/null +++ b/gamedata/shaders/r2/fxaa_main.ps.hlsl @@ -0,0 +1,33 @@ +#include "common.hlsli" +#include "fxaa.hlsli" + +uniform float4 screen_res; + +struct v2p +{ + float2 tc0 : TEXCOORD0; + float4 HPos : POSITION; +}; + +float4 main(v2p I) : COLOR +{ + float2 rcpFrame = screen_res.zw; + + return FxaaPixelShader(I.tc0, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsolePosPos, + s_image, // FxaaTex tex, + s_image, // FxaaTex fxaaConsole360TexExpBiasNegOne, + s_image, // FxaaTex fxaaConsole360TexExpBiasNegTwo, + rcpFrame, // FxaaFloat2 fxaaQualityRcpFrame, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsoleRcpFrameOpt, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsoleRcpFrameOpt2, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f), // FxaaFloat4 fxaaConsole360RcpFrameOpt2, + 0.35f, // FxaaFloat fxaaQualitySubpix, + 0.125f, // FxaaFloat fxaaQualityEdgeThreshold, + 0.0f, // 0.0625f, // FxaaFloat fxaaQualityEdgeThresholdMin, + 0.0f, // FxaaFloat fxaaConsoleEdgeSharpness, + 0.0f, // FxaaFloat fxaaConsoleEdgeThreshold, + 0.0f, // FxaaFloat fxaaConsoleEdgeThresholdMin, + FxaaFloat4(0.0f, 0.0f, 0.0f, 0.0f) // FxaaFloat fxaaConsole360ConstDir, + ); +} diff --git a/gamedata/shaders/r2/fxaa_main.vs.hlsl b/gamedata/shaders/r2/fxaa_main.vs.hlsl new file mode 100644 index 0000000..713c1ac --- /dev/null +++ b/gamedata/shaders/r2/fxaa_main.vs.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +uniform float4 screen_res; // Screen resolution (x-Width,y-Height, zw - 1/resolution) + +struct v +{ + float3 P : POSITION; + float2 tc0 : TEXCOORD0; +}; + +struct v2p +{ + float2 tc0 : TEXCOORD0; + float4 HPos : POSITION; +}; + +// Vertex +v2p main(v I) +{ + v2p O; + O.HPos = float4(I.P.x * screen_res.z * 2 - 1, (I.P.y * screen_res.w * 2 - 1) * -1, 0, 1); + O.tc0 = I.tc0; + + return O; +} diff --git a/gamedata/shaders/r2/hmodel.hlsli b/gamedata/shaders/r2/hmodel.hlsli new file mode 100644 index 0000000..3bb6950 --- /dev/null +++ b/gamedata/shaders/r2/hmodel.hlsli @@ -0,0 +1,47 @@ +#ifndef HMODEL_H +#define HMODEL_H + +#include "common.hlsli" + +uniform samplerCUBE env_s0; +uniform samplerCUBE env_s1; +uniform samplerCUBE sky_s0; +uniform samplerCUBE sky_s1; + +void hmodel(out float3 hdiffuse, out float3 hspecular, + float m, float h, float s, float3 Pnt, float3 normal) +{ + // hscale - something like diffuse reflection + float3 nw = mul(m_invV, normal); + float hscale = h; + +#ifdef USE_GAMMA_22 + hscale = (hscale * hscale); // make it more linear +#endif + + // reflection vector + float3 v2PntL = normalize(Pnt); + float3 v2Pnt = mul(m_invV, v2PntL); + float3 vreflect = reflect(v2Pnt, nw); + float hspec = .5h + .5h * dot(vreflect, v2Pnt); + + // material + float4 light = tex3D(s_material, float3(hscale, hspec, m)).xxxy; + + // diffuse color + float3 e0d = texCUBElod(env_s0, float4(nw, 0.0f)); + float3 e1d = texCUBElod(env_s1, float4(nw, 0.0f)); + float3 env_d = L_hemi_color.xyz * lerp(e0d, e1d, L_hemi_color.w); + env_d *= env_d; // contrast + hdiffuse = env_d * light.xyz + L_ambient.rgb; + + // specular color + vreflect.y = vreflect.y * 2 - 1; + + float3 e0s = texCUBElod(env_s0, float4(vreflect, 0.0f)); + float3 e1s = texCUBElod(env_s1, float4(vreflect, 0.0f)); + float3 env_s = L_hemi_color.xyz * lerp(e0s, e1s, L_hemi_color.w); + env_s *= env_s; + hspecular = env_s * light.w * s; +} +#endif diff --git a/gamedata/shaders/r2/hmodel_f.hlsli b/gamedata/shaders/r2/hmodel_f.hlsli new file mode 100644 index 0000000..14688c9 --- /dev/null +++ b/gamedata/shaders/r2/hmodel_f.hlsli @@ -0,0 +1,65 @@ +#ifndef HMODEL_H +#define HMODEL_H + +#include "common.hlsli" + +uniform samplerCUBE env_s0; +uniform samplerCUBE env_s1; +uniform float4 env_color; // color.w = lerp factor +uniform float3x4 m_v2w; + +void hmodel(out float3 hdiffuse, out float3 hspecular, float m, float h, float s, float3 _point, float3 normal) +{ + // hscale - something like diffuse reflection + float3 nw = mul(m_v2w, normal); + float hscale = h; //. * (.5h + .5h*nw.y); +#ifdef USE_GAMMA_22 + hscale = (hscale * hscale); // make it more linear +#endif + + // reflection vector + float3 v2point = mul(m_v2w, normalize(_point)); + float3 vreflect = reflect(v2point, nw); + float hspec = .5h + .5h * dot(vreflect, v2point); + + // material + float4 light = tex3D(s_material, float3(hscale, hspec, m)); // sample material + + // diffuse color + float3 e0d = texCUBE(env_s0, nw); + float3 e1d = texCUBE(env_s1, nw); + float3 env_d = env_color.xyz * lerp(e0d, e1d, env_color.w); + hdiffuse = env_d * light.xyz + L_ambient.rgb; + + // specular color + float3 e0s = texCUBE(env_s0, vreflect); + float3 e1s = texCUBE(env_s1, vreflect); + float3 env_s = env_color.xyz * lerp(e0s, e1s, env_color.w); + hspecular = env_s * light.w * s; +} + +void hmodel_table(out float3 hdiffuse, out float3 hspecular, float m, float h, float s, float3 _point, float3 normal) +{ + // hscale - something like diffuse reflection + float hscale = h; + + // reflection vector + float3 v2point = normalize(_point); + float3 vreflect = reflect(v2point, normal); + float hspec = .5h + .5h * dot(vreflect, v2point); + + // material + float4 light = tex3D(s_material, float3(hscale, hspec, m)); // sample material + + // diffuse color + float3 env_d = texCUBE(env_s0, normal); + + // specular color + float3 env_s = texCUBE(env_s0, vreflect); + + // + hdiffuse = env_d * light.xyz + L_ambient.rgb; + hspecular = env_s * light.w * s; +} + +#endif diff --git a/gamedata/shaders/r2/hud3d.ps.hlsl b/gamedata/shaders/r2/hud3d.ps.hlsl new file mode 100644 index 0000000..df4d764 --- /dev/null +++ b/gamedata/shaders/r2/hud3d.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +struct ui_vert_out +{ + float2 tc0 : TEXCOORD0; + float4 P : POSITION; +}; + +float4 main(ui_vert_out I) : COLOR +{ + float4 r = tex2D(s_base, I.tc0); + return r; +} diff --git a/gamedata/shaders/r2/hud3d.vs.hlsl b/gamedata/shaders/r2/hud3d.vs.hlsl new file mode 100644 index 0000000..47bef8b --- /dev/null +++ b/gamedata/shaders/r2/hud3d.vs.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +struct ui_vert_in +{ + float4 P : POSITION; + float4 color : COLOR0; + float2 uv : TEXCOORD0; +}; + +struct ui_vert_out +{ + float2 tc0 : TEXCOORD0; + float4 P : POSITION; +}; + +ui_vert_out main(ui_vert_in v) +{ + ui_vert_out O; + + O.tc0 = v.uv; + O.P = v.P; + O.P.w = 1; + O.P = mul(m_WVP, O.P); + return O; +} diff --git a/gamedata/shaders/r2/hud_crosshair.lua b/gamedata/shaders/r2/hud_crosshair.lua new file mode 100644 index 0000000..7c5097d --- /dev/null +++ b/gamedata/shaders/r2/hud_crosshair.lua @@ -0,0 +1,6 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "simple_color") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) +end diff --git a/gamedata/shaders/r2/hud_font.lua b/gamedata/shaders/r2/hud_font.lua new file mode 100644 index 0000000..6f41a55 --- /dev/null +++ b/gamedata/shaders/r2/hud_font.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "hud_font") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/hud_font.ps.hlsl b/gamedata/shaders/r2/hud_font.ps.hlsl new file mode 100644 index 0000000..7ab06f8 --- /dev/null +++ b/gamedata/shaders/r2/hud_font.ps.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; + float4 c0 : COLOR0; +}; + +float4 main(v2p I) : COLOR +{ + float4 r = tex2D(s_base, I.tc0); + r.rgb = I.c0.rgb; + r.a *= I.c0.a; + return r; +} diff --git a/gamedata/shaders/r2/hud_font2.lua b/gamedata/shaders/r2/hud_font2.lua new file mode 100644 index 0000000..f7c9151 --- /dev/null +++ b/gamedata/shaders/r2/hud_font2.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "font2") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/hud_movie.lua b/gamedata/shaders/r2/hud_movie.lua new file mode 100644 index 0000000..4a61a6c --- /dev/null +++ b/gamedata/shaders/r2/hud_movie.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("null", "yuv2rgb") + :fog(false) + :zb(false, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/hud_p3d.lua b/gamedata/shaders/r2/hud_p3d.lua new file mode 100644 index 0000000..956028e --- /dev/null +++ b/gamedata/shaders/r2/hud_p3d.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("hud3d", "hud3d") + :fog(false) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/lmodel.hlsli b/gamedata/shaders/r2/lmodel.hlsli new file mode 100644 index 0000000..3f58672 --- /dev/null +++ b/gamedata/shaders/r2/lmodel.hlsli @@ -0,0 +1,58 @@ +#ifndef LMODEL_H +#define LMODEL_H + +#include "common.hlsli" + +// Lighting formulas // +float4 plight_infinity(float m, float3 _point, float3 normal, float3 light_direction) +{ + float3 N = normal; // normal + float3 V = -normalize(_point); // vector2eye + float3 L = -light_direction; // vector2light + float3 H = normalize(L + V); // float-angle-vector + return tex3D(s_material, float3(dot(L, N), dot(H, N), m)); // sample material +} +float4 plight_infinity2(float m, float3 _point, float3 normal, float3 light_direction) +{ + float3 N = normal; // normal + float3 V = -normalize(_point); // vector2eye + float3 L = -light_direction; // vector2light + float3 H = normalize(L + V); // float-angle-vector + float3 R = reflect(-V, N); + float s = saturate(dot(L, R)); + s = saturate(dot(H, N)); + float f = saturate(dot(-V, R)); + s *= f; + float4 r = tex3D(s_material, float3(dot(L, N), s, m)); // sample material + r.w = pow(saturate(s), 4); + return r; +} +float4 plight_local(float m, float3 _point, float3 normal, float3 light_position, float light_range_rsq, out float rsqr) +{ + float3 N = normal; // normal + float3 L2P = _point - light_position; // light2point + float3 V = -normalize(_point); // vector2eye + float3 L = -normalize((float3)L2P); // vector2light + float3 H = normalize(L + V); // float-angle-vector + rsqr = dot(L2P, L2P); // distance 2 light (squared) + float att = saturate(1 - rsqr * light_range_rsq); // q-linear attenuate + float4 light = tex3D(s_material, float3(dot(L, N), dot(H, N), m)); // sample material + return att * light; +} + +float4 blendp(float4 value, float4 tcp) +{ +#ifndef FP16_BLEND + value += (float4)tex2Dproj(s_accumulator, tcp); // emulate blend +#endif + return value; +} +float4 blend(float4 value, float2 tc) +{ +#ifndef FP16_BLEND + value += (float4)tex2D(s_accumulator, tc); // emulate blend +#endif + return value; +} + +#endif diff --git a/gamedata/shaders/r2/lod.ps.hlsl b/gamedata/shaders/r2/lod.ps.hlsl new file mode 100644 index 0000000..1eee75e --- /dev/null +++ b/gamedata/shaders/r2/lod.ps.hlsl @@ -0,0 +1,32 @@ +#include "common.hlsli" +#include "sload.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float3 position : TEXCOORD0; + float2 tc0 : TEXCOORD1; + float2 tc1 : TEXCOORD2; + float4 af : COLOR1; +}; + +void main(in vf I, out f_deffer O) +{ + // 1. Base texture + kill pixels with low alpha + float4 D0 = tex2D(s_base, I.tc0); + float4 D1 = tex2D(s_base, I.tc1); + float4 H0 = tex2D(s_hemi, I.tc0); + float4 H1 = tex2D(s_hemi, I.tc1); + + float4 D = lerp(D0, D1, I.af.w); + float4 H = lerp(H0, H1, I.af.w); + + H.xyz = H.rgb * 2.0f - 1.0f; + D.w *= I.af.z; + H.w *= I.af.x; + + clip(D.w - (96.h / 255.h)); + float3 N = normalize(H.xyz); + + O = pack_gbuffer(float4(N, H.w), float4(I.position, 0.0f), float4(D.xyz, def_gloss)); +} diff --git a/gamedata/shaders/r2/lod.vs.hlsl b/gamedata/shaders/r2/lod.vs.hlsl new file mode 100644 index 0000000..ad3f863 --- /dev/null +++ b/gamedata/shaders/r2/lod.vs.hlsl @@ -0,0 +1,47 @@ +#include "common.hlsli" + +struct vv +{ + float3 pos0 : POSITION0; + float3 pos1 : POSITION1; + float3 n0 : NORMAL0; + float3 n1 : NORMAL1; + float2 tc0 : TEXCOORD0; + float2 tc1 : TEXCOORD1; + float4 rgbh0 : TEXCOORD2; // rgb.h + float4 rgbh1 : TEXCOORD3; // rgb.h + float4 sun_af : COLOR0; // x=sun_0, y=sun_1, z=alpha, w=factor +}; + +struct vf +{ + float4 hpos : POSITION; + float3 Pe : TEXCOORD0; + float2 tc0 : TEXCOORD1; // base0 + float2 tc1 : TEXCOORD2; // base1 + float4 af : COLOR1; // alpha&factor +}; + +#define L_SCALE (2.0h * 1.55h) +vf main(vv I) +{ + vf o; + + // lerp pos + float factor = I.sun_af.w; + float4 pos = float4(lerp(I.pos0, I.pos1, factor), 1); + + float h = lerp(I.rgbh0.w, I.rgbh1.w, factor) * L_SCALE; + + o.hpos = mul(m_VP, pos); // xform, input in world coords + o.Pe = mul(m_V, pos); + + // replicate TCs + o.tc0 = I.tc0; + o.tc1 = I.tc1; + + // calc normal & lighting + o.af = float4(h, h, I.sun_af.z, factor); + return o; +} +FXVS; diff --git a/gamedata/shaders/r2/mblur.hlsli b/gamedata/shaders/r2/mblur.hlsli new file mode 100644 index 0000000..1d99d7e --- /dev/null +++ b/gamedata/shaders/r2/mblur.hlsli @@ -0,0 +1,46 @@ +#ifndef MBLUR_H +#define MBLUR_H + +#ifndef USE_MBLUR +float3 mblur(float2 UV, float3 pos, float3 c_original) +{ + return c_original; +} +#else + #include "common.hlsli" + +uniform float4x4 m_current; +uniform float4x4 m_previous; +uniform float2 m_blur; // scale_x / 12, scale_y / 12 + + #define MBLUR_SAMPLES float(12.0f) + #define MBLUR_CLAMP float(0.001f) + +float3 mblur(float2 UV, float3 pos, float3 c_original) +{ + float4 pos4 = float4(pos, 1.0f); + + float4 p_current = mul(m_current, pos4); + float4 p_previous = mul(m_previous, pos4); + float2 p_velocity = m_blur * ((p_current.xy / p_current.w) - (p_previous.xy / p_previous.w)); + p_velocity = clamp(p_velocity, -MBLUR_CLAMP, +MBLUR_CLAMP); + + // For each sample, sum up each sample's color in "Blurred" and then divide + // to average the color after all the samples are added. + float3 blurred = c_original; + blurred += tex2D(s_image, p_velocity * 1.h + UV).rgb; + blurred += tex2D(s_image, p_velocity * 2.h + UV).rgb; + blurred += tex2D(s_image, p_velocity * 3.h + UV).rgb; + blurred += tex2D(s_image, p_velocity * 4.h + UV).rgb; + blurred += tex2D(s_image, p_velocity * 5.h + UV).rgb; + blurred += tex2D(s_image, p_velocity * 6.h + UV).rgb; + blurred += tex2D(s_image, p_velocity * 7.h + UV).rgb; + blurred += tex2D(s_image, p_velocity * 8.h + UV).rgb; + blurred += tex2D(s_image, p_velocity * 9.h + UV).rgb; + blurred += tex2D(s_image, p_velocity * 10.h + UV).rgb; + blurred += tex2D(s_image, p_velocity * 11.h + UV).rgb; + return blurred / MBLUR_SAMPLES; +} +#endif + +#endif diff --git a/gamedata/shaders/r2/model_clockarrow_h.ps.hlsl b/gamedata/shaders/r2/model_clockarrow_h.ps.hlsl new file mode 100644 index 0000000..017b8ff --- /dev/null +++ b/gamedata/shaders/r2/model_clockarrow_h.ps.hlsl @@ -0,0 +1,44 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +uniform float4 m_timearrow; +uniform float4 m_affects; + +float4 main ( v2p I ) : COLOR +{ + float2 coords = I.tc0; + float2 coords_new; + + // Rotate texture + float sin_a = m_timearrow.x; + float cos_a = m_timearrow.y; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = tex2D (s_base,coords_new); + float4 t_noise = tex2D (s_lmap,coords_new); + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + + t_base.rgb += t_noise.rgb*noise+0.1; + + return t_base; +} + diff --git a/gamedata/shaders/r2/model_clockarrow_m.ps.hlsl b/gamedata/shaders/r2/model_clockarrow_m.ps.hlsl new file mode 100644 index 0000000..7fdeb2d --- /dev/null +++ b/gamedata/shaders/r2/model_clockarrow_m.ps.hlsl @@ -0,0 +1,44 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +uniform float4 m_timearrow; +uniform float4 m_affects; + +float4 main ( v2p I ) : COLOR +{ + float2 coords = I.tc0; + float2 coords_new; + + // Rotate texture + float sin_a = m_timearrow.z; + float cos_a = m_timearrow.a; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = tex2D (s_base,coords_new); + float4 t_noise = tex2D (s_lmap,coords_new); + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + + t_base.rgb += t_noise.rgb*noise+0.1; + + return t_base; +} + diff --git a/gamedata/shaders/r2/model_clockarrow_s.ps.hlsl b/gamedata/shaders/r2/model_clockarrow_s.ps.hlsl new file mode 100644 index 0000000..4fd62dc --- /dev/null +++ b/gamedata/shaders/r2/model_clockarrow_s.ps.hlsl @@ -0,0 +1,44 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +uniform float4 m_timearrow2; +uniform float4 m_affects; + +float4 main ( v2p I ) : COLOR +{ + float2 coords = I.tc0; + float2 coords_new; + + // Rotate texture + float sin_a = m_timearrow2.x; + float cos_a = m_timearrow2.y; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = tex2D (s_base,coords_new); + float4 t_noise = tex2D (s_lmap,coords_new); + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + + t_base.rgb += t_noise.rgb*noise+0.1; + + return t_base; +} + diff --git a/gamedata/shaders/r2/model_compassarrow.ps.hlsl b/gamedata/shaders/r2/model_compassarrow.ps.hlsl new file mode 100644 index 0000000..2db2576 --- /dev/null +++ b/gamedata/shaders/r2/model_compassarrow.ps.hlsl @@ -0,0 +1,44 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; // sun.(fog*fog) +}; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +uniform float4 m_timearrow2; +uniform float4 m_affects; + +float4 main ( v2p I ) : COLOR +{ + float2 coords = I.tc0; + float2 coords_new; + + // Rotate texture + float sin_a = m_timearrow2.z; + float cos_a = m_timearrow2.a; + coords.x = coords.x-0.5; + coords.y = coords.y-0.5; + + coords_new.x = coords.x * cos_a + coords.y * sin_a; + coords_new.y = -coords.x * sin_a + coords.y * cos_a; + + coords_new.x = coords_new.x+0.5; + coords_new.y = coords_new.y+0.5; + + + float4 t_base = tex2D (s_base,coords_new); + float4 t_noise = tex2D (s_lmap,coords_new); + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + + t_base.rgb += t_noise.rgb*noise+0.1; + + return t_base; +} + diff --git a/gamedata/shaders/r2/model_compscreen.ps.hlsl b/gamedata/shaders/r2/model_compscreen.ps.hlsl new file mode 100644 index 0000000..b45f1a8 --- /dev/null +++ b/gamedata/shaders/r2/model_compscreen.ps.hlsl @@ -0,0 +1,52 @@ +#include "common.hlsli" +#include "sload.hlsli" + +uniform float4 m_affects; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +f_deffer main ( p_flat I ) +{ + f_deffer O; + + // diffuse + float3 D = tex2D(s_base, I.tcdh); // IN: rgb.a + +#ifdef USE_TDETAIL + D.rgb = 2*D.rgb*tex2D (s_detail, I.tcdbump).rgb; +#endif + + // hemi,sun,material + float ms = xmaterial ; +#ifdef USE_LM_HEMI + float4 lm = tex2D (s_hemi, I.lmh); +// float h = dot (lm.rgb,1.h/3.h); + float h = get_hemi(lm); +# ifdef USE_R2_STATIC_SUN +// ms = lm.w ; + ms = get_sun(lm); +# endif +#else + float h = I.position.w ; +# ifdef USE_R2_STATIC_SUN + ms = I.tcdh.w ; +# endif +#endif + + // ��� ��� ������� + float noise = get_noise(I.tcdh*timers.z) * m_affects.x * m_affects.x * 30; + + D.r += noise+0.1; + D.g += noise+0.1; + D.b += noise+0.1; + + // 2. Standart output + O.N = float4(normalize((float3)I.N.xyz), h); + O.P = float4(I.position.xyz + O.N.xyz*def_virtualh/2.0f, ms); + O.C = float4(D.rgb, def_gloss); // OUT: rgb.gloss + + return O; +} diff --git a/gamedata/shaders/r2/model_def_lplanes.vs.hlsl b/gamedata/shaders/r2/model_def_lplanes.vs.hlsl new file mode 100644 index 0000000..dd070cb --- /dev/null +++ b/gamedata/shaders/r2/model_def_lplanes.vs.hlsl @@ -0,0 +1,67 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul(m_WV, v.N)); + float fade = abs(dot(dir_v, norm_v)); + o.c0 = fade; + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/r2/model_def_lq.ps.hlsl b/gamedata/shaders/r2/model_def_lq.ps.hlsl new file mode 100644 index 0000000..5c39e22 --- /dev/null +++ b/gamedata/shaders/r2/model_def_lq.ps.hlsl @@ -0,0 +1,20 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // lmap + float3 c0 : COLOR0; // sun +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + + float3 light = I.c0; + float3 final = light * t_base * 2.0f; + + // out + return float4(final.r, final.g, final.b, t_base.a); +} diff --git a/gamedata/shaders/r2/model_def_lq.vs.hlsl b/gamedata/shaders/r2/model_def_lq.vs.hlsl new file mode 100644 index 0000000..93b67c3 --- /dev/null +++ b/gamedata/shaders/r2/model_def_lq.vs.hlsl @@ -0,0 +1,68 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float3 c0 : COLOR0; // color + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + float4 pos = v.P; + float3 pos_w = mul(m_W, pos); + float3 norm_w = normalize(mul(m_W, v.N)); + + o.hpos = mul(m_WVP, pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.c0 = calc_model_lq_lighting(norm_w); + o.fog = saturate(calc_fogging(float4(pos_w, 1))); // fog, input in world coords + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/r2/model_digiclock_hh.ps.hlsl b/gamedata/shaders/r2/model_digiclock_hh.ps.hlsl new file mode 100644 index 0000000..ddd5549 --- /dev/null +++ b/gamedata/shaders/r2/model_digiclock_hh.ps.hlsl @@ -0,0 +1,49 @@ +#include "common.hlsli" +#include "sload.hlsli" + +uniform float4 m_digiclock; +uniform float4 m_affects; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +f_deffer main ( p_flat I ) +{ + f_deffer O; + float digit = m_digiclock.x; + I.tcdh.x = digit + (I.tcdh.x * 0.1); + + // diffuse + float3 D = tex2D(s_base, I.tcdh); // IN: rgb.a + + // hemi,sun,material + float ms = xmaterial ; +#ifdef USE_LM_HEMI + float4 lm = tex2D (s_hemi, I.lmh); +// float h = dot (lm.rgb,1.h/3.h); + float h = get_hemi(lm); +# ifdef USE_R2_STATIC_SUN +// ms = lm.w ; + ms = get_sun(lm); +# endif +#else + float h = I.position.w ; +# ifdef USE_R2_STATIC_SUN + ms = I.tcdh.w ; +# endif +#endif + + float noise = get_noise(I.tcdh*timers.z) * m_affects.x * m_affects.x * 30; + float4 t_noise = tex2D (s_lmap,I.tcdh); + D.rgb += t_noise.rgb*noise+0.1; + + // 2. Standart output + O.N = float4 (normalize((float3)I.N.xyz), h ); + O.P = float4 (I.position.xyz + O.N.xyz*def_virtualh/2.0f, ms ); + O.C = float4 (D.rgb, def_gloss ); // OUT: rgb.gloss + + return O; +} + diff --git a/gamedata/shaders/r2/model_digiclock_hl.ps.hlsl b/gamedata/shaders/r2/model_digiclock_hl.ps.hlsl new file mode 100644 index 0000000..7290b94 --- /dev/null +++ b/gamedata/shaders/r2/model_digiclock_hl.ps.hlsl @@ -0,0 +1,49 @@ +#include "common.hlsli" +#include "sload.hlsli" + +uniform float4 m_digiclock; +uniform float4 m_affects; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +f_deffer main ( p_flat I ) +{ + f_deffer O; + float digit = m_digiclock.y; + I.tcdh.x = digit + (I.tcdh.x * 0.1); + + // diffuse + float3 D = tex2D(s_base, I.tcdh); // IN: rgb.a + + // hemi,sun,material + float ms = xmaterial ; +#ifdef USE_LM_HEMI + float4 lm = tex2D (s_hemi, I.lmh); +// float h = dot (lm.rgb,1.h/3.h); + float h = get_hemi(lm); +# ifdef USE_R2_STATIC_SUN +// ms = lm.w ; + ms = get_sun(lm); +# endif +#else + float h = I.position.w ; +# ifdef USE_R2_STATIC_SUN + ms = I.tcdh.w ; +# endif +#endif + + float noise = get_noise(I.tcdh*timers.z) * m_affects.x * m_affects.x * 30; + float4 t_noise = tex2D (s_lmap,I.tcdh); + D.rgb += t_noise.rgb*noise+0.1; + + // 2. Standart output + O.N = float4(normalize((float3)I.N.xyz), h ); + O.P = float4(I.position.xyz + O.N.xyz*def_virtualh/2.h, ms ); + O.C = float4(D.rgb, def_gloss ); // OUT: rgb.gloss + + return O; +} + diff --git a/gamedata/shaders/r2/model_digiclock_mh.ps.hlsl b/gamedata/shaders/r2/model_digiclock_mh.ps.hlsl new file mode 100644 index 0000000..44917ff --- /dev/null +++ b/gamedata/shaders/r2/model_digiclock_mh.ps.hlsl @@ -0,0 +1,49 @@ +#include "common.hlsli" +#include "sload.hlsli" + +uniform float4 m_digiclock; +uniform float4 m_affects; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +f_deffer main ( p_flat I ) +{ + f_deffer O; + float digit = m_digiclock.z; + I.tcdh.x = digit + (I.tcdh.x * 0.1); + + // diffuse + float3 D = tex2D(s_base, I.tcdh); // IN: rgb.a + + // hemi,sun,material + float ms = xmaterial ; +#ifdef USE_LM_HEMI + float4 lm = tex2D (s_hemi, I.lmh); +// float h = dot (lm.rgb,1.h/3.h); + float h = get_hemi(lm); +# ifdef USE_R2_STATIC_SUN +// ms = lm.w ; + ms = get_sun(lm); +# endif +#else + float h = I.position.w ; +# ifdef USE_R2_STATIC_SUN + ms = I.tcdh.w ; +# endif +#endif + + float noise = get_noise(I.tcdh*timers.z) * m_affects.x * m_affects.x * 30; + float4 t_noise = tex2D (s_lmap,I.tcdh); + D.rgb += t_noise.rgb*noise+0.1; + + // 2. Standart output + O.N = float4 (normalize((float3)I.N.xyz), h); + O.P = float4 (I.position.xyz + O.N.xyz*def_virtualh/2.0f, ms); + O.C = float4 (D.rgb, def_gloss); // OUT: rgb.gloss + + return O; +} + diff --git a/gamedata/shaders/r2/model_digiclock_ml.ps.hlsl b/gamedata/shaders/r2/model_digiclock_ml.ps.hlsl new file mode 100644 index 0000000..e6e9e7b --- /dev/null +++ b/gamedata/shaders/r2/model_digiclock_ml.ps.hlsl @@ -0,0 +1,49 @@ +#include "common.hlsli" +#include "sload.hlsli" + +uniform float4 m_digiclock; +uniform float4 m_affects; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +f_deffer main ( p_flat I ) +{ + f_deffer O; + float digit = m_digiclock.a; + I.tcdh.x = digit + (I.tcdh.x * 0.1); + + // diffuse + float3 D = tex2D(s_base, I.tcdh); // IN: rgb.a + + // hemi,sun,material + float ms = xmaterial ; +#ifdef USE_LM_HEMI + float4 lm = tex2D (s_hemi, I.lmh); +// float h = dot (lm.rgb,1.h/3.h); + float h = get_hemi(lm); +# ifdef USE_R2_STATIC_SUN +// ms = lm.w ; + ms = get_sun(lm); +# endif +#else + float h = I.position.w ; +# ifdef USE_R2_STATIC_SUN + ms = I.tcdh.w ; +# endif +#endif + + float noise = get_noise(I.tcdh*timers.z) * m_affects.x * m_affects.x * 30; + float4 t_noise = tex2D (s_lmap,I.tcdh); + D.rgb += t_noise.rgb*noise+0.1; + + // 2. Standart output + O.N = float4 (normalize((float3)I.N.xyz), h ); + O.P = float4 (I.position.xyz + O.N.xyz*def_virtualh/2.0f, ms ); + O.C = float4 (D.rgb, def_gloss ); // OUT: rgb.gloss + + return O; +} + diff --git a/gamedata/shaders/r2/model_distort.vs.hlsl b/gamedata/shaders/r2/model_distort.vs.hlsl new file mode 100644 index 0000000..9abf2c8 --- /dev/null +++ b/gamedata/shaders/r2/model_distort.vs.hlsl @@ -0,0 +1,67 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul(m_WV, v.N)); + float fade = 1 - abs(dot(dir_v, norm_v)); + o.c0 = fade; + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/r2/model_distort2t.vs.hlsl b/gamedata/shaders/r2/model_distort2t.vs.hlsl new file mode 100644 index 0000000..d00b4b7 --- /dev/null +++ b/gamedata/shaders/r2/model_distort2t.vs.hlsl @@ -0,0 +1,69 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // another + float4 c0 : COLOR0; // color +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul(m_WV, v.N)); + float fade = abs(dot(dir_v, norm_v)); + o.c0 = fade; + o.tc1 = fade; + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/r2/model_distort4ghost.vs.hlsl b/gamedata/shaders/r2/model_distort4ghost.vs.hlsl new file mode 100644 index 0000000..1eb2f37 --- /dev/null +++ b/gamedata/shaders/r2/model_distort4ghost.vs.hlsl @@ -0,0 +1,70 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.fog = saturate(calc_fogging(float4(mul(m_W, v.P), 1))); // fog, input in world coords + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul(m_WV, v.N)); + // float fade = 0.6*(abs (dot(dir_v,norm_v))); + float fade = 1.3 * (1 - abs(dot(dir_v, norm_v))); + o.c0 = fade; + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/r2/model_distort4glass.vs.hlsl b/gamedata/shaders/r2/model_distort4glass.vs.hlsl new file mode 100644 index 0000000..f24536e --- /dev/null +++ b/gamedata/shaders/r2/model_distort4glass.vs.hlsl @@ -0,0 +1,69 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.fog = saturate(calc_fogging(float4(mul(m_W, v.P), 1))); // fog, input in world coords + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul(m_WV, v.N)); + float fade = 0.9 * abs(dot(dir_v, norm_v)); + o.c0 = fade; + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/r2/model_distort_inv.vs.hlsl b/gamedata/shaders/r2/model_distort_inv.vs.hlsl new file mode 100644 index 0000000..dd070cb --- /dev/null +++ b/gamedata/shaders/r2/model_distort_inv.vs.hlsl @@ -0,0 +1,67 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // color +}; + +vf _main(v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + + // calculate fade + float3 dir_v = normalize(mul(m_WV, v.P)); + float3 norm_v = normalize(mul(m_WV, v.N)); + float fade = abs(dot(dir_v, norm_v)); + o.c0 = fade; + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/r2/model_env_lq.ps.hlsl b/gamedata/shaders/r2/model_env_lq.ps.hlsl new file mode 100644 index 0000000..e54d68e --- /dev/null +++ b/gamedata/shaders/r2/model_env_lq.ps.hlsl @@ -0,0 +1,24 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float3 tc1 : TEXCOORD1; // environment + float4 c0 : COLOR0; // sun.(fog*fog) +}; + +// Pixel +uniform samplerCUBE s_env; + +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float4 t_env = texCUBE(s_env, I.tc1); + + float3 base = lerp(t_env, t_base, t_base.a); + float3 light = I.c0; + float3 final = light * base * 2.0f; + + // out + return float4(final.r, final.g, final.b, t_base.a * I.c0.a); +} diff --git a/gamedata/shaders/r2/model_env_lq.vs.hlsl b/gamedata/shaders/r2/model_env_lq.vs.hlsl new file mode 100644 index 0000000..c218d89 --- /dev/null +++ b/gamedata/shaders/r2/model_env_lq.vs.hlsl @@ -0,0 +1,70 @@ +#include "common.hlsli" +#include "skin.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float3 tc1 : TEXCOORD1; // environment + float4 c0 : COLOR0; // sun.(fog*fog) + float fog : FOG; +}; + +vf _main(v_model v) +{ + vf o; + + float4 pos = v.P; + float3 pos_w = mul(m_W, pos); + float3 norm_w = normalize(mul(m_W, v.N)); + + o.hpos = mul(m_WVP, pos); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.tc1 = calc_reflection(pos_w, norm_w); + o.fog = saturate(calc_fogging(float4(pos_w, 1))); // fog, input in world coords + o.c0 = float4(calc_model_lq_lighting(norm_w), o.fog * o.fog); + + return o; +} + +#ifdef SKIN_NONE +vf main(v_model v) +{ + return _main(v); +} +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) +{ + return _main(skinning_0(v)); +} +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) +{ + return _main(skinning_1(v)); +} +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) +{ + return _main(skinning_2(v)); +} +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) +{ + return _main(skinning_3(v)); +} +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) +{ + return _main(skinning_4(v)); +} +#endif diff --git a/gamedata/shaders/r2/model_exohealth.ps.hlsl b/gamedata/shaders/r2/model_exohealth.ps.hlsl new file mode 100644 index 0000000..85df54d --- /dev/null +++ b/gamedata/shaders/r2/model_exohealth.ps.hlsl @@ -0,0 +1,46 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +// Pixel +uniform float4 m_actor_params; +uniform float4 m_affects; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + + +float4 main( v2p I ): COLOR +{ + // øèðîêàÿ ïîëîñêà èñêàæåíèé + float problems = cos( ( frac( timers.z * 4 ) - 0.5 ) * 3.1416 )*2 - 0.8; + float AMPL = 0.3; + I.tc0.y -= ( m_affects.x > 0.15 && I.tc0.x > problems-AMPL && I.tc0.x < problems+AMPL) ? cos(4.71*(I.tc0.x-problems)/AMPL) * sin( frac(timers.z)*6.2831*90 ) * (m_affects.x/10) * (AMPL-abs(I.tc0.x-problems))/AMPL : 0; + + float4 t_base = tex2D (s_base, I.tc0); + + float tmp = 1-m_actor_params.y; + tmp = clamp(tmp, 0, 0.5); + t_base.r +=tmp*t_base.a; + + tmp = 0.5-abs(m_actor_params.y-0.5); + tmp = clamp(tmp, 0, 0.5); + t_base.g +=tmp*t_base.a; + + + // Øóì ïðè âûáðîñå + float noise = get_noise(I.tc0*timers.z) * m_affects.x * 2; + t_base.r += noise; + t_base.g += noise; + t_base.b += noise; + + return float4 (t_base.r, t_base.g, t_base.b, 1); +} + diff --git a/gamedata/shaders/r2/model_exoscreen.ps.hlsl b/gamedata/shaders/r2/model_exoscreen.ps.hlsl new file mode 100644 index 0000000..db74530 --- /dev/null +++ b/gamedata/shaders/r2/model_exoscreen.ps.hlsl @@ -0,0 +1,31 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float2 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +// Pixel +uniform float4 m_affects; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + + +float4 main ( v2p I ) : COLOR +{ + float4 t_base = tex2D (s_base, I.tc0); + + // Øóì ïðè âûáðîñå + float noise = get_noise(I.tc0*timers.z) * m_affects.x * 2; + t_base.r += noise; + t_base.g += noise; + t_base.b += noise; + + return float4 (t_base.r, t_base.g, t_base.b, t_base.a*I.c0.a); +} + diff --git a/gamedata/shaders/r2/model_green_conditionbar.ps.hlsl b/gamedata/shaders/r2/model_green_conditionbar.ps.hlsl new file mode 100644 index 0000000..ddaff7d --- /dev/null +++ b/gamedata/shaders/r2/model_green_conditionbar.ps.hlsl @@ -0,0 +1,35 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +// Pixel +uniform float4 m_actor_params; +uniform float4 m_affects; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +float4 main ( v2p I ) : COLOR +{ + float4 t_base = tex2D (s_base, I.tc0); + + t_base.a = (I.tc0.x < m_actor_params.z) ? 1 : 0; + t_base.r += (0.5 < m_actor_params.z) ? 0 : 0.5; + t_base.g -= (0.25 < m_actor_params.z) ? 0 : 0.5; + + // Øóì ïðè âûáðîñå + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + t_base.r += noise; + t_base.g += noise; + t_base.b += noise; + + return float4 (t_base.r, t_base.g, t_base.b, t_base.a); +} + diff --git a/gamedata/shaders/r2/model_green_energybar.ps.hlsl b/gamedata/shaders/r2/model_green_energybar.ps.hlsl new file mode 100644 index 0000000..809c082 --- /dev/null +++ b/gamedata/shaders/r2/model_green_energybar.ps.hlsl @@ -0,0 +1,36 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +// Pixel +uniform float4 m_actor_params; +uniform float4 m_affects; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + + +float4 main ( v2p I ) : COLOR +{ + float4 t_base = tex2D (s_base, I.tc0); + + t_base.a = (I.tc0.x < m_actor_params.a) ? 1 : 0; + t_base.r += (0.1 < m_actor_params.a) ? 0 : 0.5; + t_base.g -= (0.1 < m_actor_params.a) ? 0 : 0.5; + + // Øóì ïðè âûáðîñå + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + t_base.r += noise; + t_base.g += noise; + t_base.b += noise; + + return float4 (t_base.r, t_base.g, t_base.b, t_base.a); +} + diff --git a/gamedata/shaders/r2/model_pda_screen.ps.hlsl b/gamedata/shaders/r2/model_pda_screen.ps.hlsl new file mode 100644 index 0000000..c655b27 --- /dev/null +++ b/gamedata/shaders/r2/model_pda_screen.ps.hlsl @@ -0,0 +1,58 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; + float4 c0: COLOR0; // sun.(fog*fog) +}; + +uniform sampler2D s_vp2; +uniform sampler2D s_load; +uniform float4 m_affects; + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +float4 problems_main( v2p I ) +{ + + // óçêàÿ ïîëîñêà èñêàæåíèé + float problems = frac(timers.z * 5*(1 + 2 * m_affects.x) ); + I.tc0.x+= ( m_affects.x > 0.09 && I.tc0.y > problems-0.01 && I.tc0.y < problems) ? sin((I.tc0.y-problems)*5*m_affects.y) : 0; + + // øèðîêàÿ ïîëîñêà èñêàæåíèé + problems = cos( ( frac( timers.z *2 ) - 0.5 ) * 3.1416 )*2 - 0.8; + float AMPL = 0.13; + I.tc0.x -= ( m_affects.x > 0.15 && I.tc0.y > problems-AMPL && I.tc0.y < problems+AMPL) ? cos(4.71*(I.tc0.y-problems)/AMPL) * sin( frac(timers.z)*6.2831*90 ) * 0.02 * (AMPL-abs(I.tc0.y-problems))/AMPL : 0; + + // òðÿñêà âëåâî-âïðàâî â ôèíàëüíîé ñòàäèè + I.tc0.x += ( m_affects.x > 0.38 ) ? (m_affects.y - 0.5) * 0.04 : 0; + + float4 t_vp2 = ( m_affects.x < 0.27 ) ? tex2D( s_vp2, I.tc0) : tex2D( s_base, I.tc0) ; // Èçîáðàæåíèå ñî âòîðîãî âüþïîðòà + + // øóì ïðè âûáðîñå + float noise = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 20; + t_vp2.r += noise; + t_vp2.g += noise; + t_vp2.b += noise; + + //îòêëþ÷åíèå ýêðàíà + t_vp2.rgb = (m_affects.x > 0.41) ? 0 : t_vp2.rgb; + + return float4 (t_vp2.r, t_vp2.g, t_vp2.b, 1); +} + +float4 loading_main( v2p I ) +{ + float4 t_load = tex2D( s_load, I.tc0); + return float4 (t_load.r, t_load.g, t_load.b, 1); +} + +float4 main ( v2p I ) : COLOR +{ + return (m_affects.a > 0 && m_affects.x >= 0.08 ) ? loading_main(I) : problems_main(I); +} + diff --git a/gamedata/shaders/r2/model_scope_gauss.ps.hlsl b/gamedata/shaders/r2/model_scope_gauss.ps.hlsl new file mode 100644 index 0000000..810aa6e --- /dev/null +++ b/gamedata/shaders/r2/model_scope_gauss.ps.hlsl @@ -0,0 +1,78 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +// Pixel +uniform float4 screen_res; +uniform float4 m_hud_params; +uniform float4 m_zoom_deviation; +uniform float4 m_affects; + +float resize(float input, float factor, float offset) +{ + return (input-0.5f+offset) / factor+0.5f-offset; +} + +float get_noise(float2 co) +{ + return (frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +uniform sampler2D s_vp2; + +float random(float2 co) +{ + return 0.5+(frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +float4 main ( v2p I ) : COLOR +{ + + float4 t_base = tex2D (s_base, I.tc0); // Òåêñòóðà ñåòêè + + //ñäâèã îò ñîñòîÿíèÿ îðóæèÿ + I.tc0.x = I.tc0.x+m_zoom_deviation.x; + I.tc0.y = I.tc0.y+m_zoom_deviation.y; + + // Ðàñòÿãèâàåì êàðòèíêó â ëèíçå òàê, ÷òîáû íà ëþáîì ðàçðåøåíèè ýêðàíà áûëè ïðàâèëüíûå ïðîïîðöèè + I.tc0.x = resize(I.tc0.x, screen_res.x/screen_res.y, 0); + float4 t_vp2 = tex2D (s_vp2, I.tc0); // Èçîáðàæåíèå ñî âòîðîãî âüþïîðòà + float3 final = float3(0, 0, 0); + + //Àááåðàöèÿ + float2 offset = distance(I.tc0, float2( .5f, .5f ))*float2(m_hud_params.z, m_hud_params.z); + t_vp2.r = tex2D ( s_vp2, I.tc0+offset).r; + t_vp2.b = tex2D ( s_vp2, I.tc0-offset).b; + + //Íî÷íîé ðåæèì + + // Ðàññ÷èòûâàåì ñëó÷àéíûé øóì ïèêñåëÿ + float noise = random(I.tc0*timers.z) * m_zoom_deviation.w; + + float gray = ((t_vp2.r + t_vp2.g + t_vp2.b))*m_zoom_deviation.z*7; + t_vp2.r = t_vp2.r*(1-m_zoom_deviation.z) + gray; + t_vp2.g = t_vp2.g*(1-m_zoom_deviation.z) + gray; + t_vp2.b = t_vp2.b*(1-m_zoom_deviation.z) + gray; + + t_vp2.b+= (0.4 + noise)*m_zoom_deviation.z; + + // Øóì ïðè âûáðîñå + float noise_blow = get_noise(I.tc0*timers.z) * m_affects.x * m_affects.x * 30; + t_vp2.r += noise_blow; + t_vp2.g += noise_blow; + t_vp2.b += noise_blow; + + // Ìèêñóåì ñ ñåòêîé + final = lerp (t_vp2, t_base, t_base.a); + + + // out + return float4 (final.r, final.g, final.b, min(m_hud_params.y, m_hud_params.a)); +} diff --git a/gamedata/shaders/r2/model_scope_lense.ps.hlsl b/gamedata/shaders/r2/model_scope_lense.ps.hlsl new file mode 100644 index 0000000..9a8fcff --- /dev/null +++ b/gamedata/shaders/r2/model_scope_lense.ps.hlsl @@ -0,0 +1,69 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float resize(float input, float factor, float offset) +{ + return (input-0.5f+offset) / factor+0.5f-offset; +} + +// Pixel +uniform float4 screen_res; +uniform float4 m_hud_params; +uniform float4 m_zoom_deviation; + +uniform sampler2D s_vp2; +//uniform sampler2D s_skymap; + +//uniform samplerCUBE s_env0; +//uniform samplerCUBE s_env1; + +float random(float2 co) +{ + return 0.5+(frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453))*0.5; +}; + +float4 main ( v2p I ) : COLOR +{ + + float4 t_base = tex2D (s_base, I.tc0); // Òåêñòóðà ñåòêè + // float4 t_skymap = tex2D (s_skymap, I.tc0); // Êàðòà îòðàæåíèÿ íåáà + + //ñäâèã îò ñîñòîÿíèÿ îðóæèÿ + I.tc0.x = I.tc0.x+m_zoom_deviation.x; + I.tc0.y = I.tc0.y+m_zoom_deviation.y; + + // Ðàñòÿãèâàåì êàðòèíêó â ëèíçå òàê, ÷òîáû íà ëþáîì ðàçðåøåíèè ýêðàíà áûëè ïðàâèëüíûå ïðîïîðöèè + I.tc0.x = resize(I.tc0.x, screen_res.x/screen_res.y, 0); + float4 t_vp2 = tex2D (s_vp2, I.tc0); // Èçîáðàæåíèå ñî âòîðîãî âüþïîðòà + + float2 offset = distance(I.tc0, float2( .5f, .5f ))*float2(m_hud_params.z, m_hud_params.z); + + t_vp2.r = tex2D ( s_vp2, I.tc0+offset).r; + t_vp2.b = tex2D ( s_vp2, I.tc0-offset).b; + + float3 final = float3(0, 0, 0); + + { //Ñòàíäàðòíûé ðåæèì + + // Òåêóùàÿ è ñëåäóþùàÿ òåêñòóðà íåáà + //float3 env0 = texCUBE (s_env0, I.tc1); + //float3 env1 = texCUBE (s_env1, I.tc1); + //float3 env = lerp (env0, env1, L_ambient.w); // Èõ ìèêñîâêà + + // Ìèêñóåì âñ¸ è ñîáèðàåì ôèíàëüíóþ êàðòèíêó + float3 base = lerp (t_vp2, t_base, t_base.a); // Ñåòêó ñ âüþïîðòîì + final = base; + // final = lerp (base, env, t_skymap.a); // base c íåáîì + } + + // out + return float4 (final.r, final.g, final.b, min(m_hud_params.y, m_hud_params.a)); +} diff --git a/gamedata/shaders/r2/model_scope_lense.vs.hlsl b/gamedata/shaders/r2/model_scope_lense.vs.hlsl new file mode 100644 index 0000000..344b403 --- /dev/null +++ b/gamedata/shaders/r2/model_scope_lense.vs.hlsl @@ -0,0 +1,55 @@ +#include "common.hlsli" +#include "skin.hlsli" + +float4 proj_to_screen(float4 proj) +{ + float4 screen = proj; + screen.x = (proj.x + proj.w); + screen.y = (proj.w - proj.y); + screen.xy *= 0.5; + return screen; +} + + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; // base + float4 tc1 : TEXCOORD1; // screen coords +}; + +vf _main (v_model v) +{ + vf o; + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.tc0 = v.tc.xy; // copy tc + o.tc1 = proj_to_screen(o.hpos); + o.tc1.xy /= o.tc1.w; + + return o; +} + +///////////////////////////////////////////////////////////////////////// +#ifdef SKIN_NONE +vf main(v_model v) { return _main(v); } +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) { return _main(skinning_0(v)); } +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) { return _main(skinning_1(v)); } +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) { return _main(skinning_2(v)); } +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) { return _main(skinning_3(v)); } +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) { return _main(skinning_4(v)); } +#endif diff --git a/gamedata/shaders/r2/model_scope_lense_lerp.ps.hlsl b/gamedata/shaders/r2/model_scope_lense_lerp.ps.hlsl new file mode 100644 index 0000000..adac13f --- /dev/null +++ b/gamedata/shaders/r2/model_scope_lense_lerp.ps.hlsl @@ -0,0 +1,54 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float resize(float input, float factor, float offset) +{ + return (input-0.5f+offset) / factor+0.5f-offset; +} + +// Pixel +uniform float4 screen_res; +uniform float4 m_hud_params; +uniform float4 m_zoom_deviation; + +uniform sampler2D s_vp2; + +float4 main ( v2p I ) : COLOR +{ + // Ïðîèçâîäèì âûáîðêó ïðàâîé è ëåâîé ïîëîâèí òåêñòóðû ñ ñåòêîé + float2 coords = I.tc0; + coords.x *= 0.5; + float4 base2 = tex2D(s_base, coords); + coords.x += 0.5; + float4 t_base = tex2D(s_base, coords); + // Ìèêñóåì ïîëîâèíêè â ñîîòâåòñòâèè ñ òåêóùèì óðîâíåì ïîäñâåòêè + t_base = lerp(base2, t_base, m_zoom_deviation.z); + + //ñäâèã îò ñîñòîÿíèÿ îðóæèÿ + I.tc0.x = I.tc0.x+m_zoom_deviation.x; + I.tc0.y = I.tc0.y+m_zoom_deviation.y; + + // Ðàñòÿãèâàåì êàðòèíêó â ëèíçå òàê, ÷òîáû íà ëþáîì ðàçðåøåíèè ýêðàíà áûëè ïðàâèëüíûå ïðîïîðöèè + I.tc0.x = resize(I.tc0.x, screen_res.x/screen_res.y, 0); + float4 t_vp2 = tex2D(s_vp2, I.tc0); + + float2 offset = distance(I.tc0, float2( .5f, .5f )) * float2(m_hud_params.z, m_hud_params.z); + + // Àááåðàöèÿ + t_vp2.r = tex2D( s_vp2, I.tc0+offset).r; + t_vp2.b = tex2D( s_vp2, I.tc0-offset).b; + + // Ìèêñóåì âñ¸ è ñîáèðàåì ôèíàëüíóþ êàðòèíêó + float3 final = lerp(t_vp2, t_base, t_base.a); + + // out + return float4(final.r, final.g, final.b, min(m_hud_params.y, m_hud_params.a)); +} diff --git a/gamedata/shaders/r2/model_scope_lense_night.ps.hlsl b/gamedata/shaders/r2/model_scope_lense_night.ps.hlsl new file mode 100644 index 0000000..9e14d63 --- /dev/null +++ b/gamedata/shaders/r2/model_scope_lense_night.ps.hlsl @@ -0,0 +1,45 @@ +#include "common.hlsli" +#include "pnv.hlsli" + + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +////////////////////////////////////////////////////////////////////////////////////////// + +float resize(float input, float factor, float offset) +{ + return (input-0.5f+offset) / factor+0.5f-offset; +} + +// Pixel +uniform float4 m_hud_params; +uniform sampler2D s_vp2; + +float4 main ( v2p I ) : COLOR +{ + + float4 t_base = tex2D (s_base, I.tc0); // Òåêñòóðà ñåòêè + + //ñäâèã îò ñîñòîÿíèÿ îðóæèÿ + I.tc0.x = I.tc0.x+m_zoom_deviation.x; + I.tc0.y = I.tc0.y+m_zoom_deviation.y; + + // Ðàñòÿãèâàåì êàðòèíêó â ëèíçå òàê, ÷òîáû íà ëþáîì ðàçðåøåíèè ýêðàíà áûëè ïðàâèëüíûå ïðîïîðöèè + I.tc0.x = resize(I.tc0.x, screen_res.x/screen_res.y, 0); + + float4 t_vp2 = tex2D (s_vp2, I.tc0); // Èçîáðàæåíèå ñî âòîðîãî âüþïîðòà + float3 final = float3(0, 0, 0); + + //** Íî÷íîé ðåæèì **// //Çåëåíûé ÏÍ + t_vp2.rgb = calc_night_vision_effect(I.tc0, t_vp2, float3(1.0, 2.0, 1.0)); + // Ìèêñóåì ñ ñåòêîé + final = lerp (t_vp2, t_base, t_base.a); + + // out + return float4 (final.r, final.g, final.b, min(m_hud_params.y, m_hud_params.a)); +} diff --git a/gamedata/shaders/r2/model_tricolor_conditionbar.ps.hlsl b/gamedata/shaders/r2/model_tricolor_conditionbar.ps.hlsl new file mode 100644 index 0000000..e3f6e9c --- /dev/null +++ b/gamedata/shaders/r2/model_tricolor_conditionbar.ps.hlsl @@ -0,0 +1,24 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0: TEXCOORD0; // base + float3 tc1: TEXCOORD1; // environment + float4 c0: COLOR0; // sun.(fog*fog) +}; + +// Pixel +uniform float4 m_actor_params; + + +float4 main ( v2p I ) : COLOR +{ + float4 t_base; + t_base.r = ((m_actor_params.z<0.5) && (I.tc0.x < m_actor_params.z)) ? 1 : 0; + t_base.g = ((m_actor_params.z>0.25) && (I.tc0.x < m_actor_params.z)) ? 1 : 0; + t_base.b = 0; + t_base.a = (I.tc0.x < m_actor_params.z) ? 1 : 0; + + return float4 (t_base.r, t_base.g, t_base.b, t_base.a); +} + diff --git a/gamedata/shaders/r2/models_clockarrow_h.lua b/gamedata/shaders/r2/models_clockarrow_h.lua new file mode 100644 index 0000000..ba86942 --- /dev/null +++ b/gamedata/shaders/r2/models_clockarrow_h.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_clockarrow_h") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base"):texture(t_base) + shader:sampler ("s_lmap"):texture("$blackalpha") +end diff --git a/gamedata/shaders/r2/models_clockarrow_h_screen.lua b/gamedata/shaders/r2/models_clockarrow_h_screen.lua new file mode 100644 index 0000000..8a7e6a0 --- /dev/null +++ b/gamedata/shaders/r2/models_clockarrow_h_screen.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_clockarrow_h") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base"):texture(t_base) + shader:sampler ("s_lmap"):texture("$alphadxt1") +end diff --git a/gamedata/shaders/r2/models_clockarrow_m.lua b/gamedata/shaders/r2/models_clockarrow_m.lua new file mode 100644 index 0000000..ced7490 --- /dev/null +++ b/gamedata/shaders/r2/models_clockarrow_m.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_clockarrow_m") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base"):texture(t_base) + shader:sampler ("s_lmap"):texture("$blackalpha") +end diff --git a/gamedata/shaders/r2/models_clockarrow_m_screen.lua b/gamedata/shaders/r2/models_clockarrow_m_screen.lua new file mode 100644 index 0000000..950a065 --- /dev/null +++ b/gamedata/shaders/r2/models_clockarrow_m_screen.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_clockarrow_m") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base"):texture(t_base) + shader:sampler ("s_lmap"):texture("$alphadxt1") +end diff --git a/gamedata/shaders/r2/models_clockarrow_s.lua b/gamedata/shaders/r2/models_clockarrow_s.lua new file mode 100644 index 0000000..93b9ba7 --- /dev/null +++ b/gamedata/shaders/r2/models_clockarrow_s.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_clockarrow_s") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base"):texture(t_base) + shader:sampler ("s_lmap"):texture("$blackalpha") +end diff --git a/gamedata/shaders/r2/models_clockarrow_s_screen.lua b/gamedata/shaders/r2/models_clockarrow_s_screen.lua new file mode 100644 index 0000000..de9a2f2 --- /dev/null +++ b/gamedata/shaders/r2/models_clockarrow_s_screen.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_clockarrow_s") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base"):texture(t_base) + shader:sampler ("s_lmap"):texture("$alphadxt1") +end diff --git a/gamedata/shaders/r2/models_collimator.lua b/gamedata/shaders/r2/models_collimator.lua new file mode 100644 index 0000000..88d1083 --- /dev/null +++ b/gamedata/shaders/r2/models_collimator.lua @@ -0,0 +1,10 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_def_lplanes", "base_lplanes_fft") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/gamedata/shaders/r2/models_collimsight.lua b/gamedata/shaders/r2/models_collimsight.lua new file mode 100644 index 0000000..e9a8b70 --- /dev/null +++ b/gamedata/shaders/r2/models_collimsight.lua @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_def_lplanes","base_lplanes") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/gamedata/shaders/r2/models_compass_arrow.lua b/gamedata/shaders/r2/models_compass_arrow.lua new file mode 100644 index 0000000..455b51e --- /dev/null +++ b/gamedata/shaders/r2/models_compass_arrow.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_compassarrow") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base"):texture(t_base) + shader:sampler ("s_lmap"):texture("$blackalpha") +end diff --git a/gamedata/shaders/r2/models_compass_arrow_screen.lua b/gamedata/shaders/r2/models_compass_arrow_screen.lua new file mode 100644 index 0000000..6d0b72c --- /dev/null +++ b/gamedata/shaders/r2/models_compass_arrow_screen.lua @@ -0,0 +1,12 @@ +function normal (shader, t_base, t_second, t_detail) + + shader:begin ("model_env_lq","model_compassarrow") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base"):texture(t_base) + shader:sampler ("s_lmap"):texture("$alphadxt1") +end diff --git a/gamedata/shaders/r2/models_compscreen.lua b/gamedata/shaders/r2/models_compscreen.lua new file mode 100644 index 0000000..f2b8018 --- /dev/null +++ b/gamedata/shaders/r2/models_compscreen.lua @@ -0,0 +1,13 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("deffer_model","model_compscreen") + : fog (false) + : emissive (true) + shader:sampler ("s_base") :texture (t_base) +end + +function l_special (shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + : zb (true,false) + : fog (false) + : emissive (true) +end diff --git a/gamedata/shaders/r2/models_condition.lua b/gamedata/shaders/r2/models_condition.lua new file mode 100644 index 0000000..3e6c5c9 --- /dev/null +++ b/gamedata/shaders/r2/models_condition.lua @@ -0,0 +1,13 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_env_lq","model_green_conditionbar") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/gamedata/shaders/r2/models_digiclock_hh_screen.lua b/gamedata/shaders/r2/models_digiclock_hh_screen.lua new file mode 100644 index 0000000..c3af912 --- /dev/null +++ b/gamedata/shaders/r2/models_digiclock_hh_screen.lua @@ -0,0 +1,14 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("deffer_model","model_digiclock_hh") + : fog (false) + : emissive (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture("$alphadxt1") +end + +function l_special (shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + : zb (true,false) + : fog (false) + : emissive (true) +end diff --git a/gamedata/shaders/r2/models_digiclock_hl_screen.lua b/gamedata/shaders/r2/models_digiclock_hl_screen.lua new file mode 100644 index 0000000..d19b948 --- /dev/null +++ b/gamedata/shaders/r2/models_digiclock_hl_screen.lua @@ -0,0 +1,14 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("deffer_model","model_digiclock_hl") + : fog (false) + : emissive (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture("$alphadxt1") +end + +function l_special (shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + : zb (true,false) + : fog (false) + : emissive (true) +end diff --git a/gamedata/shaders/r2/models_digiclock_mh_screen.lua b/gamedata/shaders/r2/models_digiclock_mh_screen.lua new file mode 100644 index 0000000..badf9df --- /dev/null +++ b/gamedata/shaders/r2/models_digiclock_mh_screen.lua @@ -0,0 +1,14 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("deffer_model","model_digiclock_mh") + : fog (false) + : emissive (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture("$alphadxt1") +end + +function l_special (shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + : zb (true,false) + : fog (false) + : emissive (true) +end diff --git a/gamedata/shaders/r2/models_digiclock_ml_screen.lua b/gamedata/shaders/r2/models_digiclock_ml_screen.lua new file mode 100644 index 0000000..f25e71b --- /dev/null +++ b/gamedata/shaders/r2/models_digiclock_ml_screen.lua @@ -0,0 +1,14 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("deffer_model","model_digiclock_ml") + : fog (false) + : emissive (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_lmap"):texture("$alphadxt1") +end + +function l_special (shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissive") + : zb (true,false) + : fog (false) + : emissive (true) +end diff --git a/gamedata/shaders/r2/models_energy_gauss.lua b/gamedata/shaders/r2/models_energy_gauss.lua new file mode 100644 index 0000000..64a5e49 --- /dev/null +++ b/gamedata/shaders/r2/models_energy_gauss.lua @@ -0,0 +1,13 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_env_lq","model_green_energybar") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/gamedata/shaders/r2/models_exohealth.lua b/gamedata/shaders/r2/models_exohealth.lua new file mode 100644 index 0000000..c576140 --- /dev/null +++ b/gamedata/shaders/r2/models_exohealth.lua @@ -0,0 +1,13 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_env_lq","model_exohealth") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/gamedata/shaders/r2/models_exoscreen01.lua b/gamedata/shaders/r2/models_exoscreen01.lua new file mode 100644 index 0000000..3a7ec7f --- /dev/null +++ b/gamedata/shaders/r2/models_exoscreen01.lua @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_def_lplanes","model_exoscreen") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + shader:sampler ("s_base") :texture (t_base) +end \ No newline at end of file diff --git a/gamedata/shaders/r2/models_laserray.lua b/gamedata/shaders/r2/models_laserray.lua new file mode 100644 index 0000000..e9a8b70 --- /dev/null +++ b/gamedata/shaders/r2/models_laserray.lua @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_def_lplanes","base_lplanes") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/gamedata/shaders/r2/models_lense_scope.lua b/gamedata/shaders/r2/models_lense_scope.lua new file mode 100644 index 0000000..40641b5 --- /dev/null +++ b/gamedata/shaders/r2/models_lense_scope.lua @@ -0,0 +1,11 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_scope_lense","model_scope_lense") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (false,0) + : sorting (2,true) + : distort (false) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_vp2") :texture ("$user$viewport2") +end diff --git a/gamedata/shaders/r2/models_lfo_light_dot_weapons.lua b/gamedata/shaders/r2/models_lfo_light_dot_weapons.lua new file mode 100644 index 0000000..6dada58 --- /dev/null +++ b/gamedata/shaders/r2/models_lfo_light_dot_weapons.lua @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("parallax_mark", "parallax_mark") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + shader:sampler ("s_base") :texture (t_base) : clamp() +end diff --git a/gamedata/shaders/r2/models_lightplanes.lua b/gamedata/shaders/r2/models_lightplanes.lua new file mode 100644 index 0000000..523d706 --- /dev/null +++ b/gamedata/shaders/r2/models_lightplanes.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_def_lplanes", "base_lplanes") + :fog(false) + :zb(true, false) + :blend(true, blend.srcalpha, blend.one) + :aref(true, 0) + :sorting(2, true) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/models_metallreflect.lua b/gamedata/shaders/r2/models_metallreflect.lua new file mode 100644 index 0000000..f3b7e73 --- /dev/null +++ b/gamedata/shaders/r2/models_metallreflect.lua @@ -0,0 +1,44 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort4ghost", "particle") -- particle_alphaonly + :sorting(3, true) + :blend(true, blend.srccolor, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(false) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4ghost", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass") --:texture (t_base) -- ("pfx\\pfx_dist_glass2") +end + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_def_lplanes", "base_lplanes") + :fog(false) + :zb(true, false) + :blend(true, blend.srccolor, blend.one) + :aref(true, 0) + :sorting(2, true) + shader:sampler("s_base"):texture(t_base) +end + +--[[ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_env_lq","model_env_lq") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (3,true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_env") :texture ("sky\\sky_5_cube") : clamp() +end +]] diff --git a/gamedata/shaders/r2/models_pautina.lua b/gamedata/shaders/r2/models_pautina.lua new file mode 100644 index 0000000..4299271 --- /dev/null +++ b/gamedata/shaders/r2/models_pautina.lua @@ -0,0 +1,31 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort4ghost", "particle") -- particle_alphaonly + :sorting(3, true) + :blend(true, blend.srccolor, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(false) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4ghost", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass") --:texture (t_base) -- ("pfx\\pfx_dist_glass2") +end + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_def_lplanes", "base_lplanes") + :fog(false) + :zb(true, false) + :blend(true, blend.srccolor, blend.one) + :aref(true, 0) + :sorting(2, true) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/models_pda.lua b/gamedata/shaders/r2/models_pda.lua new file mode 100644 index 0000000..073dafe --- /dev/null +++ b/gamedata/shaders/r2/models_pda.lua @@ -0,0 +1,14 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:sampler("s_base"):texture("$user$ui_pda") +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) + shader:sampler("s_base"):texture("$user$ui_pda") +end diff --git a/gamedata/shaders/r2/models_reflex_reticle.lua b/gamedata/shaders/r2/models_reflex_reticle.lua new file mode 100644 index 0000000..6dada58 --- /dev/null +++ b/gamedata/shaders/r2/models_reflex_reticle.lua @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("parallax_mark", "parallax_mark") + : fog (false) + : zb (true,false) + : blend (true,blend.srcalpha,blend.one) + : aref (true,0) + : sorting (2, true) + shader:sampler ("s_base") :texture (t_base) : clamp() +end diff --git a/gamedata/shaders/r2/models_selflight.lua b/gamedata/shaders/r2/models_selflight.lua new file mode 100644 index 0000000..bc68fa4 --- /dev/null +++ b/gamedata/shaders/r2/models_selflight.lua @@ -0,0 +1,13 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissive") + :zb(true, false) + :fog(false) + :emissive(true) +end diff --git a/gamedata/shaders/r2/models_selflight_det.lua b/gamedata/shaders/r2/models_selflight_det.lua new file mode 100644 index 0000000..a436141 --- /dev/null +++ b/gamedata/shaders/r2/models_selflight_det.lua @@ -0,0 +1,13 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) +end diff --git a/gamedata/shaders/r2/models_selflightl.lua b/gamedata/shaders/r2/models_selflightl.lua new file mode 100644 index 0000000..a436141 --- /dev/null +++ b/gamedata/shaders/r2/models_selflightl.lua @@ -0,0 +1,13 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "deffer_base") + :fog(false) + :emissive(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_model", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) +end diff --git a/gamedata/shaders/r2/models_xanomaly.lua b/gamedata/shaders/r2/models_xanomaly.lua new file mode 100644 index 0000000..c8fe710 --- /dev/null +++ b/gamedata/shaders/r2/models_xanomaly.lua @@ -0,0 +1,21 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, true) + :fog(false) + :distort(false) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, true) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass3") +end diff --git a/gamedata/shaders/r2/models_xdistort.lua b/gamedata/shaders/r2/models_xdistort.lua new file mode 100644 index 0000000..fdff2c5 --- /dev/null +++ b/gamedata/shaders/r2/models_xdistort.lua @@ -0,0 +1,21 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_alphaonly") -- particle_alphaonly + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort") + :sorting(3, false) + :blend(true, blend.srccolor, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r2/models_xdistortcolor.lua b/gamedata/shaders/r2/models_xdistortcolor.lua new file mode 100644 index 0000000..ecf867a --- /dev/null +++ b/gamedata/shaders/r2/models_xdistortcolor.lua @@ -0,0 +1,21 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle") -- particle_alphaonly + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort") + :sorting(3, false) + :blend(true, blend.srccolor, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r2/models_xdistortcolorl.lua b/gamedata/shaders/r2/models_xdistortcolorl.lua new file mode 100644 index 0000000..a707b46 --- /dev/null +++ b/gamedata/shaders/r2/models_xdistortcolorl.lua @@ -0,0 +1,21 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle") -- particle_alphaonly + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r2/models_xdistortcolorlinv.lua b/gamedata/shaders/r2/models_xdistortcolorlinv.lua new file mode 100644 index 0000000..3c55b1b --- /dev/null +++ b/gamedata/shaders/r2/models_xdistortcolorlinv.lua @@ -0,0 +1,21 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort_inv", "particle") + :sorting(2, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort", "particle_distort") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r2/models_xdistortinv.lua b/gamedata/shaders/r2/models_xdistortinv.lua new file mode 100644 index 0000000..d060712 --- /dev/null +++ b/gamedata/shaders/r2/models_xdistortinv.lua @@ -0,0 +1,21 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_distort_inv", "particle_alphaonly") -- particle_alphaonly + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort_inv", "particle_distort") + :sorting(3, false) + :blend(true, blend.srccolor, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" +end diff --git a/gamedata/shaders/r2/models_xglass.lua b/gamedata/shaders/r2/models_xglass.lua new file mode 100644 index 0000000..e938f72 --- /dev/null +++ b/gamedata/shaders/r2/models_xglass.lua @@ -0,0 +1,22 @@ +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass2") +end + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_env_lq", "model_env_lq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() +end diff --git a/gamedata/shaders/r2/models_xglass2.lua b/gamedata/shaders/r2/models_xglass2.lua new file mode 100644 index 0000000..aa92a27 --- /dev/null +++ b/gamedata/shaders/r2/models_xglass2.lua @@ -0,0 +1,39 @@ +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass3") +end + +--[[ +function normal_hq(shader, t_base, t_second, t_detail) + shader:begin ("model_env_hq","model_env_hq") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (3,true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_env") :texture ("sky\\sky_5_cube") : clamp() + shader:sampler ("s_lmap") :texture ("$user$projector") + : clamp () + : f_linear () + : project (true) +end +]] + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_env_lq", "model_env_lq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() +end diff --git a/gamedata/shaders/r2/models_xlens.lua b/gamedata/shaders/r2/models_xlens.lua new file mode 100644 index 0000000..5e5022a --- /dev/null +++ b/gamedata/shaders/r2/models_xlens.lua @@ -0,0 +1,39 @@ +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture("pfx\\pfx_dist_lens_base") --(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_lens") +end + +--[[ +function normal_hq(shader, t_base, t_second, t_detail) + shader:begin ("model_env_hq","model_env_hq") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (3,true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_env") :texture ("sky\\sky_5_cube") : clamp() + shader:sampler ("s_lmap") :texture ("$user$projector") + : clamp () + : f_linear () + : project (true) +end +]] + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_env_lq", "model_env_lq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() +end diff --git a/gamedata/shaders/r2/models_xmonolith.lua b/gamedata/shaders/r2/models_xmonolith.lua new file mode 100644 index 0000000..7a048d5 --- /dev/null +++ b/gamedata/shaders/r2/models_xmonolith.lua @@ -0,0 +1,38 @@ +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass4") +end + +--[[ +function normal_hq(shader, t_base, t_second, t_detail) + shader:begin ("model_env_hq","model_env_hq") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (3,true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_env") :texture ("sky\\sky_5_cube") : clamp() + shader:sampler ("s_lmap") :texture ("$user$projector") + : clamp () + : f_linear () + : project (true) +end +]] + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_env_lq", "model_env_lq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() +end diff --git a/gamedata/shaders/r2/models_xwindows.lua b/gamedata/shaders/r2/models_xwindows.lua new file mode 100644 index 0000000..a048dc1 --- /dev/null +++ b/gamedata/shaders/r2/models_xwindows.lua @@ -0,0 +1,38 @@ +function l_special(shader, t_base, t_second, t_detail) + shader:begin("model_distort4glass", "particle_distort") + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture("pfx\\pfx_dist_glass") +end + +--[[ +function normal_hq(shader, t_base, t_second, t_detail) + shader:begin ("model_env_hq","model_env_hq") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (3,true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_env") :texture ("sky\\sky_5_cube") : clamp() + shader:sampler ("s_lmap") :texture ("$user$projector") + : clamp () + : f_linear () + : project (true) +end +]] + +function normal(shader, t_base, t_second, t_detail) + shader:begin("model_env_lq", "model_env_lq") + :fog(true) + :zb(true, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :aref(true, 0) + :sorting(3, true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_env"):texture("sky\\sky_5_cube"):clamp() +end diff --git a/gamedata/shaders/r2/models_zoom.lua b/gamedata/shaders/r2/models_zoom.lua new file mode 100644 index 0000000..3b8b24e --- /dev/null +++ b/gamedata/shaders/r2/models_zoom.lua @@ -0,0 +1,16 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_env_lq","model_scope_lense") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_vp2") :texture ("$user$scope") +-- shader:sampler ("s_env0") :texture (tex_env0) : clamp() +-- shader:sampler ("s_env1") :texture (tex_env1) : clamp() +end diff --git a/gamedata/shaders/r2/models_zoom_gauss.lua b/gamedata/shaders/r2/models_zoom_gauss.lua new file mode 100644 index 0000000..9c22661 --- /dev/null +++ b/gamedata/shaders/r2/models_zoom_gauss.lua @@ -0,0 +1,16 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_env_lq","model_scope_gauss") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_vp2") :texture ("$user$scopeui") +-- shader:sampler ("s_env0") :texture (tex_env0) : clamp() +-- shader:sampler ("s_env1") :texture (tex_env1) : clamp() +end diff --git a/gamedata/shaders/r2/models_zoom_lerp.lua b/gamedata/shaders/r2/models_zoom_lerp.lua new file mode 100644 index 0000000..cd24d91 --- /dev/null +++ b/gamedata/shaders/r2/models_zoom_lerp.lua @@ -0,0 +1,16 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_env_lq","model_scope_lense_lerp") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_vp2") :texture ("$user$scope") +-- shader:sampler ("s_env0") :texture (tex_env0) : clamp() +-- shader:sampler ("s_env1") :texture (tex_env1) : clamp() +end diff --git a/gamedata/shaders/r2/models_zoomnight.lua b/gamedata/shaders/r2/models_zoomnight.lua new file mode 100644 index 0000000..d9660f1 --- /dev/null +++ b/gamedata/shaders/r2/models_zoomnight.lua @@ -0,0 +1,16 @@ +local tex_env0 = "$user$sky0" +local tex_env1 = "$user$sky1" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_env_lq","model_scope_lense_night") + : fog (true) + : zb (true,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (2,true) + : distort (true) + shader:sampler ("s_base") :texture (t_base) + shader:sampler ("s_vp2") :texture ("$user$scope") +-- shader:sampler ("s_env0") :texture (tex_env0) : clamp() +-- shader:sampler ("s_env1") :texture (tex_env1) : clamp() +end diff --git a/gamedata/shaders/r2/parallax_mark.ps.hlsl b/gamedata/shaders/r2/parallax_mark.ps.hlsl new file mode 100644 index 0000000..7053eeb --- /dev/null +++ b/gamedata/shaders/r2/parallax_mark.ps.hlsl @@ -0,0 +1,100 @@ +/* + ===================================================================== + Addon : Parallax Reflex Sights + Link : https://www.moddb.com/mods/stalker-anomaly/addons/parallax-reflex-sights + Authors : LVutner, party_50 + Date : 06.02.2024 + Last Edit : 06.02.2024 + Info : Ported back to shitX9 by LVutner + ===================================================================== +*/ + +#include "common.hlsli" + +// Important: +// In perfect world OFFSET constants should be 0, but most of reflex sight lenses +// are not actually parallel to screen, so we compensate it. For PROJECT_DISTANCE=100 +// offset values should be at least 0.005 even for perfect models and position configs due +// to normal vectors resolution. +// +// If you want the most realistic look, set PROJECT_DISTANCE to some high value (like 100.0), +// increase SIZE_FACTOR to something like 20.0, set OFFSET_X and OFFSET_Y to 0.005. +// Then you will have to adjust models so that mark texture point is exactly in center +// and edit aim position in configs. + +#define OFFSET_X 0.004 // (default 0.004) Normal vector x coordinate max absolute value which is considered 0 +#define OFFSET_Y 0.05 // (default 0.05) Normal vector y coordinate max absolute value which is considered 0 +#define PROJECT_DISTANCE 20.0 // (default 20.0) Distance to projected mark +#define SIZE_FACTOR 4.0 // (default 4.0) Mark size factor + +// Vertex to Pixel struct +struct vf +{ + float2 tc0 : TEXCOORD0; + float3 v_pos : TEXCOORD1; + float3 v_nrm : TEXCOORD2; +}; + +// This gives us cotangent basis that can be used instead of TBN. +// It is useful when tangents of your mesh are broken, or not available. +// Source: http://www.thetenthplanet.de/archives/1180 +float3x3 cotangent_frame(float3 N, float3 P, float2 uv) +{ + // Get edge vectors of the pixel triangle + float3 dp1 = ddx(P); + float3 dp2 = ddy(P); + float2 duv1 = ddx(uv); + float2 duv2 = ddy(uv); + + // Solve the linear system + float3 dp2perp = cross(dp2, N); + float3 dp1perp = cross(N, dp1); + float3 T = dp2perp * duv1.x + dp1perp * duv2.x; + float3 B = dp2perp * duv1.y + dp1perp * duv2.y; + + // Construct a scale-invariant frame + float invmax = rsqrt(max(dot(T, T), dot(B, B))); + return float3x3(T * invmax, B * invmax, N); +} + +// If N.xy vector is close to zero, make it zero +float3 offset_normal(float3 N) +{ + if (N.x > 0) + N.x = max(N.x, OFFSET_X) - OFFSET_X; + else + N.x = min(N.x, -OFFSET_X) + OFFSET_X; + + if (N.y > 0) + N.y = max(N.y, OFFSET_Y) - OFFSET_Y; + else + N.y = min(N.y, -OFFSET_Y) + OFFSET_Y; + + return N; +} + +float4 main(vf I) : COLOR +{ + // Derive view direction from view space position + float3 V = -I.v_pos; + + // Build cotangent frame + // Important: In theory, you don't need to do this. It should be possible to pass TBN straight from VS + float3x3 TBN = cotangent_frame(offset_normal(I.v_nrm), I.v_pos, I.tc0.xy); + + // Transform view direction to tangent space, and normalize (Just in case) + float3 V_tangent = normalize(float3(dot(V, TBN[0]), dot(V, TBN[1]), dot(V, TBN[2]))); + + // Calculate texture coordinates used to fetch the mark texture + // Important: PROJECT_DISTANCE can be positive or negative, 0 = no projection at all + float2 parallax_tc = I.tc0 - V_tangent.xy * PROJECT_DISTANCE; + + // Upscaling the texture + parallax_tc.x = (parallax_tc.x + (SIZE_FACTOR - 1) / 2) / SIZE_FACTOR; + parallax_tc.y = (parallax_tc.y + (SIZE_FACTOR - 1) / 2) / SIZE_FACTOR; + + // Fetch the mark texture + // Important: We do not want texture to repeat itself, so we use sampler with CLAMP address + // Important2: We do not want to sample mip levels of the mark texture, let's keep this thing sharp as fuck + return tex2Dlod(s_base, float4(parallax_tc, 0.0, 0.0)); +} diff --git a/gamedata/shaders/r2/parallax_mark.vs.hlsl b/gamedata/shaders/r2/parallax_mark.vs.hlsl new file mode 100644 index 0000000..005890b --- /dev/null +++ b/gamedata/shaders/r2/parallax_mark.vs.hlsl @@ -0,0 +1,49 @@ +#include "common.hlsli" +#include "skin.hlsli" + +// Vertex to Pixel struct +struct vf +{ + float2 tc0 : TEXCOORD0; + float3 v_pos : TEXCOORD1; + float3 v_nrm : TEXCOORD2; + float4 hpos : POSITION; +}; + +vf _main (v_model v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // Homogenous position + o.tc0 = v.tc.xy; //Texture coordinates + + o.v_pos = mul(m_WV, v.P).xyz; // Position in view space + o.v_nrm = mul(m_WV, v.N).xyz; // Normal in view space + + return o; +} + +//Skinning +#ifdef SKIN_NONE +vf main(v_model v) { return _main(v); } +#endif + +#ifdef SKIN_0 +vf main(v_model_skinned_0 v) { return _main(skinning_0(v)); } +#endif + +#ifdef SKIN_1 +vf main(v_model_skinned_1 v) { return _main(skinning_1(v)); } +#endif + +#ifdef SKIN_2 +vf main(v_model_skinned_2 v) { return _main(skinning_2(v)); } +#endif + +#ifdef SKIN_3 +vf main(v_model_skinned_3 v) { return _main(skinning_3(v)); } +#endif + +#ifdef SKIN_4 +vf main(v_model_skinned_4 v) { return _main(skinning_4(v)); } +#endif diff --git a/gamedata/shaders/r2/particle-clip.vs.hlsl b/gamedata/shaders/r2/particle-clip.vs.hlsl new file mode 100644 index 0000000..d065f67 --- /dev/null +++ b/gamedata/shaders/r2/particle-clip.vs.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; +}; + +struct vf +{ + float4 hpos : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; +}; + +vf main(vv v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + o.hpos.z = abs(o.hpos.z); + o.hpos.w = abs(o.hpos.w); + o.tc = v.tc; // copy tc + o.c = v.c; // copy color + + return o; +} diff --git a/gamedata/shaders/r2/particle.ps.hlsl b/gamedata/shaders/r2/particle.ps.hlsl new file mode 100644 index 0000000..644df29 --- /dev/null +++ b/gamedata/shaders/r2/particle.ps.hlsl @@ -0,0 +1,42 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse + +#ifdef USE_SOFT_PARTICLES + // Igor: for additional depth dest + float4 tctexgen : TEXCOORD1; +#endif // USE_SOFT_PARTICLES + float fog : FOG; +}; + +// Must be less than view near +#define DEPTH_EPSILON 0.1f + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 result = I.c * tex2D(s_base, I.tc0); + + // Igor: additional depth test +#ifdef USE_SOFT_PARTICLES + float4 _P = tex2Dproj(s_position, I.tctexgen); + float spaceDepth = _P.z - I.tctexgen.z - DEPTH_EPSILON; + if (spaceDepth < -2.0f * DEPTH_EPSILON) + { + spaceDepth = 100000.0f; // Skybox doesn't draw into position buffer + } + // result.a *= saturate(spaceDepth*0.3h); + result.a *= Contrast(saturate(spaceDepth * 1.3f), 2.0f); + result.rgb *= Contrast(saturate(spaceDepth * 1.3f), 2.0f); +// result = Contrast( saturate(spaceDepth*1.3h), 2); +// result = saturate (spaceDepth*5.0); +// result.a = 1; +#endif // USE_SOFT_PARTICLES + clip(result.a - (0.01f / 255.0f)); + result.w *= I.fog; + + return result; +} diff --git a/gamedata/shaders/r2/particle.vs.hlsl b/gamedata/shaders/r2/particle.vs.hlsl new file mode 100644 index 0000000..2660fff --- /dev/null +++ b/gamedata/shaders/r2/particle.vs.hlsl @@ -0,0 +1,39 @@ +#include "common.hlsli" + +struct vv +{ + float4 P : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; +}; +struct vf +{ + float4 hpos : POSITION; + float2 tc : TEXCOORD0; + float4 c : COLOR0; + +// Igor: for additional depth dest +#ifdef USE_SOFT_PARTICLES + float4 tctexgen : TEXCOORD1; +#endif // USE_SOFT_PARTICLES + float fog : FOG; +}; + +vf main(vv v) +{ + vf o; + + o.hpos = mul(m_WVP, v.P); // xform, input in world coords + // o.hpos = mul (m_VP, v.P); // xform, input in world coords + o.tc = v.tc; // copy tc + o.c = v.c; // copy color + +// Igor: for additional depth dest +#ifdef USE_SOFT_PARTICLES + o.tctexgen = mul(mVPTexgen, v.P); + o.tctexgen.z = o.hpos.z; +#endif // USE_SOFT_PARTICLES + + o.fog = saturate(calc_fogging(v.P)); // fog, input in world coords + return o; +} diff --git a/gamedata/shaders/r2/particle2t.ps.hlsl b/gamedata/shaders/r2/particle2t.ps.hlsl new file mode 100644 index 0000000..1e9325e --- /dev/null +++ b/gamedata/shaders/r2/particle2t.ps.hlsl @@ -0,0 +1,19 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float2 tc1 : TEXCOORD1; // another + float4 c : COLOR0; // diffuse +}; + +// Pixel +uniform sampler2D s_another; + +float4 main(v2p I) : COLOR +{ + float3 base = I.c * tex2D(s_base, I.tc0); + float4 grad = tex2D(s_another, I.tc1); + float3 mult = base * grad * 2.0f; + return float4(lerp(base, mult, grad.w), 1.0f); +} diff --git a/gamedata/shaders/r2/particle_add.ps.hlsl b/gamedata/shaders/r2/particle_add.ps.hlsl new file mode 100644 index 0000000..8b5e966 --- /dev/null +++ b/gamedata/shaders/r2/particle_add.ps.hlsl @@ -0,0 +1,40 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse + +#ifdef USE_SOFT_PARTICLES + // Igor: for additional depth dest + float4 tctexgen : TEXCOORD1; +#endif // USE_SOFT_PARTICLES + float fog : FOG; +}; + +// Must be less than view near +#define DEPTH_EPSILON 0.1h + +float4 main(v2p I) : COLOR +{ + float4 result = I.c * tex2D(s_base, I.tc0); + + // Igor: additional depth test +#ifdef USE_SOFT_PARTICLES + float4 _P = tex2Dproj(s_position, I.tctexgen); + float spaceDepth = _P.z - I.tctexgen.z - DEPTH_EPSILON; + if (spaceDepth < -2 * DEPTH_EPSILON) + { + spaceDepth = 100000.0h; // Skybox doesn't draw into position buffer + } + + result.a *= Contrast(saturate(spaceDepth * 1.3h), 2); + result.rgb *= Contrast(saturate(spaceDepth * 1.3h), 2); +#endif // USE_SOFT_PARTICLES + + clip(result.a - (0.01f / 255.0f)); + result.w *= I.fog; + result.xyz *= I.fog; + + return result; +} diff --git a/gamedata/shaders/r2/particle_alphaonly.ps.hlsl b/gamedata/shaders/r2/particle_alphaonly.ps.hlsl new file mode 100644 index 0000000..15d369f --- /dev/null +++ b/gamedata/shaders/r2/particle_alphaonly.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + return I.c.a * tex2D(s_base, I.tc0).a; +} diff --git a/gamedata/shaders/r2/particle_distort.ps.hlsl b/gamedata/shaders/r2/particle_distort.ps.hlsl new file mode 100644 index 0000000..e8486a0 --- /dev/null +++ b/gamedata/shaders/r2/particle_distort.ps.hlsl @@ -0,0 +1,34 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse + +#ifdef USE_SOFT_PARTICLES + // Igor: for additional depth dest + float4 tctexgen : TEXCOORD1; +#endif // USE_SOFT_PARTICLES +}; + +// Pixel +uniform sampler s_distort; + +float4 main(v2p I) : COLOR +{ + float4 distort = tex2D(s_distort, I.tc0); + float factor = distort.a * dot(I.c.rgb, 0.33f); + /* + #ifdef USE_SOFT_PARTICLES + float2 zero = float2( 0.5, 0.5); + float alphaDistort; + float4 _P = tex2Dproj( s_position, I.tctexgen); + float spaceDepth = _P.z - I.tctexgen.z; + if (spaceDepth < -0.1h ) spaceDepth = 100000.0h; // Skybox doesn't draw into position buffer + alphaDistort = saturate(1.3*spaceDepth); + // alphaDistort = 0; + distort.xy = lerp ( zero, distort.xy, alphaDistort); + #endif // USE_SOFT_PARTICLES + */ + return float4(distort.rgb, factor); +} diff --git a/gamedata/shaders/r2/particle_s-aadd.ps.hlsl b/gamedata/shaders/r2/particle_s-aadd.ps.hlsl new file mode 100644 index 0000000..65cfc5d --- /dev/null +++ b/gamedata/shaders/r2/particle_s-aadd.ps.hlsl @@ -0,0 +1,18 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + // color = 0 -> color=1 + // color = 1 -> color=c + float4 c = I.c * tex2D(s_base, I.tc0); + c.xyz *= c.w; + float3 r = float3(1.0f, 1.0f, 1.0f) - c.xyz + c.xyz * c.xyz; // lerp(1,c.xyz,c.xyz), can't be less than .5h + return float4(r, 1.0f); +} diff --git a/gamedata/shaders/r2/particle_s-add.ps.hlsl b/gamedata/shaders/r2/particle_s-add.ps.hlsl new file mode 100644 index 0000000..78fe654 --- /dev/null +++ b/gamedata/shaders/r2/particle_s-add.ps.hlsl @@ -0,0 +1,17 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + // color = 0 -> color=1 + // color = 1 -> color=c + float4 c = I.c * tex2D(s_base, I.tc0); + float3 r = float3(1.0f, 1.0f, 1.0f) - c.xyz - c.xyz * c.xyz; // lerp(1,c.xyz,c.xyz), can't be less than .5h + return float4(r, 1.0f); +} diff --git a/gamedata/shaders/r2/particle_s-blend.ps.hlsl b/gamedata/shaders/r2/particle_s-blend.ps.hlsl new file mode 100644 index 0000000..6c3adaf --- /dev/null +++ b/gamedata/shaders/r2/particle_s-blend.ps.hlsl @@ -0,0 +1,17 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + // alpha = 0 -> color=1 + // alpha = 1 -> color=c + float4 c = I.c * tex2D(s_base, I.tc0); + float3 r = lerp(float3(1.0f, 1.0f, 1.0f), c.xyz, c.w); + return float4(r, 1.0f); +} diff --git a/gamedata/shaders/r2/particle_s-mul.ps.hlsl b/gamedata/shaders/r2/particle_s-mul.ps.hlsl new file mode 100644 index 0000000..0508e03 --- /dev/null +++ b/gamedata/shaders/r2/particle_s-mul.ps.hlsl @@ -0,0 +1,16 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c : COLOR0; // diffuse +}; + +// Pixel +float4 main(v2p I) : COLOR +{ + // color = 0 -> color=0 + // color = 1 -> color=c + float4 c = I.c * tex2D(s_base, I.tc0); + return float4(c.xyz, 1.0f); +} diff --git a/gamedata/shaders/r2/particles_add.lua b/gamedata/shaders/r2/particles_add.lua new file mode 100644 index 0000000..57bf51e --- /dev/null +++ b/gamedata/shaders/r2/particles_add.lua @@ -0,0 +1,10 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("particle", "particle_add") + :sorting(3, false) + :blend(true, blend.one, blend.one) + :aref(false, 0) + :zb(true, false) + :fog(false) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_position"):texture("$user$position"):f_none() +end diff --git a/gamedata/shaders/r2/particles_xadd.lua b/gamedata/shaders/r2/particles_xadd.lua new file mode 100644 index 0000000..2da7f28 --- /dev/null +++ b/gamedata/shaders/r2/particles_xadd.lua @@ -0,0 +1,23 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("particle", "particle_add") + :sorting(3, false) + :blend(true, blend.one, blend.one) + :aref(false, 0) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_position"):texture("$user$position"):f_none() +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("particle", "particle_distort") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_second) -- "pfx\\pfx_distortion" + shader:sampler("s_position"):texture("$user$position"):f_none() +end diff --git a/gamedata/shaders/r2/particles_xdistort.lua b/gamedata/shaders/r2/particles_xdistort.lua new file mode 100644 index 0000000..0aea34a --- /dev/null +++ b/gamedata/shaders/r2/particles_xdistort.lua @@ -0,0 +1,11 @@ +function l_special(shader, t_base, t_second, t_detail) + shader:begin("particle", "particle_distort") + :sorting(3, false) + :blend(true, blend.srcalpha, blend.invsrcalpha) + :zb(true, false) + :fog(false) + :distort(true) + shader:sampler("s_base"):texture(t_base) + shader:sampler("s_distort"):texture(t_base) -- "pfx\\pfx_distortion" + shader:sampler("s_position"):texture("$user$position"):f_none() +end diff --git a/gamedata/shaders/r2/pnv.hlsli b/gamedata/shaders/r2/pnv.hlsli new file mode 100644 index 0000000..80f9bd4 --- /dev/null +++ b/gamedata/shaders/r2/pnv.hlsli @@ -0,0 +1,57 @@ +////////////////////////////////////////////////////////////////////////////////////////// +//NV Shader by LVutner (basing on yaz NV) +//Last edit: 5:12 (22.05.19) +//Edit for 'GUNSLINGER Mod' by Romann[MNP_TEAM] (04.01.2020) +////////////////////////////////////////////////////////////////////////////////////////// + +//defines +#define NV_BRIGHTNESS 5.0 + +//effects +#define NV_FLICKERING +#define NV_NOISE +//#define NV_VIGNETTE +#define NV_SCANLINES + +//effect settings +#define FLICKERING_INTENSITY 0.003 // ИнтенÑивноÑть Ð¼ÐµÑ€Ñ†Ð°Ð½Ð¸Ñ +#define FLICKERING_FREQ 60.0 // ЧаÑтота Ð¼ÐµÑ€Ñ†Ð°Ð½Ð¸Ñ +#define NOISE_INTENSITY 0.13 // ИнтенÑивноÑть шума +#define SCANLINES_INTENSITY 0.015 // РаÑÑ‚Ñ€Ð¾Ð²Ð°Ñ Ð˜Ð½Ñ‚ÐµÐ½ÑивноÑть +#define VIGNETTE_RADIUS 1.0 // + +// Pixel +uniform float4 screen_res; +uniform float4 m_zoom_deviation; + +float4 calc_night_vision_effect(float2 tc0, float4 color, float3 NV_COLOR) +{ + float lum = dot(color.rgb, float3( 0.3f, 0.38f, 0.22f)*NV_BRIGHTNESS ); //instead of float3 use LUMINANCE_floatTOR in stalker + color.rgb = m_zoom_deviation.z*NV_COLOR*lum; + + //cheap noise function + float noise = frac(sin(dot(tc0, float2(12.0, 78.0) + (timers.x*1.17f) )) * 43758.0); + + ////////////////////////////////////////////////////////////////////////////////////////// + // scanlines + #ifdef NV_SCANLINES + color += SCANLINES_INTENSITY*sin(tc0.y*screen_res.y*2.0); + #endif + ////////////////////////////////////////////////////////////////////////////////////////// + // noise + #ifdef NV_NOISE + color += noise * NOISE_INTENSITY; + #endif + ////////////////////////////////////////////////////////////////////////////////////////// + // screen flickering + #ifdef NV_FLICKERING + color += FLICKERING_INTENSITY * sin(timers.x*FLICKERING_FREQ); + #endif + ////////////////////////////////////////////////////////////////////////////////////////// + // vignette + #ifdef NV_VIGNETTE + color *= VIGNETTE_RADIUS-(distance(tc0.xy,float2( 0.5f, 0.5f))); + #endif + + return color; +} diff --git a/gamedata/shaders/r2/portal.lua b/gamedata/shaders/r2/portal.lua new file mode 100644 index 0000000..56e08e5 --- /dev/null +++ b/gamedata/shaders/r2/portal.lua @@ -0,0 +1,7 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("portal", "portal") + :fog(true) + :zb(true, false) + :sorting(3, true) + :blend(true, blend.srcalpha, blend.invsrcalpha) +end diff --git a/gamedata/shaders/r2/portal.ps.hlsl b/gamedata/shaders/r2/portal.ps.hlsl new file mode 100644 index 0000000..86490e4 --- /dev/null +++ b/gamedata/shaders/r2/portal.ps.hlsl @@ -0,0 +1,6 @@ +#include "common.hlsli" + +float4 main(float4 C : COLOR0) : COLOR +{ + return C; +} diff --git a/gamedata/shaders/r2/portal.vs.hlsl b/gamedata/shaders/r2/portal.vs.hlsl new file mode 100644 index 0000000..37a8bd7 --- /dev/null +++ b/gamedata/shaders/r2/portal.vs.hlsl @@ -0,0 +1,27 @@ +#include "common.hlsli" + +struct v_vert +{ + float4 pos : POSITION; // (float,float,float,1) + float4 color : COLOR0; // (r,g,b,dir-occlusion) +}; + +struct vf +{ + float4 hpos : POSITION; + float4 c : COLOR0; + float fog : FOG; +}; + +void main(in v_vert v, out vf o) +{ + o.hpos = mul(m_VP, v.pos); // xform, input in world coords + o.c = v.color; + o.fog = saturate(1.0f - calc_fogging(v.pos)); // fog, input in world coords + + o.c.a *= 1.0f - o.fog * o.fog; + + o.fog = 1.0f - o.fog; + o.c.rgb = lerp(fog_color, o.c, o.fog); +} + diff --git a/gamedata/shaders/r2/postprocess.lua b/gamedata/shaders/r2/postprocess.lua new file mode 100644 index 0000000..011f420 --- /dev/null +++ b/gamedata/shaders/r2/postprocess.lua @@ -0,0 +1,23 @@ +-- normal pp +t_rt = "$user$albedo" +t_noise = "fx\\fx_noise2" + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("null","postprocess") + : fog (false) + : zb (false,false) + shader:sampler ("s_base0") :texture("$user$albedo") : clamp() : f_linear () + shader:sampler ("s_base1") :texture("$user$albedo") : clamp() : f_linear () + shader:sampler ("s_noise") :texture("fx\\fx_noise2") : f_linear () +end + +function l_special (shader, t_base, t_second, t_detail) + shader:begin ("null","postprocess_CM") + : fog (false) + : zb (false,false) + shader:sampler ("s_base0") : texture("$user$albedo") : clamp() : f_linear () + shader:sampler ("s_base1") : texture("$user$albedo") : clamp() : f_linear () + shader:sampler ("s_noise") : texture("fx\\fx_noise2") : f_linear () + shader:sampler ("s_grad0") : texture("$user$cmap0") : clamp() : f_linear () + shader:sampler ("s_grad1") : texture("$user$cmap1") : clamp() : f_linear () +end \ No newline at end of file diff --git a/gamedata/shaders/r2/postprocess.ps.hlsl b/gamedata/shaders/r2/postprocess.ps.hlsl new file mode 100644 index 0000000..1979c1f --- /dev/null +++ b/gamedata/shaders/r2/postprocess.ps.hlsl @@ -0,0 +1,34 @@ +#include "common.hlsli" + +struct v2p +{ + float4 color : COLOR0; // multiplier, color.w = noise_amount + float4 gray : COLOR1; // (.3,.3,.3.,amount) + float2 tc0 : TEXCOORD0; // base1 (duality) + float2 tc1 : TEXCOORD1; // base2 (duality) + float2 tc2 : TEXCOORD2; // base (noise) +}; + +uniform sampler2D s_base0; +uniform sampler2D s_base1; +uniform sampler2D s_noise; +uniform float4 c_brightness; + +// Pixel +float4 main(v2p I) : COLOR +{ + float3 t_0 = tex2D(s_base0, I.tc0); + float3 t_1 = tex2D(s_base1, I.tc1); + float3 image = (t_0 + t_1) * 0.5f; // add_d2 + float gray = dot(image, I.gray); // dp3 + image = lerp(gray, image, I.gray.w); // mul/mad + + float4 t_noise = tex2D(s_noise, I.tc2); + float3 noised = image * t_noise * 2.0f; // mul_2x + image = lerp(noised, image, I.color.w); // lrp ? + image = (image * I.color + c_brightness) * 2.0f; // mad + // image = (image + c_brightness) * I.color; // mad ? + + // out + return float4(image, 1.0f); // +mov +} diff --git a/gamedata/shaders/r2/postprocess_cm.ps.hlsl b/gamedata/shaders/r2/postprocess_cm.ps.hlsl new file mode 100644 index 0000000..688f847 --- /dev/null +++ b/gamedata/shaders/r2/postprocess_cm.ps.hlsl @@ -0,0 +1,44 @@ +#include "common.hlsli" + +struct v2p +{ + float4 color : COLOR0; // multiplier, color.w = noise_amount + float4 gray : COLOR1; // (.3,.3,.3.,amount) + float2 tc0 : TEXCOORD0; // base1 (duality) + float2 tc1 : TEXCOORD1; // base2 (duality) + float2 tc2 : TEXCOORD2; // base (noise) +}; + +uniform sampler2D s_base0; +uniform sampler2D s_base1; +uniform sampler2D s_noise; +uniform float4 c_brightness; +uniform sampler2D s_grad0; +uniform sampler2D s_grad1; +uniform float4 c_colormap; + +// Pixel +float4 main(v2p I) : COLOR +{ + float3 t_0 = tex2D(s_base0, I.tc0); + float3 t_1 = tex2D(s_base1, I.tc1); + float3 image_o = (t_0 + t_1) * 0.5f; // add_d2 + + float grad_i = dot(image_o, (0.3333f).xxx); + + float3 image0 = tex2D(s_grad0, float2(grad_i, 0.5f)); + float3 image1 = tex2D(s_grad1, float2(grad_i, 0.5f)); + float3 image = lerp(image0, image1, c_colormap.y); + image = lerp(image_o, image, c_colormap.x); + + float gray = dot(image, I.gray); // dp3 + image = lerp(gray, image, I.gray.w); // mul/mad + + float4 t_noise = tex2D(s_noise, I.tc2); + float3 noised = image * t_noise * 2.0f; // mul_2x + image = lerp(noised, image, I.color.w); // lrp ? + image = (image * I.color + c_brightness) * 2.0f; // mad + + // out + return float4(image, 1.0f); // +mov +} diff --git a/gamedata/shaders/r2/saturation.ps.hlsl b/gamedata/shaders/r2/saturation.ps.hlsl new file mode 100644 index 0000000..f150969 --- /dev/null +++ b/gamedata/shaders/r2/saturation.ps.hlsl @@ -0,0 +1,15 @@ +#include "common.hlsli" + +float3 pharse_saturation(float3 Color) +{ + float Luma = dot(Color.xyz, 0.33f) + 0.001f; + return lerp(Luma.xxx, Color.xyz, 1.2f); +} + +float4 main(p_shadow I) : COLOR +{ + float3 col = tex2D(s_image, I.tc0).xyz; + col = 1.2f * pharse_saturation(col); + + return float4(col, 1.0f); +} diff --git a/gamedata/shaders/r2/selflight.lua b/gamedata/shaders/r2/selflight.lua new file mode 100644 index 0000000..46784f9 --- /dev/null +++ b/gamedata/shaders/r2/selflight.lua @@ -0,0 +1,9 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("dumb", "dumb") + :fog(false) + :zb(false, false) + :blend(true, blend.zero, blend.one) + :aref(false, 0) + :sorting(2, false) + shader:sampler("s_base"):texture(t_base) +end diff --git a/gamedata/shaders/r2/selflight2.lua b/gamedata/shaders/r2/selflight2.lua new file mode 100644 index 0000000..56bf243 --- /dev/null +++ b/gamedata/shaders/r2/selflight2.lua @@ -0,0 +1,13 @@ +function normal(shader, t_base, t_second, t_detail) + shader:begin("deffer_base", "deffer_base") + :fog(false) + :emissive(true) + shader:sampler("s_base"):texture(t_base) +end + +function l_special(shader, t_base, t_second, t_detail) + shader:begin("deffer_base", "accum_emissivel") + :zb(true, false) + :fog(false) + :emissive(true) +end diff --git a/gamedata/shaders/r2/shadow.hlsli b/gamedata/shaders/r2/shadow.hlsli new file mode 100644 index 0000000..9ff7d75 --- /dev/null +++ b/gamedata/shaders/r2/shadow.hlsli @@ -0,0 +1,252 @@ +#ifndef SHADOW_H +#define SHADOW_H + +#include "common.hlsli" + +uniform sampler s_smap : register(ps, s0); // 2D/cube shadowmap + +#define KERNEL .6f +////////////////////////////////////////////////////////////////////////////////////////// +// software +////////////////////////////////////////////////////////////////////////////////////////// +float sample_sw(float2 tc, float2 shift, float depth_cmp) +{ + static const float ts = KERNEL / float(SMAP_size); + tc += shift * ts; + + float texsize = SMAP_size; + float offset = 0.5f / texsize; + float2 Tex00 = tc + float2(-offset, -offset); + float2 Tex01 = tc + float2(-offset, offset); + float2 Tex10 = tc + float2(offset, -offset); + float2 Tex11 = tc + float2(offset, offset); + float4 depth = float4( + depth_cmp - tex2D(s_smap, Tex00).x, + depth_cmp - tex2D(s_smap, Tex01).x, + depth_cmp - tex2D(s_smap, Tex10).x, + depth_cmp - tex2D(s_smap, Tex11).x); + float4 compare = step(depth, 0.0f); + float2 fr = frac(Tex00 * texsize); + float2 ifr = float2(1.0f, 1.0f) - fr; + float4 fr4 = float4(ifr.x * ifr.y, ifr.x * fr.y, fr.x * ifr.y, fr.x * fr.y); + return dot(compare, fr4); +} +float shadow_sw(float4 tc) +{ + float2 tc_dw = tc.xy / tc.w; + float4 s; + s.x = sample_sw(tc_dw, float2(-1, -1), tc.z); + s.y = sample_sw(tc_dw, float2(+1, -1), tc.z); + s.z = sample_sw(tc_dw, float2(-1, +1), tc.z); + s.w = sample_sw(tc_dw, float2(+1, +1), tc.z); + return dot(s, 1.h / 4.h); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// hardware + PCF +////////////////////////////////////////////////////////////////////////////////////////// +float sample_hw_pcf(float4 tc, float4 shift) +{ + static const float ts = KERNEL / float(SMAP_size); +#ifndef SUNSHAFTS_DYNAMIC + return tex2Dproj(s_smap, tc + tc.w * shift * ts).x; +#else // SUNSHAFTS_DYNAMIC + float4 tc2 = tc / tc.w + shift * ts; + tc2.w = 0; + return tex2Dlod(s_smap, tc2); +#endif // SUNSHAFTS_DYNAMIC +} +float shadow_hw(float4 tc) +{ + float s0 = sample_hw_pcf(tc, float4(-1.0f, -1.0f, 0.0f, 0.0f)); + float s1 = sample_hw_pcf(tc, float4(+1.0f, -1.0f, 0.0f, 0.0f)); + float s2 = sample_hw_pcf(tc, float4(-1.0f, +1.0f, 0.0f, 0.0f)); + float s3 = sample_hw_pcf(tc, float4(+1.0f, +1.0f, 0.0f, 0.0f)); + + return (s0 + s1 + s2 + s3) / (4.h); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// hardware (ATI) + DF24/Fetch4 +////////////////////////////////////////////////////////////////////////////////////////// + +/* +float sample_hw_f4 (float4 tc,float4 shift){ + static const float ts = KERNEL / float(SMAP_size); + float4 D4 = tex2Dproj (s_smap,tc + tc.w*shift*ts); + float4 dcmp = tc.z/tc.w ; + float4 cmp = dcmp tex + #define SMAALoad(tex, pos, sample) tex.Load(pos, sample) + #if defined(SMAA_HLSL_4_1) + #define SMAAGather(tex, coord) tex.Gather(LinearSampler, coord, 0) + #endif +#endif +#if defined(SMAA_GLSL_3) || defined(SMAA_GLSL_4) + #define SMAATexture2D(tex) sampler2D tex + #define SMAATexturePass2D(tex) tex + #define SMAASampleLevelZero(tex, coord) textureLod(tex, coord, 0.0) + #define SMAASampleLevelZeroPoint(tex, coord) textureLod(tex, coord, 0.0) + #define SMAASampleLevelZeroOffset(tex, coord, offset) textureLodOffset(tex, coord, 0.0, offset) + #define SMAASample(tex, coord) texture(tex, coord) + #define SMAASamplePoint(tex, coord) texture(tex, coord) + #define SMAASampleOffset(tex, coord, offset) texture(tex, coord, offset) + #define SMAA_FLATTEN + #define SMAA_BRANCH + #define lerp(a, b, t) mix(a, b, t) + #define saturate(a) clamp(a, 0.0, 1.0) + #if defined(SMAA_GLSL_4) + #define mad(a, b, c) fma(a, b, c) + #define SMAAGather(tex, coord) textureGather(tex, coord) + #else + #define mad(a, b, c) (a * b + c) + #endif + #define float2 vec2 + #define float3 vec3 + #define float4 vec4 + #define int2 ivec2 + #define int3 ivec3 + #define int4 ivec4 + #define bool2 bvec2 + #define bool3 bvec3 + #define bool4 bvec4 +#endif + +#if !defined(SMAA_HLSL_3) && !defined(SMAA_HLSL_4) && !defined(SMAA_HLSL_4_1) && !defined(SMAA_GLSL_3) && !defined(SMAA_GLSL_4) && !defined(SMAA_CUSTOM_SL) + #error you must define the shading language: SMAA_HLSL_*, SMAA_GLSL_* or SMAA_CUSTOM_SL +#endif + +//----------------------------------------------------------------------------- +// Misc functions + +/** + * Gathers current pixel, and the top-left neighbors. + */ +float3 SMAAGatherNeighbours(float2 texcoord, + float4 offset[3], + SMAATexture2D(tex)) +{ + // RainbowZerg: SMAAGather is not supported now, need depth to be stored as x-component + // #ifdef SMAAGather + // return SMAAGather(tex, texcoord + SMAA_RT_METRICS.xy * float2(-0.5, -0.5)).grb; + // #else + float P = SMAASamplePoint(tex, texcoord).z; // RainbowZerg: changed here .r to .z 'cause in X-Ray depth stored as z-component of s_position + float Pleft = SMAASamplePoint(tex, offset[0].xy).z; // RainbowZerg: changed here .r to .z 'cause in X-Ray depth stored as z-component of s_position + float Ptop = SMAASamplePoint(tex, offset[0].zw).z; // RainbowZerg: changed here .r to .z 'cause in X-Ray depth stored as z-component of s_position + return float3(P, Pleft, Ptop); + // #endif +} + +/** + * Adjusts the threshold by means of predication. + */ +float2 SMAACalculatePredicatedThreshold(float2 texcoord, + float4 offset[3], + SMAATexture2D(predicationTex)) +{ + float3 neighbours = SMAAGatherNeighbours(texcoord, offset, SMAATexturePass2D(predicationTex)); + float2 delta = abs(neighbours.xx - neighbours.yz); + float2 edges = step(SMAA_PREDICATION_THRESHOLD, delta); + return SMAA_PREDICATION_SCALE * SMAA_THRESHOLD * (1.0 - SMAA_PREDICATION_STRENGTH * edges); +} + +/** + * Conditional move: + */ +void SMAAMovc(bool2 cond, inout float2 variable, float2 value) +{ + SMAA_FLATTEN if (cond.x) variable.x = value.x; + SMAA_FLATTEN if (cond.y) variable.y = value.y; +} + +void SMAAMovc(bool4 cond, inout float4 variable, float4 value) +{ + SMAAMovc(cond.xy, variable.xy, value.xy); + SMAAMovc(cond.zw, variable.zw, value.zw); +} + +#if SMAA_INCLUDE_VS +//----------------------------------------------------------------------------- +// Vertex Shaders + +/** + * Edge Detection Vertex Shader + */ +void SMAAEdgeDetectionVS(float2 texcoord, + out float4 offset[3]) +{ + offset[0] = mad(SMAA_RT_METRICS.xyxy, float4(-1.0, 0.0, 0.0, -1.0), texcoord.xyxy); + offset[1] = mad(SMAA_RT_METRICS.xyxy, float4(1.0, 0.0, 0.0, 1.0), texcoord.xyxy); + offset[2] = mad(SMAA_RT_METRICS.xyxy, float4(-2.0, 0.0, 0.0, -2.0), texcoord.xyxy); +} + +/** + * Blend Weight Calculation Vertex Shader + */ +void SMAABlendingWeightCalculationVS(float2 texcoord, + out float2 pixcoord, + out float4 offset[3]) +{ + pixcoord = texcoord * SMAA_RT_METRICS.zw; + + // We will use these offsets for the searches later on (see @PSEUDO_GATHER4): + offset[0] = mad(SMAA_RT_METRICS.xyxy, float4(-0.25, -0.125, 1.25, -0.125), texcoord.xyxy); + offset[1] = mad(SMAA_RT_METRICS.xyxy, float4(-0.125, -0.25, -0.125, 1.25), texcoord.xyxy); + + // And these for the searches, they indicate the ends of the loops: + offset[2] = mad(SMAA_RT_METRICS.xxyy, + float4(-2.0, 2.0, -2.0, 2.0) * float(SMAA_MAX_SEARCH_STEPS), + float4(offset[0].xz, offset[1].yw)); +} + +/** + * Neighborhood Blending Vertex Shader + */ +void SMAANeighborhoodBlendingVS(float2 texcoord, + out float4 offset) +{ + offset = mad(SMAA_RT_METRICS.xyxy, float4(1.0, 0.0, 0.0, 1.0), texcoord.xyxy); +} +#endif // SMAA_INCLUDE_VS + +#if SMAA_INCLUDE_PS +//----------------------------------------------------------------------------- +// Edge Detection Pixel Shaders (First Pass) + +/** + * Luma Edge Detection + * + * IMPORTANT NOTICE: luma edge detection requires gamma-corrected colors, and + * thus 'colorTex' should be a non-sRGB texture. + */ +float2 SMAALumaEdgeDetectionPS(float2 texcoord, + float4 offset[3], + SMAATexture2D(colorTex) + #if SMAA_PREDICATION + , + SMAATexture2D(predicationTex) + #endif +) +{ + // Calculate the threshold: + #if SMAA_PREDICATION + float2 threshold = SMAACalculatePredicatedThreshold(texcoord, offset, SMAATexturePass2D(predicationTex)); + #else + float2 threshold = float2(SMAA_THRESHOLD, SMAA_THRESHOLD); + #endif + + // Calculate lumas: + float3 weights = float3(0.2126, 0.7152, 0.0722); + float L = dot(SMAASamplePoint(colorTex, texcoord).rgb, weights); + + float Lleft = dot(SMAASamplePoint(colorTex, offset[0].xy).rgb, weights); + float Ltop = dot(SMAASamplePoint(colorTex, offset[0].zw).rgb, weights); + + // We do the usual threshold: + float4 delta; + delta.xy = abs(L - float2(Lleft, Ltop)); + float2 edges = step(threshold, delta.xy); + + // Then discard if there is no edge: + if (dot(edges, float2(1.0, 1.0)) == 0.0) + { + discard; + } + + // Calculate right and bottom deltas: + float Lright = dot(SMAASamplePoint(colorTex, offset[1].xy).rgb, weights); + float Lbottom = dot(SMAASamplePoint(colorTex, offset[1].zw).rgb, weights); + delta.zw = abs(L - float2(Lright, Lbottom)); + + // Calculate the maximum delta in the direct neighborhood: + float2 maxDelta = max(delta.xy, delta.zw); + + // Calculate left-left and top-top deltas: + float Lleftleft = dot(SMAASamplePoint(colorTex, offset[2].xy).rgb, weights); + float Ltoptop = dot(SMAASamplePoint(colorTex, offset[2].zw).rgb, weights); + delta.zw = abs(float2(Lleft, Ltop) - float2(Lleftleft, Ltoptop)); + + // Calculate the final maximum delta: + maxDelta = max(maxDelta.xy, delta.zw); + float finalDelta = max(maxDelta.x, maxDelta.y); + + // Local contrast adaptation: + edges.xy *= step(finalDelta, SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR * delta.xy); + + return edges; +} + +/** + * Color Edge Detection + * + * IMPORTANT NOTICE: color edge detection requires gamma-corrected colors, and + * thus 'colorTex' should be a non-sRGB texture. + */ +float2 SMAAColorEdgeDetectionPS(float2 texcoord, + float4 offset[3], + SMAATexture2D(colorTex) + #if SMAA_PREDICATION + , + SMAATexture2D(predicationTex) + #endif +) +{ + // Calculate the threshold: + #if SMAA_PREDICATION + float2 threshold = SMAACalculatePredicatedThreshold(texcoord, offset, predicationTex); + #else + float2 threshold = float2(SMAA_THRESHOLD, SMAA_THRESHOLD); + #endif + + // Calculate color deltas: + float4 delta; + float3 C = SMAASamplePoint(colorTex, texcoord).rgb; + + float3 Cleft = SMAASamplePoint(colorTex, offset[0].xy).rgb; + float3 t = abs(C - Cleft); + delta.x = max(max(t.r, t.g), t.b); + + float3 Ctop = SMAASamplePoint(colorTex, offset[0].zw).rgb; + t = abs(C - Ctop); + delta.y = max(max(t.r, t.g), t.b); + + // We do the usual threshold: + float2 edges = step(threshold, delta.xy); + + // Then discard if there is no edge: + if (dot(edges, float2(1.0, 1.0)) == 0.0) + { + discard; + } + + // Calculate right and bottom deltas: + float3 Cright = SMAASamplePoint(colorTex, offset[1].xy).rgb; + t = abs(C - Cright); + delta.z = max(max(t.r, t.g), t.b); + + float3 Cbottom = SMAASamplePoint(colorTex, offset[1].zw).rgb; + t = abs(C - Cbottom); + delta.w = max(max(t.r, t.g), t.b); + + // Calculate the maximum delta in the direct neighborhood: + float2 maxDelta = max(delta.xy, delta.zw); + + // Calculate left-left and top-top deltas: + float3 Cleftleft = SMAASamplePoint(colorTex, offset[2].xy).rgb; + t = abs(C - Cleftleft); + delta.z = max(max(t.r, t.g), t.b); + + float3 Ctoptop = SMAASamplePoint(colorTex, offset[2].zw).rgb; + t = abs(C - Ctoptop); + delta.w = max(max(t.r, t.g), t.b); + + // Calculate the final maximum delta: + maxDelta = max(maxDelta.xy, delta.zw); + float finalDelta = max(maxDelta.x, maxDelta.y); + + // Local contrast adaptation: + edges.xy *= step(finalDelta, SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR * delta.xy); + + return edges; +} + +/** + * Depth Edge Detection + */ +float2 SMAADepthEdgeDetectionPS(float2 texcoord, + float4 offset[3], + SMAATexture2D(depthTex)) +{ + float3 neighbours = SMAAGatherNeighbours(texcoord, offset, SMAATexturePass2D(depthTex)); + float2 delta = abs(neighbours.xx - float2(neighbours.y, neighbours.z)); + float2 edges = step(SMAA_DEPTH_THRESHOLD, delta); + + if (dot(edges, float2(1.0, 1.0)) == 0.0) + { + discard; + } + + return edges; +} + +//----------------------------------------------------------------------------- +// Diagonal Search Functions + + #if !defined(SMAA_DISABLE_DIAG_DETECTION) + +/** + * Allows to decode two binary values from a bilinear-filtered access. + */ +float2 SMAADecodeDiagBilinearAccess(float2 e) +{ + // Bilinear access for fetching 'e' have a 0.25 offset, and we are + // interested in the R and G edges: + // + // +---G---+-------+ + // | x o R x | + // +-------+-------+ + // + // Then, if one of these edge is enabled: + // Red: (0.75 * X + 0.25 * 1) => 0.25 or 1.0 + // Green: (0.75 * 1 + 0.25 * X) => 0.75 or 1.0 + // + // This function will unpack the values (mad + mul + round): + // wolframalpha.com: round(x * abs(5 * x - 5 * 0.75)) plot 0 to 1 + e.r = e.r * abs(5.0 * e.r - 5.0 * 0.75); + return round(e); +} + +float4 SMAADecodeDiagBilinearAccess(float4 e) +{ + e.rb = e.rb * abs(5.0 * e.rb - 5.0 * 0.75); + return round(e); +} + +/** + * These functions allows to perform diagonal pattern searches. + */ +float2 SMAASearchDiag1(SMAATexture2D(edgesTex), float2 texcoord, float2 dir, out float2 e) +{ + float4 coord = float4(texcoord, -1.0, 1.0); + float3 t = float3(SMAA_RT_METRICS.xy, 1.0); + while (coord.z < float(SMAA_MAX_SEARCH_STEPS_DIAG - 1) && + coord.w > 0.9) + { + coord.xyz = mad(t, float3(dir, 1.0), coord.xyz); + e = SMAASampleLevelZero(edgesTex, coord.xy).rg; + coord.w = dot(e, float2(0.5, 0.5)); + } + return coord.zw; +} + +float2 SMAASearchDiag2(SMAATexture2D(edgesTex), float2 texcoord, float2 dir, out float2 e) +{ + float4 coord = float4(texcoord, -1.0, 1.0); + coord.x += 0.25 * SMAA_RT_METRICS.x; // See @SearchDiag2Optimization + float3 t = float3(SMAA_RT_METRICS.xy, 1.0); + while (coord.z < float(SMAA_MAX_SEARCH_STEPS_DIAG - 1) && + coord.w > 0.9) + { + coord.xyz = mad(t, float3(dir, 1.0), coord.xyz); + + // @SearchDiag2Optimization + // Fetch both edges at once using bilinear filtering: + e = SMAASampleLevelZero(edgesTex, coord.xy).rg; + e = SMAADecodeDiagBilinearAccess(e); + + // Non-optimized version: + // e.g = SMAASampleLevelZero(edgesTex, coord.xy).g; + // e.r = SMAASampleLevelZeroOffset(edgesTex, coord.xy, int2(1, 0)).r; + + coord.w = dot(e, float2(0.5, 0.5)); + } + return coord.zw; +} + +/** + * Similar to SMAAArea, this calculates the area corresponding to a certain + * diagonal distance and crossing edges 'e'. + */ +float2 SMAAAreaDiag(SMAATexture2D(areaTex), float2 dist, float2 e, float offset) +{ + float2 texcoord = mad(float2(SMAA_AREATEX_MAX_DISTANCE_DIAG, SMAA_AREATEX_MAX_DISTANCE_DIAG), e, dist); + + // We do a scale and bias for mapping to texel space: + texcoord = mad(SMAA_AREATEX_PIXEL_SIZE, texcoord, 0.5 * SMAA_AREATEX_PIXEL_SIZE); + + // Diagonal areas are on the second half of the texture: + texcoord.x += 0.5; + + // Move to proper place, according to the subpixel offset: + texcoord.y += SMAA_AREATEX_SUBTEX_SIZE * offset; + + // Do it! + return SMAA_AREATEX_SELECT(SMAASampleLevelZero(areaTex, texcoord)); +} + +/** + * This searches for diagonal patterns and returns the corresponding weights. + */ +float2 SMAACalculateDiagWeights(SMAATexture2D(edgesTex), SMAATexture2D(areaTex), float2 texcoord, float2 e, float4 subsampleIndices) +{ + float2 weights = float2(0.0, 0.0); + + // Search for the line ends: + float4 d; + float2 end; + if (e.r > 0.0) + { + d.xz = SMAASearchDiag1(SMAATexturePass2D(edgesTex), texcoord, float2(-1.0, 1.0), end); + d.x += float(end.y > 0.9); + } + else + { + d.xz = float2(0.0, 0.0); + } + d.yw = SMAASearchDiag1(SMAATexturePass2D(edgesTex), texcoord, float2(1.0, -1.0), end); + + SMAA_BRANCH + if (d.x + d.y > 2.0) + { // d.x + d.y + 1 > 3 + // Fetch the crossing edges: + float4 coords = mad(float4(-d.x + 0.25, d.x, d.y, -d.y - 0.25), SMAA_RT_METRICS.xyxy, texcoord.xyxy); + float4 c; + c.xy = SMAASampleLevelZeroOffset(edgesTex, coords.xy, int2(-1, 0)).rg; + c.zw = SMAASampleLevelZeroOffset(edgesTex, coords.zw, int2(1, 0)).rg; + c.yxwz = SMAADecodeDiagBilinearAccess(c.xyzw); + + // Non-optimized version: + // float4 coords = mad(float4(-d.x, d.x, d.y, -d.y), SMAA_RT_METRICS.xyxy, texcoord.xyxy); + // float4 c; + // c.x = SMAASampleLevelZeroOffset(edgesTex, coords.xy, int2(-1, 0)).g; + // c.y = SMAASampleLevelZeroOffset(edgesTex, coords.xy, int2( 0, 0)).r; + // c.z = SMAASampleLevelZeroOffset(edgesTex, coords.zw, int2( 1, 0)).g; + // c.w = SMAASampleLevelZeroOffset(edgesTex, coords.zw, int2( 1, -1)).r; + + // Merge crossing edges at each side into a single value: + float2 cc = mad(float2(2.0, 2.0), c.xz, c.yw); + + // Remove the crossing edge if we didn't found the end of the line: + SMAAMovc(bool2(step(0.9, d.zw)), cc, float2(0.0, 0.0)); + + // Fetch the areas for this line: + weights += SMAAAreaDiag(SMAATexturePass2D(areaTex), d.xy, cc, subsampleIndices.z); + } + + // Search for the line ends: + d.xz = SMAASearchDiag2(SMAATexturePass2D(edgesTex), texcoord, float2(-1.0, -1.0), end); + if (SMAASampleLevelZeroOffset(edgesTex, texcoord, int2(1, 0)).r > 0.0) + { + d.yw = SMAASearchDiag2(SMAATexturePass2D(edgesTex), texcoord, float2(1.0, 1.0), end); + d.y += float(end.y > 0.9); + } + else + { + d.yw = float2(0.0, 0.0); + } + + SMAA_BRANCH + if (d.x + d.y > 2.0) + { // d.x + d.y + 1 > 3 + // Fetch the crossing edges: + float4 coords = mad(float4(-d.x, -d.x, d.y, d.y), SMAA_RT_METRICS.xyxy, texcoord.xyxy); + float4 c; + c.x = SMAASampleLevelZeroOffset(edgesTex, coords.xy, int2(-1, 0)).g; + c.y = SMAASampleLevelZeroOffset(edgesTex, coords.xy, int2(0, -1)).r; + c.zw = SMAASampleLevelZeroOffset(edgesTex, coords.zw, int2(1, 0)).gr; + float2 cc = mad(float2(2.0, 2.0), c.xz, c.yw); + + // Remove the crossing edge if we didn't found the end of the line: + SMAAMovc(bool2(step(0.9, d.zw)), cc, float2(0.0, 0.0)); + + // Fetch the areas for this line: + weights += SMAAAreaDiag(SMAATexturePass2D(areaTex), d.xy, cc, subsampleIndices.w).gr; + } + + return weights; +} + #endif + +//----------------------------------------------------------------------------- +// Horizontal/Vertical Search Functions + +/** + * This allows to determine how much length should we add in the last step + * of the searches. It takes the bilinearly interpolated edge (see + * @PSEUDO_GATHER4), and adds 0, 1 or 2, depending on which edges and + * crossing edges are active. + */ +float SMAASearchLength(SMAATexture2D(searchTex), float2 e, float offset) +{ + // The texture is flipped vertically, with left and right cases taking half + // of the space horizontally: + float2 scale = SMAA_SEARCHTEX_SIZE * float2(0.5, -1.0); + float2 bias = SMAA_SEARCHTEX_SIZE * float2(offset, 1.0); + + // Scale and bias to access texel centers: + scale += float2(-1.0, 1.0); + bias += float2(0.5, -0.5); + + // Convert from pixel coordinates to texcoords: + // (We use SMAA_SEARCHTEX_PACKED_SIZE because the texture is cropped) + scale *= 1.0 / SMAA_SEARCHTEX_PACKED_SIZE; + bias *= 1.0 / SMAA_SEARCHTEX_PACKED_SIZE; + + // Lookup the search texture: + return SMAA_SEARCHTEX_SELECT(SMAASampleLevelZero(searchTex, mad(scale, e, bias))); +} + +/** + * Horizontal/vertical search functions for the 2nd pass. + */ +float SMAASearchXLeft(SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end) +{ + /** + * @PSEUDO_GATHER4 + * This texcoord has been offset by (-0.25, -0.125) in the vertex shader to + * sample between edge, thus fetching four edges in a row. + * Sampling with different offsets in each direction allows to disambiguate + * which edges are active from the four fetched ones. + */ + float2 e = float2(0.0, 1.0); + while (texcoord.x > end && + e.g > 0.8281 && // Is there some edge not activated? + e.r == 0.0) + { // Or is there a crossing edge that breaks the line? + e = SMAASampleLevelZero(edgesTex, texcoord).rg; + texcoord = mad(-float2(2.0, 0.0), SMAA_RT_METRICS.xy, texcoord); + } + + float offset = mad(-(255.0 / 127.0), SMAASearchLength(SMAATexturePass2D(searchTex), e, 0.0), 3.25); + return mad(SMAA_RT_METRICS.x, offset, texcoord.x); + + // Non-optimized version: + // We correct the previous (-0.25, -0.125) offset we applied: + // texcoord.x += 0.25 * SMAA_RT_METRICS.x; + + // The searches are bias by 1, so adjust the coords accordingly: + // texcoord.x += SMAA_RT_METRICS.x; + + // Disambiguate the length added by the last step: + // texcoord.x += 2.0 * SMAA_RT_METRICS.x; // Undo last step + // texcoord.x -= SMAA_RT_METRICS.x * (255.0 / 127.0) * SMAASearchLength(SMAATexturePass2D(searchTex), e, 0.0); + // return mad(SMAA_RT_METRICS.x, offset, texcoord.x); +} + +float SMAASearchXRight(SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end) +{ + float2 e = float2(0.0, 1.0); + while (texcoord.x < end && + e.g > 0.8281 && // Is there some edge not activated? + e.r == 0.0) + { // Or is there a crossing edge that breaks the line? + e = SMAASampleLevelZero(edgesTex, texcoord).rg; + texcoord = mad(float2(2.0, 0.0), SMAA_RT_METRICS.xy, texcoord); + } + float offset = mad(-(255.0 / 127.0), SMAASearchLength(SMAATexturePass2D(searchTex), e, 0.5), 3.25); + return mad(-SMAA_RT_METRICS.x, offset, texcoord.x); +} + +float SMAASearchYUp(SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end) +{ + float2 e = float2(1.0, 0.0); + while (texcoord.y > end && + e.r > 0.8281 && // Is there some edge not activated? + e.g == 0.0) + { // Or is there a crossing edge that breaks the line? + e = SMAASampleLevelZero(edgesTex, texcoord).rg; + texcoord = mad(-float2(0.0, 2.0), SMAA_RT_METRICS.xy, texcoord); + } + float offset = mad(-(255.0 / 127.0), SMAASearchLength(SMAATexturePass2D(searchTex), e.gr, 0.0), 3.25); + return mad(SMAA_RT_METRICS.y, offset, texcoord.y); +} + +float SMAASearchYDown(SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end) +{ + float2 e = float2(1.0, 0.0); + while (texcoord.y < end && + e.r > 0.8281 && // Is there some edge not activated? + e.g == 0.0) + { // Or is there a crossing edge that breaks the line? + e = SMAASampleLevelZero(edgesTex, texcoord).rg; + texcoord = mad(float2(0.0, 2.0), SMAA_RT_METRICS.xy, texcoord); + } + float offset = mad(-(255.0 / 127.0), SMAASearchLength(SMAATexturePass2D(searchTex), e.gr, 0.5), 3.25); + return mad(-SMAA_RT_METRICS.y, offset, texcoord.y); +} + +/** + * Ok, we have the distance and both crossing edges. So, what are the areas + * at each side of current edge? + */ +float2 SMAAArea(SMAATexture2D(areaTex), float2 dist, float e1, float e2, float offset) +{ + // Rounding prevents precision errors of bilinear filtering: + float2 texcoord = mad(float2(SMAA_AREATEX_MAX_DISTANCE, SMAA_AREATEX_MAX_DISTANCE), round(4.0 * float2(e1, e2)), dist); + + // We do a scale and bias for mapping to texel space: + texcoord = mad(SMAA_AREATEX_PIXEL_SIZE, texcoord, 0.5 * SMAA_AREATEX_PIXEL_SIZE); + + // Move to proper place, according to the subpixel offset: + texcoord.y = mad(SMAA_AREATEX_SUBTEX_SIZE, offset, texcoord.y); + + // Do it! + return SMAA_AREATEX_SELECT(SMAASampleLevelZero(areaTex, texcoord)); +} + +//----------------------------------------------------------------------------- +// Corner Detection Functions + +void SMAADetectHorizontalCornerPattern(SMAATexture2D(edgesTex), inout float2 weights, float4 texcoord, float2 d) +{ + #if !defined(SMAA_DISABLE_CORNER_DETECTION) + float2 leftRight = step(d.xy, d.yx); + float2 rounding = (1.0 - SMAA_CORNER_ROUNDING_NORM) * leftRight; + + rounding /= leftRight.x + leftRight.y; // Reduce blending for pixels in the center of a line. + + float2 factor = float2(1.0, 1.0); + factor.x -= rounding.x * SMAASampleLevelZeroOffset(edgesTex, texcoord.xy, int2(0, 1)).r; + factor.x -= rounding.y * SMAASampleLevelZeroOffset(edgesTex, texcoord.zw, int2(1, 1)).r; + factor.y -= rounding.x * SMAASampleLevelZeroOffset(edgesTex, texcoord.xy, int2(0, -2)).r; + factor.y -= rounding.y * SMAASampleLevelZeroOffset(edgesTex, texcoord.zw, int2(1, -2)).r; + + weights *= saturate(factor); + #endif +} + +void SMAADetectVerticalCornerPattern(SMAATexture2D(edgesTex), inout float2 weights, float4 texcoord, float2 d) +{ + #if !defined(SMAA_DISABLE_CORNER_DETECTION) + float2 leftRight = step(d.xy, d.yx); + float2 rounding = (1.0 - SMAA_CORNER_ROUNDING_NORM) * leftRight; + + rounding /= leftRight.x + leftRight.y; + + float2 factor = float2(1.0, 1.0); + factor.x -= rounding.x * SMAASampleLevelZeroOffset(edgesTex, texcoord.xy, int2(1, 0)).g; + factor.x -= rounding.y * SMAASampleLevelZeroOffset(edgesTex, texcoord.zw, int2(1, 1)).g; + factor.y -= rounding.x * SMAASampleLevelZeroOffset(edgesTex, texcoord.xy, int2(-2, 0)).g; + factor.y -= rounding.y * SMAASampleLevelZeroOffset(edgesTex, texcoord.zw, int2(-2, 1)).g; + + weights *= saturate(factor); + #endif +} + +//----------------------------------------------------------------------------- +// Blending Weight Calculation Pixel Shader (Second Pass) + +float4 SMAABlendingWeightCalculationPS(float2 texcoord, + float2 pixcoord, + float4 offset[3], + SMAATexture2D(edgesTex), + SMAATexture2D(areaTex), + SMAATexture2D(searchTex), + float4 subsampleIndices) +{ // Just pass zero for SMAA 1x, see @SUBSAMPLE_INDICES. + float4 weights = float4(0.0, 0.0, 0.0, 0.0); + + float2 e = SMAASample(edgesTex, texcoord).rg; + + SMAA_BRANCH + if (e.g > 0.0) + { // Edge at north + #if !defined(SMAA_DISABLE_DIAG_DETECTION) + // Diagonals have both north and west edges, so searching for them in + // one of the boundaries is enough. + weights.rg = SMAACalculateDiagWeights(SMAATexturePass2D(edgesTex), SMAATexturePass2D(areaTex), texcoord, e, subsampleIndices); + + // We give priority to diagonals, so if we find a diagonal we skip + // horizontal/vertical processing. + SMAA_BRANCH + if (weights.r == -weights.g) + { // weights.r + weights.g == 0.0 + #endif + + float2 d; + + // Find the distance to the left: + float3 coords; + coords.x = SMAASearchXLeft(SMAATexturePass2D(edgesTex), SMAATexturePass2D(searchTex), offset[0].xy, offset[2].x); + coords.y = offset[1].y; // offset[1].y = texcoord.y - 0.25 * SMAA_RT_METRICS.y (@CROSSING_OFFSET) + d.x = coords.x; + + // Now fetch the left crossing edges, two at a time using bilinear + // filtering. Sampling at -0.25 (see @CROSSING_OFFSET) enables to + // discern what value each edge has: + float e1 = SMAASampleLevelZero(edgesTex, coords.xy).r; + + // Find the distance to the right: + coords.z = SMAASearchXRight(SMAATexturePass2D(edgesTex), SMAATexturePass2D(searchTex), offset[0].zw, offset[2].y); + d.y = coords.z; + + // We want the distances to be in pixel units (doing this here allow to + // better interleave arithmetic and memory accesses): + d = abs(round(mad(SMAA_RT_METRICS.zz, d, -pixcoord.xx))); + + // SMAAArea below needs a sqrt, as the areas texture is compressed + // quadratically: + float2 sqrt_d = sqrt(d); + + // Fetch the right crossing edges: + float e2 = SMAASampleLevelZeroOffset(edgesTex, coords.zy, int2(1, 0)).r; + + // Ok, we know how this pattern looks like, now it is time for getting + // the actual area: + weights.rg = SMAAArea(SMAATexturePass2D(areaTex), sqrt_d, e1, e2, subsampleIndices.y); + + // Fix corners: + coords.y = texcoord.y; + SMAADetectHorizontalCornerPattern(SMAATexturePass2D(edgesTex), weights.rg, coords.xyzy, d); + + #if !defined(SMAA_DISABLE_DIAG_DETECTION) + } + else + { + e.r = 0.0; // Skip vertical processing. + } + #endif + } + + SMAA_BRANCH + if (e.r > 0.0) + { // Edge at west + float2 d; + + // Find the distance to the top: + float3 coords; + coords.y = SMAASearchYUp(SMAATexturePass2D(edgesTex), SMAATexturePass2D(searchTex), offset[1].xy, offset[2].z); + coords.x = offset[0].x; // offset[1].x = texcoord.x - 0.25 * SMAA_RT_METRICS.x; + d.x = coords.y; + + // Fetch the top crossing edges: + float e1 = SMAASampleLevelZero(edgesTex, coords.xy).g; + + // Find the distance to the bottom: + coords.z = SMAASearchYDown(SMAATexturePass2D(edgesTex), SMAATexturePass2D(searchTex), offset[1].zw, offset[2].w); + d.y = coords.z; + + // We want the distances to be in pixel units: + d = abs(round(mad(SMAA_RT_METRICS.ww, d, -pixcoord.yy))); + + // SMAAArea below needs a sqrt, as the areas texture is compressed + // quadratically: + float2 sqrt_d = sqrt(d); + + // Fetch the bottom crossing edges: + float e2 = SMAASampleLevelZeroOffset(edgesTex, coords.xz, int2(0, 1)).g; + + // Get the area for this direction: + weights.ba = SMAAArea(SMAATexturePass2D(areaTex), sqrt_d, e1, e2, subsampleIndices.x); + + // Fix corners: + coords.x = texcoord.x; + SMAADetectVerticalCornerPattern(SMAATexturePass2D(edgesTex), weights.ba, coords.xyxz, d); + } + + return weights; +} + +//----------------------------------------------------------------------------- +// Neighborhood Blending Pixel Shader (Third Pass) + +float4 SMAANeighborhoodBlendingPS(float2 texcoord, + float4 offset, + SMAATexture2D(colorTex), + SMAATexture2D(blendTex) + #if SMAA_REPROJECTION + , + SMAATexture2D(velocityTex) + #endif +) +{ + // Fetch the blending weights for current pixel: + float4 a; + a.x = SMAASample(blendTex, offset.xy).a; // Right + a.y = SMAASample(blendTex, offset.zw).g; // Top + a.wz = SMAASample(blendTex, texcoord).xz; // Bottom / Left + + // Is there any blending weight with a value greater than 0.0? + SMAA_BRANCH + if (dot(a, float4(1.0, 1.0, 1.0, 1.0)) < 1e-5) + { + float4 color = SMAASampleLevelZero(colorTex, texcoord); + + #if SMAA_REPROJECTION + float2 velocity = SMAA_DECODE_VELOCITY(SMAASampleLevelZero(velocityTex, texcoord)); + + // Pack velocity into the alpha channel: + color.a = sqrt(5.0 * length(velocity)); + #endif + + return color; + } + else + { + bool h = max(a.x, a.z) > max(a.y, a.w); // max(horizontal) > max(vertical) + + // Calculate the blending offsets: + float4 blendingOffset = float4(0.0, a.y, 0.0, a.w); + float2 blendingWeight = a.yw; + SMAAMovc(bool4(h, h, h, h), blendingOffset, float4(a.x, 0.0, a.z, 0.0)); + SMAAMovc(bool2(h, h), blendingWeight, a.xz); + blendingWeight /= dot(blendingWeight, float2(1.0, 1.0)); + + // Calculate the texture coordinates: + float4 blendingCoord = mad(blendingOffset, float4(SMAA_RT_METRICS.xy, -SMAA_RT_METRICS.xy), texcoord.xyxy); + + // We exploit bilinear filtering to mix current pixel with the chosen + // neighbor: + float4 color = blendingWeight.x * SMAASampleLevelZero(colorTex, blendingCoord.xy); + color += blendingWeight.y * SMAASampleLevelZero(colorTex, blendingCoord.zw); + + #if SMAA_REPROJECTION + // Antialias velocity for proper reprojection in a later stage: + float2 velocity = blendingWeight.x * SMAA_DECODE_VELOCITY(SMAASampleLevelZero(velocityTex, blendingCoord.xy)); + velocity += blendingWeight.y * SMAA_DECODE_VELOCITY(SMAASampleLevelZero(velocityTex, blendingCoord.zw)); + + // Pack velocity into the alpha channel: + color.a = sqrt(5.0 * length(velocity)); + #endif + + return color; + } +} + +//----------------------------------------------------------------------------- +// Temporal Resolve Pixel Shader (Optional Pass) + +float4 SMAAResolvePS(float2 texcoord, + SMAATexture2D(currentColorTex), + SMAATexture2D(previousColorTex) + #if SMAA_REPROJECTION + , + SMAATexture2D(velocityTex) + #endif +) +{ + #if SMAA_REPROJECTION + // Velocity is assumed to be calculated for motion blur, so we need to + // inverse it for reprojection: + float2 velocity = -SMAA_DECODE_VELOCITY(SMAASamplePoint(velocityTex, texcoord).rg); + + // Fetch current pixel: + float4 current = SMAASamplePoint(currentColorTex, texcoord); + + // Reproject current coordinates and fetch previous pixel: + float4 previous = SMAASamplePoint(previousColorTex, texcoord + velocity); + + // Attenuate the previous pixel if the velocity is different: + float delta = abs(current.a * current.a - previous.a * previous.a) / 5.0; + float weight = 0.5 * saturate(1.0 - sqrt(delta) * SMAA_REPROJECTION_WEIGHT_SCALE); + + // Blend the pixels according to the calculated weight: + return lerp(current, previous, weight); + #else + // Just blend the pixels: + float4 current = SMAASamplePoint(currentColorTex, texcoord); + float4 previous = SMAASamplePoint(previousColorTex, texcoord); + return lerp(current, previous, 0.5); + #endif +} + +//----------------------------------------------------------------------------- +// Separate Multisamples Pixel Shader (Optional Pass) + + #ifdef SMAALoad +void SMAASeparatePS(float4 position, + float2 texcoord, + out float4 target0, + out float4 target1, + SMAATexture2DMS2(colorTexMS)) +{ + int2 pos = int2(position.xy); + target0 = SMAALoad(colorTexMS, pos, 0); + target1 = SMAALoad(colorTexMS, pos, 1); +} + #endif + +//----------------------------------------------------------------------------- +#endif // SMAA_INCLUDE_PS diff --git a/gamedata/shaders/r2/smaa_bweight_calc.ps.hlsl b/gamedata/shaders/r2/smaa_bweight_calc.ps.hlsl new file mode 100644 index 0000000..dee2ff8 --- /dev/null +++ b/gamedata/shaders/r2/smaa_bweight_calc.ps.hlsl @@ -0,0 +1,28 @@ +#include "common.hlsli" + +#define SMAA_HLSL_3 +uniform float4 screen_res; +#define SMAA_RT_METRICS screen_res.zwxy + +#define SMAA_PRESET_ULTRA + +#include "smaa.hlsli" + +SMAATexture2D(s_edgetex); +SMAATexture2D(s_areatex); +SMAATexture2D(s_searchtex); + +// Struct +struct p_smaa +{ + float2 tc0 : TEXCOORD0; // Texture coordinates (for sampling maps) +}; + +float4 main(p_smaa I) : COLOR +{ + float2 pixcoord; + float4 offset[3]; + SMAABlendingWeightCalculationVS(I.tc0, pixcoord, offset); + + return SMAABlendingWeightCalculationPS(I.tc0, pixcoord, offset, s_edgetex, s_areatex, s_searchtex, 0.0f); +}; diff --git a/gamedata/shaders/r2/smaa_edge_detect.ps.hlsl b/gamedata/shaders/r2/smaa_edge_detect.ps.hlsl new file mode 100644 index 0000000..6fa78de --- /dev/null +++ b/gamedata/shaders/r2/smaa_edge_detect.ps.hlsl @@ -0,0 +1,29 @@ +#include "common.hlsli" + +#define SMAA_HLSL_3 + +uniform float4 screen_res; +#define SMAA_RT_METRICS screen_res.zwxy + +#define SMAA_PRESET_ULTRA +#define EDGE_DETECT_COLOR + +#include "smaa.hlsli" + +// Struct +struct p_smaa +{ + float2 tc0 : TEXCOORD0; // Texture coordinates (for sampling maps) +}; + +float4 main(p_smaa I) : COLOR +{ + float4 offset[3]; + SMAAEdgeDetectionVS(I.tc0, offset); + +#if defined(EDGE_DETECT_COLOR) + return float4(SMAAColorEdgeDetectionPS(I.tc0, offset, s_image), 0.0f, 0.0f); +#else + return float4(SMAALumaEdgeDetectionPS(I.tc0, offset, s_image), 0.0f, 0.0f); +#endif +} diff --git a/gamedata/shaders/r2/smaa_neighbour_blend.ps.hlsl b/gamedata/shaders/r2/smaa_neighbour_blend.ps.hlsl new file mode 100644 index 0000000..d59f45a --- /dev/null +++ b/gamedata/shaders/r2/smaa_neighbour_blend.ps.hlsl @@ -0,0 +1,22 @@ +#include "common.hlsli" + +#define SMAA_HLSL_3 +uniform float4 screen_res; +#define SMAA_RT_METRICS screen_res.zwxy +#define SMAA_PRESET_ULTRA + +#include "smaa.hlsli" + +SMAATexture2D(s_blendtex); + +struct p_smaa +{ + float2 tc0 : TEXCOORD0; // Texture coordinates (for sampling maps) +}; + +float4 main(p_smaa I) : COLOR +{ + float4 offset; + SMAANeighborhoodBlendingVS(I.tc0, offset); + return SMAANeighborhoodBlendingPS(I.tc0, offset, s_image, s_blendtex); +} diff --git a/gamedata/shaders/r2/ssao.ps.hlsl b/gamedata/shaders/r2/ssao.ps.hlsl new file mode 100644 index 0000000..086904e --- /dev/null +++ b/gamedata/shaders/r2/ssao.ps.hlsl @@ -0,0 +1,107 @@ +#ifndef SSAO_1231242112 +#define SSAO_1231242112 +#include "common.hlsli" + +#ifndef SSAO_QUALITY + +float calc_ssao(float3 P, float3 N, float2 tc, float2 tcJ) +{ + return 1.0; +} + +#else // SSAO_QUALITY + +uniform sampler2D jitter0; +// uniform float4 screen_res; +uniform float4 pos_decompression_params; + +#define SSAO_RADIUS 0.8 +#define rcp(x) (1.0f / (x)) + +float3 uv_to_eye(float2 uv, float eye_z) +{ + uv = uv * float2(2.0f, 2.0f) - float2(1.0f, 1.0f); + return float3(uv * pos_decompression_params.xy, 1.0f) * eye_z; +} + +/* + SSAO Ðагло украдено у Sir Lancevrot (Ñ ÐµÐ³Ð¾ разрешениÑ) +*/ + +float3 GetViewPos(float2 uv) +{ + float3 tap_pos = tex2Dlod(s_position, float4(uv, 0.0f, 0.0f)); + return uv_to_eye(uv, tap_pos.z); +} + +float doPBAO(float2 uv, float3 pos, float3 n, float invRad, float bias, float selfOcc) +{ + float3 p = GetViewPos(uv); + float3 dist = p - pos; + + float len = length(dist); + float3 v = dist * rcp(len); + + float atten = len * invRad; + return max(-selfOcc, dot(n, v) - bias) * rcp(atten * atten + 1.0f); +} + +float calc_ssao(float3 pos, float3 normal, float2 tc0, float2 tcJ) +{ + // define kernel + float n = 0.0f; + const float step = 0.875f; + const float fScale = 0.57735f * 0.025f; + + const float inv2 = 0.5f; + const float inv5_3 = 0.188679245283f; + const float inv8 = 0.125f; + const float inv16 = 0.0625f; + const float selfOcc = 0.0f; // range: 0.0f to 1.0f + const float2 focalLen = rcp(pos_decompression_params.xy); + + const float3 arrKernel[8] = + { + float3( 1.0, 1.0, 1.0) * fScale * (n += step), + float3(-1.0, -1.0, -1.0) * fScale * (n += step), + float3(-1.0, -1.0, 1.0) * fScale * (n += step), + float3(-1.0, 1.0, -1.0) * fScale * (n += step), + float3(-1.0, 1.0, 1.0) * fScale * (n += step), + float3( 1.0, -1.0, -1.0) * fScale * (n += step), + float3( 1.0, -1.0, 1.0) * fScale * (n += step), + float3( 1.0, 1.0, -1.0) * fScale * (n += step), + }; + + float2 tc1 = tc0 * screen_res.xy * 0.015625f; + float3 rotSample = tex2D(jitter0, tc1).xyz; + rotSample = normalize(rotSample - 0.5f); + + pos = uv_to_eye(tc0, pos.z * 0.99f); + + // calculate angle bias + float bias = 0.0; + + // calculate contrast + float contrast = inv16 * rcp(1.0f - saturate(bias)); + + // calculate radius + float radius = SSAO_RADIUS * saturate(pos.z * inv5_3) * (1.0f + pos.z * inv8); + float invRad = rcp(radius); + + float2 radius2D = radius * focalLen * rcp(pos.z); + float ao = 0.0f; + + // calculate ao + [unroll] + for (int i = 0; i < 8; ++i) { + float2 deltaUV = reflect(arrKernel[i], rotSample) * radius2D; + ao += doPBAO(tc0 + deltaUV, pos, normal, invRad, bias, selfOcc); + ao += doPBAO(tc0 + deltaUV * inv2, pos, normal, invRad, bias, selfOcc); + } + + ao = 1.0f - (ao * contrast + selfOcc); + return ao * ao * ao; +} +#endif +#endif + diff --git a/gamedata/shaders/r2/ssao_blur.ps.hlsl b/gamedata/shaders/r2/ssao_blur.ps.hlsl new file mode 100644 index 0000000..bce9ad1 --- /dev/null +++ b/gamedata/shaders/r2/ssao_blur.ps.hlsl @@ -0,0 +1,38 @@ +uniform float4 screen_res; +uniform sampler2D s_occ; + +float ssao_blur_ps(float2 centerTC) +{ + // low weight center sample - will be used on edges + float fSumWeight = 0.025f; + float2 centerData = tex2D(s_occ, centerTC); + + float fOcclusion = centerData.r * fSumWeight; + float centerDepth = centerData.g; + + float2 arrOffsets[4] = + { + float2(1, -1), + float2(-1, -1), + float2(1, 1), + float2(-1, 1) + }; + + for (int i = 0; i < 4; i++) + { + float2 sampleTC = centerTC + screen_res.zw * arrOffsets[i]; + float2 sampleData = tex2D(s_occ, sampleTC); + + float fDepth = sampleData.g; + float fDiff = 8 * abs(fDepth - centerDepth) / min(fDepth, centerDepth); + float fWeight = saturate(1 - fDiff); + + fOcclusion += sampleData.r * fWeight; + + fSumWeight += fWeight; + } + + fOcclusion /= fSumWeight; + + return fOcclusion; +} diff --git a/gamedata/shaders/r2/ssao_calc.ps.hlsl b/gamedata/shaders/r2/ssao_calc.ps.hlsl new file mode 100644 index 0000000..f6d15f7 --- /dev/null +++ b/gamedata/shaders/r2/ssao_calc.ps.hlsl @@ -0,0 +1,24 @@ +#include "common.hlsli" + +uniform float3x4 m_v2w; +uniform sampler2D s_half_depth; + +#include "ssao_blur.ps.hlsl" +#include "ssao.ps.hlsl" + +struct _input +{ + float4 hpos : POSITION; + float4 tc0 : TEXCOORD0; + float2 tcJ : TEXCOORD1; +}; + +float4 main(_input I) : COLOR0 +{ + float4 P = tex2D(s_position, I.tc0); // position.(mtl or sun) + float4 N = tex2D(s_normal, I.tc0); // normal.hemi + + float o = calc_ssao(P, N, I.tc0, I.tcJ); + + return float4(o, P.z, 0.0f, 0.0f); +} diff --git a/gamedata/shaders/r2/stub_default.ps.hlsl b/gamedata/shaders/r2/stub_default.ps.hlsl new file mode 100644 index 0000000..5ddebd8 --- /dev/null +++ b/gamedata/shaders/r2/stub_default.ps.hlsl @@ -0,0 +1,13 @@ +#include "common.hlsli" + +struct p_TL +{ + float2 Tex0 : TEXCOORD0; + float4 Color : COLOR; +}; + +// Pixel +float4 main(p_TL I) : COLOR +{ + return tex2D(s_base, I.Tex0) * I.Color; +} diff --git a/gamedata/shaders/r2/stub_notransform_t_font.vs.hlsl b/gamedata/shaders/r2/stub_notransform_t_font.vs.hlsl new file mode 100644 index 0000000..3b62812 --- /dev/null +++ b/gamedata/shaders/r2/stub_notransform_t_font.vs.hlsl @@ -0,0 +1,27 @@ +#include "common.hlsli" + +uniform float4 screen_res; + +struct v2p_TL +{ + float2 Tex0 : TEXCOORD0; + float4 Color : COLOR; + float4 HPos : POSITION; // Clip-space position (for rasterization) +}; + +v2p_TL main(v_vert I) +{ + v2p_TL O; + + { + // I.P.xy += 0.5f; + O.HPos.x = I.P.x * screen_res.z * 2 - 1; + O.HPos.y = (I.P.y * screen_res.w * 2 - 1) * -1; + O.HPos.zw = I.P.zw; + } + + O.Tex0 = 0; // I.uv + screen_res.zw * 0.5f; + O.Color = I.color.rgba; // swizzle vertex colour + + return O; +} diff --git a/gamedata/shaders/r2/vert.ps.hlsl b/gamedata/shaders/r2/vert.ps.hlsl new file mode 100644 index 0000000..c5dd3e5 --- /dev/null +++ b/gamedata/shaders/r2/vert.ps.hlsl @@ -0,0 +1,18 @@ +#include "common.hlsli" + +struct v2p +{ + float2 tc0 : TEXCOORD0; // base + float4 c0 : COLOR0; // rgb.fog +}; + +// Pixel +// Need PS 2.0 for the fog to be applied +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tc0); + float3 final = t_base * I.c0 * 2.0f; + + // out + return float4(final, t_base.a * I.c0.a * I.c0.a); +} diff --git a/gamedata/shaders/r2/vert.vs.hlsl b/gamedata/shaders/r2/vert.vs.hlsl new file mode 100644 index 0000000..d31f9d9 --- /dev/null +++ b/gamedata/shaders/r2/vert.vs.hlsl @@ -0,0 +1,52 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float4 c0 : COLOR0; // c0=all lighting + float fog : FOG; +}; + +/* +struct v_vert +{ + float4 P : POSITION; // (float,float,float,1) + float4 N : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; + float4 B : BINORMAL; + float4 color : COLOR0; // (r,g,b,dir-occlusion) + float2 uv : TEXCOORD0; // (u0,v0) +}; +struct v_static { + float4 P : POSITION; // (float,float,float,1) + float4 Nh : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; // tangent + float4 B : BINORMAL; // binormal + float2 tc : TEXCOORD0; // (u,v) + float2 lmh : TEXCOORD1; // (lmu,lmv) +#if defined(USE_R2_STATIC_SUN) && !defined(USE_LM_HEMI) + float4 color : COLOR0; // (r,g,b,dir-occlusion) +#endif +}; +*/ + +vf main(v_static v) +{ + vf o; + + float3 N = unpack_normal(v.Nh); + o.hpos = mul(m_VP, v.P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.tc, v.T.w, v.B.w); // copy tc + // o.tc0 = unpack_tc_base (v.tc); // copy tc + + float3 L_rgb = v.color.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi(N) * v.Nh.w; // hemisphere + float3 L_sun = v_sun(N) * v.color.w; // sun + float3 L_final = L_rgb + L_hemi + L_sun + L_ambient; + + o.fog = saturate(calc_fogging(v.P)); // fog, input in world coords + o.c0 = float4(L_final, o.fog); + + return o; +} diff --git a/gamedata/shaders/r2/vignette.ps.hlsl b/gamedata/shaders/r2/vignette.ps.hlsl new file mode 100644 index 0000000..6306423 --- /dev/null +++ b/gamedata/shaders/r2/vignette.ps.hlsl @@ -0,0 +1,9 @@ +#include "common.hlsli" + +float4 main(p_shadow I) : COLOR +{ + float3 col = tex2D(s_image, I.tc0).xyz; + col *= 1.0f - saturate(distance(I.tc0, float2(0.5f, 0.5f))); + + return float4(col, 1.0f); +} diff --git a/gamedata/shaders/r2/water.ps.hlsl b/gamedata/shaders/r2/water.ps.hlsl new file mode 100644 index 0000000..cc90568 --- /dev/null +++ b/gamedata/shaders/r2/water.ps.hlsl @@ -0,0 +1,95 @@ +#include "common.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tbase : TEXCOORD0; // base + float2 tnorm0 : TEXCOORD1; // nm0 + float2 tnorm1 : TEXCOORD2; // nm1 + float3 M1 : TEXCOORD3; + float3 M2 : TEXCOORD4; + float3 M3 : TEXCOORD5; + float3 v2point : TEXCOORD6; + float4 tctexgen : TEXCOORD7; + float4 c0 : COLOR0; +}; + +uniform sampler2D s_nmap; +uniform samplerCUBE s_env0; +uniform samplerCUBE s_env1; +uniform sampler2D s_leaves; +uniform float4 pos_decompression_params; + +#if defined(USE_SOFT_WATER) && defined(NEED_SOFT_WATER) +float3 water_intensity; +#endif // defined(USE_SOFT_WATER) && defined(NEED_SOFT_WATER) + +float4 main(vf I) : COLOR +{ + float4 base = tex2D(s_base, I.tbase); + float3 n0 = tex2D(s_nmap, I.tnorm0); + float3 n1 = tex2D(s_nmap, I.tnorm1); + float3 Navg = n0 + n1 - 1.0f; + + float3 Nw = mul(float3x3(I.M1, I.M2, I.M3), Navg); + Nw = normalize(Nw); + float3 v2point = normalize(I.v2point); + float3 vreflect = reflect(v2point, Nw); + + float fresnel = saturate(dot(vreflect, v2point)); + + // true remapping. Slow. + float3 vreflectabs = abs(vreflect); + float vreflectmax = max(vreflectabs.x, max(vreflectabs.y, vreflectabs.z)); + vreflect /= vreflectmax; + vreflect.y = vreflect.y * 2 - 1; + + float3 env0 = texCUBE(s_env0, vreflect); + float3 env1 = texCUBE(s_env1, vreflect); + float3 env = lerp(env0, env1, L_ambient.w); + env *= env * L_sky_color.xyz; + + float power = pow(fresnel, 9.0f); + float amount = 0.25f + 0.55f * power; + + float3 c_reflection = env * amount; + float3 final = lerp(c_reflection, base.rgb, base.a); + +#ifdef NEED_SOFT_WATER + + float alpha = 0.75f + 0.25f * power; + // Igor: additional depth test + #ifdef USE_SOFT_WATER + float4 _P = tex2Dproj(s_position, I.tctexgen); + + float2 PosTc = I.tctexgen.xy / I.tctexgen.w; + float3 waterPos = float3((PosTc * 2 - 1) * pos_decompression_params.xy, 1) * I.tctexgen.z; + float waterDepth = length(waterPos - _P) * 0.75f; + + // water fog + float3 Fc = float3(0.1f, 0.1f, 0.1f) * water_intensity.r; + final = lerp(Fc, final, alpha); + + alpha = min(alpha, saturate(waterDepth)); + alpha = max(1.0f - exp(-4.0f * waterDepth), alpha); + + // Leaves + float4 leaves = tex2D(s_leaves, I.tbase); + leaves.rgb *= water_intensity.r; + float calc_cos = -dot(float3(I.M1.z, I.M2.z, I.M3.z), normalize(v2point)); + float calc_depth = saturate(waterDepth * calc_cos); + float fLeavesFactor = smoothstep(0.025f, 0.05f, calc_depth); + fLeavesFactor *= smoothstep(0.1f, 0.075f, calc_depth); + final = lerp(final, leaves, leaves.a * fLeavesFactor); + alpha = lerp(alpha, leaves.a, leaves.a * fLeavesFactor); + + #endif // USE_SOFT_WATER + final *= I.c0; + + return lerp(float4(final, alpha), fog_color, 1.0f - calc_fogging(I.v2point + eye_position)); + +#else // NEED_SOFT_WATER + return lerp(float4(final, 1.0f), fog_color, 1.0f - calc_fogging(I.v2point + eye_position)); +#endif // NEED_SOFT_WATER +} + diff --git a/gamedata/shaders/r2/water.vs.hlsl b/gamedata/shaders/r2/water.vs.hlsl new file mode 100644 index 0000000..a54ffc7 --- /dev/null +++ b/gamedata/shaders/r2/water.vs.hlsl @@ -0,0 +1,88 @@ +#include "common.hlsli" +#include "shared\waterconfig.hlsli" +#include "shared\watermove.hlsli" + +struct v_vert +{ + float4 P : POSITION; // (float,float,float,1) + float4 N : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; + float4 B : BINORMAL; + float4 color : COLOR0; // (r,g,b,dir-occlusion) + float2 uv : TEXCOORD0; // (u0,v0) +}; + +struct vf +{ + float4 hpos : POSITION; + float2 tbase : TEXCOORD0; // base + float2 tnorm0 : TEXCOORD1; // nm0 + float2 tnorm1 : TEXCOORD2; // nm1 + float3 M1 : TEXCOORD3; + float3 M2 : TEXCOORD4; + float3 M3 : TEXCOORD5; + float3 v2point : TEXCOORD6; +#ifdef USE_SOFT_WATER + #ifdef NEED_SOFT_WATER + float4 tctexgen : TEXCOORD7; + #endif // USE_SOFT_WATER +#endif // NEED_SOFT_WATER + float4 c0 : COLOR0; +}; + +vf main(v_vert v) +{ + vf o; + + float4 P = v.P; // world + float3 NN = unpack_normal(v.N); + P = watermove(P); + + o.v2point = P - eye_position; + o.tbase = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + o.tnorm0 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_0, P.xz, W_DISTORT_AMP_0); + o.tnorm1 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_1, P.xz, W_DISTORT_AMP_1); + + // Calculate the 3x3 transform from tangent space to eye-space + // TangentToEyeSpace = object2eye * tangent2object + // = object2eye * transpose(object2tangent) (since the inverse of a rotation is its transpose) + float3 N = unpack_bx2(v.N); // just scale (assume normal in the -.5f, .5f) + float3 T = unpack_bx2(v.T); // + float3 B = unpack_bx2(v.B); // + float3x3 xform = mul((float3x3)m_W, float3x3( + T.x, B.x, N.x, + T.y, B.y, N.y, + T.z, B.z, N.z)); + // The pixel shader operates on the bump-map in [0..1] range + // Remap this range in the matrix, anyway we are pixel-shader limited :) + // ...... [ 2 0 0 0] + // ...... [ 0 2 0 0] + // ...... [ 0 0 2 0] + // ...... [-1 -1 -1 1] + // issue: strange, but it's slower :( + // issue: interpolators? dp4? VS limited? black magic? + + // Feed this transform to pixel shader + o.M1 = xform[0]; + o.M2 = xform[1]; + o.M3 = xform[2]; + + float3 L_rgb = v.color.xyz; // precalculated RGB lighting + float3 L_hemi = v_hemi(N) * v.N.w; // hemisphere + float3 L_sun = v_sun(N) * v.color.w; // sun + float3 L_final = L_rgb + L_hemi + L_sun + L_ambient; + // L_final = v.N.w + L_ambient; + + o.hpos = mul(m_VP, P); // xform, input in world coords + o.c0 = float4(L_final, 1); + +// Igor: for additional depth dest +#ifdef USE_SOFT_WATER + #ifdef NEED_SOFT_WATER + o.tctexgen = mul(m_texgen, P); + float3 Pe = mul(m_V, P); + o.tctexgen.z = Pe.z; + #endif // USE_SOFT_WATER +#endif // NEED_SOFT_WATER + return o; +} diff --git a/gamedata/shaders/r2/water_soft.ps.hlsl b/gamedata/shaders/r2/water_soft.ps.hlsl new file mode 100644 index 0000000..bf05b2d --- /dev/null +++ b/gamedata/shaders/r2/water_soft.ps.hlsl @@ -0,0 +1,2 @@ +#define NEED_SOFT_WATER +#include "water.ps.hlsl" diff --git a/gamedata/shaders/r2/water_soft.vs.hlsl b/gamedata/shaders/r2/water_soft.vs.hlsl new file mode 100644 index 0000000..fcaa7b4 --- /dev/null +++ b/gamedata/shaders/r2/water_soft.vs.hlsl @@ -0,0 +1,2 @@ +#define NEED_SOFT_WATER +#include "water.vs.hlsl" diff --git a/gamedata/shaders/r2/waterd.ps.hlsl b/gamedata/shaders/r2/waterd.ps.hlsl new file mode 100644 index 0000000..8fe3234 --- /dev/null +++ b/gamedata/shaders/r2/waterd.ps.hlsl @@ -0,0 +1,50 @@ +#include "common.hlsli" +#include "shared\waterconfig.hlsli" + +struct v2p +{ + float2 tbase : TEXCOORD0; // base + float2 tdist0 : TEXCOORD1; // d0 + float2 tdist1 : TEXCOORD2; // d1 + float4 tctexgen : TEXCOORD3; +}; + +uniform sampler2D s_distort; +#define POWER .5h + +// Pixel +float4 main(v2p I) : COLOR +{ + float4 t_base = tex2D(s_base, I.tbase); + + float2 t_d0 = tex2D(s_distort, I.tdist0); + float2 t_d1 = tex2D(s_distort, I.tdist1); + float2 distort = (t_d0 + t_d1) * 0.5f; // average + float2 zero = float2(0.5f, 0.5f); + float2 faded = lerp(distort, zero, t_base.a); + + // Igor: additional depth test +#ifdef USE_SOFT_WATER + #ifdef NEED_SOFT_WATER + float alphaDistort; + float4 _P = tex2Dproj(s_position, I.tctexgen); + float waterDepth = _P.z - I.tctexgen.z; + alphaDistort = saturate(5 * waterDepth); + faded = lerp(zero, faded, alphaDistort); + #endif // NEED_SOFT_WATER +#endif // USE_SOFT_WATER & NEED_SOFT_WATER + + float2 faded_bx2 = (faded * 2.0f - 1.0f) * W_DISTORT_POWER; + float faded_dot = dot(float3(faded_bx2, 0.0f), 0.75f); // 0.75 + float alpha = 0.5f; // abs (faded_dot); + + faded = faded * POWER - .5 * POWER + 0.5; + + // out + // Igor: need for alpha water +#ifdef NEED_SOFT_WATER + return float4(faded, 0.0f, alpha); +#else // NEED_SOFT_WATER + return float4(faded, 0.08f, alpha); +#endif // NEED_SOFT_WATER +} diff --git a/gamedata/shaders/r2/waterd.vs.hlsl b/gamedata/shaders/r2/waterd.vs.hlsl new file mode 100644 index 0000000..a5882c9 --- /dev/null +++ b/gamedata/shaders/r2/waterd.vs.hlsl @@ -0,0 +1,51 @@ +#include "common.hlsli" +#include "shared\waterconfig.hlsli" +#include "shared\watermove.hlsli" + +struct v_vert +{ + float4 P : POSITION; // (float,float,float,1) + float4 N : NORMAL; // (nx,ny,nz,hemi occlusion) + float4 T : TANGENT; + float4 B : BINORMAL; + float4 color : COLOR0; // (r,g,b,dir-occlusion) + float2 uv : TEXCOORD0; // (u0,v0) +}; + +struct vf +{ + float4 hpos : POSITION; + float2 tbase : TEXCOORD0; + float2 tdist0 : TEXCOORD1; + float2 tdist1 : TEXCOORD2; +#ifdef USE_SOFT_WATER + #ifdef NEED_SOFT_WATER + float4 tctexgen : TEXCOORD3; + #endif // USE_SOFT_WATER +#endif // NEED_SOFT_WATER +}; + +vf main(v_vert v) +{ + vf o; + + float4 P = v.P; + float3 N = unpack_normal(v.N); + P = watermove(P); + + o.tbase = unpack_tc_base(v.uv, v.T.w, v.B.w); // copy tc + o.tdist0 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_0, P.xz, W_DISTORT_AMP_0); + o.tdist1 = watermove_tc(o.tbase * W_DISTORT_BASE_TILE_1, P.xz, W_DISTORT_AMP_1); + o.hpos = mul(m_VP, P); // xform, input in world coords + +// Igor: for additional depth dest +#ifdef USE_SOFT_WATER + #ifdef NEED_SOFT_WATER + o.tctexgen = mul(m_texgen, P); + float3 Pe = mul(m_V, P); + o.tctexgen.z = Pe.z; + #endif // USE_SOFT_WATER +#endif // NEED_SOFT_WATER + + return o; +} diff --git a/gamedata/shaders/r2/waterd_soft.ps.hlsl b/gamedata/shaders/r2/waterd_soft.ps.hlsl new file mode 100644 index 0000000..940d4f6 --- /dev/null +++ b/gamedata/shaders/r2/waterd_soft.ps.hlsl @@ -0,0 +1,2 @@ +#define NEED_SOFT_WATER +#include "waterd.ps.hlsl" diff --git a/gamedata/shaders/r2/waterd_soft.vs.hlsl b/gamedata/shaders/r2/waterd_soft.vs.hlsl new file mode 100644 index 0000000..5dfae57 --- /dev/null +++ b/gamedata/shaders/r2/waterd_soft.vs.hlsl @@ -0,0 +1,2 @@ +#define NEED_SOFT_WATER +#include "waterd.vs.hlsl" diff --git a/gamedata/shaders/r2/wmark.vs.hlsl b/gamedata/shaders/r2/wmark.vs.hlsl new file mode 100644 index 0000000..94baf6b --- /dev/null +++ b/gamedata/shaders/r2/wmark.vs.hlsl @@ -0,0 +1,30 @@ +#include "common.hlsli" +#include "shared\wmark.hlsli" + +struct vf +{ + float4 hpos : POSITION; + float2 tc0 : TEXCOORD0; + float3 c0 : COLOR0; // c0=all lighting + float fog : FOG; +}; + +vf main(v_static v) +{ + vf o; + + float3 N = unpack_normal(v.Nh); + float4 P = wmark_shift(v.P, N); + o.hpos = mul(m_VP, P); // xform, input in world coords + o.tc0 = unpack_tc_base(v.tc, v.T.w, v.B.w); // copy tc + + // float3 L_rgb = v.color.xyz; // precalculated RGB lighting + // float3 L_hemi = v_hemi(N)*v.norm.w; // hemisphere + // float3 L_sun = v_sun(N)*v.color.w; // sun + // float3 L_final = L_rgb + L_hemi + L_sun + L_ambient ; + + o.c0 = 0; // L_final; + o.fog = saturate(calc_fogging(v.P)); // fog, input in world coords + + return o; +} diff --git a/gamedata/shaders/r2/yuv2rgb.ps.hlsl b/gamedata/shaders/r2/yuv2rgb.ps.hlsl new file mode 100644 index 0000000..6b31cb4 --- /dev/null +++ b/gamedata/shaders/r2/yuv2rgb.ps.hlsl @@ -0,0 +1,25 @@ +#include "common.hlsli" + +float4 main(float2 uv : TEXCOORD0) : COLOR +{ + float3 YUV = tex2D(s_base, uv); + + float Y = YUV.x; + float U = YUV.y; + float V = YUV.z; + + /* + float _T = 1.16406f*Y; + float R1 = _T + 1.59765f*V - 0.86961f; + float G1 = _T - 0.390625f*U - 0.8125f*V + 0.53076f; + float B1 = _T + 2.01562f*U - 1.0786f; + */ + + float c = 1.16406f; + float3 _Y = float3(c, c, c) * Y; + float3 _U = float3(0.0f, -0.390625f, +2.01562f) * U; + float3 _V = float3(+1.59765f, -0.8125f, 0.0f) * V; + float3 _S = float3(-0.86961f, +0.53076f, -1.0786f); + + return float4(_Y + _U + _V + _S, 1); +} diff --git a/gamedata/shaders/shared/cloudconfig.hlsli b/gamedata/shaders/shared/cloudconfig.hlsli new file mode 100644 index 0000000..7f2e393 --- /dev/null +++ b/gamedata/shaders/shared/cloudconfig.hlsli @@ -0,0 +1,11 @@ +#ifndef _CLOUDCONFIG_H +#define _CLOUDCONFIG_H + +// note: timers has resolution (sec), where x=1, y=10, z=1/10, +#define CLOUD_TILE0 (0.7f) +#define CLOUD_SPEED0 (2 * 0.05) //(0.033f) +#define CLOUD_TILE1 (2.8) //(2.5f) +#define CLOUD_SPEED1 (2 * 0.025) //(0.033f) +#define CLOUD_FADE (0.5) + +#endif diff --git a/gamedata/shaders/shared/common.hlsli b/gamedata/shaders/shared/common.hlsli new file mode 100644 index 0000000..e74c947 --- /dev/null +++ b/gamedata/shaders/shared/common.hlsli @@ -0,0 +1,58 @@ +#ifndef SHARED_COMMON_H +#define SHARED_COMMON_H + +uniform float3x4 m_W; +uniform float3x4 m_V; +uniform float4x4 m_P; +uniform float3x4 m_WV; +uniform float4x4 m_VP; +uniform float4x4 m_WVP; +uniform float4 timers; +uniform float4 fog_plane; +uniform float4 fog_params; // x=near*(1/(far-near)), ?,?, w = -1/(far-near) +uniform float4 fog_color; +uniform float3 L_sun_color; +uniform float3 L_sun_dir_w; +uniform float3 L_sun_dir_e; +uniform float4 L_hemi_color; +uniform float4 L_ambient; // L_ambient.w = skynbox-lerp-factor +uniform float3 eye_position; +uniform float3 eye_direction; +uniform float3 eye_normal; +uniform float4 dt_params; + +float3 unpack_normal(float3 v) +{ + return 2.0f * v - 1.0f; +} +float3 unpack_bx2(float3 v) +{ + return 2.0f * v - 1.0f; +} +float3 unpack_bx4(float3 v) +{ + return 4.0f * v - 2.0f; +} + +float2 unpack_tc_base(float2 tc, float du, float dv) +{ + return (tc.xy + float2(du, dv)) * (32.f / 32768.f); +} + +float2 unpack_tc_lmap(float2 tc) +{ + return tc * (1.f / 32768.f); +} // [-1 .. +1 ] + +float calc_cyclic(float x) +{ + float f = 1.4142f * sin(x * 3.14159f); + return f * f - 1.0f; +} + +float2 calc_xz_wave(float2 dir2D, float frac) +{ + return dir2D * frac; +} + +#endif diff --git a/gamedata/shaders/shared/waterconfig.hlsli b/gamedata/shaders/shared/waterconfig.hlsli new file mode 100644 index 0000000..574ff65 --- /dev/null +++ b/gamedata/shaders/shared/waterconfig.hlsli @@ -0,0 +1,55 @@ +#ifndef _WATERCONFIG_H + #define _WATERCONFIG_H + +// наÑтройки длÑ: (1) +// waterdistortion +// waterdistortion2 + + #define W_POSITION_SHIFT_HEIGHT (1.f / 60.f) //(1.f/100.f) //amplitude /50 - small, /10 - large + #define W_POSITION_SHIFT_SPEED (25.f) //(25.0f) + #define W_DISTORT_BASE_TILE_0 (1.0f) //(1.0f) + #define W_DISTORT_BASE_TILE_1 (1.1f) //(1.1f) + #define W_DISTORT_AMP_0 (+0.15f) //(+0.15f) + #define W_DISTORT_AMP_1 (+0.55f) //(-0.30f) + #define W_DISTORT_POWER (1.0f) //(1.0f) + +#endif + +/* +//////////////////////////////////////////////////////////////////////////////// +-- waters clear +//////////////////////////////////////////////////////////////////////////////// +наÑтройки длÑ: + waterdistortion + waterdistortion2 +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/50.f) //(1.f/100.f) //amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (15.f) //(25.0f) +#define W_DISTORT_BASE_TILE_0 (1.3f) //(1.6f) +#define W_DISTORT_BASE_TILE_1 (2.3f) //(1.1f) +#define W_DISTORT_AMP_0 (+0.35f) //(+0.15f) +#define W_DISTORT_AMP_1 (-1.75f) //(-0.30f) +#define W_DISTORT_POWER (1.0f) //(1.0f) +//////////////////////////////////////////////////////////////////////////////// +наÑтройки длÑ: + waterdistortion + waterdistortion +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/80.f) //(1.f/100.f) //amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (20.f) //(25.0f) +#define W_DISTORT_BASE_TILE_0 (1.6f) //(1.6f) +#define W_DISTORT_BASE_TILE_1 (1.1f) //(1.1f) +#define W_DISTORT_AMP_0 (+0.15f) //(+0.15f) +#define W_DISTORT_AMP_1 (-0.30f) //(-0.30f) +#define W_DISTORT_POWER (6.0f) //(6.0f) +//////////////////////////////////////////////////////////////////////////////// +-- waters mulyaka +//////////////////////////////////////////////////////////////////////////////// +#define W_POSITION_SHIFT_HEIGHT (1.f/50.f) // amplitude /50 - small, /10 - large +#define W_POSITION_SHIFT_SPEED (25.f) +#define W_DISTORT_BASE_TILE (0.1f) //(1.0f) +#define W_DISTORT_AMP_0 (+0.58f) //(-0.08f) +#define W_DISTORT_AMP_1 (+0.38f) //(+0.18f) +#define W_DISTORT_POWER (3.0f) //(2.0f) +//////////////////////////////////////////////////////////////////////////////// +*/ diff --git a/gamedata/shaders/shared/watermove.hlsli b/gamedata/shaders/shared/watermove.hlsli new file mode 100644 index 0000000..dfc5045 --- /dev/null +++ b/gamedata/shaders/shared/watermove.hlsli @@ -0,0 +1,30 @@ +#ifndef _WATERMOVE_H +#define _WATERMOVE_H + +float4 watermove(float4 P) +{ + float3 wave1 = float3(0.11f, 0.13f, 0.07f) * W_POSITION_SHIFT_SPEED; + float dh = sin(timers.x + dot((float3)P, wave1)); + P.y += dh * W_POSITION_SHIFT_HEIGHT; + return P; +} + +float2 watermove_tc(float2 base, float2 P, float amp) +{ + float2 wave1 = float2(0.2111f, 0.2333f) * amp; + float angle = timers.z + dot(P, wave1); + float du = sin(angle); + float dv = cos(angle); + return (base + amp * float2(du, dv)); +} + +float3 waterrefl(out float amount, float3 P, float3 N) +{ + float3 v2point = normalize(P - eye_position); + float3 vreflect = reflect(v2point, N); + float fresnel = (.5f + .5f * dot(vreflect, v2point)); + amount = 1 - fresnel * fresnel; // 0=full env, 1=no env + return vreflect; +} + +#endif diff --git a/gamedata/shaders/shared/wmark.hlsli b/gamedata/shaders/shared/wmark.hlsli new file mode 100644 index 0000000..1075380 --- /dev/null +++ b/gamedata/shaders/shared/wmark.hlsli @@ -0,0 +1,24 @@ +#ifndef WMARK_H +#define WMARK_H + +#include "common.hlsli" + +#define NORMAL_SHIFT 0.007f +#define MIN_SHIFT 0.003f +#define MAX_SHIFT 0.011f +#define RANGE 100.f + +float4 wmark_shift(float3 pos, float3 norm) +{ + float3 P = pos; + float3 N = norm; + float3 sd = eye_position - P; + float d = length(sd); + float w = min(d / RANGE, 1.f); + float s = lerp(MIN_SHIFT, MAX_SHIFT, d); + P += N.xyz * NORMAL_SHIFT; + P -= normalize(eye_direction + normalize(P - eye_position)) * s; + return float4(P, 1.f); +} + +#endif diff --git a/gamedata/shaders/start_rename.ps1 b/gamedata/shaders/start_rename.ps1 new file mode 100644 index 0000000..72bfb33 --- /dev/null +++ b/gamedata/shaders/start_rename.ps1 @@ -0,0 +1,30 @@ +# Define the directories +$directories = @("r1", "r2", "r3", "editor", "shared") + +# Define the extension mappings +$extensionMappings = @{ + ".h" = ".hlsli" + ".s" = ".lua" + ".s_" = ".lua_" + ".ps" = ".ps.hlsl" + ".vs" = ".vs.hlsl" + ".ds" = ".ds.hlsl" + ".hs" = ".hs.hlsl" + ".gs" = ".gs.hlsl" + ".cs" = ".cs.hlsl" +} + +# Loop through each directory +foreach ($dir in $directories) { + # Loop through each extension mapping + foreach ($ext in $extensionMappings.Keys) { + # Get all files with the current extension recursively in the current directory + $files = Get-ChildItem -Path $dir -Filter "*$ext" -Recurse + + # Loop through each file and rename it + foreach ($file in $files) { + $newName = [System.IO.Path]::ChangeExtension($file.FullName, $extensionMappings[$ext]) + Rename-Item -Path $file.FullName -NewName $newName + } + } +} diff --git a/gamedata/sounds/device/torch_click.ogg b/gamedata/sounds/device/torch_click.ogg new file mode 100644 index 0000000..9d7db8f --- /dev/null +++ b/gamedata/sounds/device/torch_click.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f727558026d47c927b64111bf22c9c5fe82508a4dd5db8de50f715f6573acff5 +size 10705 diff --git a/gamedata/sounds/device/torch_click_off.ogg b/gamedata/sounds/device/torch_click_off.ogg new file mode 100644 index 0000000..bd4c2ff --- /dev/null +++ b/gamedata/sounds/device/torch_click_off.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffabbb54e5facc5a60a898867e305c413542338b190e775441d0f984626737d1 +size 11383 diff --git a/gamedata/textures/ed/bar/add.dds b/gamedata/textures/ed/bar/add.dds new file mode 100644 index 0000000..90461fa --- /dev/null +++ b/gamedata/textures/ed/bar/add.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72cf3bfde84f42d45cdbd7cd4ae2132b628f7764250204d0f309c7fd08a5f9bd +size 384 diff --git a/gamedata/textures/ed/bar/aimap.dds b/gamedata/textures/ed/bar/aimap.dds new file mode 100644 index 0000000..d055fa0 --- /dev/null +++ b/gamedata/textures/ed/bar/aimap.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c6ef15632081a97d7824d87d6e1a449c08c25fd2afbbb8f17df6a2095be3f64 +size 1152 diff --git a/gamedata/textures/ed/bar/angle.dds b/gamedata/textures/ed/bar/angle.dds new file mode 100644 index 0000000..82ecc06 --- /dev/null +++ b/gamedata/textures/ed/bar/angle.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef676dc4adc85746491316c5cbf9e2ef96d4944a6f74aa66fb5373acbbee9430 +size 384 diff --git a/gamedata/textures/ed/bar/arcball.dds b/gamedata/textures/ed/bar/arcball.dds new file mode 100644 index 0000000..d17c4d4 --- /dev/null +++ b/gamedata/textures/ed/bar/arcball.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4f505303d42a5ae294e99e49b13e3deb1d0c698c69a8866e3ce4cb52e185198 +size 16512 diff --git a/gamedata/textures/ed/bar/asnap.dds b/gamedata/textures/ed/bar/asnap.dds new file mode 100644 index 0000000..765c54a --- /dev/null +++ b/gamedata/textures/ed/bar/asnap.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c4c695db16ebdaa7337b6e8be1002814fe584a38fd11d7fcdc5a407924c9b49 +size 11088 diff --git a/gamedata/textures/ed/bar/axismove.dds b/gamedata/textures/ed/bar/axismove.dds new file mode 100644 index 0000000..5be3ab9 --- /dev/null +++ b/gamedata/textures/ed/bar/axismove.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44c70487c28f780f756366034c899c86c3d61cb577ca33603c7c324afaa4c577 +size 65664 diff --git a/gamedata/textures/ed/bar/axisx.dds b/gamedata/textures/ed/bar/axisx.dds new file mode 100644 index 0000000..520acfd --- /dev/null +++ b/gamedata/textures/ed/bar/axisx.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:452cf50c726f14a1be15f015996f7e741b762bb8190406cd14096fc8dd557bfb +size 16512 diff --git a/gamedata/textures/ed/bar/axisy.dds b/gamedata/textures/ed/bar/axisy.dds new file mode 100644 index 0000000..e3560b8 --- /dev/null +++ b/gamedata/textures/ed/bar/axisy.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:353835d62d8c3cfd1d3526927d763d2e2135f352c670ce289bd92e59c9c52bfd +size 16512 diff --git a/gamedata/textures/ed/bar/axisz.dds b/gamedata/textures/ed/bar/axisz.dds new file mode 100644 index 0000000..5fb5d02 --- /dev/null +++ b/gamedata/textures/ed/bar/axisz.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be34f8097ab5e26f175d6eee6441f032c88271a4f9bbfda9e88d7b66fd7628b2 +size 16512 diff --git a/gamedata/textures/ed/bar/axiszx.dds b/gamedata/textures/ed/bar/axiszx.dds new file mode 100644 index 0000000..ac02d55 --- /dev/null +++ b/gamedata/textures/ed/bar/axiszx.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bf0dc4dfd84b3bbd14770492c3c4fcafd2cf7d20456223e47882c296abe10eb +size 16512 diff --git a/gamedata/textures/ed/bar/build_all.dds b/gamedata/textures/ed/bar/build_all.dds new file mode 100644 index 0000000..db4929a --- /dev/null +++ b/gamedata/textures/ed/bar/build_all.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b16fe59ed4626dc98e882894344aeeed33abc95b668c35a7b3f0a26444fc78bc +size 22000 diff --git a/gamedata/textures/ed/bar/cform.dds b/gamedata/textures/ed/bar/cform.dds new file mode 100644 index 0000000..da2809b --- /dev/null +++ b/gamedata/textures/ed/bar/cform.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a400d453fa8e2b59e6abffb57f1a73eceb8bf8ae507e8ab10b2fcb2aecd99d23 +size 1728 diff --git a/gamedata/textures/ed/bar/cslocal.dds b/gamedata/textures/ed/bar/cslocal.dds new file mode 100644 index 0000000..b11d008 --- /dev/null +++ b/gamedata/textures/ed/bar/cslocal.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d647d7797205da7f9be0794e9663d7d6437c6c25d743c8f38770a42364c2d3c5 +size 11088 diff --git a/gamedata/textures/ed/bar/delete.dds b/gamedata/textures/ed/bar/delete.dds new file mode 100644 index 0000000..5658e2c --- /dev/null +++ b/gamedata/textures/ed/bar/delete.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6698d3c226097c1e05fd31ba5e3e357aa9933c285f1a6aee1f8fe498402379da +size 22000 diff --git a/gamedata/textures/ed/bar/eye.dds b/gamedata/textures/ed/bar/eye.dds new file mode 100644 index 0000000..b12e1b6 --- /dev/null +++ b/gamedata/textures/ed/bar/eye.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d4af5f9cd392c128d0e602b01598999541adb66593d3dec31197244c7a1bb83 +size 5616 diff --git a/gamedata/textures/ed/bar/favorite_off.dds b/gamedata/textures/ed/bar/favorite_off.dds new file mode 100644 index 0000000..d852c8a --- /dev/null +++ b/gamedata/textures/ed/bar/favorite_off.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc14c274deb4da7a6586b841cad81a5d6cfea4954a88cac54d3fd6aa0ca49d0c +size 496 diff --git a/gamedata/textures/ed/bar/favorite_on.dds b/gamedata/textures/ed/bar/favorite_on.dds new file mode 100644 index 0000000..34744d7 --- /dev/null +++ b/gamedata/textures/ed/bar/favorite_on.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0e8c36f8a573fa2d55132158e1ef83656a2784a1d0986b172fc1a26fef47c61 +size 496 diff --git a/gamedata/textures/ed/bar/freefly.dds b/gamedata/textures/ed/bar/freefly.dds new file mode 100644 index 0000000..cbefaf7 --- /dev/null +++ b/gamedata/textures/ed/bar/freefly.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95938b8416255d3deba9fae6fe6613c24e2f871f3d16ce260474cd81861958c3 +size 16512 diff --git a/gamedata/textures/ed/bar/ggraph.dds b/gamedata/textures/ed/bar/ggraph.dds new file mode 100644 index 0000000..0b10e3a --- /dev/null +++ b/gamedata/textures/ed/bar/ggraph.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a00ecf234795a43b6eb1b39308ea16f43a7d93ba6fa1dd303e40c19bf93cbc49 +size 1152 diff --git a/gamedata/textures/ed/bar/grid.dds b/gamedata/textures/ed/bar/grid.dds new file mode 100644 index 0000000..5eef57a --- /dev/null +++ b/gamedata/textures/ed/bar/grid.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e4f28c5c329abf03de979fa6696aa499b7a44818ba22c942358e6b9a441ded0 +size 384 diff --git a/gamedata/textures/ed/bar/gsnap.dds b/gamedata/textures/ed/bar/gsnap.dds new file mode 100644 index 0000000..2900408 --- /dev/null +++ b/gamedata/textures/ed/bar/gsnap.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45224580379e2e8be17f9b6c77b8501d0a2b5c301f8d9d096b714ac279804310 +size 10576 diff --git a/gamedata/textures/ed/bar/menu.dds b/gamedata/textures/ed/bar/menu.dds new file mode 100644 index 0000000..6bb779a --- /dev/null +++ b/gamedata/textures/ed/bar/menu.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c38a2b3d717b0605217df9888df38e3debd0788f15ef0ed8044a8bd9dd26da2 +size 384 diff --git a/gamedata/textures/ed/bar/move.dds b/gamedata/textures/ed/bar/move.dds new file mode 100644 index 0000000..c39bc61 --- /dev/null +++ b/gamedata/textures/ed/bar/move.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef09346d1764a0408aab705a1324c8b07edb6182c13954907263701708a74f63 +size 384 diff --git a/gamedata/textures/ed/bar/movetosnap.dds b/gamedata/textures/ed/bar/movetosnap.dds new file mode 100644 index 0000000..c5ac272 --- /dev/null +++ b/gamedata/textures/ed/bar/movetosnap.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52b28aed71c6189ed8dd7db02ccd0d93c99469c5abd7ea6d65b390ef4ce11fe7 +size 11088 diff --git a/gamedata/textures/ed/bar/msnap.dds b/gamedata/textures/ed/bar/msnap.dds new file mode 100644 index 0000000..d76b500 --- /dev/null +++ b/gamedata/textures/ed/bar/msnap.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f23eee7ae46de90124f14e34bc63c45ec38dad445038d2bc9861e0f84e54f162 +size 11088 diff --git a/gamedata/textures/ed/bar/new.dds b/gamedata/textures/ed/bar/new.dds new file mode 100644 index 0000000..2d8e961 --- /dev/null +++ b/gamedata/textures/ed/bar/new.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a0239d6072561f1e78bca5c1e9270e450156803bded53f6b54a3fa2c3e96557 +size 768 diff --git a/gamedata/textures/ed/bar/nsnap.dds b/gamedata/textures/ed/bar/nsnap.dds new file mode 100644 index 0000000..54b6d14 --- /dev/null +++ b/gamedata/textures/ed/bar/nsnap.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6f84872037b9e89c40c726d55c495426513b8c6aac2d9588e543f47e3648f46 +size 11088 diff --git a/gamedata/textures/ed/bar/nuscale.dds b/gamedata/textures/ed/bar/nuscale.dds new file mode 100644 index 0000000..ef9afdc --- /dev/null +++ b/gamedata/textures/ed/bar/nuscale.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6115c907175096c5251d50032d2636dab874d6852aa8c0e9a5589ddb719b36f +size 8320 diff --git a/gamedata/textures/ed/bar/open.dds b/gamedata/textures/ed/bar/open.dds new file mode 100644 index 0000000..80c3ae5 --- /dev/null +++ b/gamedata/textures/ed/bar/open.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4a393f19b12b8d16d67c181ce9a7a37a9acce6b407b3f0ad3e006b0b71c6f65 +size 768 diff --git a/gamedata/textures/ed/bar/open_gamedata.dds b/gamedata/textures/ed/bar/open_gamedata.dds new file mode 100644 index 0000000..d1c5c21 --- /dev/null +++ b/gamedata/textures/ed/bar/open_gamedata.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:007bdc420b6f70d2d34251fd2df61171b65e2fa3f74239415cb6e1ebebf9d552 +size 2248 diff --git a/gamedata/textures/ed/bar/osnap.dds b/gamedata/textures/ed/bar/osnap.dds new file mode 100644 index 0000000..0e1b689 --- /dev/null +++ b/gamedata/textures/ed/bar/osnap.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:677992bbde05a492b8a0fc8ac0daf191088cc6e8cce20fc44c602158b53bbbae +size 11088 diff --git a/gamedata/textures/ed/bar/planemove.dds b/gamedata/textures/ed/bar/planemove.dds new file mode 100644 index 0000000..2536d25 --- /dev/null +++ b/gamedata/textures/ed/bar/planemove.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2f94c4ebabf95a0f580d869127203a421ba250e91bcd1bfa468fb6188a72f97 +size 16512 diff --git a/gamedata/textures/ed/bar/play_clean_game.dds b/gamedata/textures/ed/bar/play_clean_game.dds new file mode 100644 index 0000000..5554ad3 --- /dev/null +++ b/gamedata/textures/ed/bar/play_clean_game.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7b8749cbfdcecef088d61f57170bbbea0ec957adebba619b4eb10ebb0c535fb +size 2248 diff --git a/gamedata/textures/ed/bar/play_in_editor.dds b/gamedata/textures/ed/bar/play_in_editor.dds new file mode 100644 index 0000000..de3a7bb --- /dev/null +++ b/gamedata/textures/ed/bar/play_in_editor.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db183f40fcade68fdf9ed1dbde8efa70fd985e44797982dcfa768647fa17fb57 +size 2248 diff --git a/gamedata/textures/ed/bar/play_pc.dds b/gamedata/textures/ed/bar/play_pc.dds new file mode 100644 index 0000000..3585cd7 --- /dev/null +++ b/gamedata/textures/ed/bar/play_pc.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c68cd163a4437ee7bc4172e16421d92268409612420bd12dce4bf2fbc756034 +size 2248 diff --git a/gamedata/textures/ed/bar/redo.dds b/gamedata/textures/ed/bar/redo.dds new file mode 100644 index 0000000..7e1316e --- /dev/null +++ b/gamedata/textures/ed/bar/redo.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83b78b00a76ac595fb6ddc00a2ef27b21f07dbf98ac27dab98a6674815bb3449 +size 8320 diff --git a/gamedata/textures/ed/bar/reload_configs.dds b/gamedata/textures/ed/bar/reload_configs.dds new file mode 100644 index 0000000..757a3f1 --- /dev/null +++ b/gamedata/textures/ed/bar/reload_configs.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8abc4dc63a3533d9daf3dd615a6e97df3af636a40f03aff05cc2af547a773c2 +size 2248 diff --git a/gamedata/textures/ed/bar/rotate.dds b/gamedata/textures/ed/bar/rotate.dds new file mode 100644 index 0000000..fbe458b --- /dev/null +++ b/gamedata/textures/ed/bar/rotate.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b40d8951501a56a90a44e4c6fbea591f4007b3f666964ff16d77382595422bc4 +size 384 diff --git a/gamedata/textures/ed/bar/save.dds b/gamedata/textures/ed/bar/save.dds new file mode 100644 index 0000000..1f0245d --- /dev/null +++ b/gamedata/textures/ed/bar/save.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54e389d73a419ae2cd12570177f27f22222ec30975022cdba7dde337fb586452 +size 768 diff --git a/gamedata/textures/ed/bar/save_xr.dds b/gamedata/textures/ed/bar/save_xr.dds new file mode 100644 index 0000000..46e04ce --- /dev/null +++ b/gamedata/textures/ed/bar/save_xr.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10fd7574a27e806cde23047cd10c16a0e243f8b734b7687179245e6b8a405c8e +size 1728 diff --git a/gamedata/textures/ed/bar/scale.dds b/gamedata/textures/ed/bar/scale.dds new file mode 100644 index 0000000..c250b2a --- /dev/null +++ b/gamedata/textures/ed/bar/scale.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9e2edc2afd6bed451693a28214e230f34ce413ed2d20e533d134a9b1e796318 +size 384 diff --git a/gamedata/textures/ed/bar/scale_grid.dds b/gamedata/textures/ed/bar/scale_grid.dds new file mode 100644 index 0000000..1bb4608 --- /dev/null +++ b/gamedata/textures/ed/bar/scale_grid.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a38e0b731a318a363be76fae53d65ec34ffb9cd740f7ed16eebcfb5a0ec93f5 +size 384 diff --git a/gamedata/textures/ed/bar/select.dds b/gamedata/textures/ed/bar/select.dds new file mode 100644 index 0000000..53f1f20 --- /dev/null +++ b/gamedata/textures/ed/bar/select.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88a89872a3ab547819236069fedc3e3261632b4842238439028e78f14fdee4c7 +size 384 diff --git a/gamedata/textures/ed/bar/source/aimap.png b/gamedata/textures/ed/bar/source/aimap.png new file mode 100644 index 0000000000000000000000000000000000000000..9a152818137967e1a6b0e31c4a7d06bf28fae68f GIT binary patch literal 55673 zcmeFY_dna;_W+(jLK>SQwRh1{dka;2q-s;NsMQjq_6X5ZdlYT0l-8a_Q7dZKC`HvM zLD8DAQ=`6ly+41$_owgo+?zZf$s@VroOAElFHpuhG%y4V007YF>1vq*02E*V0Gv%l zeg`~~4C*I8fPSVrntyGySHEnGjZ5=o=Uq{@2K0WN2jkf6ds~#Ms0HWukk} zR^QCl(A?J8!q(OVX=9>+GC|p(G;C0sHmKV+C@q`2cWmxz+uYT$F(r3h8&f?SQ+=Cz z2G;isZOsg9%nYr~jI7O!t<6kODAZllUDN+-rl$AE&CK+k*?)};=4R#=<`!la|9ent<6oXEy(?zwS}3rg}Jq* zg|#L54=5{3D_biwYx2X&%G%1>+St`{G5UfL_)jw45FZh;oX(9X|<= zWv-z_xZ!-v{@2B2&0cW$-l4somMG4{^h}(`_p07V+^_gTxxfmK;_~9w%k`PS^K*FT z&vW=$gxb%{IAZsF_m=B%zG~?4;$x=8?}IwPNUfq+3X<5t`C3Uq$K{Ul{0G*slNFQB zu5K1eOMMFU7sS(jFD3TfCvdeZA6~+f-?+L5KXqCsoFDJqxtXGDLA$u=9`ZDxx%HNo z-mvt%qEcr|~6%tM9SicHYEZD_>Sp6%Q-0e zIWmQT;mZ0k*g|%=&fHo5dPZxkYYW)R_WC(bN?`WNMc%knd|Hymem#ZN+jXV(V3bb+ z=vf&|hD2rPj(i@Q3O$NS0TU|RQ1^`X=L#ZD>sYZ-yB*$0V9a#?pVhsEHMd@Kpv;j1 z+Dyfu`)IqpXm54o@UD{4e5=&&s}k>=`$OkEm-Y<#uuHRU4RXUm*OWdhwg$6GfMkDj z+Jw{dBQQEVL=6fB9;yy7NfJ0|QFPcPRH_FojC`AYwz;?P{mlgP*tZq@U3c*mxxf>X z(VB8@TH@3UEw0N@P1*6;OOHze!7)-;1{UuW{M7G+6g?be#g0rXr@XP)je+3K0o;(T zKn4N;#QiQx)bnNX97U2Se)FLF=jz^$$chL6>heHx{>O~6QhQrVjjsYeg%~71=naL- z2d0cx?-ozw3{4cZZznyt%84ofv~l|3bY(H$YhF$PUM|pe?BUmok&UvjISS59AQ*<4 zggZWxNSWBI$8L|uPj`$jtaqKvShGLb=1TlpQ&L-W_p0BR?3Edyfv0Wgd~S=C#BTBQ z`U6vc@G7b#H9*IgLCn_gi=uk!rv)`(^345IVeP`{wetaZ$AlHwe5E*t_ySO=yJ_-=_Vc`RPDyOkmw*!A)J)IU;MQF(T8CXw3| z?&eq@7#4gYseUI;YRcpR4YDg~|8#$!ujbM5A&E$2+f}-YicR`o@fa zC3Gn%0wvk&>)9E~=ks+quAKK`avB#f9>UbwE7fs@pter-dz&M=0Diycu`3CiWiROY zI*`1|g!-wGc7BiEhf^yLG3vbc_5A7J&vQbB1$d&O0HfY9d&b3cE3H%;Aq&*wLD8un1lb%oEJL=u}SWE8~rfc?i;Z|EzvjyOKRx>o2|0kG8 zO>rKr(8%uV34rB&N$flNcId$6Vy9j-E!E!I($dn}S+ex)?;q0P*7^D4u!hd2*48GI z%g**&cGmY7f6UvlUi74lV1-&71?>1HUF#d>g-AQCYs^UeS>S8E+_5*_UN|NHQIuv} zJRS76%m?sIW8XR8P*L8+E%w9tq!pV3beVmy%C%LlRNa9+=Tm|WSfPT~*8}i{qlfc* zr)emwSi~_&^1aW+#R?Nmf)MLEYc><&XG#j~@d+L6pUabv^4dj4pAOdgX7^nU#JU?B z%@YNnL*VtKaoh_|35FdejHbB&c)O9>3h42g){sIynz)Y+^l50#_cOc?dMz!^rP))G z%88C>XljWUdlYlHj^BeUKO86C2*NP`;bN=&V1kh`M9_}9#j7Cjy-$B0jn?LKW%M7V ze62A#36!_YsMu6K{i>MsJ0+!mC8Ox#K4N-zYv)^JX}ow%vi4??EPEJDmgPM0n{H?t z^U3e!wWx4P1{?~&GAFs+KyC9D0E&p8&MrC2xe}R+5`qL5Zm*9kc5Cu#**$6m@84ud z$Kxv8W5jr1YNE5MwI4b{{ei&luB5a(V71{#^>q6(8`TAMZ7toWgMVkP(`|n3?}sW? zE-uc^aL~l^BffhlT3tfKx|hb>cda9XX)9Hfrkhmh;@6;!bK=|e)U!o^YDleZsuo6R zO4fTEi4dFQOw?w_Zm;0(HpbBZT!rx#f)i$dU~2fMj;|B`f5%d`WX(@7r(BTkr!SZW zeDXGQr!aK8iygtz;kS(np37zoB_s?^P5nA2pHu>Y@cZ{~%k&5owitsVRK=jdVr9xJ084{5vHuw*T9;+jfn z$tlU|sBhKj4w3S<_^!Qqt*DW=Q+wmLB}X>VbT5D#qpFUu<@`X2YH&jh(M(*;!L`GX zw{IU)IbV5m`B=|&I@jtfFX^$T*D^l$!N<6Vr*F0~6WIAOkVWY(m%~E4!6BrNcXhuN z8YF@|IvbhT0@J$33((+r@!1ZknN6QQ*0nUYC@yn*NODvwb)RaeVQ=n=?>RPHV?aIo zAc!gV%3A!$6H|L1MxO;R=C7@PzIc<}!RevIw_k}mgG(aaxxZyhL#P*-Ihr?L)flS8|A4J3?@`jvg&j&}`Rwwsy5Ln{eg995M1J$96(PnaT&wo{>- zJMPo9wWg6-3Zc)@6{eUJZr87L6N7*LC6gl49~8Y=51V>xqM|MIRDl@>dwc6E4iS45vED=@CxImJkMWGFC$DH4A~AFs zYzhft=U4!<7*pxNbN5jpwhBy)E$dqoSNF9SAMUGtE;$*f@XJW=@=uWY+wJ8m6U6ypLMoN_z(+J?IH~%l+tz zUrsPGA%!AVtNV&rvczum;54e71NSed*flX^;4LyLf%z)R)x+X_ZQ$7u6$P*St}nA| z3*)^qH~?Hf6DkAho^)YqFajmv|prp`)Glb_*3FH@HbifUEuNjhfqmd73gdb1g%ML zO61Ic5j>g8r-7mcDrkpsm*ic0~;$yJBbR4SXG ztLW!fXb8v2!akeND450Q+*pds9$BZQ;qdWfnYBy6uEbQ2(gv)ZKKWQ0TxMjS@P_WI z<$AgmqPgN*eY*GIH*+aZK!pG6_VHKM3Qh~qH{=l^-CSMwY3bkiQJ-p*`9@_u;8>B< z*knQCC6=(2QT5nb9e}jwv*oST@^?2jGH!aZ{OX~8W}ccP)tzmeb`MPS(}nx2vD-Be;e;5VIY&NwVm&459S%N=$ONkET@JBcWmY9l*T?NQI*w2&;dCX$#gOi)UJ$<0wp&%ZDd(RwfpLW0+qS z3b={(U3X`y1-+!BF1H0z{Pl6;LF@2g6nL9B+4swbZn!arR1GD35#-b@K8ey$gSi2^ zB(ym{BIdWR_4Y>va9yD-0%yl=P6iw1-f)S=0fdmDw~T#qaNRJT0f~1$n&Kca4wheA z{m*WH;cG%aDyyi6Dd5T$$wS4v10t^U&>w`{ZEF=6`@!GE`^E98lchA(v!B4`mg{4W zhVKmsNitoX&jnF&yLtz+E{{w_4Of^mx=5JwI?%mj5|(u16~NU(e$(yktuCFul;Lr@ zswhKJBsLBq!7;wB^r8SnvXAc^#dBud18P#h@gdsJ=e(XloTiLuXv`?e+>wQC z&nY0*7lFSv`VBA9Z-TMd1v><}LEg5a`~hB`Tn(HDzv`$%3IWFZW!Qr4oo!1FJN`z^ z;!;C#iT$o4ljX@(+Gg8=>rPjQLNtF_AK?Cg!+!GuHJzz{OAs)v78HooV5wP(=bxjm zSpt^2&uYA?h1w!>L;Q(8g6OG%KiT?}%3x)U^5%O5*WUrpz1*nKilYS?FEkEP=mDBC z_$Fuq=F9?$NDG$wLD6pdzabVo!Yhh7)XL#y+z8zuw;oY8@fr`9m@7~GwWDkh0>4Xn z8sm~d|xqzjt&uqq(e=HHzuPv5crz6%e2QP}T zMwxJV2Ym{enmH+Fep7BICpBSA-Bb?g=o*@npO~AQlUQu4da@WbjKHt@JqPp^KUf=Y zpOM(z3BGb5DWX4xb2rB<3K4L~FgsZLn`f!|`?{Gj2gR=JV`i&uetJ{gzz)*T#Ypd; zy>W>MpD>@Zse7v3QI8Qk?<<0+2(@i>fuGOxVw>2_P`G%FgL2T1|43Q|A`wn+71@M@ zq^dtf^BJUK%^reUHXd8+yJcA&v`K)q-GU=DJ<2h z<0+q&BO2;pJUN83-OKqnkQFttD|6-b>=<<;@4*n2fP5J(wA_brU-mvV;n|Q5t32KI z7~uLFS|BWLlgIU6@#+-KAP;i|S=3l4y1B9tg(LTcNtV}9##g#!Z*O6~oKNNEybQd# zlr-$08gH9}kyzIQcz!!Jm8b^M!KtzjqnAzVqBw3;SUTFl(c% z!F~fioiL;P0ZdEQp^bvTPGd`$zlygzUJ3&_t~b^Bp+mNZQ&&nobiVkzUSB-WEtB>xVzf7xj5X;G9+!e^H5I5F$zH>n-_QP{mdT$^8B|DczJO(3Ig0z_w&BMV1WYIy;#>v?ch*!;VN=(19GEA z7H4%eO6<8O)NBP7hg^fp#^`3VzLlXQ)a!wQ_+>gNboJX4=EgpjDfIKCA@EJ2DinmN zX?qal{#V|Lwh3^{)9yX7y%?>iWmzD?K@6ED4x3JlGj4!5kJ9sM2|fo0VQMLAvAN+O zI=_rx3SXHI$V<9@i$QXETcA|akLB#FvD%Z79>cDi`8Xkzo(EIoj3@ibAIRvgW~J#siRNO$AY zg=b?(yEk5qhV$5%?H*`gx1^R$?ICerh~8#-<7YdgDAoSi1_X=JbGWvDASDHvjY< zjpTV2XQkXoSG-NltNAF5S(a8!;4UcZAtx4yZh2S=A-cqGmXUyp2{PGC(|NJG8dB2j z$v$-P(4KHfA-zlS9?N4gx%Cup6idA|^;+^$j| ztir0TD8@0qw*jJj-u*mS7CTwQ^@>N)nHRj8CO1|99qFyk^y`gG4I?3V)f-%P8o3c- zm&l0Pk9RJvK2?yczlD7wqH${tKA{;$x|WIQS#3^sBHq8#RbL2nv43CuFhw2&(sg&q zW;6a9!&#;R$@%Bftx(dA3%8)#aorn>_m?O8U*<#|q2l#3gZ~0LXo)8FnN6^)va^>_;WYp+y98((v*=Q)u}cp=hCJF@3Xh!_nB)Pxj$xHvEp#)I$xF(_9pz`-^CX8 ze1lY~5>{6d%GI{RT;9@FK?)mL?ey(!e1u$whx2OfT#y#6U50(&eKcV7V00XWnGICR zT}#ONVCq#ssja?(2}JaMc)&5mK4w+1baJ_){+IRgxRYS~b0w#Sd%>_|LY|JY&~=%x zIm}gZXB(q+mZ`2!v}WltQkKkShcc#eB@g9zp?h%B`BYIKSntRH0>31$Koen*ff(kC z)x19Xp^7!m{u$<=dnW$`>T&HB-418i&J&Z%sm{xqX7du#;lGiZ4h412l>WbuMwrsd z56~4=!ktT_)tDY@@eVaxO2&ySr$J9fvz9!1KJP;HdJ6hVkPib^B=7;u4QZ_I2saIB zelV%3z~&>_lT*|A7Zn)&lnK{m(Y<(@b4g55a$^b$x`OK|OY& zLf+vk@##7;v?`8vmV*0{30+gh-q*4$Pp~8p*v7SoR^+9WAsGANtFt=kdHL$n9Uroa z?nQ0o8@Bc~3h>1?Hx~g=Cxn;rViHuMwcTva46%D;#Z&xA)B*4BS9n{M8&>Yz=nQyQbo!FIX%q0x)ghg# zk}fzrUkrT5&;Q`MfY^GjQZuqM5szyze?m=+GUnmkb@w2vK*=8i0#1$t0zZEDQ;?aw zHJ}IqOUH<~QGf8nkbrrL=DANm!KpJ_IbNTDDu&x^sh@W*e?}fk{M){a3jN6O&&6S< z#^o;er!grhyiP{3-3v|>?#8DmjlXLjNFSAwG6ku%wX+l#cV;CQ@6`rvr723vwh9Mo z(@3sBw{FQ^2OKCz5>Nh>M9xs=U@GD%-tKz;ZT(s(g&8X2MD?%`=-{7a>pz!}RDO^N zY220)>Ec?ee;eon|0IgxyDFRkX^y~$fj%irmI6L6o_b$)abN63dYm-Bs94_|%5cL6 zxDo8NAS96=z&o1Yr%7WjSG^r&!Vs;sim9np(OcIKlK4W2sC)1rN>oquJ5S`F?CH=A z3jq1FjH;iqUKaPtMNJwpMv+4XLrh0x#=i~@1Iz*M+=E_YAJ{MZN08&U&`?t##Ia6~ z-k~XqyQ4b+AOY)G6^uWSNIPfTo0b6W$I+1|k%esAn&t2J_r3J_fgAGc0pPE^U|(J? zQ{u;E%D$zw`I)c|R$YafCoIxz>92f#pxpwHNQQ&-N}%~);2Bs9*_#2RKHrHvqx(0* zeOYpO#l@Y@l>a`L_h?E`v}$1^$pz^tTTLI+NpSCr4#2yLZBoId9uE7ub5!6_-=em} zeNYz>Th(nM4{tKc;7@_~+%13X zbqV985vc4DwK64IzIwmpHhSwf)MePP5<+o~u>cmjMS&zc51^M9mp_DZkQ;A@5=YkS zi}GYAD@5$r6yTO#r%02jjt_TWi6 zwmgCP!UkjDtHr-_NplpYdwfBkR?NYh-K#GLe(18(E8~7#<@0({Jy~(%y+4@RpoH&s zeF4}(T31FNn`7mP)S%9wb|;^tpUjsEeT=_aH&`Le?;emhcAtVA4jI&YBMVq_Ms8s= z%dmeRKAmX@3#Snf_hiBK>O|jWGnNS%P>W*g$3=e=WEulZ)45@R%MZx0jwjX6$nJ67 za$uSN-P$h070hte4+-#Bmn}?)>&IW#!C#2wiRPH^Ty)9&7Eb%rK{)5ZuyuFLDKKdi zcbKLf4f5-f>$*JO^)Qj;$-D_mW_gKO;s{@nawaSNr^tqkAWa>M_%K#iiBe2fi}@aW{Nz53E>` zBCHm^wX+AC+g1^KtQwSr0@u&&58NSZkFSNJ_*W_S*7)BH@xz!!Uhj6C-Ic}ffwN3# zCq0!40iSm-@*+uJHx1Q=8gE|pV9MtBl`SPp{}6xWv0qKCdDbu#;-bwpV{8BNrzld| zgd+CK+)~=vl-)yK=u08?@`*y=7F34&_PBhaDBwQbWjUP8>4TT`9}k^OH;)nuDn&?Ca3W52Fxhj^U(96GmErCI3fC_SeJE>k%A_Wi7BfybnX zh&_OQT4Kznc!-s{BjQnaw9j2gff;m$Lbg~SYgRtx9fN|hE}Tv7g)v%op>D8#Vq(!@ zPut$}dOomWUkhED0(^lq`ym;hn%LJ82Pw4#7TB(p8UiW8?ARYOO}^o0xXj#V$J$@&z~$5zx(KN$FwZ0t!+q(?!(4CROt z*#994bZ;>k8)oWyo96Zd?HB-f7T2G*d6ni>xtrYns9Ly(XNX<50Tw;wjDGyA)Ce{G zfv?IUCPUj%%!e)2VrqgAbW#k$t`Ybq1%Tk0=ZP;RezR+76h=v7=xJUNt0~!yrAPZ` zLLYwDW=Vao(FX=eVVKH`jB}7;WP3a!_e+P+#fs+U>Ea70PvujDYFA0 zGOVIz(&UB@QVTbjB33;z`5=GMkTjPh{~iE0E~o!U{mk2DOIoAh-{qgoEK!3K9s5_zt+Kai0+h z&$68U^JfqiKP;zmDRnMuC*$bndg&GxVIJV{yOMY#pW92ggdCnzo>NyYT-<(=1CQ=w z!E_C>>_=ejEv?=!xN02?*pyw|uV;SzZ_*~~?dxwa-Ua3$DisfL z1@X+ucYGrDD3BT0>h?!nN@G1ruG$2KWVuAUQ=bq&wT1O0e#LhQ5g+AEq{9{!x|;4G z>>5Ry^)t@{BM-RG@5=t^|J8I%Xoo5ak1ed78;6%}juT$VWbuHK6q{8^3*taUIo-Z` z?daR4*7kGG42ky*D$&5sv+)9$fhQq(n8!0)jtA-4C|SHA{M&EHgi z&VrAlpl`OxJa1Gdon4+sUPR{DnczBqb4bw1x7pIaz_`-mic2uq2`hU~I|wPin&Ous zHZGP1Q)8Mo1H2lAeuZR9$8bj`IppujAQ!lWeUyt%T-Ds-YOaPzv$gFFfQwi;=BRF% zlebfuetE`yA#u6ad47rR{P4Smy*FcxX}^~WSL_N9em7nVCtk#p88Y^1SHCrSnAag8 zepw=dN*9R)i-v`Vy2wyM2L>4=`u|4Uwe=f%IX zU39k;p(%GgGp|cHiV!?`m`HdhgLnz-uw#|>KXHE#H~}_cjQ~5nzH)}So9?Ta#G5i z37nUdAW=G{-jDk_!!xWbOAlIqzmyTB^u2fQC`k`V3mJ+DsL8!OI4A6uA50zh4d9+{ z+>C4?4|}ls(|_5JlEhX?lw<5)ZyLv5wZr*-dJh13nF+c)2AyN-R6GOPTkQDU=4ZNs z-6uuBVcX?`_|ToMeRS#F>0E3$85%zEmG!oTYpyN1cNrq^mQO!Z>Qm6{S?|?o#XMh$ zaSAZ(z9ae`3&Rs0Wtz?l;dfbMjp?+#rc?UzICHbLjim6?Ra&4d$Y`rgVSxJNi>cMA z@xHaSzEihmsrerZGjnt67ghl$rMvm_eKsJ!Q2?Jdm~@qjRRkf^Q$SaMIYv`sjKoLd95eSK{Za=QXRk$bqBGVMgV{!}~#@6?-&j?~nB}pv~(KHGpjM?KZ<-FkAAU^Sa$$)h4jL2^2!>%biO(N^0lTWQYRo??Q*f z{Qk88>DmGVUgSMFm7wYBr)a!j@;I564UP){lnr&31k@-e43qKSo{F2E z4x)}jK;F4yo?qGWX~sYKNakIPgLaP@hAz;8$0dy^YV*xI2^bHKD%12~KA^L(V7jDi zrz7)~tzXlN~aB?8tZSfGaG~&lT)=j3`M4(<1u5 zN&53@+R20F*`X$UjM0APej;j zh5?2PZdZZ~Z; z*_2s{%fP@9xb3OITj^{vJ&OWl4%97RaYR4B9vTBFUcR@1&rsxAqNUct`%x^68U`tp zv8(;H@ZtO&@0TmR}zu2L*$|+6oqa-fd-# z?+W+;YiU7%5>`f%A}E?-hX9D*{lO!IB*_WITwt>Hg3H?{9@R5WpaP%AY-s zF8ERokU)%uX_iu#;Tm*y?4%o=W;f$&F|37Wa~V+jGMjq zwQ(Ba8yu|2p#D!e`-KfBKI1Z8>xv!A0PvVJT+W~$50Y7foybTJK94~3%OyZ#DCj4ISF4Q zJML^pdSCt~{n9!o2~Y0S3>J32G5p=Bl57#kbxv}gs^?y0U+DjIpwF~P-mC{EF>f9n zRSP3>FPI@uB`WGcu6p&L<_{W)P|A-6K(?0^4`DMDBx`mAwW0S-g(PG$jqdmcIR`Ku z2~l|Rd;kE;%{Gx?B>DQD{#`FfF_93Gm#OV+5pw=l{fc{0fSNJ&Hh9e;i`!L{XTsj} zlgaYlozEbh6>$uCOLmRSwbaD!=xm)4VdnZNq>S6&o1`BA`;kZYSOrJF#-7l5ceJ&) zwC62!hW{O)aX2U0^xuvMlP2^nO)KlPNn-|zfQQvT>fZ7T3%lu(Q6|+A4Ek$aXn!St zh$o>C0Eb!KQhWkB|3K?3_vMff7BcQUc1lj51HAac!anw*-1-H_GFM@d$;t1z z<|WG?Lo3BFwFJH{cI2-KfI~BeRYo8g`5HFRVf;|iF7OfMnl>m%0Q<@kbJYNV)wD3A z%>k%aftAN4Onj%tr4-=8~oRipA`YNvZk=qN71bhf;{>gpsFt#tCT z%YYBR@b^tlUHqX%bL9EkF@o!u3*#2=ef);F&kvb0kxr)`Zl?9Y#qs>1F4T+!>wD(IUZ3Pg0CcLheI3-WYA;$XVX04Pnn6RY>f zGJv}CJzdD#7A*dFX~7}K~Hq|TGt8fi%~!!22u-iBhMh8lyVZd{GGBFR}Wg3 z_Y0;aQVHGSVw_~5bVMze>(x;cS0Jf(zyhG9FikW@t8!2-r7H^Ezyh+4S=e>U@Pjl)T{9Rto znPn6mZV*T28klCgU($6lwzL!aXw`|~D;&YDLuD~DoI;y?)RVDK?qlmSQ9VFZx}{N~5oS>?db+jdYf2XR)HEVd(qgEe3V2Z@Kt*#3 zFNAghbUvnd<46kf<~Ig`wj-VHoyD%f~_ za4>kZebK!Fra1~`7*(cqow%c5+?rw&gJra&+hGOL#!<#nlSEi(Q%uq@+A_$%YaPcR zI3WHB;NS{ai5$4eFY*W@Z|}Q^y+b~CiHd5o>i!L$wHDDc`=)`u}*|3rm3GF9N-+7|_$8Q`F=ZSf}f!yx71@u+?HKjMvU+GCw3>6ax_V&!;WiSjcc~iML7gO&w59Wi zlV-XKs3KO|QXlCX%-U`ScqXAisS$ON3V?jQC#%9n;x(tt=h~?r?bkVLoy)aD2S0K0 zbak~9+E(oCTiUC;*zQB->LEo;+p^#FpSEia_2os(FmCnfg`B7<3h z_h;9=2BZE(TT$u)znUp_3bBxQ?@%g?lSX1(9Aj@E9n&To_o=u?hKXkcO1Y~qF^Bwn zALuc8@U7Lg29#+V5^H%+y;&V=l9*n1!wd(!zBDfYnhTYZX3M?@%2tInSk6x1A;z0ls#rgD}=V6*j2nEnQ5$>ObW zm~V!}fh0-FpnMkHZw9#NzP5uJIkDJ~_sB4aa}dm*;AwWwI6W$&|Dk1%Qst8hfoG2){x_;nH_-viwa4hW$xwZmON z=*r-shIEBsRO}$e9J5UD`QOh$Dy;ZeA42KBv=Y5Ia+r4)0i6w%QP3Xq!IPvoggGel zg;**8t9X7(6QLZOc#sG;i4VpxuI}5?e+L}2DKGPl4_DQXU3v9BvvE7zUMy8ojEC^R zv<~J7PzhXRZlG>RCGoSX%D_9|Snp8X09SHyQEgLwiv>@8PILg-<>Ue>%EL~)&4`^u_4cCj+Iqr zPX>MHYA{ssMnlBsAw69>OoB#=lfJf@Z2WMVnFNrdxd&KpK0J_`fCO7u+9}M*>pPIS-Rd&)d!~_GM8CVmcrW-5xPy(sCOdh7^qs) zuj8~A5On!^MZ!eUmNNeBvy!MHPUn<5@N0JQ#!i$V%ux_eDe*2O{R!x$&{d9Ng0w+| z@M|~B&E;Ps1p^!dseI&AE*g&QSXauvjGVL5-vE`{q87k%sKk3nk5Jr8AhRF?hle2k zJ#rHR2@4BvUJ|dd?gP3lxf6Z^uv13Xa_3$PyciwbJNe_rPz$;RLmI6)3K4BY3#~l> zCPU}SK}5%@^6<}9(=`xf(EgY%bc3LB(x}N50`S}5lPzc9^hb)Wxw0s#9DqyhuOi(u zdYYj0yn4M#@^oRQQ4^XOJ9l=gFYnEz8$#c#`Ch+}QsXtmqudyRekkbak(le4WTt zf@CP|&1vF{h+r?z!7F;mG&w#*>Vp-u4ABf7#B3nunZv<}9;yfBQ{m39TT!|(wpA;U zj!Xo=2ccQkQmERrI0#QysEQk*j6hV#lIQCKibV45qXU#`^@yVzJlz3nSyb_muL%&` zi@qpGK8!X6%S6qU=rYLjrZZYNE|vukp^%|nu)Xo_v8&e$9D3gH69gAk65Z`&O%A~7 zfwHN5ewAmv zH`widrn9zn+SFpBRG3d*33~pI3st!E1Vje4R!rkp^vKt!8*k8yMn@MOF~R3UdI-#a zOEb|b1Rozfk#J_g<%RVmR8o2}ITsq*>Wu;ZM>hmElc9#C`C+!B9WAd)3ZIEf33x8{ z+$<=k(GdzRLpfbn3$(WYqaR(rV&5HpRAbqSuxdltDRH`OBweB$#mq)$< zKH$%;?1j8-NTP(R+*1khG4LUZT@R{g#LGoxMzMVv$;%{CFTXPUo!(Wy`Nzrh=G|un zgQ7^~E|Xu;^0stx0V2=Slk1&nbWy;tf)|31CHxgfYI}d^SYQfJDp*3ewLZo{1Yqy2 z`lAa;@t!R4-#~gw0Ubkq-yB_@-e;tK^yA^y9Crk1Toh@fu&Z)SA%v@K#imxSi^GLx z-Jd3oJZwIDAV=z_-XBeod)+CWa_XFJf;^0E{*VHJD1QDf&uXYA6NLz;Zq6OBCLe~* z?-pBfz;S<>ZDJkh93d!8WuGMoSZD#OB~ixqMhD)f3y>t3eq%>Ee*<*F2-r5bb}Q6M zE>TIE?mFJY0=NN^_(|9C0;D4leR7}fyAbM&5;!gqK_~_M8yNbAc8bMA#y$5I8ne)~ML%e8yF@0eEhEHCfI zpRKZ~d-Ww2k^U-bss(n7^YeBlaho|U=TT~vpqCJDDO!%z=oC+ox{gt*Q7x(r(!-95 zU?X@S(Q&(nN2Bxw@X%4HNZv&Vjr}Lib~%v z8a@FL`c+BT!Z;ts@-=|gjA$KBU@c3ygMh#CfzTHMWqJZ_E*PJa<~N`fDm{zi7M*3c z&z+tesr0Om{yWuIKKs)>vGv;a;$=?z;aPolNlD2%sT4_;u3Z&|KxmFRX1d`S_f3+u z$3vgTpft>W7C;7nYfJH6wyi2}RemgKa_jvRx8m)vh7hjhPEGU>y zuWZJ_=%z$)9Jkw%RL``<<<{(3jr1Z!lbW2Rr-RfZN>vE_*rL8TdnT^Be5={rj*%3; zQFw_3-Ww$+ZDN!{Jr1Fhr~T_PJ)J_WWK#Y*4LBukHJqLWrh|vwk4C)<8mFM8ZVxc# z047qzsI^voiH&4v$g71kPF-x*_2(FNytf&vY7=#$BA99%BlhIz@zTL(wI}~k#rA@q zX3wB8MBV&4a*7eNyi!xF;hsqEbzHl)mZR#UBfGNm$Tvbx$XG%^r;;n5HlpOy?|LK0 z;s5qoEB|$RL*2Kc#9`qUnLDx{AFGwaV3lF?n0+P^P7lS%PkM8)Im9o27TEU5@A$Xu z+1a0;va)CQJdRw~&liiZ?LU9!{k-6pV(sM>FDbz;mdl+gu}QAOd9=U{HIZSy(?^IW zM-d_9^mnz#aONV(Z(B!D?Rw$C$O~P532cpA5 zeDcC2QM*?KwIrT^uw)#{;yzpKmI#y8js$HagYVv#5iUmc(6vXG$^B$vm(@YvT>SlW zy(#2$mlT)NI=9vI-7>a&{8Xs!mW}OFT>5Hb(i3)gjC@A&?Jp_ZRdQC45ErIb{t)_P z$Rsk98L&E-$i)p>oTA$)h*#Jjzd6`Y^5{~8-7bHejFk-Ppuq6KpKT2xUdPb+t(GZ+ zdhRM(OPy=8Tb9AGr|(yJ>kG#PIF!F&fj^bk6suUf!1Sb5k0J*wFoSGMzk}$e5qF)- zVOK^afFkr!bf);O1Hu_u#V<-5U6|flth0@sB)qtGwmp(3cQz;HMaGK6&D@22Wc}j1 zN1Z}>sns=ja-N`6Wdb=y`T(0@F7_R z+`fx(wBEA@DM%tX?(sL*LFGeb+AY0~DFTnB-H$06Lr$lYWI{cTvJV$0n4TPyZAY*A z_0fnSPx8!VGyDN&Ija8@zdAk%z0{IRH#~+fQ>zfKeAhN{##fRJ^-7>fD*0+JR-z;% ztZQER1up21Dq8OHIpPU)o>*{yB7MB-;VQwU>UBKvM>XlJM4riGr)PC_l~O*`Yj<*k zE~vJ%UD0M`G$J%KAxE{*dt=M;{Y+7;gZ|^=2uQ^>2&b;gZ;{?d}l(YQK-;(gD0 zvh%rgCMBh;Nw}0uvPHJ4yRIgk$KTgZXH(xO1s;2PPHyG(<+jY6J&48cbOlM>-~qxT zzRdn6%ZLAFd@Ar&6JAyg{3q2{;Ok&g_0K1y zVkFkdO$V@q!mUK zxbr*SEZ7@$G~=`*N810*P|Kcxy^eI8S2El?>pJRsD>{BV%x^)(+D=2COx@aUnQ9$v zhq0wnZEbPpnJAz{Y$%B$dIZ<16fauHurfF<74mK>oP(JznMu@^js7hF9#2o1tVKw8l%)#{^q@Phzz$@4;0k$X6C-=>$A?qf zzYYnmwmG?@8WSzLuDb$$J!}s3cv2s!CHCz77B+L_XOT1)mDV=jGuJ^t#3F)$<##gN zi~#3ZljZqHO_=ll^#j6;K~j^2tDPEQn&A(k~W*=~(MGjf(hI^9RgH$gqpM^?$*pWSM$l5(Z z(c`cary}yG0(~qzV;k)(in+I6FP(dER0f8I`uX{tt>!eXnqyXgJJk}#_gN(AW;>v2 zUt!kQRg{B*5DY>wB_jV1N7o$)<^RX;xoO-XnP+rl??QI&jIy1~P*JvU*+M<`C|k(L z8D%Ef8FgkFIN62HC@YfDuJ7;Z_y65zf8Nh~yk4&l?8cX$UjMmJ@zDJ1fQyK}(!13@ z9eq^w)@9$rzfsry8*n~{kDhXAeX~BF8T8Wmx6jY7-gZ#v9N9yGF+R+_SX$hf?yO%> zW_}yZ6m=KJeDv*{Zk{-z*Ihq6RgYo+C@b_8(GUs{NC*Su?%34>bD*;M?EUEh$KI*- zUc+xyf>n{HPM@BA|L)y_j{2YFyfg6Tz#Bl1>H_qYJbn7@`-MdZC(?v6{Oxb3IxWB{ zN)zQ^J3_POLg_}QwaiFVH~NWt6D?|Oz)mqjrnYZl&<#Qde=(o4J71@SBU%T5;(k`C2 z#=$mOQ1N_u&S_icSquE(2E+&sYnka5OqyAtG#@*5%ql2)J@ zj!&;(Pdoi%&leY4?g+07hm*v!vTt31?T{>X?BD1l+d&brg@=;!yHzoG7`vq_Ghvs* zop_--%MOQ@5puiftA~(Lv1O43Z}K9qW)h;GO>AnU{oL33y0$UI(%laa`#Sk);e)zX zkpR={Di6h50TJ962}(C_=%iOps%w70&7AkxO*QFvm$X4)J22yY$}!f<*LXNC&FhpG zyY6y{6Qiqhz77-b$bWJ|;K}Yk_KawC0Z&-IYE9W$ChDk0&avJp;s`za5og`n?CBP% z`gP6Q`E=e&eTP${=8;aO*E2WIlCE49MmjI(Xqy`EW}6Xaj(&EF_(pIHv!mDv76`2> zl_ir&D0VCKWQwK;w-?Fe@?&JJ&*cxQRAW^5VZ!D}b@RZV^=Y41awkdh=6=WXPg*N&ft=<-L&P45kZ@_{Cb2-Gw>#2@GL=)!jU-NdAF2 zCs!zz>b(Y&90Fr#F9xHML5y%YwwgC&8H>i}#+Z}Kgb;t}929Ux^YK(l5c6R+6}P z$SEiUJPGxFx@>x2X>jeSi@luxf%eUtVL>6J5}n>_S}R8{UbDRNYhgi$Z6V9fvS(WJ z?$52sxr(Wv(Wpyx>=0rt84FJzlis%sBD+spZI?P1mx`SGd|N-XBPZERr^4a+1j zZhr8Xe)0Pg;Hi>h#mC(4J|_wC-BAFL_sY4db$VNG*Zml0m21uj5&*?T-x?%U_7LeR!HiPhqLO!oeT}^jpPT-XXPY{ANTQD>eXC z7{Mo_-^AXJsggqZnDtEh9<|xQ683zF%`Cg>Jx{cCAUO#)R(1Vh3tW78EX0G<^Z)wg z@JESaVu!*v7bA2Y6i182|B{4=PtrRujJAO>+0W^@4LUVAdJc*{l>gZpXfs$aUMoYH8mB-6Yu7#{zI zx;e@E4yig!l;_N}N66TMSP$CNkMAyFkpoWdG2xQ7@*P&B5a{^MAC;lkM^aLB;9YJw zx7nBi;*T_N(^^q=7C9B#(P3 zO)TLj1`ajQaK%9H2tR?l2KOcmUzh$ zQ_ZJg?pI67NC`b@*D@x{UFUctuBLv$;f+#RK{Wa|l_5dWsm(X>i@h!fG3TIv@1|Z7 z-o97*Dd5pVu7GFN?JTEdU%L#WcMFbss+?k?Wd1TOKXM6sO(z{FHpeDb$d7|I?F17) zzRCNAS-nK=ljMiU)fv!(oAwAmb*f`*9ND8TVkKp&H%PEdQLpl>K7OMwj(agd#&GrL z>T~c0Uojr8CvbAv=6!q-)zK5Qgg1E;2UFtu<^7@(>zlAiEvxIKfOHSNS}E7f~fVVOb~%XJnHOZ7OpV%k2yebKemze$tUH^)guP3bqMY{59~W+>v=f8 z3N^8b>R-7Res%?1*bb@xGJ>eRDyA-mLCiULMxDR(Z!GGXUYy+3(>lpVxh|%^IDO9i zgm4vH%CnUkICa~&hiDfs61N-vO{yAj=V*ialJXpEy7m0Zbn5y@< z4IMU3M3XOZkcC5rNyZr4?1@L2S!9H&1zNIDhaP}&)?W-!Q^)Yd+|qm`{i>~?i_Rxb zZjb8( z5}c%^O|)%;f9gAAh}u&loYxtEZ!%BGqH@>u={jt3#*C3G=Ewtqx^s6{locDPVQseR zwW+i%<`_l&;ny%l!c#-K0W9|+Gx@X65I=VH4&Wc%3gLXDaMfMd8{|tLU5*qK3wdL& zw&Bw@3z>_v;}vD97vf;u2BRIPG<2Eeo8{n(S(wwM{Y66ErSAgkmu3<=?bQsg#um!Q zK#e#6+2SDa4)gxcTxC6`L)D||;>_tRxP=KgkNm9<)EP<-f%HS($eH0XZ3FGOJR3yESJ-!mAv29ZwfU z5y$~ZwVT5`XYyno`e_M3%K#Y$);L(S-&Ks)rn_<|(IT;;B>F`ynd`8IDU6_0@$}X4j^>!4Y=^9BDjN>2t>w})kn7@_CuRWlCmh#9 zl1D$1?$?)a6%oa${$a&F#CKc-b+!WIhVHAr=n?sFIm)oViY5!7QDkosZfa;kg@=}-FIN&vZmnNM88FnE)o6^dR-%K?`;Q4M=f}6{FJ?{?Bzun|j*}2Ln z7USTa{7ZK^!?HdLM2^e?2S>4X#Y$xxD^bN9#4IORt=G1}TV$I0zsy~mG_4pJ^?Tir zY48k7#WhcOm6%?lpOQ+)2%hlaiWZ>*W4gVYsK0d;yFNfHW|{4!b(_;~|0|8rPS}F) zR^d|vNvrI}qmrpZCAi|8_>cYSU-aU%2tc}!i>OMYQl}S8bXV|>0g?0q>ey#H{%UM( z34rs4`De4*966S)YY>aPV(nJ$=ZRPoTi!0)z``BtfpeOz2=xsg{ZNqA5=SY>9AHTl zP5eVWkcUmR-iSIy3cB$_MitgRjM+?LA3Y{2+&eP6;jgj-T}QXzLst9M8nstxoNa8< z#ba!I%OZtW=3Yr~X+hOoq&zI7?Z&J`<~VV16qHbbsSRUl6QL%S4VVT8ddjasqo`zf zfjjrs4&0^OUS*c|vMDtiRLi}B@<6q~PTegO`#78&uyq!Lc>iC-{ZTOftHT{MWA6vC zl?h}Lspn1QW1{|>OJzl*_p##Q3m4x<*z$k4di0#a7~62E?}&Eyd-_hVG{)|M2`mQV zji~NE+<*7%xApSP=a+0j$=l_kINH>HjOG!&;|URVE=e=Eq@ok}uu~KZp1iz>^2q;; zY#4t_l*bav+tAWnU1o!9vnL-Lc+nW|4axQ|%RVU+22C;S6L9iP0fyz@UG^`JOlbRt zRw-!4+aJV`g0(xhW3*O>oG&n2;QqhnZV8@f2h`A7J$&b?TIxHtN`tEyK2vU@T_#xy z5K+!N?8i$?>fi|ElwYWO^4TmZF#A!AjJ`^_!03T97sk+E zSQ_^Zu=m06IfxqI!dsp`hQu^p=68(uGauE|d{%hr6c{JP45?7@qLO(3NfkMSAAXF8RGo#mUa*_bu6W&KU9J z6JM!-M86%@@LDgdFRY>Ps7<{3#YOW+YZEK~pB$IV-Oc^c#oiNjv=&<#!iU{C;DbIQ z;_d;I;9Y`>72{c-F5SDS&r3p+F@o+wT}xz`wpAT5Z3h)z$@kg^rclT}8K>?xQ~yIK zk^avnq(1KMd^#vYc`36?=i$ygNn=x2$&qnsl({7~HmWFjbm75OPhXwSqk}FH>+#Hn z{--#R8Izjix-Ry6lIR>fX!;Q`MM#I#n!*Hs2e!2Hw^)vMHiOD6%>(KFRxzw;(fV_{ z$TR{96e39XzcdB&mB0L5a=jiIaxFAa>Q_E*XIs~XgVaM8WO(JN*usTtyGqvzCScA= z$Es0}yGQRGi)fKOqSsrS{I7nfn9$kzjooroq2YIyVtDG$tgaj(aI#k-kLiV`w{hOy z&WDw{tDAulc9j1DFHpqsnL8Y`l|pmUC6Z1OUBP>WUg zIFB+Oy!8Qjhj0YCWUK5XtqjcbyEGiHm$sMDj@A_|M)5Z6sA;^4ce$Iz*J-0H7J8i| z_wcrG@VVQ+?41WePaloywGw0oN5&Bxt#vQfF%y0Zv|xR0$aKUDA`0+XhcCg?(6|@o zLRvJlTJVFaniI?31DPh9D}ncBbk^VbipiTXjZFgN87)j|DG1 z>%i)W{@3nP zZv{M=dZjhPrj#i|gvZTtGr|$kW92t5XM+oIU3VAaE~|ezjbIi9yMkG4evg8eC9O;l zlr&E2$$|bJ`e9T&nNKB(H_Dm0TcP1DRpd#UCx*|Mn~-A7ZcHz4CudoP%Z1*|pV8^) z-ef(R$^p!mMN+?p!MQZDPC})%wTVzrfG@WxDK)Apac=wY!yI!L zMlD+iksW8)7cbh(ywrCAEnhZ5t(4}PfE8b5nY$5=qQUwHGiWWe=&j-dy9bVjoVMG!6BnOhvuw z3!)5G-fB%RqlPViaW64ju=z}~{SVK#j)WB&K;jh>QdB^F zLaACP==D5PS+Z2`(3d3E?|rVjW)CubQ-xfVLX_ZfQAO1Z|1ayV>5-J;RbfGOSG{6$ zDZxqtS&GbyV z8#m=j^2&UiX`D!aX4}p3x%l78hz`4(#0f6}sS7e1sxVJmL~U}Zy;>4^@s4ln5iD;t z5w+@bLyJbcRRA%AN6ux%oiJt$ah%OdX%|_$3$ax=6ebnvr{5w?@+=f^G>xek$K~ZS zOoN|KPQz84X(J~t+o4uXpaur~%bU&^A>z*U!~_k0`T4GLfJ0IKk>5xH^O8&t!mkpN zz2JvbjMOX6wG_fG#b>501tfg$N4a`rH$jno~T_^4C#D#jO!}b&**Nx%O&l- zAELbqGOv7jFYVldtOI99+dZ}lJqb=E1a2ww3(Y~e| z$5hsI=VoJfQ&W@k(x-AWu0k9>d;bNSi-^jdlh_6j8$*&FuGtYIRYqoBWVU2K^YF~3 zqL&gbuFp-h2+d$@ju)19JVA!o5me2TQhHxf{QOiLogSW~OYtc%42PHJ0*^~}g%V%Z z*3@^zklIns0BQBAXEtLwcvPp_RWGU7>gqKJ0$$;rd-GT6e~P&hC31LBe~Va`8rQs~ z9v0(Xj>xmKJ1bD+^zNNgkwC@Nxy#wN6ImNsjMB3L%i;nbblvZ`E3Wqh5tp6CI`9Oe zYUX9x7jNK4c_RwuP4M0PT>5)o_wTp=PzlDzFCZu`@k_x)zMN=l^ zcSryH*k5I-e&ZU^+9&z_k3Y|TeEY9TrHDX6Pz-daoIhMM81iSC{L)g}>{V};xbSr} z%z8bXm8aPrTY{rv6IYF(Tik3Qb)djEKZ*@BJO{9Cb?T)8Cpr_0x-eBIIS4pfFDt6h z+Pd-`@-ZI#yajL%vyWjrkLXnoX>7))CKlx9l%4;^0S-u0^%N@;z>5f87ZM- zwz{6#qXEr!pLm!OSlw&^oy2XJWJn`((V&eB`DCE$vq;L#fUvO7YnW&1e`2r3d}Eab zkcGC^VsDY-cu;W*P?bcMBaIQE?Ze??3wHSnByjD{6}`V(CNrWDOYpmKiK~%q2%|q{ z_p!IG^LLbZufAP=G0wOA<)3!o#J*y~(E1V!_g$ac-Y}5NQ)QWgr z$-<#i|3*MPXSYZJNVOIkPN}ipUi3X(z6oZkM*A-IUshgnN!;adb@7B z3T8^0WUf_&e#;QQ(x%Kr!y$TXbo^sJEy4F5zh_h8#3#4+#*l0y5Nq^z$vWTi!msN( z4fDsqM1f}{WnYd~=D#C1|2~qMDMm9Ut`p5u);=sHuA$mq_>7Gk<(z%GN9yqhB%KNF zS44lj?hsPa)rfs(dux7UfCg8vvzBjgt#f7`R?aIiCu3nxAj!zX^GxNP}V}cK-Nw;OR2b@E$3QC>9HThp9xleAsr~U z@=O~r=r%Gou`>L-0ku5h7{4!G!J7MLf|R}6G5VwCX5VPPzwu1 zO&;ZQGcI!<1qsi7wHreJy`K5DAW@BNSW}j9?3;&5^atwo1-Q1=I{QBlV_4?eCzx_s zOtyAM8#G?Hd@vg6Rf7)y3rk^hut;O0{CVH5p{b+M;L%PbIMZ-=Q7vLSms*R#FmrCb zqS7#@sa6Rf-0BP3JeS+;rrrNJY<)bQ1C#Uq$NlG`+;%$tfP!2SYdA^&(N)ZD-ZB)+ z8FLfAW%8f9S-^E~_MFvAJuzCy=F5TK5Vm&O1<}d=)r7hC@A$%H+mo9jm z{UnRX|2@3UUT2rgJKzJaE^)dCu0UsT-y$yiEToAPWkpK(sjcHaDo?Iqf&6dYoVpjQ zd-E=vE~joA9o@&D$ul7{dp#DX$LkU*Skxm1s$IoA*(rT4slT4CiiNQ5#@ctFYD3sM zm*7yjhQ_lIK7y3HlB%L%@$ww|c0LrEL;4WA-94XF3Z~V5mdBdBj@e2%=BdqZmG1-;;4eTg9Ip1KrinAP9LV8pqO?d)eD0xn3eS$*2 zg4A*;gOdu$p9G~f^)H{WkQAe8;Ec`zis!<^Zdo&x#bU;VGgh{5YdrfP^NA;X_X$cS zo&V=mZzAKp_>#t1BwDq@jJ`}qdBVo2Xt7)1cLZDI@$^lxn$G?CLhrGB=W363@Wecg z&}G)h9o)xHRH*@&WoY}s#rj5~@uKBOahd8=e##S`vZa3Bs@4wFYf#ntX~KjZys%OL z0sx)I8S$}bzrXYe=VtbDL|nFI3@!vmU4$3& z71Y`dybu>^hpiDF^~;kvJ@Y0Nj$UOIg0ORGzQjtV?!ePH3rYM5mNk(_%D}}tQ+4@w zBJ`d)QC|*Jd}xdz`Blh5{YLzQa?W*R?1;TrYS>vOtF>1}xBVWWoCMEw zqxIsN2{WH#oxr3s7A~34KEe6X{}!gj0HMttKIlAYURx*+?u@D4(cimUq`$nF%8t;2+S)@V}h{|Cy zViQT@C@%|(>nWKxn}^Rn?l$+2Nz5J3HmHIctW%-+QZlR;Jzn!;hT~nXTvU8=?8F+6 zmoq9nEfdm-5IEF8JRQ7g`sO5#7`N}IX~9W8YeN>jJ~sUXCCHvqGdRI>baEZbc(+vQ z?p1`Q#Qoasdq7KhaP$I8aA@nl>QEar$)Wq>oQBb(uz8M~+*Q%|U3sU)LW|sY1!Egi zUgk4SS{lPs^5nxCVkwh4);=!`(x6{v(J(0Q5_D97PET~dRjjTj^RDF$wW|=)EhW>5 z`gWk=u|bDXJ+cM-Sq$`=>wP&d^7a963<92<6X;U^Gr04ywzJ1+V#XVY^#`tuNBh%36R<02A zq%M}cYktwO3V7dr^Vd{{ZpnN8r@y@wrgy;Lg z(w`YO)~IU`JMejF#`CJRoV<{bbDZU*c5pOT@YmqD4^hDDB|irYvq}v)P2vGgq8pwP zB%xW5@k#0p2PuJhkwO-D0$7mIzO1RymtC3Ls@q{qGR=#?tb$F|cd= zj@a)@lc)X4c^I_1y0Q9k=kK^J!1ekKhbmNhfdCJ2*4|a~HJT6BvrIsdwtYSRt;PO<}Q4ppsayQQhRs)N<*~YD+6ZU-X?L2&wdtO&lqo-ir z%or8CI8aNBgN_yyp53*fw&Lk1`rc+3D+Ez~Avk-STiu#F{ILvOPCf{Yq>tYJtnkt8VH9!&vVuYUcsF<+goH zM)O?ca?!mSqEiU~Q2uJ$Axz>zlOp=|zX0q=JA3rhEwGlhv)KFPd(@jiZu;esMcp3v zrxN@$ULC51Cq#22P*OPT5HBmHio&CxtjWKj0ncWsn0dW?>6y7_ z0td_$#>OmDF5SDd0Fe@JOe46fC-`0T5Fc%5KE#O1#AYqV-+z#xa#xz;1z)B+y)2eo zO)Lawsyj*l99JG}@%f+c>)?;ydIr>Ai@lmvDCh}+xGiRAWsa-Pj`O;SpQ z8lSYqO3c9u&l92bJgOqr&Tb5@>aVtrsjzu%Z|<5+Zepv62&OvVLnh14EWk;aO%`H6 zNeizSmf@Z?F=A-CX3_kjZfGPQ-P@El=tE?#jExM1jWM5c!*s~WKe`S%aMZFhHbnp5 z_-q(YZONaNW@c}$e75JI88?i;DUj0(#jC||{sfMjJhYA-$8so8*5g@KpiDwL&Y1Sb zWtg=zLXeWQZPi%|Z`DN9qg&V?_B2aEj}th#Vmcsq$Ra%}(T2FgpA8d6HyUjVr6~sN zXq6ypFr%Z z)slC;1h7LmCfJQD%mNBeDKTU^+1A{=p+pW4RO~igfitg}t0(PqNWgMN{drP3y zofD<-PSht94ecV%@i-!s7+Hn9QZ3?4Y{(M@H~?WL!E3qn->WV#=O^-$pRm;z;q_=Y zgSz9NVEfYjXyo7X;ukw$fwv2wq`XZnl0#5IZW=tpqAB4Ou& z!J=Q83CVCU@hU-cn|UD$AiJd7HEbw-uCJv<>3D7ebM+Lziz-#zOO;EDXpJc{=T>sy zXS275(Cc@u+YtB^T*#4co-FD(`n%4FHSH~78n-0vkg8rm?kJ21(|=L(Va)z-VQ zD+xL9gjmK6b8@>fWSCj$j?Y7hc1P8CO|vc5z}I{GuU@@aUA}GO5#Z@tAsh$m$~*2% z47|-{2k6M>BX_se+P)bf{EcoNz~^W>zE%F7L~~9TRRZ(Fz(#~vNTZb&_`EOME+8;S zt;FJU^^f9vbcZWd3Xl`(OtqnB-petCtCaCgW3@L>O|f0mX1WmbZVC)<>9h5~?4~<) zxn&0BzFygXwbFmEQ|KQYMZ9cXo`p9(tYnZ$X`GOS)Nu>Jz~n zJi&*4cjf>JO0Z;alCQnn9v@&9(4b)KKPyiRs~eQ39!fTeqW$D~#kg-~ zwn~QNzAb)kVhQzVgNl&t593f`4bc1##l7f+H05M@6_pI7s{K(c$C`Zsp zhVpba25_cpXN?Ln6$DLg@uE9I(hg?$i4M4AqHp09Oo1hTTenODEG3iG@>WkOiQMHx z<5gfFaqi~;9XKbM@R+5htl5LmIAcr^0(GJUa?G0w@co{vDI}UsjFzi-JL!5--4c{rpPGbDKYr#U|};b{Cm>()+%d>&X>0^F(xN>4`2#Ha=_)=NW;zi#qUq_Cq#Xs`V`@As+Sk-)a1*+;XVN>&9db$Cx9Y|hg;k4o^`+8tZjeS; z7u*ptc;@q3o`Z##(6g5|5&dCbjOq}2zt?53-GdM(Pf)D7_!9#4y)6eypGI8&HC42c z-`?IHHle0*+2(dxSRI{>4=aAst|x{G+t;&}smP2w*6?1Q!OqKs!Tpeu1R(3Ca?->a z=q}N$dC%!!gZutZ^h7b>W=M#tNQ1x3@b!|!MbmAVxzJS=_kt}J0&|CXBf|Lr7RuV~ zJ0K64S}1j>k(&!krX@D;yX;H3hjKi6V8KI#zb%7?^yBA9{rW***DTd)8ZGe3NSg8%bfMDDjBITj0n^Xj>LGRfc0N&X2# zbNJDrXLO!Hh4RB!6aN?s95rm-`|B6XCO7z?`iU68p*F8AtYfwSZ%=muU$)uhIJq?T z9X}kViu6TZxPMYMbFx0t7tLt^Q@n36$xmL3T^gJOEyaLK(GekEe)KMmg@(2*tlFLA zqHH198qht4bT%bLAYGQm3>AoS=m>#eR)cs}b=?#ZW&*nZ5bKNHHSuvjA{WEs1sc%~ zK00mnzp0ZHUG@R97tmq*?kAhZT9wsfc@mqC(dP+^Rky2?VoWP^K8_ ze!l``JfkOHUN$1G;CDCr)hq*EaH=0W_6d5WApP{UMDK%TiMn9E7o|mle7T_T7@nKL zI++`uyW58{LJ7K_`tdZ%7rp-WVGelD37+Olt732dcFELFbMe19wB^mDst4Y|$v$Lr z9lEK#AEpw69<1;rH?uxLO>YIVzWyUIc`llhtl9N)Z_{WR+h}mcf^<9(N#q~15{-a+bCI7W2Y1o0X^9^M65~ip*(_X}0 zg~VKnMSRiA-}q^f)%j?-n1o3%z!=eDnw1;v_JQrU@uqt_!vKHY1+c0ULX(B>7yMXHKT4 z{$!&EV_Xw~r(VN-SHJRZ&#@wC<~+hHd~3QrnV?$i3G2BBSs=Su4=C{;K}n}k!w)`5 zwG*Rd2yE|q{``rH`}0Sq?aa$Z^=u9N$-x)~YSQHBC}=nZ`d6G^&U-Kjm+76?mMuZ;J&O{k0ki@`!d_GY*1cNsk%T-DgI(y>O!s) zXzK!jP>iqEXV{r{p9mvRDy4_kpvCW>c>zBU$N7SP2b!yrx|q`j!`i|fwlq2y_-ka~ zi3ggEi1csb?gi(Mb>(Z%vSMW}QF?AS*LFaO;FNtz$iFh4lX<=LeTZgr2&%D>rP9 z{K7KEeJh!n9n5g_OAeiv`O)#RP0FV0Sk!A2c0;wc1p(R5yN3z^n2z;32B=|zSD!r5 zFVx+rzVX*IlW8YKDs%)U+;fWO1(egP0)FnB*gkzKc+A*Ru+~OX-dv(}2^8t+Guv^# zD@0u+>Nmi2ub&Xst#Jae5Eulma>EmwUKGBR+3W#Uo_1qn^!ipXd(uRGz`vc!!V@OJ zGz+)Pr^;N(4$bGfJ=Ql){>_v(2t76P`T+}wq`1&kx#yB)X&DzE8Mo6sO-()C&w9qS z`khy%eOU@p0JOu*y z#jhqIGU=t#3^##ucNE&brc;6jF9cYQ9eAq(>QCNX3+ltZmI*S3rtoI8r zV;7`ZJ(>UgQ6phyPC4yG#A8rE>bA)dQ6*Cc?NA3x7cIuerqqYX6ylzXat!Iq`qYL_ z=z=`WRj;TLXo8^I-{HN6V`E$qq12JGd{24zzR85bk=M{n4e z>W|b8K$ks$*g5Up4#u+tlB?_alZDVs;k&8dEmU2~#Hb!P+UNB++0SWSungBLsx$!> zierr4C@ z!lPPjbeZ(&g>cdNNx;&-U@#ZNtHPdLWb(h$3v3*-l~Fk#TP zpK#bRHS1TkhW;_)z)i7c6-E|VPk6eVQu<>mPGomg!h49nQ5_FnQb0c9>FA$yd9eAi zq4zhS|Fh=`rt!b=@0?{sm&_;bv3JLRJtomb+d&`V8Ey`zfFw1+RA*%+_IvY!tQ%N@ z&l}k9t0Eom^eT6M$Ci0P5ua+CHq^?)Szz{Dx28Su@$V%x-3f9#j5?orEWpVyNOeG8 z(P|o-th!t5!Nw6DtS?tBPR>U&)L2EvA+-_Zi%PjqE`1&0^blZKSA!}kl)CB@|E`2@ zk!x-bH2*^J=4{!B?-Kgi_l&Z(=XQ~h^#XpqM9$-;J zOniZz7vX9lboME>YB$y+GJh9M(F3udWbF9ib8a3rgKTdHN3C~lZk3?R@iFO!15>m0HWfxs8p1}^RN5I4PF3Ytb zZEAq;*EkvJFQ>q%**pE$#6~#b(73hT3%br!;}&TIN6zO2rcRWMJlir2(NH^6SXkYyokhc}+W zN-dF$yAmB9nO1xe-P1is3*x1UFt7KZ8A-;y@7!;HtA8O2*eq}+!LMTG&wbE+(0Qo@ z+47Q`ah7$p0~PMu=UCbjHdLw zRs;+N$g~Yzcqq7G1AJoHg~z>>0^;*h7T`OzmqS=>s^MNs=V|=H*(UMsw(mFQFCI5$ zWULu#=(9Y>sp+iGIQ zyOm>eoP(VuZ($-HNMW=xTl*^qdF`C_ zkOYMhaUzDq?A1G~5I7HiZrh21ls4n`ozb$s4$8!@wrn`s%Eu%z#;?IV5Q3xXn&350 zsB7rXyy@8UgSx*mTFLfvWFf@1>fL8ulhI1^X8S;Z!Fyk?)!Y83i$VH1x(;X%(4 zOY2eaBJ>zrE>|&1U;9Ky^XY-HOMH?p>+9ch6XER>8wWen@AL+`WnDTf!hG#r$l8wD z<=5L`g&_)*TEvSwJ_H@crGwJ;2I`RoGqB%M(%<0;5#ugDYNZ-TVNyirdlS{|qW1q* z#uPH7E%8v4H+HlzjFoD;hLn_TnqyKS>>m(>n_<%sJ8=s3TcQTZgMCp6t0lTdHOH@f z*?R69w4FXQLu=G;R=jR2Y5>xO7_2oWBo zYdI_LvaVWYyoU0WQ3CQYWH4_pN}&SzrBsy?<+tr&_k5{cVuhSh)5%=yY}PO@dLPH16G>dR6E& z6QUu~8Mpw2&#cENthxN@W&gTOqL#r@U|;dZ=as=VY2uYp@SZP`?MUWnqc+|-cV?yc zz5Fb9tJs!T1J$%lbUyAOhX5>Nx^?;n$a_A6^J|@C4Z_@R{dP;jQ2q z<|bszO%CW=?nC-ZL98Q`mU%ip7WkbvD|oMVi{~G8@kJ8^Nq$3wjh%}hl8Zsn!KRvY;)w^ZR&gVSHAu(a*GG*uIDbt3qCz}U~hwy;bt z&WJa*ghmIKu0yuoQ4HF!BBQta^ef~D@DUSad=ejggK|R*kv3$5gS;n(1`EAd*~L|b zV2+Hvg~nN8@sfOelUeSu{PZ<~%6{!_1SApgz8Wj9siv;Oc>yld24nB4SEl;Z(m|CY zpga*zaZ@J_YxmNq!r=&^0}=tS=l#S^btRfZ53pvOIeE+9)MH#LY@Qo!X@!&pL}bRn z;3M=4LuMG3qO&=eBzW9U0x)X1Y6M$zDsv?Yh{3G%UKFJ-N&kOfkD-B~RPIujQ2HO4 zJK)z>a5e|$e{*I==JEW0M2Wp8y(c&b%-b{9i`iPh`GEo$WJtob$nXd=`jBoaP4dE`=>* z^2{Q}vIMrU$n;_y0p6kvDJt+zq%ktC(E%0#OW1b23?Vp*zkGTDs>y=6MU~uwg|HT;D1J z+B_?`q|rwPh>tVuD-lgsN`MnK4S>iICV9S>AK2u`Su7kve3NR-E=gu};x671A^O=& zjc5Z!!M@|}_euXO-Z5cxcYkcz!nSjSoK=nt4{!~NN|dAsfC{JYV z4!&G{3E}n->_F_v;|K=AKI$kB>_teph!bLJA)9&*)`W&Wo_AGXQ&PyMDi~)# z=Ma6yh-T*`PJ8B`oEGyv{xVzmka}S-S`Gr&NwS>CxiHl97G8ZOh~aD9u}EaL4CxZq zHd-66+DJswGnNzxd7t{2?-~m27Gybi5=EzcU^hyYiic0_my>KNAcegnVy7qyO4a$C zl)3B7f^f7S z+7~#9nHsQfX7in88oQ0I^++-6GRVtfJ}#T6q76z`<@hrBSjnl^%b6nZ5&l-uEA`xN z(dE_1d-qq?n{#u(K0G)P)PJKF_tPrf-D}7fea?`ux7IWYa@9`2e#^LeSYFODF`$WNJR-*2!&U$`=FWAgfS%|QDmcN2+><86r zAy-Yzwb(Fj_G-&*AqE&{$`~;)*7SWZMLmY6TAp)+v-rR)6ov@bfNNsmUc9n^w+-}u zuuh*k07>r6b{=6SP@-H1n0uCd!1rA1ap?894o*r(yOS9_H3eoNKMeA6Xbln3PDEOe ztR4JZjR9iU>2+^R-)OAJMU~`Zn)t~w=(*f-q(ph}eHoT{435601Vzmk!$T<-Nod&} zh1Fs^r6MF0@}TkHne)n0`mbvA5WD)X|3}hw2SWY+@%wykaQ0q_%ZM_|$UG;Tj8c+h zlyNi&S)tF7EtEoK9Az~SDrI!?6-AsC$~aVrvPVY!p6mB#`P}FEJn!fIyr1{;9V&+mR)vU;sM4~Xx3I_60BYrzDMp!2 z5-~;&+LDzejM>K6C-G%JU9=wbI-LKvZvI{d5)0fY_~wQ>gY@YM=ef6_;cf|0OCFc0 z8Ub|;`futTRMgospsU=hI#rvtU zhs73R?jXlO`_O2lUj3Kp+r3G%XDMx1qf$d~h_w)S89dN#wj(?>S12X%E7#|Hg2h#Y4F0T~e+<1B=||OX%4k{APpb+PL8T-UnqbnNXJw~7xWy&X zx>T;1zW!naDTT@MrGN8&ONm`9J}(p0zJAW*>leRkK&3dc`@ru#0KROoI+vEmX*YFe zyoxYsXCGVnF^(62dEDP${d)mzHz)SBo>gf}xjD>Qzog}V{4&g*P|;$NVT*Ny$s&m6 zDYXsW*N8SJE!no^w7SSmbB@&#ty-G{S{|Y2zKF6pFWS*g&M)MgF=RiJ3)ExkCL{e| zZQu)a9@2GE`ApLrhC9iKuQFW>5zbHY>n2Qb(YiS8u6;lh1dU_jJmvlO8c{lN96pH( zcTliOq(p>kDv9S%u;fQQ0Uj%c*(`^7YdVh6P$G5zhR!aoc>d%Eo42ti72?VzCQiMb zw3lEz5+;wl4Y9z~)Ss{-&H2UoSxqL8%C8tDSt7e}56_vR7e3qHO~fpyQg!h1r=YAs zjW%751v^yr^^sj{WcM?8x-+LBD4@xbK)K!}8Ha`Z6}g}4DS=Oy1wI4Sp3m+7Z&*w! zxc~l@F}_@E9b3zY#^O8pg4Nv2lf^O-`j#ec^fe3d(0@zx)1)JxNG~Xe7CNeiFCB{( zLtf^k3X501-2LnVRtz@XCdww#b1+VZx}-n4_!%GJ#_@NeDTO`ZXN{YL zCD7F{T&M``Jht4UcX9eibg6M1&4iurp6r~>T%{2GCW^D|i3`jsT@fkq@pn0U{6S^H zrB9-jZemDCUTiwf*iSvd*Mrr$hVYAdIq!=tK!hqFe7Y<5--E1HAcR$AtC|gN^|Ksp zW}=)lg|0X<>I?h?dfjB#_g(69xHTnNNE(Rb4iL#{X+F2>MbP-xh*k!V6;eHKwAYGy z6x0dua3>-LVF(9CN^GA~#UB6e=xIfFdAHJjumMhmFbN>`M(js!P{Y>cByb)tFu-RI zvV}j8Q7&O#>IJ18>~2kVUzN|18<q6$5-;v?iXo+ddU{Tg0(_Ot8+ zq#E$te7oBp+!M^ttp#;mWv2-xj9e6WI>1v)HcW4m5>f5z1S@Br<>4%4Vw5a{Sntr% z4mi3PmQ;8;Pk2T@Smit$Df3F!`5ILRy#i%C<4eCk!IUp|59*A1>HXApTS@5OybIeD z-C5wc8a+e2`ImP^rsfcw+qkkhy;8Kl67$6GLO|^B=;-HRk!KR=7&pnmkh^?rPTr&_ z-`y-7d6HW3JX73>dAouPXEm_pPU#FqcP+P4rTx@cpBosv3dy;Z=L2$E+$Ix>hM#9E z(g4Us%lhGpu#k|n!I6=n(a~{(K}q>egv%JGn1lN&L>c0*!)PB#Kkt1D!}EX9zSS4# z;={plPMQMr!WvV!wAp(hD|qwlkLsc>$-uo+H>`iIzUp*zpG>-d!iGy$TTYBNYh^jus`dGqmRYDVWB7dw#<`PS= zlP>ujkuxj(10QzlR~zLLuWZ%Hpv+q3&W(TF$o?A^-f5G4NeeA>6up!{d;CP?7VDmy zsHeLu%zHIh%AI(2mu;fsobFt(v*Jxh`jpOmoGVJVXy*ESQkF@;DMc@M+0B?5?q;C)&Q4exBest392HWMakZ~LgLbl034Nw{u zi1G5~PUM9jffcs7jZq!;5wpXyf%$KUPP@u2Yh~9rw=PUoccq!3JWl2wv$eI0zZM*9 z`ZsUk>+DW*bMsD6cnE;Y3OQ6{pk|3Y$0QwfLLW?|%_ggHh)DkYdBLM1k6d3&JCQum z!50o0Jr!Y_{;6;aNwCQe-|+-hH#=KzKc^o`lP+^ENp%U2{IP7ostKfZ6JVIj$@P8X z@0-oPbt}NkHu8_g>hGS}YFMwK!$m?;^4I))$;zAf)(d>V!8O@e0f`!u0$I%eq%V$3 z%!dx7urltoES3oR!*ODgY|{;oZ=!y#EV4}gw^}=1Kd1D~CcnTY-xR%+6x>1sOLLoa zb%+1gYHW3{{jb%QzA2Z#d7BZL@XV?PSH{U~eJ0b$dfPtCDsRTKPNYzT4z6abKC}p( zZW(%%HKLG7ns5xttW<)G!lxd|AXy8cag7`6&j+R~h@06BGG~9Vf4RTw;Fw%7@yhCj z?~=PE0$$p}{$&k~Yrm&gB_&)-FV#P=xn}8KF`x3Jv{Uaum$nRz3!MbY_YNi?WMmMo zYO)JJ>{!*^(2VG!Y<3Y}tzbvL^QQ3OIO5I?8`p-d?FH4`Tx6`T=&1{mZTfVuOOjuz^}eyKO$GgHAeU z46ei|yz!tU;g0$~yHKtgMh_!E7GEMr)^s!X^EHOa!v+I0+}c6jHKuXIzb;|}&5Kv{ z3f`EUyY^%46!)tEZ?3Syw2nXgmls^mxVpMphZfEU95&j!HgBLG=uLgeCZs$nfv9*~?B!ZcViL^3H`3VVECrScR;B8X{JqPf{<8ewh;*UZNgF{8 zuDp1<%~%Qi1l4q<&ST|?m8uHM;v!$(>XplDKPAm8uC?_>^vnh-O0KSS$abyxRCE>Z z@SjGeS7!XK4L>0_ zBL1Kt>sRu%NlfqI0xf-be+*`tBi}aY6jT{)c8yhRy}H6L`F!)I?|a|V+StGAuVgNW zKl`3r9cdfc*s*M(s$$U4F&*f^JrN${wqhAaT>pLH2aE1bR$(qEpoJ~n?a;@LyRF@> znF+1{D7lXkW`+UD6Fp#8xsRqFU6WY)C zC>sZv$WX7dG9sEWUie*jk%=z}nCXaQOO#Hez%3puT~O~4JTbRi!8rBJ;7WAYsix+@ zNE=lZ-L;}Fz(SM98Wt)SN3^26>CMt6{#@Pp6S=r9I=eCj^n<>ilV;^%h-%N@U33F|dh7NimLFGTt-eSWJgGWUBXF?`1@x~W-F*`D?q9BA5)SlB~1@?T#%86D<%%QkCaI?B~|`pwnW+(wmhmcWSq)y+Uh zz%CpDFSv^pYY>iM(sfB8VjZ`22|_iqbBy{V)-JwJyHo+oNS>VY$he>tva9_ud+0E8 zD2ZR-{GAfi6YEfDAl}`a8(n5u?vdof&S005%I1SN^;+ec>KiW`L~i?b4rNgQDyPyX zBt?*3i!)9@?&}h!3Y*O7HGuuj>JA!%>U#9F_@U!Fb1tsZ3*XHmf+_J;&o~teV<$JXz`klSNKUj$U<37*5;5cH(X!1T)ZBI@|X|Ts#uSVYZ zHX>jj`=OYusDejrt(QHRGO25HbE)zeq?@T$RP>e*U1P$UbECeyjrx*DMd`tuZFcC# z1E?yVD-R4?1>_HL5$KI-2><@Q*$&hfNCEc~h}-XyU*m?X5ABor9N({%$Y=H2EO?aJ z>h*JBukOp$c4axbbS#tw0{if5wZTR*E(%1JlPdWbEGnK{5xdR4i7ov2%KhrKmLO+a z^(8G_4HLos8^JBX={~>eaigjx+d{~1EW*O{(-h0q)8gOaZN`$n30CLpME8v|H7hR=Yn8im^Vo-4uVq?3&ZoNV?y#0G9tL2dXTsy|D~nH1Y}RWNH3kl zxWDe2ae($Cd|^4i9fdloKRlJ(sv^?9OYl>Sqs!)(ftf(XiY6fK>6>aO+vDYr7-E2_ zA`E;|v!p3)w?3J`_>IZ^Xxbf=6q6~z&h?n{`8!W}(#Q1AxrYR3$p=ysP@I@c??pCp zrhezx7!`8YOmnxvXh;OWq}ca4f;D0Y=3K<^9(#<0sh|F5R}7%f0k& z^4N-nBljONm%u1XW1A(r4AtD~25c*U8S})Ic%r9J-AMkCMAW4NtqM~-x9))8H2KNh z!hRM&OxS!rIIF$}-ZCo@*5e7?Qh)4-(Q--mAi2N4?DBf;_i{n~#f8;^X#h~K>BQhj zKPy7YlY=92d2?-etA0D8Q*r#}+}#~h zC(jlsPzW}6e|`Ra=e56oVlga!xhF_(!xv88Cp7^!RE`>&C_&8aFm^@fC<6iEEOCZ0 z4E~Mr{~6{r$9wyDwC-sSe6~N!CaE`sR?^RB(>3*VYEr*8DAWJyJV}F;LgCI|NPQH2 z0-^3bH3d;=3EZ|p`?{Pg5Dh11J^F-9o$EKjD2w^ z#foHySvcB4E|wUJv8$FWFSiUQrbdczm_3B@GjI`QlZfq!^Qgy2;kEJpmjX)XWVEEP zfRad(${x?Xz8?VK!ge5v~LEY zx`96ut)RB?5LHV8Fmv~SyuYgxde5048NIY_U_qiu=;N5A&*<7udKGFPB@2sbo#BZ` zqOTAl8{b@4pDX#5clkIeZs+sNGMDqMviK4xw7XHozH79LJJt5hMt_z%N4ACxgo(o1 zGajKNzvD_k+Fja*qDD9j;EwgVwbamBdjLi`j~Ut=lca<7FOsjtsOmJ!P`fl%5$lY z#O&<43#O!UMU89IV61TGQ18sh&!1Vn`#@1K=N7EDaQZe%I0-iMfJ?rjoFGl`SXfwiZF6DMk5=gO z)FgM@X2g}%SB=E6mC@o0FWwxEGno2ApV9Y=O4He4*oY4%#n>;mIf%bh#LA#@%HoBm zZ?UCwsJa?7{4Jh{J^Y*Ica+CjMo2sp2CLY)*J+%i?ICnZLWo5O&XV7%+wab4$J=(6 zn*oc4j$603#$T=XA3P%Q%u)TJ_oZ;#@a+@FpiRA6-d4@`s2R$I=V>$gxns-06SZvf z|6Tt3Yv$C8vBSqMS{%;)s?IYP@9jy>lj33fAp$~s?Y$KahBO2`^b@Mjbafx-1WCWIuk*& zNphz8K+9t378w6vq0n~sT6BjE=ZDg<3UEQJ54Ww0aDa}?FRH!ny?Se0TC2eTxDb&x@9}kB_FE=#?Bj=>mAUUfCJsGlU;iuzVJz?R=i~q;A+(ubZ0Fx{ z-G75&Q^^poSh^v`KLF?ADj{2>x)d+qswR*(n$drCcvAOF!Dx~Bfm}=XQ^nvvfv$VFmlm0D!I@?;a*6-CWR#zVFVtBXleZ4Oht2n zjOp7hO2rq_ZJbtKlOr$fl_+&>S+$>YX^2l=5gJ!^HQRZt(@;Vr%`E56=r685z3foY zH`5Rp5}u|L_Vuff^U3^yZ!8%B$!r?|SH^$VhzV!_9^YMBaou+36$Y!D6Ehi& zqjyK89~)c>pHI{Y9*H;7i_CkRHo03{E+kZr%i_a`EWYi`y1#>$zmrJBY1kZSrQt3( zErVY#S~8+n-e%-RH!6X2oQmY+ak{26MmtR%@T?)f%S*c2EtDTbjdEGloK2ICyjj|gB=z!vk|9Cd4wDv;= zSB?Sh@>mw4AK!b`kAgZj=xr$;JII;9KAe|x0~hkrti30q*D;`Yec{k%#NE*cFFHRN zY^}BQ#t$|8?!Q{q74>;VLNL`6S+t(F$m)uT%72{JoinVTjyN0a>1@N=tj72y8QrPG z^4U3~-}<5QKfQPEkG$h@WAnKqr@sku9EFwh58s=!z2~HGiCK=3ysrSykHrS!*p06x zhD2a5Lv7LFIQ08bCAILBj$iLrBzA57>A%X?Hg7Y(NFTdD`T(bLhPb}bGjp}~YG)l~ zH)G<)rZjD9hE+ajzm}ey)(|>hc&cu`asCBJ#|Yr^``FgqDVtXP&U0T%rb596w<|$? z$g_n(dHj%ct!6&S*mNgKFu}3@<>5$T$&9;d-4tdi@Z@~wucqGk8GX_1_LWhkm!Ttp zS-FwJGrEz)|ux zs!!ZYMkONQxHIQb-rh04K0LU160K=^Fnv9JNZ+P&CUq+;IL&)OR(ooH*Ds6wuA5u% zjqR7_oYN|K-K{Hmb>X&$!!KQ${}pGiG)3q)Jjy(_ChY`69B z;-^@hqnqSf_TV=fv3&GBoQ%y~PiW4)W$o*}I$fa;EM$C;BxD1#Q9=(?;}>U{`%yee zQVg0%%Rd-)|7#s z!{2dF=ei5SfAt4lN}Ai8P+rOniWaXki!9n`JEjf*IgR%4(!(fU9w(~_Q5tri(kzvt z<`Ds!++#lz{m6;w-uL>NsM=m{BiBze=VkuxJH7K`=0S1iw0{7Tl|fcKJn_G{@xH$E^$vM@z45!)!%c&_d&Ee z%p&G*yA{{MO`)!4(e?M{jFrS8)|-^B;mo@6EKm4p=@~5d0q#aW2?c0hZRD;$pBhhI zH7w!3jn}!R%3*lzSi7EqfxdM=N(idLIbv40!U#KI)T^M~x)l&%UcG00-9B*BYkhE_ z^(-|eDtKjPcog4sdAlk!ZRfX+fA>&Bnd0bVe570|XQXpUWV>Smi_z#+-tT&{-wdsP zDu<@3ZoIe*fM>|bIDbK|KKGf$zBZGKA@z~NlYw34oD`$g()X^9hvwe30k-W_+tjok z4Ms)O)_Fn78+j@CmPLvQW993#n_pH5%OEE;lGyd@@->y_Yr9vf1JlM|>BD)%aK4bA zd4nkOg8!;T$-Ly(Wc!CtN>tcO%g*3z`7mP|wpKaN)0?Q774OEzkIQRE`O|+ZXQE1; z`kxD9T)Gu_HL#*$;h3ldY}a+*%xUBl zXZpIqGC9NLuam^G;Y4qcvw|DlboT3-Mf9%rTY?<~ROF|Y%sa5|sFH6a&UGitsoO7%Sa6ySWi)p}5 z^CJx<_*{-rz#2h^LC1&c*q!$Rk^nRedu7vRU4HL@)i}MDkoE@R`oq^+skxDQzvTGu zzjk&pmMhTc`#JyfSjO1!LU7x+pnDIVr-;$^+gW1z)Jkm} z*B5T`pePK z>I;5PVMlyv-U}`C2P@hz{m%Y|i6{#B&?@EVY5yGZa98rnBTqaxGa7vRW)<4*jB9T> zhe)=L%vg@tZF2tiW4Z9mp`&IJz_pc^kSFLjPWB$(GQGPTrBibflyn}q^;3kdto>G~ zUb))yP1nfv8n?w6BIm6cl*GDjwU@Z$e8`%GcUsP=iMh$WZ=OkXlowg8m}6_(r}jWg z{!oZPp0gN(pK^E&(R&rDwau9~cJ%%h*fZ8j{oP`C`KQp2x#j!M`F^||*>jg>qi2w| z+%gnT6%o3A`pVj6@A=RzGAp5hXf~)jN|abzuFXF=zEvNYLow=IKbo&{rZFR{6)PIC zL^6I~{r5fOGp|rNd(T=S<<<++Jk$SAP;~IKN)gGqB z8-qh7vp$0Z@pR&)iJotPxAbqJHCKyzPx|Fws^PLYx?gQ?|j9_o_>-cTVK?F zx$fe^Roy8L-TLG?oVI4|)fl=Jp}l##$p4Q^{4jId9md>)@3cet-&v+kKYI9>kH*Z! zm$zEA?o9k>ju6?+(Akm^efKpf#tZHwhHg1~OFqAB@mQgg*!iL$w{i04>C?SOoVo7h z85H-XQ4yS$l%2dCRn+b!u(kD!3s!e(T1C@s(dvUH#f^-)-b#tYcsVVtJRFATExEe> zV{URVs%wbFPqKKUG|hE!t*?6@u_n|zI!%^9pE%dLa}?l|p2Q?|0PgM|4ycGb+&SmV z_{>S{IZ&7q#5q-Bs@&Pw3XuBEJzV9(SfsZ423ns*Rz-n4?txz#Ib%Rs{^;Ahp8w+9 zm6d5tVTdQ^1lUxBIweNMc;w4JDi=Mq18;U=psr9{ee(u4| zHyk@txsg^e^mp680XN%jKIr&Ud4FS5|64`JUZ2NnwTH?sE3qtBSER+G=H_}ipE2ep zL;oPvY485)%~7}#P>&qcwf6FBwH(`5jtTO!VI0j|Tr$s} zT4ns4{JOg;&aAWyOV-E%-- zHp2+DdLA^u7aC6JmAo5{4PLvPF3E|ieIKZs#k`hv69^+iFP(davTja@**#-5zd?J$ zE-h?btl)*eC4jN*ij;{PV-Va|krJeH`+xf8TZVFxnCOh!;A} z3P}pWS?0Lby)oy&&!j-vM?7J^>RRyIFXV)3+q1u02ISNt9xDK=(y^OwaEg6u>Pr31 zPU2?q?P?Y2B6S)sRNZ~Jl$&d#287_mv~=*|K4qCg+GsW{%zPW4h~)0Mqb0V*`ZO_+F%-Cz8xXsL0%~wW@~%DbQjEcoWuAEE^B1}lp?zFAeIaXa5TiY$q_Ib!T~y=8pSV|1i2m>kSSzOQFF{Kcb7 zT3OUN21R_{Du;-wtZssQ*6Z!KcRNRKe?mQwLO!ctA%I~V>Q>Yp*Qa{kqE4>&fevJ6EU zghD|Xp!h;rQNZV~9Buj>Job#GIg#aPiaTPFDX{IyWyA~|b(5gJSdg|jsP#gmHZHnL zvA@^d%I)1&R1%J^N}9qdfT*}L_J|K+i%BX)Jv#hvwND8+$2Q4j{_x4beC{ZcAL3HUMnJ*DgE0q~2O7~V;ZZtQY8p%H9a`TN#k(_rpD=^93bznY@L(sGGsK0i z$Lw>vN6Wzp2t$3>0Vx47>z1@+^^raof{VGt>CAQ0daW}pU zN>;W)5>S472nBBs@}%D&evI(~F^kORQk($T6xV@nsBV1fQF8jm0az4Yo2jy}Nqp!a z`Cmcy(5C^>t*7c^sGQYv?xJkg14^HHT1Hh#GXakQ;4-pOZkx3Q8J zL5mun$S0HoMI7il3#jNMF2oj{3;M$6W{hD7dGHRNIX4Fk{nKRAAsLybiSrtG`+`DR;u7|@2<=Eg-4X< z<4H~5qRG>V3_5%qKzA9Vo>MWk0LAfF50Dbub+HrIPgb$~Dp%!U>=;Q^#R_6S>S4um z?pp#IOt_e8H;Z@{_~c@4^8t)4vk(HIF0TJ6WO9Nk#%V4Hg^gvl6rbrt^&OV67=S!y(puehUrDCf+^y)4e`RDr`=ow&~Th9|(G z$)jtQ5OVPp*@=wTqUL>%*$u1WK*6jSlXEN>^dEpg*3}n^nm=zLRGa`G^l_i&%_5^G zkaaf9*4b_u3p^j_uWrj}<|9G4Q0fb>sS^Q7Bj(DyHma8{%gM_>0BcN53-`a=k z&$gfK1^hoO`!6`Cmx#pU7e5r-e5LUp`IC0j`%|UI(Ne~!`GG1%4Jd;r<$g3KxMXWk z-@7Boa&MUfhzk+?j*mU{?4G%f`N{`z34HC3srM&e3%RO(Ay|aKVDkYT2r}?5@$r`q zkfLR~A_c$*6~HdUJqK`_4xBg8^c?o+WEuPCxKOEu-J_2@$7fPOT5ED&{VgTNSN;k4 zf~PkNUKy%?k7h`{2fYS7&@o5>7Aj%}E$@XLwAp|2v>0nn!bv*dlldIr?tj<#(Ev&d z>xg;6=E!OWI~`QY1`%r$ga!V=tL6VTw!4EZrr24;dGAdf=1pIk6MD+#sN;!8)hrty z#}ub(5H26~%t$Jb%|Z!V77B5?@wy3aj6On&l0p8dKyEw%{f{u>Ut$uf8)6LKaAJKa2u3Af1p480e z`3&lKii~}GkvE$^{hqKY>WyTgU?u&;p=IezZmDN(;}q2A%Xt3+j~~6jYB&I4B_BBn zKvBul7NNhde<%_)(^W>7-#&6fjFEs`VN+C0M_wq3C>KJfjx%EU*>$#VR31RyW%Acd z@-YtY>nnpQS->d!b6;Xm_rk?*knyv|opg7I>D0jaK_JJ%C3kSRMF4DhmF&zzw3#YLDqylM!k7)4obAkdU%_irZMmd-|mi>HmJ;n}FNy z_xmY6es)hL%8K+R4&s#}iP75QiVt~kEZCrT#il^&lLr}=qGVGvL$pS!l8}H|>Ed&v zubeSQ_lfx9;Mm~ZM*rqZDOM+_>LUX_GYU@wamPy_9UjtIL$G;-J9kSVUe0XJ`_VUi z5J5^yK}jbHYdwaRfN~`iUwEPZeW%d9UIYOOGJW7Iz7n(IFOohXw319(^Gf{pQ+7^Y z=1)m7)RIh8Oy<1VPP9M1Rw^Bofd3O1zqKz2HHPAzvaZ~d&_!cvwoq;RaBti?BMy__ z714?gc9#M#+btK?FOKX)#MA+w#e9jF()4%!4|`$qJ5So3s_rL1nA7_IhQA`h^8mVM z%1{Q}YCbvt-cZ$Di5nyrD?*vbA1*X~_yGWj%t)*}=^xL}?q#_@&VeaKg^QpE3f4D~adTIKF0%z3 zJ0K(cQRqO*KRGEprK7yVX-T9vj%05n!_Is+dil^Uj=uPOgvJ1%Oz3g*Ypv=!YEP%}aQh`>;y=^$oAL z{OGzb9&FV2vXpOSp8?NaJfbCQRibD>>a^M-`d)#3OY+tR1Sq+}-ghYYM~N0n5J zRwG;%;pvo9|G?lTDJWx=@5E^OkVwF;1&O`DeBKMKa-rLV{EsD)&o*(`7^+VmV;s{a z-(fBcyCTGX5#L5){Jxn&sXITQkgchk@J}GzKYN%0X}XCBwXhEO;(01A*&OIpjgT3C z+x*q;|1Sw6-^FS5q8%_g*1K{c4Q@2+fLMANbVJxijE(wFIwoJ3j_|DLoa##Zsw>>1 zLGU~K|KGkM=Q2M)PZ4Se!Fi+uHBGSx>n@mu9{6Cg#gyrQ&jU3Ot#Z3c2s~?8GXXyO zH@N^uQzM&DA1Gc|BRs(HR0|7HX02Y}f?pmQ7>EOu^bXEk&I*!GnSKozROSM{#s(Ja zL!B`QoqdUODCA=f02a+c7nmZFw>zGkt46iJ6TDQo$2pn;AjQL>zcU@0`6^MJ$Z#{tS~;9Z9QKZ`Rb_!S%!aP*(W#**upE5MPC zX#P|%rTXIxdpkK)L>ZS+CA{hXMc)Lkxs@CnGct9H!BpF5URUfJ|L1ySDtTloXIK?j9p$YM!$9S>>idp% z`f#FH`caI(zq?K`&{rqZ)3VeeG1aS4U;m4iyLVji1iGpW#iev)KpoY6_>1Q44f4N&EBic$tVD$zo>NUL?NK<)Iv3)y*DO7BsEcx zBf6OBTHCNNx6OHmJMHW#7S_T^cJSh^IfRjPHS510)lcXz<1_qa0_ zw5^KKYz)^}JZ_=jkNRxlN26_g5jhxq4gr{+DGq5HYiVrA|okZHd+5;WXua~@zHypL~s={a4>RGB=J7Z~90ni``e zA`-D`_hB}tNS=t3aplajt=Q)&rmqzGZOpi${LGEWnQ#n>IGWVy3rdRsKLw{1Ng)@y z0#d(gxmYqvh47t%5=CooLn!MptYlVUotPT{8usjF`b6V1Kxr@SozmfH)6t$rUmSz- zGYgx=Xhy(o;%sV0Vwqk~=>CTgg+lw~#mftzwTb)9N|*w(cf_+Irg=DS%zp~3X(%~f z$KAzBqS-7ki4hYJbQ-P4Tbb9Ser z20gbzk_M$506FNZ5cCY^%qy=hKr^uFy}~?8KzDos4DKH)&6Ty7s)u}K_d1#8FE>GW&hg`zk9tp9OR0QmU25m4FF0p!$Ed{S=E;X2=E-A{}Nt9hi{sK zBVoXJ)}S68CVzjw;DzSy-Q|e(5sgzQ;Rg2(uuYUhMckAqj`R-u>;}LTa>nAJT^vWV zpfte59(50SCS@n=0QZp8Y{$Rl$_QPEIc=vwHIs7FkGb=fX#@6A@5&u~KtY6MXp7O- z=ShA{6S-;c*wO3a4Nf;g46C`9;axFM2Cq&%bqyuFOQouAQ2VV|WhTj#-goYULBQbK!cN7I&wfI0%wRyNz8GDNw{pLmL?)7{gLaaG-b*2K zh2^*>T=!FX4;L(I)+KWalnQ}vDi*N_O#K#_gkJLIKM?PV4ky6Dsg;LAMd-)yv|sSiY7AI;M3yTP z1^VT!U$P23yFu+|8E=UJ2Kr(TLQDjF5P2Vt`DXF?08xNZMlaRRi7I|dNOAnRv89hjoq?-*od=CJ3bif>u zV#+m^)V}VoPCLX?sz4&iAPd~M?;2D;u+%h^B6RTzXyiiwC$hkaSqq#qbmkJnDYAoP zHPiRWRQ)7shpUN5J2`X-^WH?ZdExsza_zC5sy(-mJA0}RA4IyOG^mH9+)7wDfWE)5 zBnfNKs&Q|_u-%FZ(K5*Azx($bMCwd@Ns`92PTqS)GE~6o$7N2s%^DGONTTkw-f}Xj zXiqc1<2^6!b@4_J=>)-vDdx@a1$SaLNc=p;JFe2@1!aD_cYOp`Ub++tiLDxiR^?I)*ppi=t_j5AbQC74jK(hBfTU(o`GdO0= z^vu}P%$bPY4I(&y-=?j)S$36Xe-p9F8a?rg7v|@FR-?{k52itH;Z{sAj@UVIcL_&$PL-+$W>J4@ALBpvWZV;n+YTxE z(WmEl^|bZ#oyV*}6Ol(hA1Ag4Y(ZM|Sy>tf`Db_S_}hE#wN;9fQE3e9T^R8Bsn}$n z#R1bS3Ho1J{m+i~0LMW0C(lyKGy@?9O z)f~9$cr6aN^lfr7{AfW>k+o>Fo;~A))xy$k3*Z1KiYo$O1XV=6#?cu4pL|F_($f3Y2bR zpRjsFGX=_lcnQTnhFk)Ub}A)ho=+jA5Lj4hi%}UT(3`TbFE``8VqgMjA3`8{$65Dt zBo^3Q`Slr-OWm&+NUNNmNctJ{raaKuLU(*+Gm4*jr)Bw(1e7|MQ6CME%;Dm5*h&59 z!@-=>H~wt~^S74BKKchf`cs@6XUdS6>YGqi9W9z{JUDV4d4N?si=XaQMG9^rV`4OO z+C$cbfIXU6k5}m`TBxtxh)W`pE1d#NKtm@I#fi?==A|E(dbh;(BcQ<1o{-Oc3Car~X7qkqVYDF9Jr6H`>^`qVG2^CDui4MFT zs+oKRmyNMjlm?aHZ|VYoCCx@e&l9Ay2ySd&KOs>`$O-7*e)b}bSZ{{9J(0A?E)E0hD=K{3sY5#`3ze`FaF0Zqn%?XlYuhWp4-%(K`P$j1vm zy$Z1Tmb)$Jj_28!Z@9ha0x4+d{F?ctD2y98mI^_CtAvya+c|-X4Ra5H_M@%fn;@(7Y+oV z{Xzt5Q=eh@|SQS%W@Ar_Yu*hol+K%6erzg9!5J9S?SNMJRtv)M6x9} zU=$Htf)edCmqkFg5&uZW)SQGObBLGo0IrrY4L8ldUZIzU~bO*8W=Pt)Ja98+)C(u<}r5LSB{Gte}x2~7S= zCUD(`G2_QlhaB7z2T$;FU|Eds!h6-JC#7inEA6EIY35!-X@%>;^8W>*x9U7!h%IEY z%VJr0_A=)h@{G?-yr$|b-3~E>ZEC18!b8*L1KzGs<3I;xAi z=Y$8Wp!4Oqk*$3S*;eS`Z-;%FpzGS4(|3WTS~-pRcOZz-Ke0*syc-hH+Fv`8aP3t( zzc|l1Hjv;@fOFqklI~ES3wo|~%$QhRIK=0ud|N=Al--9&B$2M6v9Afx?oUX-eyYzq zD>BKAsmj!2%x%2e5e-`GEa{9ShA&b#V%}*C55=HatHtQ{Ak<4kuf-~J0Gg^_(VAKL zL+o;V3==dRac|r%)COX27Ne{1(pHcpQpIs9J0CrgQ~nVwwom>si*}jF5FC4ias|0fD%`byRE2Qg|Qwtru(_J=911XeC{RV=_>Y6Rws zRAEfB1nJ>b&sYu80QY$v0I;*_Jc$}$TBw9WSOB#|Od_RyXVu*UHS{1kQjB7OI?rr>MvAV4A%oHO2_I6IG4&7#Ji%g^kE*)|qzU%u z9E<-fq>$je>vhiZ_P|8k1$&Du`vm#{VD0S;$O$tYudvnLyl!c3@vk)==Xlz(NlHn$DQJ?E?KmkV+WE{&hv{xMQWO4QXwRG+AP^Mpe z-iw(r8jQxJaUWWj(2YoF+_Gp*x&s1%;$aI^FGgc&NFyjWV~f)7ILl69pZPL<7N>~`p41<-Z`~gX z%a`kkFTT6>Ey7<+igHk`K%IaDYHr4^R1l~~Yx2MPiNn?Tn)JHurI6h}&4f8#l}{8V zd(h8?>eSO4oUA=4R| z@;4MR!$4_+U}j`5^LX+Udx>ainkZeM_C!LNj}*C>-t?95X>q$qbg#%^Bcoi;wn9<| zwvWlxR)dC0!$@x-Ca=R*1&N1WODIxr5A#~5-jo7a+_6=8M4`7keL|?N6=4v@nj*22 zR1GTI%L6SO?Der8YUDs5FzGdKammyT$=#Hd93j%5uS*lns2(>HN%a;8Vnob63I)Z# zueN~60)H=^C%Md#2H_^r@C~jAC$suWy>z18RUg?K4D?ZsQt;Q;O{e?lvPD zmOQ_`G|4*tX4b1E0E$+TP+%v%3f(K|y7C z6K8~pzs;~K3rAu&AH=Z5gKiV57j2_FXg$OrKlOLA1%`&O`aNq8%W|Y|?|j4utXl%z z1~^&GZqCRCF^a{X5!{u!F$BjsgoP9N-waIvDIxlK(y97;^lOL2_z$DVwa& z>tpNN{PjCnXgD?H%E!Q|e+!B{%Rtbm*-bGyyV*P5bG)st{2RDOAnsXB^5q;o%JJhB z_NHE2?Y7_3i;@HoV@^;$=?xDnXQb##&6*SZJ*~dw*`$c#aDO;XW+8GvhJ7}XWz>t3 z?4bsQi{!Vw?|kNQH+#N3NWA3j*HCB8ElMBoA=|Qoy{y;)gYZkdxPv5_oy{{M62sq3UY|uocQWvzpaKxG4}&rsYJfgffu1b*pIs5LcrQB zs?m9D7R6<|nRXb%5bCk*eAxAmwSh!1&_O$O2<2)|f&jTY z;|N!3O`jZ2u}7j(Ba0 zL?OUXM|;>WWZuzX{aHA5L*+wija)P}VscuB_8Gwb%ES@@OEIN`$$~<7K)xnMSL}8GkQNYKd2}3y9F|wyvCcoE}JNTh$Q*pu7>dlu7^N8;&@lD;(Kk%uvg{bC9Y7FtK zt^v8Irh9DBNq|tvq67E6L)rmk$$H<1vhV~J6F+nal_XvdB6L9l5bS4Q%zPL8t%wm# z-08~r6h^WPPa~pz14x1+ZFz<%ng-8=-ni|9x4ZTZe>zz8?wz$o%N1iBJmyu11rt?kXnMVRI!<;QrsgE0|WiyiY{gX<&JtPEwX*6QI*%SA(-W%C9 z^HmgSU zd}Tsh+~FCfra#_#(79=LG`${au9*Uh-vYUQ9B(=BWS;IuzqC~TaAon=*qP0#CtmXI zOao$zp*wu=2x4(P;xXZE^h>MlG{e+X$iQI+n<21~G!##sO5?=n#<=?pcE}og7q=;= z*N;xU*KfX$IuRFoP4r)+d~19_rkfn=eFq*Kg3s3~uI=Y*Is^T6VOMEr1$n9x)h}J>LK&tV&%iPG0ysX*ng|}eySt|I7z+6J_t3TqNkqI zlA-QIO z>y7{uY-T91BZvvJxDAY3)Ne*qS9&+Xprzb$>aG{~aLX7c8Ss&q$`hU%SnCISQLUz! zT?80L#a!`{(V-W_EyjoHM-a$BY|}&P z%O0wFen2_MK$Bq=IbK#V4+V>Zd~~&WNG#9uE2s>J$)fRvkemhzCI5=)=t<>j&#~({ za1!Yu^%m9l8eZo?+ji`MZSKs&5TuA*eA`2e1M02M8Pu+Sb2}spD+m|fByeV@2GW=Nhee6Mu5fR_1cxf@)pST~He=*aKX> z>t@f8rW8R3HhLe24z&CSRXxI5j$^GRGI4WM5vLw`xYzBE^ic2#`k(#SgMS9gsu*x^#pf0XHRiXEfd zv@DS2A)XyPIYg5h=@QiYZW-}MHZmx7GVG=;%={tbLf$nd( z+KcQvEDqRPR}A`n3eywfCDAmT4r#zFk2MIIBtp0nzFfM3FbO9WWQ=poWkHjdP$lg^ z6{w=6F@#ANIZ_4GmaEruwU^oAl2X2=YeE^0Ubk8rix~c8JaYHKiT;@rM%EXt#=Xi* z)SI~4HuiXJn5yc_#!Sc$U0gdu3eeFF&;9tcZ9H_kCUW9+?#+Zq!Id~CiASc;BJcOd9bGI%j<>Xx*ytJyt|N}aJ|Q}r4ie1Dw`-KH3ky{ z6Fb{t4RZM5nXvHy%KW8t#CqV}!~CjiJ+@=?pDRZ3sC%?#vuU_$Te8Z^2gP zgtPh&p*N7qAHq%h(SEiBS8jtQ3UJk1E4PL_^jD*%r7{beHK;jFnGx>UUyGW?N@;jV l{|VHbs!R`e7#)5(v2ej|^SYTdoV0*nXmCW(nE-L#{{UMSTM7UG literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/angle.png b/gamedata/textures/ed/bar/source/angle.png new file mode 100644 index 0000000000000000000000000000000000000000..62a5fbe1a90a5ac3f7db98a25df512dbcc98dec0 GIT binary patch literal 671 zcmV;Q0$}}#P)EX>4Tx04R}tkv&MmKpe$iTT4YMRqP-ln4vmZ5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RRG-dL}hb93~cu9V~S)E9naHG;u^$RLb{e z9hNz7aaJld*19KuVKA?*q`6LW7;!8ifg}V-sG*DsOhjo_NimS3{g{h?$o416C6TKP zMvetkp+L0#;D7MDTca>F=_CbXfd9p^K1PASF3_x7*7vbxHBSKFGjOH0{nZ9A`$>Ae ztwoN2&^B;!-PWW%;Bp5Te9}Z+v?U)+Z=nFZpV2qvfPq_}XU*xYwU5&WAVXa(-v9@P zz*v#8*InM--Pzl}XIlOJ0AYf1psQ!#-2eap24YJ`L;(K){{a7>y{D4^000SaNLh0L z01ejw01ejxLMWSf00007bV*G`2j&GI4;d + + + diff --git a/gamedata/textures/ed/bar/source/btn_folderopen.bmp b/gamedata/textures/ed/bar/source/btn_folderopen.bmp new file mode 100644 index 0000000000000000000000000000000000000000..360f50664f0f8060dc9afe981b50fdb2a40933f5 GIT binary patch literal 824 zcmZ?rwP0od12Z700mK4O%*Y@C7H0y=3voj*SO7@;CmnqK`t|PJyBF~SpaP&WpxHq3 z=+UE{ot=ev0Z;)@8N_7X;-v&pYHBJ_3(ywHS;u7N9G~<5f6jHBNOR_Xpn*X9fldah zmzs5~>d6P7mYT=d(Eb0;o9;mZZXqy;Ktkr xVE91d3&;k_B0C#oHHKaA^Z=AqT67NCK%ioXQOJU5Y@il6LN*Fb85vv#1^~Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy7<5HgbW?9;ba!ELWdKlNX>N2bPDNB8b~7$BHmT?0B>(^d{YgYY zR5(wSlSxcdQ51#?qO4r##*I-U>O!y>m5swfjG}F1Xj*+h`@*2ejM{;Y?-h!+YJ-A` zNVIieE~AQ5Fe*a{6}3(TaIOMnE)EpM@LNnUic`F+b8pV~CHLe%Zj32MP0@>-&Jj0v zcXx)Trzc~Yhlf)|QE#XA{c_jobW4;nd0=>07}x|4!TeD01tb!7#rDd?61G}JvHvL9 zpRsR#eDscX7AFJ*C4u5nF;c7Y5uK&QHgO61jU~)mtd>Mo7!!XQ)ohWO#iFA#I z$&gE>-n^&?$SxE@b+HJEdD)21(SxoiKx3~R_ddQy$-PE2_1e(!ZUC*0J~Rz=q4aj` zr}Xsn#SBWR@+L?Dc4p}yJeP}IN3;l6is4TZ&|a;=^>HUoS{qT*W`$+23)Z0?+_rU$ z<(xIpG(}Bkq|s`oK)}Z~g%F7+GC``P*e*#y02vC^yTTV zZ}@GfR0^d(m&d#Bw{Fd-A8RAn$+6&u5f3yUo^ES~ox{1x(HxkQCBTIc`(002ovPDHLk FV1jNqm<#{_ literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/camera.svg b/gamedata/textures/ed/bar/source/camera.svg new file mode 100644 index 0000000..db77cab --- /dev/null +++ b/gamedata/textures/ed/bar/source/camera.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gamedata/textures/ed/bar/source/cform.png b/gamedata/textures/ed/bar/source/cform.png new file mode 100644 index 0000000000000000000000000000000000000000..d405e1fc192ad74a854c3e5401fb33d1952564f8 GIT binary patch literal 838 zcmV-M1G)T(P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;jv63FrU-0=G#-K~!i%-I7agBQX#|bGjUP7Fqc)v+xPL z?EwQkfFY><$Q>s=iwCJ#Qi*i?ZCRH8jw)WADqfu`UY#l);m`Z~0@?d1s<;;gx!rD` z{HAbK+ye6i@?ah?@4bpDuF=9c-v6m!Rc!FxcY%SbYe}*b1ZgMYqC(ToPpWd@n z(cy77u!qt4wOP{h{TZt0U|`M6h&<1XzaJl;c+bzIhoe-{abuWrZ41A1zu&(w3a7K_ z;|NuBG5|G3y_ayt$zX&V-AzAxsA8hw`C!{87{j<$v?HXSEvlGka5L=t(HVkxur>Hg zGE=0VEvlGka2m#R)~->@tkylDxZ}an&lXioG}z5Mt%rswH#`b9I;%DPY*EETgVVUv z`qBgj*UWp3mVJ@FMpQA;z%-q-Gt&6A-L#ucou2P~UV3X(F~NWvZsZx&%_w#IE4Fh! zPo%%3iX;4i5oyBBDFi{N>HE2?nFZ-9sp1+8#(0CiR)Rbpk1w_MGVQ_89BG1iB0VKl z+=D;Xpsz6Cwe|$^kZXZh(@RptBk)*)Au$T2HNTt(Vr3p{dPu5x6g|YFJd8OEXPDGD zmw2F;h60Qbh+jG(K&}oUeoZK+eKC5z2MK7r+$flOS~GyxX!&kZ#aS@nD|-)y?)9Ef+{<^9D$at5kvU8ehOg$~@{ZT}-iRvB z&`gYK|4T~W3Z;F%w?-9ba1&{&)o2Ri0sX92k#B8L#ThW-xHjtZ)wBnC`Nm$VI0I(V zblZ<=C+8obiZi51H|uNaUW=SNLltMhlpDpYueqnrdCySAXBY)T|L#DdiqGO9Fi!2O z$h&7y#k0sTzR$B~QpK|&5M=*ss`wqeDv+q+)v4musp8eC;?=3*wOQW&0kuYz4%RgI QqW}N^07*qoM6N<$f-;DSZ2$lO literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/game_graph.png b/gamedata/textures/ed/bar/source/game_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..e3e68684a6696c1714271b908c79c5aba19ae385 GIT binary patch literal 475 zcmV<10VMv3P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TJcU#a$k9zK`kcTYSuq)#3L* zwWoOha}~j&Eb4Oqx35c0#DYj~Gu%*3AF&{($7rW05^PIPQ&J>&pI#pX3%*)=S}6vf zgS%|k5S)!?rregsZkwK_W^$Q4J^O6b&cUub7h^D%szC$^y4GH{%}lyT>(p#kKP!=> zx8VKMLI}U&{{raaHb%0Uyaes3WeL=6VZd$nn9vlxHVM+B+XpF#V2anvHMQJ8AIJx} z85N_}O(WVQoB*fe13wco)m{lg5-)KH@>IG&->dY1D?u+o#wF?!>?+2nor8EG4&eED zPAyF!hCYnxD%VC(f;OBcK!T9-`Fhx>O|c8!M3TgM71Tg&4Zf2o82K#5Tmfuu&CzR4 RmM{PS002ovPDHLkV1iD2$e{oL literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/globe.svg b/gamedata/textures/ed/bar/source/globe.svg new file mode 100644 index 0000000..09d4e51 --- /dev/null +++ b/gamedata/textures/ed/bar/source/globe.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gamedata/textures/ed/bar/source/grid.png b/gamedata/textures/ed/bar/source/grid.png new file mode 100644 index 0000000000000000000000000000000000000000..25dac1bd9bf2f87ad73032a87293c3321ad5093c GIT binary patch literal 619 zcmV-x0+juUP)EX>4Tx04R}tkv&MmKpe$iTT4YMRqP-ln4vmZ5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RRG-dL}hb93~cu9V~S)E9naHG;u^$RLb{e z9hNz7aaJld*19KuVKA?*q`6LW7;!8ifg}V-sG*DsOhjo_NimS3{g{h?$o416C6TKP zMvetkp+L0#;D7MDTca>F=_CbXfd9p^K1PASF3_x7*7vbxHBSKFGjOH0{nZ9A`$>Ae ztwoN2&^B;!-PWW%;Bp5Te9}Z+v?U)+Z=nFZpV2qvfPq_}XU*xYwU5&WAVXa(-v9@P zz*v#8*InM--Pzl}XIlOJ0AYf1psQ!#-2eap24YJ`L;(K){{a7>y{D4^000SaNLh0L z01ejw01ejxLMWSf00007bV*G`2j&GI4;m0^l{W+c003u6L_t(I%k7iB3V<*SgfCJG zzI$DKSC>}#Toh|jtmxoimgGos`5}=$AwUO2>LdZ7BuIeIFomDY_CVBGz+K!t9p8>B zR3)0(H%9n(uo3Jo@#5@TNz;nmqI*dL;40c4C56`>aR%)qmbIjjqGtdA002ovPDHLk FV1lEw0f7Jj literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/grid.svg b/gamedata/textures/ed/bar/source/grid.svg new file mode 100644 index 0000000..a305ef5 --- /dev/null +++ b/gamedata/textures/ed/bar/source/grid.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gamedata/textures/ed/bar/source/menu.png b/gamedata/textures/ed/bar/source/menu.png new file mode 100644 index 0000000000000000000000000000000000000000..b6d88a6c30a33333f4aa3b6863b23733a6c3db20 GIT binary patch literal 546 zcmV+-0^R+IP)EX>4Tx04R}tkv&MmKpe$iTT4YMRqP-ln4vmZ5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RRG-dL}hb93~cu9V~S)E9naHG;u^$RLb{e z9hNz7aaJld*19KuVKA?*q`6LW7;!8ifg}V-sG*DsOhjo_NimS3{g{h?$o416C6TKP zMvetkp+L0#;D7MDTca>F=_CbXfd9p^K1PASF3_x7*7vbxHBSKFGjOH0{nZ9A`$>Ae ztwoN2&^B;!-PWW%;Bp5Te9}Z+v?U)+Z=nFZpV2qvfPq_}XU*xYwU5&WAVXa(-v9@P zz*v#8*InM--Pzl}XIlOJ0AYf1psQ!#-2eap24YJ`L;(K){{a7>y{D4^000SaNLh0L z01ejw01ejxLMWSf00007bV*G`2j&GI4;dHV-0@@p0016IL_t(I%VS^|1#s~H|Nr~{ ki39gX!(cQFhG7^001i-sy + + + + diff --git a/gamedata/textures/ed/bar/source/move.png b/gamedata/textures/ed/bar/source/move.png new file mode 100644 index 0000000000000000000000000000000000000000..d316a4b9d6d1a1b52b6b869293d4a077c47970a8 GIT binary patch literal 625 zcmV-%0*?KOP)EX>4Tx04R}tkv&MmKpe$iTT4YMRqP-ln4vmZ5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RRG-dL}hb93~cu9V~S)E9naHG;u^$RLb{e z9hNz7aaJld*19KuVKA?*q`6LW7;!8ifg}V-sG*DsOhjo_NimS3{g{h?$o416C6TKP zMvetkp+L0#;D7MDTca>F=_CbXfd9p^K1PASF3_x7*7vbxHBSKFGjOH0{nZ9A`$>Ae ztwoN2&^B;!-PWW%;Bp5Te9}Z+v?U)+Z=nFZpV2qvfPq_}XU*xYwU5&WAVXa(-v9@P zz*v#8*InM--Pzl}XIlOJ0AYf1psQ!#-2eap24YJ`L;(K){{a7>y{D4^000SaNLh0L z01ejw01ejxLMWSf00007bV*G`2j&GI4;L|$Qdt)O003=CL_t(I%gvKP4uBvG1c~AU z`g9XG_zsSJ+<4Ff5=>Jx#2{1!lf0?0^n1e5~>qSqjEC5>JKOEXpC8CVU& z4Os3TOxqKC^{JEApx~ptJ3$p)HVm>WQdbJSJ*dV`-)`dLzu;j9Tx#VX<=)mF00000 LNkvXXu0mjfImG{- literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/new.bmp b/gamedata/textures/ed/bar/source/new.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b83ec945f47fb14f19b0a36d30a243895d1e9b7b GIT binary patch literal 774 zcmZ?rWn*Rl12Z700mK48%n!tj3=%++f#CuZ14A%31cL>D!~wE^FCl)7-7ERXFP3?Vc}v_s_k+L8 literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/pilot.svg b/gamedata/textures/ed/bar/source/pilot.svg new file mode 100644 index 0000000..fc04532 --- /dev/null +++ b/gamedata/textures/ed/bar/source/pilot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gamedata/textures/ed/bar/source/playcleangame.png b/gamedata/textures/ed/bar/source/playcleangame.png new file mode 100644 index 0000000000000000000000000000000000000000..fae25b0dfb39408eb12c2cb5f39b78757e715cd6 GIT binary patch literal 3241 zcmV;a3|8}rP)004&%004{+008|`004nN004b?008NW002DY000@xb3BE2000U( zX+uL$P-t&-Z*ypGa3D!TLm+T+Z)Rz1WdHz3$DNjUR8-d%htIutdZEoQ0#b(FyTAa_ zdy`&8VVD_UC<6{NG_fI~0ue<-nj%P0#DLLIBvwSR5EN9f2P6n6F&ITuEN@2Ei>|D^ z_ww@lRz|vC zuzLs)$;-`!o*{AqUjza0dRV*yaMRE;fKCVhpQKsoe1Yhg01=zBIT!&C1$=TK@rP|Ibo3vKKm@PqnO#LJhq6%Ij6Hz*<$V$@wQAMN5qJ)hzm2h zoGcOF60t^#FqJFfH{#e-4l@G)6iI9sa9D{VHW4w29}?su;^hF~NC{tY+*d5%WDCTX za!E_i;d2ub1#}&jF5T4HnnCyEWTkKf0>c0%E1Ah>(_PY1)0w;+02c53Su*0<(nUqK zG_|(0G&D0Z{i;y^b@OjZ+}lNZ8Th$p5Uu}MTtq^NHl*T1?CO*}7&0ztZsv2j*bmJyf3G7=Z`5B*PvzoDiKdLpOAxi2$L0#SX*@cY z_n(^h55xYX#km%V()bZjV~l{*bt*u9?FT3d5g^g~#a;iSZ@&02Abxq_DwB(I|L-^b zXThc7C4-yrInE_0gw7K3GZ**7&k~>k0Z0NWkO#^@9q0fwx1%qj zZ=)yBuQ3=54Wo^*!gyjLF-e%Um=erBOdIALW)L%unZshS@>qSW9o8Sq#0s#5*edK% z>{;v(b^`kbN5rY%%y90wC>#%$kE_5P!JWYk;U;klcqzOl-UjcFXXA75rT9jCH~u<) z0>40zCTJ7v2qAyk54cquI@7b&LHdZ`+zlTss6bJ7%PQ)z$cROu4wBhpu-r)01) zS~6}jY?%U?gEALn#wiFzo#H}aQ8rT=DHkadR18&{>P1bW7E`~Y4p3)hWn`DhhRJ5j z*2tcg9i<^OEt(fCg;q*CP8+7ZTcWhYX$fb^_9d-LhL+6BEtPYWVlfKTBusSTASKKb%HuWJzl+By+?gkLq)?+BTu761 zjmyXF)a;mc^>(B7bo*HQ1NNg1st!zt28YLv>W*y3CdWx9U8f|cqfXDAO`Q48?auQq zHZJR2&bcD49Ip>EY~kKEPV6Wm+eXFV)D)_R=tM0@&p?(!V*Qu1PXHG9o^ zTY0bZ?)4%01p8F`JoeS|<@=<@RE7GY07EYX@lwd>4oW|Yi!o+Su@M`;WuSK z8LKk71XR(_RKHM1xJ5XYX`fk>`6eqY>qNG6HZQwBM=xi4&Sb88?zd}EYguc1@>KIS z<&CX#T35dwS|7K*XM_5Nf(;WJJvJWRMA($P>8E^?{IdL4o5MGE7bq2MEEwP7v8AO@ zqL5!WvekBL-8R%V?zVyL=G&{be=K4bT`e{#t|)$A!YaA?jp;X)-+bB;zhj`(vULAW z%ue3U;av{94wp%n<(7@__S@Z2PA@Mif3+uO&y|X06?J#oSi8M;ejj_^(0<4Lt#wLu#dYrva1Y$6_o(k^&}yhSh&h;f@JVA>W8b%o zZ=0JGnu?n~9O4}sJsfnnx7n(>`H13?(iXTy*fM=I`sj`CT)*pTHEgYKqqP+u1IL8N zo_-(u{qS+0<2@%BCt82d{Gqm;(q7a7b>wu+b|!X?c13m#p7cK1({0<`{-e>4hfb-U zsyQuty7Ua;Ou?B?XLHZaol8GAb3Wnxcu!2v{R_`T4=x`(GvqLI{-*2AOSimk zUAw*F_TX^n@STz9kDQ z$NC=!KfXWC8h`dn#xL(D3Z9UkR7|Q&Hcy#Notk!^zVUSB(}`#4&lYA1f0h2V_PNgU zAAWQEt$#LRcH#y9#i!p(Udq2b^lI6wp1FXzN3T;~FU%Lck$-deE#qz9yYP3D3t8{6 z?<+s(e(3(_^YOu_)K8!O1p}D#{JO;G(*OVf32;bRa{vGy!2kdr!2!c*R8s%|02p*d zSaefwW^{L9a%BK;VQFr3E^cLXAT%y9E;jv63FrU-0k%m*K~y+TrIJfa0#N`)+eH$X zAeJG6gCZmN8Xst*f-goi4Wt1BAyRN9l2|Ad1{rPIL=d%V(JyGxx?LD;+qLQkM7tL5 zzPwk)ylNmca2U9cb7t<$0)T(9aHcWb3;?;4fkwTCc~J$xZVUIE6DPjN_wDs1=B0hu z#86PIQyzs7F5;UwIzK?S+eN3-L95k5qtQU6QbDOyf}$wM=kpVSt@4OhPYkDmh+}03 z&1Ms|S`F1|6~$r^g+c+@Y!<0hiWT$|+YIl%BsmkbJwcSqWm+cHbUKY#ECxxESixsN zo(Y*#%gJOC(P$LGU=X4xvVsr0#L(kKx_Mu4BbUoTmStM?`~7gaTo43-6}*|8BOde? zv^g90HloO6GNUr7IvftzY&Mw9W>(N!;VE~^>+~yRl?1KE<8g$;VFUsJ*zI;$EEaGa z2cyx*3Z53%aJ96GjxW+D6XcXhH53ZL>-Ewy&+{;uOfVP>(CKuHVDu*r2ENDyd0$d> zyWO;GwOVOauh&DX)k34u{0h{6nxG2iWlEq*CZG#v@zQ&q7K}4k#5@t%GKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0004wNkl6o#KOGg>Ij8a6?(^9Pv15ZEG+B1KZfkZ8ZXKSe}Rq!I+N zHI{*C6bxyDmYc+6!ZaJfkJ)wCk2{$=$HIYV=Zq75n+un7c^}@x%N14SKIL%F@`?;U z{~)n9%wF8$$@YStRskSIR`4be^(Ww@jdpigi@(v_d9TTx0leK1txp09fBQnet+w-n z^|(cIXR#beA%J(Aq7SFQ9Rz0p)Pgw_y1&)NtsJCaB832EK8ub%1#buxkjpSgPvGp2 za2%=ad}qD;i{|zX6Db5R`$crD0Wy$3&hHgSdyw?O90_OpYL8mg(v!qsDl08{<+n1U}~H60mXSf5HFI#Q?)c#O>^QbyENU002ov JPDHLkV1h(`<4yno literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/playpc.png b/gamedata/textures/ed/bar/source/playpc.png new file mode 100644 index 0000000000000000000000000000000000000000..e1ba41cc330587f2efbc1b591073a68ac75a3619 GIT binary patch literal 3213 zcmV;8407{{P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0005FNklWfX_dKcqJ=61v(a8q;N49yp_L9T>2^w3cvDTuL8VINWBuP@xP@}@7TPN8X z{)$qnAQ3@CN)CFxLUXo%XuiDeGPF77t&0fOTCV~iNfMukI-2Nxjp6PjS$71n;sMUN z!GPSsX1mX^=p0EWpdVLpPWu9_ch1f^oO8to6oU07V0kH*JG8~-wiL3x=L7v`hVyT1aj z&CdP_D8qI;3d0TVKX_Q&#zBCRi-8Vu(C+~Ni7-F*ZDUMO00000NkvXXu0mjfRNDIt literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/prop_favoriteoff.png b/gamedata/textures/ed/bar/source/prop_favoriteoff.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca7a38000fc1d176f729f7999da11f90392d5cc GIT binary patch literal 715 zcmV;+0yO=JP)TXz!@B6#T*$-WxtY_V&*$@JXJ@WuS)$kL ziBhT5OeT|~{}l5cvMhr!rkbW{E-x>?O{G!>r4)n^ghHVpfP1xCt?W3CErj4g2mk&8XC$?Pfy>EL?Y>EG&*J&MnF*%5JJE?hvPWtbUHXWIq6!KRd2OgmEGOlYP;S3 zM5@(lBOZ?@Wm$$S%a9}quIu_1UDt)e!q{SqoWN8fRf2%rh>sB2qEyS z2_Ybafa|(&T^EE95JJEhgAfA8$H(W3i;HihQmORy=H_N_VqzkzX_~LhIrrBCd+rVn z4m$Jm^Diou%0~%+y}!Tz#kTE;X_}9M!5|evfOGyUq~BmlDQw$Dxm<29EG)dLR4SVQ z`o1C|#9Uur|JLbr#O39suq?~pUau#vudhY3*%XCB;R68Gzuq6^`Jri=CP@;!^HECu z;3%b_l)^9!MhLOJtf)s24u^GJ*N0VA1!D}9QdpLStE($8#=sbZq9};PVhP4r;4cTM zRBCi&WJITwqTB7_^z;ww^2zM%?9*H>_aG99jKyNH!Dh30eyh{tJor}EXxmPW@cWluCBg|$K%5u?kCxOAmBM}_y+(0002ovPDHLkV1j<;PlNyf literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/prop_favoriteon.png b/gamedata/textures/ed/bar/source/prop_favoriteon.png new file mode 100644 index 0000000000000000000000000000000000000000..278db38f57353a835399a68a958558188cf879c2 GIT binary patch literal 775 zcmV+i1Ni)jP)V98q^n=-Qf&Z&lJ74H6T>G+i>%s^3;$h;?+EY&(S`zjBiMLL5y?&r8nQBN?ixb5w zw->Vi`T9F=r1$-kJL5Yu!=^klWF`hrOmBQK*z(*Df(n8PyR%uXKl%B=@7lHwv>O!$ zB=JN%9`UAvx$(J?YE4&-L2L8KCyorX_tz&vyZ7(yeJNR=>aI^Wb!0a7MUgwpyZ^oI5?e1yaX@w);JK#HLcNSgFp)2%LNo||1b{`KWgZstor0p2Qw zN_Mn3_GVA4e|=k^LCR&&E&>l>T%>VP!o_nc{CNKE&u4#`I|;Y|))SrC<=3iUq_b4lCeN?$JS^|UD^<`4R*jZ0a0LWKqeV%jz?|v zM}C=0H~!9^9h^CL>DJUX`LOLoUc4w)9K#M*vqFs zedUL~uH<2$9SA+Hx&k6WOLV=rr}5)6pLL&Z%h;J!-@lMRCc|_&Bg6mz002ovPDHLk FV1jR&ZPx$* literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/quad.svg b/gamedata/textures/ed/bar/source/quad.svg new file mode 100644 index 0000000..5a7074b --- /dev/null +++ b/gamedata/textures/ed/bar/source/quad.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gamedata/textures/ed/bar/source/rcrefresh.bmp b/gamedata/textures/ed/bar/source/rcrefresh.bmp new file mode 100644 index 0000000000000000000000000000000000000000..13a69e1cc59fd8a5fd7dccd3830a5f96daa7dcb9 GIT binary patch literal 822 zcmYk&TS!xJ90%~f`I;fjBnTo3bNLvtHwz4c9wL+;3n?mu9wK^52+S9KsYsnTYlOGN z%WS#j(jBdNnR7eaQMb99c644g+r^!o-Q4B;`fZAI`2K&K%jfqy|8r{YN{UJ0kYE+# zDm`9B)x zXg#>CzcX450S{yCZ<%fw)i($2BjBC_`?s8J1e`jJv=hC3MjHui1II>ubh*6j!9?9@ zSqW(;XW^exaS`btjnuQ)=7QIytQnR(SJwio1CL=wE=Rv% znB{p6lEGNiThU)3?h{w`RbKvb>4oMY1X*r};G~6@4a+9CTaS+sa!p&WrOY_fU!K4EabfQQvZI*9e;{hLK_Pew*P? z$oo_#bwhFUqWnUSRjOF)x!PBSA5J=pcpn2{2e>Ts*eLp-!<-SI&;gbJE$S*Gt%SVK zPbTg7uTDj`8L*o`r==Bnf8b_v`SFk|G_3|KPpHRN2E^BguMOI}tNO(ob3@_&9$wx~ zEAsn^tXpunAPD)c!fVp$M4b00`8|k-qTJ?GYa`Y2Qq%m3(M+J{+10}MlTzprvXDs$ z=_sUm-MiNbJiVk0a$qJCfWU`6mVJelRTHl0hdfWiwyx(y|+%)Gl dM_e=}>@*&@Od;pefzyQNA;*&I_v8si{}1BOC9ePg literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/rotate.png b/gamedata/textures/ed/bar/source/rotate.png new file mode 100644 index 0000000000000000000000000000000000000000..d922116810a24f3a89c53be2c83c8b7e4a2d5f48 GIT binary patch literal 757 zcmVEX>4Tx04R}tkv&MmKpe$iTT4YMRqP-ln4vmZ5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RRG-dL}hb93~cu9V~S)E9naHG;u^$RLb{e z9hNz7aaJld*19KuVKA?*q`6LW7;!8ifg}V-sG*DsOhjo_NimS3{g{h?$o416C6TKP zMvetkp+L0#;D7MDTca>F=_CbXfd9p^K1PASF3_x7*7vbxHBSKFGjOH0{nZ9A`$>Ae ztwoN2&^B;!-PWW%;Bp5Te9}Z+v?U)+Z=nFZpV2qvfPq_}XU*xYwU5&WAVXa(-v9@P zz*v#8*InM--Pzl}XIlOJ0AYf1psQ!#-2eap24YJ`L;(K){{a7>y{D4^000SaNLh0L z01ejw01ejxLMWSf00007bV*G`2j&GI4;DFulHgw4suM$8QKFfj|fX@E>NxvYFjA5RSRYJ@=fs zGjlKeH$p0@t^vEi2Jj3lLI@wNZfd3;tFP*ndKTl0dZcEtE>DS9)N^&J4l3M0okc!Z zi
I#+u&-SyQQ^-VR^`cmC#xZbAvXhfCls^b=MVF|zcm;S_qy46rSR=afuPc7o@ z_zqdh;9b2{`wcTPQxD4dPK--n1l$9c>aZftfeYXZI8C|drBe>$cOit&KiS4_5%CfwE^rSl00000NkvXXu0mjfDAYv( literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/rotate.svg b/gamedata/textures/ed/bar/source/rotate.svg new file mode 100644 index 0000000..57f5e24 --- /dev/null +++ b/gamedata/textures/ed/bar/source/rotate.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gamedata/textures/ed/bar/source/save.bmp b/gamedata/textures/ed/bar/source/save.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a3d905996af1babcc1e105d8bd7bc55d3a75c061 GIT binary patch literal 774 zcmZ?rWn*Rl12Z700mK48%n!tj3=%++f#CuZ1A{U*1cL>D!~wE^FL3~3Hc0KVWgvtB zP!#z3qHqU7J;H%t+tJ+v@dYlD2=_zHhnRq-9>#@OicErZVY+8%sR#QUB|P!EAE*+j N1EC(Qoge{J4**Sjd@KL} literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/scale-grid-snap.svg b/gamedata/textures/ed/bar/source/scale-grid-snap.svg new file mode 100644 index 0000000..bf7990d --- /dev/null +++ b/gamedata/textures/ed/bar/source/scale-grid-snap.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gamedata/textures/ed/bar/source/scale.png b/gamedata/textures/ed/bar/source/scale.png new file mode 100644 index 0000000000000000000000000000000000000000..c2b352856969487b1fc45fece891978743273868 GIT binary patch literal 653 zcmV;80&@L{P)EX>4Tx04R}tkv&MmKpe$iTT4YMRqP-ln4vmZ5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RRG-dL}hb93~cu9V~S)E9naHG;u^$RLb{e z9hNz7aaJld*19KuVKA?*q`6LW7;!8ifg}V-sG*DsOhjo_NimS3{g{h?$o416C6TKP zMvetkp+L0#;D7MDTca>F=_CbXfd9p^K1PASF3_x7*7vbxHBSKFGjOH0{nZ9A`$>Ae ztwoN2&^B;!-PWW%;Bp5Te9}Z+v?U)+Z=nFZpV2qvfPq_}XU*xYwU5&WAVXa(-v9@P zz*v#8*InM--Pzl}XIlOJ0AYf1psQ!#-2eap24YJ`L;(K){{a7>y{D4^000SaNLh0L z01ejw01ejxLMWSf00007bV*G`2j&GI4;L8G;K6$U004+G4000000NkvXXu0mjfz!neD literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/scale.svg b/gamedata/textures/ed/bar/source/scale.svg new file mode 100644 index 0000000..316080a --- /dev/null +++ b/gamedata/textures/ed/bar/source/scale.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gamedata/textures/ed/bar/source/scale_grid.png b/gamedata/textures/ed/bar/source/scale_grid.png new file mode 100644 index 0000000000000000000000000000000000000000..d19ec67505cff84ef76d237a8f27cd20f6d20042 GIT binary patch literal 628 zcmV-)0*n2LP)EX>4Tx04R}tkv&MmKpe$iTT4YMRqP-ln4vmZ5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RRG-dL}hb93~cu9V~S)E9naHG;u^$RLb{e z9hNz7aaJld*19KuVKA?*q`6LW7;!8ifg}V-sG*DsOhjo_NimS3{g{h?$o416C6TKP zMvetkp+L0#;D7MDTca>F=_CbXfd9p^K1PASF3_x7*7vbxHBSKFGjOH0{nZ9A`$>Ae ztwoN2&^B;!-PWW%;Bp5Te9}Z+v?U)+Z=nFZpV2qvfPq_}XU*xYwU5&WAVXa(-v9@P zz*v#8*InM--Pzl}XIlOJ0AYf1psQ!#-2eap24YJ`L;(K){{a7>y{D4^000SaNLh0L z01ejw01ejxLMWSf00007bV*G`2j&GI4;n73^eV3a003}FL_t(I%iWW)4S+xl1D)Rs z3BeAq7*j9^On}$`LqrfEtp7EX>4Tx04R}tkv&MmKpe$iTT4YMRqP-ln4vmZ5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RRG-dL}hb93~cu9V~S)E9naHG;u^$RLb{e z9hNz7aaJld*19KuVKA?*q`6LW7;!8ifg}V-sG*DsOhjo_NimS3{g{h?$o416C6TKP zMvetkp+L0#;D7MDTca>F=_CbXfd9p^K1PASF3_x7*7vbxHBSKFGjOH0{nZ9A`$>Ae ztwoN2&^B;!-PWW%;Bp5Te9}Z+v?U)+Z=nFZpV2qvfPq_}XU*xYwU5&WAVXa(-v9@P zz*v#8*InM--Pzl}XIlOJ0AYf1psQ!#-2eap24YJ`L;(K){{a7>y{D4^000SaNLh0L z01ejw01ejxLMWSf00007bV*G`2j&GI4;3+?WIL4r007NNL_t(I%e9lSN&`_4MbBFd zX6;0*QU+3|P2m@$3W&9ZSojG6A-$d02OEwAy#$)_1L^(Sy=Y%inp3O z42PKu1OFlQQa$_&V5^quY1?ep(EkQzz^gjx3ji1crFzyC@Kvc#fSr2Y1@KezIq;&c zQbT;QS!;FBysx?~`51>D8nQq58`cvSCWeWbp} z`!7-fH)>w-w-NA`w1paK{#gBtka^$#xK + + diff --git a/gamedata/textures/ed/bar/source/space_restrictor.png b/gamedata/textures/ed/bar/source/space_restrictor.png new file mode 100644 index 0000000000000000000000000000000000000000..f67892afc582092ecebf53a6e864a2eb569b9804 GIT binary patch literal 518 zcmV+h0{Q)kP)P0018d1^@s660l}|00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;jv63FrU-0e4A6K~zXfwUOIx!!Qs8U55b!ZXzuh=_ma| z(HI$Kc{)k?P!1TAyvHsn-;iL~RyLpfgF)s>Ath@|R~#a!& zNUeE3`^@wX6NghEo84P?Ju{&`OpcmCqr3$By}7In6Ar8?lI)pu{ng-Y!cR8SV3Twv zp7WBBpLa5;qTrAqsHkhgOlL4mpx&~AK<&wMt*HxR14l-CCXg?H)P(5(M@Cs=?`KM? z9&8f8us5%e_vUF*HIg + + + + + + + diff --git a/gamedata/textures/ed/bar/source/square.svg b/gamedata/textures/ed/bar/source/square.svg new file mode 100644 index 0000000..762d712 --- /dev/null +++ b/gamedata/textures/ed/bar/source/square.svg @@ -0,0 +1,3 @@ + + + diff --git a/gamedata/textures/ed/bar/source/surface-snap.svg b/gamedata/textures/ed/bar/source/surface-snap.svg new file mode 100644 index 0000000..2c11111 --- /dev/null +++ b/gamedata/textures/ed/bar/source/surface-snap.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gamedata/textures/ed/bar/source/terminated.png b/gamedata/textures/ed/bar/source/terminated.png new file mode 100644 index 0000000000000000000000000000000000000000..e9077dbf12ad42c8cdd718f73b72725abfe57acb GIT binary patch literal 3076 zcmV+f4EytmP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0003mNkl0pC@8wT=N93e43?+&ktg|7H$)Wfc!z634HZ%IKk7a$wdL|TG(%3 zyK(?QKycp-wAe>qiGfXmZG!tXM1dyw{6s*3tT38`dP@}mh(Hrz)j$$hM@Z3Qs?ZyB z*>ggu03e8WoCMkkaVlaSyAk&roP{b3gu+6M^T63%1<#36X$^%R>bKt@rPhC7QhK&h z*k;`qAfvh#sDdJ?QAe8^jcWZ3IL7+ym!ua zEE_S2P0JKU^_AX4G&WsdT+PZC|%N`}W1Q(gUd2PpSXJ%)n z+jb3vK)m7+4i6G=14c0>9Pt1Xj3GwlaE%%?qCz+l5`s%yL;OP)5`ELlWdR{Ho$I~t zeZTMbd*6HSrMA|VX>||Rxm>Pk(MYHRKW97FWH-Klb?G^XA5)CTO3USHdeXTjycc-$ z1DDHvSdDkv-LYj7)UzI0(G$p1$Ql^!axGk3Fl5+^Y$AbDsumzeK08bjsuCc(yfF|n zf+(#<229jB&>DvWy--xh#fylA1ql;mku4L2Y(}%BLVzssO8DJrrb(g%v3mn#vlEc$ zjkV6BZ?voSej)ijG(NdX3GUiv*uPALdb%qYS^l-5e}oA&~tWx z#8S&SWQ`iFW>xBhD@GS&gJwLy$*BZXU=3&F%uFe`0%?>%S)|z(#xgamk=AY9O6#|w zu65rK0M|AatHrpbmTa~b!m`8tIE_j{Zi%+yMFY_t$kKBrMB#ocbFPz(Aq7n&+qxOo z^-Oi9+NzQXmi2JNf-Y54^t|=hm;opx+bBRfvqk}t0!*CYB*5T51$YU7GBl`fl!AIjH*sLBjvLz^4F=mx zJ*j4Jht<)tl!%6dK1THUDAvQ2%ExG>=(tUm<$)W_si#~;dGM-9-=LL#mfhcl3&oWT1rhc<@pTsf} z>#Mr#mYVR+?!4B{6#P*;m5_$(Wa2Yt^^vRdU9Jg2G}IiA96j*!&@&sC%y6IEWAF0V z^AnN!QTFqN!QnGQT>6bao-Mx8-*)G4ZX{jf>X%|D1HW`^8P0+$RPauAjO( zYnyoS+vL&V9T%RzuzB~TuEC3ECpLEv&id=r`P96@rlH;+`42~~39-(nR?OTtJo?j~ zh6yK|hSm)XzOa4w7i-V{;~!ePq;tj0mUjN@^Y?GA54RibGdk~k{MZh8+kWA-_uc&u zeBU=`@|sZNI}5bm4o(X5UxJ((~!O>F=&Od_6ZZ>dwFY VI^5cLZJBfEN5ie5eM{GD_!ro1#<>6h literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/toolbarmiddlegroup.png b/gamedata/textures/ed/bar/source/toolbarmiddlegroup.png new file mode 100644 index 0000000000000000000000000000000000000000..e029755c5b1af8ef2a15b866ba228410999b16fe GIT binary patch literal 1898 zcmbVNO^n+_7;mat9L<${>Zj1#l5$JpLY zvRn`diHZ}K9yo9UAwWXhkk~_osMJeOfVgtzfDjTwT=*I1k950jSB>JonK$oy-#2e& zuC})}&z^bejG`!Kn~h*wKA$YF)2HP9#xL(u`FJ>Oypk)*$_wRH`NY5WnWCJ!9(8t# zoz{z(idZL1bh$o?Q;AlT)wNMd=q@kRF7HK&ul;s-T~j0GYgei**h=fXA2kj#e(7MV zLl1VT$F#L))zuM}1Tim&I*JELjz_*W;l=X3Y&JA?0x5QVZM_Vr?zGx!U1VH!bqFYg zP<1^WSyh*Md_^^(i45o($OaH%%fnSio&7W!E@L6y4xXO{lV85pFNzc!#&9^)hn6m~ zo`F2iGoWdhCXfh_kCTFoK$4%IGXy-RS(Fx$NYs*%bj4obYf|bohd5o(Ci$#RvSP-F zqz2MqnbQQw=mMASWrIm@Mh!mTF;9wIV$lMd_C+D`zPJnZqWiW0vbL?(BF3>=;&>4v zFE;jN8nc2Ni_SaalpEVT7ke4y8~ak``7)an*E3EEk#&R^%x9`Sm#mtmZmCaSi4rD; z`GutcJRk-4wQ|+~^Z-O1WMPQpA3z&JIEA(Zi^A~{Xsv^)*miNXb{kZBhLM8Y7tAOQ zMHUm8a1@gsH`1i1sf#k=x)_K|2A1lq<@RR1-p)iA4P-~Yy?Ie>Zqyy*ISw#&G?CkC z;bxK-B%!<+_?j$^9z_fzw??`)s7D96wzS zOi;=3zdS4Spc@hbY)HDmM3Rlr&<2*nS(VZ-q#>WPy_7|AMUufXYpIG!MhYo%Sxv4M z#t5jvlE;yz_n66C=rPx|P-**#lW-%-a}gFplJWJPtlfQGXxvSFPWJCDojHt|lzJd!P8YbL?SL)} zYrwQDTD6hODU!~eYPwUpgH41jckbE;kv`+5eUkLJ++q#w!IL?eFON;;&Lw!#WU9-% z!F14(WQ=lSojS}oYQ9O|(k3h?a?&Js_VRUcrpS-Qsl*dmr%awX-~8j>l;_pU&0xLL zxcTc(prXLj0eMgPyT0=6jX$(@rC#~-hsuvvKV2Jd-dYXV=dWLWNB`>9;PB1M?|<~f zW6xM$e0XlGJ*qzUmQs1>a@n@E6~V#fodd?H=i{z+T)oyJ8uHG5;;T?r8PZ3{(7*7Bs4WZF7?Hjm>EQE zT4c3_7O!5AfU8$RStV!BB4*|lOprwmAoAIaZY%i!S>#o4+wG=Fq6l$T2FNBiAki9& z6G6j5gydx?$S@2c$zGQCNl->J2#(=cnvrN$pcqEsWyL2FBN7Wdup1-3gFb zYAJ`TS*6wOa-DF+=sYlK*2}m#6@e>m{Qw**`8f8!x>5h%DY!z#^8IEDM8MmRX z4&M*}*ESZb#<-=HY_=N0cETMvjdDS5iMA636Vc7cHrg$S!W~%VBsUvV30ep^hLtdk zOl76w70Cq0d3j>WQcYKloIQ2G1QY@e3XtxqQH)G6Y=Y$#hQ(is5fp|gL1Tuhr3!N z<25dnH_~FXs@%$GMA1A7fbOOUkkEAlQps|+c8hx4Q{?jeTpPlqcW_B5x^1MK9I#MR z8rSZwE~IZK-Uc0amX1JD!0RVbNESKD&*I|CEW=Zb3jH9Z0>6xeO6oUD7Zr|G1YgDA z_anVr7T5;#G{Q$LP2PVp_vXuz%0bE8yan$y8Q;LupfqVvGPHZJmK;V8HeYdUz#)tm zve<=BcDGr5r{IU`TM6m7P8NRW#I|)V^>~IPqM@cldVW#;hUKS*{}lN%dtqH+$B*$d*LtU&c&O{dWBDBq z?mAgBzwhZ4d#0ZP^alNO`y=lyd3SI4%j4?M{WE%!$NHYFIj4_1_SB+>*JZz13+S(i z-8-k8esio?Gj%hJx3q7*Fy<_=`;zm-`v<_rI0sIzA(F>NOgzxt|Jnm@yu#Ftyn49y z`2M}iHMW149n}dg zFPV9L)X?r_2bl?H8<&s!=fdQp{kh&}0z0N{`zyF;t5jF`o$jk`v9>gv@1N!0Jgf^* vpUf_tZQPq_%z@mR&o1Wn{MPeB_rjO9FZ}4=WzzTVAA)FjL8yD~is%0W?S0lg literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/source/translate.svg b/gamedata/textures/ed/bar/source/translate.svg new file mode 100644 index 0000000..b3b0f44 --- /dev/null +++ b/gamedata/textures/ed/bar/source/translate.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gamedata/textures/ed/bar/source/translaterotate2d.svg b/gamedata/textures/ed/bar/source/translaterotate2d.svg new file mode 100644 index 0000000..43b8f2b --- /dev/null +++ b/gamedata/textures/ed/bar/source/translaterotate2d.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gamedata/textures/ed/bar/source/translaterotate3d.svg b/gamedata/textures/ed/bar/source/translaterotate3d.svg new file mode 100644 index 0000000..b61fb20 --- /dev/null +++ b/gamedata/textures/ed/bar/source/translaterotate3d.svg @@ -0,0 +1,3 @@ + + + diff --git a/gamedata/textures/ed/bar/srestrictor.dds b/gamedata/textures/ed/bar/srestrictor.dds new file mode 100644 index 0000000..bb47e79 --- /dev/null +++ b/gamedata/textures/ed/bar/srestrictor.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3754944bedeae67a6352169070c257d5665f2665d3172bd1d1f67f3587a50658 +size 1152 diff --git a/gamedata/textures/ed/bar/terminated.dds b/gamedata/textures/ed/bar/terminated.dds new file mode 100644 index 0000000..71a5b9f --- /dev/null +++ b/gamedata/textures/ed/bar/terminated.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6c7fa0ff341ea0f797cc3b896d0c0713ea7cf5d47fc4d92a82a39cc72d385f0 +size 2248 diff --git a/gamedata/textures/ed/bar/undo.dds b/gamedata/textures/ed/bar/undo.dds new file mode 100644 index 0000000..1b8e62f --- /dev/null +++ b/gamedata/textures/ed/bar/undo.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fba4553e7f1f1857e13c808483fdd6015662b33548e82390c12b10ad7d1ef0e +size 8320 diff --git a/gamedata/textures/ed/bar/validate.dds b/gamedata/textures/ed/bar/validate.dds new file mode 100644 index 0000000..5e72ed2 --- /dev/null +++ b/gamedata/textures/ed/bar/validate.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb7207f017dfc3a3308f50f18ab51207ff24d4515c6a297365ce1cf94edff3b6 +size 49856 diff --git a/gamedata/textures/ed/bar/viewb.dds b/gamedata/textures/ed/bar/viewb.dds new file mode 100644 index 0000000..5db545b --- /dev/null +++ b/gamedata/textures/ed/bar/viewb.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0b82c1bfc76c5564e87724c2ffac31b9eaaaf95cb64619a24eac1ec17137c6b +size 16512 diff --git a/gamedata/textures/ed/bar/viewfront.dds b/gamedata/textures/ed/bar/viewfront.dds new file mode 100644 index 0000000..c24d393 --- /dev/null +++ b/gamedata/textures/ed/bar/viewfront.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df97fcca49fdd358615d094391250b217164dc43d2bc0dc09987a98949dece9c +size 16512 diff --git a/gamedata/textures/ed/bar/viewleft.dds b/gamedata/textures/ed/bar/viewleft.dds new file mode 100644 index 0000000..79dc7cf --- /dev/null +++ b/gamedata/textures/ed/bar/viewleft.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6f06b81df9d86f45bf702d2af7521f3bf8e501b7bcac0c5dcead49e543c127a +size 16512 diff --git a/gamedata/textures/ed/bar/viewreset.dds b/gamedata/textures/ed/bar/viewreset.dds new file mode 100644 index 0000000..e4d07b0 --- /dev/null +++ b/gamedata/textures/ed/bar/viewreset.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b5dbbca853a029293ab8f962be634c8658ed08b64aeee19f3cd33c41e2bd8ef +size 16512 diff --git a/gamedata/textures/ed/bar/viewright.dds b/gamedata/textures/ed/bar/viewright.dds new file mode 100644 index 0000000..a3e5abf --- /dev/null +++ b/gamedata/textures/ed/bar/viewright.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2251e74617ef6fe7669d013e9858115f7a5caed44aee53a2db17fe49be328bce +size 16512 diff --git a/gamedata/textures/ed/bar/viewtop.dds b/gamedata/textures/ed/bar/viewtop.dds new file mode 100644 index 0000000..3d71380 --- /dev/null +++ b/gamedata/textures/ed/bar/viewtop.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40adbd42ebc1e8268f53bb463b2497b8f03586b4cc215d55f868245d897ee8f2 +size 16512 diff --git a/gamedata/textures/ed/bar/vsnap.dds b/gamedata/textures/ed/bar/vsnap.dds new file mode 100644 index 0000000..79fcaa0 --- /dev/null +++ b/gamedata/textures/ed/bar/vsnap.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8561acd3b2d242678cc1ccc7bfc86e55d609d06d4fe7469378081ea27fd26341 +size 11088 diff --git a/gamedata/textures/ed/bar/weatherprop.dds b/gamedata/textures/ed/bar/weatherprop.dds new file mode 100644 index 0000000..336cc47 --- /dev/null +++ b/gamedata/textures/ed/bar/weatherprop.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8350b1c1f68fb3760104edfcc50aa6b0f5e6dadaef04d1a4fa12e0ea95cddfd +size 87520 diff --git a/gamedata/textures/ed/bar/weatherprop.thm b/gamedata/textures/ed/bar/weatherprop.thm new file mode 100644 index 0000000000000000000000000000000000000000..e3ac1eb9e1ff77c345495bd7adffa97dddd8c946 GIT binary patch literal 138 zcmXwyTMj@_3`FM&34h{!|7=8Tz@jXWJvmb}O?#%#ww4M>oqDK*k`=s?Z7IdTD~OfJ hD+~_bj!PpPJ?Y#h1RlrSoDmKAzK+cgv``4hKRm{N1W5n@ literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/bar/win_header_close.dds b/gamedata/textures/ed/bar/win_header_close.dds new file mode 100644 index 0000000..c2772b5 --- /dev/null +++ b/gamedata/textures/ed/bar/win_header_close.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78f77271e5b760b88e8fd663a054a3bdc668f795fc4e85109fcc1567362e8fe9 +size 5616 diff --git a/gamedata/textures/ed/bar/win_header_logo.dds b/gamedata/textures/ed/bar/win_header_logo.dds new file mode 100644 index 0000000..fd613ff --- /dev/null +++ b/gamedata/textures/ed/bar/win_header_logo.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41627cb31b7da8147a79d937ea4252e87b245468e1b9a8272f0955477593180a +size 5616 diff --git a/gamedata/textures/ed/bar/win_header_max.dds b/gamedata/textures/ed/bar/win_header_max.dds new file mode 100644 index 0000000..5dbd894 --- /dev/null +++ b/gamedata/textures/ed/bar/win_header_max.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a764f6aaa65676b639b180f51b2a139d99c010ea867dfcf7899cf10d642c4e11 +size 5616 diff --git a/gamedata/textures/ed/bar/win_header_min.dds b/gamedata/textures/ed/bar/win_header_min.dds new file mode 100644 index 0000000..1bb1763 --- /dev/null +++ b/gamedata/textures/ed/bar/win_header_min.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b5cf9e4ac04f25f8599cec381e53c3014e5750bc81b27992dcb938ed6dad765 +size 5616 diff --git a/gamedata/textures/ed/bar/win_header_restore.dds b/gamedata/textures/ed/bar/win_header_restore.dds new file mode 100644 index 0000000..5d1081a --- /dev/null +++ b/gamedata/textures/ed/bar/win_header_restore.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e67fa841ae5908ddcc93d1d5422c1bfa41abfc71a57b58dbc1987f42434ff1f5 +size 5616 diff --git a/gamedata/textures/ed/bar/win_preferences.dds b/gamedata/textures/ed/bar/win_preferences.dds new file mode 100644 index 0000000..8efc26e --- /dev/null +++ b/gamedata/textures/ed/bar/win_preferences.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2b50fda9ef740a5c744cacd3a85c93fa0a000ea6235612ab89defb25b15751f +size 768 diff --git a/gamedata/textures/ed/bar/x.dds b/gamedata/textures/ed/bar/x.dds new file mode 100644 index 0000000..e96d77d --- /dev/null +++ b/gamedata/textures/ed/bar/x.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ab3f7a77e7d1a9bb74af76e7cdaed4dc5f73ced671263c7c08dfa3ca2842acc +size 87508 diff --git a/gamedata/textures/ed/bar/y.dds b/gamedata/textures/ed/bar/y.dds new file mode 100644 index 0000000..1fe59d2 --- /dev/null +++ b/gamedata/textures/ed/bar/y.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78c62128acd2a38b7c541a18a2560fd54c6728a85bd75e8a23b516c24fd0d327 +size 87508 diff --git a/gamedata/textures/ed/bar/z.dds b/gamedata/textures/ed/bar/z.dds new file mode 100644 index 0000000..e0e38a5 --- /dev/null +++ b/gamedata/textures/ed/bar/z.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5da9d3b606e5d4ec0afa5b8aa9ff7c5d02a6150d6bd27b94a506d90bc06ae4bd +size 87508 diff --git a/gamedata/textures/ed/bar/zoom.dds b/gamedata/textures/ed/bar/zoom.dds new file mode 100644 index 0000000..ba70785 --- /dev/null +++ b/gamedata/textures/ed/bar/zoom.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a89818b64d7a662021551ac3be233a280e42b6e1feed129116c17bc6cfe257b +size 11088 diff --git a/gamedata/textures/ed/bar/zoomsel.dds b/gamedata/textures/ed/bar/zoomsel.dds new file mode 100644 index 0000000..2e046f6 --- /dev/null +++ b/gamedata/textures/ed/bar/zoomsel.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8025906c48c69582b43adc1f142b595cdea3badd20d65e1f8c09a5d2c03d42b4 +size 11088 diff --git a/gamedata/textures/ed/bar/zx.dds b/gamedata/textures/ed/bar/zx.dds new file mode 100644 index 0000000..b265dd8 --- /dev/null +++ b/gamedata/textures/ed/bar/zx.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75eb4c91020a2ea1f42531ad8745306e0198116605edb4e76305ad8b915efe98 +size 87508 diff --git a/gamedata/textures/ed/content_browser/backup.dds b/gamedata/textures/ed/content_browser/backup.dds new file mode 100644 index 0000000..bc42538 --- /dev/null +++ b/gamedata/textures/ed/content_browser/backup.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1791e0120c91f0cf323a69881481c9fade3c4cc1e73202ce43bc6ee7bf1f5d5 +size 16512 diff --git a/gamedata/textures/ed/content_browser/cmd.dds b/gamedata/textures/ed/content_browser/cmd.dds new file mode 100644 index 0000000..d102d18 --- /dev/null +++ b/gamedata/textures/ed/content_browser/cmd.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c5275af8262ed9c0f8a71d1bffad012213ac7867b0ade079d0486a8c3b4094e +size 16512 diff --git a/gamedata/textures/ed/content_browser/dialogs.dds b/gamedata/textures/ed/content_browser/dialogs.dds new file mode 100644 index 0000000..e16f30d --- /dev/null +++ b/gamedata/textures/ed/content_browser/dialogs.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20a090e13663fefa9940d96d84fac18417e101354b19a489824f488e7c7f7275 +size 1152 diff --git a/gamedata/textures/ed/content_browser/dll.dds b/gamedata/textures/ed/content_browser/dll.dds new file mode 100644 index 0000000..3ff584d --- /dev/null +++ b/gamedata/textures/ed/content_browser/dll.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69e9beb6ae672174f6a9a42de52e9e26c91f000877fc7dc00baa0a2d38396f4b +size 16512 diff --git a/gamedata/textures/ed/content_browser/env_mod.dds b/gamedata/textures/ed/content_browser/env_mod.dds new file mode 100644 index 0000000..2a86c48 --- /dev/null +++ b/gamedata/textures/ed/content_browser/env_mod.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3ed4794da123e6ff7c1a67df0a2fa94430a881b1d031c1e7d29fd387a6def0a +size 16512 diff --git a/gamedata/textures/ed/content_browser/exe.dds b/gamedata/textures/ed/content_browser/exe.dds new file mode 100644 index 0000000..5403793 --- /dev/null +++ b/gamedata/textures/ed/content_browser/exe.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d06e3c30d21efb0dd7bc14c7fb7e7e232418adef35c972ec790f1b2c9820f04 +size 16512 diff --git a/gamedata/textures/ed/content_browser/file.dds b/gamedata/textures/ed/content_browser/file.dds new file mode 100644 index 0000000..3fc8043 --- /dev/null +++ b/gamedata/textures/ed/content_browser/file.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4c2a10b5dd712f7c8149fff90059d758d8cb6094267aa9a30e19c105d7101c4 +size 16512 diff --git a/gamedata/textures/ed/content_browser/folder.dds b/gamedata/textures/ed/content_browser/folder.dds new file mode 100644 index 0000000..f7b606b --- /dev/null +++ b/gamedata/textures/ed/content_browser/folder.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:932d23a86e83c0be1eb72bd201b94a8d0371d97f0d4f7d54a1b56fc1f2b8a60e +size 16512 diff --git a/gamedata/textures/ed/content_browser/image.dds b/gamedata/textures/ed/content_browser/image.dds new file mode 100644 index 0000000..53571ff --- /dev/null +++ b/gamedata/textures/ed/content_browser/image.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d081d0add8352c71e1c7e9acc00e252a127cf5d1a661445a8fda82a594c1fde +size 16512 diff --git a/gamedata/textures/ed/content_browser/level.dds b/gamedata/textures/ed/content_browser/level.dds new file mode 100644 index 0000000..94f7f1d --- /dev/null +++ b/gamedata/textures/ed/content_browser/level.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:104525aa2828d7ddffc15df05f312b02f0fdb91afc3549b044f2bcb3c9e10db0 +size 16512 diff --git a/gamedata/textures/ed/content_browser/log.dds b/gamedata/textures/ed/content_browser/log.dds new file mode 100644 index 0000000..2b98a15 --- /dev/null +++ b/gamedata/textures/ed/content_browser/log.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:746420e4446b04fdafc57c79ffd81e8f93923449399c1d787dba0d5539d721ff +size 16512 diff --git a/gamedata/textures/ed/content_browser/multi.dds b/gamedata/textures/ed/content_browser/multi.dds new file mode 100644 index 0000000..9f08599 --- /dev/null +++ b/gamedata/textures/ed/content_browser/multi.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5260c7333735b17886e38957ed362a5f65cd76cb1eac10db35da419a5f881704 +size 5616 diff --git a/gamedata/textures/ed/content_browser/object.dds b/gamedata/textures/ed/content_browser/object.dds new file mode 100644 index 0000000..5309e98 --- /dev/null +++ b/gamedata/textures/ed/content_browser/object.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:855a14d6cd79b99a472ab2f940aabf2bf878a61469da3e0f53bcd0e4eae2f4bd +size 16512 diff --git a/gamedata/textures/ed/content_browser/ogg.dds b/gamedata/textures/ed/content_browser/ogg.dds new file mode 100644 index 0000000..d22922c --- /dev/null +++ b/gamedata/textures/ed/content_browser/ogg.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21543dfdd2e039316fe18dcd8b7641a39d95d50c50a9e6fb45786f24a6526bb6 +size 16512 diff --git a/gamedata/textures/ed/content_browser/search.dds b/gamedata/textures/ed/content_browser/search.dds new file mode 100644 index 0000000..e2b1795 --- /dev/null +++ b/gamedata/textures/ed/content_browser/search.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e00b43863d4a38cdcb2f20f0cfe0d65a4da5c80218985d480b270e06d67d19c5 +size 1520 diff --git a/gamedata/textures/ed/content_browser/seq.dds b/gamedata/textures/ed/content_browser/seq.dds new file mode 100644 index 0000000..bcf30bd --- /dev/null +++ b/gamedata/textures/ed/content_browser/seq.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a69116670c45b2e97725842fcb9d160fce2d24b3fcc535d629c855c68ce3ba97 +size 16512 diff --git a/gamedata/textures/ed/content_browser/tga.dds b/gamedata/textures/ed/content_browser/tga.dds new file mode 100644 index 0000000..eb3e5d7 --- /dev/null +++ b/gamedata/textures/ed/content_browser/tga.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e42c652fb41ae8f2686ee4f4b97d7d2c2e7332688ac3392235a131e3c299980 +size 16512 diff --git a/gamedata/textures/ed/content_browser/thm.dds b/gamedata/textures/ed/content_browser/thm.dds new file mode 100644 index 0000000..50b6d33 --- /dev/null +++ b/gamedata/textures/ed/content_browser/thm.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd905152c31ce8ffced7764ffa906afad8fc471d1f077593f71d9e1115ee276c +size 16512 diff --git a/gamedata/textures/ed/content_browser/wav.dds b/gamedata/textures/ed/content_browser/wav.dds new file mode 100644 index 0000000..7516b6b --- /dev/null +++ b/gamedata/textures/ed/content_browser/wav.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6adf590e55de2b0e7855dc2b7c568f757c64d6435f7e57b6234b38cf0c1543d0 +size 16512 diff --git a/gamedata/textures/ed/ed_actor.dds b/gamedata/textures/ed/ed_actor.dds new file mode 100644 index 0000000..40d3431 --- /dev/null +++ b/gamedata/textures/ed/ed_actor.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42ab40e1c990bc7f77e247326ba41b2f17adf1754fe66ff112813959532eaea3 +size 5616 diff --git a/gamedata/textures/ed/ed_actor.thm b/gamedata/textures/ed/ed_actor.thm new file mode 100644 index 0000000000000000000000000000000000000000..b49cb063e98ea453a5da89263a5928af6ff5235c GIT binary patch literal 138 zcmWgOU|?WkU|t!wIC%p7F5-S->Cx6aX_MVGIEB<^<9J literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/ed_ai_arrows_01.dds b/gamedata/textures/ed/ed_ai_arrows_01.dds new file mode 100644 index 0000000..362c67a --- /dev/null +++ b/gamedata/textures/ed/ed_ai_arrows_01.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e57d62031262c4d53b10c06be6d52fdc29770ea7a1ede782efc4aaa92b10697 +size 43832 diff --git a/gamedata/textures/ed/ed_ai_arrows_01.thm b/gamedata/textures/ed/ed_ai_arrows_01.thm new file mode 100644 index 0000000000000000000000000000000000000000..efac930c999d2b2ce24f426c952eacd58fa80614 GIT binary patch literal 138 zcmWgOU|?WkU|Kg3DfE*wK b8wL^+2XZ)p^w~2$wqWxlfC6BKB#Z$7#7qQ3 literal 0 HcmV?d00001 diff --git a/gamedata/textures/ed/ed_nodata.dds b/gamedata/textures/ed/ed_nodata.dds new file mode 100644 index 0000000..2ae0b12 --- /dev/null +++ b/gamedata/textures/ed/ed_nodata.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de4b126ff054920a5713f705cad54a9aaa8d530ac4495e381e06249c6eb0f25c +size 13856 diff --git a/gamedata/textures/ed/ed_not_existing_texture.dds b/gamedata/textures/ed/ed_not_existing_texture.dds new file mode 100644 index 0000000..fe3bedf --- /dev/null +++ b/gamedata/textures/ed/ed_not_existing_texture.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da0ebb7f3a71c2857ff373ac9cb14ae8d2820686afbbe5895f40c6b7f3b17df0 +size 2872 diff --git a/gamedata/textures/ed/ed_not_existing_texture.thm b/gamedata/textures/ed/ed_not_existing_texture.thm new file mode 100644 index 0000000000000000000000000000000000000000..961920bbe3d660212e899ff1d0f8d5eb5ddee645 GIT binary patch literal 138 zcmWgOU|?WkU|AX-q;p>|9_QtXY4P`UBySZ6Uf41`%x45y literal 0 HcmV?d00001 diff --git a/gamedata/textures/grad/grad_acid_mine.dds b/gamedata/textures/grad/grad_acid_mine.dds new file mode 100644 index 0000000..954cf59 --- /dev/null +++ b/gamedata/textures/grad/grad_acid_mine.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:787dc151c5d22c1ee460381a3bb7d100a1a6446b9a46fcf42ebad2c1a872a619 +size 4224 diff --git a/gamedata/textures/grad/grad_acid_mine.thm b/gamedata/textures/grad/grad_acid_mine.thm new file mode 100644 index 0000000000000000000000000000000000000000..885f50aec9939eb4cf2e70ec9e3dddb04079687d GIT binary patch literal 138 zcmWgOU|?WkU|D2WQ&NkHV~X?g%X1Tpv%!q`yrNtNNuUa_ FQULl~4if+X literal 0 HcmV?d00001 diff --git a/gamedata/textures/ui/ui_flags.dds b/gamedata/textures/ui/ui_flags.dds new file mode 100644 index 0000000..0225fc3 --- /dev/null +++ b/gamedata/textures/ui/ui_flags.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2552600ce858b0d596cffeb61d03a0f4028b3a7236ac4bce42387615b00c6c68 +size 524416 diff --git a/gamedata/textures/ui/ui_grid_alt.dds b/gamedata/textures/ui/ui_grid_alt.dds new file mode 100644 index 0000000..dca8508 --- /dev/null +++ b/gamedata/textures/ui/ui_grid_alt.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5247991c6bf965499a09493db57066577626cf9023b714abd9fc2ae23388430 +size 16512 diff --git a/gamedata/textures/ui/ui_ix-ray_team_logo.dds b/gamedata/textures/ui/ui_ix-ray_team_logo.dds new file mode 100644 index 0000000..ab8ff57 --- /dev/null +++ b/gamedata/textures/ui/ui_ix-ray_team_logo.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:833ddfedc69c3c6e3f74ea8f8aeadb38385d10b30a99380b2f75f9e6c87457ac +size 4224 diff --git a/gamedata/textures/ui/ui_ix-ray_team_logo.thm b/gamedata/textures/ui/ui_ix-ray_team_logo.thm new file mode 100644 index 0000000000000000000000000000000000000000..fe38cf02e44101656e4031eb88ccdbc02f8e7165 GIT binary patch literal 138 zcmWgOU|?WkU|d0HhFzMWA{>lA=I1D@0X;y%>-K dL}0@}V&Xs!Cy+jS#>W<90fPik0L+ktF#yKT1WEt^ literal 0 HcmV?d00001 diff --git a/gamedata/textures/ui/ui_ixray_mutant_portrets.dds b/gamedata/textures/ui/ui_ixray_mutant_portrets.dds new file mode 100644 index 0000000..803ae3f --- /dev/null +++ b/gamedata/textures/ui/ui_ixray_mutant_portrets.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5373f138a5adcac2ce1e1ab1a244fcc23cde55c6fc8db106f7dd676e1ebffb7c +size 524416 diff --git a/gamedata/textures/ui/ui_ixray_mutant_portrets.thm b/gamedata/textures/ui/ui_ixray_mutant_portrets.thm new file mode 100644 index 0000000000000000000000000000000000000000..c75749e1d94622326f690ecadcf3be71f7ff9075 GIT binary patch literal 138 zcmWgOU|?WkU|d0HhFzMWA{>lA=I1D@0X;y%>-K dL}0@}V&Xs!Cy+jS#>W<90fPik0L+ktF#yKT1WEt^ literal 0 HcmV?d00001 diff --git a/gamedata/textures/ui/ui_microphone.dds b/gamedata/textures/ui/ui_microphone.dds new file mode 100644 index 0000000..fd90933 --- /dev/null +++ b/gamedata/textures/ui/ui_microphone.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29433d255d7887cf6170b29a0c86614097d7e044fe1608c4d3b0ff328e47cfe1 +size 5616 diff --git a/gamedata/textures/ui/ui_microphone.thm b/gamedata/textures/ui/ui_microphone.thm new file mode 100644 index 0000000000000000000000000000000000000000..fe27fe462627711d5fd27f2dbb50f0cf9565c308 GIT binary patch literal 138 zcmWgOU|?WkU|!JwPUdD3HwxVlXf? i*oy%=_?hkX{A}pa7U531a{N#Y_Z6 literal 0 HcmV?d00001 diff --git a/gamedata/textures/water/water_caustic.01.dds b/gamedata/textures/water/water_caustic.01.dds new file mode 100644 index 0000000..c25c468 --- /dev/null +++ b/gamedata/textures/water/water_caustic.01.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88d8b53b44267fb995c43b56d263987df7234e1ef8d64cf2a1afca17e742404d +size 174904 diff --git a/gamedata/textures/water/water_caustic.02.dds b/gamedata/textures/water/water_caustic.02.dds new file mode 100644 index 0000000..ee9b5d4 --- /dev/null +++ b/gamedata/textures/water/water_caustic.02.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f89466422f74e33901a42f49878c03f2a49abfb775a5446926abb0089d11663 +size 174904 diff --git a/gamedata/textures/water/water_caustic.03.dds b/gamedata/textures/water/water_caustic.03.dds new file mode 100644 index 0000000..9dd175c --- /dev/null +++ b/gamedata/textures/water/water_caustic.03.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:151f6be1b21dd2f7233084f4b7247028ae5fcb99e07e9ca1823a061094589540 +size 174904 diff --git a/gamedata/textures/water/water_caustic.04.dds b/gamedata/textures/water/water_caustic.04.dds new file mode 100644 index 0000000..024b827 --- /dev/null +++ b/gamedata/textures/water/water_caustic.04.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa31d9b0eca6ea19a898725412ea84b2393e43a952023ba133baf92b5c5b21e6 +size 174904 diff --git a/gamedata/textures/water/water_caustic.05.dds b/gamedata/textures/water/water_caustic.05.dds new file mode 100644 index 0000000..bb038f2 --- /dev/null +++ b/gamedata/textures/water/water_caustic.05.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f0058de3c532e0abfa50777101dcc0f671d88250bd0b125196505ef617302b4 +size 174904 diff --git a/gamedata/textures/water/water_caustic.06.dds b/gamedata/textures/water/water_caustic.06.dds new file mode 100644 index 0000000..0c7d932 --- /dev/null +++ b/gamedata/textures/water/water_caustic.06.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5befbf81ab86bac808be1315c19739d1b2b6ae659e30b61b601c0015f76eda8b +size 174904 diff --git a/gamedata/textures/water/water_caustic.07.dds b/gamedata/textures/water/water_caustic.07.dds new file mode 100644 index 0000000..2bcaac0 --- /dev/null +++ b/gamedata/textures/water/water_caustic.07.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc3916ba0fd00356f77ddfd0f587c9439f9654239dadef06bdaafed5a7bbec09 +size 174904 diff --git a/gamedata/textures/water/water_caustic.08.dds b/gamedata/textures/water/water_caustic.08.dds new file mode 100644 index 0000000..382e150 --- /dev/null +++ b/gamedata/textures/water/water_caustic.08.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:231a237dfa7e4ea90c009e770db5754168f6fe5c70c25fd5d265713b9607f68f +size 174904 diff --git a/gamedata/textures/water/water_caustic.09.dds b/gamedata/textures/water/water_caustic.09.dds new file mode 100644 index 0000000..57790ce --- /dev/null +++ b/gamedata/textures/water/water_caustic.09.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18330356c0d172018eec7acd0695ea55db96273c3ddf56700e7536fb58fe06a4 +size 174904 diff --git a/gamedata/textures/water/water_caustic.10.dds b/gamedata/textures/water/water_caustic.10.dds new file mode 100644 index 0000000..0bbddff --- /dev/null +++ b/gamedata/textures/water/water_caustic.10.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1e86b58a9b60651dd9062fc420d9058d7399e8b5f42b8afd095dd8a84067461 +size 174904 diff --git a/gamedata/textures/water/water_caustic.11.dds b/gamedata/textures/water/water_caustic.11.dds new file mode 100644 index 0000000..5b1ec2f --- /dev/null +++ b/gamedata/textures/water/water_caustic.11.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dcc4bd7e4df4be1952e853061325982cd8cebba8439439ef4d72efc9767c41c +size 174904 diff --git a/gamedata/textures/water/water_caustic.12.dds b/gamedata/textures/water/water_caustic.12.dds new file mode 100644 index 0000000..ff49c8b --- /dev/null +++ b/gamedata/textures/water/water_caustic.12.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5dd12b4e55652266edd53f577fcad08cbb778d4273c49534f774068e47aa366 +size 174904 diff --git a/gamedata/textures/water/water_caustic.13.dds b/gamedata/textures/water/water_caustic.13.dds new file mode 100644 index 0000000..703517d --- /dev/null +++ b/gamedata/textures/water/water_caustic.13.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d90a882763de7aa54e2b21d7666266205aa5e6f60673d2dd6cb15b1f075440f +size 174904 diff --git a/gamedata/textures/water/water_caustic.14.dds b/gamedata/textures/water/water_caustic.14.dds new file mode 100644 index 0000000..945dc06 --- /dev/null +++ b/gamedata/textures/water/water_caustic.14.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3356eb53c1d19a7a39ae8a345dd7d1b6a8f2731cf97427d82ee330784b3d0521 +size 174904 diff --git a/gamedata/textures/water/water_caustic.15.dds b/gamedata/textures/water/water_caustic.15.dds new file mode 100644 index 0000000..bf3eeb7 --- /dev/null +++ b/gamedata/textures/water/water_caustic.15.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1eea4eda3a9696b32ff28f344d8767d071753767a9d4649f9cca2d2d71d897d1 +size 174904 diff --git a/gamedata/textures/water/water_caustic.16.dds b/gamedata/textures/water/water_caustic.16.dds new file mode 100644 index 0000000..6cf38a5 --- /dev/null +++ b/gamedata/textures/water/water_caustic.16.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:672338de728bd87e490982090061db4ca8c1303f2413f15a6a9fa64af1316dd4 +size 174904 diff --git a/gamedata/textures/water/water_caustic.17.dds b/gamedata/textures/water/water_caustic.17.dds new file mode 100644 index 0000000..334d716 --- /dev/null +++ b/gamedata/textures/water/water_caustic.17.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a17755f3743f3957dbb6a846baf7e352aae1d656c40170bf24da0cdcbcae031f +size 174904 diff --git a/gamedata/textures/water/water_caustic.18.dds b/gamedata/textures/water/water_caustic.18.dds new file mode 100644 index 0000000..8c46b0f --- /dev/null +++ b/gamedata/textures/water/water_caustic.18.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51074d78de0e83cb620eb8414dccf83d723062adf18918b91cc1db82a9e637cc +size 174904 diff --git a/gamedata/textures/water/water_caustic.19.dds b/gamedata/textures/water/water_caustic.19.dds new file mode 100644 index 0000000..4163f37 --- /dev/null +++ b/gamedata/textures/water/water_caustic.19.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2abaf680af3be1b66a89181651a8364bcbe6effa713c069669c548ceec11c79c +size 174904 diff --git a/gamedata/textures/water/water_caustic.20.dds b/gamedata/textures/water/water_caustic.20.dds new file mode 100644 index 0000000..35cb8e9 --- /dev/null +++ b/gamedata/textures/water/water_caustic.20.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce03adc91eabc4961cf66d3e07ef1fc98933257062e398c211a9dba2a2816f82 +size 174904 diff --git a/gamedata/textures/water/water_caustic.21.dds b/gamedata/textures/water/water_caustic.21.dds new file mode 100644 index 0000000..7f71dfb --- /dev/null +++ b/gamedata/textures/water/water_caustic.21.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92292f5a2974e19407ca36d5b380287cb824d1db95049968e8102aac293e929a +size 174904 diff --git a/gamedata/textures/water/water_caustic.22.dds b/gamedata/textures/water/water_caustic.22.dds new file mode 100644 index 0000000..b18ab02 --- /dev/null +++ b/gamedata/textures/water/water_caustic.22.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d64858b87ad4decdab663ce7a88e2be6a1405c1f8b49560c1a35d70c9c530e6a +size 174904 diff --git a/gamedata/textures/water/water_caustic.23.dds b/gamedata/textures/water/water_caustic.23.dds new file mode 100644 index 0000000..e94c5a3 --- /dev/null +++ b/gamedata/textures/water/water_caustic.23.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:622c86568ff770bf72b398b386413676546bf394b6b6b98d225eab4e2795e556 +size 174904 diff --git a/gamedata/textures/water/water_caustic.24.dds b/gamedata/textures/water/water_caustic.24.dds new file mode 100644 index 0000000..ab2e9ed --- /dev/null +++ b/gamedata/textures/water/water_caustic.24.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a86d259e6ce7a2f0711b50e5e6285b8677c710cf1126f2cd27037bb2d183f27 +size 174904 diff --git a/gamedata/textures/water/water_caustic.25.dds b/gamedata/textures/water/water_caustic.25.dds new file mode 100644 index 0000000..e236c97 --- /dev/null +++ b/gamedata/textures/water/water_caustic.25.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aee4119bdd0a98106bbb9b3754885a25d9439d040461649d18d58c190c3f1608 +size 174904 diff --git a/gamedata/textures/water/water_caustic.26.dds b/gamedata/textures/water/water_caustic.26.dds new file mode 100644 index 0000000..bfa68e9 --- /dev/null +++ b/gamedata/textures/water/water_caustic.26.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01f76bc24c01cebd2434a62cf5d865880766599c27267622c1b317874d137a96 +size 174904 diff --git a/gamedata/textures/water/water_caustic.27.dds b/gamedata/textures/water/water_caustic.27.dds new file mode 100644 index 0000000..4a7c47f --- /dev/null +++ b/gamedata/textures/water/water_caustic.27.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8d841519cd878eafdab2f310fc24b5cf921017782e5b9e8e1b15856d9399fb8 +size 174904 diff --git a/gamedata/textures/water/water_caustic.28.dds b/gamedata/textures/water/water_caustic.28.dds new file mode 100644 index 0000000..d53cb08 --- /dev/null +++ b/gamedata/textures/water/water_caustic.28.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25724244458012f102a040a3e7041d8d6d28b1e00f78b72bcb6f78b396a4c1cb +size 174904 diff --git a/gamedata/textures/water/water_caustic.29.dds b/gamedata/textures/water/water_caustic.29.dds new file mode 100644 index 0000000..86bcb12 --- /dev/null +++ b/gamedata/textures/water/water_caustic.29.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2f01d011ef7e3ff13dd7d271a7c732595627d3426b974fe032aede95d6311e5 +size 174904 diff --git a/gamedata/textures/water/water_caustic.30.dds b/gamedata/textures/water/water_caustic.30.dds new file mode 100644 index 0000000..a34d17d --- /dev/null +++ b/gamedata/textures/water/water_caustic.30.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94d556ed00789eb3cc0d6fc31da1370d5988614bc8cc9b8a20ec0c38cc22ad00 +size 174904 diff --git a/gamedata/textures/water/water_caustic.31.dds b/gamedata/textures/water/water_caustic.31.dds new file mode 100644 index 0000000..a78f74a --- /dev/null +++ b/gamedata/textures/water/water_caustic.31.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91d66afbcc90901de3340c0cfd3f516c471db14775a74cbc3274d4575aff294f +size 174904 diff --git a/gamedata/textures/water/water_caustic.32.dds b/gamedata/textures/water/water_caustic.32.dds new file mode 100644 index 0000000..35c6fd6 --- /dev/null +++ b/gamedata/textures/water/water_caustic.32.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e632e4a251b4991809448253d1a731eefa99eb3c3cdaded7eb2ed47361bcf505 +size 174904 diff --git a/gamedata/textures/water/water_caustic.dds b/gamedata/textures/water/water_caustic.dds new file mode 100644 index 0000000..c25c468 --- /dev/null +++ b/gamedata/textures/water/water_caustic.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88d8b53b44267fb995c43b56d263987df7234e1ef8d64cf2a1afca17e742404d +size 174904 diff --git a/gamedata/textures/water/water_caustic.seq b/gamedata/textures/water/water_caustic.seq new file mode 100644 index 0000000..dbf57c4 --- /dev/null +++ b/gamedata/textures/water/water_caustic.seq @@ -0,0 +1,33 @@ +60 +water\water_caustic.01 +water\water_caustic.02 +water\water_caustic.03 +water\water_caustic.04 +water\water_caustic.05 +water\water_caustic.06 +water\water_caustic.07 +water\water_caustic.08 +water\water_caustic.09 +water\water_caustic.10 +water\water_caustic.11 +water\water_caustic.12 +water\water_caustic.13 +water\water_caustic.14 +water\water_caustic.15 +water\water_caustic.16 +water\water_caustic.17 +water\water_caustic.18 +water\water_caustic.19 +water\water_caustic.20 +water\water_caustic.21 +water\water_caustic.22 +water\water_caustic.23 +water\water_caustic.24 +water\water_caustic.25 +water\water_caustic.26 +water\water_caustic.27 +water\water_caustic.28 +water\water_caustic.29 +water\water_caustic.30 +water\water_caustic.31 +water\water_caustic.32 \ No newline at end of file diff --git a/gamedata/textures/water/water_caustic.thm b/gamedata/textures/water/water_caustic.thm new file mode 100644 index 0000000000000000000000000000000000000000..b670a667151ffdf6af972c027c951b2a66ad47c8 GIT binary patch literal 138 zcmXwyTMj@#6hnK3gdY)ae>NgEU{Myxo}3OQGwErYd#5R-Oj4^3%Av4>SJX{J66ig( i#RaebW*iN0VUW&!#BkF>CljVZ@9Wt7fo6gP%MTCBKLl6+ literal 0 HcmV?d00001 diff --git a/ixr_addons/e4s/addon.init b/ixr_addons/e4s/addon.init new file mode 100644 index 0000000..e69de29